makoivis / eclipse-ticket-test

0 stars 0 forks source link

datanucleus-appengine-1.0.3.jar twice in classpath with Vaadin & GAE Ecplise Plugins #135

Open makoivis opened 8 years ago

makoivis commented 8 years ago

Reported by Sami Ekblad on 4 Nov 2009 21:56 UTC Vaadin Eclipse Plugin configures automatic include from all jar files from WEB-INF/lib. This mixes up classpath with GAE plugin (more precisely DataNucleus Enhancer) that adds the jar there, but does not include it to classpath.

At least then using any JDO classes an exception like this is generated:

java.lang.RuntimeException: Unexpected exception at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:59) at com.google.appengine.tools.enhancer.Enhance.(Enhance.java:60) at com.google.appengine.tools.enhancer.Enhance.main(Enhance.java:41) Caused by: java.lang.reflect.InvocationTargetException 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 com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:57) ... 2 more Caused by: org.datanucleus.exceptions.NucleusException: Plugin (Bundle) "org.datanucleus.store.appengine" is already registered. Ensure you dont have multiple JAR versions of the same plugin in the classpath. The URL "file:/Applications/eclipse/plugins/com.google.appengine.eclipse.sdkbundle_1.2.6.v200910131704/appengine-java-sdk-1.2.6/lib/user/orm/datanucleus-appengine-1.0.3.jar" is already registered, and you are trying to register an identical plugin located at URL "file:/Users/sganyo/dev/workspace/pt/war/WEB-INF/lib/datanucleus-appengine-1.0.3.jar."

This makes it impossible to create any Google App Engine / JDO project using the Vaadin Plugin without first manually re-configuring the project classpath.

See also discussion here: http://vaadin.com/forum/-/message_boards/message/76408

Workaround is to remove automatic addition of WEB-INF/lib ("Web App Libraries" class path entry) and add Vaadin jar files from there separately to classpath.

One fix would be that if GAE deployment is selected when creating the project, the plugin should leave out the "Web App Libraries" classpath entry (and add Vaadin jar as separate entry). This is what effectively must be currently done as manual workaround.

makoivis commented 8 years ago

Modified by Artur Signell on 5 Nov 2009 06:48 UTC

makoivis commented 8 years ago

Comment by Henri Sara on 6 Nov 2009 09:22 UTC The Vaadin plugin does not perform any configuration of this part of the build path.

The problem is in how GAE plugin interacts with the standard Eclipse Web Tools Platform (WTP). The Google plugin is designed to work primarily with its own non-WTP projects, and apparently does not handle WTP projects correctly. There is minimal documentation for using the Google plugin in existing projects (such as WTP), but it does not address this issue.

In summary, considering this a Google plugin WTP incompatibility, not a Vaadin plugin specific problem.

makoivis commented 8 years ago

Modified by Artur Signell on 15 Nov 2013 14:34 UTC

makoivis commented 8 years ago

Modified by Artur Signell on 12 May 2014 07:42 UTC

makoivis commented 8 years ago

Comment by Artur Signell on 28 Aug 2014 08:46 UTC Milestone Plug-in for Eclipse backlog deleted