I am trying to configure <artifactId>maven-ipojo-plugin</artifactId> to be used
in combination with the <artifactId>maven-war-plugin</artifactId>
The overall goal is to have a <packaging>war</packaging> which can also be
exposed as a bundle.
I have managed that the <maven-bundle-plugin> generates a manifest, which is
picked up and included in the war. However the next step, using ipojo for
handling the service and service instances isn't working. It's not being
included in the manifest.
Please find attached the relevant snapshots of my maven pom:
Thanks for your support,
Kr Andrew
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warSourceDirectory>web</warSourceDirectory>
<archive>
<!-- add the generated manifest
of the osgi-bundle plugin to the war -->
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
<webXml>src/main/web/WEB-INF/web.xml</webXml>
</configuration>
</plugin>
<plugin>
<!--
The goal here is to be able to use a
different packaging type than "bundle", say "war" packaging, and still get
benefits of the maven-bundle-plugin.
The major benefit is of course having the
manifest being generated by the BND tool.
If your project is packaged as "war", you
can still use the maven-bundle-plugin to generate the manifest if you add "war"
to supportedProjectTypes:
-->
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.1.0</version>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
<extensions>true</extensions>
<configuration>
<supportedProjectTypes>
<supportedProjectType>jar</supportedProjectType>
<supportedProjectType>bundle</supportedProjectType>
<supportedProjectType>war</supportedProjectType>
</supportedProjectTypes>
<instructions>
<Bundle-SymbolicName>Planets
Service - JTidy</Bundle-SymbolicName>
<Bundle-Version>${pom.version}</Bundle-Version>
<!--assume public classes are in
the top package, and private classes are under ".internal"-->
<Export-Package>eu.planets_project.services.migrate.jtidy.*;version="${pom.version}"</Export-Package>
<!--each module can override
these defaults in their osgi.bnd file-->
<_include>-osgi.bnd</_include>
</instructions>
</configuration>
</plugin>
<!-- osgi - ipojo: meta.xml located in src>main>osgi>ipojo -->
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-ipojo-plugin</artifactId>
<version>1.4.2</version>
<executions>
<execution>
<goals>
<goal>ipojo-bundle</goal>
</goals>
<configuration>
<metadata>src/main/osgi/ipojo/meta.xml</metadata>
</configuration>
</execution>
</executions>
</plugin>
</plugins>