Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
10.2.2.0
-
None
-
Java Webstart, Eclipse 3.3M3
-
Normal
Description
There is a problem with the current packaging of the derby plugin that prevents
derby classes from being found by the classloader when running an RCP
application using java webstart.
I rebuilt this plugin using a MANIFEST.MF that exports all the packages and
specifies the classpath and it works.
You can find my packaging here (SVN Web access)
http://sharemedia.svn.sourceforge.net/viewvc/sharemedia/org.apache.derby.core/
This problem is only a packaging issue, there is no need to do code changes.
Scenario :
1 - Create a new RCP product (plugin/feature/product)
2 - Make the plugin depends on derby.core.
3 - Add Class.forName( "org.apache.derby.jdbc.EmbeddedDriver").newInstance();
in the code
4 - Launch the product : I works.
5 - Export the feature for webstart
6 - Create a new feature for webstart, include & sign startup.jar, create the
main jnlp, include the previous feature.
7 - Export the 2nd feature for webstart
8 - Launch the feature using the jnlp file. -> Class not found
Cause :
In the derby plugin, the packages are exported using the plugin.xml. This does
not work with webstart.
This can de fixed by adding a manifest.mf and exporting the derby packages in
this file :
Export-Package: org.apache.derby.authentication,
org.apache.derby.catalog,
org.apache.derby.catalog.types,
org.apache.derby.client,
org.apache.derby.client.am,
org.apache.derby.client.net,
org.apache.derby.client.resources,
org.apache.derby.database,
org.apache.derby.diag,
org.apache.derby.drda,
org.apache.derby.iapi.db,
org.apache.derby.iapi.error,
org.apache.derby.iapi.jdbc,
org.apache.derby.iapi.reference,
org.apache.derby.iapi.services.cache,
org.apache.derby.iapi.services.classfile,
org.apache.derby.iapi.services.compiler,
org.apache.derby.iapi.services.context,
org.apache.derby.iapi.services.crypto,
org.apache.derby.iapi.services.daemon,
org.apache.derby.iapi.services.i18n,
org.apache.derby.iapi.services.info,
org.apache.derby.iapi.services.io,
org.apache.derby.iapi.services.loader,
org.apache.derby.iapi.services.locks,
org.apache.derby.iapi.services.monitor,
org.apache.derby.iapi.services.property,
org.apache.derby.iapi.services.stream,
org.apache.derby.iapi.services.uuid,
org.apache.derby.iapi.sql,
org.apache.derby.iapi.sql.compile,
org.apache.derby.iapi.sql.conn,
org.apache.derby.iapi.sql.depend,
org.apache.derby.iapi.sql.dictionary,
org.apache.derby.iapi.sql.execute,
org.apache.derby.iapi.store.access,
org.apache.derby.iapi.store.access.conglomerate,
org.apache.derby.iapi.store.access.xa,
org.apache.derby.iapi.store.raw,
org.apache.derby.iapi.store.raw.data,
org.apache.derby.iapi.store.raw.log,
org.apache.derby.iapi.store.raw.xact,
org.apache.derby.iapi.tools.i18n,
org.apache.derby.iapi.types,
org.apache.derby.iapi.util,
org.apache.derby.impl.db,
org.apache.derby.impl.drda,
org.apache.derby.impl.io,
org.apache.derby.impl.jdbc,
org.apache.derby.impl.jdbc.authentication,
org.apache.derby.impl.load,
org.apache.derby.impl.services.bytecode,
org.apache.derby.impl.services.cache,
org.apache.derby.impl.services.daemon,
org.apache.derby.impl.services.jce,
org.apache.derby.impl.services.locks,
org.apache.derby.impl.services.monitor,
org.apache.derby.impl.services.reflect,
org.apache.derby.impl.services.stream,
org.apache.derby.impl.services.uuid,
org.apache.derby.impl.sql,
org.apache.derby.impl.sql.catalog,
org.apache.derby.impl.sql.compile,
org.apache.derby.impl.sql.conn,
org.apache.derby.impl.sql.depend,
org.apache.derby.impl.sql.execute,
org.apache.derby.impl.sql.execute.rts,
org.apache.derby.impl.store.access,
org.apache.derby.impl.store.access.btree,
org.apache.derby.impl.store.access.btree.index,
org.apache.derby.impl.store.access.conglomerate,
org.apache.derby.impl.store.access.heap,
org.apache.derby.impl.store.access.sort,
org.apache.derby.impl.store.raw,
org.apache.derby.impl.store.raw.data,
org.apache.derby.impl.store.raw.log,
org.apache.derby.impl.store.raw.xact,
org.apache.derby.impl.tools.dblook,
org.apache.derby.impl.tools.ij,
org.apache.derby.impl.tools.sysinfo,
org.apache.derby.io,
org.apache.derby.jdbc,
org.apache.derby.osgi,
org.apache.derby.tools,
org.apache.derby.vti
Bundle-ClassPath: lib/derby.jar,
lib/derbyclient.jar,
lib/derbynet.jar,
lib/derbytools.jar,
Using the updated derby plugin, the product works.
Attachments
Issue Links
- is part of
-
DERBY-3031 Improve Derby core plugin packaging & structure (solving MANY problems)
- Open