[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[equinox-dev] Strange class loading behaviour

Imagine a very simple bundle who's just printing javax.xml.parsers.ParserConfigurationException.class.getName() when started.

Running this with Equinox standalone yields a ClassNotFoundException.
"java -jar org.eclipse.osgi_3.5.1.R35x_v20090827.jar -configuration /home/stpaja/test/plugins/configuration/ -consoleLog"

Which is perfectly normal according the OSGi core specification which states that everything outside java.* must be imported (or implicitly loaded using boot delegation).

But, and here's the strange thing, when using a custom OSGi framework launcher the class name is printed and no ClassNotFoundException is thrown. I've implemented a very simple launcher which reads a config.ini file and installs/starts the bundles. It does not set any OSGi properties aside from those defined in config.ini.

The framework is started in the following manner:
java -cp my.launcher_1.0.0.jar:org.eclipse.osgi_3.5.1.R35x_v20090827.jar my.launcher.OsgiLauncher /home/stpaja/test/plugins/configuration/config.ini /home/stpaja/test/plugins/

Here's the content of config.ini (the same config.ini is used in both startups):
osgi.console=5555
osgi.bundles=aaaa_1.0.0.jar@start

Why is it that the bundle class loader finds javax.xml.parsers.ParserConfigurationException when started from a custom launcher instead of Equinox?

Thanks,
-Patrik Åkerfeldt