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