Re: reverse engineer

From: Mike Schrag (mschra..dimension.com)
Date: Fri Feb 23 2007 - 12:02:47 EST

  • Next message: Benoit Cantin: "Re: Eclipse 3.2.2 - Find and install"

    Damn .. Yeah this is because inside the connection dictionary that i
    convert to a 5.2 compatible NSDictionary is a jdbc2Info Map (among
    other things).

    On Feb 23, 2007, at 11:23 AM, Stefan Klein wrote:

    > Hi Mike,
    >
    > after installing 2.0.0.3841 following happens:
    >
    > java.lang.ClassCastException
    > at com.webobjects.jdbcadaptor.JDBCAdaptor.setConnectionDictionary
    > (JDBCAdaptor.java:220)
    > at org.objectstyle.wolips.eomodeler.sql.EOFReverseEngineer.<init>
    > (EOFReverseEngineer.java:38)
    > 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)
    >
    > Stefan
    >
    > Mike Schrag schrieb:
    >
    >> 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
    >>> ic 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 : Fri Feb 23 2007 - 12:03:39 EST