On 6/6/13 18:20 , Reto Bachmann-Gmür wrote:
Hello,

I'm using a bundle that requires
(package=javax.annotation)(version>=1.1.0)(!(version>=2.0.0)).
Unfortunately the version exposed by the system bundle on my system is only
0.0.0.1_007_JavaSE.

I have a bundle that exposes the requested package at a matching version
(mvn:javax.annotation/javax.annotation-api/1.2-b04) however when I add this
bundle I get errors like the following:

  [java] ERROR: Bundle org.glassfish.jersey.core.jersey-common [44]: Error
starting
slinginstall:C:\Users\Reto\projects\apache\commons-ng\launchers\mini\target\stanbol\startup\24\jersey-common-2.0.jar
(org.osgi.framework.BundleException: Constraint violation for package
'javax.annotation' when resolving module 44.0 between existing import
35.0.javax.annotation BLAMED ON [[44.0] package;
(&(package=javax.annotation)(version>=1.1.0)(!(version>=2.0.0)))] and uses
constraint 0.javax.annotation BLAMED ON [[44.0] package; (&(package=
com.google.common.net)(version>=14.0.0)(!(version>=15.0.0))), [9.0]
package; (package=javax.annotation)])

Can I prevent the system bundle from exportingthis package?

Yes, you can. You have to completely overwrite the org.osgi.framework.system.packages property. The default value comes from the default.properties file inside the felix.jar file. You can copy copy the value to your conf/config.properties. Note that it uses property expansion in default.properties, so you'll have to expand the properties by hand.

Or is there an other solutions?

Not really. It looks like you have one bundle using the correct imported version range and one not and unfortunately the system bundle export has priority in a lot of cases since it is resolved first. The only other approach is to make sure the higher version of javax.annotation is resolved before resolving any other bundles, so that it will become the highest priority since it has the highest version.

But I think modifying the system bundle export is the all around safer way to go.

-> richard


Cheers,
Reto



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to