<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title>Apache Felix - Maven Bundle Plugin (BND)</title>


  
    
    <link rel="stylesheet" href="maven-bundle-plugin-bnd_files/site.css" type="text/css" media="all">
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"></head><body>
    <div class="title"><div class="logo"><a href="http://felix.apache.org/site/index.html"><img alt="Apache Felix" src="maven-bundle-plugin-bnd_files/logo.png" border="0"></a></div><div class="header"><a href="http://www.apache.org/"><img alt="Apache" src="maven-bundle-plugin-bnd_files/apache.png" border="0"></a></div></div>
    <div class="menu">
<ul>
	<li><a href="http://felix.apache.org/site/index.html" title="Index">home</a></li>
	<li><a href="http://felix.apache.org/site/news.html" title="news">news</a></li>
	<li><a href="http://felix.apache.org/site/status.html" title="status">status</a></li>
	<li><a href="http://felix.apache.org/site/license.html" title="license">license</a></li>
	<li><span class="nobr"><a href="http://felix.apache.org/site/downloads.cgi" title="Visit page outside Confluence" rel="nofollow">downloads<sup><img class="rendericon" src="maven-bundle-plugin-bnd_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span></li>
	<li><a href="http://felix.apache.org/site/documentation.html" title="documentation">documentation</a></li>
	<li><a href="http://felix.apache.org/site/mailinglists.html" title="mailinglists">mailing lists</a></li>
	<li><span class="nobr"><a href="http://cwiki.apache.org/confluence/x/O-" title="Visit page outside Confluence" rel="nofollow">wiki<sup><img class="rendericon" src="maven-bundle-plugin-bnd_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span></li>
	<li><a href="http://felix.apache.org/site/committers.html" title="committers">committers</a></li>
	<li><a href="http://felix.apache.org/site/faq.html" title="faq">faq</a></li>
	<li><a href="http://felix.apache.org/site/roadmap.html" title="roadmap">roadmap</a></li>
	<li><a href="http://felix.apache.org/site/sourcecode.html" title="sourcecode">source code</a></li>
	<li><a href="http://felix.apache.org/site/codingstandards.html" title="codingstandards">coding standards</a></li>
	<li><a href="http://felix.apache.org/site/issuetracking.html" title="issuetracking">issue tracking</a></li>
	<li><a href="http://felix.apache.org/site/dependencies.html" title="dependencies">dependencies</a></li>
	<li><span class="nobr"><a href="http://www.apache.org/" title="Visit page outside Confluence" rel="nofollow">apache software foundation<sup><img class="rendericon" src="maven-bundle-plugin-bnd_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span></li>
	<li><span class="nobr"><a href="http://www.apache.org/foundation/sponsorship.html" title="Visit page outside Confluence" rel="nofollow">sponsorship<sup><img class="rendericon" src="maven-bundle-plugin-bnd_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span></li>
	<li><span class="nobr"><a href="http://www.apache.org/foundation/thanks.html" title="Visit page outside Confluence" rel="nofollow">sponsors<sup><img class="rendericon" src="maven-bundle-plugin-bnd_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span></li>
</ul> </div>
    <div class="main">
<h1><a name="MavenBundlePlugin(BND)-BundlePluginforMaven"></a>Bundle Plugin for Maven</h1>

<p>This plugin for Maven 2 is based on the <span class="nobr"><a href="http://www.aqute.biz/Code/Bnd" title="Visit page outside Confluence" rel="nofollow">BND<sup><img class="rendericon" src="maven-bundle-plugin-bnd_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span>
tool from Peter Kriens. The way BND works is by treating your project
as a big collection of classes (e.g., project code, dependencies, and
the class path). The way you create a bundle with BND is to tell it the
content of the bundle's JAR file as a subset of the available classes.
This plugin wraps BND to make it work specifically with the Maven 2
project structure and to provide it with reasonable default behavior
for Maven 2 projects.</p>

<p><a name="MavenBundlePlugin(BND)-simpleexample"></a></p>

<h1><a name="MavenBundlePlugin(BND)-SimpleExample"></a>Simple Example</h1>

<p>Rather than going straight to a detailed list of plugin features, we
will first look at a simple example of how to use the plugin to give an
immediate flavor. A detailed "<a href="#MavenBundlePlugin%2528BND%2529-howto" title="how-to on Maven Bundle Plugin (BND)">how to</a>" will follow.</p>

<p>Assume that we have a simple bundle project that has a pubic API package an several implementation packages, such as:</p>

<div class="preformatted"><div class="preformattedContent">
<pre>org.foo.myproject.api
org.foo.myproject.impl1
org.foo.myproject.impl2
...
</pre>
</div></div>

<p>If we also assume that we have a bundle activator in one of the implementation packages, then the <tt>&lt;plugins&gt;</tt> section of the POM file for this bundle project would look like this:</p>

<div class="preformatted"><div class="preformattedContent">
<pre>...
&lt;plugins&gt;
  &lt;plugin&gt;
    &lt;groupId&gt;org.apache.felix&lt;/groupId&gt;
    &lt;artifactId&gt;maven-bundle-plugin&lt;/artifactId&gt;
    &lt;extensions&gt;true&lt;/extensions&gt;
    &lt;configuration&gt;
      &lt;instructions&gt;
        &lt;Export-Package&gt;org.foo.myproject.api&lt;/Export-Package&gt;
        &lt;Private-Package&gt;org.foo.myproject.*&lt;/Private-Package&gt;
        &lt;Bundle-Activator&gt;org.foo.myproject.impl1.Activator&lt;/Bundle-Activator&gt;
      &lt;/instructions&gt;
    &lt;/configuration&gt;
  &lt;/plugin&gt;
&lt;/plugins&gt;
...
</pre>
</div></div>

<p>The <tt>&lt;Export-Package&gt;</tt> and <tt>&lt;Private-Package&gt;</tt> instructions tell the plugin about the contents of the resulting bundle JAR file. The <tt>&lt;Export-Package&gt;</tt> instruction tells the plugin which of the available packages to copy into the bundle <b>and</b> export, while the <tt>&lt;Private-Package&gt;</tt> instruction indicates which of the available packages to copy into the bundle <b>but not</b>
export. If the two sets overlap, as they do in the case, then the
export takes precedence. Since we did not specify any values for any
other bundle manifest headers, they will assume default values which
are described <a href="#MavenBundlePlugin%2528BND%2529-defaultbehavior" title="default-behavior on Maven Bundle Plugin (BND)">below</a>. One specific behavior to highlight is that the plugin generates the <tt>Import-Package</tt>
bundle manifest header based on the contents of the bundle, which means
that you generally do not ever need to explicitly specify it yourself.
That's it.</p>

<h1><a name="MavenBundlePlugin(BND)-Features"></a>Features</h1>

<p>The BND library underlying the plugin defines instructions to direct
its behavior. For this Maven plugin, these instructions are issued in
the plugin configuration section of the POM file, as was illustrated <a href="#MavenBundlePlugin%2528BND%2529-simpleexample" title="simple-example on Maven Bundle Plugin (BND)">above</a>. BND recognizes three types of instructions:</p>

<ol>
	<li><em>Manifest headers</em> - Any instruction that starts with
a capital letter will appear in the resulting bundle's manifest file;
the value for the header will either be copied, augmented, or generated
by BND depending on the instruction.</li>
	<li><em>Variables</em> - Any instruction starting with a lowercase letter is assumed to be a variable in the form of a name-value pair, such as <tt>version=3.0</tt>, that can be used for property substitution, but is not copied to the manifest.</li>
	<li><em>Directives</em>
- Any instruction starting with a '-' character is considered to be a
directive that informs BND to perform some special processing and is
not copied to the manifest.</li>
</ol>


<p>The remainder of this section covers the most important aspects of BND's instructions; for complete details refer to the <span class="nobr"><a href="http://www.aqute.biz/Code/Bnd" title="Visit page outside Confluence" rel="nofollow">BND documentation<sup><img class="rendericon" src="maven-bundle-plugin-bnd_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span>.</p>

<p><a name="MavenBundlePlugin(BND)-instructions"></a></p>

<h2><a name="MavenBundlePlugin(BND)-Instructions"></a>Instructions</h2>

<h3><a name="MavenBundlePlugin(BND)-{{&lt;ExportPackage&gt;}}"></a><tt>&lt;Export-Package&gt;</tt></h3>

<p>The <tt>&lt;Export-Package&gt;</tt> instruction is a list of
packages for the bundle to export. These packages are copied into the
resulting bundle JAR file from the available classes (i.e., project
classes, dependencies, and class path); thus, it is possible to include
classes into your bundle that are not associated with source files in
your project. <tt>&lt;Export-Package&gt;</tt> can be specified with
package patterns using the '*' wildcard. Also, it is possible to
exclude packages using negation by starting the package pattern with
'!'. Thus, non-negated patterns indicate which of the available
packages to include in the bundle, whereas negated patterns indicate
which should not be included in the bundle.</p>

<p>The list of package patterns is ordered and earlier patterns are applied before later patterns. For example, if you specify "<tt>org.foo.*,!org.foo.impl</tt>" the second pattern has no effect since all <tt>org.foo</tt> packages have already been selected by the first pattern. Instead, you should specify "<tt>!org.foo.impl,org.foo.*</tt>", which will export all <tt>org.foo</tt> packages except <tt>org.foo.impl</tt>.</p>

<p>Following standard OSGi R4 syntax, package patterns can include both
directives and attributes, which will be copied appropriately into the
generated Export-Package manifest header. Besides explicitly listing
package version attributes, BND will also determine package versions by
examining the source JAR file or from <tt>packageinfo</tt> files in the package directory.</p>

<h3><a name="MavenBundlePlugin(BND)-{{&lt;PrivatePackage&gt;}}"></a><tt>&lt;Private-Package&gt;</tt></h3>

<p>The <tt>&lt;Private-Package&gt;</tt> instruction is similar in every way to the <tt>&lt;Export-Package&gt;</tt> instruction, except for the fact that these packages will <b>not</b>
be exported by the bundle. If a package is selected by both the export
and private package headers, then the export takes precedence.</p>

<h3><a name="MavenBundlePlugin(BND)-{{&lt;IncludeResource&gt;}}"></a><tt>&lt;Include-Resource&gt;</tt></h3>

<p>The <tt>&lt;Include-Resource&gt;</tt> instruction is a list of
arbitrary resources that should be copied into the bundle JAR file. The
specified resources are declared as clauses that can have the following
forms:</p>

<div class="preformatted"><div class="preformattedContent">
<pre>clause ::= assignment | inline | simple
assignment ::= PATH '=' PATH
simple ::= PATH
inline ::= '@' PATH
</pre>
</div></div>

<p>For the <tt>&lt;Include-Resource&gt;</tt> instruction, actual file paths are relative to the <tt>pom.xml</tt>, while file copy destinations are relative to the root of the resulting bundle JAR file. In the case of <tt>assignment</tt> or <tt>simple</tt> forms, the <tt>PATH</tt> parameter can point to a file or directory. The <tt>simple</tt>
form will place the resource in the bundle JAR with only the file name,
i.e., without any path component. For example, including <tt>src/main/resources/a/b.c</tt> will result in a resource <tt>b.c</tt> in the root of the bundle JAR. If the <tt>PATH</tt>
points to a directory, the entire directory hierarchy is copied into
the resulting bundle JAR file relative to the specified directory. If a
specific resource must be placed into a subdirectory of the bundle jar,
then use the <tt>assignment</tt> form, where the first path is the the
destination path (including file name if the resource is a file) and
the second path is the resource to copy. The <tt>inline</tt> form requires a ZIP or JAR file, which will be completely expanded in the bundle JAR.</p>

<p>If a resource clause is specified inside of "{ ... }" brackets, then
variable substitution will be performed on the resource, where
variables in the resources are denoted with "${ ... }" syntax.</p>

<p>By default the bundle plugin converts the project's Maven resource directories into a single <tt>&lt;Include-Resource&gt;</tt> instruction. If you specify your own <tt>&lt;Include-Resource&gt;</tt> instruction, this will replace the generated one. To include the generated list of Maven resources in your own <tt>&lt;Include-Resource&gt;</tt> instruction just add {<tt>maven-resources</tt>} to the list and it will be expanded automatically.</p>

<h3><a name="MavenBundlePlugin(BND)-{{&lt;ImportPackage&gt;}}"></a><tt>&lt;Import-Package&gt;</tt></h3>

<p>The <tt>&lt;Import-Package&gt;</tt> instruction is a list of
packages that are required by the bundle's contained packages. The
default for this header is "*", resulting in importing all referred
packages. This header rarely has to be explicitly specified. However,
in certain cases when there is an unwanted import, such an import can
be removed by using a negation package pattern. The package patterns
work in the same way as for <tt>&lt;Export-Package&gt;</tt>, which means they are ordered. For example, if you wanted to import all packages except <tt>org.foo.impl</tt> you would specify "<tt>!org.foo.impl,*</tt>"</p>

<p><a name="MavenBundlePlugin(BND)-defaultbehavior"></a></p>

<h2><a name="MavenBundlePlugin(BND)-DefaultBehavior"></a>Default Behavior</h2>

<p>To use this plugin, very little information is required by BND. As
part of the Maven integration, the plugin tries to set reasonable
defaults for various instructions. For example:</p>

<ul>
	<li><tt>&lt;Bundle-SymbolicName&gt;</tt> is assumed to be "<tt>${groupId}.${artifactId</tt>}".</li>
	<li><tt>&lt;Export-Package&gt;</tt> is assumed to be "<tt>${groupId}.${artifactId}.*</tt>", unless <tt>&lt;Private-Package&gt;</tt> is specified, then <tt>&lt;Export-Package&gt;</tt> is assumed to be empty.</li>
	<li><tt>&lt;Private-Package&gt;</tt> is assumed to be empty by default.</li>
	<li><tt>&lt;Import-Package&gt;</tt> is assumed to be "<tt>*</tt>", which imports everything referred to by the bundle content, but not contained in the bundle.</li>
	<li><tt>&lt;Include-Resource&gt;</tt> is generated from the project's Maven resources, typically "<tt>src/main/resources/</tt>",
which will copy the specified project directory hierarchy into the
resulting bundle JAR file, mirroring standard Maven behavior.</li>
	<li><tt>&lt;Bundle-Version&gt;</tt> is assumed to be "<tt>${pom.version</tt>}" with '-' character separator of the qualifier replaced with a '.' character.</li>
	<li><tt>&lt;Bundle-Name&gt;</tt> is assumed to be "<tt>${pom.name</tt>}".</li>
	<li><tt>&lt;Bundle-Description&gt;</tt> is assumed to be "<tt>${pom.description</tt>}".</li>
	<li><tt>&lt;Bundle-License&gt;</tt> is assumed to be "<tt>${pom.licenses</tt>}".</li>
	<li><tt>&lt;Bundle-Vendor&gt;</tt> is assumed to be "<tt>${pom.organization.name</tt>}".</li>
	<li><tt>&lt;Bundle-DocURL&gt;</tt> is assumed to be "<tt>${pom.organization.url</tt>}".</li>
</ul>


<p>Since the plugin creates bundles for OSGi R4, it hard-codes <tt>Bundle-ManifestVersion</tt>
to be '2'. Additionally, it generates imports for every export to
ensure package substitutability, which is very important when working
with collaborating services. It is possible to override any of these
values (except <tt>Bundle-ManifestVersion</tt>) just by specifying the desired value in the plugin configuration section of the POM file.</p>

<p><a name="MavenBundlePlugin(BND)-howto"></a></p>

<h1><a name="MavenBundlePlugin(BND)-Detailed&quot;HowTo&quot;"></a>Detailed "How To"</h1>

<h2><a name="MavenBundlePlugin(BND)-GetMaven2"></a>Get Maven2</h2>

<p>The first step in the process of using the plugin is downloading and
installing the latest version of the Maven2 runtime. The latest Maven2
release and instuctions for getting started with Maven2 can be found at
the <span class="nobr"><a href="http://maven.apache.org/index.html" title="Visit page outside Confluence" rel="nofollow">Maven website<sup><img class="rendericon" src="maven-bundle-plugin-bnd_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span>.</p>

<h2><a name="MavenBundlePlugin(BND)-UsingthePlugin"></a>Using the Plugin</h2>

<p>To use the maven-bundle-plugin, you first need to add the plugin and
some appropriate plugin configuration to your bundle project's POM.
Below is an example of a simple OSGi bundle POM for Maven2:</p>

<div class="preformatted"><div class="preformattedContent">
<pre>&lt;project&gt;
  &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
  &lt;groupId&gt;my-osgi-bundles&lt;/groupId&gt;
  &lt;artifactId&gt;examplebundle&lt;/artifactId&gt;
  &lt;packaging&gt;bundle&lt;/packaging&gt;    &lt;!-- (1) --&gt;
  &lt;version&gt;1.0&lt;/version&gt;
  &lt;name&gt;Example Bundle&lt;/name&gt;
  &lt;dependencies&gt;
    &lt;dependency&gt;
      &lt;groupId&gt;org.apache.felix&lt;/groupId&gt;
      &lt;artifactId&gt;org.osgi.core&lt;/artifactId&gt;
      &lt;version&gt;1.0.0&lt;/version&gt;
    &lt;/dependency&gt;
  &lt;/dependencies&gt;
  &lt;build&gt;
    &lt;plugins&gt;
      &lt;plugin&gt;    &lt;!-- (2) START --&gt;
        &lt;groupId&gt;org.apache.felix&lt;/groupId&gt;
        &lt;artifactId&gt;maven-bundle-plugin&lt;/artifactId&gt;
        &lt;extensions&gt;true&lt;/extensions&gt;
        &lt;configuration&gt;
          &lt;instructions&gt;
            &lt;Export-Package&gt;com.my.company.api&lt;/Export-Package&gt;
            &lt;Private-Package&gt;com.my.company.*&lt;/Private-Package&gt;
            &lt;Bundle-Activator&gt;com.my.company.Activator&lt;/Bundle-Activator&gt;
          &lt;/instructions&gt;
        &lt;/configuration&gt;
      &lt;/plugin&gt;    &lt;!-- (2) END --&gt;
    &lt;/plugins&gt;
  &lt;/build&gt;
&lt;/project&gt;
</pre>
</div></div>

<p>There are two main things to note: (1) the <tt>&lt;packaging&gt;</tt>
specifier must be "bundle" and (2) the plugin and configuration must be
specified (the configuration section is where you will issue
instructions to the plugin).</p>

<h2><a name="MavenBundlePlugin(BND)-RealWorldExample"></a>Real-World Example</h2>

<p>Consider this more real-world example using Felix' Log Service
implementation. The Log Service project is comprised of a single
package: <tt>org.apache.felix.log.impl</tt>. It has a dependency on
the core OSGi interfaces as well as a dependency on the compendium OSGi
interfaces for the specific log service interfaces. The following is
its POM file:</p>

<div class="preformatted"><div class="preformattedContent">
<pre>&lt;project&gt;
  &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
  &lt;groupId&gt;org.apache.felix&lt;/groupId&gt;
  &lt;artifactId&gt;org.apache.felix.log&lt;/artifactId&gt;
  &lt;packaging&gt;bundle&lt;/packaging&gt;
  &lt;name&gt;Apache Felix Log Service&lt;/name&gt;
  &lt;version&gt;0.8.0-SNAPSHOT&lt;/version&gt;
  &lt;description&gt;
    This bundle provides an implementation of the OSGi R4 Log service.
  &lt;/description&gt;
  &lt;dependencies&gt;
    &lt;dependency&gt;
      &lt;groupId&gt;${pom.groupId}&lt;/groupId&gt;
      &lt;artifactId&gt;org.osgi.core&lt;/artifactId&gt;
      &lt;version&gt;0.8.0-incubator&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
      &lt;groupId&gt;${pom.groupId}&lt;/groupId&gt;
      &lt;artifactId&gt;org.osgi.compendium&lt;/artifactId&gt;
      &lt;version&gt;0.9.0-incubator-SNAPSHOT&lt;/version&gt;
    &lt;/dependency&gt;
  &lt;/dependencies&gt;
  &lt;build&gt;
    &lt;plugins&gt;
      &lt;plugin&gt;
        &lt;groupId&gt;org.apache.felix&lt;/groupId&gt;
        &lt;artifactId&gt;maven-bundle-plugin&lt;/artifactId&gt;
        &lt;extensions&gt;true&lt;/extensions&gt;
        &lt;configuration&gt;
          &lt;instructions&gt;
            &lt;Export-Package&gt;org.osgi.service.log&lt;/Export-Package&gt;
            &lt;Private-Package&gt;org.apache.felix.log.impl&lt;/Private-Package&gt;
            &lt;Bundle-SymbolicName&gt;${pom.artifactId}&lt;/Bundle-SymbolicName&gt;
            &lt;Bundle-Activator&gt;${pom.artifactId}.impl.Activator&lt;/Bundle-Activator&gt;
            &lt;Export-Service&gt;org.osgi.service.log.LogService,org.osgi.service.log.LogReaderService&lt;/Export-Service&gt;
          &lt;/instructions&gt;
        &lt;/configuration&gt;
      &lt;/plugin&gt;
    &lt;/plugins&gt;
  &lt;/build&gt;
&lt;/project&gt;
</pre>
</div></div>

<p>Notice that the <tt>&lt;Export-Package&gt;</tt> instruction
specifies that the bundle exports the Log Service package, even though
this package is not contained in the bundle project. By declaring this,
the plugin will copy the Log Service package into the resulting bundle
JAR file. This is useful in this case because now the bundle can
resolve without having to download the entire compendium bundle. The
resulting manifest for the Log Service bundle looks like this (notice
how the imports/exports automatically have version information
associated with them, which was obtained from packageinfo files in the
source packages):</p>

<div class="preformatted"><div class="preformattedContent">
<pre>Manifest-Version: 1
Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
Bundle-Activator: org.apache.felix.log.impl.Activator
Import-Package: org.osgi.framework;version=1.3, org.osgi.service.log;v
 ersion=1.3
Include-Resource: src/main/resources
Export-Package: org.osgi.service.log;uses:=org.osgi.framework;version=
 1.3
Bundle-Version: 0.8.0.SNAPSHOT
Bundle-Name: Apache Felix Log Service
Bundle-Description: This bundle provides an implementation of the OSGi
  R4 Log service.
Private-Package: org.apache.felix.log.impl
Bundle-ManifestVersion: 2
Export-Service: org.osgi.service.log.LogService,org.osgi.service.log.L
 ogReaderService
Bundle-SymbolicName: org.apache.felix.log
</pre>
</div></div>

<p>The resulting bundle JAR file has the following content (notice how
the LICENSE and NOTICE files were automatically copied from the <tt>src/main/resources/</tt> directory of the project):</p>

<div class="preformatted"><div class="preformattedContent">
<pre>META-INF/MANIFEST.MF
LICENSE
META-INF/
META-INF/maven/
META-INF/maven/org.apache.felix/
META-INF/maven/org.apache.felix/org.apache.felix.log/
META-INF/maven/org.apache.felix/org.apache.felix.log/pom.properties
META-INF/maven/org.apache.felix/org.apache.felix.log/pom.xml
NOTICE
org/
org/apache/
org/apache/felix/
org/apache/felix/log/
org/apache/felix/log/impl/
org/apache/felix/log/impl/Activator.class
org/apache/felix/log/impl/Log.class
org/apache/felix/log/impl/LogEntryImpl.class
org/apache/felix/log/impl/LogException.class
org/apache/felix/log/impl/LogListenerThread.class
org/apache/felix/log/impl/LogNode.class
org/apache/felix/log/impl/LogNodeEnumeration.class
org/apache/felix/log/impl/LogReaderServiceFactory.class
org/apache/felix/log/impl/LogReaderServiceImpl.class
org/apache/felix/log/impl/LogServiceFactory.class
org/apache/felix/log/impl/LogServiceImpl.class
org/osgi/
org/osgi/service/
org/osgi/service/log/
org/osgi/service/log/LogEntry.class
org/osgi/service/log/LogListener.class
org/osgi/service/log/LogReaderService.class
org/osgi/service/log/LogService.class
org/osgi/service/log/package.html
org/osgi/service/log/packageinfo
</pre>
</div></div>

<h2><a name="MavenBundlePlugin(BND)-BuildingthePlugin"></a>Building the Plugin</h2>

<p>The plugin is hosted at the Apache Felix project. The following
steps describe how to build and install the plugin into your local
Maven2 repository.</p>

<p>Using the SVN client of your choice, checkout the maven-bundle-plugin project.</p>

<div class="preformatted"><div class="preformattedContent">
<pre>$ svn co http://svn.apache.org/repos/asf/felix/trunk/bundleplugin
</pre>
</div></div>

<p>Using Maven2, build and install the maven-bundle-plugin by issuing
the following Maven2 command in the project directory that was created
as a result of the previous step.</p>

<div class="preformatted"><div class="preformattedContent">
<pre>$ mvn install
</pre>
</div></div>

<h1><a name="MavenBundlePlugin(BND)-Goals"></a>Goals</h1>

<p>The maven-bundle-plugin also provides additional functionality via
some Maven goals. Command-line execution of a goal is performed as
follows:</p>

<div class="preformatted"><div class="preformattedContent">
<pre>mvn org.apache.felix:maven-bundle-plugin:GOAL
</pre>
</div></div>

<p>Where GOAL is one of the following:</p>

<ul>
	<li><tt>bundle</tt> - build an OSGi bundle jar<br>
configuration options:
	<ul>
		<li><tt>manifestLocation</tt> defaults to ${project.build.outputDirectory}/META-INF</li>
		<li><tt>unpackBundle</tt> unpack bundle contents to output directory, defaults to false</li>
		<li><tt>supportedProjectTypes</tt> defaults to "jar","bundle"</li>
	</ul>
	</li>
	<li><tt>bundleall</tt> - build an OSGi bundle jar for all transitive dependencies<br>
configuration options:
	<ul>
		<li><tt>supportedProjectTypes</tt> defaults to "jar","bundle"</li>
	</ul>
	</li>
	<li><tt>wrap</tt> - as above, but limited to the first level of dependencies<br>
configuration options:
	<ul>
		<li><tt>supportedProjectTypes</tt> defaults to "jar","bundle"</li>
	</ul>
	</li>
	<li><tt>manifest</tt> - create an OSGi manifest for the current project<br>
configuration options:
	<ul>
		<li><tt>manifestLocation</tt> defaults to ${project.build.outputDirectory}/META-INF</li>
		<li><tt>supportedProjectTypes</tt> defaults to "jar","bundle"</li>
	</ul>
	</li>
</ul>


<p>There are also new instructions available from the underlying BND
tool, which continues to be improved independently; for the latest see <span class="nobr"><a href="http://aqute.biz/Code/Bnd" title="Visit page outside Confluence" rel="nofollow">BND documentation<sup><img class="rendericon" src="maven-bundle-plugin-bnd_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span>.</p>

<p>The default goal <tt>bundle</tt> will be initialized by setting the &lt;packaging&gt; entry to "bundle".</p>

<h1><a name="MavenBundlePlugin(BND)-Thefollowingfeaturesareonlyavailableinthe1.1.0SNAPSHOTversion"></a>The following features are only available in the 1.1.0-SNAPSHOT version</h1>

<h1><a name="MavenBundlePlugin(BND)-Embeddingdependencies"></a>Embedding dependencies</h1>

<p>The Maven Bundle Plugin supports embedding of selected project dependencies inside the bundle by using the <tt>&lt;Embed-Dependency&gt;</tt> instruction:</p>

<div class="code"><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;Embed-Dependency&gt;</span>dependencies<span class="code-tag">&lt;/Embed-Dependency&gt;</span></pre>
</div></div>

<p>where:</p>

<div class="preformatted"><div class="preformattedContent">
<pre>dependencies ::= clause ( ',' clause ) *
clause ::= MATCH ( ';' attr '=' MATCH | ';inline=true' )
attr ::= 'groupId' | 'artifactId' | 'version' | 'scope' | 'type' | 'classifier'
MATCH ::= &lt;globbed regular expressions&gt;
</pre>
</div></div>

<p>The plugin uses the <tt>&lt;Embed-Dependency&gt;</tt> instruction to transform the project dependencies into <tt>&lt;Include-Resource&gt;</tt> and <tt>&lt;Bundle-ClassPath&gt;</tt> clauses, which are then appended to the current set of instructions and passed onto BND.</p>

<p>some examples:</p>

<div class="code"><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;Embed-Dependency&gt;</span>*;scope=compile|runtime<span class="code-tag">&lt;/Embed-Dependency&gt;</span>

<span class="code-tag">&lt;Embed-Dependency&gt;</span>junit;scope=test<span class="code-tag">&lt;/Embed-Dependency&gt;</span>

<span class="code-tag">&lt;Embed-Dependency&gt;</span>aopalliance;scope=!test;inline=true<span class="code-tag">&lt;/Embed-Dependency&gt;</span></pre>
</div></div>

<p>By default matched dependencies are embedded in the bundle as <tt>artifactId-version.jar</tt>. This behaviour can be modified using the following instructions:</p>

<ul>
	<li><tt>&lt;Embed-StripVersion&gt;true&lt;/Embed-StripVersion&gt;</tt> - removes the version from the file (ie. <em>artifactId.jar</em>)</li>
	<li><tt>&lt;Embed-StripGroup&gt;false&lt;/Embed-StripGroup&gt;</tt> - adds the groupId as a subdirectory (ie. <em>groupId/artifactId-version.jar</em>)</li>
	<li><tt>&lt;Embed-Directory&gt;directory&lt;/Embed-Directory&gt;</tt> - adds a subdirectory (ie. <em>directory/artifactId-version.jar</em>)</li>
</ul>


<p>Normally the plugin only checks direct dependencies, but this can be
changed to include the complete set of transitive dependencies with the
following option:</p>

<div class="code"><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;Embed-Transitive&gt;</span>true<span class="code-tag">&lt;/Embed-Transitive&gt;</span></pre>
</div></div>

<p>If you want a dependency inlined instead of embedded add the <tt>inline=true</tt>. For example to inline all <em>compile</em> and <em>runtime</em> scoped dependencies use:</p>

<div class="code"><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;Embed-Dependency&gt;</span>*;scope=compile|runtime;inline=true<span class="code-tag">&lt;/Embed-Dependency&gt;</span></pre>
</div></div>

<h2><a name="MavenBundlePlugin(BND)-EmbedDependencyandExportPackage"></a>Embed-Dependency and Export-Package</h2>

<p>If you embed a dependency with <tt>&lt;Embed-Dependency&gt;</tt>, and your <tt>&lt;Export-Package&gt;</tt> or <tt>&lt;Private-Package&gt;</tt> instructions match packages inside the embedded jar, you will see some duplication inside the bundle. This is because the <tt>&lt;Export-Package&gt;</tt> and <tt>&lt;Private-Package&gt;</tt>
instructions will result in classes being inlined in the bundle, even
though they also exist inside the embedded jar. If you want to export
packages from an embedded dependency without such duplication then you
can either inline the dependency, or use a new BND instruction called <tt>&lt;_exportcontents&gt;</tt>.</p>

<p><tt>&lt;_exportcontents&gt;</tt> behaves just like Export-Package, except it doesn't change the content of the bundle, just what content should be exported.</p>

<h1><a name="MavenBundlePlugin(BND)-OBRintegration"></a>OBR integration</h1>

<p>The latest Maven Bundle Plugin automatically updates the local OBR
repository.xml file during the install phase, using a default location
of:</p>

<div class="code"><div class="codeContent">
<pre class="code-java">&lt;LOCAL-MAVEN-REPOSITORY&gt;/repository.xml</pre>
</div></div>

<p>You can configure the location of the OBR repository by using the command line:</p>

<div class="code"><div class="codeContent">
<pre class="code-java">mvn clean install -DobrRepository=&lt;PATH_TO_OBR&gt;</pre>
</div></div>

<p>or in the configuration section for the maven-bundle-plugin in your Maven POM:</p>

<div class="code"><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;groupId&gt;</span>org.apache.felix<span class="code-tag">&lt;/groupId&gt;</span>
<span class="code-tag">&lt;artifactId&gt;</span>maven-bundle-plugin<span class="code-tag">&lt;/artifactId&gt;</span>
<span class="code-tag">&lt;extensions&gt;</span>true<span class="code-tag">&lt;/extensions&gt;</span>
<span class="code-tag">&lt;configuration&gt;</span>
  <span class="code-tag">&lt;obrRepository&gt;</span>PATH_TO_OBR<span class="code-tag">&lt;/obrRepository&gt;</span>
  <span class="code-tag">&lt;instructions&gt;</span>
    <span class="code-tag"><span class="code-comment">&lt;!-- bnd instructions --&gt;</span></span>
  <span class="code-tag">&lt;/instructions&gt;</span>
<span class="code-tag">&lt;/configuration&gt;</span></pre>
</div></div>

<p>to disable OBR installation set the obrRepository to NONE, for example:</p>

<div class="code"><div class="codeContent">
<pre class="code-xml"><span class="code-tag">&lt;groupId&gt;</span>org.apache.felix<span class="code-tag">&lt;/groupId&gt;</span>
<span class="code-tag">&lt;artifactId&gt;</span>maven-bundle-plugin<span class="code-tag">&lt;/artifactId&gt;</span>
<span class="code-tag">&lt;extensions&gt;</span>true<span class="code-tag">&lt;/extensions&gt;</span>
<span class="code-tag">&lt;configuration&gt;</span>
  <span class="code-tag">&lt;obrRepository&gt;</span>NONE<span class="code-tag">&lt;/obrRepository&gt;</span>
  <span class="code-tag">&lt;instructions&gt;</span>
    <span class="code-tag"><span class="code-comment">&lt;!-- bnd instructions --&gt;</span></span>
  <span class="code-tag">&lt;/instructions&gt;</span>
<span class="code-tag">&lt;/configuration&gt;</span></pre>
</div></div>


<h1><a name="MavenBundlePlugin(BND)-Eclipse/PDEintegration"></a>Eclipse/PDE integration</h1>

<p>It is possible to configure the Maven Bundle Plugin to put the
bundle manifest where Eclipse/PDE expects it, and use the Maven
Dependency Plugin to arrange for any embedded dependencies to appear in
a local directory that matches the Bundle-ClassPath entries. Here is an
example POM that does this:</p>

<div class="preformatted"><div class="preformattedContent">
<pre>&lt;project&gt;

  &lt;properties&gt;
    &lt;bundle.symbolicName&gt;org.example&lt;/bundle.symbolicName&gt;
    &lt;bundle.namespace&gt;org.example&lt;/bundle.namespace&gt;
  &lt;/properties&gt;

  &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
  &lt;groupId&gt;examples&lt;/groupId&gt;
  &lt;artifactId&gt;org.example&lt;/artifactId&gt;
  &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;

  &lt;name&gt;${bundle.symbolicName} [${bundle.namespace}]&lt;/name&gt;

  &lt;packaging&gt;bundle&lt;/packaging&gt;

  &lt;build&gt;
    &lt;plugins&gt;
      &lt;plugin&gt;
        &lt;groupId&gt;org.apache.felix&lt;/groupId&gt;
        &lt;artifactId&gt;maven-bundle-plugin&lt;/artifactId&gt;
        &lt;version&gt;1.1.0-SNAPSHOT&lt;/version&gt;
        &lt;extensions&gt;true&lt;/extensions&gt;
        &lt;!--
          the following instructions build a simple set of public/private classes into an OSGi bundle
        --&gt;
        &lt;configuration&gt;
          &lt;manifestLocation&gt;META-INF&lt;/manifestLocation&gt;
          &lt;instructions&gt;
            &lt;Bundle-SymbolicName&gt;${bundle.symbolicName}&lt;/Bundle-SymbolicName&gt;
            &lt;Bundle-Version&gt;${pom.version}&lt;/Bundle-Version&gt;
            &lt;!--
              assume public classes are in the top package, and private classes are under ".internal"
            --&gt;
            &lt;Export-Package&gt;${bundle.namespace};version="${pom.version}"&lt;/Export-Package&gt;
            &lt;Private-Package&gt;${bundle.namespace}.internal&lt;/Private-Package&gt;
            &lt;Bundle-Activator&gt;${bundle.namespace}.internal.Activator&lt;/Bundle-Activator&gt;
            &lt;!--
              embed compile/runtime dependencies using path that matches the copied dependency folder
            --&gt;
            &lt;Embed-Dependency&gt;*;scope=compile|runtime;inline=false&lt;/Embed-Dependency&gt;
            &lt;Embed-Directory&gt;target/dependency&lt;/Embed-Directory&gt;
            &lt;Embed-StripGroup&gt;true&lt;/Embed-StripGroup&gt;
          &lt;/instructions&gt;
        &lt;/configuration&gt;
      &lt;/plugin&gt;
      &lt;plugin&gt;
        &lt;artifactId&gt;maven-dependency-plugin&lt;/artifactId&gt;
        &lt;executions&gt;
          &lt;execution&gt;
            &lt;id&gt;copy-dependencies&lt;/id&gt;
            &lt;phase&gt;package&lt;/phase&gt;
            &lt;goals&gt;
              &lt;goal&gt;copy-dependencies&lt;/goal&gt;
            &lt;/goals&gt;
          &lt;/execution&gt;
        &lt;/executions&gt;
      &lt;/plugin&gt;
    &lt;/plugins&gt;
  &lt;/build&gt;

  &lt;dependencies&gt;
    &lt;dependency&gt;
      &lt;groupId&gt;org.osgi&lt;/groupId&gt;
      &lt;artifactId&gt;osgi_R4_core&lt;/artifactId&gt;
      &lt;version&gt;1.0&lt;/version&gt;
      &lt;scope&gt;provided&lt;/scope&gt;
      &lt;optional&gt;true&lt;/optional&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
      &lt;groupId&gt;org.osgi&lt;/groupId&gt;
      &lt;artifactId&gt;osgi_R4_compendium&lt;/artifactId&gt;
      &lt;version&gt;1.0&lt;/version&gt;
      &lt;scope&gt;provided&lt;/scope&gt;
      &lt;optional&gt;true&lt;/optional&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
      &lt;groupId&gt;junit&lt;/groupId&gt;
      &lt;artifactId&gt;junit&lt;/artifactId&gt;
      &lt;version&gt;3.8.1&lt;/version&gt;
      &lt;scope&gt;compile&lt;/scope&gt;
      &lt;optional&gt;true&lt;/optional&gt;
    &lt;/dependency&gt;
  &lt;/dependencies&gt;

&lt;/project&gt;
</pre>
</div></div>

<p>To generate the Eclipse metadata use:</p>

<div class="code"><div class="codeContent">
<pre class="code-java">mvn clean <span class="code-keyword">package</span> eclipse:eclipse -Declipse.pde install</pre>
</div></div>

<p>and you should now be able to import this as an existing Eclipse project.</p>

<p>FYI: the above POM was generated using the <tt>pax-create-bundle</tt> command from <span class="nobr"><a href="http://www.ops4j.org/projects/pax/construct/index.html" title="Visit page outside Confluence" rel="nofollow">Pax-Construct<sup><img class="rendericon" src="maven-bundle-plugin-bnd_files/linkext7.gif" alt="" align="absmiddle" border="0" height="7" width="7"></sup></a></span> and then tweaked to demonstrate using the Maven Dependency Plugin to handle embedded jars in Eclipse.</p>

<p>With the original Pax-Construct generated POM you would simply use:</p>

<div class="code"><div class="codeContent">
<pre class="code-java">mvn clean <span class="code-keyword">package</span> pax:eclipse</pre>
</div></div>

<p>to create the appropriate Eclipse files and manifest, and also
handle any embedded entries. The pax:eclipse goal extends
eclipse:eclipse, and supports the same parameters.</p>

<h1><a name="MavenBundlePlugin(BND)-Unpackingbundlecontentsto'target/classes'"></a>Unpacking bundle contents to 'target/classes'</h1>

<p>Once in a while you may create a bundle which contains additional classes to the ones compiled from <tt>src/main/java</tt>,
for example when you embed the classes from another jar. This can
sometimes cause unforeseen problems in Maven, as it will use the output
directory (<tt>target/classes</tt>) rather than the final bundle, when compiling against projects in the same reactor (ie. the same build).</p>

<p>The easiest way to get around this Maven 'feature' is to unpack the
contents of the bundle to the output directory after the packaging
step, so the additional classes will be found where Maven expects them.
Thankfully there is now an easy option to do this in the bundle-plugin:</p>

<div class="code"><div class="codeContent">
<pre class="code-java">&lt;groupId&gt;org.apache.felix&lt;/groupId&gt;
&lt;artifactId&gt;maven-bundle-plugin&lt;/artifactId&gt;
&lt;extensions&gt;<span class="code-keyword">true</span>&lt;/extensions&gt;
&lt;configuration&gt;
  &lt;unpackBundle&gt;<span class="code-keyword">true</span>&lt;/unpackBundle&gt;
  &lt;instructions&gt;
    &lt;!-- bnd instructions --&gt;
  &lt;/instructions&gt;
&lt;/configuration&gt;</pre>
</div></div>

<h1><a name="MavenBundlePlugin(BND)-UsinganexistingMANIFEST.MFfile"></a>Using an existing MANIFEST.MF file</h1>

<p>If you have an existing manifest, you can add this to the Bnd instructions, like so:</p>

<div class="code"><div class="codeContent">
<pre class="code-java">&lt;_include&gt;src/main/resources/META-INF/MANIFEST.MF&lt;/_include&gt;
&lt;Export-Package&gt;org.example.*&lt;/Export-Package&gt;</pre>
</div></div>

<p>Bnd will use it when calculating the bundle contents, and will also
copy across all manifest attributes starting with a capital letter.<br>
As shown in the above example, you could use this to include a non-OSGi
manifest which you then customize with extra OSGi attributes.</p>

<h1><a name="MavenBundlePlugin(BND)-Feedback"></a>Feedback</h1>

<p>Subscribe to the Felix users mailing list by sending a message to <span class="nobr"><a href="mailto:users-subscribe@felix.apache.org" title="Send mail to users-subscribe@felix.apache.org" rel="nofollow">users-subscribe@felix.apache.org<sup><img class="rendericon" src="maven-bundle-plugin-bnd_files/mail_small.gif" alt="" align="absmiddle" border="0" height="12" width="13"></sup></a></span>; after subscribing, email questions or feedback to <span class="nobr"><a href="mailto:users@felix.apache.org" title="Send mail to users@felix.apache.org" rel="nofollow">users@felix.apache.org<sup><img class="rendericon" src="maven-bundle-plugin-bnd_files/mail_small.gif" alt="" align="absmiddle" border="0" height="12" width="13"></sup></a></span>.</p>
    </div>
  
</body></html>