I have to agree. In my usage of aries the blueprint runtime can see namespace handlers that are hidden from the blueprint bundle.

Joe I'm happy to raise a JIRA against the plugin if you don't want to, but we need this fixed.

Alasdair

On 25 Mar 2010, at 18:34, Timothy Ward <[email protected]> wrote:


I agree that this looks like a defect in the maven bundle plugin. The services aren't used by the bundle, so they should not be expressed as Import-Service entries for the bundle.

I am also very concerned that the Import-Service entries generated are Aries specific. I have plans to add Spring DM/Gemini Blueprint support for the Aries JPA container namespace (which I have now formalized in JIRA Aries-268). Adding this Import-Service header may prevent this support from being added, or at the very least lead to unnecessary bundles (and their dependencies) being provisioned. Essentially, someone who already has a Gemini blueprint implementation installed may end up with Aries blueprint as well, even though it is not necessary.

One final concern is that the Import-Service headers being generated are non-standard (the OSGi spec says that the values have no attributes). Isn't there a risk that this might break existing tools?

I am +1 for raising a bug.

Regards,

Tim



----------------------------------------
Date: Thu, 25 Mar 2010 13:58:15 -0400
From: [email protected]
To: [email protected]
Subject: maven-bundle-plugin generating Import-Service entries

I've noticed that recently the maven-bundle-plugin has started to
generate the following Import-Service entries for namespace extensions for JPA and declarative transactions. For example, in AriesTrader there
is a jpa persistence bundle that uses both of these features and
therefore necessarily includes the following in the blueprint.xml:


xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0";>
...


class= "org.apache.aries.samples.ariestrader.persist.jpa.cm.TradeJpaCm"
init-method="init">





This now results in the following import-service entries being generated
in the MANIFEST.MF:

Import-Service: org.apache.aries.blueprint.NamespaceHandler;filter="(o
sgi.service.blueprint.namespace=http://aries.apache.org/xmlns/transac
tions/v1.0.0)",org.apache.aries.blueprint.NamespaceHandler;filter="(o
sgi.service.blueprint.namespace=http://aries.apache.org/xmlns/jpa/v1.
0.0)"

These just started appearing recently - perhaps due to some recent
change in the maven-bundle-plugin?

IIUC these services are really only used by the blueprint
implementation. They are not used directly by the application and so it
seems to be inappropriate to include these in the MANIFEST for the
application bundle. Is this a defect for the maven-bundle-plugin?

Regards,
Joe

_________________________________________________________________
We want to hear all your funny, exciting and crazy Hotmail stories. Tell us now
http://clk.atdmt.com/UKM/go/195013117/direct/01/

Reply via email to