Hi All,

I am trying to use Karaf with equinox and ran into a very strange
classloading issue yesterday.

Here is a situation:
1. Stock karaf with FELIX-1150 (
https://issues.apache.org/jira/browse/FELIX-1150) applied (upgrade to Spring
2.5.6.SEC01 and SpringDM 1.2.0) and config.properties modified to point to
equinox (i.e. karaf.framework=equinox)
2. Bundle "datasource" wraps h2database and c3p0 and publishes a DataSource
3. Bundle "hibernate" is session factory producing bundle.  It publishes
SessionFactory and Spring PlatformTransactionManager using SpringDM.
4. All of the supporting spring libraries (transaction, orm, etc) and
hibernate (pulled from BRITS) and supporting java spec bundles are also
deployed.

When deploying those two bundles I was constantly getting a CNF on
org.hibernate.JDBCException in Karaf from bundle .  Those bundles were
working just fine with Pax Runner.
I thought that it was a problem with my bundles.  I tried everything,
modified imports, tried require bundle (with reexport and without), finally
tried Dynamic import = *.
Still I was getting a CNF.

I finally reconfigured Karaf to use:
1. org.eclipse.osgi.services-3.2.0.v20090429.jar vs.
org/apache/felix/org.osgi.compendium/${felix.compendium.version}/org.osgi.compendium-${felix.compendium.version}.jar
2. org.eclipse.osgi.util-3.2.0.v20090429.jar because PAX runner uses it in
minimal equinox configuraiton.

Now everything seems to work.  So I have a solution for my issue, but I
still don't have a "WHY" this issue came up.  Can anyone think of a "WHY"?
Is it an isseu with Compendium services used in stock Karaf?

I am willing to submit my changes as a patch but I would like to discuss
this a little more to get it right.  I have a pax-construct project that
generates required dependencies and bundles in question for testing if
anyone is interested in trying this.

Thanks in advance

Dmitry

Reply via email to