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.
Thanks for the patches - we have a number of changes to commons-parent since the last release so better to get those in a release before we add the dependency on the bundleplugin SNAPSHOT - then it won't be holding those changes up until the bundleplugin 1.1.0 is released. I've just called a vote on releasing commons-parent and if that succeeds I plan to then add the bundleplugin and try it out on various components. Niall > 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. > > > 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]