Good morning, I am back!... ;-) I am trying out Neil's large bundle option as an interim solution. I am using the
<Embed-Dependency>*;scope=compile|runtime</Embed-Dependency> Instruction. When I deploy my fat bundle, it falls over with a transitive dependency used in one of the embedded jars not being found (log4j, of all classes). To fix that, I decided to try and add the instruction <Embed-Transitive>true</Embed-Transitive> However maven does not seem to like this as it fails to complete its job with error: Class in different directory than declared. Path from class name is com/sun/codemodel/CodeWriter.class but the path in the jar is 1.0/com/sun/codemodel/CodeWriter.class from Jar:jaxb-xjc-2.1.10.jar Which I thought was fixed a while back. Any idea anyone? TIA, B. -----Original Message----- From: Neil Bartlett [mailto:njbartl...@gmail.com] Sent: 17 October 2011 14:26 To: users@felix.apache.org Subject: Re: Hot to configure Maven Bundle plug-in for a mixture of OSGi and non OSGi dependencies Hi Barbara, I feel ambivalent about it ;-) It's clearly not ideal, but as part of a migration it's acceptable. Same with embedding dependencies… both result in a fatter system than required. Rgds, Neil On Monday, 17 October 2011 at 14:21, Barbara Rosi-Schwartz wrote: > Neil, > > what I was trying to do, was not to treat the company jars as "third party" > ones. Since I have access to the projects and their pom files, I was trying > to get at least the jars my project depends on to be more or less proper OSGi > bundles, at the same time hiding all of their internal dependencies my > project does not care about. > > Having said that, I can see that this implies potentially several copies of > the same libraries, which is not ideal. How do you feel about using a large > "3rd party" bundle when what one wants to achieve is modularity and > download/use of only those bundles and libs that are needed for a given user > invoked task? Still better than having several copies of the same libs? > > Thanks, > B. > > -----Original Message----- > From: Neil Bartlett [mailto:njbartl...@gmail.com] > Sent: 17 October 2011 14:11 > To: users@felix.apache.org (mailto:users@felix.apache.org) > Subject: Re: Hot to configure Maven Bundle plug-in for a mixture of > OSGi and non OSGi dependencies > > I appreciate that OSGifying a large set of legacy JARs is a significant task. > > One approach you can use as a stepping stone is to create a single, large > "3rd party" bundle. This would contain basically all of the libraries you > require, referenced via Bundle-Classpath, and export the packages that you > need from your own bundles. > > The advantage of this versus embedding is that you only have one copy of each > library, and also that your main bundles are in pretty much the state you > want them to be in, using Import-Package etc. You can then gradually dissolve > the 3rd party bundle by removing a single library from its Bundle-Classpath > and OSGifying it in isolation, without needing to refactor your own bundles. > > Regards > Neil > > > > On Monday, 17 October 2011 at 13:44, Barbara Rosi-Schwartz wrote: > > > Thanks Neil. > > > > I did try what you suggest, but I got so many bees in my bonnet... :-( I > > was on the path of OSGi-fying the whole organisation here, a lot more than > > I had anticipated... eventually I gave that up in frustration. > > > > -----Original Message----- > > From: Neil Bartlett [mailto:njbartl...@gmail.com] > > Sent: 17 October 2011 12:11 > > To: users@felix.apache.org (mailto:users@felix.apache.org) > > Subject: Re: Hot to configure Maven Bundle plug-in for a mixture of > > OSGi and non OSGi dependencies > > > > Barbara, > > > > Why not OSGi-fy those third party dependencies and save the results in a > > repository? You only have to do this once (per dependency) and it avoids > > all the issues with embedding libraries. > > > > Rgds > > Neil > > > > > > > > On Monday, 17 October 2011 at 11:51, Pierre Henry Perret wrote: > > > > > Hi Rosi, > > > > > > It recalls me some similar case I had in a project... > > > > > > I would had the *baz *dependance in the *parent *management > > > section so that it is inherited from all *modules.* > > > * > > > * > > > *WDYT ? > > > * > > > -- > > > Pierre-Henry Perret > > > mob2: +33 (0)6 69 52 18 48 > > > > > > > > > > > > > > > 2011/10/17 Barbara Rosi-Schwartz > > > <barbara.rosi-schwa...@iggroup.com > > > (mailto:barbara.rosi-schwa...@iggroup.com) > > > (mailto:barbara.rosi-schwa...@iggroup.com) > > > (mailto:barbara.rosi-schwa...@iggroup.com)> > > > > > > > Hello. > > > > > > > > I am using the Maven Bundle plug-in to OSGi-ify dependencies > > > > that we have on another team's jars. These jars in turn have > > > > their own dependencies, some of which I have already OSGi-ified, > > > > whereas others are third parties ones which I would just like to embed > > > > in the generated bundles. > > > > > > > > Let's assume that the jar I want to OSGi-ify is artefact foo-bar > > > > and that it contains a bunch of third party dependencies + a > > > > dependency on artefact foo-baz, which I have already OSGi-ified. > > > > > > > > To this aim I configure my Maven Bundle plug-in as follows: > > > > > > > > <configuration> > > > > <instructions> > > > > <Export-Package>com.foo.bar.*</Export-Package> > > > > <Bundle-Version>${parent.version}</Bundle-Version> > > > > <Import-Package>com.foo.baz.client</Import-Package> > > > > <Embed-Dependency>!foo-baz,*;scope=compile|runtime</Embed-Depend > > > > en > > > > cy > > > > </instructions> > > > > </configuration> > > > > > > > > The generated com.foo.bar's MANIFEST.MF does contain the > > > > expected Import-Package clause, but it also contains foo-baz.jar > > > > in the Bundle-ClassPath clause, which is not what I want. I have > > > > tried several permutation of the <Embed-Dependency> specification, but > > > > to no avail. > > > > > > > > How do I correctly specify the instructions to achieve my goal? > > > > > > > > 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 (http://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. > > > > > > 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.