How would you recommend we isolate BIRT such the JARs for BIRT and its dependencies do not cause any class/package conflicts with those used for our application. We'd like for the BIRT classes to not be inadvertently accessible/usable for most of our app code.
For example: BIRT packages Rhino, which our application also uses. As the versions of these libraries are different, and as we need to use a specific version of the Rhino JAR which we've tested/certified, we need a way to ensure that BIRT uses its copy and we use our copy.
Using a different ClassLoader for all of the BIRT code seems to be a reasonable approach, but we're unsure how to do this. Can you offer any suggestions as to how we might go about it?
We're currently using the POJO runtime, but we're certainly willing to switch to the OSGi one. Can you perhaps provide a little more detail as to how using it might solve our issue? Just curious -- this is all a little exotic to us.
The OSGi runtime requires specific folders for jars and such, whereas with the POJO runtime, they just need to be in the classpath. So, with the POJO, if you have conflicting jars in your classpath, you could run into issues.