felix-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Barbara Rosi-Schwartz <Barbara.Rosi-Schwa...@iggroup.com>
Subject RE: Embed-Dependency problem with Maven Bundle plugin
Date Wed, 30 Nov 2011 11:19:29 GMT
Thanks Stuart, very clear explanation.

The problem I am facing now is that, in the generated manifest, the Import-Package clause
contains packages that are not immediately required by the classes in the bundle to be. Why
is that? The main issue is that these Import-Package elements end up dragging in all sorts
of transitive dependencies and I am finding myself pulling on a very long string...

Do I need to configure the Import-Package clause as well?

TIA,
B.

-----Original Message-----
From: Stuart McCulloch [mailto:mcculls@gmail.com] 
Sent: 29 November 2011 12:35
To: users@felix.apache.org
Subject: Re: Embed-Dependency problem with Maven Bundle plugin

On 29 Nov 2011, at 12:09, Barbara Rosi-Schwartz wrote:

> Hello.
> 
> I am using Maven Bundle plugin version 2.3.5 and I am having a problem 
> with it. If I use the
> 
> <Embed-Dependency>*;scope=compile|runtime;inline=false</Embed-Dependen
> cy>
> 
> clause, all dependencies are embedded, as expected. If I instead specify the ones I want
embedded as:
> 
> <Embed-Dependency>uk.co.igindex.singlesignon.client,uk.co.igindex.spri
> ngrest.client,uk.co.igindex.springrest.domain;scope=compile|runtime;in
> line=false</Embed-Dependency>

The Embed-Dependency grammar is defined here:

   http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html#ApacheFelixMavenBundlePlugin%28BND%29-Embeddingdependencies

Clauses are separated by commas and if you don't specify an attribute (ie. attr=value) then
it defaults to the artifactId

Therefore:

   <Embed-Dependency>uk.co.igindex.singlesignon.client,uk.co.igindex.springrest.client,uk.co.igindex.springrest.domain;scope=compile|runtime;inline=false</Embed-Dependency>

is parsed as:

   ( artifactId=uk.co.igindex.singlesignon.client )
   OR ( artifactId=uk.co.igindex.springrest.client )
   OR ( artifactId=uk.co.igindex.springrest.domain AND ( scope=compile OR scope=runtime )
AND don't inline )

If you want to list alternative values for a given attribute use the pipe symbol | as follows

   <Embed-Dependency>uk.co.igindex.singlesignon.client|uk.co.igindex.springrest.client|uk.co.igindex.springrest.domain;scope=compile|runtime;inline=false</Embed-Dependency>

Finally is "uk.co.igindex.singlesignon.client" the concatenated groupId + artifact? If so
then you could use something like:

   <Embed-Dependency>artifactId=client|domain;groupId=uk.co.igindex.*;scope=compile|runtime;inline=false</Embed-Dependency>

to select dependencies with groupIds that start with "uk.co.igindex..." and that have "client"
or "domain" artifactIds

HTH

> I get the following warning:
> 
> [WARNING] Embed-Dependency: clause "uk.co.igindex.singlesignon.client" 
> did not match any dependencies [WARNING] Embed-Dependency: clause 
> "uk.co.igindex.springrest.client" did not match any dependencies 
> [WARNING] Embed-Dependency: clause 
> "uk.co.igindex.springrest.domain;scope=compile|runtime;inline=false" 
> did not match any dependencies
> 
> and no dependencies are actually embedded. What am I doing wrong?
> 
> TIA,
> B.
> 
> BARBARA ROSI-SCHWARTZ
> Senior Developer
> 
> IG Group|Cannon Bridge House
> 25 Dowgate Hill|London|EC4R ZYA
> 
> t: +44(0)20 7573 0208 (Direct)
> t: +44(0)20 7896 0011 (Switchboard)
> w: www.iggroup.com
> 
> 
> ________________________________
> The information contained in this email is strictly confidential and for the use of the
addressee only, unless otherwise indicated. If you are not the intended recipient, please
do not read, copy, use or disclose to others this message or any attachment. Please also notify
the sender by replying to this email or by telephone (+44 (0)20 7896 0011) and then delete
the email and any copies of it. Opinions, conclusions (etc) that do not relate to the official
business of this company shall be understood as neither given nor endorsed by it. IG Group
Holdings plc is a company registered in England and Wales under number 01190902. VAT registration
number 761 2978 07. Registered Office: Cannon Bridge House, 25 Dowgate Hill, London EC4R 2YA.
Authorised and regulated by the Financial Services Authority. FSA Register number 114059.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Mime
View raw message