[ https://issues.apache.org/jira/browse/FELIX-449?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stuart McCulloch updated FELIX-449: ----------------------------------- Attachment: FELIX_449_20080109.txt Suggested patch - when applied to trunk, you can use: <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> <configuration> <excludeDependencies>true</excludeDependencies> <instructions> <Export-Package>*;version=${pom.version}</Export-Package> </instructions> </configuration> </plugin> to bundle the project classpath, excluding dependencies. PS: feel free to suggest alternative names for this option! > Add option to limit the classpath passed to BND to just the local project > (ie. target/classes) > ---------------------------------------------------------------------------------------------- > > Key: FELIX-449 > URL: https://issues.apache.org/jira/browse/FELIX-449 > Project: Felix > Issue Type: Improvement > Components: Maven Bundle Plugin > Affects Versions: 1.0.0 > Reporter: Stuart McCulloch > Assignee: Stuart McCulloch > Attachments: FELIX_449_20080109.txt > > > Email thread from Apache Commons: > On Dec 28, 2007 12:35 PM, Carsten Ziegeler <[EMAIL PROTECTED]> wrote: > > Hi, > > > > in the meantime Stuart fixed the problem with the maven bundleplugin, so > > I think we can give it a test drive :) > > > > Attached is a patch for the parent pom of commons and one to demonstrate > > how to add support for OSGi to commons-lang. > > > > The changes to the parent pom are minimal: it just adds the maven > > bundleplugin from the Apache Felix project. We currently need to use a > > snapshot version, but a release is comming soon. > > Besides adding the plugin, the patch also configures the bundle symbolic > > name for all modules. The symbolic name is the unique identifier which > > should follow java package naming. The best value is to use something > > like "org.apache.commons.{artifactId}" where artifact id is commons-lang > > or commons-collections etc. > > > > The patch to commons lang is also very simple. It changes the parent pom > > to the current snapshot (which includes the changes from above) and sets > > the packaging to bundle - this ensures that the bundleplugin runs and > > creates the resulting jar file. So the bundleplugin replaces the maven > > jar plugin. If you leave the packaging as "jar" the bundleplugin will > > not run. > > The last part of the patch adds the configuration to the bundleplugin. > > The export "*" exports all packages definied in this module for other > > bundles, so all classes are public. All packages are marked with the > > current version which allows to run different versions in parallel. > > The imports are not specified as they are calculated automatically by > > the bundleplugin. > > > > And that's it :) > > > > The changes to the other projects should be similar. > I tried using the bundle plugin (I checked out and built the latest > from svn) with Commons Validator and it produced the following > MANIFEST.MF: > http://people.apache.org/~niallp/commons-osgi/commons-validator-MANIFEST.MF > It seems to have picked up some Manifest entries from BeanUtils - for > example: > Extension-Name: org.apache.commons.beanutils > Implementation-Version: 1.6 > Specification-Title: Jakarta Commons Beanutils > Implementation-Title: org.apache.commons.beanutils > Niall > (N.B. The BeanUtils 1.7.0 jar has version incorectly specifying 1.6 in > its manifest. > > Carsten > > > > > > -- > > Carsten Ziegeler > > [EMAIL PROTECTED] > > > > Index: > > /Users/cziegeler/Developer/workspaces/default/commons-proper/commons-parent/pom.xml > > =================================================================== > > --- > > /Users/cziegeler/Developer/workspaces/default/commons-proper/commons-parent/pom.xml > > (revision 605909) > > +++ > > /Users/cziegeler/Developer/workspaces/default/commons-proper/commons-parent/pom.xml > > (working copy) > > @@ -159,6 +159,12 @@ > > <artifactId>maven-release-plugin</artifactId> > > <version>2.0-beta-7</version> > > </plugin> > > + <plugin> > > + <groupId>org.apache.felix</groupId> > > + <artifactId>maven-bundle-plugin</artifactId> > > + <version>1.1.0-SNAPSHOT</version> > > + <inherited>true</inherited> > > + </plugin> > > </plugins> > > </pluginManagement> > > <plugins> > > @@ -194,6 +200,15 @@ > > <jdkLevel>${maven.compile.source}</jdkLevel> > > </configuration> > > </plugin> > > + <plugin> > > + <groupId>org.apache.felix</groupId> > > + <artifactId>maven-bundle-plugin</artifactId> > > + <configuration> > > + <instructions> > > + > > <Bundle-SymbolicName>org.apache.commons.${pom.artifactId}</Bundle-SymbolicName> > > + </instructions> > > + </configuration> > > + </plugin> > > </plugins> > > </build> > > > > > > Index: > > /Users/cziegeler/Developer/workspaces/default/commons-proper/lang/pom.xml > > =================================================================== > > --- > > /Users/cziegeler/Developer/workspaces/default/commons-proper/lang/pom.xml > > (revision 605909) > > +++ > > /Users/cziegeler/Developer/workspaces/default/commons-proper/lang/pom.xml > > (working copy) > > @@ -22,13 +22,14 @@ > > <parent> > > <groupId>org.apache.commons</groupId> > > <artifactId>commons-parent</artifactId> > > - <version>5</version> > > + <version>6-SNAPSHOT</version> > > </parent> > > <modelVersion>4.0.0</modelVersion> > > <groupId>commons-lang</groupId> > > <artifactId>commons-lang</artifactId> > > <version>2.4-SNAPSHOT</version> > > <name>Commons Lang</name> > > + <packaging>bundle</packaging> > > > > <inceptionYear>2001</inceptionYear> > > <description> > > @@ -401,6 +402,16 @@ > > <tarLongFileMode>gnu</tarLongFileMode> > > </configuration> > > </plugin> > > + <plugin> > > + <groupId>org.apache.felix</groupId> > > + <artifactId>maven-bundle-plugin</artifactId> > > + <extensions>true</extensions> > > + <configuration> > > + <instructions> > > + <Export-Package>*;version=${pom.version}</Export-Package> > > + </instructions> > > + </configuration> > > + </plugin> > > </plugins> > > </build> > > > > > > > > --------------------------------------------------------------------- > > 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] -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.