On 14 Apr 2013, at 09:59, Philippe Marschall wrote: > Hi > > I'm trying to create a "wrapper bundle", a bundle containing several JARs > using the maven-bundle-plugin. The JARs should just be added to the root of > the bundle the Bundle-ClassPath. > > My understanding is that inline=false can be used to achieve this. However > when I do this the JARs get added to the bundle root _and_ expanded inside > the bundle. > > The see attached POM to reproduce the issue. The relevant section is: > > <instructions> > <Import-Package> > *;-noimport:=true
^ -noimport:=true only makes sense on export related instructions, see http://www.aqute.biz/Bnd/Format#export-package > </Import-Package> > <Export-Package>*;-split-package:=merge-last</Export-Package> ^ this is the reason you're getting inlined content, see: http://felix.apache.org/site/apache-felix-bundle-plugin-faq.html#ApacheFelixBundlePluginFAQ-WhenIembedadependencywhydoIseeduplicatedcontent%253F you should use _exportcontents when exporting packages from embedded content > <Bundle-SymbolicName>${project.groupId}.${project.artifactId};singleton:=true</Bundle-SymbolicName> > <Bundle-ActivationPolicy>lazy</Bundle-ActivationPolicy> > <Bundle-RequiredExecutionEnvironment>JavaSE-1.6</Bundle-RequiredExecutionEnvironment> > <Embed-Dependency>*;scope=provided;inline=false</Embed-Dependency> ^ inline=false is the default setting, so this isn't needed here once you change the Export-Package instruction to _exportcontents > <Embed-Transitive>true</Embed-Transitive> > <Bundle-ClassPath>{maven-dependencies}</Bundle-ClassPath> ^ this isn't necessary, the embed instruction will take care of the Bundle-ClassPath for you (you'd only use this if you wanted to add additional jars or folders) > </instructions> Try the following instructions: <instructions> <Bundle-SymbolicName>${project.groupId}.${project.artifactId};singleton:=true</Bundle-SymbolicName> <Bundle-ActivationPolicy>lazy</Bundle-ActivationPolicy> <Bundle-RequiredExecutionEnvironment>JavaSE-1.6</Bundle-RequiredExecutionEnvironment> <Embed-Dependency>*;scope=provided</Embed-Dependency> <Embed-Transitive>true</Embed-Transitive> <_exportcontents>*;-split-package:=merge-last</_exportcontents> </instructions> You could also try adding: <Import-Package>*;resolution:=optional</Import-Package> if you're having issues with unresolved imports at runtime that aren't actually required (ie. when you know you don't use the class that requires this import) > Cheers > Philippe > <pom.xml> > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

