Re: reverse engineer

From: Mike Schrag (mschra..dimension.com)
Date: Fri Feb 23 2007 - 11:14:55 EST

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

    Doh .. so close ..
    1 min

    On Feb 23, 2007, at 11:11 AM, Sebastien Sahuc wrote:

    > 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.createEOFReverseEngine
    >>> er(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.handleWidgetSelectio
    >>> n(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.runAppl
    >>> ication(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:16:16 EST