[ http://issues.apache.org/jira/browse/DERBY-2175?page=comments#action_12458510 ] Nicolas Richeton commented on DERBY-2175: -----------------------------------------
Yes, only the public api should be exported, sorry. I think the problem comes from the webstart classloader, which has strict security rules when it comes to jar and class visibility. > Derby plugin problem with webstart (packaging issue) > ---------------------------------------------------- > > Key: DERBY-2175 > URL: http://issues.apache.org/jira/browse/DERBY-2175 > Project: Derby > Issue Type: Bug > Components: Eclipse Plug-in > Environment: Java Webstart, Eclipse 3.3M3 > Reporter: Nicolas Richeton > > 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. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
