On Jan 9, 2008 5:35 PM, Stuart McCulloch <[EMAIL PROTECTED]> wrote: > On 09/01/2008, Niall Pemberton <[EMAIL PROTECTED]> wrote: > > > On Jan 9, 2008 6:11 AM, Stuart McCulloch <[EMAIL PROTECTED]> > wrote: > > > Hi Carsten / Niall, > > > > > > I've mocked up a quick patch and attached it to > > > http://issues.apache.org/jira/browse/FELIX-449 > > > could you give it a spin and see if it resolves the problem? (see below > for > > > the new config option) > > > > Hey, thanks for the quick response - I'll give it a spin and put > > feedback on the Jira ticket FELIX-449 > > thanks, I've made some improvements based on your feedback - can you build > the plugin from svn and try it out?
Looks good from the "non-OSGi" manifest entries PoV (using excludeDependencies=false) - its picked up a couple of entries from BeanUtils (e.g. Extension-Name) - but I could sort those out now by specifying them explicitly. The one thing that strikes me though are the version numbers are all the same - I don't really know how OSGi works, but for example (if I use excludeDependencies=false) I would have expected to see the dependencies version numbers somewhere in the export/import statements - for example Validator 1.4-SNAPSHOT depends on BeanUtils 1.7 - but all the version numbers spcify 1.4.0.SNAPSHOT - is this correct? Niall > > Niall > > > > > -- > > > Cheers, Stuart > > > > > > ---------- Forwarded message ---------- > > > From: Stuart McCulloch (JIRA) <[EMAIL PROTECTED] > > > > Date: 9 Jan 2008 13:59 > > > Subject: [jira] Updated: (FELIX-449) Add option to limit the classpath > > > passed to BND to just the local project (ie. target/classes) > > > To: dev@felix.apache.org > > > > > > > > > [ > > > > 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. > > > > > > > > > > > > > > > -- > Cheers, Stuart