Re: Entity Modeler Reverse Engineer shows no tables

From: JR Ruggentaler (j..pv.com)
Date: Tue Sep 22 2009 - 13:19:06 EDT

  • Next message: Mike Schrag: "Re: Entity Modeler Reverse Engineer shows no tables"

    I did not import org.objectstyle....factories or EntityModler,
    eomodeldoc. Stepping through the code:

    public interface IEOSQLReverseEngineerFactory {
            public IEOSQLReverseEngineer reverseEngineer(EODatabaseConfig
    databaseConfig, ClassLoader eomodelClassLoader) throws
    SecurityException, NoSuchMethodException, ClassNotFoundException,
    IllegalArgumentException, InstantiationException,
    IllegalAccessException, InvocationTargetException;
            
            public class Utility {
                    public static IEOSQLReverseEngineerFactory reverseEngineerFactory()
    throws EOModelException {
                            IExtensionPoint extensionPoint =
    Platform
    .getExtensionRegistry
    ().getExtensionPoint
    ("org.objectstyle.wolips.eomodeler.sqlReverseEngineerFactory");
                            IExtension[] extensions = extensionPoint.getExtensions();
                            List<IEOSQLReverseEngineerFactory> sqlReverseEngineerFactories =
    new LinkedList<IEOSQLReverseEngineerFactory>();
                            for (IExtension extension : extensions) {
                                    IConfigurationElement[] configurationElements =
    extension.getConfigurationElements();
                                    for (IConfigurationElement configurationElement :
    configurationElements) {
                                            try {
                                                    IEOSQLReverseEngineerFactory sqlReverseEngineerFactory =
    (IEOSQLReverseEngineerFactory)
    configurationElement.createExecutableExtension("class");
                                                    sqlReverseEngineerFactories.add(sqlReverseEngineerFactory);
                                            } catch (CoreException e) {
                                                    e.printStackTrace();
                                                    Activator.getDefault().log("Could not create SQL generator
    factory from configuration element: " + configurationElement, e);
                                            }
                                    }
                            }
                            IEOSQLReverseEngineerFactory sqlReverseEngineerFactory = null;
                            if (sqlReverseEngineerFactories.size() > 1) {
                                    throw new EOModelException("There was more than one SQL reverse
    engineer factory defined.");
                            } else if (sqlReverseEngineerFactories.size() == 0) {
                                    throw new EOModelException("There was no SQL reverse engineer
    factory defined.");
                            } else {
                                    sqlReverseEngineerFactory = sqlReverseEngineerFactories.get(0);
                            }
                            return sqlReverseEngineerFactory;
                    }
            }
    }

    2 factories are added to sqlReverseEngineerFactories but the class
    names are the same:

    org
    .objectstyle
    .wolips.eomodeler.core.sql.EOFSQLReverseEngineerFactor..8d26d
    org
    .objectstyle
    .wolips.eomodeler.core.sql.EOFSQLReverseEngineerFactor..46875

    JR

    On Sep 22, 2009, at 12:04 PM, Mike Schrag wrote:

    > close the org.objectstyle....factories plugin project -- that plugin
    > is intended for use only with Entity Modeler.app, and will break
    > WOLips if you run with both
    >
    > On Sep 22, 2009, at 12:53 PM, JR Ruggentaler wrote:
    >
    >> Mike,
    >> I followed Mark Ritchie's post (http://wiki.objectstyle.org/confluence/display/WOL/Debugging+WOLips
    >> ) and now I get this exception "There was more than one SQL reverse
    >> engineer factory defined" when I try to reverse engineer the mode.
    >> What's my next step(s) to go forward?
    >>
    >> org.objectstyle.wolips.eomodeler.core.model.EOModelException: There
    >> was more than one SQL reverse engineer factory defined.
    >> at
    >> org
    >> .objectstyle.wolips.eomodeler.core.sql.IEOSQLReverseEngineerFactory
    >> $Utility.reverseEngineerFactory(IEOSQLReverseEngineerFactory.java:38)
    >> at
    >> org
    >> .objectstyle
    >> .wolips
    >> .eomodeler
    >> .actions.ReverseEngineerAction.run(ReverseEngineerAction.java:111)
    >> at
    >> org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:
    >> 251)
    >> at
    >> org
    >> .eclipse
    >> .jface
    >> .action
    >> .ActionContributionItem
    >> .handleWidgetSelection(ActionContributionItem.java:583)
    >> at org.eclipse.jface.action.ActionContributionItem.access
    >> $2(ActionContributionItem.java:500)
    >> at org.eclipse.jface.action.ActionContributionItem
    >> $5.handleEvent(ActionContributionItem.java:411)
    >> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    >> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1561)
    >> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1585)
    >> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1570)
    >> at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1360)
    >> at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:
    >> 3482)
    >> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:
    >> 3068)
    >> at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:
    >> 2384)
    >> at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348)
    >> at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200)
    >> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495)
    >> at
    >> org
    >> .eclipse
    >> .core.databinding.observable.Realm.runWithDefault(Realm.java:288)
    >> at
    >> org
    >> .eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:
    >> 490)
    >> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:
    >> 149)
    >> at
    >> org
    >> .eclipse
    >> .ui
    >> .internal.ide.application.IDEApplication.start(IDEApplication.java:
    >> 113)
    >> at
    >> org
    >> .eclipse
    >> .equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
    >> at
    >> org
    >> .eclipse
    >> .core
    >> .runtime
    >> .internal
    >> .adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:
    >> 110)
    >> at
    >> org
    >> .eclipse
    >> .core
    >> .runtime
    >> .internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:
    >> 79)
    >> at
    >> org
    >> .eclipse
    >> .core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
    >> at
    >> org
    >> .eclipse
    >> .core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    >> 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:585)
    >> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
    >> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
    >> at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
    >> at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
    >>
    >> On Sep 22, 2009, at 10:41 AM, Mike Schrag wrote:
    >>
    >>> Yeah, that Team Project Set is years old ... I would recommend
    >>> following Mark Ritchie's instructions for setting up a WOLips
    >>> development environment. You're forewarned that working on
    >>> anything that touches EOF (like reverse engineering or sql
    >>> generation) is a particularly tricky process, because it's all
    >>> done with dynamic classloader generation. If you get so far as
    >>> getting a development WOLips running, let me know, and I can tell
    >>> you how to do the next part (to actually work on that code).
    >>>
    >>> ms
    >

    JR Ruggentaler
    Senior Software Developer
    Medical Present Value, Inc
    j..pv.com
    Office 512.439.0206
    Mobile 512.431.6849



    This archive was generated by hypermail 2.0.0 : Tue Sep 22 2009 - 13:20:28 EDT