Ok, understood.
I followed thread http://mail-archives.apache.org/mod_mbox/karaf-user/201210.mbox/%[email protected]%3E
in which JB explains where the "org.osgi.service.jdbc" package comes from.
Is there another bundle offering it? I will search. Not an Aries Blueprint issue per se.

One last comment about the compendium. It offers version 1.0.2:

org.osgi.service.blueprint.container;uses:="org.osgi.service.blueprint.reflect,org.osgi.framework";version="1.0.2"

whereas the Blueprint API bundle offers a lower version 1.0.1:

org.osgi.service.blueprint.container;uses:="org.osgi.service.blueprint.reflect,org.osgi.framework";version="1.0.1"

If the latter bundle would offer a higher version, wouldn't this solve the issue? Anyway, just an idea. I will try to find a solution without the use of the compendium bundle.

Martin

PS: I wild guess, and as a last resort, a Require-Bundle could be used to solve the BlueprintContainer class-loading ambiguity (more than one bundle offering the same package).

On 05/06/2013 18:35, Felix Meschberger wrote:
Hi

Yes, the idea is always the same: don't deploy the compendium API bundle. This will break your deployment sooner or later. The compeniumd bundle exposes API versions which may not reflect the actual API versions provided and/or used in your setup.

Regards
Felix

Am 05.06.2013 um 05:52 schrieb Martin Lichtin:

Hi Ariès

I am wondering what the preferred way is to avoid the "not compatible with this blueprint extender" issue.

But two steps back first:

The issue started popping up after using org.osgi.compendium/4.3.1 (as deemed appropriate for Karaf 2.3.1). (compendium bundle is needed because of the H2 bundle recently starting to require "org.osgi.service.jdbc").

-> both org.osgi.compendium/4.3.1 and org.apache.aries.blueprint.api/1.0.0 export the BlueprintContainer interface.

When Aries scans a bundle for BP, it checks that the bundle classloader picks up the Aries BlueprintContainer class. If not, it spits out above mentioned "is not compatible" info message. So far, so good.

However, I have some bundles that need "DynamicImport-Package=*".
Their classloader unfortunately loads the BlueprintContainer interface from org.osgi.compendium.

Any ideas how I can configure my bundle so it prefers the Aries bundle for loading "BlueprintContainer.class"?

Martin



Reply via email to