Re: reverse engineer

From: Mike Schrag (mschra..dimension.com)
Date: Thu Feb 22 2007 - 10:46:08 EST

  • Next message: Timo Hoepfner: "Eclipse 3.2.2"

    Stupid WO5.2 ... Fix committed.

    On Feb 22, 2007, at 10:29 AM, Stefan Klein wrote:

    > 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.runApplic
    > ation(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:47:02 EST