> looking at the error message, I believe this is due a bug in > Bnd which was fixed after the 1.0.0 release (it ignored > bundle activators that were imported, not actually in the > finished bundle) > - this bug has been fixed and is available in the current > 1.1.0-SNAPSHOT
Works for me. Thank you very much for your response! regards, Bram > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf > Of Stuart McCulloch > Sent: Thursday, November 01, 2007 5:29 PM > To: [email protected] > Subject: Re: bundle plugin question > > On 01/11/2007, Bram de Kruijff <[EMAIL PROTECTED]> wrote: > > > > Hello all, > > > > trying to migrate from the maven-osgi-plugin (that was > deprecated..... > > ;)) to the maven-bundle-plugin I got stuck with our XML > parser 'wrapper' > > bundle. Can anyone give a hint how to configure this with the new > > plugin? > > > > > > The maven-osgi-plugin configuration below worked like a charm > > resulting in a 2k bundle with no classes and just the two > > javax.xml.parsers.* provider configuration files we put in the > > META-INF/services. At runtime it registers the services as expected. > > > > Now using the maven-bundle-plugin I get a build-time > 'Bundle-Activator > > not found on the bundle class path or imports'. Note that in both > > situations the org.osgi.compendium is on the build classpath with a > > provided scope. When changing this to a compile scope the build > > actually succeeds but also results in inclusion of the compendium > > classes :( > > > quick note here - provided scope dependencies are not added > to the Bnd tool classpath because the bundle mojo has > "@requiresDependencyResolution runtime" (I'm not 100% sure > why this was chosen - its been like that for a while - but it > does mean that you won't accidentally pull in classes from > other bundles, as they're typically marked as "provided") > > So how can I convince the bundle plugin that the activator actually is > > on the classpath and that the classes shouldn't included > but imported? > > > a bit of background to Bnd, which does most of the work underneath the > bundle-plugin: > > as explained on Peter Kriens' page at > http://www.aqute.biz/Code/Bnd, and in examples from the > bundle-plugin docs > http://felix.apache.org/site/maven-bundle-plugin-bnd.html, > the Bnd tool uses the Export-Package, Private-Package and > Include-Resource directives to decide the contents of the > bundle (ie. what classes and resources to _pull_ in) > > most of the time you won't need to set Import-Package (which > defaults to *) as Bnd will expand this to the set of packages > your bundle actually uses. You really only need to set it > when you need to tweak the discovered imports to mark some as > optional, or to set a version range, etc. - or in your case > where you're not actually including any classes. > > so the Bnd tool won't jar up everything under target/classes, > or everything on the classpath > - only what you specify in Export-Package, Private-Package > and Include-Resource - this can be very powerful, as it means > you can easily split a large project into several bundles. > > ( the bundle-plugin will automatically add Maven resources > for you using Include-Resource ) > > anyway, see below for more about your particular scenario... > > thank you! > > best regards, > > Bram > > > > -------------------------------- > > maven-osgi-plugin configuration > > -------------------------------- > > > > in the pom... > > > > <plugin> > > <groupId>org.apache.felix.plugins</groupId> > > <artifactId>maven-osgi-plugin</artifactId> > > <extensions>true</extensions> > > <configuration> > > <osgiManifest> > > > > > <bundleActivator>org.osgi.util.xml.XMLParserActivator</bundleA ctivator> > > <bundleName>XML Parser</bundleName> > > <importPackage>javax.xml.parsers, > > org.osgi.framework, org.osgi.util.xml</importPackage> > > <exportPackage /> > > </osgiManifest> > > </configuration> > > </plugin> > > > > > > in the manifest... > > > > Manifest-Version: 1.0 > > Archiver-Version: Plexus Archiver > > Created-By: Apache Maven > > Built-By: bramk > > Build-Jdk: 1.5.0_12 > > Bundle-Activator: org.osgi.util.xml.XMLParserActivator > > Bundle-Version: 9.2.2.SNAPSHOT > > Bundle-ManifestVersion: 2 > > Bundle-Vendor: GX Creative Online Development > > Import-Package: > javax.xml.parsers,org.osgi.framework,org.osgi.util.xml > > Bundle-Name: GX WebManager XML Parser > > Bundle-Classpath: . > > Bundle-SymbolicName: > nl.gx.webmanager.bundles.webmanager-xmlparser-bun > > dle > > > > > > > > -------------------------------- > > maven-bundle-plugin configuration > > -------------------------------- > > > > <plugin> > > <groupId>org.apache.felix</groupId> > > <artifactId>maven-bundle-plugin</artifactId> > > <extensions>true</extensions> > > <configuration> > > <instructions> > > > > > <Bundle-Activator>org.osgi.util.xml.XMLParserActivator</Bundle-Activat > > or > > > > > <Bundle-Name>XML Parser</Bundle-Name> > > <Import-Package>javax.xml.parsers, > > org.osgi.framework, org.osgi.util.xml</Import-Package> > > <Export-Package /> > > </instructions> > > </configuration> > > </plugin> > > > > > > [ERROR] Bundle-Activator not found on the bundle class path > or imports: > > org.osgi.util.xml.XMLParserActivator > > org.apache.maven.plugin.MojoFailureException: Found errors, see log > > at > > > org.apache.felix.tools.maven2.bundleplugin.BundlePlugin.execute(Bundle > > Pl > > ugin.java:153) > > > looking at the error message, I believe this is due a bug in > Bnd which was fixed after the 1.0.0 release (it ignored > bundle activators that were imported, not actually in the > finished bundle) > - this bug has been fixed and is available in the current > 1.1.0-SNAPSHOT > > ( FYI, you can use > "http://repository.ops4j.org/mvn-snapshots" if you want to > try this snapshot > without also pulling in all the other snapshots of various > maven plugins that are in the main > snapshot repository at apache... ) > > I tried these instructions with the 1.1.0-SNAPSHOT and I get > a bundle with the right resources and the necessary imports - > note you will see a warning about there being no packages in > the final bundle, but the build will succeed. Also changing > the compendium to compile scope didn't add any extra classes > to the bundle. > > HTH - if you find any missing features or outstanding bugs, > file them at JIRA and I'll take a look > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > -- > Cheers, Stuart > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]

