For those not following the users@ discussion, here is a link:

http://www.nabble.com/-karaf--Equinox-integration-problem---and-possible-solution-to23559788.html

The above thread discusses an issue with using our compendium bundle. This is not the first time this issue has been raised. The summary is our compendium bundle results in odd class loading errors in some cases. My conclusion is that this is because we dynamically import *, so dependent bundles are using the compendium packages even though the compendium dependencies are not actually satisfied.

We dynamically import * to avoid forcing all users of compendium to satisfy all dependencies to use it, because most of the time they are not needed for the contained service interfaces. However, in the cases where they are needed, it is problematic.

Why do we provide these bundles at all? Originally, the OSGi JAR files were not bundles, so we needed something and did it ourselves. Now this is no longer the case, I believe.

It seems we need to figure out what we should do to address such issues in the future. I think there are three options:

  1. Stop providing these bundles altogether and just rely on the
     official artifacts from the OSGi Alliance (I believe they are in a
     maven repo somewhere).
  2. Provide them with their full explicit dependencies (i.e., static
     Import-Package declarations).
  3. Divide them up into more reasonable chunks, since they lack
     cohesion as bundles which makes managing their dependencies more
     unreasonable (e.g., it sucks having to deploy a provider of
     javax.microedition.io for org.osgi.service.io when you just want
     to use logging).

At this point, I think the order of the options listed here is the order of my preference.

I talked to Tom Watson about this and he agrees, saying he thinks their bundles are a mistake and doesn't plan on updating them. His recommended approach for the future is to bundle the API with the implementations.

Sounds good to me, since that's what we do too. What do you guys think?

-> richard

Reply via email to