Re: reverse engineer

From: Stefan Klein (stefan.klei..uero-sde.de)
Date: Thu Feb 22 2007 - 10:29:38 EST

  • Next message: Mike Schrag: "Re: reverse engineer"

    Hi Mike,

    i've got the following exception:

    java.lang.NoSuchMethodError:
    com.webobjects.foundation.NSDictionary.<init>(Ljava/util/Map;Z)V
        at
    org.objectstyle.wolips.eomodeler.sql.EOFReverseEngineer.<init>(EOFReverseEngineer.java:28)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at
    sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
        at
    org.objectstyle.wolips.eomodeler.sql.SQLUtils.createEOFReverseEngineer(SQLUtils.java:38)
        at
    org.objectstyle.wolips.eomodeler.actions.ReverseEngineerAction.run(ReverseEngineerAction.java:102)
        at
    org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:254)
        at
    org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:229)
        at
    org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:539)
        at
    org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:488)
        at
    org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:441)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3348)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
        at
    org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at
    org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
        at
    org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
        at
    org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
        at
    org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
        at
    org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
        at
    org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
        at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
        at org.eclipse.core.launcher.Main.run(Main.java:977)
        at org.eclipse.core.launcher.Main.main(Main.java:952)

    I'm using:

    Windows 2000
    Version: 3.2.1
    WO 5.2.4

    Stefan

    Mike Schrag schrieb:

    > I just committed a first pass at reverse engineering. Like SQL gen,
    > this does a pass-through to EOF. There are some differences in the
    > way this works compared to EOModeler:
    >
    > * In EOModeler, you create a new model with a reverse engineering.
    > In Entity Modeler, you reverse engineer into an existing model. This
    > means you can reverse engineer multiple times (if you add tables
    > later, for instance). To reverse engineer:
    > ** Make a new EOModel
    > ** Set the connection dictionary, etc on your active database config
    > ** Select the model node in the outline view
    > ** Click the Reverse Engineer button on on the Entity Modeler button
    > bar (yes .. these icons are all totally confusing and there are tons
    > of them ... i know ... i need to start pulling these things out into
    > menus, but I've just been to lazy to do it)
    > ** Select the tables, click OK
    > ** Profit
    >
    > * Entity Modeler will attempt to guess prototypes on reverse
    > engineered attributes. This is sort of hackish right now, because at
    > least with FrontBase, reverse engineering generates attributes with
    > values that are different than Wonder's prototypes. There is a big
    > if/else block of "leniency" for these comparisons to accomodate. If
    > you run into ones that aren't guessed properly, let me know and I can
    > take a look. Right now with FrontBase, most of the Wonder ones are
    > guessed right.
    >
    > * Entity Modeler will rename for capitalization on attributes,
    > entities, and relationships. Reverse engineering (at least with
    > FrontBase) generates everything in all caps. This look really ugly
    > and makes EM generate lots of warnings. Names are post-processed to
    > look SLIGHTLY better (obviously it can't really guess CamelCase
    > entity names)
    >
    > There's currently no feedback when this operation is running, so just
    > trust that it is cranking away. Prototype guessing is a little bit
    > labor intensive. I need to hookup a progress dialog so you can see
    > what the heck it's doing.
    >
    > Try it out in tonight's build and let me know.
    >
    > ms
    >
    >



    This archive was generated by hypermail 2.0.0 : Thu Feb 22 2007 - 10:29:45 EST