Hi folks,
My application was using Felix 3.2.2. I am running under openjdk-6.
I tried switching to Felix 4.0.3 and suddenly I was getting the message
org.osgi.framework.BundleException: Uses constraint violation. Unable to
resolve bundle revision org.apache.openjpa [22.0] because it is exposed to
package 'javax.transaction.xa' from bundle revisions
org.apache.geronimo.specs.geronimo-jta_1.1_spec [45.0] and
org.apache.felix.framework [0] via two dependency chains.
Chain 1:
org.apache.openjpa [22.0]
import:
(&(osgi.wiring.package=javax.transaction.xa)(version>=1.1.0)(!(version>=1.2.0)))
|
export: osgi.wiring.package=javax.transaction.xa
org.apache.geronimo.specs.geronimo-jta_1.1_spec [45.0]
Chain 2:
org.apache.openjpa [22.0]
import:
(&(osgi.wiring.package=javax.persistence.spi)(version>=1.1.0)(!(version>=2.1.0)))
|
export: osgi.wiring.package=javax.persistence.spi; uses:=javax.sql
com.springsource.javax.persistence [43.0]
import: (&(osgi.wiring.package=javax.sql)(version>=0.0.0))
|
export: osgi.wiring.package=javax.sql; uses:=javax.transaction.xa
export: osgi.wiring.package=javax.transaction.xa
org.apache.felix.framework [0]
It appears I am getting javax.transaction from two different bundles and
Felix can't pick.
If I look at bundle 0 if using gogo shell, I see that it is exporting
javax.transaction both in Felix 3.2.2 and 4.0.3. But for some reason it
comes up with this clash in 4.0.3. What gives?
I tried changing the org.osgi.framework.bundle.parent property when I
started up Felix. I tried all the legal values, boot, app, ext, and
framework in case that was the issue, but I got the same result every time.
So what changed between 3.x and 4.x that I would start seeing this problem?
Is there some configuration setting I could use to tell Felix to use a
bundle supplier that isn't bundle 0?
Thanks,
-Keith