Hi, I am developing an application which uses felix embedded to provide an OSGI environment. I have set up a small run.bat which builds a classpath-string using a few bootstrap libraries, that the application needs for firing up Felix. I have all the bootstrap-libraries as plain JAR files in a bootstrap folder, all other libraries as bundles in the lib folder. The bootstrap libraries are:
bnd-0.0.254.jar icc-1.0-SNAPSHOT.jar javax.servlet-1.0.0.jar jcl104-over-slf4j-1.5.0.jar log4j-1.2.12.jar org.apache.felix.bundlerepository-1.0.2.jar org.apache.felix.framework-1.0.3.jar org.apache.felix.main-1.0.3.jar org.apache.felix.shell-1.0.0.jar org.apache.felix.shell.tui-1.0.0.jar org.osgi.compendium-1.0.0.jar org.osgi.core-1.0.0.jar org.osgi.foundation-1.0.0.jar slf4j-api-1.5.0.jar slf4j-log4j12-1.5.0.jar So it's mostly OSGI, felix, some logging, bnd and ICC (our own library). So far so good. Felix starts up, loads all the bundles and everyone is happy. However, i never got this stuff to work inside my IDE (IntelliJ), i got all kinds of mysterious errors when trying to run that exact same application. Now i had a look on what was actually different, and i quickly found out that IntelliJ just added all my bundled libraries to the classpath before starting the application up. So to make sure that it was actually the classpath (and not some mysterious stuff inside IntellIJ) I modified the run.bat in a way that added all the bundles as well to the classpath before starting the application, et voila - the sh*t hit the fan. I got the same weird classloading errors i got in IntelliJ, most of them regarding the XML parser like this: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected excep tion parsing XML document from URL [bundle://44.0:0/application-context-osgi.xml ]; nested exception is javax.xml.parsers.FactoryConfigurationError: Provider org .apache.xerces.jaxp.DocumentBuilderFactoryImpl not found Funny enough, the class is actually available from the xerces bundle i have installed. I found this to be a startling experience, because usually you get in trouble when you have forgotten some libs in your classpath and not if you just add a few extra one's. My assumptions so far were: 1. I need to put into the classpath, what the environment and my little starter app needs to start up. 2. The system bundle will export some packages from the classpath to other bundles. I can specify the packages to be exported in the: org.osgi.framework.system.packages variable. All other packages from the classpath are unavailable. 3. When i deploy a bundle, the packages from there are exported as specified in the bundle's manifest. Given these three assumptions, i fail to understand why adding the bundles to the classpath is frying the application because in fact it should't make a difference on what i add to the classpath as all the stuff there is not exported into the OSGI environment unless i specify it, so it just should not make any difference. I spent a few days on this already and I am pretty sure I am doing something that I am not supposed to do, because when i search the net for this kind of stuff, I find nothing. I'd be thankful for any insights making this behaviour more clear to me. Ow and if you have a few tips on how to work with OSGI inside an IDE that would be helpful as well. Thanks a lot. Best regards, Jan -- View this message in context: http://www.nabble.com/Why-does-adding-libraries-to-the-classpath-change-how-things-work-inside-felix--tp16834823p16834823.html Sent from the Apache Felix - Users mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]

