Hi, I do not know what changed between 3.x and 4.x but I ran into the exact same issue the other day. Richard S. Hall gave a solution/workaround to the issue. This is what he posted yesterday (mail of 20/11/12 12.01):
Probably the simplest thing to do is to try to eliminate javax.transactions from the system bundle... To do this, you'll need to copy the org.osgi.framework.system.packages property out of the default.properties file inside the felix.jar file and put it into the conf/config.properties files...the value is quite big. It uses property substitution based on the JVM to set the value, but you can just pick the value you want and then delete the transactions package from it. I tried this approach and it did work. Another - also working - alternative is - as Alexey Romanov proposed - to use Apache Karaf 2.3.0. It has Felix 4.0.3 and Aries 1.0 on board. Integrated and nicely working out of the box. I hope you get up and running again with this info. Regards, Michiel Vermandel. ----------------- http://www.codessentials.com - Your essential software, for free! Follow us at http://twitter.com/#!/Codessentials ________________________________ From: Keith Hughes <[email protected]> To: [email protected] Sent: Wednesday, November 21, 2012 4:53 AM Subject: Differences between Felix 4.x and 3.x for javax classes 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

