Re: reverse engineer

From: Sebastien Sahuc (lis..ahuc.net)
Date: Fri Feb 23 2007 - 11:11:10 EST

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

    We're still lagging behind as well with WO5.2, and I updated to your
    lastest commit that has the 5.2 blessing, but I can't compile:

         [javac] /Users/sebastien/Projects/woproject/trunk/woproject/
    wolips/core/plugins/org.objectstyle.wolips.eomodeler/java/org/
    objectstyle/wolips/eomodeler/sql/EOFReverseEngineer.java:59: cannot
    resolve symbol
         [javac] symbol : constructor LinkedList
    (com.webobjects.foundation.NSArray)
         [javac] location: class java.util.LinkedList
         [javac] LinkedList tableNamesList = new
    LinkedList(tableNamesArray);
         [javac] ^
         [javac] /Users/sebastien/Projects/woproject/trunk/woproject/
    wolips/core/plugins/org.objectstyle.wolips.eomodeler/java/org/
    objectstyle/wolips/eomodeler/sql/EOFReverseEngineer.java:75: cannot
    resolve symbol
         [javac] symbol : constructor NSArray (java.util.List,boolean)
         [javac] location: class com.webobjects.foundation.NSArray
         [javac] NSArray tableNamesArray = new NSArray
    (tableNamesList, false);
         [javac] ^
         [javac] 2 errors
         [javac] 4 warnings

    I just wanted to give you a heads up. I might have a look at it
    myself later today.

    Thanks,

    Sebastien

    On Feb 22, 2007, at 7:46 AM, Mike Schrag wrote:

    > 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.createEOFReverseEnginee
    >> r(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.runAppli
    >> cation(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 : Fri Feb 23 2007 - 11:11:33 EST