mvn site

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1490866 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/bundleplugin/doc/site/ant-mojo.html b/bundleplugin/doc/site/ant-mojo.html
index 00935d7..e0cd685 100644
--- a/bundleplugin/doc/site/ant-mojo.html
+++ b/bundleplugin/doc/site/ant-mojo.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -11,7 +11,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -28,7 +28,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -91,7 +91,7 @@
         <li>Requires a Maven project to be executed.</li>
         <li>Requires dependency resolution of artifacts in scope: <tt>test</tt>.</li>
         <li>The goal is thread-safe and supports parallel builds.</li>
-        <li>Binds by default to the lifecycle phase: <tt>package</tt>.</li>
+        <li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <tt>package</tt>.</li>
       </ul>
       <div class="section"><h3>Required Parameters<a name="Required_Parameters"></a></h3>
         <table class="bodyTable" border="0">
@@ -105,13 +105,13 @@
             <td><b><a href="#buildDirectory">buildDirectory</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>The directory for the generated JAR.<br /></td>
+            <td>The directory for the generated JAR.<br /><b>User property is</b>: <tt>project.build.directory</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#outputDirectory">outputDirectory</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>The directory for the generated bundles.<br /></td>
+            <td>The directory for the generated bundles.<br /><b>User property is</b>: <tt>project.build.outputDirectory</tt>.</td>
           </tr>
         </table>
       </div>
@@ -141,32 +141,45 @@
             <td><b><a href="#dumpClasspath">dumpClasspath</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>File where the BND class-path will be dumped<br /></td>
+            <td>File where the BND class-path will be dumped<br /><b>User property is</b>: <tt>dumpClasspath</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#dumpInstructions">dumpInstructions</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>File where the BND instructions will be dumped<br /></td>
+            <td>File where the BND instructions will be dumped<br /><b>User property is</b>: <tt>dumpInstructions</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#excludeDependencies">excludeDependencies</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
             <td>Comma separated list of artifactIds to exclude from the dependency
-classpath passed to BND (use &quot;true&quot; to exclude everything)<br /></td>
+classpath passed to BND (use &quot;true&quot; to exclude everything)<br /><b>User property is</b>: <tt>excludeDependencies</tt>.</td>
           </tr>
           <tr class="a">
+            <td><b><a href="#finalName">finalName</a></b></td>
+            <td><tt>String</tt></td>
+            <td><tt>-</tt></td>
+            <td>Final name of the bundle (without classifier or extension)<br /><b>User property is</b>: <tt>project.build.finalName</tt>.</td>
+          </tr>
+          <tr class="b">
             <td><b><a href="#instructions">instructions</a></b></td>
             <td><tt>Map</tt></td>
             <td><tt>-</tt></td>
             <td>The BND instructions for the bundle.<br /></td>
           </tr>
-          <tr class="b">
+          <tr class="a">
             <td><b><a href="#manifestLocation">manifestLocation</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>Directory where the manifest will be written<br /><b>Default value is</b>: <tt>${project.build.outputDirectory}/META-INF</tt>.</td>
+            <td>Directory where the manifest will be written<br /><b>Default value is</b>: <tt>${project.build.outputDirectory}/META-INF</tt>.<br /><b>User property is</b>: <tt>manifestLocation</tt>.</td>
+          </tr>
+          <tr class="b">
+            <td><b><a href="#packaging">packaging</a></b></td>
+            <td><tt>String</tt></td>
+            <td><tt>-</tt></td>
+            <td>Packaging type of the bundle to be installed. For example, &quot;jar&quot;.
+Defaults to none which means use the same packaging as the project.<br /></td>
           </tr>
           <tr class="a">
             <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
@@ -178,7 +191,7 @@
             <td><b><a href="#unpackBundle">unpackBundle</a></b></td>
             <td><tt>boolean</tt></td>
             <td><tt>-</tt></td>
-            <td>When true, unpack the bundle contents to the outputDirectory<br /></td>
+            <td>When true, unpack the bundle contents to the outputDirectory<br /><b>User property is</b>: <tt>unpackBundle</tt>.</td>
           </tr>
         </table>
       </div>
@@ -193,7 +206,7 @@
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>Yes</tt></li>
-          <li><b>Expression</b>: <tt>${project.build.directory}</tt></li>
+          <li><b>User Property</b>: <tt>project.build.directory</tt></li>
         </ul><hr /><p><b><a name="classifier">classifier</a>:</b></p>
         <div>Classifier type of the bundle to be installed. For example,
 &quot;jdk14&quot;. Defaults to none which means this is the project's main
@@ -206,20 +219,26 @@
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${dumpClasspath}</tt></li>
+          <li><b>User Property</b>: <tt>dumpClasspath</tt></li>
         </ul><hr /><p><b><a name="dumpInstructions">dumpInstructions</a>:</b></p>
         <div>File where the BND instructions will be dumped</div>
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${dumpInstructions}</tt></li>
+          <li><b>User Property</b>: <tt>dumpInstructions</tt></li>
         </ul><hr /><p><b><a name="excludeDependencies">excludeDependencies</a>:</b></p>
         <div>Comma separated list of artifactIds to exclude from the dependency
 classpath passed to BND (use &quot;true&quot; to exclude everything)</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${excludeDependencies}</tt></li>
+          <li><b>User Property</b>: <tt>excludeDependencies</tt></li>
+        </ul><hr /><p><b><a name="finalName">finalName</a>:</b></p>
+        <div>Final name of the bundle (without classifier or extension)</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.lang.String</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+          <li><b>User Property</b>: <tt>project.build.finalName</tt></li>
         </ul><hr /><p><b><a name="instructions">instructions</a>:</b></p>
         <div>The BND instructions for the bundle.</div>
         <ul>
@@ -230,14 +249,20 @@
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${manifestLocation}</tt></li>
+          <li><b>User Property</b>: <tt>manifestLocation</tt></li>
           <li><b>Default</b>: <tt>${project.build.outputDirectory}/META-INF</tt></li>
         </ul><hr /><p><b><a name="outputDirectory">outputDirectory</a>:</b></p>
         <div>The directory for the generated bundles.</div>
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>Yes</tt></li>
-          <li><b>Expression</b>: <tt>${project.build.outputDirectory}</tt></li>
+          <li><b>User Property</b>: <tt>project.build.outputDirectory</tt></li>
+        </ul><hr /><p><b><a name="packaging">packaging</a>:</b></p>
+        <div>Packaging type of the bundle to be installed. For example, &quot;jar&quot;.
+Defaults to none which means use the same packaging as the project.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.lang.String</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
         </ul><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
         <div>Project types which this plugin supports.</div>
         <ul>
@@ -248,7 +273,7 @@
         <ul>
           <li><b>Type</b>: <tt>boolean</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${unpackBundle}</tt></li>
+          <li><b>User Property</b>: <tt>unpackBundle</tt></li>
         </ul>
       </div>
     </div>
@@ -260,7 +285,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/bundle-mojo.html b/bundleplugin/doc/site/bundle-mojo.html
index bb1efb4..ea4b148 100644
--- a/bundleplugin/doc/site/bundle-mojo.html
+++ b/bundleplugin/doc/site/bundle-mojo.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -11,7 +11,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -28,7 +28,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -90,7 +90,7 @@
         <li>Requires a Maven project to be executed.</li>
         <li>Requires dependency resolution of artifacts in scope: <tt>test</tt>.</li>
         <li>The goal is thread-safe and supports parallel builds.</li>
-        <li>Binds by default to the lifecycle phase: <tt>package</tt>.</li>
+        <li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <tt>package</tt>.</li>
       </ul>
       <div class="section"><h3>Required Parameters<a name="Required_Parameters"></a></h3>
         <table class="bodyTable" border="0">
@@ -104,13 +104,13 @@
             <td><b><a href="#buildDirectory">buildDirectory</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>The directory for the generated JAR.<br /></td>
+            <td>The directory for the generated JAR.<br /><b>User property is</b>: <tt>project.build.directory</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#outputDirectory">outputDirectory</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>The directory for the generated bundles.<br /></td>
+            <td>The directory for the generated bundles.<br /><b>User property is</b>: <tt>project.build.outputDirectory</tt>.</td>
           </tr>
         </table>
       </div>
@@ -140,32 +140,45 @@
             <td><b><a href="#dumpClasspath">dumpClasspath</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>File where the BND class-path will be dumped<br /></td>
+            <td>File where the BND class-path will be dumped<br /><b>User property is</b>: <tt>dumpClasspath</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#dumpInstructions">dumpInstructions</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>File where the BND instructions will be dumped<br /></td>
+            <td>File where the BND instructions will be dumped<br /><b>User property is</b>: <tt>dumpInstructions</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#excludeDependencies">excludeDependencies</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
             <td>Comma separated list of artifactIds to exclude from the dependency
-classpath passed to BND (use &quot;true&quot; to exclude everything)<br /></td>
+classpath passed to BND (use &quot;true&quot; to exclude everything)<br /><b>User property is</b>: <tt>excludeDependencies</tt>.</td>
           </tr>
           <tr class="a">
+            <td><b><a href="#finalName">finalName</a></b></td>
+            <td><tt>String</tt></td>
+            <td><tt>-</tt></td>
+            <td>Final name of the bundle (without classifier or extension)<br /><b>User property is</b>: <tt>project.build.finalName</tt>.</td>
+          </tr>
+          <tr class="b">
             <td><b><a href="#instructions">instructions</a></b></td>
             <td><tt>Map</tt></td>
             <td><tt>-</tt></td>
             <td>The BND instructions for the bundle.<br /></td>
           </tr>
-          <tr class="b">
+          <tr class="a">
             <td><b><a href="#manifestLocation">manifestLocation</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>Directory where the manifest will be written<br /><b>Default value is</b>: <tt>${project.build.outputDirectory}/META-INF</tt>.</td>
+            <td>Directory where the manifest will be written<br /><b>Default value is</b>: <tt>${project.build.outputDirectory}/META-INF</tt>.<br /><b>User property is</b>: <tt>manifestLocation</tt>.</td>
+          </tr>
+          <tr class="b">
+            <td><b><a href="#packaging">packaging</a></b></td>
+            <td><tt>String</tt></td>
+            <td><tt>-</tt></td>
+            <td>Packaging type of the bundle to be installed. For example, &quot;jar&quot;.
+Defaults to none which means use the same packaging as the project.<br /></td>
           </tr>
           <tr class="a">
             <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
@@ -177,7 +190,7 @@
             <td><b><a href="#unpackBundle">unpackBundle</a></b></td>
             <td><tt>boolean</tt></td>
             <td><tt>-</tt></td>
-            <td>When true, unpack the bundle contents to the outputDirectory<br /></td>
+            <td>When true, unpack the bundle contents to the outputDirectory<br /><b>User property is</b>: <tt>unpackBundle</tt>.</td>
           </tr>
         </table>
       </div>
@@ -192,7 +205,7 @@
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>Yes</tt></li>
-          <li><b>Expression</b>: <tt>${project.build.directory}</tt></li>
+          <li><b>User Property</b>: <tt>project.build.directory</tt></li>
         </ul><hr /><p><b><a name="classifier">classifier</a>:</b></p>
         <div>Classifier type of the bundle to be installed. For example,
 &quot;jdk14&quot;. Defaults to none which means this is the project's main
@@ -205,20 +218,26 @@
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${dumpClasspath}</tt></li>
+          <li><b>User Property</b>: <tt>dumpClasspath</tt></li>
         </ul><hr /><p><b><a name="dumpInstructions">dumpInstructions</a>:</b></p>
         <div>File where the BND instructions will be dumped</div>
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${dumpInstructions}</tt></li>
+          <li><b>User Property</b>: <tt>dumpInstructions</tt></li>
         </ul><hr /><p><b><a name="excludeDependencies">excludeDependencies</a>:</b></p>
         <div>Comma separated list of artifactIds to exclude from the dependency
 classpath passed to BND (use &quot;true&quot; to exclude everything)</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${excludeDependencies}</tt></li>
+          <li><b>User Property</b>: <tt>excludeDependencies</tt></li>
+        </ul><hr /><p><b><a name="finalName">finalName</a>:</b></p>
+        <div>Final name of the bundle (without classifier or extension)</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.lang.String</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+          <li><b>User Property</b>: <tt>project.build.finalName</tt></li>
         </ul><hr /><p><b><a name="instructions">instructions</a>:</b></p>
         <div>The BND instructions for the bundle.</div>
         <ul>
@@ -229,14 +248,20 @@
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${manifestLocation}</tt></li>
+          <li><b>User Property</b>: <tt>manifestLocation</tt></li>
           <li><b>Default</b>: <tt>${project.build.outputDirectory}/META-INF</tt></li>
         </ul><hr /><p><b><a name="outputDirectory">outputDirectory</a>:</b></p>
         <div>The directory for the generated bundles.</div>
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>Yes</tt></li>
-          <li><b>Expression</b>: <tt>${project.build.outputDirectory}</tt></li>
+          <li><b>User Property</b>: <tt>project.build.outputDirectory</tt></li>
+        </ul><hr /><p><b><a name="packaging">packaging</a>:</b></p>
+        <div>Packaging type of the bundle to be installed. For example, &quot;jar&quot;.
+Defaults to none which means use the same packaging as the project.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.lang.String</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
         </ul><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
         <div>Project types which this plugin supports.</div>
         <ul>
@@ -247,7 +272,7 @@
         <ul>
           <li><b>Type</b>: <tt>boolean</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${unpackBundle}</tt></li>
+          <li><b>User Property</b>: <tt>unpackBundle</tt></li>
         </ul>
       </div>
     </div>
@@ -259,7 +284,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/bundleall-mojo.html b/bundleplugin/doc/site/bundleall-mojo.html
index 7bca28f..68d522b 100644
--- a/bundleplugin/doc/site/bundleall-mojo.html
+++ b/bundleplugin/doc/site/bundleall-mojo.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -11,7 +11,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -28,7 +28,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -93,7 +93,7 @@
         <li>Requires a Maven project to be executed.</li>
         <li>Requires dependency resolution of artifacts in scope: <tt>test</tt>.</li>
         <li>The goal is thread-safe and supports parallel builds.</li>
-        <li>Binds by default to the lifecycle phase: <tt>package</tt>.</li>
+        <li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <tt>package</tt>.</li>
       </ul>
       <div class="section"><h3>Required Parameters<a name="Required_Parameters"></a></h3>
         <table class="bodyTable" border="0">
@@ -107,13 +107,13 @@
             <td><b><a href="#buildDirectory">buildDirectory</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>The directory for the generated JAR.<br /></td>
+            <td>The directory for the generated JAR.<br /><b>User property is</b>: <tt>project.build.directory</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#outputDirectory">outputDirectory</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>The directory for the generated bundles.<br /></td>
+            <td>The directory for the generated bundles.<br /><b>User property is</b>: <tt>project.build.outputDirectory</tt>.</td>
           </tr>
         </table>
       </div>
@@ -149,46 +149,59 @@
             <td><b><a href="#dumpClasspath">dumpClasspath</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>File where the BND class-path will be dumped<br /></td>
+            <td>File where the BND class-path will be dumped<br /><b>User property is</b>: <tt>dumpClasspath</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#dumpInstructions">dumpInstructions</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>File where the BND instructions will be dumped<br /></td>
+            <td>File where the BND instructions will be dumped<br /><b>User property is</b>: <tt>dumpInstructions</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#excludeDependencies">excludeDependencies</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
             <td>Comma separated list of artifactIds to exclude from the dependency
-classpath passed to BND (use &quot;true&quot; to exclude everything)<br /></td>
+classpath passed to BND (use &quot;true&quot; to exclude everything)<br /><b>User property is</b>: <tt>excludeDependencies</tt>.</td>
           </tr>
           <tr class="b">
+            <td><b><a href="#finalName">finalName</a></b></td>
+            <td><tt>String</tt></td>
+            <td><tt>-</tt></td>
+            <td>Final name of the bundle (without classifier or extension)<br /><b>User property is</b>: <tt>project.build.finalName</tt>.</td>
+          </tr>
+          <tr class="a">
             <td><b><a href="#ignoreMissingArtifacts">ignoreMissingArtifacts</a></b></td>
             <td><tt>boolean</tt></td>
             <td><tt>-</tt></td>
             <td>Ignore missing artifacts that are not required by current project
 but are required by the transitive dependencies.<br /></td>
           </tr>
-          <tr class="a">
+          <tr class="b">
             <td><b><a href="#instructions">instructions</a></b></td>
             <td><tt>Map</tt></td>
             <td><tt>-</tt></td>
             <td>The BND instructions for the bundle.<br /></td>
           </tr>
-          <tr class="b">
+          <tr class="a">
             <td><b><a href="#manifestLocation">manifestLocation</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>Directory where the manifest will be written<br /><b>Default value is</b>: <tt>${project.build.outputDirectory}/META-INF</tt>.</td>
+            <td>Directory where the manifest will be written<br /><b>Default value is</b>: <tt>${project.build.outputDirectory}/META-INF</tt>.<br /><b>User property is</b>: <tt>manifestLocation</tt>.</td>
+          </tr>
+          <tr class="b">
+            <td><b><a href="#packaging">packaging</a></b></td>
+            <td><tt>String</tt></td>
+            <td><tt>-</tt></td>
+            <td>Packaging type of the bundle to be installed. For example, &quot;jar&quot;.
+Defaults to none which means use the same packaging as the project.<br /></td>
           </tr>
           <tr class="a">
             <td><b><a href="#rebuildBundle">rebuildBundle</a></b></td>
             <td><tt>boolean</tt></td>
             <td><tt>-</tt></td>
             <td>When true, generate the manifest by rebuilding the full bundle in
-memory<br /></td>
+memory<br /><b>User property is</b>: <tt>rebuildBundle</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
@@ -200,13 +213,13 @@
             <td><b><a href="#unpackBundle">unpackBundle</a></b></td>
             <td><tt>boolean</tt></td>
             <td><tt>-</tt></td>
-            <td>When true, unpack the bundle contents to the outputDirectory<br /></td>
+            <td>When true, unpack the bundle contents to the outputDirectory<br /><b>User property is</b>: <tt>unpackBundle</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#wrapImportPackage">wrapImportPackage</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Import-Package to be used when wrapping dependencies.<br /><b>Default value is</b>: <tt>*</tt>.</td>
+            <td>Import-Package to be used when wrapping dependencies.<br /><b>Default value is</b>: <tt>*</tt>.<br /><b>User property is</b>: <tt>wrapImportPackage</tt>.</td>
           </tr>
         </table>
       </div>
@@ -221,7 +234,7 @@
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>Yes</tt></li>
-          <li><b>Expression</b>: <tt>${project.build.directory}</tt></li>
+          <li><b>User Property</b>: <tt>project.build.directory</tt></li>
         </ul><hr /><p><b><a name="classifier">classifier</a>:</b></p>
         <div>Classifier type of the bundle to be installed. For example,
 &quot;jdk14&quot;. Defaults to none which means this is the project's main
@@ -239,20 +252,26 @@
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${dumpClasspath}</tt></li>
+          <li><b>User Property</b>: <tt>dumpClasspath</tt></li>
         </ul><hr /><p><b><a name="dumpInstructions">dumpInstructions</a>:</b></p>
         <div>File where the BND instructions will be dumped</div>
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${dumpInstructions}</tt></li>
+          <li><b>User Property</b>: <tt>dumpInstructions</tt></li>
         </ul><hr /><p><b><a name="excludeDependencies">excludeDependencies</a>:</b></p>
         <div>Comma separated list of artifactIds to exclude from the dependency
 classpath passed to BND (use &quot;true&quot; to exclude everything)</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${excludeDependencies}</tt></li>
+          <li><b>User Property</b>: <tt>excludeDependencies</tt></li>
+        </ul><hr /><p><b><a name="finalName">finalName</a>:</b></p>
+        <div>Final name of the bundle (without classifier or extension)</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.lang.String</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+          <li><b>User Property</b>: <tt>project.build.finalName</tt></li>
         </ul><hr /><p><b><a name="ignoreMissingArtifacts">ignoreMissingArtifacts</a>:</b></p>
         <div>Ignore missing artifacts that are not required by current project
 but are required by the transitive dependencies.</div>
@@ -269,21 +288,27 @@
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${manifestLocation}</tt></li>
+          <li><b>User Property</b>: <tt>manifestLocation</tt></li>
           <li><b>Default</b>: <tt>${project.build.outputDirectory}/META-INF</tt></li>
         </ul><hr /><p><b><a name="outputDirectory">outputDirectory</a>:</b></p>
         <div>The directory for the generated bundles.</div>
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>Yes</tt></li>
-          <li><b>Expression</b>: <tt>${project.build.outputDirectory}</tt></li>
+          <li><b>User Property</b>: <tt>project.build.outputDirectory</tt></li>
+        </ul><hr /><p><b><a name="packaging">packaging</a>:</b></p>
+        <div>Packaging type of the bundle to be installed. For example, &quot;jar&quot;.
+Defaults to none which means use the same packaging as the project.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.lang.String</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
         </ul><hr /><p><b><a name="rebuildBundle">rebuildBundle</a>:</b></p>
         <div>When true, generate the manifest by rebuilding the full bundle in
 memory</div>
         <ul>
           <li><b>Type</b>: <tt>boolean</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${rebuildBundle}</tt></li>
+          <li><b>User Property</b>: <tt>rebuildBundle</tt></li>
         </ul><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
         <div>Project types which this plugin supports.</div>
         <ul>
@@ -294,13 +319,13 @@
         <ul>
           <li><b>Type</b>: <tt>boolean</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${unpackBundle}</tt></li>
+          <li><b>User Property</b>: <tt>unpackBundle</tt></li>
         </ul><hr /><p><b><a name="wrapImportPackage">wrapImportPackage</a>:</b></p>
         <div>Import-Package to be used when wrapping dependencies.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${wrapImportPackage}</tt></li>
+          <li><b>User Property</b>: <tt>wrapImportPackage</tt></li>
           <li><b>Default</b>: <tt>*</tt></li>
         </ul>
       </div>
@@ -313,7 +338,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/clean-mojo.html b/bundleplugin/doc/site/clean-mojo.html
index 2576ad8..362037c 100644
--- a/bundleplugin/doc/site/clean-mojo.html
+++ b/bundleplugin/doc/site/clean-mojo.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -11,7 +11,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -28,7 +28,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -87,7 +87,7 @@
       <div>Clean an OBR repository by finding and removing missing resources.</div>
       <p><b>Attributes</b>:</p>
       <ul>
-        <li>Binds by default to the lifecycle phase: <tt>clean</tt>.</li>
+        <li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <tt>clean</tt>.</li>
       </ul>
       <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
         <table class="bodyTable" border="0">
@@ -101,7 +101,7 @@
             <td><b><a href="#obrRepository">obrRepository</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>OBR Repository.<br /></td>
+            <td>OBR Repository.<br /><b>User property is</b>: <tt>obrRepository</tt>.</td>
           </tr>
         </table>
       </div>
@@ -111,7 +111,7 @@
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${obrRepository}</tt></li>
+          <li><b>User Property</b>: <tt>obrRepository</tt></li>
         </ul>
       </div>
     </div>
@@ -123,7 +123,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/cleanVersions-mojo.html b/bundleplugin/doc/site/cleanVersions-mojo.html
index 95d62c1..242d1ca 100644
--- a/bundleplugin/doc/site/cleanVersions-mojo.html
+++ b/bundleplugin/doc/site/cleanVersions-mojo.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -11,7 +11,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -28,7 +28,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -123,7 +123,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/dependencies.html b/bundleplugin/doc/site/dependencies.html
index 3bf6d3e..f59497b 100644
--- a/bundleplugin/doc/site/dependencies.html
+++ b/bundleplugin/doc/site/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -27,7 +27,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -100,7 +100,7 @@
     </div>
     <div id="bodyColumn">
       <div id="contentBox">
-        <a name="Project_Dependencies"></a><div class="section"><h2>Project Dependencies<a name="Project_Dependencies"></a></h2><a name="Project_Dependencies_compile"></a><div class="section"><h3>compile<a name="compile"></a></h3><p>The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:</p><table border="0" class="bodyTable"><tr class="a"><th>GroupId</th><th>ArtifactId</th><th>Version</th><th>Type</th><th>License</th></tr><tr class="b"><td>biz.aQute</td><td><a class="externalLink" href="http://www.aQute.biz/Code/Bnd">bndlib</a></td><td>1.50.0</td><td>jar</td><td><a class="externalLink" href="http://www.opensource.org/licenses/apache2.0.php">Apache Software License 2.0</a></td></tr><tr class="a"><td>org.apache.felix</td><td><a class="externalLink" href="http://felix.apache.org/org.apache.felix.bundlerepository/">org.apache.felix.bundlerepository</a></td><td>1.6.6</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/shared/maven-archiver/">maven-archiver</a></td><td>2.4.1</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-core">maven-core</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven.shared</td><td><a class="externalLink" href="http://maven.apache.org/shared/maven-dependency-tree/">maven-dependency-tree</a></td><td>1.2</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.codehaus.plexus</td><td><a class="externalLink" href="http://plexus.codehaus.org/plexus-utils">plexus-utils</a></td><td>2.1</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Public License 2.0</a></td></tr></table></div><a name="Project_Dependencies_test"></a><div class="section"><h3>test<a name="test"></a></h3><p>The following is a list of test dependencies for this project. These dependencies are only required to compile and run unit tests for the application:</p><table border="0" class="bodyTable"><tr class="a"><th>GroupId</th><th>ArtifactId</th><th>Version</th><th>Type</th><th>License</th></tr><tr class="b"><td>junit</td><td><a class="externalLink" href="http://junit.org">junit</a></td><td>4.0</td><td>jar</td><td>-</td></tr><tr class="a"><td>org.apache.maven.shared</td><td><a class="externalLink" href="http://maven.apache.org/shared/maven-plugin-testing-harness/">maven-plugin-testing-harness</a></td><td>1.1</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.easymock</td><td><a class="externalLink" href="http://www.easymock.org">easymock</a></td><td>2.4</td><td>jar</td><td><a class="externalLink" href="http://www.easymock.org/License.html">MIT License</a></td></tr><tr class="a"><td>org.mockito</td><td><a class="externalLink" href="http://www.mockito.org">mockito-all</a></td><td>1.7</td><td>jar</td><td><a class="externalLink" href="http://code.google.com/p/mockito/wiki/License">The MIT License</a></td></tr></table></div></div><a name="Project_Transitive_Dependencies"></a><div class="section"><h2>Project Transitive Dependencies<a name="Project_Transitive_Dependencies"></a></h2><p>The following is a list of transitive dependencies for this project. Transitive dependencies are the dependencies of the project dependencies.</p><a name="Project_Transitive_Dependencies_compile"></a><div class="section"><h3>compile<a name="compile"></a></h3><p>The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:</p><table border="0" class="bodyTable"><tr class="a"><th>GroupId</th><th>ArtifactId</th><th>Version</th><th>Type</th><th>License</th></tr><tr class="b"><td>classworlds</td><td><a class="externalLink" href="http://classworlds.codehaus.org/">classworlds</a></td><td>1.1</td><td>jar</td><td>-</td></tr><tr class="a"><td>commons-cli</td><td>commons-cli</td><td>1.0</td><td>jar</td><td>-</td></tr><tr class="b"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-artifact">maven-artifact</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-artifact-manager">maven-artifact-manager</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-error-diagnostics">maven-error-diagnostics</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-model">maven-model</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-monitor">maven-monitor</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-plugin-api">maven-plugin-api</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-plugin-descriptor">maven-plugin-descriptor</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-plugin-parameter-documenter">maven-plugin-parameter-documenter</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-plugin-registry">maven-plugin-registry</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-profile">maven-profile</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-project">maven-project</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-repository-metadata">maven-repository-metadata</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-settings">maven-settings</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven.doxia</td><td><a class="externalLink" href="http://maven.apache.org/doxia/doxia-sink-api">doxia-sink-api</a></td><td>1.0-alpha-7</td><td>jar</td><td>-</td></tr><tr class="b"><td>org.apache.maven.reporting</td><td><a class="externalLink" href="http://maven.apache.org/maven-reporting/maven-reporting-api">maven-reporting-api</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven.wagon</td><td><a class="externalLink" href="http://maven.apache.org/wagon/wagon-provider-api">wagon-provider-api</a></td><td>1.0-beta-2</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.codehaus.plexus</td><td><a class="externalLink" href="http://plexus.codehaus.org/plexus-components/plexus-archiver">plexus-archiver</a></td><td>1.0</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.codehaus.plexus</td><td>plexus-container-default</td><td>1.0-alpha-9-stable-1</td><td>jar</td><td>-</td></tr><tr class="b"><td>org.codehaus.plexus</td><td>plexus-interactivity-api</td><td>1.0-alpha-4</td><td>jar</td><td>-</td></tr><tr class="a"><td>org.codehaus.plexus</td><td><a class="externalLink" href="http://plexus.codehaus.org/plexus-components/plexus-interpolation">plexus-interpolation</a></td><td>1.13</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.codehaus.plexus</td><td><a class="externalLink" href="http://plexus.codehaus.org/plexus-components/plexus-io">plexus-io</a></td><td>1.0</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.osgi</td><td>org.osgi.core</td><td>4.1.0</td><td>jar</td><td>-</td></tr></table></div><a name="Project_Transitive_Dependencies_runtime"></a><div class="section"><h3>runtime<a name="runtime"></a></h3><p>The following is a list of runtime dependencies for this project. These dependencies are required to run the application:</p><table border="0" class="bodyTable"><tr class="a"><th>GroupId</th><th>ArtifactId</th><th>Version</th><th>Type</th><th>License</th></tr><tr class="b"><td>com.jcraft</td><td><a class="externalLink" href="http://www.jcraft.com/jsch/">jsch</a></td><td>0.1.27</td><td>jar</td><td><a class="externalLink" href="http://www.jcraft.com/jsch/LICENSE.txt">BSD</a></td></tr><tr class="a"><td>jtidy</td><td><a class="externalLink" href="http://jtidy.sourceforge.net">jtidy</a></td><td>4aug2000r7-dev</td><td>jar</td><td><a class="externalLink" href="http://svn.sourceforge.net/viewvc/*checkout*/jtidy/trunk/jtidy/LICENSE.txt?revision=95">Java HTML Tidy License</a></td></tr><tr class="b"><td>org.apache.maven.wagon</td><td><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-file">wagon-file</a></td><td>1.0-beta-2</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven.wagon</td><td><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-http-lightweight">wagon-http-lightweight</a></td><td>1.0-beta-2</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven.wagon</td><td><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-http-shared">wagon-http-shared</a></td><td>1.0-beta-2</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven.wagon</td><td><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-ssh">wagon-ssh</a></td><td>1.0-beta-2</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven.wagon</td><td><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-ssh-common">wagon-ssh-common</a></td><td>1.0-beta-2</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven.wagon</td><td><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-ssh-external">wagon-ssh-external</a></td><td>1.0-beta-2</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>xml-apis</td><td><a class="externalLink" href="http://xml.apache.org/commons/#external">xml-apis</a></td><td>1.0.b2</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr></table></div></div><a name="Project_Dependency_Graph"></a><div class="section"><h2>Project Dependency Graph<a name="Project_Dependency_Graph"></a></h2><script language="javascript" type="text/javascript">
+        <a name="Project_Dependencies"></a><div class="section"><h2>Project Dependencies<a name="Project_Dependencies"></a></h2><a name="Project_Dependencies_compile"></a><div class="section"><h3>compile<a name="compile"></a></h3><p>The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:</p><table border="0" class="bodyTable"><tr class="a"><th>GroupId</th><th>ArtifactId</th><th>Version</th><th>Type</th><th>License</th></tr><tr class="b"><td>biz.aQute.bnd</td><td><a class="externalLink" href="http://www.aQute.biz/Code/Bnd/bndlib">bndlib</a></td><td>2.1.0</td><td>jar</td><td><a class="externalLink" href="http://www.opensource.org/licenses/apache2.0.php">Apache Software License 2.0</a></td></tr><tr class="a"><td>org.apache.felix</td><td><a class="externalLink" href="http://felix.apache.org/org.apache.felix.bundlerepository/">org.apache.felix.bundlerepository</a></td><td>1.6.6</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/shared/maven-archiver/">maven-archiver</a></td><td>2.5</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-core">maven-core</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven.shared</td><td><a class="externalLink" href="http://maven.apache.org/shared/maven-dependency-tree/">maven-dependency-tree</a></td><td>2.1</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.codehaus.plexus</td><td><a class="externalLink" href="http://plexus.codehaus.org/plexus-utils">plexus-utils</a></td><td>3.0.10</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr></table></div><a name="Project_Dependencies_test"></a><div class="section"><h3>test<a name="test"></a></h3><p>The following is a list of test dependencies for this project. These dependencies are only required to compile and run unit tests for the application:</p><table border="0" class="bodyTable"><tr class="a"><th>GroupId</th><th>ArtifactId</th><th>Version</th><th>Type</th><th>License</th></tr><tr class="b"><td>junit</td><td><a class="externalLink" href="http://junit.org">junit</a></td><td>4.0</td><td>jar</td><td>-</td></tr><tr class="a"><td>org.apache.maven.shared</td><td><a class="externalLink" href="http://maven.apache.org/shared/maven-plugin-testing-harness/">maven-plugin-testing-harness</a></td><td>1.1</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.easymock</td><td><a class="externalLink" href="http://www.easymock.org">easymock</a></td><td>2.4</td><td>jar</td><td><a class="externalLink" href="http://www.easymock.org/License.html">MIT License</a></td></tr><tr class="a"><td>org.mockito</td><td><a class="externalLink" href="http://www.mockito.org">mockito-all</a></td><td>1.7</td><td>jar</td><td><a class="externalLink" href="http://code.google.com/p/mockito/wiki/License">The MIT License</a></td></tr></table></div></div><a name="Project_Transitive_Dependencies"></a><div class="section"><h2>Project Transitive Dependencies<a name="Project_Transitive_Dependencies"></a></h2><p>The following is a list of transitive dependencies for this project. Transitive dependencies are the dependencies of the project dependencies.</p><a name="Project_Transitive_Dependencies_compile"></a><div class="section"><h3>compile<a name="compile"></a></h3><p>The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:</p><table border="0" class="bodyTable"><tr class="a"><th>GroupId</th><th>ArtifactId</th><th>Version</th><th>Type</th><th>License</th></tr><tr class="b"><td>classworlds</td><td><a class="externalLink" href="http://classworlds.codehaus.org/">classworlds</a></td><td>1.1</td><td>jar</td><td>-</td></tr><tr class="a"><td>commons-cli</td><td>commons-cli</td><td>1.0</td><td>jar</td><td>-</td></tr><tr class="b"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-artifact">maven-artifact</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-artifact-manager">maven-artifact-manager</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-error-diagnostics">maven-error-diagnostics</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-model">maven-model</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-monitor">maven-monitor</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-plugin-api">maven-plugin-api</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-plugin-descriptor">maven-plugin-descriptor</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-plugin-parameter-documenter">maven-plugin-parameter-documenter</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-plugin-registry">maven-plugin-registry</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-profile">maven-profile</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-project">maven-project</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-repository-metadata">maven-repository-metadata</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven</td><td><a class="externalLink" href="http://maven.apache.org/maven-settings">maven-settings</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven.doxia</td><td><a class="externalLink" href="http://maven.apache.org/doxia/doxia-sink-api">doxia-sink-api</a></td><td>1.0-alpha-7</td><td>jar</td><td>-</td></tr><tr class="b"><td>org.apache.maven.reporting</td><td><a class="externalLink" href="http://maven.apache.org/maven-reporting/maven-reporting-api">maven-reporting-api</a></td><td>2.0.7</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven.wagon</td><td><a class="externalLink" href="http://maven.apache.org/wagon/wagon-provider-api">wagon-provider-api</a></td><td>1.0-beta-2</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.codehaus.plexus</td><td><a class="externalLink" href="http://forge.sonatype.com/spice-parent/plexus-archiver/">plexus-archiver</a></td><td>2.1</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr><tr class="a"><td>org.codehaus.plexus</td><td><a class="externalLink" href="http://plexus.codehaus.org/plexus-containers/plexus-component-annotations/">plexus-component-annotations</a></td><td>1.5.5</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.codehaus.plexus</td><td>plexus-container-default</td><td>1.0-alpha-9-stable-1</td><td>jar</td><td>-</td></tr><tr class="a"><td>org.codehaus.plexus</td><td>plexus-interactivity-api</td><td>1.0-alpha-4</td><td>jar</td><td>-</td></tr><tr class="b"><td>org.codehaus.plexus</td><td><a class="externalLink" href="http://plexus.codehaus.org/plexus-interpolation/">plexus-interpolation</a></td><td>1.15</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.codehaus.plexus</td><td><a class="externalLink" href="http://plexus.codehaus.org/plexus-components/plexus-io">plexus-io</a></td><td>2.0.2</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.eclipse.aether</td><td><a class="externalLink" href="http://www.eclipse.org/aether/aether-util/">aether-util</a></td><td>0.9.0.M2</td><td>jar</td><td><a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License, Version 1.0</a></td></tr><tr class="a"><td>org.osgi</td><td>org.osgi.core</td><td>4.2.0</td><td>jar</td><td>-</td></tr></table></div><a name="Project_Transitive_Dependencies_runtime"></a><div class="section"><h3>runtime<a name="runtime"></a></h3><p>The following is a list of runtime dependencies for this project. These dependencies are required to run the application:</p><table border="0" class="bodyTable"><tr class="a"><th>GroupId</th><th>ArtifactId</th><th>Version</th><th>Type</th><th>License</th></tr><tr class="b"><td>com.jcraft</td><td><a class="externalLink" href="http://www.jcraft.com/jsch/">jsch</a></td><td>0.1.27</td><td>jar</td><td><a class="externalLink" href="http://www.jcraft.com/jsch/LICENSE.txt">BSD</a></td></tr><tr class="a"><td>jtidy</td><td><a class="externalLink" href="http://jtidy.sourceforge.net">jtidy</a></td><td>4aug2000r7-dev</td><td>jar</td><td><a class="externalLink" href="http://svn.sourceforge.net/viewvc/*checkout*/jtidy/trunk/jtidy/LICENSE.txt?revision=95">Java HTML Tidy License</a></td></tr><tr class="b"><td>org.apache.maven.wagon</td><td><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-file">wagon-file</a></td><td>1.0-beta-2</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven.wagon</td><td><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-http-lightweight">wagon-http-lightweight</a></td><td>1.0-beta-2</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven.wagon</td><td><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-http-shared">wagon-http-shared</a></td><td>1.0-beta-2</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven.wagon</td><td><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-ssh">wagon-ssh</a></td><td>1.0-beta-2</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>org.apache.maven.wagon</td><td><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-ssh-common">wagon-ssh-common</a></td><td>1.0-beta-2</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="a"><td>org.apache.maven.wagon</td><td><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-ssh-external">wagon-ssh-external</a></td><td>1.0-beta-2</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr><tr class="b"><td>xml-apis</td><td><a class="externalLink" href="http://xml.apache.org/commons/#external">xml-apis</a></td><td>1.0.b2</td><td>jar</td><td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr></table></div></div><a name="Project_Dependency_Graph"></a><div class="section"><h2>Project Dependency Graph<a name="Project_Dependency_Graph"></a></h2><script language="javascript" type="text/javascript">
       function toggleDependencyDetail( divId, imgId )
       {
         var div = document.getElementById( divId );
@@ -117,27 +117,30 @@
         }
       }
 </script>
-<a name="Dependency_Tree"></a><div class="section"><h3>Dependency Tree<a name="Dependency_Tree"></a></h3><ul><li>org.apache.felix:maven-bundle-plugin:maven-plugin:2.4.0-SNAPSHOT <img id="_1817062790" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_396681985', '_1817062790' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_396681985" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Bundle Plugin</th></tr><tr class="b"><td><p><b>Description: </b>Provides a maven plugin that supports creating an OSGi bundle
+<a name="Dependency_Tree"></a><div class="section"><h3>Dependency Tree<a name="Dependency_Tree"></a></h3><ul><li>org.apache.felix:maven-bundle-plugin:maven-plugin:2.4.0-SNAPSHOT <img id="_1397986861" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1805994600', '_1397986861' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1805994600" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Bundle Plugin</th></tr><tr class="b"><td><p><b>Description: </b>Provides a maven plugin that supports creating an OSGi bundle
   from the contents of the compilation classpath along with its
   resources and dependencies. Plus a zillion other features.
-  The plugin uses the Bnd tool (http://www.aqute.biz/Code/Bnd)</p><p><b>URL: </b><a class="externalLink" href="http://felix.apache.org/maven-bundle-plugin/">http://felix.apache.org/maven-bundle-plugin/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>biz.aQute:bndlib:jar:1.50.0 (compile) <img id="_46227215" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1985385762', '_46227215' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1985385762" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>bnd - Bundle Tool</th></tr><tr class="b"><td><p><b>Description: </b>A Swiss Army Knife for OSGi</p><p><b>URL: </b><a class="externalLink" href="http://www.aQute.biz/Code/Bnd">http://www.aQute.biz/Code/Bnd</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.opensource.org/licenses/apache2.0.php">Apache Software License 2.0</a></p></td></tr></table></div></li><li>org.apache.felix:org.apache.felix.bundlerepository:jar:1.6.6 (compile) <img id="_1037762096" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_134375086', '_1037762096' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_134375086" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Apache Felix Bundle Repository</th></tr><tr class="b"><td><p><b>Description: </b>Bundle repository service.</p><p><b>URL: </b><a class="externalLink" href="http://felix.apache.org/org.apache.felix.bundlerepository/">http://felix.apache.org/org.apache.felix.bundlerepository/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.osgi:org.osgi.core:jar:4.1.0 (compile) <img id="_1208671876" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1535837560', '_1208671876' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1535837560" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>org.osgi.core</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li><li>org.easymock:easymock:jar:2.4 (compile) <img id="_211358462" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_658382302', '_211358462' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_658382302" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>EasyMock</th></tr><tr class="b"><td><p><b>Description: </b>EasyMock provides an easy way to create Mock Objects for interfaces by generating them on the fly using Java's proxy mechanism</p><p><b>URL: </b><a class="externalLink" href="http://www.easymock.org">http://www.easymock.org</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.easymock.org/License.html">MIT License</a></p></td></tr></table></div></li></ul></li><li>org.apache.maven:maven-core:jar:2.0.7 (compile) <img id="_1960327074" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_379798930', '_1960327074' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_379798930" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Core</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-core">http://maven.apache.org/maven-core</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven:maven-settings:jar:2.0.7 (compile) <img id="_721565061" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_602167452', '_721565061' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_602167452" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Local Settings Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-settings">http://maven.apache.org/maven-settings</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven:maven-model:jar:2.0.7 (compile) <img id="_1254443694" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_385766273', '_1254443694' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_385766273" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven Model</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-model">http://maven.apache.org/maven-model</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_1730518101" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_406454260', '_1730518101' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_406454260" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li></ul></li><li>org.apache.maven.wagon:wagon-file:jar:1.0-beta-2 (runtime) <img id="_544749357" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1442053609', '_544749357' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1442053609" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon File Provider</th></tr><tr class="b"><td><p><b>Description: </b>Wagon that gets and puts artifacts using file system protocol</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-file">http://maven.apache.org/wagon/wagon-providers/wagon-file</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2 (runtime) <img id="_231532579" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1348651289', '_231532579' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1348651289" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon API</th></tr><tr class="b"><td><p><b>Description: </b>Maven Wagon API that defines the contract between different Wagon implementations</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-provider-api">http://maven.apache.org/wagon/wagon-provider-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li><li>org.apache.maven:maven-plugin-parameter-documenter:jar:2.0.7 (compile) <img id="_583906197" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1694192447', '_583906197' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1694192447" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Plugin Parameter Documenter API</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-plugin-parameter-documenter">http://maven.apache.org/maven-plugin-parameter-documenter</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_1138591051" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1555703663', '_1138591051' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1555703663" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li></ul></li><li>org.apache.maven.wagon:wagon-http-lightweight:jar:1.0-beta-2 (runtime) <img id="_1913692480" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_227042640', '_1913692480' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_227042640" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon Lightweight HTTP Provider</th></tr><tr class="b"><td><p><b>Description: </b>Wagon that gets and puts artifacts through http using standard Java library</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-http-lightweight">http://maven.apache.org/wagon/wagon-providers/wagon-http-lightweight</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven.wagon:wagon-http-shared:jar:1.0-beta-2 (runtime) <img id="_252390944" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_592704096', '_252390944' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_592704096" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon HTTP Shared Library</th></tr><tr class="b"><td><p><b>Description: </b>Shared Library for the wagon-http, and wagon-http-lightweight wagon providers.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-http-shared">http://maven.apache.org/wagon/wagon-providers/wagon-http-shared</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>jtidy:jtidy:jar:4aug2000r7-dev (runtime) <img id="_1606297413" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_534180135', '_1606297413' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_534180135" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>JTidy</th></tr><tr class="b"><td><p><b>Description: </b>JTidy is a Java port of HTML Tidy, a HTML syntax checker and pretty printer. Like its non-Java cousin, JTidy can be used as a tool for cleaning up malformed and faulty HTML. In addition, JTidy provides a DOM parser for real-world HTML.</p><p><b>URL: </b><a class="externalLink" href="http://jtidy.sourceforge.net">http://jtidy.sourceforge.net</a></p><p><b>Project License: </b><a class="externalLink" href="http://svn.sourceforge.net/viewvc/*checkout*/jtidy/trunk/jtidy/LICENSE.txt?revision=95">Java HTML Tidy License</a></p></td></tr></table></div></li><li>org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2 (runtime) <img id="_157630540" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1997322369', '_157630540' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1997322369" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon API</th></tr><tr class="b"><td><p><b>Description: </b>Maven Wagon API that defines the contract between different Wagon implementations</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-provider-api">http://maven.apache.org/wagon/wagon-provider-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li><li>xml-apis:xml-apis:jar:1.0.b2 (runtime) <img id="_92932949" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_425672117', '_92932949' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_425672117" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>XML Commons External Components XML APIs</th></tr><tr class="b"><td><p><b>Description: </b>xml-commons provides an Apache-hosted set of DOM, SAX, and 
+  The plugin uses the Bnd tool (http://www.aqute.biz/Code/Bnd)</p><p><b>URL: </b><a class="externalLink" href="http://felix.apache.org/maven-bundle-plugin/">http://felix.apache.org/maven-bundle-plugin/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>biz.aQute.bnd:bndlib:jar:2.1.0 (compile) <img id="_2124682751" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_847411179', '_2124682751' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_847411179" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>A Swiss Army Knife for OSGi</th></tr><tr class="b"><td><p><b>Description: </b>The bndlib project is a general library to be used with OSGi bundles. It contains
+    lots of cool functionality that calculates dependencies, etc.</p><p><b>URL: </b><a class="externalLink" href="http://www.aQute.biz/Code/Bnd/bndlib">http://www.aQute.biz/Code/Bnd/bndlib</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.opensource.org/licenses/apache2.0.php">Apache Software License 2.0</a></p></td></tr></table></div><ul><li>org.osgi:org.osgi.core:jar:4.2.0 (compile) <img id="_2109964013" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_668099104', '_2109964013' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_668099104" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>org.osgi.core</th></tr><tr class="b"><td><p><b>Description: </b>POM was created by Sonatype Nexus</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li></ul></li><li>org.apache.felix:org.apache.felix.bundlerepository:jar:1.6.6 (compile) <img id="_94356821" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_632718946', '_94356821' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_632718946" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Apache Felix Bundle Repository</th></tr><tr class="b"><td><p><b>Description: </b>Bundle repository service.</p><p><b>URL: </b><a class="externalLink" href="http://felix.apache.org/org.apache.felix.bundlerepository/">http://felix.apache.org/org.apache.felix.bundlerepository/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.easymock:easymock:jar:2.4 (compile) <img id="_1940029524" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_592154419', '_1940029524' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_592154419" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>EasyMock</th></tr><tr class="b"><td><p><b>Description: </b>EasyMock provides an easy way to create Mock Objects for interfaces by generating them on the fly using Java's proxy mechanism</p><p><b>URL: </b><a class="externalLink" href="http://www.easymock.org">http://www.easymock.org</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.easymock.org/License.html">MIT License</a></p></td></tr></table></div></li></ul></li><li>org.apache.maven:maven-core:jar:2.0.7 (compile) <img id="_1683025293" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1134722863', '_1683025293' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1134722863" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Core</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-core">http://maven.apache.org/maven-core</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven:maven-settings:jar:2.0.7 (compile) <img id="_438774694" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1905589642', '_438774694' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1905589642" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Local Settings Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-settings">http://maven.apache.org/maven-settings</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven:maven-model:jar:2.0.7 (compile) <img id="_334440622" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_215079650', '_334440622' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_215079650" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven Model</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-model">http://maven.apache.org/maven-model</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_1490673062" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_584696363', '_1490673062' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_584696363" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li></ul></li><li>org.apache.maven.wagon:wagon-file:jar:1.0-beta-2 (runtime) <img id="_2034259857" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_960942714', '_2034259857' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_960942714" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon File Provider</th></tr><tr class="b"><td><p><b>Description: </b>Wagon that gets and puts artifacts using file system protocol</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-file">http://maven.apache.org/wagon/wagon-providers/wagon-file</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2 (runtime) <img id="_751648567" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2002738904', '_751648567' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2002738904" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon API</th></tr><tr class="b"><td><p><b>Description: </b>Maven Wagon API that defines the contract between different Wagon implementations</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-provider-api">http://maven.apache.org/wagon/wagon-provider-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li><li>org.apache.maven:maven-plugin-parameter-documenter:jar:2.0.7 (compile) <img id="_551855458" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1523259723', '_551855458' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1523259723" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Plugin Parameter Documenter API</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-plugin-parameter-documenter">http://maven.apache.org/maven-plugin-parameter-documenter</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_100665092" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1820696432', '_100665092' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1820696432" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li></ul></li><li>org.apache.maven.wagon:wagon-http-lightweight:jar:1.0-beta-2 (runtime) <img id="_1201806375" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1886945575', '_1201806375' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1886945575" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon Lightweight HTTP Provider</th></tr><tr class="b"><td><p><b>Description: </b>Wagon that gets and puts artifacts through http using standard Java library</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-http-lightweight">http://maven.apache.org/wagon/wagon-providers/wagon-http-lightweight</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven.wagon:wagon-http-shared:jar:1.0-beta-2 (runtime) <img id="_549454036" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1003337356', '_549454036' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1003337356" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon HTTP Shared Library</th></tr><tr class="b"><td><p><b>Description: </b>Shared Library for the wagon-http, and wagon-http-lightweight wagon providers.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-http-shared">http://maven.apache.org/wagon/wagon-providers/wagon-http-shared</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>jtidy:jtidy:jar:4aug2000r7-dev (runtime) <img id="_2052525479" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1049928328', '_2052525479' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1049928328" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>JTidy</th></tr><tr class="b"><td><p><b>Description: </b>JTidy is a Java port of HTML Tidy, a HTML syntax checker and pretty printer. Like its non-Java cousin, JTidy can be used as a tool for cleaning up malformed and faulty HTML. In addition, JTidy provides a DOM parser for real-world HTML.</p><p><b>URL: </b><a class="externalLink" href="http://jtidy.sourceforge.net">http://jtidy.sourceforge.net</a></p><p><b>Project License: </b><a class="externalLink" href="http://svn.sourceforge.net/viewvc/*checkout*/jtidy/trunk/jtidy/LICENSE.txt?revision=95">Java HTML Tidy License</a></p></td></tr></table></div></li><li>org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2 (runtime) <img id="_88799330" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1100520037', '_88799330' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1100520037" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon API</th></tr><tr class="b"><td><p><b>Description: </b>Maven Wagon API that defines the contract between different Wagon implementations</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-provider-api">http://maven.apache.org/wagon/wagon-provider-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li><li>xml-apis:xml-apis:jar:1.0.b2 (runtime) <img id="_699450177" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1055808636', '_699450177' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1055808636" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>XML Commons External Components XML APIs</th></tr><tr class="b"><td><p><b>Description: </b>xml-commons provides an Apache-hosted set of DOM, SAX, and 
     JAXP interfaces for use in other xml-based projects. Our hope is that we 
     can standardize on both a common version and packaging scheme for these 
     critical XML standards interfaces to make the lives of both our developers 
     and users easier. The External Components portion of xml-commons contains 
     interfaces that are defined by external standards organizations. For DOM, 
     that's the W3C; for SAX it's David Megginson and sax.sourceforge.net; for 
-    JAXP it's Sun.</p><p><b>URL: </b><a class="externalLink" href="http://xml.apache.org/commons/#external">http://xml.apache.org/commons/#external</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2 (runtime) <img id="_595871123" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2101297817', '_595871123' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2101297817" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon API</th></tr><tr class="b"><td><p><b>Description: </b>Maven Wagon API that defines the contract between different Wagon implementations</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-provider-api">http://maven.apache.org/wagon/wagon-provider-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li><li>org.apache.maven.reporting:maven-reporting-api:jar:2.0.7 (compile) <img id="_401591282" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1122468808', '_401591282' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1122468808" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Reporting API</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-reporting/maven-reporting-api">http://maven.apache.org/maven-reporting/maven-reporting-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven.doxia:doxia-sink-api:jar:1.0-alpha-7 (compile) <img id="_1323513448" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_539098023', '_1323513448' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_539098023" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Doxia Sink API</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/doxia/doxia-sink-api">http://maven.apache.org/doxia/doxia-sink-api</a></p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li></ul></li><li>org.apache.maven:maven-profile:jar:2.0.7 (compile) <img id="_873656998" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2005856562', '_873656998' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2005856562" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Profile Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-profile">http://maven.apache.org/maven-profile</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven:maven-model:jar:2.0.7 (compile) <img id="_6714214" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1814900713', '_6714214' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1814900713" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven Model</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-model">http://maven.apache.org/maven-model</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_1468642313" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1954139386', '_1468642313' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1954139386" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li></ul></li><li>org.apache.maven:maven-model:jar:2.0.7 (compile) <img id="_1274020062" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_354478782', '_1274020062' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_354478782" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven Model</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-model">http://maven.apache.org/maven-model</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven:maven-artifact:jar:2.0.7 (compile) <img id="_641286790" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_405997833', '_641286790' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_405997833" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Artifact</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-artifact">http://maven.apache.org/maven-artifact</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2 (compile) <img id="_2129748136" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1547663511', '_2129748136' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1547663511" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon API</th></tr><tr class="b"><td><p><b>Description: </b>Maven Wagon API that defines the contract between different Wagon implementations</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-provider-api">http://maven.apache.org/wagon/wagon-provider-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_1333336336" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_661067314', '_1333336336' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_661067314" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li><li>org.apache.maven:maven-repository-metadata:jar:2.0.7 (compile) <img id="_2111552003" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1916141683', '_2111552003' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1916141683" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Repository Metadata Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven Plugin Mapping</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-repository-metadata">http://maven.apache.org/maven-repository-metadata</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven:maven-error-diagnostics:jar:2.0.7 (compile) <img id="_488733724" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1892202371', '_488733724' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1892202371" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Error Diagnostics</th></tr><tr class="b"><td><p><b>Description: </b>Provides a manager component which will process a given Throwable instance through a set of diagnostic
+    JAXP it's Sun.</p><p><b>URL: </b><a class="externalLink" href="http://xml.apache.org/commons/#external">http://xml.apache.org/commons/#external</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2 (runtime) <img id="_529014059" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_569551080', '_529014059' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_569551080" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon API</th></tr><tr class="b"><td><p><b>Description: </b>Maven Wagon API that defines the contract between different Wagon implementations</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-provider-api">http://maven.apache.org/wagon/wagon-provider-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li><li>org.apache.maven.reporting:maven-reporting-api:jar:2.0.7 (compile) <img id="_1772316360" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1388774862', '_1772316360' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1388774862" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Reporting API</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-reporting/maven-reporting-api">http://maven.apache.org/maven-reporting/maven-reporting-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven.doxia:doxia-sink-api:jar:1.0-alpha-7 (compile) <img id="_641191930" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_98375116', '_641191930' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_98375116" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Doxia Sink API</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/doxia/doxia-sink-api">http://maven.apache.org/doxia/doxia-sink-api</a></p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li></ul></li><li>org.apache.maven:maven-profile:jar:2.0.7 (compile) <img id="_109130331" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_848901081', '_109130331' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_848901081" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Profile Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-profile">http://maven.apache.org/maven-profile</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven:maven-model:jar:2.0.7 (compile) <img id="_1715773496" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_956971846', '_1715773496' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_956971846" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven Model</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-model">http://maven.apache.org/maven-model</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_987908459" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_445274435', '_987908459' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_445274435" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li></ul></li><li>org.apache.maven:maven-model:jar:2.0.7 (compile) <img id="_474684270" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_982672932', '_474684270' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_982672932" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven Model</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-model">http://maven.apache.org/maven-model</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven:maven-artifact:jar:2.0.7 (compile) <img id="_977607974" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1493891743', '_977607974' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1493891743" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Artifact</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-artifact">http://maven.apache.org/maven-artifact</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2 (compile) <img id="_1861544789" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1045378624', '_1861544789' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1045378624" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon API</th></tr><tr class="b"><td><p><b>Description: </b>Maven Wagon API that defines the contract between different Wagon implementations</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-provider-api">http://maven.apache.org/wagon/wagon-provider-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_2022442350" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_607803463', '_2022442350' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_607803463" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li><li>org.apache.maven:maven-repository-metadata:jar:2.0.7 (compile) <img id="_289211267" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_754431638', '_289211267' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_754431638" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Repository Metadata Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven Plugin Mapping</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-repository-metadata">http://maven.apache.org/maven-repository-metadata</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven:maven-error-diagnostics:jar:2.0.7 (compile) <img id="_1294916163" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_903647721', '_1294916163' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_903647721" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Error Diagnostics</th></tr><tr class="b"><td><p><b>Description: </b>Provides a manager component which will process a given Throwable instance through a set of diagnostic
     sub-components, and return a String message with user-friendly information about the error and possibly
-    how to fix it.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-error-diagnostics">http://maven.apache.org/maven-error-diagnostics</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_141491438" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_666351931', '_141491438' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_666351931" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li></ul></li><li>org.apache.maven:maven-project:jar:2.0.7 (compile) <img id="_1327397020" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1263843040', '_1327397020' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1263843040" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Project Builder</th></tr><tr class="b"><td><p><b>Description: </b>This library is used to not only read Maven project object model files, but to assemble inheritence
-    and to retrieve remote models as required.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-project">http://maven.apache.org/maven-project</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven:maven-settings:jar:2.0.7 (compile) <img id="_1059981140" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1336004876', '_1059981140' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1336004876" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Local Settings Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-settings">http://maven.apache.org/maven-settings</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven:maven-profile:jar:2.0.7 (compile) <img id="_1823317797" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2113341970', '_1823317797' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2113341970" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Profile Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-profile">http://maven.apache.org/maven-profile</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven:maven-model:jar:2.0.7 (compile) <img id="_1590870734" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2068058776', '_1590870734' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2068058776" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven Model</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-model">http://maven.apache.org/maven-model</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven:maven-artifact-manager:jar:2.0.7 (compile) <img id="_682342480" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_992855363', '_682342480' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_992855363" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Artifact Manager</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-artifact-manager">http://maven.apache.org/maven-artifact-manager</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven:maven-plugin-registry:jar:2.0.7 (compile) <img id="_352658948" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_170750248', '_352658948' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_170750248" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Plugin Registry Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-plugin-registry">http://maven.apache.org/maven-plugin-registry</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_1205499079" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1790236002', '_1205499079' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1790236002" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li></ul></li><li>org.apache.maven:maven-artifact:jar:2.0.7 (compile) <img id="_103057838" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_23766368', '_103057838' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_23766368" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Artifact</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-artifact">http://maven.apache.org/maven-artifact</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_389137616" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1500485270', '_389137616' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1500485270" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li></ul></li><li>commons-cli:commons-cli:jar:1.0 (compile) <img id="_1657072880" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_520735009', '_1657072880' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_520735009" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>CLI</th></tr><tr class="b"><td><p><b>Description: </b>Commons CLI provides a simple API for working with the command line arguments and options.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li><li>org.apache.maven:maven-plugin-api:jar:2.0.7 (compile) <img id="_434536764" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_143840811', '_434536764' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_143840811" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Plugin API</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-plugin-api">http://maven.apache.org/maven-plugin-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven.wagon:wagon-ssh-external:jar:1.0-beta-2 (runtime) <img id="_946688437" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1698935171', '_946688437' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1698935171" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon SSH External Provider</th></tr><tr class="b"><td><p><b>Description: </b>Wagon that gets and puts artifacts using SSH protocol with a preinstalled SSH client</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-ssh-external">http://maven.apache.org/wagon/wagon-providers/wagon-ssh-external</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven.wagon:wagon-ssh-common:jar:1.0-beta-2 (runtime) <img id="_782745051" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1010994144', '_782745051' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1010994144" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon SSH Common Library</th></tr><tr class="b"><td><p><b>Description: </b>Tools to manage artifacts and deployment</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-ssh-common">http://maven.apache.org/wagon/wagon-providers/wagon-ssh-common</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4 (runtime) <img id="_138009206" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1595596972', '_138009206' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1595596972" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Plexus Default Interactivity Handler</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li><li>org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2 (runtime) <img id="_2080473772" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1286887126', '_2080473772' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1286887126" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon API</th></tr><tr class="b"><td><p><b>Description: </b>Maven Wagon API that defines the contract between different Wagon implementations</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-provider-api">http://maven.apache.org/wagon/wagon-provider-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li><li>org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2 (runtime) <img id="_1467026636" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2080296052', '_1467026636' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2080296052" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon API</th></tr><tr class="b"><td><p><b>Description: </b>Maven Wagon API that defines the contract between different Wagon implementations</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-provider-api">http://maven.apache.org/wagon/wagon-provider-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li><li>org.apache.maven:maven-plugin-descriptor:jar:2.0.7 (compile) <img id="_2089942201" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1661763261', '_2089942201' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1661763261" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Plugin Descriptor Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-plugin-descriptor">http://maven.apache.org/maven-plugin-descriptor</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven:maven-plugin-api:jar:2.0.7 (compile) <img id="_230647978" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1329991709', '_230647978' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1329991709" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Plugin API</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-plugin-api">http://maven.apache.org/maven-plugin-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven:maven-artifact:jar:2.0.7 (compile) <img id="_1325168317" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_158433331', '_1325168317' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_158433331" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Artifact</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-artifact">http://maven.apache.org/maven-artifact</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_2133539647" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_859333356', '_2133539647' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_859333356" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li></ul></li><li>org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4 (compile) <img id="_43613664" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1464887196', '_43613664' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1464887196" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Plexus Default Interactivity Handler</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li><li>org.apache.maven:maven-artifact-manager:jar:2.0.7 (compile) <img id="_1876777757" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2030311628', '_1876777757' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2030311628" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Artifact Manager</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-artifact-manager">http://maven.apache.org/maven-artifact-manager</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven:maven-repository-metadata:jar:2.0.7 (compile) <img id="_2113216512" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1233956055', '_2113216512' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1233956055" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Repository Metadata Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven Plugin Mapping</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-repository-metadata">http://maven.apache.org/maven-repository-metadata</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven:maven-artifact:jar:2.0.7 (compile) <img id="_2010349094" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1962842720', '_2010349094' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1962842720" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Artifact</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-artifact">http://maven.apache.org/maven-artifact</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_1130040038" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1108196864', '_1130040038' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1108196864" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li><li>org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2 (compile) <img id="_541337047" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1595024003', '_541337047' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1595024003" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon API</th></tr><tr class="b"><td><p><b>Description: </b>Maven Wagon API that defines the contract between different Wagon implementations</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-provider-api">http://maven.apache.org/wagon/wagon-provider-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li><li>org.apache.maven:maven-monitor:jar:2.0.7 (compile) <img id="_678109695" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1036488824', '_678109695' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1036488824" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Monitor</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-monitor">http://maven.apache.org/maven-monitor</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven.wagon:wagon-ssh:jar:1.0-beta-2 (runtime) <img id="_127752234" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_217417554', '_127752234' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_217417554" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon SSH Provider</th></tr><tr class="b"><td><p><b>Description: </b>Tools to manage artifacts and deployment</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-ssh">http://maven.apache.org/wagon/wagon-providers/wagon-ssh</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>com.jcraft:jsch:jar:0.1.27 (runtime) <img id="_1842238126" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1277549158', '_1842238126' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1277549158" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>JSch</th></tr><tr class="b"><td><p><b>Description: </b>JSch is a pure Java implementation of SSH2</p><p><b>URL: </b><a class="externalLink" href="http://www.jcraft.com/jsch/">http://www.jcraft.com/jsch/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.jcraft.com/jsch/LICENSE.txt">BSD</a></p></td></tr></table></div></li><li>org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4 (runtime) <img id="_767902429" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_883927988', '_767902429' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_883927988" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Plexus Default Interactivity Handler</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li><li>org.apache.maven.wagon:wagon-ssh-common:jar:1.0-beta-2 (runtime) <img id="_724736555" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2026034375', '_724736555' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2026034375" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon SSH Common Library</th></tr><tr class="b"><td><p><b>Description: </b>Tools to manage artifacts and deployment</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-ssh-common">http://maven.apache.org/wagon/wagon-providers/wagon-ssh-common</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2 (runtime) <img id="_1193526396" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1351575736', '_1193526396' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1351575736" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon API</th></tr><tr class="b"><td><p><b>Description: </b>Maven Wagon API that defines the contract between different Wagon implementations</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-provider-api">http://maven.apache.org/wagon/wagon-provider-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li><li>classworlds:classworlds:jar:1.1 (compile) <img id="_1718161317" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1444155236', '_1718161317' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1444155236" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>classworlds</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>URL: </b><a class="externalLink" href="http://classworlds.codehaus.org/">http://classworlds.codehaus.org/</a></p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li></ul></li><li>org.apache.maven:maven-archiver:jar:2.4.1 (compile) <img id="_1238313563" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1492381838', '_1238313563' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1492381838" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Archiver</th></tr><tr class="b"><td><p><b>Description: </b>Provides utility methods for creating JARs and other archive files from a Maven project.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/shared/maven-archiver/">http://maven.apache.org/shared/maven-archiver/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.codehaus.plexus:plexus-archiver:jar:1.0 (compile) <img id="_1757511215" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_359313128', '_1757511215' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_359313128" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Plexus Archiver Component</th></tr><tr class="b"><td><p><b>Description: </b>The Plexus project provides a full software stack for creating and executing software projects.</p><p><b>URL: </b><a class="externalLink" href="http://plexus.codehaus.org/plexus-components/plexus-archiver">http://plexus.codehaus.org/plexus-components/plexus-archiver</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_1726877986" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_635894528', '_1726877986' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_635894528" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li><li>org.codehaus.plexus:plexus-io:jar:1.0 (compile) <img id="_1467035865" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2109438343', '_1467035865' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2109438343" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Plexus IO Components</th></tr><tr class="b"><td><p><b>Description: </b>The Plexus project provides a full software stack for creating and executing software projects.</p><p><b>URL: </b><a class="externalLink" href="http://plexus.codehaus.org/plexus-components/plexus-io">http://plexus.codehaus.org/plexus-components/plexus-io</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li><li>org.codehaus.plexus:plexus-interpolation:jar:1.13 (compile) <img id="_2045719625" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_629681275', '_2045719625' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_629681275" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Plexus Interpolation API</th></tr><tr class="b"><td><p><b>Description: </b>The Plexus project provides a full software stack for creating and executing software projects.</p><p><b>URL: </b><a class="externalLink" href="http://plexus.codehaus.org/plexus-components/plexus-interpolation">http://plexus.codehaus.org/plexus-components/plexus-interpolation</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li><li>org.apache.maven.shared:maven-dependency-tree:jar:1.2 (compile) <img id="_731757695" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1018739926', '_731757695' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1018739926" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Dependency Tree</th></tr><tr class="b"><td><p><b>Description: </b>Maven shared components</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/shared/maven-dependency-tree/">http://maven.apache.org/shared/maven-dependency-tree/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.codehaus.plexus:plexus-utils:jar:2.1 (compile) <img id="_1932793505" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1209978934', '_1932793505' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1209978934" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Plexus Common Utilities</th></tr><tr class="b"><td><p><b>Description: </b>A collection of various utility classes to ease working with strings, files, command lines, XML and more.</p><p><b>URL: </b><a class="externalLink" href="http://plexus.codehaus.org/plexus-utils">http://plexus.codehaus.org/plexus-utils</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Public License 2.0</a></p></td></tr></table></div></li><li>org.apache.maven.shared:maven-plugin-testing-harness:jar:1.1 (test) <img id="_428978747" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1671432394', '_428978747' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1671432394" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Plugin Testing Mechanism</th></tr><tr class="b"><td><p><b>Description: </b>Maven shared components</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/shared/maven-plugin-testing-harness/">http://maven.apache.org/shared/maven-plugin-testing-harness/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>junit:junit:jar:4.0 (test) <img id="_876907170" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2010385494', '_876907170' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2010385494" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>junit</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>URL: </b><a class="externalLink" href="http://junit.org">http://junit.org</a></p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li><li>org.easymock:easymock:jar:2.4 (test) <img id="_203652120" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_196331894', '_203652120' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_196331894" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>EasyMock</th></tr><tr class="b"><td><p><b>Description: </b>EasyMock provides an easy way to create Mock Objects for interfaces by generating them on the fly using Java's proxy mechanism</p><p><b>URL: </b><a class="externalLink" href="http://www.easymock.org">http://www.easymock.org</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.easymock.org/License.html">MIT License</a></p></td></tr></table></div></li><li>org.mockito:mockito-all:jar:1.7 (test) <img id="_779403538" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1858320342', '_779403538' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1858320342" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Mockito</th></tr><tr class="b"><td><p><b>Description: </b>Mock objects library for java</p><p><b>URL: </b><a class="externalLink" href="http://www.mockito.org">http://www.mockito.org</a></p><p><b>Project License: </b><a class="externalLink" href="http://code.google.com/p/mockito/wiki/License">The MIT License</a></p></td></tr></table></div></li></ul></li></ul></div></div><a name="Licenses"></a><div class="section"><h2>Licenses<a name="Licenses"></a></h2><p><b>Apache Software License 2.0: </b>bnd - Bundle Tool</p><p><b>Apache Public License 2.0: </b>Plexus Common Utilities</p><p><b>Java HTML Tidy License: </b>JTidy</p><p><b>Unknown: </b>CLI, Default Plexus Container, Doxia Sink API, Plexus Default Interactivity Handler, classworlds, junit, org.osgi.core</p><p><b>BSD: </b>JSch</p><p><b>MIT License: </b>EasyMock</p><p><b>The Apache Software License, Version 2.0: </b>Apache Felix Bundle Repository, Maven Archiver, Maven Artifact, Maven Artifact Manager, Maven Bundle Plugin, Maven Core, Maven Dependency Tree, Maven Error Diagnostics, Maven Local Settings Model, Maven Model, Maven Monitor, Maven Plugin API, Maven Plugin Descriptor Model, Maven Plugin Parameter Documenter API, Maven Plugin Registry Model, Maven Plugin Testing Mechanism, Maven Profile Model, Maven Project Builder, Maven Reporting API, Maven Repository Metadata Model, Maven Wagon API, Maven Wagon File Provider, Maven Wagon HTTP Shared Library, Maven Wagon Lightweight HTTP Provider, Maven Wagon SSH Common Library, Maven Wagon SSH External Provider, Maven Wagon SSH Provider, Plexus Archiver Component, Plexus IO Components, Plexus Interpolation API, XML Commons External Components XML APIs</p><p><b>The MIT License: </b>Mockito</p></div><a name="Dependency_File_Details"></a><div class="section"><h2>Dependency File Details<a name="Dependency_File_Details"></a></h2><table border="0" class="bodyTable"><tr class="a"><th>Filename</th><th>Size</th><th>Entries</th><th>Classes</th><th>Packages</th><th>JDK Rev</th><th>Debug</th></tr><tr class="b"><td>bndlib-1.50.0.jar</td><td>898.02 kB</td><td>665</td><td>261</td><td>55</td><td>1.5</td><td>debug</td></tr><tr class="a"><td>classworlds-1.1.jar</td><td>36.97 kB</td><td>33</td><td>23</td><td>3</td><td>1.3</td><td>debug</td></tr><tr class="b"><td>jsch-0.1.27.jar</td><td>119.15 kB</td><td>97</td><td>94</td><td>3</td><td>1.2</td><td>release</td></tr><tr class="a"><td>commons-cli-1.0.jar</td><td>29.41 kB</td><td>27</td><td>20</td><td>1</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>jtidy-4aug2000r7-dev.jar</td><td>134.60 kB</td><td>129</td><td>119</td><td>3</td><td>1.1</td><td>release</td></tr><tr class="a"><td>junit-4.0.jar</td><td>103.13 kB</td><td>119</td><td>92</td><td>11</td><td>1.5</td><td>debug</td></tr><tr class="b"><td>org.apache.felix.bundlerepository-1.6.6.jar</td><td>164.33 kB</td><td>112</td><td>84</td><td>11</td><td>1.4</td><td>debug</td></tr><tr class="a"><td>maven-archiver-2.4.1.jar</td><td>19.63 kB</td><td>19</td><td>5</td><td>1</td><td>1.4</td><td>debug</td></tr><tr class="b"><td>maven-artifact-2.0.7.jar</td><td>85.80 kB</td><td>106</td><td>77</td><td>15</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>maven-artifact-manager-2.0.7.jar</td><td>55.18 kB</td><td>46</td><td>24</td><td>7</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>maven-core-2.0.7.jar</td><td>149.30 kB</td><td>108</td><td>67</td><td>13</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>maven-error-diagnostics-2.0.7.jar</td><td>13.29 kB</td><td>22</td><td>6</td><td>1</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>maven-model-2.0.7.jar</td><td>84.41 kB</td><td>60</td><td>45</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>maven-monitor-2.0.7.jar</td><td>10.00 kB</td><td>19</td><td>5</td><td>1</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>maven-plugin-api-2.0.7.jar</td><td>12.56 kB</td><td>23</td><td>9</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>maven-plugin-descriptor-2.0.7.jar</td><td>36.01 kB</td><td>32</td><td>15</td><td>3</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>maven-plugin-parameter-documenter-2.0.7.jar</td><td>20.27 kB</td><td>20</td><td>4</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>maven-plugin-registry-2.0.7.jar</td><td>28.25 kB</td><td>28</td><td>10</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>maven-profile-2.0.7.jar</td><td>34.42 kB</td><td>33</td><td>16</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>maven-project-2.0.7.jar</td><td>113.81 kB</td><td>76</td><td>51</td><td>10</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>maven-repository-metadata-2.0.7.jar</td><td>23.90 kB</td><td>23</td><td>6</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>maven-settings-2.0.7.jar</td><td>47.96 kB</td><td>38</td><td>21</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>doxia-sink-api-1.0-alpha-7.jar</td><td>5.80 kB</td><td>19</td><td>3</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>maven-reporting-api-2.0.7.jar</td><td>9.71 kB</td><td>18</td><td>4</td><td>1</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>maven-dependency-tree-1.2.jar</td><td>33.75 kB</td><td>40</td><td>21</td><td>3</td><td>1.4</td><td>debug</td></tr><tr class="a"><td>maven-plugin-testing-harness-1.1.jar</td><td>31.73 kB</td><td>28</td><td>11</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>wagon-file-1.0-beta-2.jar</td><td>9.71 kB</td><td>18</td><td>1</td><td>1</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>wagon-http-lightweight-1.0-beta-2.jar</td><td>12.03 kB</td><td>19</td><td>2</td><td>1</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>wagon-http-shared-1.0-beta-2.jar</td><td>9.34 kB</td><td>17</td><td>2</td><td>1</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>wagon-provider-api-1.0-beta-2.jar</td><td>45.24 kB</td><td>57</td><td>37</td><td>8</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>wagon-ssh-1.0-beta-2.jar</td><td>23.05 kB</td><td>26</td><td>7</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>wagon-ssh-common-1.0-beta-2.jar</td><td>24.61 kB</td><td>37</td><td>18</td><td>3</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>wagon-ssh-external-1.0-beta-2.jar</td><td>12.27 kB</td><td>19</td><td>1</td><td>1</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>plexus-archiver-1.0.jar</td><td>173.01 kB</td><td>132</td><td>107</td><td>12</td><td>1.4</td><td>debug</td></tr><tr class="b"><td>plexus-container-default-1.0-alpha-9-stable-1.jar</td><td>189.63 kB</td><td>215</td><td>175</td><td>28</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>plexus-interactivity-api-1.0-alpha-4.jar</td><td>13.09 kB</td><td>25</td><td>11</td><td>1</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>plexus-interpolation-1.13.jar</td><td>59.63 kB</td><td>60</td><td>44</td><td>6</td><td>1.4</td><td>debug</td></tr><tr class="a"><td>plexus-io-1.0.jar</td><td>49.61 kB</td><td>61</td><td>42</td><td>5</td><td>1.4</td><td>debug</td></tr><tr class="b"><td>plexus-utils-2.1.jar</td><td>219.24 kB</td><td>123</td><td>98</td><td>9</td><td>1.4</td><td>debug</td></tr><tr class="a"><td>easymock-2.4.jar</td><td>79.23 kB</td><td>83</td><td>71</td><td>3</td><td>1.5</td><td>debug</td></tr><tr class="b"><td>mockito-all-1.7.jar</td><td>943.04 kB</td><td>846</td><td>469</td><td>48</td><td>1.5</td><td>debug</td></tr><tr class="a"><td>org.osgi.core-4.1.0.jar</td><td>159.63 kB</td><td>132</td><td>49</td><td>6</td><td>1.2</td><td>debug</td></tr><tr class="b"><td>xml-apis-1.0.b2.jar</td><td>106.76 kB</td><td>217</td><td>184</td><td>17</td><td>1.2</td><td>release</td></tr><tr class="a"><th>Total</th><th>Size</th><th>Entries</th><th>Classes</th><th>Packages</th><th>JDK Rev</th><th>Debug</th></tr><tr class="b"><td>43</td><td>4.33 MB</td><td>4,027</td><td>2,411</td><td>312</td><td>1.5</td><td>40</td></tr><tr class="a"><td>compile: 30</td><td>compile: 2.76 MB</td><td>compile: 2,372</td><td>compile: 1,340</td><td>compile: 216</td><td>-</td><td>compile: 30</td></tr><tr class="b"><td>test: 4</td><td>test: 1.13 MB</td><td>test: 1,076</td><td>test: 643</td><td>test: 64</td><td>-</td><td>test: 4</td></tr><tr class="a"><td>runtime: 9</td><td>runtime: 451.54 kB</td><td>runtime: 579</td><td>runtime: 428</td><td>runtime: 32</td><td>-</td><td>runtime: 6</td></tr></table></div><a name="Dependency_Repository_Locations"></a><div class="section"><h2>Dependency Repository Locations<a name="Dependency_Repository_Locations"></a></h2><table border="0" class="bodyTable"><tr class="a"><th>Repo ID</th><th>URL</th><th>Release</th><th>Snapshot</th><th>Blacklisted</th></tr><tr class="b"><td>apache.snapshots</td><td><a class="externalLink" href="http://repository.apache.org/snapshots">http://repository.apache.org/snapshots</a></td><td>-</td><td>Yes</td><td>-</td></tr><tr class="a"><td>snapshots</td><td><a class="externalLink" href="http://snapshots.maven.codehaus.org/maven2">http://snapshots.maven.codehaus.org/maven2</a></td><td>-</td><td>Yes</td><td>Yes</td></tr><tr class="b"><td>central</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2">http://repo1.maven.apache.org/maven2</a></td><td>Yes</td><td>-</td><td>-</td></tr></table><p>Repository locations for each of the Dependencies.</p><table border="0" class="bodyTable"><tr class="a"><th>Artifact</th><th>apache.snapshots</th><th>central</th></tr><tr class="b"><td>biz.aQute:bndlib:jar:1.50.0</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/biz/aQute/bndlib/1.50.0/bndlib-1.50.0.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>classworlds:classworlds:jar:1.1</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/classworlds/classworlds/1.1/classworlds-1.1.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>com.jcraft:jsch:jar:0.1.27</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/com/jcraft/jsch/0.1.27/jsch-0.1.27.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>commons-cli:commons-cli:jar:1.0</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/commons-cli/commons-cli/1.0/commons-cli-1.0.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>jtidy:jtidy:jar:4aug2000r7-dev</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/jtidy/jtidy/4aug2000r7-dev/jtidy-4aug2000r7-dev.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>junit:junit:jar:4.0</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/junit/junit/4.0/junit-4.0.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>org.apache.felix:org.apache.felix.bundlerepository:jar:1.6.6</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/felix/org.apache.felix.bundlerepository/1.6.6/org.apache.felix.bundlerepository-1.6.6.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>org.apache.maven:maven-archiver:jar:2.4.1</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/maven-archiver/2.4.1/maven-archiver-2.4.1.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>org.apache.maven:maven-artifact:jar:2.0.7</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/maven-artifact/2.0.7/maven-artifact-2.0.7.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>org.apache.maven:maven-artifact-manager:jar:2.0.7</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/maven-artifact-manager/2.0.7/maven-artifact-manager-2.0.7.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>org.apache.maven:maven-core:jar:2.0.7</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/maven-core/2.0.7/maven-core-2.0.7.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>org.apache.maven:maven-error-diagnostics:jar:2.0.7</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/maven-error-diagnostics/2.0.7/maven-error-diagnostics-2.0.7.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>org.apache.maven:maven-model:jar:2.0.7</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/maven-model/2.0.7/maven-model-2.0.7.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>org.apache.maven:maven-monitor:jar:2.0.7</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/maven-monitor/2.0.7/maven-monitor-2.0.7.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>org.apache.maven:maven-plugin-api:jar:2.0.7</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/maven-plugin-api/2.0.7/maven-plugin-api-2.0.7.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>org.apache.maven:maven-plugin-descriptor:jar:2.0.7</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/maven-plugin-descriptor/2.0.7/maven-plugin-descriptor-2.0.7.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>org.apache.maven:maven-plugin-parameter-documenter:jar:2.0.7</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/maven-plugin-parameter-documenter/2.0.7/maven-plugin-parameter-documenter-2.0.7.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>org.apache.maven:maven-plugin-registry:jar:2.0.7</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/maven-plugin-registry/2.0.7/maven-plugin-registry-2.0.7.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>org.apache.maven:maven-profile:jar:2.0.7</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/maven-profile/2.0.7/maven-profile-2.0.7.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>org.apache.maven:maven-project:jar:2.0.7</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/maven-project/2.0.7/maven-project-2.0.7.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>org.apache.maven:maven-repository-metadata:jar:2.0.7</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/maven-repository-metadata/2.0.7/maven-repository-metadata-2.0.7.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>org.apache.maven:maven-settings:jar:2.0.7</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/maven-settings/2.0.7/maven-settings-2.0.7.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>org.apache.maven.doxia:doxia-sink-api:jar:1.0-alpha-7</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>org.apache.maven.reporting:maven-reporting-api:jar:2.0.7</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/reporting/maven-reporting-api/2.0.7/maven-reporting-api-2.0.7.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>org.apache.maven.shared:maven-dependency-tree:jar:1.2</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>org.apache.maven.shared:maven-plugin-testing-harness:jar:1.1</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>org.apache.maven.wagon:wagon-file:jar:1.0-beta-2</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/wagon/wagon-file/1.0-beta-2/wagon-file-1.0-beta-2.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>org.apache.maven.wagon:wagon-http-lightweight:jar:1.0-beta-2</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/wagon/wagon-http-lightweight/1.0-beta-2/wagon-http-lightweight-1.0-beta-2.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>org.apache.maven.wagon:wagon-http-shared:jar:1.0-beta-2</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/wagon/wagon-http-shared/1.0-beta-2/wagon-http-shared-1.0-beta-2.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>org.apache.maven.wagon:wagon-ssh:jar:1.0-beta-2</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/1.0-beta-2/wagon-ssh-1.0-beta-2.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>org.apache.maven.wagon:wagon-ssh-common:jar:1.0-beta-2</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh-common/1.0-beta-2/wagon-ssh-common-1.0-beta-2.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>org.apache.maven.wagon:wagon-ssh-external:jar:1.0-beta-2</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh-external/1.0-beta-2/wagon-ssh-external-1.0-beta-2.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>org.codehaus.plexus:plexus-archiver:jar:1.0</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/codehaus/plexus/plexus-archiver/1.0/plexus-archiver-1.0.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>org.codehaus.plexus:plexus-interpolation:jar:1.13</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>org.codehaus.plexus:plexus-io:jar:1.0</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/codehaus/plexus/plexus-io/1.0/plexus-io-1.0.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>org.codehaus.plexus:plexus-utils:jar:2.1</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>org.easymock:easymock:jar:2.4</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/easymock/easymock/2.4/easymock-2.4.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>org.mockito:mockito-all:jar:1.7</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/mockito/mockito-all/1.7/mockito-all-1.7.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><td>org.osgi:org.osgi.core:jar:4.1.0</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/org/osgi/org.osgi.core/4.1.0/org.osgi.core-4.1.0.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="b"><td>xml-apis:xml-apis:jar:1.0.b2</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.apache.org/maven2/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar"><img alt="Found at http://repo1.maven.apache.org/maven2" src="images/icon_success_sml.gif" /></a></td></tr><tr class="a"><th>Total</th><th>apache.snapshots</th><th>central</th></tr><tr class="b"><td>43 (compile: 30, test: 4, runtime: 9)</td><td>0</td><td>43</td></tr></table></div>
+    how to fix it.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-error-diagnostics">http://maven.apache.org/maven-error-diagnostics</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_280312999" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_12857215', '_280312999' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_12857215" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li></ul></li><li>org.apache.maven:maven-project:jar:2.0.7 (compile) <img id="_547758798" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2027560698', '_547758798' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2027560698" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Project Builder</th></tr><tr class="b"><td><p><b>Description: </b>This library is used to not only read Maven project object model files, but to assemble inheritence
+    and to retrieve remote models as required.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-project">http://maven.apache.org/maven-project</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven:maven-settings:jar:2.0.7 (compile) <img id="_788307588" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_922933610', '_788307588' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_922933610" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Local Settings Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-settings">http://maven.apache.org/maven-settings</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven:maven-profile:jar:2.0.7 (compile) <img id="_636979154" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1680914308', '_636979154' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1680914308" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Profile Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-profile">http://maven.apache.org/maven-profile</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven:maven-model:jar:2.0.7 (compile) <img id="_111383492" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2086624771', '_111383492' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2086624771" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven Model</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-model">http://maven.apache.org/maven-model</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven:maven-artifact-manager:jar:2.0.7 (compile) <img id="_106830425" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1474420893', '_106830425' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1474420893" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Artifact Manager</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-artifact-manager">http://maven.apache.org/maven-artifact-manager</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven:maven-plugin-registry:jar:2.0.7 (compile) <img id="_1040994606" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_571778001', '_1040994606' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_571778001" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Plugin Registry Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-plugin-registry">http://maven.apache.org/maven-plugin-registry</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_2010589502" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_855959801', '_2010589502' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_855959801" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li></ul></li><li>org.apache.maven:maven-artifact:jar:2.0.7 (compile) <img id="_1994257972" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_215061597', '_1994257972' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_215061597" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Artifact</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-artifact">http://maven.apache.org/maven-artifact</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_2112712797" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2025902409', '_2112712797' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2025902409" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li></ul></li><li>commons-cli:commons-cli:jar:1.0 (compile) <img id="_129665817" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_287216192', '_129665817' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_287216192" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>CLI</th></tr><tr class="b"><td><p><b>Description: </b>Commons CLI provides a simple API for working with the command line arguments and options.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li><li>org.apache.maven:maven-plugin-api:jar:2.0.7 (compile) <img id="_1309747463" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1717459715', '_1309747463' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1717459715" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Plugin API</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-plugin-api">http://maven.apache.org/maven-plugin-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven.wagon:wagon-ssh-external:jar:1.0-beta-2 (runtime) <img id="_511012210" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_144765269', '_511012210' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_144765269" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon SSH External Provider</th></tr><tr class="b"><td><p><b>Description: </b>Wagon that gets and puts artifacts using SSH protocol with a preinstalled SSH client</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-ssh-external">http://maven.apache.org/wagon/wagon-providers/wagon-ssh-external</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven.wagon:wagon-ssh-common:jar:1.0-beta-2 (runtime) <img id="_1038786791" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_567712461', '_1038786791' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_567712461" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon SSH Common Library</th></tr><tr class="b"><td><p><b>Description: </b>Tools to manage artifacts and deployment</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-ssh-common">http://maven.apache.org/wagon/wagon-providers/wagon-ssh-common</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4 (runtime) <img id="_406929046" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_558736528', '_406929046' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_558736528" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Plexus Default Interactivity Handler</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li><li>org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2 (runtime) <img id="_534935740" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1005487344', '_534935740' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1005487344" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon API</th></tr><tr class="b"><td><p><b>Description: </b>Maven Wagon API that defines the contract between different Wagon implementations</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-provider-api">http://maven.apache.org/wagon/wagon-provider-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li><li>org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2 (runtime) <img id="_437989524" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1188674071', '_437989524' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1188674071" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon API</th></tr><tr class="b"><td><p><b>Description: </b>Maven Wagon API that defines the contract between different Wagon implementations</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-provider-api">http://maven.apache.org/wagon/wagon-provider-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li><li>org.apache.maven:maven-plugin-descriptor:jar:2.0.7 (compile) <img id="_1866475396" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1189911030', '_1866475396' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1189911030" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Plugin Descriptor Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-plugin-descriptor">http://maven.apache.org/maven-plugin-descriptor</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven:maven-plugin-api:jar:2.0.7 (compile) <img id="_686055756" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_383736426', '_686055756' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_383736426" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Plugin API</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-plugin-api">http://maven.apache.org/maven-plugin-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven:maven-artifact:jar:2.0.7 (compile) <img id="_100314459" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1606420123', '_100314459' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1606420123" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Artifact</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-artifact">http://maven.apache.org/maven-artifact</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_1137691367" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1750993047', '_1137691367' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1750993047" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li></ul></li><li>org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4 (compile) <img id="_176763988" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1515360673', '_176763988' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1515360673" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Plexus Default Interactivity Handler</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li><li>org.apache.maven:maven-artifact-manager:jar:2.0.7 (compile) <img id="_1408596894" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1480603461', '_1408596894' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1480603461" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Artifact Manager</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-artifact-manager">http://maven.apache.org/maven-artifact-manager</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.apache.maven:maven-repository-metadata:jar:2.0.7 (compile) <img id="_546753716" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_779483732', '_546753716' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_779483732" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Repository Metadata Model</th></tr><tr class="b"><td><p><b>Description: </b>Maven Plugin Mapping</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-repository-metadata">http://maven.apache.org/maven-repository-metadata</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven:maven-artifact:jar:2.0.7 (compile) <img id="_515667552" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_478822775', '_515667552' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_478822775" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Artifact</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-artifact">http://maven.apache.org/maven-artifact</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_1518286694" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1398421450', '_1518286694' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1398421450" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li><li>org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2 (compile) <img id="_767356445" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1688915920', '_767356445' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1688915920" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon API</th></tr><tr class="b"><td><p><b>Description: </b>Maven Wagon API that defines the contract between different Wagon implementations</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-provider-api">http://maven.apache.org/wagon/wagon-provider-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li><li>org.apache.maven:maven-monitor:jar:2.0.7 (compile) <img id="_1302256484" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_26275337', '_1302256484' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_26275337" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Monitor</th></tr><tr class="b"><td><p><b>Description: </b>Maven is a project development management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution publication are all controlled from the declarative file. Maven can be extended by plugins to utilise a number of other development tools for reporting or the build process.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/maven-monitor">http://maven.apache.org/maven-monitor</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven.wagon:wagon-ssh:jar:1.0-beta-2 (runtime) <img id="_2143717685" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_262811505', '_2143717685' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_262811505" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon SSH Provider</th></tr><tr class="b"><td><p><b>Description: </b>Tools to manage artifacts and deployment</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-ssh">http://maven.apache.org/wagon/wagon-providers/wagon-ssh</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>com.jcraft:jsch:jar:0.1.27 (runtime) <img id="_800460267" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_824416429', '_800460267' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_824416429" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>JSch</th></tr><tr class="b"><td><p><b>Description: </b>JSch is a pure Java implementation of SSH2</p><p><b>URL: </b><a class="externalLink" href="http://www.jcraft.com/jsch/">http://www.jcraft.com/jsch/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.jcraft.com/jsch/LICENSE.txt">BSD</a></p></td></tr></table></div></li><li>org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4 (runtime) <img id="_1473309558" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1743055212', '_1473309558' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1743055212" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Plexus Default Interactivity Handler</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li><li>org.apache.maven.wagon:wagon-ssh-common:jar:1.0-beta-2 (runtime) <img id="_792179736" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1070293779', '_792179736' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1070293779" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon SSH Common Library</th></tr><tr class="b"><td><p><b>Description: </b>Tools to manage artifacts and deployment</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-providers/wagon-ssh-common">http://maven.apache.org/wagon/wagon-providers/wagon-ssh-common</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2 (runtime) <img id="_463542555" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1461965533', '_463542555' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1461965533" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Wagon API</th></tr><tr class="b"><td><p><b>Description: </b>Maven Wagon API that defines the contract between different Wagon implementations</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/wagon/wagon-provider-api">http://maven.apache.org/wagon/wagon-provider-api</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li><li>classworlds:classworlds:jar:1.1 (compile) <img id="_1174506872" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2090988565', '_1174506872' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2090988565" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>classworlds</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>URL: </b><a class="externalLink" href="http://classworlds.codehaus.org/">http://classworlds.codehaus.org/</a></p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li></ul></li><li>org.apache.maven:maven-archiver:jar:2.5 (compile) <img id="_605294658" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_813229160', '_605294658' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_813229160" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Archiver</th></tr><tr class="b"><td><p><b>Description: </b>Provides utility methods for creating JARs and other archive files from a Maven project.</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/shared/maven-archiver/">http://maven.apache.org/shared/maven-archiver/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.codehaus.plexus:plexus-archiver:jar:2.1 (compile) <img id="_917225200" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_365528086', '_917225200' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_365528086" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Plexus Archiver Component</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>URL: </b><a class="externalLink" href="http://forge.sonatype.com/spice-parent/plexus-archiver/">http://forge.sonatype.com/spice-parent/plexus-archiver/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></p></td></tr></table></div><ul><li>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1 (compile) <img id="_1054512350" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1381700762', '_1054512350' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1381700762" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Default Plexus Container</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li><li>org.codehaus.plexus:plexus-io:jar:2.0.2 (compile) <img id="_1189039070" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1771473860', '_1189039070' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1771473860" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Plexus IO Components</th></tr><tr class="b"><td><p><b>Description: </b>The Plexus project provides a full software stack for creating and executing software projects.</p><p><b>URL: </b><a class="externalLink" href="http://plexus.codehaus.org/plexus-components/plexus-io">http://plexus.codehaus.org/plexus-components/plexus-io</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li><li>org.codehaus.plexus:plexus-interpolation:jar:1.15 (compile) <img id="_1852268376" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1433456792', '_1852268376' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1433456792" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Plexus Interpolation API</th></tr><tr class="b"><td><p><b>Description: </b>The Plexus project provides a full software stack for creating and executing software projects.</p><p><b>URL: </b><a class="externalLink" href="http://plexus.codehaus.org/plexus-interpolation/">http://plexus.codehaus.org/plexus-interpolation/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li><li>org.apache.maven.shared:maven-dependency-tree:jar:2.1 (compile) <img id="_1094491898" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1527098318', '_1094491898' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1527098318" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Dependency Tree</th></tr><tr class="b"><td><p><b>Description: </b>A tree-based API for resolution of Maven project dependencies</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/shared/maven-dependency-tree/">http://maven.apache.org/shared/maven-dependency-tree/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div><ul><li>org.codehaus.plexus:plexus-component-annotations:jar:1.5.5 (compile) <img id="_403584273" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_749195466', '_403584273' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_749195466" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Plexus :: Component Annotations</th></tr><tr class="b"><td><p><b>Description: </b>Plexus Component &quot;Java 5&quot; Annotations, to describe plexus components properties in java sources with
+    standard annotations instead of javadoc annotations.</p><p><b>URL: </b><a class="externalLink" href="http://plexus.codehaus.org/plexus-containers/plexus-component-annotations/">http://plexus.codehaus.org/plexus-containers/plexus-component-annotations/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.eclipse.aether:aether-util:jar:0.9.0.M2 (compile) <img id="_92082153" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1778626355', '_92082153' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1778626355" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Aether Utilities</th></tr><tr class="b"><td><p><b>Description: </b>A collection of utility classes to ease usage of the repository system.</p><p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/aether/aether-util/">http://www.eclipse.org/aether/aether-util/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License, Version 1.0</a></p></td></tr></table></div></li></ul></li><li>org.codehaus.plexus:plexus-utils:jar:3.0.10 (compile) <img id="_2088751962" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_693282372', '_2088751962' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_693282372" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Plexus Common Utilities</th></tr><tr class="b"><td><p><b>Description: </b>A collection of various utility classes to ease working with strings, files, command lines, XML and
+    more.</p><p><b>URL: </b><a class="externalLink" href="http://plexus.codehaus.org/plexus-utils">http://plexus.codehaus.org/plexus-utils</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>org.apache.maven.shared:maven-plugin-testing-harness:jar:1.1 (test) <img id="_592109468" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_177848473', '_592109468' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_177848473" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Maven Plugin Testing Mechanism</th></tr><tr class="b"><td><p><b>Description: </b>Maven shared components</p><p><b>URL: </b><a class="externalLink" href="http://maven.apache.org/shared/maven-plugin-testing-harness/">http://maven.apache.org/shared/maven-plugin-testing-harness/</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li><li>junit:junit:jar:4.0 (test) <img id="_1762745603" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1905810110', '_1762745603' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1905810110" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>junit</th></tr><tr class="b"><td><p><b>Description: </b>There is currently no description associated with this project.</p><p><b>URL: </b><a class="externalLink" href="http://junit.org">http://junit.org</a></p><p><b>Project License: </b>No project license is defined for this project.</p></td></tr></table></div></li><li>org.easymock:easymock:jar:2.4 (test) <img id="_1359855971" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1826351610', '_1359855971' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1826351610" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>EasyMock</th></tr><tr class="b"><td><p><b>Description: </b>EasyMock provides an easy way to create Mock Objects for interfaces by generating them on the fly using Java's proxy mechanism</p><p><b>URL: </b><a class="externalLink" href="http://www.easymock.org">http://www.easymock.org</a></p><p><b>Project License: </b><a class="externalLink" href="http://www.easymock.org/License.html">MIT License</a></p></td></tr></table></div></li><li>org.mockito:mockito-all:jar:1.7 (test) <img id="_229181996" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_778292674', '_229181996' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_778292674" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>Mockito</th></tr><tr class="b"><td><p><b>Description: </b>Mock objects library for java</p><p><b>URL: </b><a class="externalLink" href="http://www.mockito.org">http://www.mockito.org</a></p><p><b>Project License: </b><a class="externalLink" href="http://code.google.com/p/mockito/wiki/License">The MIT License</a></p></td></tr></table></div></li></ul></li></ul></div></div><a name="Licenses"></a><div class="section"><h2>Licenses<a name="Licenses"></a></h2><p><b>Apache Software License 2.0: </b>A Swiss Army Knife for OSGi</p><p><b>Java HTML Tidy License: </b>JTidy</p><p><b>Unknown: </b>CLI, Default Plexus Container, Doxia Sink API, Plexus Default Interactivity Handler, classworlds, junit, org.osgi.core</p><p><b>BSD: </b>JSch</p><p><b>Apache License, Version 2.0: </b>Plexus Archiver Component</p><p><b>Eclipse Public License, Version 1.0: </b>Aether Utilities</p><p><b>MIT License: </b>EasyMock</p><p><b>The Apache Software License, Version 2.0: </b>Apache Felix Bundle Repository, Maven Archiver, Maven Artifact, Maven Artifact Manager, Maven Bundle Plugin, Maven Core, Maven Dependency Tree, Maven Error Diagnostics, Maven Local Settings Model, Maven Model, Maven Monitor, Maven Plugin API, Maven Plugin Descriptor Model, Maven Plugin Parameter Documenter API, Maven Plugin Registry Model, Maven Plugin Testing Mechanism, Maven Profile Model, Maven Project Builder, Maven Reporting API, Maven Repository Metadata Model, Maven Wagon API, Maven Wagon File Provider, Maven Wagon HTTP Shared Library, Maven Wagon Lightweight HTTP Provider, Maven Wagon SSH Common Library, Maven Wagon SSH External Provider, Maven Wagon SSH Provider, Plexus :: Component Annotations, Plexus Common Utilities, Plexus IO Components, Plexus Interpolation API, XML Commons External Components XML APIs</p><p><b>The MIT License: </b>Mockito</p></div><a name="Dependency_File_Details"></a><div class="section"><h2>Dependency File Details<a name="Dependency_File_Details"></a></h2><table border="0" class="bodyTable"><tr class="a"><th>Filename</th><th>Size</th><th>Entries</th><th>Classes</th><th>Packages</th><th>JDK Rev</th><th>Debug</th></tr><tr class="b"><td>bndlib-2.1.0.jar</td><td>1.32 MB</td><td>1,111</td><td>462</td><td>79</td><td>1.5</td><td>debug</td></tr><tr class="a"><td>classworlds-1.1.jar</td><td>36.97 kB</td><td>33</td><td>23</td><td>3</td><td>1.3</td><td>debug</td></tr><tr class="b"><td>jsch-0.1.27.jar</td><td>119.15 kB</td><td>97</td><td>94</td><td>3</td><td>1.2</td><td>release</td></tr><tr class="a"><td>commons-cli-1.0.jar</td><td>29.41 kB</td><td>27</td><td>20</td><td>1</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>jtidy-4aug2000r7-dev.jar</td><td>134.60 kB</td><td>129</td><td>119</td><td>3</td><td>1.1</td><td>release</td></tr><tr class="a"><td>junit-4.0.jar</td><td>103.13 kB</td><td>119</td><td>92</td><td>11</td><td>1.5</td><td>debug</td></tr><tr class="b"><td>org.apache.felix.bundlerepository-1.6.6.jar</td><td>164.33 kB</td><td>112</td><td>84</td><td>11</td><td>1.4</td><td>debug</td></tr><tr class="a"><td>maven-archiver-2.5.jar</td><td>21.30 kB</td><td>19</td><td>5</td><td>1</td><td>1.5</td><td>debug</td></tr><tr class="b"><td>maven-artifact-2.0.7.jar</td><td>85.80 kB</td><td>106</td><td>77</td><td>15</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>maven-artifact-manager-2.0.7.jar</td><td>55.18 kB</td><td>46</td><td>24</td><td>7</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>maven-core-2.0.7.jar</td><td>149.30 kB</td><td>108</td><td>67</td><td>13</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>maven-error-diagnostics-2.0.7.jar</td><td>13.29 kB</td><td>22</td><td>6</td><td>1</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>maven-model-2.0.7.jar</td><td>84.41 kB</td><td>60</td><td>45</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>maven-monitor-2.0.7.jar</td><td>10.00 kB</td><td>19</td><td>5</td><td>1</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>maven-plugin-api-2.0.7.jar</td><td>12.56 kB</td><td>23</td><td>9</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>maven-plugin-descriptor-2.0.7.jar</td><td>36.01 kB</td><td>32</td><td>15</td><td>3</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>maven-plugin-parameter-documenter-2.0.7.jar</td><td>20.27 kB</td><td>20</td><td>4</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>maven-plugin-registry-2.0.7.jar</td><td>28.25 kB</td><td>28</td><td>10</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>maven-profile-2.0.7.jar</td><td>34.42 kB</td><td>33</td><td>16</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>maven-project-2.0.7.jar</td><td>113.81 kB</td><td>76</td><td>51</td><td>10</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>maven-repository-metadata-2.0.7.jar</td><td>23.90 kB</td><td>23</td><td>6</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>maven-settings-2.0.7.jar</td><td>47.96 kB</td><td>38</td><td>21</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>doxia-sink-api-1.0-alpha-7.jar</td><td>5.80 kB</td><td>19</td><td>3</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>maven-reporting-api-2.0.7.jar</td><td>9.71 kB</td><td>18</td><td>4</td><td>1</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>maven-dependency-tree-2.1.jar</td><td>58.55 kB</td><td>63</td><td>39</td><td>7</td><td>1.5</td><td>debug</td></tr><tr class="a"><td>maven-plugin-testing-harness-1.1.jar</td><td>31.73 kB</td><td>28</td><td>11</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>wagon-file-1.0-beta-2.jar</td><td>9.71 kB</td><td>18</td><td>1</td><td>1</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>wagon-http-lightweight-1.0-beta-2.jar</td><td>12.03 kB</td><td>19</td><td>2</td><td>1</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>wagon-http-shared-1.0-beta-2.jar</td><td>9.34 kB</td><td>17</td><td>2</td><td>1</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>wagon-provider-api-1.0-beta-2.jar</td><td>45.24 kB</td><td>57</td><td>37</td><td>8</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>wagon-ssh-1.0-beta-2.jar</td><td>23.05 kB</td><td>26</td><td>7</td><td>2</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>wagon-ssh-common-1.0-beta-2.jar</td><td>24.61 kB</td><td>37</td><td>18</td><td>3</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>wagon-ssh-external-1.0-beta-2.jar</td><td>12.27 kB</td><td>19</td><td>1</td><td>1</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>plexus-archiver-2.1.jar</td><td>180.12 kB</td><td>137</td><td>112</td><td>12</td><td>1.5</td><td>debug</td></tr><tr class="b"><td>plexus-component-annotations-1.5.5.jar</td><td>4.11 kB</td><td>15</td><td>3</td><td>1</td><td>1.5</td><td>release</td></tr><tr class="a"><td>plexus-container-default-1.0-alpha-9-stable-1.jar</td><td>189.63 kB</td><td>215</td><td>175</td><td>28</td><td>1.1</td><td>debug</td></tr><tr class="b"><td>plexus-interactivity-api-1.0-alpha-4.jar</td><td>13.09 kB</td><td>25</td><td>11</td><td>1</td><td>1.1</td><td>debug</td></tr><tr class="a"><td>plexus-interpolation-1.15.jar</td><td>59.06 kB</td><td>60</td><td>44</td><td>6</td><td>1.5</td><td>debug</td></tr><tr class="b"><td>plexus-io-2.0.2.jar</td><td>56.90 kB</td><td>62</td><td>43</td><td>5</td><td>1.5</td><td>debug</td></tr><tr class="a"><td>plexus-utils-3.0.10.jar</td><td>225.47 kB</td><td>127</td><td>102</td><td>9</td><td>1.5</td><td>debug</td></tr><tr class="b"><td>easymock-2.4.jar</td><td>79.23 kB</td><td>83</td><td>71</td><td>3</td><td>1.5</td><td>debug</td></tr><tr class="a"><td>aether-util-0.9.0.M2.jar</td><td>130.46 kB</td><td>118</td><td>93</td><td>13</td><td>1.5</td><td>debug</td></tr><tr class="b"><td>mockito-all-1.7.jar</td><td>943.04 kB</td><td>846</td><td>469</td><td>48</td><td>1.5</td><td>debug</td></tr><tr class="a"><td>org.osgi.core-4.2.0.jar</td><td>241.14 kB</td><td>180</td><td>68</td><td>8</td><td>1.2</td><td>debug</td></tr><tr class="b"><td>xml-apis-1.0.b2.jar</td><td>106.76 kB</td><td>217</td><td>184</td><td>17</td><td>1.2</td><td>release</td></tr><tr class="a"><th>Total</th><th>Size</th><th>Entries</th><th>Classes</th><th>Packages</th><th>JDK Rev</th><th>Debug</th></tr><tr class="b"><td>45</td><td>5.03 MB</td><td>4,687</td><td>2,755</td><td>356</td><td>1.5</td><td>41</td></tr><tr class="a"><td>compile: 32</td><td>compile: 3.46 MB</td><td>compile: 3,032</td><td>compile: 1,684</td><td>compile: 260</td><td>-</td><td>compile: 31</td></tr><tr class="b"><td>test: 4</td><td>test: 1.13 MB</td><td>test: 1,076</td><td>test: 643</td><td>test: 64</td><td>-</td><td>test: 4</td></tr><tr class="a"><td>runtime: 9</td><td>runtime: 451.54 kB</td><td>runtime: 579</td><td>runtime: 428</td><td>runtime: 32</td><td>-</td><td>runtime: 6</td></tr></table></div><a name="Dependency_Repository_Locations"></a><div class="section"><h2>Dependency Repository Locations<a name="Dependency_Repository_Locations"></a></h2><table border="0" class="bodyTable"><tr class="a"><th>Repo ID</th><th>URL</th><th>Release</th><th>Snapshot</th><th>Blacklisted</th></tr><tr class="b"><td>nexus</td><td><a class="externalLink" href="https://repository.sonatype.org/content/groups/sonatype-grid">https://repository.sonatype.org/content/groups/sonatype-grid</a></td><td>Yes</td><td>-</td><td>Yes</td></tr></table><p>Repository locations for each of the Dependencies.</p><table border="0" class="bodyTable"><tr class="a"><th>Artifact</th></tr><tr class="b"><td>biz.aQute.bnd:bndlib:jar:2.1.0</td></tr><tr class="a"><td>classworlds:classworlds:jar:1.1</td></tr><tr class="b"><td>com.jcraft:jsch:jar:0.1.27</td></tr><tr class="a"><td>commons-cli:commons-cli:jar:1.0</td></tr><tr class="b"><td>jtidy:jtidy:jar:4aug2000r7-dev</td></tr><tr class="a"><td>junit:junit:jar:4.0</td></tr><tr class="b"><td>org.apache.felix:org.apache.felix.bundlerepository:jar:1.6.6</td></tr><tr class="a"><td>org.apache.maven:maven-archiver:jar:2.5</td></tr><tr class="b"><td>org.apache.maven:maven-artifact:jar:2.0.7</td></tr><tr class="a"><td>org.apache.maven:maven-artifact-manager:jar:2.0.7</td></tr><tr class="b"><td>org.apache.maven:maven-core:jar:2.0.7</td></tr><tr class="a"><td>org.apache.maven:maven-error-diagnostics:jar:2.0.7</td></tr><tr class="b"><td>org.apache.maven:maven-model:jar:2.0.7</td></tr><tr class="a"><td>org.apache.maven:maven-monitor:jar:2.0.7</td></tr><tr class="b"><td>org.apache.maven:maven-plugin-api:jar:2.0.7</td></tr><tr class="a"><td>org.apache.maven:maven-plugin-descriptor:jar:2.0.7</td></tr><tr class="b"><td>org.apache.maven:maven-plugin-parameter-documenter:jar:2.0.7</td></tr><tr class="a"><td>org.apache.maven:maven-plugin-registry:jar:2.0.7</td></tr><tr class="b"><td>org.apache.maven:maven-profile:jar:2.0.7</td></tr><tr class="a"><td>org.apache.maven:maven-project:jar:2.0.7</td></tr><tr class="b"><td>org.apache.maven:maven-repository-metadata:jar:2.0.7</td></tr><tr class="a"><td>org.apache.maven:maven-settings:jar:2.0.7</td></tr><tr class="b"><td>org.apache.maven.doxia:doxia-sink-api:jar:1.0-alpha-7</td></tr><tr class="a"><td>org.apache.maven.reporting:maven-reporting-api:jar:2.0.7</td></tr><tr class="b"><td>org.apache.maven.shared:maven-dependency-tree:jar:2.1</td></tr><tr class="a"><td>org.apache.maven.shared:maven-plugin-testing-harness:jar:1.1</td></tr><tr class="b"><td>org.apache.maven.wagon:wagon-file:jar:1.0-beta-2</td></tr><tr class="a"><td>org.apache.maven.wagon:wagon-http-lightweight:jar:1.0-beta-2</td></tr><tr class="b"><td>org.apache.maven.wagon:wagon-http-shared:jar:1.0-beta-2</td></tr><tr class="a"><td>org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2</td></tr><tr class="b"><td>org.apache.maven.wagon:wagon-ssh:jar:1.0-beta-2</td></tr><tr class="a"><td>org.apache.maven.wagon:wagon-ssh-common:jar:1.0-beta-2</td></tr><tr class="b"><td>org.apache.maven.wagon:wagon-ssh-external:jar:1.0-beta-2</td></tr><tr class="a"><td>org.codehaus.plexus:plexus-archiver:jar:2.1</td></tr><tr class="b"><td>org.codehaus.plexus:plexus-component-annotations:jar:1.5.5</td></tr><tr class="a"><td>org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1</td></tr><tr class="b"><td>org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4</td></tr><tr class="a"><td>org.codehaus.plexus:plexus-interpolation:jar:1.15</td></tr><tr class="b"><td>org.codehaus.plexus:plexus-io:jar:2.0.2</td></tr><tr class="a"><td>org.codehaus.plexus:plexus-utils:jar:3.0.10</td></tr><tr class="b"><td>org.easymock:easymock:jar:2.4</td></tr><tr class="a"><td>org.eclipse.aether:aether-util:jar:0.9.0.M2</td></tr><tr class="b"><td>org.mockito:mockito-all:jar:1.7</td></tr><tr class="a"><td>org.osgi:org.osgi.core:jar:4.2.0</td></tr><tr class="b"><td>xml-apis:xml-apis:jar:1.0.b2</td></tr><tr class="a"><th>Total</th></tr><tr class="b"><td>45 (compile: 32, test: 4, runtime: 9)</td></tr></table></div>
       </div>
     </div>
     <div class="clear">
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/deploy-file-mojo.html b/bundleplugin/doc/site/deploy-file-mojo.html
index dddd3cc..73226b3 100644
--- a/bundleplugin/doc/site/deploy-file-mojo.html
+++ b/bundleplugin/doc/site/deploy-file-mojo.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -11,7 +11,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -28,7 +28,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -88,7 +88,7 @@
 goal)</div>
       <p><b>Attributes</b>:</p>
       <ul>
-        <li>Binds by default to the lifecycle phase: <tt>deploy</tt>.</li>
+        <li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <tt>deploy</tt>.</li>
       </ul>
       <div class="section"><h3>Required Parameters<a name="Required_Parameters"></a></h3>
         <table class="bodyTable" border="0">
@@ -102,14 +102,14 @@
             <td><b><a href="#repositoryId">repositoryId</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Remote repository id, used to lookup authentication settings.<br /><b>Default value is</b>: <tt>remote-repository</tt>.</td>
+            <td>Remote repository id, used to lookup authentication settings.<br /><b>Default value is</b>: <tt>remote-repository</tt>.<br /><b>User property is</b>: <tt>repositoryId</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#url">url</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
             <td>Remote OBR repository URL, where the bundle details are to be
-uploaded.<br /></td>
+uploaded.<br /><b>User property is</b>: <tt>url</tt>.</td>
           </tr>
         </table>
       </div>
@@ -125,69 +125,69 @@
             <td><b><a href="#artifactId">artifactId</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>ArtifactId of the bundle. Retrieved from POM file if specified.<br /></td>
+            <td>ArtifactId of the bundle. Retrieved from POM file if specified.<br /><b>User property is</b>: <tt>artifactId</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#bundleUrl">bundleUrl</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Optional public URL where the bundle has been deployed.<br /></td>
+            <td>Optional public URL where the bundle has been deployed.<br /><b>User property is</b>: <tt>bundleUrl</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#classifier">classifier</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Classifier type of the bundle. Defaults to none.<br /></td>
+            <td>Classifier type of the bundle. Defaults to none.<br /><b>User property is</b>: <tt>classifier</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#file">file</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
             <td>Bundle file, defaults to the artifact in the local Maven
-repository.<br /></td>
+repository.<br /><b>User property is</b>: <tt>file</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#groupId">groupId</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>GroupId of the bundle. Retrieved from POM file if specified.<br /></td>
+            <td>GroupId of the bundle. Retrieved from POM file if specified.<br /><b>User property is</b>: <tt>groupId</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#ignoreLock">ignoreLock</a></b></td>
             <td><tt>boolean</tt></td>
             <td><tt>-</tt></td>
-            <td>When true, ignore remote locking.<br /></td>
+            <td>When true, ignore remote locking.<br /><b>User property is</b>: <tt>ignoreLock</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#obrRepository">obrRepository</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Local OBR Repository.<br /></td>
+            <td>Local OBR Repository.<br /><b>User property is</b>: <tt>obrRepository</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#obrXml">obrXml</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
             <td>Optional XML file describing additional requirements and
-capabilities.<br /></td>
+capabilities.<br /><b>User property is</b>: <tt>obrXml</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#packaging">packaging</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Packaging type of the bundle. Retrieved from POM file if specified.<br /></td>
+            <td>Packaging type of the bundle. Retrieved from POM file if specified.<br /><b>User property is</b>: <tt>packaging</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#pomFile">pomFile</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>Location of an existing POM file.<br /></td>
+            <td>Location of an existing POM file.<br /><b>User property is</b>: <tt>pomFile</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#remoteOBR">remoteOBR</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Remote OBR Repository.<br /></td>
+            <td>Remote OBR Repository.<br /><b>User property is</b>: <tt>remoteOBR</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
@@ -199,7 +199,7 @@
             <td><b><a href="#version">version</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Version of the bundle. Retrieved from POM file if specified.<br /></td>
+            <td>Version of the bundle. Retrieved from POM file if specified.<br /><b>User property is</b>: <tt>version</tt>.</td>
           </tr>
         </table>
       </div>
@@ -209,75 +209,75 @@
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${artifactId}</tt></li>
+          <li><b>User Property</b>: <tt>artifactId</tt></li>
         </ul><hr /><p><b><a name="bundleUrl">bundleUrl</a>:</b></p>
         <div>Optional public URL where the bundle has been deployed.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${bundleUrl}</tt></li>
+          <li><b>User Property</b>: <tt>bundleUrl</tt></li>
         </ul><hr /><p><b><a name="classifier">classifier</a>:</b></p>
         <div>Classifier type of the bundle. Defaults to none.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${classifier}</tt></li>
+          <li><b>User Property</b>: <tt>classifier</tt></li>
         </ul><hr /><p><b><a name="file">file</a>:</b></p>
         <div>Bundle file, defaults to the artifact in the local Maven
 repository.</div>
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${file}</tt></li>
+          <li><b>User Property</b>: <tt>file</tt></li>
         </ul><hr /><p><b><a name="groupId">groupId</a>:</b></p>
         <div>GroupId of the bundle. Retrieved from POM file if specified.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${groupId}</tt></li>
+          <li><b>User Property</b>: <tt>groupId</tt></li>
         </ul><hr /><p><b><a name="ignoreLock">ignoreLock</a>:</b></p>
         <div>When true, ignore remote locking.</div>
         <ul>
           <li><b>Type</b>: <tt>boolean</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${ignoreLock}</tt></li>
+          <li><b>User Property</b>: <tt>ignoreLock</tt></li>
         </ul><hr /><p><b><a name="obrRepository">obrRepository</a>:</b></p>
         <div>Local OBR Repository.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${obrRepository}</tt></li>
+          <li><b>User Property</b>: <tt>obrRepository</tt></li>
         </ul><hr /><p><b><a name="obrXml">obrXml</a>:</b></p>
         <div>Optional XML file describing additional requirements and
 capabilities.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${obrXml}</tt></li>
+          <li><b>User Property</b>: <tt>obrXml</tt></li>
         </ul><hr /><p><b><a name="packaging">packaging</a>:</b></p>
         <div>Packaging type of the bundle. Retrieved from POM file if specified.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${packaging}</tt></li>
+          <li><b>User Property</b>: <tt>packaging</tt></li>
         </ul><hr /><p><b><a name="pomFile">pomFile</a>:</b></p>
         <div>Location of an existing POM file.</div>
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${pomFile}</tt></li>
+          <li><b>User Property</b>: <tt>pomFile</tt></li>
         </ul><hr /><p><b><a name="remoteOBR">remoteOBR</a>:</b></p>
         <div>Remote OBR Repository.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${remoteOBR}</tt></li>
+          <li><b>User Property</b>: <tt>remoteOBR</tt></li>
         </ul><hr /><p><b><a name="repositoryId">repositoryId</a>:</b></p>
         <div>Remote repository id, used to lookup authentication settings.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>Yes</tt></li>
-          <li><b>Expression</b>: <tt>${repositoryId}</tt></li>
+          <li><b>User Property</b>: <tt>repositoryId</tt></li>
           <li><b>Default</b>: <tt>remote-repository</tt></li>
         </ul><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
         <div>Project types which this plugin supports.</div>
@@ -290,13 +290,13 @@
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>Yes</tt></li>
-          <li><b>Expression</b>: <tt>${url}</tt></li>
+          <li><b>User Property</b>: <tt>url</tt></li>
         </ul><hr /><p><b><a name="version">version</a>:</b></p>
         <div>Version of the bundle. Retrieved from POM file if specified.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${version}</tt></li>
+          <li><b>User Property</b>: <tt>version</tt></li>
         </ul>
       </div>
     </div>
@@ -308,7 +308,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/deploy-mojo.html b/bundleplugin/doc/site/deploy-mojo.html
index e8cf453..a467658 100644
--- a/bundleplugin/doc/site/deploy-mojo.html
+++ b/bundleplugin/doc/site/deploy-mojo.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -11,7 +11,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -28,7 +28,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -89,7 +89,7 @@
       <ul>
         <li>Requires a Maven project to be executed.</li>
         <li>The goal is thread-safe and supports parallel builds.</li>
-        <li>Binds by default to the lifecycle phase: <tt>deploy</tt>.</li>
+        <li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <tt>deploy</tt>.</li>
       </ul>
       <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
         <table class="bodyTable" border="0">
@@ -103,43 +103,43 @@
             <td><b><a href="#altDeploymentRepository">altDeploymentRepository</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Alternative deployment repository. Format: id::layout::url<br /></td>
+            <td>Alternative deployment repository. Format: id::layout::url<br /><b>User property is</b>: <tt>altDeploymentRepository</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#bundleUrl">bundleUrl</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Optional public URL where the bundle has been deployed.<br /></td>
+            <td>Optional public URL where the bundle has been deployed.<br /><b>User property is</b>: <tt>bundleUrl</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#ignoreLock">ignoreLock</a></b></td>
             <td><tt>boolean</tt></td>
             <td><tt>-</tt></td>
-            <td>When true, ignore remote locking.<br /></td>
+            <td>When true, ignore remote locking.<br /><b>User property is</b>: <tt>ignoreLock</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#obrDeploymentRepository">obrDeploymentRepository</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>OBR specific deployment repository. Format: id::layout::url<br /></td>
+            <td>OBR specific deployment repository. Format: id::layout::url<br /><b>User property is</b>: <tt>obrDeploymentRepository</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#obrRepository">obrRepository</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Local OBR Repository.<br /></td>
+            <td>Local OBR Repository.<br /><b>User property is</b>: <tt>obrRepository</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#prefixUrl">prefixUrl</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Optional public URL prefix for the remote repository.<br /></td>
+            <td>Optional public URL prefix for the remote repository.<br /><b>User property is</b>: <tt>prefixUrl</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#remoteOBR">remoteOBR</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Remote OBR Repository.<br /><b>Default value is</b>: <tt>NONE</tt>.</td>
+            <td>Remote OBR Repository.<br /><b>Default value is</b>: <tt>NONE</tt>.<br /><b>User property is</b>: <tt>remoteOBR</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
@@ -155,43 +155,43 @@
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${altDeploymentRepository}</tt></li>
+          <li><b>User Property</b>: <tt>altDeploymentRepository</tt></li>
         </ul><hr /><p><b><a name="bundleUrl">bundleUrl</a>:</b></p>
         <div>Optional public URL where the bundle has been deployed.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${bundleUrl}</tt></li>
+          <li><b>User Property</b>: <tt>bundleUrl</tt></li>
         </ul><hr /><p><b><a name="ignoreLock">ignoreLock</a>:</b></p>
         <div>When true, ignore remote locking.</div>
         <ul>
           <li><b>Type</b>: <tt>boolean</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${ignoreLock}</tt></li>
+          <li><b>User Property</b>: <tt>ignoreLock</tt></li>
         </ul><hr /><p><b><a name="obrDeploymentRepository">obrDeploymentRepository</a>:</b></p>
         <div>OBR specific deployment repository. Format: id::layout::url</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${obrDeploymentRepository}</tt></li>
+          <li><b>User Property</b>: <tt>obrDeploymentRepository</tt></li>
         </ul><hr /><p><b><a name="obrRepository">obrRepository</a>:</b></p>
         <div>Local OBR Repository.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${obrRepository}</tt></li>
+          <li><b>User Property</b>: <tt>obrRepository</tt></li>
         </ul><hr /><p><b><a name="prefixUrl">prefixUrl</a>:</b></p>
         <div>Optional public URL prefix for the remote repository.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${prefixUrl}</tt></li>
+          <li><b>User Property</b>: <tt>prefixUrl</tt></li>
         </ul><hr /><p><b><a name="remoteOBR">remoteOBR</a>:</b></p>
         <div>Remote OBR Repository.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${remoteOBR}</tt></li>
+          <li><b>User Property</b>: <tt>remoteOBR</tt></li>
           <li><b>Default</b>: <tt>NONE</tt></li>
         </ul><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
         <div>Project types which this plugin supports.</div>
@@ -209,7 +209,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/index-mojo.html b/bundleplugin/doc/site/index-mojo.html
index 03a5afb..6aa6050 100644
--- a/bundleplugin/doc/site/index-mojo.html
+++ b/bundleplugin/doc/site/index-mojo.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -11,7 +11,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -28,7 +28,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -98,19 +98,19 @@
             <td><b><a href="#mavenRepository">mavenRepository</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>The repository to index<br /></td>
+            <td>The repository to index<br /><b>User property is</b>: <tt>mavenRepository</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#obrRepository">obrRepository</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>OBR Repository.<br /></td>
+            <td>OBR Repository.<br /><b>User property is</b>: <tt>obrRepository</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#urlTemplate">urlTemplate</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Template for urls<br /></td>
+            <td>Template for urls<br /><b>User property is</b>: <tt>urlTemplate</tt>.</td>
           </tr>
         </table>
       </div>
@@ -120,19 +120,19 @@
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${mavenRepository}</tt></li>
+          <li><b>User Property</b>: <tt>mavenRepository</tt></li>
         </ul><hr /><p><b><a name="obrRepository">obrRepository</a>:</b></p>
         <div>OBR Repository.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${obrRepository}</tt></li>
+          <li><b>User Property</b>: <tt>obrRepository</tt></li>
         </ul><hr /><p><b><a name="urlTemplate">urlTemplate</a>:</b></p>
         <div>Template for urls</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${urlTemplate}</tt></li>
+          <li><b>User Property</b>: <tt>urlTemplate</tt></li>
         </ul>
       </div>
     </div>
@@ -144,7 +144,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/index.html b/bundleplugin/doc/site/index.html
index 5290c94..8cd4772 100644
--- a/bundleplugin/doc/site/index.html
+++ b/bundleplugin/doc/site/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -12,7 +12,7 @@
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
       <meta name="author" content="Stuart McCulloch" />
     <meta name="Date-Creation-yyyymmdd" content="20110628" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -29,7 +29,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -109,7 +109,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/install-file-mojo.html b/bundleplugin/doc/site/install-file-mojo.html
index 6180e10..1a94866 100644
--- a/bundleplugin/doc/site/install-file-mojo.html
+++ b/bundleplugin/doc/site/install-file-mojo.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -11,7 +11,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -28,7 +28,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -88,7 +88,7 @@
 goal)</div>
       <p><b>Attributes</b>:</p>
       <ul>
-        <li>Binds by default to the lifecycle phase: <tt>install</tt>.</li>
+        <li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <tt>install</tt>.</li>
       </ul>
       <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
         <table class="bodyTable" border="0">
@@ -102,51 +102,51 @@
             <td><b><a href="#artifactId">artifactId</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>ArtifactId of the bundle. Retrieved from POM file if specified.<br /></td>
+            <td>ArtifactId of the bundle. Retrieved from POM file if specified.<br /><b>User property is</b>: <tt>artifactId</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#classifier">classifier</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Classifier type of the bundle. Defaults to none.<br /></td>
+            <td>Classifier type of the bundle. Defaults to none.<br /><b>User property is</b>: <tt>classifier</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#file">file</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
             <td>Bundle file, defaults to the artifact in the local Maven
-repository.<br /></td>
+repository.<br /><b>User property is</b>: <tt>file</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#groupId">groupId</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>GroupId of the bundle. Retrieved from POM file if specified.<br /></td>
+            <td>GroupId of the bundle. Retrieved from POM file if specified.<br /><b>User property is</b>: <tt>groupId</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#obrRepository">obrRepository</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>OBR Repository.<br /></td>
+            <td>OBR Repository.<br /><b>User property is</b>: <tt>obrRepository</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#obrXml">obrXml</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
             <td>Optional XML file describing additional requirements and
-capabilities.<br /></td>
+capabilities.<br /><b>User property is</b>: <tt>obrXml</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#packaging">packaging</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Packaging type of the bundle. Retrieved from POM file if specified.<br /></td>
+            <td>Packaging type of the bundle. Retrieved from POM file if specified.<br /><b>User property is</b>: <tt>packaging</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#pomFile">pomFile</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>Location of an existing POM file.<br /></td>
+            <td>Location of an existing POM file.<br /><b>User property is</b>: <tt>pomFile</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
@@ -158,7 +158,7 @@
             <td><b><a href="#version">version</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Version of the bundle. Retrieved from POM file if specified.<br /></td>
+            <td>Version of the bundle. Retrieved from POM file if specified.<br /><b>User property is</b>: <tt>version</tt>.</td>
           </tr>
         </table>
       </div>
@@ -168,51 +168,51 @@
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${artifactId}</tt></li>
+          <li><b>User Property</b>: <tt>artifactId</tt></li>
         </ul><hr /><p><b><a name="classifier">classifier</a>:</b></p>
         <div>Classifier type of the bundle. Defaults to none.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${classifier}</tt></li>
+          <li><b>User Property</b>: <tt>classifier</tt></li>
         </ul><hr /><p><b><a name="file">file</a>:</b></p>
         <div>Bundle file, defaults to the artifact in the local Maven
 repository.</div>
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${file}</tt></li>
+          <li><b>User Property</b>: <tt>file</tt></li>
         </ul><hr /><p><b><a name="groupId">groupId</a>:</b></p>
         <div>GroupId of the bundle. Retrieved from POM file if specified.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${groupId}</tt></li>
+          <li><b>User Property</b>: <tt>groupId</tt></li>
         </ul><hr /><p><b><a name="obrRepository">obrRepository</a>:</b></p>
         <div>OBR Repository.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${obrRepository}</tt></li>
+          <li><b>User Property</b>: <tt>obrRepository</tt></li>
         </ul><hr /><p><b><a name="obrXml">obrXml</a>:</b></p>
         <div>Optional XML file describing additional requirements and
 capabilities.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${obrXml}</tt></li>
+          <li><b>User Property</b>: <tt>obrXml</tt></li>
         </ul><hr /><p><b><a name="packaging">packaging</a>:</b></p>
         <div>Packaging type of the bundle. Retrieved from POM file if specified.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${packaging}</tt></li>
+          <li><b>User Property</b>: <tt>packaging</tt></li>
         </ul><hr /><p><b><a name="pomFile">pomFile</a>:</b></p>
         <div>Location of an existing POM file.</div>
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${pomFile}</tt></li>
+          <li><b>User Property</b>: <tt>pomFile</tt></li>
         </ul><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
         <div>Project types which this plugin supports.</div>
         <ul>
@@ -223,7 +223,7 @@
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${version}</tt></li>
+          <li><b>User Property</b>: <tt>version</tt></li>
         </ul>
       </div>
     </div>
@@ -235,7 +235,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/install-mojo.html b/bundleplugin/doc/site/install-mojo.html
index e89f76c..4a0bd57 100644
--- a/bundleplugin/doc/site/install-mojo.html
+++ b/bundleplugin/doc/site/install-mojo.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -11,7 +11,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -28,7 +28,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -90,7 +90,7 @@
       <ul>
         <li>Requires a Maven project to be executed.</li>
         <li>The goal is thread-safe and supports parallel builds.</li>
-        <li>Binds by default to the lifecycle phase: <tt>install</tt>.</li>
+        <li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <tt>install</tt>.</li>
       </ul>
       <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
         <table class="bodyTable" border="0">
@@ -104,7 +104,7 @@
             <td><b><a href="#obrRepository">obrRepository</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>OBR Repository.<br /></td>
+            <td>OBR Repository.<br /><b>User property is</b>: <tt>obrRepository</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
@@ -120,7 +120,7 @@
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${obrRepository}</tt></li>
+          <li><b>User Property</b>: <tt>obrRepository</tt></li>
         </ul><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
         <div>Project types which this plugin supports.</div>
         <ul>
@@ -137,7 +137,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/instructions-mojo.html b/bundleplugin/doc/site/instructions-mojo.html
index dd88ad3..5b51e8d 100644
--- a/bundleplugin/doc/site/instructions-mojo.html
+++ b/bundleplugin/doc/site/instructions-mojo.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -11,7 +11,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -28,7 +28,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -90,7 +90,7 @@
         <li>Requires a Maven project to be executed.</li>
         <li>Requires dependency resolution of artifacts in scope: <tt>test</tt>.</li>
         <li>The goal is thread-safe and supports parallel builds.</li>
-        <li>Binds by default to the lifecycle phase: <tt>package</tt>.</li>
+        <li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <tt>package</tt>.</li>
       </ul>
       <div class="section"><h3>Required Parameters<a name="Required_Parameters"></a></h3>
         <table class="bodyTable" border="0">
@@ -104,13 +104,13 @@
             <td><b><a href="#buildDirectory">buildDirectory</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>The directory for the generated JAR.<br /></td>
+            <td>The directory for the generated JAR.<br /><b>User property is</b>: <tt>project.build.directory</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#outputDirectory">outputDirectory</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>The directory for the generated bundles.<br /></td>
+            <td>The directory for the generated bundles.<br /><b>User property is</b>: <tt>project.build.outputDirectory</tt>.</td>
           </tr>
         </table>
       </div>
@@ -140,32 +140,45 @@
             <td><b><a href="#dumpClasspath">dumpClasspath</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>File where the BND class-path will be dumped<br /></td>
+            <td>File where the BND class-path will be dumped<br /><b>User property is</b>: <tt>dumpClasspath</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#dumpInstructions">dumpInstructions</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>File where the BND instructions will be dumped<br /></td>
+            <td>File where the BND instructions will be dumped<br /><b>User property is</b>: <tt>dumpInstructions</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#excludeDependencies">excludeDependencies</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
             <td>Comma separated list of artifactIds to exclude from the dependency
-classpath passed to BND (use &quot;true&quot; to exclude everything)<br /></td>
+classpath passed to BND (use &quot;true&quot; to exclude everything)<br /><b>User property is</b>: <tt>excludeDependencies</tt>.</td>
           </tr>
           <tr class="a">
+            <td><b><a href="#finalName">finalName</a></b></td>
+            <td><tt>String</tt></td>
+            <td><tt>-</tt></td>
+            <td>Final name of the bundle (without classifier or extension)<br /><b>User property is</b>: <tt>project.build.finalName</tt>.</td>
+          </tr>
+          <tr class="b">
             <td><b><a href="#instructions">instructions</a></b></td>
             <td><tt>Map</tt></td>
             <td><tt>-</tt></td>
             <td>The BND instructions for the bundle.<br /></td>
           </tr>
-          <tr class="b">
+          <tr class="a">
             <td><b><a href="#manifestLocation">manifestLocation</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>Directory where the manifest will be written<br /><b>Default value is</b>: <tt>${project.build.outputDirectory}/META-INF</tt>.</td>
+            <td>Directory where the manifest will be written<br /><b>Default value is</b>: <tt>${project.build.outputDirectory}/META-INF</tt>.<br /><b>User property is</b>: <tt>manifestLocation</tt>.</td>
+          </tr>
+          <tr class="b">
+            <td><b><a href="#packaging">packaging</a></b></td>
+            <td><tt>String</tt></td>
+            <td><tt>-</tt></td>
+            <td>Packaging type of the bundle to be installed. For example, &quot;jar&quot;.
+Defaults to none which means use the same packaging as the project.<br /></td>
           </tr>
           <tr class="a">
             <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
@@ -177,7 +190,7 @@
             <td><b><a href="#unpackBundle">unpackBundle</a></b></td>
             <td><tt>boolean</tt></td>
             <td><tt>-</tt></td>
-            <td>When true, unpack the bundle contents to the outputDirectory<br /></td>
+            <td>When true, unpack the bundle contents to the outputDirectory<br /><b>User property is</b>: <tt>unpackBundle</tt>.</td>
           </tr>
         </table>
       </div>
@@ -192,7 +205,7 @@
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>Yes</tt></li>
-          <li><b>Expression</b>: <tt>${project.build.directory}</tt></li>
+          <li><b>User Property</b>: <tt>project.build.directory</tt></li>
         </ul><hr /><p><b><a name="classifier">classifier</a>:</b></p>
         <div>Classifier type of the bundle to be installed. For example,
 &quot;jdk14&quot;. Defaults to none which means this is the project's main
@@ -205,20 +218,26 @@
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${dumpClasspath}</tt></li>
+          <li><b>User Property</b>: <tt>dumpClasspath</tt></li>
         </ul><hr /><p><b><a name="dumpInstructions">dumpInstructions</a>:</b></p>
         <div>File where the BND instructions will be dumped</div>
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${dumpInstructions}</tt></li>
+          <li><b>User Property</b>: <tt>dumpInstructions</tt></li>
         </ul><hr /><p><b><a name="excludeDependencies">excludeDependencies</a>:</b></p>
         <div>Comma separated list of artifactIds to exclude from the dependency
 classpath passed to BND (use &quot;true&quot; to exclude everything)</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${excludeDependencies}</tt></li>
+          <li><b>User Property</b>: <tt>excludeDependencies</tt></li>
+        </ul><hr /><p><b><a name="finalName">finalName</a>:</b></p>
+        <div>Final name of the bundle (without classifier or extension)</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.lang.String</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+          <li><b>User Property</b>: <tt>project.build.finalName</tt></li>
         </ul><hr /><p><b><a name="instructions">instructions</a>:</b></p>
         <div>The BND instructions for the bundle.</div>
         <ul>
@@ -229,14 +248,20 @@
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${manifestLocation}</tt></li>
+          <li><b>User Property</b>: <tt>manifestLocation</tt></li>
           <li><b>Default</b>: <tt>${project.build.outputDirectory}/META-INF</tt></li>
         </ul><hr /><p><b><a name="outputDirectory">outputDirectory</a>:</b></p>
         <div>The directory for the generated bundles.</div>
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>Yes</tt></li>
-          <li><b>Expression</b>: <tt>${project.build.outputDirectory}</tt></li>
+          <li><b>User Property</b>: <tt>project.build.outputDirectory</tt></li>
+        </ul><hr /><p><b><a name="packaging">packaging</a>:</b></p>
+        <div>Packaging type of the bundle to be installed. For example, &quot;jar&quot;.
+Defaults to none which means use the same packaging as the project.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.lang.String</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
         </ul><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
         <div>Project types which this plugin supports.</div>
         <ul>
@@ -247,7 +272,7 @@
         <ul>
           <li><b>Type</b>: <tt>boolean</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${unpackBundle}</tt></li>
+          <li><b>User Property</b>: <tt>unpackBundle</tt></li>
         </ul>
       </div>
     </div>
@@ -259,7 +284,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/issue-tracking.html b/bundleplugin/doc/site/issue-tracking.html
index e3e83fa..c4ee2be 100644
--- a/bundleplugin/doc/site/issue-tracking.html
+++ b/bundleplugin/doc/site/issue-tracking.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -27,7 +27,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -107,7 +107,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/jira-report.html b/bundleplugin/doc/site/jira-report.html
index 0425529..84c3358 100644
--- a/bundleplugin/doc/site/jira-report.html
+++ b/bundleplugin/doc/site/jira-report.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -27,7 +27,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -94,14 +94,14 @@
     </div>
     <div id="bodyColumn">
       <div id="contentBox">
-        <div class="section"><h2>JIRA Report<a name="JIRA_Report"></a></h2><a name="JIRA_Report"></a><table border="0" class="bodyTable"><tr class="a"><th>Key</th><th>Summary</th><th>Status</th><th>Resolution</th><th>By</th></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3347">FELIX-3347</a></td><td>Upper-case environment variables end up in final manifest</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3310">FELIX-3310</a></td><td>[patch] maven-bundle-plugin build fails with maven3 (manageArtifactSystemPath is missing)</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3300">FELIX-3300</a></td><td>Avoid warning about superfluous export-package instructions for empty directories</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3299">FELIX-3299</a></td><td>Fix instable tests in BundlePluginTest</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3254">FELIX-3254</a></td><td>manifest goal generates wrong Export-Package when Embed-Dependency</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3238">FELIX-3238</a></td><td>Unable to filter out classes from identical package in a dependency</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3222">FELIX-3222</a></td><td>[PATCH] build fails with &quot;unreported exception&quot;</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3210">FELIX-3210</a></td><td>Maven bundle plugin remote-clean goal without user confirmation</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3209">FELIX-3209</a></td><td>Make sure the properties passed to BND only include string values</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3208">FELIX-3208</a></td><td>Provide default value for sourcepath when using BND -sources=true</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3206">FELIX-3206</a></td><td>Restore the BND analyzer approach which creates a MANIFEST.MF based on the contents of the jar</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3188">FELIX-3188</a></td><td>[PATCH] exception org.apache.maven.project.artifact.InvalidDependencyVersionException has already been caught</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3185">FELIX-3185</a></td><td>Negative Embed-Dependency clauses aren't handled correctly</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3173">FELIX-3173</a></td><td>Local OBR install failes when there is a space in the full path</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3165">FELIX-3165</a></td><td>Add an option to the manifest goal that will copy any BND generated resources to the target folder</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3092">FELIX-3092</a></td><td>Support relative paths in &quot;urlTemplate&quot; parameter of &quot;bundle:index&quot; goal in maven bundle plugin</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3061">FELIX-3061</a></td><td>improvements to Embed-Dependency logic to allow better m2e integration</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3058">FELIX-3058</a></td><td>maven-bundle-plugin 2.3.5 incompatible with maven-source-plugin (regression)</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3037">FELIX-3037</a></td><td>Plugin does not work with Java 5</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3031">FELIX-3031</a></td><td>maven3 deployment fails where maven2 works</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3011">FELIX-3011</a></td><td>Add a new goal to save the bnd instructions that would be passed onto bnd, to allow people to use other toolchains such as bndtools</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2934">FELIX-2934</a></td><td>Bundle-ClassPath contains &quot;.&quot; despite using _wab instruction</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2884">FELIX-2884</a></td><td>The multiplicity isn't taken into account by the maven bundle plugin and bundlerepository when generating the repository xml</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2872">FELIX-2872</a></td><td>Provide a way to have an easier to read manifest</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2820">FELIX-2820</a></td><td>Provide a default value when using &lt;_wab/&gt;</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2819">FELIX-2819</a></td><td>packageinfo files in src/main/java are ignored</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2812">FELIX-2812</a></td><td>The &lt;Embed-Dependency&gt; filter can fail if your matching against multiple &quot;*&quot; artifact ids.</td><td>Closed</td><td>Fixed</td><td>Hiram Chirino</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2811">FELIX-2811</a></td><td>If &lt;Private-Package&gt;!*&lt;/Private-Package&gt; is defined the all packages should be exported by {local-packages}</td><td>Closed</td><td>Fixed</td><td>Hiram Chirino</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2808">FELIX-2808</a></td><td>maven-bundle-plugin should scan for local packages by looking for *.class files instead of *.java so that all the JVM languages can be supported.</td><td>Closed</td><td>Fixed</td><td>Hiram Chirino</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2765">FELIX-2765</a></td><td>bundle plugin throw IllegalArgumentException while do the install</td><td>Closed</td><td>Fixed</td><td>Unassigned</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2722">FELIX-2722</a></td><td>With an empty  organization like this &lt;organization/&gt;, maven bundle plugin raises a NPE.</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2701">FELIX-2701</a></td><td>Add a {local-packages} macro for automatically expanding local packages in the &lt;Export-Package&gt; instruction</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2692">FELIX-2692</a></td><td>Support maven type 'wab' for web bundles</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2657">FELIX-2657</a></td><td>Maven-bundle-plugin uses old version of BndLib</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2656">FELIX-2656</a></td><td>Maven-bundle-plugin identified as not thread-safe in Maven 3.0</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2449">FELIX-2449</a></td><td>Resource filtering does not use Maven properties specified on the mvn command line via -D command line switches</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2435">FELIX-2435</a></td><td>&lt;supportedProjectType&gt; on a WAR file will switch the project to generate jar artifacts</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2427">FELIX-2427</a></td><td>maven site crashes</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2346">FELIX-2346</a></td><td>mvn bundle:clean removes all, even the existing resources</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2215">FELIX-2215</a></td><td>Refactor bundlerepository and maven bundle plugin obr data model</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2210">FELIX-2210</a></td><td>Bogus import entries</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2194">FELIX-2194</a></td><td>The manifest and bundle goals seem to generate different manifest informations</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2176">FELIX-2176</a></td><td>Upgrade maven-bundle-plugin to up to date bnd</td><td>Closed</td><td>Fixed</td><td>Richard S. Hall</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2175">FELIX-2175</a></td><td>Improve the Blueprint component to parse / introspect blueprint configuration files and generate OBR service requirements / capabilities accordingly</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2173">FELIX-2173</a></td><td>Fix inconsistent maven-&gt;osgi version conversion between maven-bundle-plugin and DefaultMaven2OsgiConverter</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2155">FELIX-2155</a></td><td>The maven bundle plugin generates wrong capabilities for packages with directives</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2112">FELIX-2112</a></td><td>Carriage returns are removed from instructions, but the lines should be trimmed alltogether</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2048">FELIX-2048</a></td><td>Service-Component property doesn't allow to use wildcards for filenames</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1985">FELIX-1985</a></td><td>Error when Include-Resource instruction contains duplicate paths.</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1951">FELIX-1951</a></td><td>The SchemaObr.xsd in bundleplugin is incomplete</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1936">FELIX-1936</a></td><td>Create Output Directory for Resource-Only WARs</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1836">FELIX-1836</a></td><td>Maven resource filtering support for obr.xml</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1820">FELIX-1820</a></td><td>Fragment-Host version not converted</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1734">FELIX-1734</a></td><td>The _donotcopy is ignored</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1634">FELIX-1634</a></td><td>Maven Bundle Plugin disables transitive dependencies</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1571">FELIX-1571</a></td><td>Bundle-ClassPath without &quot;.&quot; while using maven-bundle-plugin in a war project confuses the plugin</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1568">FELIX-1568</a></td><td>Goal to transform a maven version into an OSGi version</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1552">FELIX-1552</a></td><td>Add support for blueprint and spring-dm declarations to import the discovered packages</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1539">FELIX-1539</a></td><td>generated-classes not included in bundle</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1501">FELIX-1501</a></td><td>Using a macro in Bundle-Version with the manifest goal causes garbage in the Export-Package and Private-Package headers.</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1461">FELIX-1461</a></td><td>Corrupted repository.xml when maven is run in parallel</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1439">FELIX-1439</a></td><td>maven-bundle-plugin resource filtering does not substitute project.organization.*</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1290">FELIX-1290</a></td><td>Missing dependencies silently ignored</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1262">FELIX-1262</a></td><td>[regression] shared archive resources cannot be found</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1148">FELIX-1148</a></td><td>NPE during bundleall goal</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1054">FELIX-1054</a></td><td>The deploy and deploy-file plugin should write the computed bundle uri</td><td>Closed</td><td>Fixed</td><td>Clement Escoffier</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1039">FELIX-1039</a></td><td>Inconsistency packaging vs. type</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1023">FELIX-1023</a></td><td>Category Information not exported to obr file</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1021">FELIX-1021</a></td><td>Classifier always used even if not explicitly set in the configuration</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1017">FELIX-1017</a></td><td>Generic types ignored when generating MANIFEST.MF</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-984">FELIX-984</a></td><td>site's &lt;Bundle-Version&gt; documentation is wrong</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-981">FELIX-981</a></td><td>Warning about split packages even with -split-package directive [maven-bundle-plugin-2.0.0]</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-954">FELIX-954</a></td><td>Import-Package should include packages from optional Maven dependencies with resolution=optional</td><td>Closed</td><td>Fixed</td><td>Unassigned</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-941">FELIX-941</a></td><td>Support singleton &amp; fragment-attachment directive generation</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-912">FELIX-912</a></td><td>Improve default Export-Package / Private-Package settings by scanning the project source</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-907">FELIX-907</a></td><td>Regression in latest BND code: negated exports are applied to private packages</td><td>Closed</td><td>Fixed</td><td>Peter Kriens</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-899">FELIX-899</a></td><td>Version attribute missing from Import-Package on provided dependencies</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-850">FELIX-850</a></td><td>Wrong symbolic name computed when groupId is a single segment string.</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-843">FELIX-843</a></td><td>Regression: BND 0.0.295 does not augment Ignore-Package with excluded import packages</td><td>Closed</td><td>Fixed</td><td>Peter Kriens</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-831">FELIX-831</a></td><td>bndlib unnecessary modifies valid OSGi Bundle-Version numbers (update to bndlib 0.0.293)</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-807">FELIX-807</a></td><td>conversion of JAR into bundle fails if there are classes is the default name space</td><td>Closed</td><td>Fixed</td><td>Peter Kriens</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-806">FELIX-806</a></td><td>changing the internal configuration of the archive plugin doesn't seem to be possible</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-782">FELIX-782</a></td><td>Manifest goal ignores version attribute specified in _exportcontents</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-759">FELIX-759</a></td><td>Version range in import declaration creates a filter using invalid operators (&lt;,&gt;)</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-699">FELIX-699</a></td><td>manifest goal does not interprete _include instruction correctly</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-684">FELIX-684</a></td><td>Enable excludeDependencies to check groupId, version, etc. rather than only artifactId</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-677">FELIX-677</a></td><td>Parser throws error when DynamicImport-Package contains attributes</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-661">FELIX-661</a></td><td>maven bundle plugin does not close the accessed fie /jar streams</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-660">FELIX-660</a></td><td>&quot;Class in different directory than declared&quot; error when bundle classes in a directory other than bundle root</td><td>Closed</td><td>Fixed</td><td>Peter Kriens</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-636">FELIX-636</a></td><td>Bundle-SymbolicName is generated incorrectly</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-620">FELIX-620</a></td><td>manifest goal of maven-bundle-plugin ignores _include instruction</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-580">FELIX-580</a></td><td>Allows maven-bunde-plugin to generate a repository file outide a maven repository with absolute url</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-561">FELIX-561</a></td><td>Use same level of Bnd in script generated by bundle:ant as in the bundleplugin itself</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-560">FELIX-560</a></td><td>bundle:install and bundle:deploy goals check artifact type is &quot;bundle&quot; instead of using the supportedProjectTypes list</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-556">FELIX-556</a></td><td>Filtering mechanims to &lt;Embed-Dependency/&gt;</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-554">FELIX-554</a></td><td>allow removing a bundle from a remote OBR</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-553">FELIX-553</a></td><td>allow cleaning a remote OBR</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-549">FELIX-549</a></td><td>Import-Package should not include &quot;snapshot&quot; from snapshot dependencies</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-548">FELIX-548</a></td><td>Import-Package version qualifiers vary depending on dependency scope.</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-547">FELIX-547</a></td><td>OBR portion of the plugin balks on singular version range of [1.0.0,1.0.0].</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-546">FELIX-546</a></td><td>Import-Package version inconsistencies.</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-545">FELIX-545</a></td><td>Export-Package version inconsistencies.</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-543">FELIX-543</a></td><td>add switch to prevent classifier being appended to Bundle-Version</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-541">FELIX-541</a></td><td>allow repository.xml to reference to xsl file</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-531">FELIX-531</a></td><td>Allow the import package scope to be set for the bundleall goal in the maven-bundle-plugin</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-526">FELIX-526</a></td><td>Allow a mechanism to give preference to local resources over the ones from embedded jars</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-523">FELIX-523</a></td><td>Update bundleplugin to use BND 0.0.249</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-519">FELIX-519</a></td><td>maven-bundle-plugin should issue a WARNING for unsupported packaging types</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-517">FELIX-517</a></td><td>Replacement of {maven-dependencies} in Include-Resource and Bundle-ClassPath can strip Windows path separators</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-505">FELIX-505</a></td><td>maven-bundle-plugin:bundleall modifies dependencies that are already bundles</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-499">FELIX-499</a></td><td>Enhance &quot;excludeDependencies&quot; configuration parameter to also support comma-separated list of artifactIds</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-498">FELIX-498</a></td><td>Enable javadoc deployment on OBR repository</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-493">FELIX-493</a></td><td>maven-bundle-plugin bundle:install goal install too many artifact</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-492">FELIX-492</a></td><td>Add support to classifier: enable bunlde:bundle goal to generate classified artifact</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-491">FELIX-491</a></td><td>Merge the maven-obr-plugin and the bundleplugin into a single plugin</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-477">FELIX-477</a></td><td>BND: Versions with fourth section all numbers are truncated</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-476">FELIX-476</a></td><td>Improve default Export-Package (used when no Export-Package and Private-Package is set)</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-472">FELIX-472</a></td><td>Embed-Dependency, Include-Resource and inline</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-462">FELIX-462</a></td><td>Support removal of manifest headers added by the bundleplugin</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-461">FELIX-461</a></td><td>Ensure manifest goal creates same manifest as bundle goal when project packaging is &quot;bundle&quot;</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-460">FELIX-460</a></td><td>Remove &quot;.&quot; from the Bundle-ClassPath when embedding dependencies in a bundle with no local classes</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-459">FELIX-459</a></td><td>BND: allow customization of the &quot;uses&quot; clause in the generated Export-Package</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-458">FELIX-458</a></td><td>BND: -split-package:=merge-first behaves like merge-last</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-344">FELIX-344</a></td><td>Generate standard maven documentation for the maven-bundle-plugin</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-247">FELIX-247</a></td><td>Add ant goal to maven-bundle-plugin which creates a build.xml and MANIFEST.MF with bundle headers</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr></table></div>
+        <div class="section"><h2>JIRA Report<a name="JIRA_Report"></a></h2><a name="JIRA_Report"></a><table border="0" class="bodyTable"><tr class="a"><th>Key</th><th>Summary</th><th>Status</th><th>Resolution</th><th>By</th></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-4005">FELIX-4005</a></td><td>Maven Bundle Plugin fails with ArrayIndexOutOfBoundsException, &quot;Invalid Class File&quot; errors with Java 8 features</td><td>Resolved</td><td>Fixed</td><td>Unassigned</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3347">FELIX-3347</a></td><td>Upper-case environment variables end up in final manifest</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2765">FELIX-2765</a></td><td>bundle plugin throw IllegalArgumentException while do the install</td><td>Closed</td><td>Fixed</td><td>Unassigned</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-661">FELIX-661</a></td><td>maven bundle plugin does not close the accessed fie /jar streams</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-4067">FELIX-4067</a></td><td>Old BND used causes problems during annotations processing</td><td>Resolved</td><td>Fixed</td><td>Unassigned</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3585">FELIX-3585</a></td><td>Dependencies with classes or resources in the default package cannot be embedded</td><td>Resolved</td><td>Fixed</td><td>Unassigned</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2934">FELIX-2934</a></td><td>Bundle-ClassPath contains &quot;.&quot; despite using _wab instruction</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-4017">FELIX-4017</a></td><td>@ProviderType does not work (bnd &quot;provide:=true&quot; annotation?)</td><td>Resolved</td><td>Fixed</td><td>Unassigned</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3973">FELIX-3973</a></td><td>Exclusion from {local-packages} doesn't work anymore</td><td>Resolved</td><td>Fixed</td><td>Unassigned</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3638">FELIX-3638</a></td><td>Missing package import for annotation default value</td><td>Resolved</td><td>Fixed</td><td>Unassigned</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3630">FELIX-3630</a></td><td>Packages exported by bundle are (re)-imported with incorrect version</td><td>Resolved</td><td>Fixed</td><td>Unassigned</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3602">FELIX-3602</a></td><td>The bundle plugin should generate the blueprint header with the file locations</td><td>Resolved</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3601">FELIX-3601</a></td><td>Incorrect namespace in component XML for DS Annotations</td><td>Resolved</td><td>Fixed</td><td>Unassigned</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3497">FELIX-3497</a></td><td>Wrong artifact type attached as a secondary artifact when project packaging is set to &quot;pom&quot;</td><td>Resolved</td><td>Fixed</td><td>Unassigned</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3407">FELIX-3407</a></td><td>Imports are missed for generics</td><td>Resolved</td><td>Fixed</td><td>Unassigned</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3352">FELIX-3352</a></td><td>Maven Bundle Plugin ignores resource properties configured inside &lt;filters&gt; section</td><td>Resolved</td><td>Fixed</td><td>Unassigned</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3349">FELIX-3349</a></td><td>wrong bundle manifest contents in some cases</td><td>Resolved</td><td>Fixed</td><td>Unassigned</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3310">FELIX-3310</a></td><td>[patch] maven-bundle-plugin build fails with maven3 (manageArtifactSystemPath is missing)</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3293">FELIX-3293</a></td><td>Exception while creating empty fragment bundles with version 2.3.6</td><td>Resolved</td><td>Fixed</td><td>Unassigned</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3254">FELIX-3254</a></td><td>manifest goal generates wrong Export-Package when Embed-Dependency</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3222">FELIX-3222</a></td><td>[PATCH] build fails with &quot;unreported exception&quot;</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3210">FELIX-3210</a></td><td>Maven bundle plugin remote-clean goal without user confirmation</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3209">FELIX-3209</a></td><td>Make sure the properties passed to BND only include string values</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3208">FELIX-3208</a></td><td>Provide default value for sourcepath when using BND -sources=true</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3206">FELIX-3206</a></td><td>Restore the BND analyzer approach which creates a MANIFEST.MF based on the contents of the jar</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3188">FELIX-3188</a></td><td>[PATCH] exception org.apache.maven.project.artifact.InvalidDependencyVersionException has already been caught</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3185">FELIX-3185</a></td><td>Negative Embed-Dependency clauses aren't handled correctly</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3165">FELIX-3165</a></td><td>Add an option to the manifest goal that will copy any BND generated resources to the target folder</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3092">FELIX-3092</a></td><td>Support relative paths in &quot;urlTemplate&quot; parameter of &quot;bundle:index&quot; goal in maven bundle plugin</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3061">FELIX-3061</a></td><td>improvements to Embed-Dependency logic to allow better m2e integration</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3058">FELIX-3058</a></td><td>maven-bundle-plugin 2.3.5 incompatible with maven-source-plugin (regression)</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3037">FELIX-3037</a></td><td>Plugin does not work with Java 5</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3031">FELIX-3031</a></td><td>maven3 deployment fails where maven2 works</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3011">FELIX-3011</a></td><td>Add a new goal to save the bnd instructions that would be passed onto bnd, to allow people to use other toolchains such as bndtools</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2884">FELIX-2884</a></td><td>The multiplicity isn't taken into account by the maven bundle plugin and bundlerepository when generating the repository xml</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2872">FELIX-2872</a></td><td>Provide a way to have an easier to read manifest</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2820">FELIX-2820</a></td><td>Provide a default value when using &lt;_wab/&gt;</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2819">FELIX-2819</a></td><td>packageinfo files in src/main/java are ignored</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2812">FELIX-2812</a></td><td>The &lt;Embed-Dependency&gt; filter can fail if your matching against multiple &quot;*&quot; artifact ids.</td><td>Closed</td><td>Fixed</td><td>Hiram Chirino</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2811">FELIX-2811</a></td><td>If &lt;Private-Package&gt;!*&lt;/Private-Package&gt; is defined the all packages should be exported by {local-packages}</td><td>Closed</td><td>Fixed</td><td>Hiram Chirino</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2808">FELIX-2808</a></td><td>maven-bundle-plugin should scan for local packages by looking for *.class files instead of *.java so that all the JVM languages can be supported.</td><td>Closed</td><td>Fixed</td><td>Hiram Chirino</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2701">FELIX-2701</a></td><td>Add a {local-packages} macro for automatically expanding local packages in the &lt;Export-Package&gt; instruction</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2692">FELIX-2692</a></td><td>Support maven type 'wab' for web bundles</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2449">FELIX-2449</a></td><td>Resource filtering does not use Maven properties specified on the mvn command line via -D command line switches</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2435">FELIX-2435</a></td><td>&lt;supportedProjectType&gt; on a WAR file will switch the project to generate jar artifacts</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2427">FELIX-2427</a></td><td>maven site crashes</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2346">FELIX-2346</a></td><td>mvn bundle:clean removes all, even the existing resources</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2215">FELIX-2215</a></td><td>Refactor bundlerepository and maven bundle plugin obr data model</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2210">FELIX-2210</a></td><td>Bogus import entries</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2194">FELIX-2194</a></td><td>The manifest and bundle goals seem to generate different manifest informations</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2176">FELIX-2176</a></td><td>Upgrade maven-bundle-plugin to up to date bnd</td><td>Closed</td><td>Fixed</td><td>Richard S. Hall</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2175">FELIX-2175</a></td><td>Improve the Blueprint component to parse / introspect blueprint configuration files and generate OBR service requirements / capabilities accordingly</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2173">FELIX-2173</a></td><td>Fix inconsistent maven-&gt;osgi version conversion between maven-bundle-plugin and DefaultMaven2OsgiConverter</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2155">FELIX-2155</a></td><td>The maven bundle plugin generates wrong capabilities for packages with directives</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2112">FELIX-2112</a></td><td>Carriage returns are removed from instructions, but the lines should be trimmed alltogether</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2048">FELIX-2048</a></td><td>Service-Component property doesn't allow to use wildcards for filenames</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1951">FELIX-1951</a></td><td>The SchemaObr.xsd in bundleplugin is incomplete</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1936">FELIX-1936</a></td><td>Create Output Directory for Resource-Only WARs</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1820">FELIX-1820</a></td><td>Fragment-Host version not converted</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1734">FELIX-1734</a></td><td>The _donotcopy is ignored</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1634">FELIX-1634</a></td><td>Maven Bundle Plugin disables transitive dependencies</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1571">FELIX-1571</a></td><td>Bundle-ClassPath without &quot;.&quot; while using maven-bundle-plugin in a war project confuses the plugin</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1568">FELIX-1568</a></td><td>Goal to transform a maven version into an OSGi version</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1552">FELIX-1552</a></td><td>Add support for blueprint and spring-dm declarations to import the discovered packages</td><td>Closed</td><td>Fixed</td><td>Guillaume Nodet</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1539">FELIX-1539</a></td><td>generated-classes not included in bundle</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1501">FELIX-1501</a></td><td>Using a macro in Bundle-Version with the manifest goal causes garbage in the Export-Package and Private-Package headers.</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1461">FELIX-1461</a></td><td>Corrupted repository.xml when maven is run in parallel</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1439">FELIX-1439</a></td><td>maven-bundle-plugin resource filtering does not substitute project.organization.*</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1262">FELIX-1262</a></td><td>[regression] shared archive resources cannot be found</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1148">FELIX-1148</a></td><td>NPE during bundleall goal</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1054">FELIX-1054</a></td><td>The deploy and deploy-file plugin should write the computed bundle uri</td><td>Closed</td><td>Fixed</td><td>Clement Escoffier</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1039">FELIX-1039</a></td><td>Inconsistency packaging vs. type</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1023">FELIX-1023</a></td><td>Category Information not exported to obr file</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1021">FELIX-1021</a></td><td>Classifier always used even if not explicitly set in the configuration</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1017">FELIX-1017</a></td><td>Generic types ignored when generating MANIFEST.MF</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-954">FELIX-954</a></td><td>Import-Package should include packages from optional Maven dependencies with resolution=optional</td><td>Closed</td><td>Fixed</td><td>Unassigned</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-941">FELIX-941</a></td><td>Support singleton &amp; fragment-attachment directive generation</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-907">FELIX-907</a></td><td>Regression in latest BND code: negated exports are applied to private packages</td><td>Closed</td><td>Fixed</td><td>Peter Kriens</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-899">FELIX-899</a></td><td>Version attribute missing from Import-Package on provided dependencies</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-843">FELIX-843</a></td><td>Regression: BND 0.0.295 does not augment Ignore-Package with excluded import packages</td><td>Closed</td><td>Fixed</td><td>Peter Kriens</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-831">FELIX-831</a></td><td>bndlib unnecessary modifies valid OSGi Bundle-Version numbers (update to bndlib 0.0.293)</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-806">FELIX-806</a></td><td>changing the internal configuration of the archive plugin doesn't seem to be possible</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-782">FELIX-782</a></td><td>Manifest goal ignores version attribute specified in _exportcontents</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-759">FELIX-759</a></td><td>Version range in import declaration creates a filter using invalid operators (&lt;,&gt;)</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-699">FELIX-699</a></td><td>manifest goal does not interprete _include instruction correctly</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-677">FELIX-677</a></td><td>Parser throws error when DynamicImport-Package contains attributes</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-660">FELIX-660</a></td><td>&quot;Class in different directory than declared&quot; error when bundle classes in a directory other than bundle root</td><td>Closed</td><td>Fixed</td><td>Peter Kriens</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-636">FELIX-636</a></td><td>Bundle-SymbolicName is generated incorrectly</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-620">FELIX-620</a></td><td>manifest goal of maven-bundle-plugin ignores _include instruction</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-580">FELIX-580</a></td><td>Allows maven-bunde-plugin to generate a repository file outide a maven repository with absolute url</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-556">FELIX-556</a></td><td>Filtering mechanims to &lt;Embed-Dependency/&gt;</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-547">FELIX-547</a></td><td>OBR portion of the plugin balks on singular version range of [1.0.0,1.0.0].</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-541">FELIX-541</a></td><td>allow repository.xml to reference to xsl file</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-526">FELIX-526</a></td><td>Allow a mechanism to give preference to local resources over the ones from embedded jars</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-517">FELIX-517</a></td><td>Replacement of {maven-dependencies} in Include-Resource and Bundle-ClassPath can strip Windows path separators</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-505">FELIX-505</a></td><td>maven-bundle-plugin:bundleall modifies dependencies that are already bundles</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-493">FELIX-493</a></td><td>maven-bundle-plugin bundle:install goal install too many artifact</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-477">FELIX-477</a></td><td>BND: Versions with fourth section all numbers are truncated</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-472">FELIX-472</a></td><td>Embed-Dependency, Include-Resource and inline</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3772">FELIX-3772</a></td><td>maven-bundle-plugin does not scan blueprint in workspace outside default location</td><td>Resolved</td><td>Fixed</td><td>Unassigned</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3619">FELIX-3619</a></td><td>&quot;IOException: Failed to delete repository.xml while trying to rename&quot; in maven-bundle-plugin</td><td>Resolved</td><td>Fixed</td><td>Unassigned</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3582">FELIX-3582</a></td><td>finalName not properly populated in maven-bundle-plugin with buildnumber-maven-plugin</td><td>Resolved</td><td>Fixed</td><td>Unassigned</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3300">FELIX-3300</a></td><td>Avoid warning about superfluous export-package instructions for empty directories</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3299">FELIX-3299</a></td><td>Fix instable tests in BundlePluginTest</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3238">FELIX-3238</a></td><td>Unable to filter out classes from identical package in a dependency</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-3173">FELIX-3173</a></td><td>Local OBR install failes when there is a space in the full path</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2722">FELIX-2722</a></td><td>With an empty  organization like this &lt;organization/&gt;, maven bundle plugin raises a NPE.</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2657">FELIX-2657</a></td><td>Maven-bundle-plugin uses old version of BndLib</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2656">FELIX-2656</a></td><td>Maven-bundle-plugin identified as not thread-safe in Maven 3.0</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1985">FELIX-1985</a></td><td>Error when Include-Resource instruction contains duplicate paths.</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1836">FELIX-1836</a></td><td>Maven resource filtering support for obr.xml</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1290">FELIX-1290</a></td><td>Missing dependencies silently ignored</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-984">FELIX-984</a></td><td>site's &lt;Bundle-Version&gt; documentation is wrong</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-981">FELIX-981</a></td><td>Warning about split packages even with -split-package directive [maven-bundle-plugin-2.0.0]</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-912">FELIX-912</a></td><td>Improve default Export-Package / Private-Package settings by scanning the project source</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-850">FELIX-850</a></td><td>Wrong symbolic name computed when groupId is a single segment string.</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-807">FELIX-807</a></td><td>conversion of JAR into bundle fails if there are classes is the default name space</td><td>Closed</td><td>Fixed</td><td>Peter Kriens</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-684">FELIX-684</a></td><td>Enable excludeDependencies to check groupId, version, etc. rather than only artifactId</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-561">FELIX-561</a></td><td>Use same level of Bnd in script generated by bundle:ant as in the bundleplugin itself</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-560">FELIX-560</a></td><td>bundle:install and bundle:deploy goals check artifact type is &quot;bundle&quot; instead of using the supportedProjectTypes list</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-554">FELIX-554</a></td><td>allow removing a bundle from a remote OBR</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-553">FELIX-553</a></td><td>allow cleaning a remote OBR</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-549">FELIX-549</a></td><td>Import-Package should not include &quot;snapshot&quot; from snapshot dependencies</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-548">FELIX-548</a></td><td>Import-Package version qualifiers vary depending on dependency scope.</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-546">FELIX-546</a></td><td>Import-Package version inconsistencies.</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-545">FELIX-545</a></td><td>Export-Package version inconsistencies.</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-543">FELIX-543</a></td><td>add switch to prevent classifier being appended to Bundle-Version</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-531">FELIX-531</a></td><td>Allow the import package scope to be set for the bundleall goal in the maven-bundle-plugin</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-523">FELIX-523</a></td><td>Update bundleplugin to use BND 0.0.249</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-519">FELIX-519</a></td><td>maven-bundle-plugin should issue a WARNING for unsupported packaging types</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-499">FELIX-499</a></td><td>Enhance &quot;excludeDependencies&quot; configuration parameter to also support comma-separated list of artifactIds</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-492">FELIX-492</a></td><td>Add support to classifier: enable bunlde:bundle goal to generate classified artifact</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-491">FELIX-491</a></td><td>Merge the maven-obr-plugin and the bundleplugin into a single plugin</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-476">FELIX-476</a></td><td>Improve default Export-Package (used when no Export-Package and Private-Package is set)</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-461">FELIX-461</a></td><td>Ensure manifest goal creates same manifest as bundle goal when project packaging is &quot;bundle&quot;</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-459">FELIX-459</a></td><td>BND: allow customization of the &quot;uses&quot; clause in the generated Export-Package</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-458">FELIX-458</a></td><td>BND: -split-package:=merge-first behaves like merge-last</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-344">FELIX-344</a></td><td>Generate standard maven documentation for the maven-bundle-plugin</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-247">FELIX-247</a></td><td>Add ant goal to maven-bundle-plugin which creates a build.xml and MANIFEST.MF with bundle headers</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-498">FELIX-498</a></td><td>Enable javadoc deployment on OBR repository</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-462">FELIX-462</a></td><td>Support removal of manifest headers added by the bundleplugin</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-460">FELIX-460</a></td><td>Remove &quot;.&quot; from the Bundle-ClassPath when embedding dependencies in a bundle with no local classes</td><td>Closed</td><td>Fixed</td><td>Stuart McCulloch</td></tr></table></div>
       </div>
     </div>
     <div class="clear">
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/license.html b/bundleplugin/doc/site/license.html
index d62b789..823c92b 100644
--- a/bundleplugin/doc/site/license.html
+++ b/bundleplugin/doc/site/license.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -27,7 +27,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -309,7 +309,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/mail-lists.html b/bundleplugin/doc/site/mail-lists.html
index 99e2a08..a084486 100644
--- a/bundleplugin/doc/site/mail-lists.html
+++ b/bundleplugin/doc/site/mail-lists.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -27,7 +27,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -107,7 +107,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/manifest-mojo.html b/bundleplugin/doc/site/manifest-mojo.html
index 7331269..36c4fd0 100644
--- a/bundleplugin/doc/site/manifest-mojo.html
+++ b/bundleplugin/doc/site/manifest-mojo.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -11,7 +11,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -28,7 +28,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -90,7 +90,7 @@
         <li>Requires a Maven project to be executed.</li>
         <li>Requires dependency resolution of artifacts in scope: <tt>test</tt>.</li>
         <li>The goal is thread-safe and supports parallel builds.</li>
-        <li>Binds by default to the lifecycle phase: <tt>process-classes</tt>.</li>
+        <li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <tt>process-classes</tt>.</li>
       </ul>
       <div class="section"><h3>Required Parameters<a name="Required_Parameters"></a></h3>
         <table class="bodyTable" border="0">
@@ -104,13 +104,13 @@
             <td><b><a href="#buildDirectory">buildDirectory</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>The directory for the generated JAR.<br /></td>
+            <td>The directory for the generated JAR.<br /><b>User property is</b>: <tt>project.build.directory</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#outputDirectory">outputDirectory</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>The directory for the generated bundles.<br /></td>
+            <td>The directory for the generated bundles.<br /><b>User property is</b>: <tt>project.build.outputDirectory</tt>.</td>
           </tr>
         </table>
       </div>
@@ -140,39 +140,52 @@
             <td><b><a href="#dumpClasspath">dumpClasspath</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>File where the BND class-path will be dumped<br /></td>
+            <td>File where the BND class-path will be dumped<br /><b>User property is</b>: <tt>dumpClasspath</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#dumpInstructions">dumpInstructions</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>File where the BND instructions will be dumped<br /></td>
+            <td>File where the BND instructions will be dumped<br /><b>User property is</b>: <tt>dumpInstructions</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#excludeDependencies">excludeDependencies</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
             <td>Comma separated list of artifactIds to exclude from the dependency
-classpath passed to BND (use &quot;true&quot; to exclude everything)<br /></td>
+classpath passed to BND (use &quot;true&quot; to exclude everything)<br /><b>User property is</b>: <tt>excludeDependencies</tt>.</td>
           </tr>
           <tr class="a">
+            <td><b><a href="#finalName">finalName</a></b></td>
+            <td><tt>String</tt></td>
+            <td><tt>-</tt></td>
+            <td>Final name of the bundle (without classifier or extension)<br /><b>User property is</b>: <tt>project.build.finalName</tt>.</td>
+          </tr>
+          <tr class="b">
             <td><b><a href="#instructions">instructions</a></b></td>
             <td><tt>Map</tt></td>
             <td><tt>-</tt></td>
             <td>The BND instructions for the bundle.<br /></td>
           </tr>
-          <tr class="b">
+          <tr class="a">
             <td><b><a href="#manifestLocation">manifestLocation</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>Directory where the manifest will be written<br /><b>Default value is</b>: <tt>${project.build.outputDirectory}/META-INF</tt>.</td>
+            <td>Directory where the manifest will be written<br /><b>Default value is</b>: <tt>${project.build.outputDirectory}/META-INF</tt>.<br /><b>User property is</b>: <tt>manifestLocation</tt>.</td>
+          </tr>
+          <tr class="b">
+            <td><b><a href="#packaging">packaging</a></b></td>
+            <td><tt>String</tt></td>
+            <td><tt>-</tt></td>
+            <td>Packaging type of the bundle to be installed. For example, &quot;jar&quot;.
+Defaults to none which means use the same packaging as the project.<br /></td>
           </tr>
           <tr class="a">
             <td><b><a href="#rebuildBundle">rebuildBundle</a></b></td>
             <td><tt>boolean</tt></td>
             <td><tt>-</tt></td>
             <td>When true, generate the manifest by rebuilding the full bundle in
-memory<br /></td>
+memory<br /><b>User property is</b>: <tt>rebuildBundle</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
@@ -184,7 +197,7 @@
             <td><b><a href="#unpackBundle">unpackBundle</a></b></td>
             <td><tt>boolean</tt></td>
             <td><tt>-</tt></td>
-            <td>When true, unpack the bundle contents to the outputDirectory<br /></td>
+            <td>When true, unpack the bundle contents to the outputDirectory<br /><b>User property is</b>: <tt>unpackBundle</tt>.</td>
           </tr>
         </table>
       </div>
@@ -199,7 +212,7 @@
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>Yes</tt></li>
-          <li><b>Expression</b>: <tt>${project.build.directory}</tt></li>
+          <li><b>User Property</b>: <tt>project.build.directory</tt></li>
         </ul><hr /><p><b><a name="classifier">classifier</a>:</b></p>
         <div>Classifier type of the bundle to be installed. For example,
 &quot;jdk14&quot;. Defaults to none which means this is the project's main
@@ -212,20 +225,26 @@
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${dumpClasspath}</tt></li>
+          <li><b>User Property</b>: <tt>dumpClasspath</tt></li>
         </ul><hr /><p><b><a name="dumpInstructions">dumpInstructions</a>:</b></p>
         <div>File where the BND instructions will be dumped</div>
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${dumpInstructions}</tt></li>
+          <li><b>User Property</b>: <tt>dumpInstructions</tt></li>
         </ul><hr /><p><b><a name="excludeDependencies">excludeDependencies</a>:</b></p>
         <div>Comma separated list of artifactIds to exclude from the dependency
 classpath passed to BND (use &quot;true&quot; to exclude everything)</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${excludeDependencies}</tt></li>
+          <li><b>User Property</b>: <tt>excludeDependencies</tt></li>
+        </ul><hr /><p><b><a name="finalName">finalName</a>:</b></p>
+        <div>Final name of the bundle (without classifier or extension)</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.lang.String</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+          <li><b>User Property</b>: <tt>project.build.finalName</tt></li>
         </ul><hr /><p><b><a name="instructions">instructions</a>:</b></p>
         <div>The BND instructions for the bundle.</div>
         <ul>
@@ -236,21 +255,27 @@
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${manifestLocation}</tt></li>
+          <li><b>User Property</b>: <tt>manifestLocation</tt></li>
           <li><b>Default</b>: <tt>${project.build.outputDirectory}/META-INF</tt></li>
         </ul><hr /><p><b><a name="outputDirectory">outputDirectory</a>:</b></p>
         <div>The directory for the generated bundles.</div>
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>Yes</tt></li>
-          <li><b>Expression</b>: <tt>${project.build.outputDirectory}</tt></li>
+          <li><b>User Property</b>: <tt>project.build.outputDirectory</tt></li>
+        </ul><hr /><p><b><a name="packaging">packaging</a>:</b></p>
+        <div>Packaging type of the bundle to be installed. For example, &quot;jar&quot;.
+Defaults to none which means use the same packaging as the project.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.lang.String</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
         </ul><hr /><p><b><a name="rebuildBundle">rebuildBundle</a>:</b></p>
         <div>When true, generate the manifest by rebuilding the full bundle in
 memory</div>
         <ul>
           <li><b>Type</b>: <tt>boolean</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${rebuildBundle}</tt></li>
+          <li><b>User Property</b>: <tt>rebuildBundle</tt></li>
         </ul><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
         <div>Project types which this plugin supports.</div>
         <ul>
@@ -261,7 +286,7 @@
         <ul>
           <li><b>Type</b>: <tt>boolean</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${unpackBundle}</tt></li>
+          <li><b>User Property</b>: <tt>unpackBundle</tt></li>
         </ul>
       </div>
     </div>
@@ -273,7 +298,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/plugin-info.html b/bundleplugin/doc/site/plugin-info.html
index 46892a6..c103ad8 100644
--- a/bundleplugin/doc/site/plugin-info.html
+++ b/bundleplugin/doc/site/plugin-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -27,7 +27,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -94,14 +94,14 @@
     </div>
     <div id="bodyColumn">
       <div id="contentBox">
-        <a name="Plugin_Documentation"></a><div class="section"><h2>Plugin Documentation<a name="Plugin_Documentation"></a></h2><p>Goals available for this plugin:</p><table border="0" class="bodyTable"><tr class="a"><th>Goal</th><th>Description</th></tr><tr class="b"><td><a href="ant-mojo.html">bundle:ant</a></td><td>Generate Ant script to create the bundle (you should run ant:ant
+        <div class="section"><h2>Plugin Documentation<a name="Plugin_Documentation"></a></h2><a name="Plugin_Documentation"></a><p>Goals available for this plugin:</p><table border="0" class="bodyTable"><tr class="a"><th>Goal</th><th>Description</th></tr><tr class="b"><td><a href="ant-mojo.html">bundle:ant</a></td><td>Generate Ant script to create the bundle (you should run ant:ant
 first).</td></tr><tr class="a"><td><a href="bundle-mojo.html">bundle:bundle</a></td><td>Create an OSGi bundle from Maven project</td></tr><tr class="b"><td><a href="bundleall-mojo.html">bundle:bundleall</a></td><td><strong>Deprecated.</strong> The bundleall goal is no longer supported and may be removed in a
 future release</td></tr><tr class="a"><td><a href="clean-mojo.html">bundle:clean</a></td><td>Clean an OBR repository by finding and removing missing resources.</td></tr><tr class="b"><td><a href="cleanVersions-mojo.html">bundle:cleanVersions</a></td><td>No description.</td></tr><tr class="a"><td><a href="deploy-mojo.html">bundle:deploy</a></td><td>Deploys bundle details to a remote OBR repository (life-cycle goal)</td></tr><tr class="b"><td><a href="deploy-file-mojo.html">bundle:deploy-file</a></td><td>Deploys bundle details to a remote OBR repository (command-line
 goal)</td></tr><tr class="a"><td><a href="index-mojo.html">bundle:index</a></td><td>Index the content of a maven repository using OBR</td></tr><tr class="b"><td><a href="install-mojo.html">bundle:install</a></td><td>Installs bundle details in the local OBR repository (life-cycle
 goal)</td></tr><tr class="a"><td><a href="install-file-mojo.html">bundle:install-file</a></td><td>Installs bundle details in the local OBR repository (command-line
 goal)</td></tr><tr class="b"><td><a href="instructions-mojo.html">bundle:instructions</a></td><td>Generate BND instructions for this project</td></tr><tr class="a"><td><a href="manifest-mojo.html">bundle:manifest</a></td><td>Generate an OSGi manifest for this project</td></tr><tr class="b"><td><a href="remote-clean-mojo.html">bundle:remote-clean</a></td><td>Clean a remote repository file. It just looks for every resources
 and check that pointed file exists.</td></tr><tr class="a"><td><a href="wrap-mojo.html">bundle:wrap</a></td><td><strong>Deprecated.</strong> The wrap goal is no longer supported and may be removed in a future
-release</td></tr></table><a name="System_Requirements"></a><div class="section"><h3>System Requirements<a name="System_Requirements"></a></h3><p>The following specifies the minimum requirements to run this Maven plugin:</p><table border="0" class="bodyTable"><tr class="b"><td>Maven</td><td>2.0</td></tr><tr class="a"><td>JDK</td><td>1.5</td></tr><tr class="b"><td>Memory</td><td>No minimum requirement.</td></tr><tr class="a"><td>Disk Space</td><td>No minimum requirement.</td></tr></table></div><a name="Usage"></a><div class="section"><h3>Usage<a name="Usage"></a></h3><p>You should specify the version in your project's plugin configuration:</p><div class="source"><pre>&lt;project&gt;
+release</td></tr></table><div class="section"><h3>System Requirements<a name="System_Requirements"></a></h3><a name="System_Requirements"></a><p>The following specifies the minimum requirements to run this Maven plugin:</p><table border="0" class="bodyTable"><tr class="a"><td>Maven</td><td>2.0</td></tr><tr class="b"><td>JDK</td><td>1.5</td></tr><tr class="a"><td>Memory</td><td>No minimum requirement.</td></tr><tr class="b"><td>Disk Space</td><td>No minimum requirement.</td></tr></table></div><div class="section"><h3>Usage<a name="Usage"></a></h3><a name="Usage"></a><p>You should specify the version in your project's plugin configuration:</p><div class="source"><pre>&lt;project&gt;
   ...
   &lt;build&gt;
     &lt;!-- To define the plugin version in your parent POM --&gt;
@@ -134,7 +134,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/project-info.html b/bundleplugin/doc/site/project-info.html
index 24b52bb..35226ad 100644
--- a/bundleplugin/doc/site/project-info.html
+++ b/bundleplugin/doc/site/project-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -27,7 +27,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -110,7 +110,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/project-reports.html b/bundleplugin/doc/site/project-reports.html
index 4d95ff6..d5aee44 100644
--- a/bundleplugin/doc/site/project-reports.html
+++ b/bundleplugin/doc/site/project-reports.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -27,7 +27,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -101,7 +101,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/remote-clean-mojo.html b/bundleplugin/doc/site/remote-clean-mojo.html
index 25fad8b..3d45d6e 100644
--- a/bundleplugin/doc/site/remote-clean-mojo.html
+++ b/bundleplugin/doc/site/remote-clean-mojo.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -11,7 +11,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -28,7 +28,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -88,7 +88,7 @@
 and check that pointed file exists.</div>
       <p><b>Attributes</b>:</p>
       <ul>
-        <li>Binds by default to the lifecycle phase: <tt>clean</tt>.</li>
+        <li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <tt>clean</tt>.</li>
       </ul>
       <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
         <table class="bodyTable" border="0">
@@ -102,37 +102,37 @@
             <td><b><a href="#altDeploymentRepository">altDeploymentRepository</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Alternative deployment repository. Format: id::layout::url<br /></td>
+            <td>Alternative deployment repository. Format: id::layout::url<br /><b>User property is</b>: <tt>altDeploymentRepository</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#ignoreLock">ignoreLock</a></b></td>
             <td><tt>boolean</tt></td>
             <td><tt>-</tt></td>
-            <td>When true, ignore remote locking.<br /></td>
+            <td>When true, ignore remote locking.<br /><b>User property is</b>: <tt>ignoreLock</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#obrDeploymentRepository">obrDeploymentRepository</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>OBR specific deployment repository. Format: id::layout::url<br /></td>
+            <td>OBR specific deployment repository. Format: id::layout::url<br /><b>User property is</b>: <tt>obrDeploymentRepository</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#obrRepository">obrRepository</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Local OBR Repository.<br /></td>
+            <td>Local OBR Repository.<br /><b>User property is</b>: <tt>obrRepository</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#prefixUrl">prefixUrl</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Optional public URL prefix for the remote repository.<br /></td>
+            <td>Optional public URL prefix for the remote repository.<br /><b>User property is</b>: <tt>prefixUrl</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#remoteOBR">remoteOBR</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Remote OBR Repository.<br /><b>Default value is</b>: <tt>NONE</tt>.</td>
+            <td>Remote OBR Repository.<br /><b>Default value is</b>: <tt>NONE</tt>.<br /><b>User property is</b>: <tt>remoteOBR</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
@@ -148,37 +148,37 @@
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${altDeploymentRepository}</tt></li>
+          <li><b>User Property</b>: <tt>altDeploymentRepository</tt></li>
         </ul><hr /><p><b><a name="ignoreLock">ignoreLock</a>:</b></p>
         <div>When true, ignore remote locking.</div>
         <ul>
           <li><b>Type</b>: <tt>boolean</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${ignoreLock}</tt></li>
+          <li><b>User Property</b>: <tt>ignoreLock</tt></li>
         </ul><hr /><p><b><a name="obrDeploymentRepository">obrDeploymentRepository</a>:</b></p>
         <div>OBR specific deployment repository. Format: id::layout::url</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${obrDeploymentRepository}</tt></li>
+          <li><b>User Property</b>: <tt>obrDeploymentRepository</tt></li>
         </ul><hr /><p><b><a name="obrRepository">obrRepository</a>:</b></p>
         <div>Local OBR Repository.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${obrRepository}</tt></li>
+          <li><b>User Property</b>: <tt>obrRepository</tt></li>
         </ul><hr /><p><b><a name="prefixUrl">prefixUrl</a>:</b></p>
         <div>Optional public URL prefix for the remote repository.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${prefixUrl}</tt></li>
+          <li><b>User Property</b>: <tt>prefixUrl</tt></li>
         </ul><hr /><p><b><a name="remoteOBR">remoteOBR</a>:</b></p>
         <div>Remote OBR Repository.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${remoteOBR}</tt></li>
+          <li><b>User Property</b>: <tt>remoteOBR</tt></li>
           <li><b>Default</b>: <tt>NONE</tt></li>
         </ul><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
         <div>Project types which this plugin supports.</div>
@@ -196,7 +196,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/source-repository.html b/bundleplugin/doc/site/source-repository.html
index 6155ce2..955f2cf 100644
--- a/bundleplugin/doc/site/source-repository.html
+++ b/bundleplugin/doc/site/source-repository.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -27,7 +27,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -110,7 +110,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/surefire-report.html b/bundleplugin/doc/site/surefire-report.html
index 564315c..7c8c791 100644
--- a/bundleplugin/doc/site/surefire-report.html
+++ b/bundleplugin/doc/site/surefire-report.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -27,7 +27,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -94,14 +94,14 @@
     </div>
     <div id="bodyColumn">
       <div id="contentBox">
-        <div class="section"><h2>Surefire Report<a name="Surefire_Report"></a></h2></div><div class="section"><h2><a name="Summary"></a>Summary<a name="Summary"></a></h2><div class="section">[<a href="#Summary">Summary</a>] [<a href="#Package_List">Package List</a>] [<a href="#Test_Cases">Test Cases</a>]</div><br /><table border="0" class="bodyTable"><tr class="a"><th>Tests</th><th>Errors </th><th>Failures</th><th>Skipped</th><th>Success Rate</th><th>Time</th></tr><tr class="b"><td>15</td><td>0</td><td>0</td><td>0</td><td>100%</td><td>2.621</td></tr></table><br />Note: failures are anticipated and checked for with assertions while errors are unanticipated.<br /></div><div class="section"><h2><a name="Package_List"></a>Package List<a name="Package_List"></a></h2><div class="section">[<a href="#Summary">Summary</a>] [<a href="#Package_List">Package List</a>] [<a href="#Test_Cases">Test Cases</a>]</div><br /><table border="0" class="bodyTable"><tr class="a"><th>Package</th><th>Tests</th><th>Errors </th><th>Failures</th><th>Skipped</th><th>Success Rate</th><th>Time</th></tr><tr class="b"><td><a href="#org.apache.felix.bundleplugin">org.apache.felix.bundleplugin</a></td><td>15</td><td>0</td><td>0</td><td>0</td><td>100%</td><td>2.621</td></tr></table><br />Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.<div class="section"><h3><a name="org.apache.felix.bundleplugin"></a>org.apache.felix.bundleplugin<a name="org.apache.felix.bundleplugin"></a></h3><table border="0" class="bodyTable"><tr class="a"><th></th><th>Class</th><th>Tests</th><th>Errors </th><th>Failures</th><th>Skipped</th><th>Success Rate</th><th>Time</th></tr><tr class="b"><td><a href="#org.apache.felix.bundlepluginBlueprintComponentTest"><img src="images/icon_success_sml.gif" alt="" /></a></td><td><a href="#org.apache.felix.bundlepluginBlueprintComponentTest">BlueprintComponentTest</a></td><td>1</td><td>0</td><td>0</td><td>0</td><td>100%</td><td>0.643</td></tr><tr class="a"><td><a href="#org.apache.felix.bundlepluginBundleAllPluginTest"><img src="images/icon_success_sml.gif" alt="" /></a></td><td><a href="#org.apache.felix.bundlepluginBundleAllPluginTest">BundleAllPluginTest</a></td><td>2</td><td>0</td><td>0</td><td>0</td><td>100%</td><td>0.877</td></tr><tr class="b"><td><a href="#org.apache.felix.bundlepluginBundlePluginTest"><img src="images/icon_success_sml.gif" alt="" /></a></td><td><a href="#org.apache.felix.bundlepluginBundlePluginTest">BundlePluginTest</a></td><td>12</td><td>0</td><td>0</td><td>0</td><td>100%</td><td>1.101</td></tr></table></div><br /></div><div class="section"><h2><a name="Test_Cases"></a>Test Cases<a name="Test_Cases"></a></h2><div class="section">[<a href="#Summary">Summary</a>] [<a href="#Package_List">Package List</a>] [<a href="#Test_Cases">Test Cases</a>]</div><div class="section"><h3><a name="org.apache.felix.bundlepluginBlueprintComponentTest"></a>BlueprintComponentTest<a name="BlueprintComponentTest"></a></h3><table border="0" class="bodyTable"><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testBlueprint</td><td>0.598</td></tr></table></div><div class="section"><h3><a name="org.apache.felix.bundlepluginBundleAllPluginTest"></a>BundleAllPluginTest<a name="BundleAllPluginTest"></a></h3><table border="0" class="bodyTable"><tr class="b"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testSnapshotMatch</td><td>0.381</td></tr><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testNoReBundling</td><td>0.491</td></tr></table></div><div class="section"><h3><a name="org.apache.felix.bundlepluginBundlePluginTest"></a>BundlePluginTest<a name="BundlePluginTest"></a></h3><table border="0" class="bodyTable"><tr class="b"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testConvertVersionToOsgi</td><td>0.06</td></tr><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testReadExportedModules</td><td>0.15</td></tr><tr class="b"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testTransformDirectives</td><td>0.054</td></tr><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testDefaultPropertiesIncludeOrganization</td><td>0.061</td></tr><tr class="b"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testVersion</td><td>0.045</td></tr><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testPackageInfoDetection</td><td>0.066</td></tr><tr class="b"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testEmbedDependencyPositiveClauses</td><td>0.123</td></tr><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testEmbedDependencyNegativeClauses</td><td>0.099</td></tr><tr class="b"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testEmbedDependencyDuplicateKeys</td><td>0.111</td></tr><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testEmbedDependencyMissingPositiveKey</td><td>0.117</td></tr><tr class="b"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testEmbedDependencyMissingNegativeKey</td><td>0.164</td></tr><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testPropertySanitizing</td><td>0.028</td></tr></table></div><br /></div><br />
+        <div class="section"><h2>Surefire Report<a name="Surefire_Report"></a></h2></div><div class="section"><h2><a name="Summary"></a>Summary<a name="Summary"></a></h2><div class="section">[<a href="#Summary">Summary</a>] [<a href="#Package_List">Package List</a>] [<a href="#Test_Cases">Test Cases</a>]</div><br /><table border="0" class="bodyTable"><tr class="a"><th>Tests</th><th>Errors </th><th>Failures</th><th>Skipped</th><th>Success Rate</th><th>Time</th></tr><tr class="b"><td>19</td><td>0</td><td>0</td><td>0</td><td>100%</td><td>4.102</td></tr></table><br />Note: failures are anticipated and checked for with assertions while errors are unanticipated.<br /></div><div class="section"><h2><a name="Package_List"></a>Package List<a name="Package_List"></a></h2><div class="section">[<a href="#Summary">Summary</a>] [<a href="#Package_List">Package List</a>] [<a href="#Test_Cases">Test Cases</a>]</div><br /><table border="0" class="bodyTable"><tr class="a"><th>Package</th><th>Tests</th><th>Errors </th><th>Failures</th><th>Skipped</th><th>Success Rate</th><th>Time</th></tr><tr class="b"><td><a href="#org.apache.maven.shared.osgi">org.apache.maven.shared.osgi</a></td><td>4</td><td>0</td><td>0</td><td>0</td><td>100%</td><td>0.229</td></tr><tr class="a"><td><a href="#org.apache.felix.bundleplugin">org.apache.felix.bundleplugin</a></td><td>15</td><td>0</td><td>0</td><td>0</td><td>100%</td><td>3.873</td></tr></table><br />Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.<div class="section"><h3><a name="org.apache.maven.shared.osgi"></a>org.apache.maven.shared.osgi<a name="org.apache.maven.shared.osgi"></a></h3><table border="0" class="bodyTable"><tr class="b"><th></th><th>Class</th><th>Tests</th><th>Errors </th><th>Failures</th><th>Skipped</th><th>Success Rate</th><th>Time</th></tr><tr class="a"><td><a href="#org.apache.maven.shared.osgiMaven2OsgiConverterTest"><img src="images/icon_success_sml.gif" alt="" /></a></td><td><a href="#org.apache.maven.shared.osgiMaven2OsgiConverterTest">Maven2OsgiConverterTest</a></td><td>4</td><td>0</td><td>0</td><td>0</td><td>100%</td><td>0.229</td></tr></table></div><div class="section"><h3><a name="org.apache.felix.bundleplugin"></a>org.apache.felix.bundleplugin<a name="org.apache.felix.bundleplugin"></a></h3><table border="0" class="bodyTable"><tr class="b"><th></th><th>Class</th><th>Tests</th><th>Errors </th><th>Failures</th><th>Skipped</th><th>Success Rate</th><th>Time</th></tr><tr class="a"><td><a href="#org.apache.felix.bundlepluginBlueprintComponentTest"><img src="images/icon_success_sml.gif" alt="" /></a></td><td><a href="#org.apache.felix.bundlepluginBlueprintComponentTest">BlueprintComponentTest</a></td><td>1</td><td>0</td><td>0</td><td>0</td><td>100%</td><td>0.84</td></tr><tr class="b"><td><a href="#org.apache.felix.bundlepluginBundleAllPluginTest"><img src="images/icon_success_sml.gif" alt="" /></a></td><td><a href="#org.apache.felix.bundlepluginBundleAllPluginTest">BundleAllPluginTest</a></td><td>2</td><td>0</td><td>0</td><td>0</td><td>100%</td><td>1.311</td></tr><tr class="a"><td><a href="#org.apache.felix.bundlepluginBundlePluginTest"><img src="images/icon_success_sml.gif" alt="" /></a></td><td><a href="#org.apache.felix.bundlepluginBundlePluginTest">BundlePluginTest</a></td><td>12</td><td>0</td><td>0</td><td>0</td><td>100%</td><td>1.722</td></tr></table></div><br /></div><div class="section"><h2><a name="Test_Cases"></a>Test Cases<a name="Test_Cases"></a></h2><div class="section">[<a href="#Summary">Summary</a>] [<a href="#Package_List">Package List</a>] [<a href="#Test_Cases">Test Cases</a>]</div><div class="section"><h3><a name="org.apache.felix.bundlepluginBlueprintComponentTest"></a>BlueprintComponentTest<a name="BlueprintComponentTest"></a></h3><table border="0" class="bodyTable"><tr class="b"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testBlueprint</td><td>0.791</td></tr></table></div><div class="section"><h3><a name="org.apache.felix.bundlepluginBundleAllPluginTest"></a>BundleAllPluginTest<a name="BundleAllPluginTest"></a></h3><table border="0" class="bodyTable"><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testSnapshotMatch</td><td>0.518</td></tr><tr class="b"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testNoReBundling</td><td>0.787</td></tr></table></div><div class="section"><h3><a name="org.apache.felix.bundlepluginBundlePluginTest"></a>BundlePluginTest<a name="BundlePluginTest"></a></h3><table border="0" class="bodyTable"><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testConvertVersionToOsgi</td><td>0.195</td></tr><tr class="b"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testReadExportedModules</td><td>0.284</td></tr><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testTransformDirectives</td><td>0.099</td></tr><tr class="b"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testDefaultPropertiesIncludeOrganization</td><td>0.097</td></tr><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testVersion</td><td>0.078</td></tr><tr class="b"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testPackageInfoDetection</td><td>0.085</td></tr><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testEmbedDependencyPositiveClauses</td><td>0.166</td></tr><tr class="b"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testEmbedDependencyNegativeClauses</td><td>0.131</td></tr><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testEmbedDependencyDuplicateKeys</td><td>0.136</td></tr><tr class="b"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testEmbedDependencyMissingPositiveKey</td><td>0.136</td></tr><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testEmbedDependencyMissingNegativeKey</td><td>0.254</td></tr><tr class="b"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testPropertySanitizing</td><td>0.048</td></tr></table></div><div class="section"><h3><a name="org.apache.maven.shared.osgiMaven2OsgiConverterTest"></a>Maven2OsgiConverterTest<a name="Maven2OsgiConverterTest"></a></h3><table border="0" class="bodyTable"><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testConvertVersionToOsgi</td><td>0.067</td></tr><tr class="b"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testGetBundleSymbolicName</td><td>0.072</td></tr><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testGetBundleFileName</td><td>0.038</td></tr><tr class="b"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testGetVersion</td><td>0.049</td></tr></table></div><br /></div><br />
       </div>
     </div>
     <div class="clear">
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/team-list.html b/bundleplugin/doc/site/team-list.html
index 086c0ac..b38ef36 100644
--- a/bundleplugin/doc/site/team-list.html
+++ b/bundleplugin/doc/site/team-list.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -27,7 +27,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -122,7 +122,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/wrap-mojo.html b/bundleplugin/doc/site/wrap-mojo.html
index 2b63194..ee5a3ee 100644
--- a/bundleplugin/doc/site/wrap-mojo.html
+++ b/bundleplugin/doc/site/wrap-mojo.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Feb 11, 2012 -->
+<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -11,7 +11,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20120211" />
+    <meta name="Date-Revision-yyyymmdd" content="20130608" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -28,7 +28,7 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2012-02-11</span>
+        <span id="publishDate">Last Published: 2013-06-08</span>
                   &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
                       </div>
             <div class="xright">        
@@ -93,7 +93,7 @@
         <li>Requires a Maven project to be executed.</li>
         <li>Requires dependency resolution of artifacts in scope: <tt>test</tt>.</li>
         <li>The goal is thread-safe and supports parallel builds.</li>
-        <li>Binds by default to the lifecycle phase: <tt>package</tt>.</li>
+        <li>Binds by default to the <a class="externalLink" href="http://maven.apache.org/ref/current/maven-core/lifecycles.html">lifecycle phase</a>: <tt>package</tt>.</li>
       </ul>
       <div class="section"><h3>Required Parameters<a name="Required_Parameters"></a></h3>
         <table class="bodyTable" border="0">
@@ -107,13 +107,13 @@
             <td><b><a href="#buildDirectory">buildDirectory</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>The directory for the generated JAR.<br /></td>
+            <td>The directory for the generated JAR.<br /><b>User property is</b>: <tt>project.build.directory</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#outputDirectory">outputDirectory</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>The directory for the generated bundles.<br /></td>
+            <td>The directory for the generated bundles.<br /><b>User property is</b>: <tt>project.build.outputDirectory</tt>.</td>
           </tr>
         </table>
       </div>
@@ -149,46 +149,59 @@
             <td><b><a href="#dumpClasspath">dumpClasspath</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>File where the BND class-path will be dumped<br /></td>
+            <td>File where the BND class-path will be dumped<br /><b>User property is</b>: <tt>dumpClasspath</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#dumpInstructions">dumpInstructions</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>File where the BND instructions will be dumped<br /></td>
+            <td>File where the BND instructions will be dumped<br /><b>User property is</b>: <tt>dumpInstructions</tt>.</td>
           </tr>
           <tr class="a">
             <td><b><a href="#excludeDependencies">excludeDependencies</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
             <td>Comma separated list of artifactIds to exclude from the dependency
-classpath passed to BND (use &quot;true&quot; to exclude everything)<br /></td>
+classpath passed to BND (use &quot;true&quot; to exclude everything)<br /><b>User property is</b>: <tt>excludeDependencies</tt>.</td>
           </tr>
           <tr class="b">
+            <td><b><a href="#finalName">finalName</a></b></td>
+            <td><tt>String</tt></td>
+            <td><tt>-</tt></td>
+            <td>Final name of the bundle (without classifier or extension)<br /><b>User property is</b>: <tt>project.build.finalName</tt>.</td>
+          </tr>
+          <tr class="a">
             <td><b><a href="#ignoreMissingArtifacts">ignoreMissingArtifacts</a></b></td>
             <td><tt>boolean</tt></td>
             <td><tt>-</tt></td>
             <td>Ignore missing artifacts that are not required by current project
 but are required by the transitive dependencies.<br /></td>
           </tr>
-          <tr class="a">
+          <tr class="b">
             <td><b><a href="#instructions">instructions</a></b></td>
             <td><tt>Map</tt></td>
             <td><tt>-</tt></td>
             <td>The BND instructions for the bundle.<br /></td>
           </tr>
-          <tr class="b">
+          <tr class="a">
             <td><b><a href="#manifestLocation">manifestLocation</a></b></td>
             <td><tt>File</tt></td>
             <td><tt>-</tt></td>
-            <td>Directory where the manifest will be written<br /><b>Default value is</b>: <tt>${project.build.outputDirectory}/META-INF</tt>.</td>
+            <td>Directory where the manifest will be written<br /><b>Default value is</b>: <tt>${project.build.outputDirectory}/META-INF</tt>.<br /><b>User property is</b>: <tt>manifestLocation</tt>.</td>
+          </tr>
+          <tr class="b">
+            <td><b><a href="#packaging">packaging</a></b></td>
+            <td><tt>String</tt></td>
+            <td><tt>-</tt></td>
+            <td>Packaging type of the bundle to be installed. For example, &quot;jar&quot;.
+Defaults to none which means use the same packaging as the project.<br /></td>
           </tr>
           <tr class="a">
             <td><b><a href="#rebuildBundle">rebuildBundle</a></b></td>
             <td><tt>boolean</tt></td>
             <td><tt>-</tt></td>
             <td>When true, generate the manifest by rebuilding the full bundle in
-memory<br /></td>
+memory<br /><b>User property is</b>: <tt>rebuildBundle</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
@@ -200,13 +213,13 @@
             <td><b><a href="#unpackBundle">unpackBundle</a></b></td>
             <td><tt>boolean</tt></td>
             <td><tt>-</tt></td>
-            <td>When true, unpack the bundle contents to the outputDirectory<br /></td>
+            <td>When true, unpack the bundle contents to the outputDirectory<br /><b>User property is</b>: <tt>unpackBundle</tt>.</td>
           </tr>
           <tr class="b">
             <td><b><a href="#wrapImportPackage">wrapImportPackage</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
-            <td>Import-Package to be used when wrapping dependencies.<br /><b>Default value is</b>: <tt>*</tt>.</td>
+            <td>Import-Package to be used when wrapping dependencies.<br /><b>Default value is</b>: <tt>*</tt>.<br /><b>User property is</b>: <tt>wrapImportPackage</tt>.</td>
           </tr>
         </table>
       </div>
@@ -221,7 +234,7 @@
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>Yes</tt></li>
-          <li><b>Expression</b>: <tt>${project.build.directory}</tt></li>
+          <li><b>User Property</b>: <tt>project.build.directory</tt></li>
         </ul><hr /><p><b><a name="classifier">classifier</a>:</b></p>
         <div>Classifier type of the bundle to be installed. For example,
 &quot;jdk14&quot;. Defaults to none which means this is the project's main
@@ -239,20 +252,26 @@
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${dumpClasspath}</tt></li>
+          <li><b>User Property</b>: <tt>dumpClasspath</tt></li>
         </ul><hr /><p><b><a name="dumpInstructions">dumpInstructions</a>:</b></p>
         <div>File where the BND instructions will be dumped</div>
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${dumpInstructions}</tt></li>
+          <li><b>User Property</b>: <tt>dumpInstructions</tt></li>
         </ul><hr /><p><b><a name="excludeDependencies">excludeDependencies</a>:</b></p>
         <div>Comma separated list of artifactIds to exclude from the dependency
 classpath passed to BND (use &quot;true&quot; to exclude everything)</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${excludeDependencies}</tt></li>
+          <li><b>User Property</b>: <tt>excludeDependencies</tt></li>
+        </ul><hr /><p><b><a name="finalName">finalName</a>:</b></p>
+        <div>Final name of the bundle (without classifier or extension)</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.lang.String</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+          <li><b>User Property</b>: <tt>project.build.finalName</tt></li>
         </ul><hr /><p><b><a name="ignoreMissingArtifacts">ignoreMissingArtifacts</a>:</b></p>
         <div>Ignore missing artifacts that are not required by current project
 but are required by the transitive dependencies.</div>
@@ -269,21 +288,27 @@
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${manifestLocation}</tt></li>
+          <li><b>User Property</b>: <tt>manifestLocation</tt></li>
           <li><b>Default</b>: <tt>${project.build.outputDirectory}/META-INF</tt></li>
         </ul><hr /><p><b><a name="outputDirectory">outputDirectory</a>:</b></p>
         <div>The directory for the generated bundles.</div>
         <ul>
           <li><b>Type</b>: <tt>java.io.File</tt></li>
           <li><b>Required</b>: <tt>Yes</tt></li>
-          <li><b>Expression</b>: <tt>${project.build.outputDirectory}</tt></li>
+          <li><b>User Property</b>: <tt>project.build.outputDirectory</tt></li>
+        </ul><hr /><p><b><a name="packaging">packaging</a>:</b></p>
+        <div>Packaging type of the bundle to be installed. For example, &quot;jar&quot;.
+Defaults to none which means use the same packaging as the project.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.lang.String</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
         </ul><hr /><p><b><a name="rebuildBundle">rebuildBundle</a>:</b></p>
         <div>When true, generate the manifest by rebuilding the full bundle in
 memory</div>
         <ul>
           <li><b>Type</b>: <tt>boolean</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${rebuildBundle}</tt></li>
+          <li><b>User Property</b>: <tt>rebuildBundle</tt></li>
         </ul><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
         <div>Project types which this plugin supports.</div>
         <ul>
@@ -294,13 +319,13 @@
         <ul>
           <li><b>Type</b>: <tt>boolean</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${unpackBundle}</tt></li>
+          <li><b>User Property</b>: <tt>unpackBundle</tt></li>
         </ul><hr /><p><b><a name="wrapImportPackage">wrapImportPackage</a>:</b></p>
         <div>Import-Package to be used when wrapping dependencies.</div>
         <ul>
           <li><b>Type</b>: <tt>java.lang.String</tt></li>
           <li><b>Required</b>: <tt>No</tt></li>
-          <li><b>Expression</b>: <tt>${wrapImportPackage}</tt></li>
+          <li><b>User Property</b>: <tt>wrapImportPackage</tt></li>
           <li><b>Default</b>: <tt>*</tt></li>
         </ul>
       </div>
@@ -313,7 +338,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2012
+      <div class="xright">Copyright &#169;                    2006-2013
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
diff --git a/bundleplugin/doc/site/xref-test/allclasses-frame.html b/bundleplugin/doc/site/xref-test/allclasses-frame.html
index db677f1..cd43697 100644
--- a/bundleplugin/doc/site/xref-test/allclasses-frame.html
+++ b/bundleplugin/doc/site/xref-test/allclasses-frame.html
@@ -26,6 +26,9 @@
 						<li>
 				<a href="org/apache/felix/bundleplugin/BundlePluginTest.html" target="classFrame">BundlePluginTest</a>
 			</li>
+						<li>
+				<a href="org/apache/maven/shared/osgi/Maven2OsgiConverterTest.html" target="classFrame">Maven2OsgiConverterTest</a>
+			</li>
 			      </ul>
 
     </body>
diff --git a/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/BlueprintComponentTest.html b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/BlueprintComponentTest.html
index df977ef..d8d9a06 100644
--- a/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/BlueprintComponentTest.html
+++ b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/BlueprintComponentTest.html
@@ -44,7 +44,7 @@
 <a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.testing.stubs.MavenProjectStub;
 <a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.osgi.framework.Constants;
 <a name="36" href="#36">36</a>  
-<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Builder;
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Builder;
 <a name="38" href="#38">38</a>  
 <a name="39" href="#39">39</a>  
 <a name="40" href="#40">40</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/BlueprintComponentTest.html">BlueprintComponentTest</a> <strong class="jxr_keyword">extends</strong> TestCase
diff --git a/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/BundlePluginTest.html b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/BundlePluginTest.html
index 777f5cf..ca1eae8 100644
--- a/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/BundlePluginTest.html
+++ b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/BundlePluginTest.html
@@ -47,9 +47,9 @@
 <a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.DefaultMaven2OsgiConverter;
 <a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.osgi.framework.Constants;
 <a name="39" href="#39">39</a>  
-<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
-<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Builder;
-<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
+<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Analyzer;
+<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Builder;
+<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Jar;
 <a name="43" href="#43">43</a>  
 <a name="44" href="#44">44</a>  
 <a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">/**</em>
@@ -134,7 +134,7 @@
 <a name="124" href="#124">124</a>             { jar } );
 <a name="125" href="#125">125</a> 
 <a name="126" href="#126">126</a>         analyzer.setProperty( Analyzer.EXPORT_PACKAGE, <span class="jxr_string">"*"</span> );
-<a name="127" href="#127">127</a>         analyzer.calcManifest();
+<a name="127" href="#127">127</a>         analyzer.getJar().setManifest( analyzer.calcManifest() );
 <a name="128" href="#128">128</a> 
 <a name="129" href="#129">129</a>         assertEquals( 3, analyzer.getExports().size() );
 <a name="130" href="#130">130</a> 
diff --git a/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/package-summary.html b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/package-summary.html
index b63d8da..936f8c5 100644
--- a/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/package-summary.html
+++ b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/package-summary.html
@@ -82,6 +82,6 @@
         	</ul>
       	</div>
 				<hr />
-		Copyright &copy; 2006-2012 The Apache Software Foundation. All Rights Reserved.
+		Copyright &copy; 2006-2013 The Apache Software Foundation. All Rights Reserved.
 	</body>
 </html>
\ No newline at end of file
diff --git a/bundleplugin/doc/site/xref-test/org/apache/maven/shared/osgi/Maven2OsgiConverterTest.html b/bundleplugin/doc/site/xref-test/org/apache/maven/shared/osgi/Maven2OsgiConverterTest.html
new file mode 100644
index 0000000..d4eb95e
--- /dev/null
+++ b/bundleplugin/doc/site/xref-test/org/apache/maven/shared/osgi/Maven2OsgiConverterTest.html
@@ -0,0 +1,188 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>Maven2OsgiConverterTest xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.maven.shared.osgi;
+<a name="2" href="#2">2</a>   
+<a name="3" href="#3">3</a>   <em class="jxr_comment">/*</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> *</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="19" href="#19">19</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="20" href="#20">20</a>  <em class="jxr_comment"> */</em>
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="23" href="#23">23</a>  
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.testing.stubs.ArtifactStub;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.PlexusTestCase;
+<a name="26" href="#26">26</a>  
+<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> * Test for {@link DefaultMaven2OsgiConverter}</em>
+<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:carlos@apache.org" target="alexandria_uri">mailto:carlos@apache.org</a>"&gt;Carlos Sanchez&lt;/a&gt;</em>
+<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> * @version $Id$</em>
+<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> Maven2OsgiConverterTest
+<a name="34" href="#34">34</a>      <strong class="jxr_keyword">extends</strong> PlexusTestCase
+<a name="35" href="#35">35</a>  {
+<a name="36" href="#36">36</a>  
+<a name="37" href="#37">37</a>      <strong class="jxr_keyword">private</strong> Maven2OsgiConverter maven2Osgi = <strong class="jxr_keyword">new</strong> DefaultMaven2OsgiConverter();
+<a name="38" href="#38">38</a>  
+<a name="39" href="#39">39</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetBundleSymbolicName()
+<a name="40" href="#40">40</a>      {
+<a name="41" href="#41">41</a>          ArtifactStub artifact = getTestArtifact();
+<a name="42" href="#42">42</a>          String s;
+<a name="43" href="#43">43</a>          s = maven2Osgi.getBundleSymbolicName( artifact );
+<a name="44" href="#44">44</a>          assertEquals( <span class="jxr_string">"org.apache.commons.logging"</span>, s );
+<a name="45" href="#45">45</a>  
+<a name="46" href="#46">46</a>          artifact.setGroupId( <span class="jxr_string">"org.apache.commons"</span> );
+<a name="47" href="#47">47</a>          s = maven2Osgi.getBundleSymbolicName( artifact );
+<a name="48" href="#48">48</a>          assertEquals( <span class="jxr_string">"org.apache.commons.logging"</span>, s );
+<a name="49" href="#49">49</a>  
+<a name="50" href="#50">50</a>          artifact.setGroupId( <span class="jxr_string">"org.apache.commons.commons-logging"</span> );
+<a name="51" href="#51">51</a>          s = maven2Osgi.getBundleSymbolicName( artifact );
+<a name="52" href="#52">52</a>          assertEquals( <span class="jxr_string">"org.apache.commons.commons-logging"</span>, s );
+<a name="53" href="#53">53</a>  
+<a name="54" href="#54">54</a>          artifact.setGroupId( <span class="jxr_string">"org.apache"</span> );
+<a name="55" href="#55">55</a>          artifact.setArtifactId( <span class="jxr_string">"org.apache.commons-logging"</span> );
+<a name="56" href="#56">56</a>          s = maven2Osgi.getBundleSymbolicName( artifact );
+<a name="57" href="#57">57</a>          assertEquals( <span class="jxr_string">"org.apache.commons-logging"</span>, s );
+<a name="58" href="#58">58</a>  
+<a name="59" href="#59">59</a>          artifact.setFile( getTestFile( <span class="jxr_string">"junit-3.8.2.jar"</span> ) );
+<a name="60" href="#60">60</a>          artifact.setGroupId( <span class="jxr_string">"junit"</span> );
+<a name="61" href="#61">61</a>          artifact.setArtifactId( <span class="jxr_string">"junit"</span> );
+<a name="62" href="#62">62</a>          s = maven2Osgi.getBundleSymbolicName( artifact );
+<a name="63" href="#63">63</a>          assertEquals( <span class="jxr_string">"junit"</span>, s );
+<a name="64" href="#64">64</a>  
+<a name="65" href="#65">65</a>          artifact.setFile( getTestFile( <span class="jxr_string">"xml-apis-1.0.b2.jar"</span> ) );
+<a name="66" href="#66">66</a>          artifact.setGroupId( <span class="jxr_string">"xml-apis"</span> );
+<a name="67" href="#67">67</a>          artifact.setArtifactId( <span class="jxr_string">"a"</span> );
+<a name="68" href="#68">68</a>          s = maven2Osgi.getBundleSymbolicName( artifact );
+<a name="69" href="#69">69</a>          assertEquals( <span class="jxr_string">"xml-apis.a"</span>, s );
+<a name="70" href="#70">70</a>  
+<a name="71" href="#71">71</a>          artifact.setFile( getTestFile( <span class="jxr_string">"test-1.jar"</span> ) );
+<a name="72" href="#72">72</a>          artifact.setGroupId( <span class="jxr_string">"test"</span> );
+<a name="73" href="#73">73</a>          artifact.setArtifactId( <span class="jxr_string">"test"</span> );
+<a name="74" href="#74">74</a>          s = maven2Osgi.getBundleSymbolicName( artifact );
+<a name="75" href="#75">75</a>          assertEquals( <span class="jxr_string">"test"</span>, s );
+<a name="76" href="#76">76</a>  
+<a name="77" href="#77">77</a>          artifact.setFile( getTestFile( <span class="jxr_string">"xercesImpl-2.6.2.jar"</span> ) );
+<a name="78" href="#78">78</a>          artifact.setGroupId( <span class="jxr_string">"xerces"</span> );
+<a name="79" href="#79">79</a>          artifact.setArtifactId( <span class="jxr_string">"xercesImpl"</span> );
+<a name="80" href="#80">80</a>          s = maven2Osgi.getBundleSymbolicName( artifact );
+<a name="81" href="#81">81</a>          assertEquals( <span class="jxr_string">"xerces.Impl"</span>, s );
+<a name="82" href="#82">82</a>  
+<a name="83" href="#83">83</a>          artifact.setFile( getTestFile( <span class="jxr_string">"aopalliance-1.0.jar"</span> ) );
+<a name="84" href="#84">84</a>          artifact.setGroupId( <span class="jxr_string">"org.aopalliance"</span> );
+<a name="85" href="#85">85</a>          artifact.setArtifactId( <span class="jxr_string">"aopalliance"</span> );
+<a name="86" href="#86">86</a>          s = maven2Osgi.getBundleSymbolicName( artifact );
+<a name="87" href="#87">87</a>          assertEquals( <span class="jxr_string">"org.aopalliance"</span>, s );
+<a name="88" href="#88">88</a>      }
+<a name="89" href="#89">89</a>  
+<a name="90" href="#90">90</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetBundleFileName()
+<a name="91" href="#91">91</a>      {
+<a name="92" href="#92">92</a>          ArtifactStub artifact = getTestArtifact();
+<a name="93" href="#93">93</a>          String s;
+<a name="94" href="#94">94</a>          s = maven2Osgi.getBundleFileName( artifact );
+<a name="95" href="#95">95</a>          assertEquals( <span class="jxr_string">"org.apache.commons.logging_1.1.0.jar"</span>, s );
+<a name="96" href="#96">96</a>  
+<a name="97" href="#97">97</a>          artifact.setGroupId( <span class="jxr_string">"org.aopalliance"</span> );
+<a name="98" href="#98">98</a>          artifact.setArtifactId( <span class="jxr_string">"aopalliance"</span> );
+<a name="99" href="#99">99</a>          s = maven2Osgi.getBundleFileName( artifact );
+<a name="100" href="#100">100</a>         assertEquals( <span class="jxr_string">"org.aopalliance_1.1.0.jar"</span>, s );
+<a name="101" href="#101">101</a>     }
+<a name="102" href="#102">102</a> 
+<a name="103" href="#103">103</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetVersion()
+<a name="104" href="#104">104</a>     {
+<a name="105" href="#105">105</a>         ArtifactStub artifact = getTestArtifact();
+<a name="106" href="#106">106</a>         String s = maven2Osgi.getVersion( artifact );
+<a name="107" href="#107">107</a>         assertEquals( <span class="jxr_string">"1.1.0"</span>, s );
+<a name="108" href="#108">108</a>     }
+<a name="109" href="#109">109</a> 
+<a name="110" href="#110">110</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testConvertVersionToOsgi()
+<a name="111" href="#111">111</a>     {
+<a name="112" href="#112">112</a>         String osgiVersion;
+<a name="113" href="#113">113</a> 
+<a name="114" href="#114">114</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"2.1.0-SNAPSHOT"</span> );
+<a name="115" href="#115">115</a>         assertEquals( <span class="jxr_string">"2.1.0.SNAPSHOT"</span>, osgiVersion );
+<a name="116" href="#116">116</a> 
+<a name="117" href="#117">117</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"2.1-SNAPSHOT"</span> );
+<a name="118" href="#118">118</a>         assertEquals( <span class="jxr_string">"2.1.0.SNAPSHOT"</span>, osgiVersion );
+<a name="119" href="#119">119</a> 
+<a name="120" href="#120">120</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"2-SNAPSHOT"</span> );
+<a name="121" href="#121">121</a>         assertEquals( <span class="jxr_string">"2.0.0.SNAPSHOT"</span>, osgiVersion );
+<a name="122" href="#122">122</a> 
+<a name="123" href="#123">123</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"2"</span> );
+<a name="124" href="#124">124</a>         assertEquals( <span class="jxr_string">"2.0.0"</span>, osgiVersion );
+<a name="125" href="#125">125</a> 
+<a name="126" href="#126">126</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"2.1"</span> );
+<a name="127" href="#127">127</a>         assertEquals( <span class="jxr_string">"2.1.0"</span>, osgiVersion );
+<a name="128" href="#128">128</a> 
+<a name="129" href="#129">129</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"2.1.3"</span> );
+<a name="130" href="#130">130</a>         assertEquals( <span class="jxr_string">"2.1.3"</span>, osgiVersion );
+<a name="131" href="#131">131</a> 
+<a name="132" href="#132">132</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"2.1.3.4"</span> );
+<a name="133" href="#133">133</a>         assertEquals( <span class="jxr_string">"2.1.3.4"</span>, osgiVersion );
+<a name="134" href="#134">134</a> 
+<a name="135" href="#135">135</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"4aug2000r7-dev"</span> );
+<a name="136" href="#136">136</a>         assertEquals( <span class="jxr_string">"0.0.0.4aug2000r7-dev"</span>, osgiVersion );
+<a name="137" href="#137">137</a> 
+<a name="138" href="#138">138</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"1.1-alpha-2"</span> );
+<a name="139" href="#139">139</a>         assertEquals( <span class="jxr_string">"1.1.0.alpha-2"</span>, osgiVersion );
+<a name="140" href="#140">140</a> 
+<a name="141" href="#141">141</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"1.0-alpha-16-20070122.203121-13"</span> );
+<a name="142" href="#142">142</a>         assertEquals( <span class="jxr_string">"1.0.0.alpha-16-20070122_203121-13"</span>, osgiVersion );
+<a name="143" href="#143">143</a> 
+<a name="144" href="#144">144</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"1.0-20070119.021432-1"</span> );
+<a name="145" href="#145">145</a>         assertEquals( <span class="jxr_string">"1.0.0.20070119_021432-1"</span>, osgiVersion );
+<a name="146" href="#146">146</a> 
+<a name="147" href="#147">147</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"1-20070119.021432-1"</span> );
+<a name="148" href="#148">148</a>         assertEquals( <span class="jxr_string">"1.0.0.20070119_021432-1"</span>, osgiVersion );
+<a name="149" href="#149">149</a> 
+<a name="150" href="#150">150</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"1.4.1-20070217.082013-7"</span> );
+<a name="151" href="#151">151</a>         assertEquals( <span class="jxr_string">"1.4.1.20070217_082013-7"</span>, osgiVersion );
+<a name="152" href="#152">152</a>         
+<a name="153" href="#153">153</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"0.0.0.4aug2000r7-dev"</span> );
+<a name="154" href="#154">154</a>         assertEquals( <span class="jxr_string">"0.0.0.4aug2000r7-dev"</span>, osgiVersion );
+<a name="155" href="#155">155</a>         
+<a name="156" href="#156">156</a>         osgiVersion = maven2Osgi.getVersion( <span class="jxr_string">"4aug2000r7-dev"</span> );
+<a name="157" href="#157">157</a>         assertEquals( <span class="jxr_string">"0.0.0.4aug2000r7-dev"</span>, osgiVersion );
+<a name="158" href="#158">158</a>     }
+<a name="159" href="#159">159</a> 
+<a name="160" href="#160">160</a>     <strong class="jxr_keyword">private</strong> ArtifactStub getTestArtifact()
+<a name="161" href="#161">161</a>     {
+<a name="162" href="#162">162</a>         ArtifactStub a = <strong class="jxr_keyword">new</strong> ArtifactStub();
+<a name="163" href="#163">163</a>         a.setGroupId( <span class="jxr_string">"commons-logging"</span> );
+<a name="164" href="#164">164</a>         a.setArtifactId( <span class="jxr_string">"commons-logging"</span> );
+<a name="165" href="#165">165</a>         a.setVersion( <span class="jxr_string">"1.1"</span> );
+<a name="166" href="#166">166</a>         a.setFile( getTestFile( <span class="jxr_string">"commons-logging-1.1.jar"</span> ) );
+<a name="167" href="#167">167</a>         <strong class="jxr_keyword">return</strong> a;
+<a name="168" href="#168">168</a>     }
+<a name="169" href="#169">169</a> 
+<a name="170" href="#170">170</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> File getTestFile( String fileName )
+<a name="171" href="#171">171</a>     {
+<a name="172" href="#172">172</a>         <strong class="jxr_keyword">return</strong> PlexusTestCase.getTestFile( <span class="jxr_string">"src/test/resources/"</span> + fileName );
+<a name="173" href="#173">173</a>     }
+<a name="174" href="#174">174</a> }
+</pre>
+<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
+</html>
+
diff --git a/bundleplugin/doc/site/xref-test/org/apache/maven/shared/osgi/package-frame.html b/bundleplugin/doc/site/xref-test/org/apache/maven/shared/osgi/package-frame.html
new file mode 100644
index 0000000..f8f48af
--- /dev/null
+++ b/bundleplugin/doc/site/xref-test/org/apache/maven/shared/osgi/package-frame.html
@@ -0,0 +1,24 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>Maven Bundle Plugin 2.4.0-SNAPSHOT Reference Package org.apache.maven.shared.osgi</title>
+		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
+	</head>
+	<body>
+
+		<h3>
+        	<a href="package-summary.html" target="classFrame">org.apache.maven.shared.osgi</a>
+      	</h3>
+
+      	<h3>Classes</h3>
+
+      	<ul>
+      		          	<li>
+            	<a href="Maven2OsgiConverterTest.html" target="classFrame">Maven2OsgiConverterTest</a>
+          	</li>
+          	      	</ul>
+
+	</body>
+</html>
\ No newline at end of file
diff --git a/bundleplugin/doc/site/xref-test/org/apache/maven/shared/osgi/package-summary.html b/bundleplugin/doc/site/xref-test/org/apache/maven/shared/osgi/package-summary.html
new file mode 100644
index 0000000..6bd63ca
--- /dev/null
+++ b/bundleplugin/doc/site/xref-test/org/apache/maven/shared/osgi/package-summary.html
@@ -0,0 +1,67 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>Maven Bundle Plugin 2.4.0-SNAPSHOT Reference Package org.apache.maven.shared.osgi</title>
+		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
+	</head>
+	<body>
+		      	<div class="overview">
+        	<ul>
+          		<li>
+            		<a href="../../../../../overview-summary.html">Overview</a>
+          		</li>
+          		<li class="selected">Package</li>
+        	</ul>
+      	</div>
+      	<div class="framenoframe">
+        	<ul>
+          		<li>
+            		<a href="../../../../../index.html" target="_top">FRAMES</a>
+          		</li>
+          		<li>
+            		<a href="package-summary.html" target="_top">NO FRAMES</a>
+          		</li>
+        	</ul>
+      	</div>
+		
+		      	<h2>Package org.apache.maven.shared.osgi</h2>
+
+		<table class="summary">
+        	<thead>
+          		<tr>
+            		<th>Class Summary</th>
+          		</tr>
+        	</thead>
+        	<tbody>
+        		            	<tr>
+              		<td>
+                		<a href="Maven2OsgiConverterTest.html" target="classFrame">Maven2OsgiConverterTest</a>
+              		</td>
+            	</tr>
+				        	</tbody>
+      	</table>
+		
+		      	<div class="overview">
+        	<ul>
+          		<li>
+            		<a href="../../../../../overview-summary.html">Overview</a>
+          		</li>
+          		<li class="selected">Package</li>
+        	</ul>
+      	</div>
+      	<div class="framenoframe">
+        	<ul>
+          		<li>
+            		<a href="../../../../../index.html" target="_top">FRAMES</a>
+          		</li>
+          		<li>
+            		<a href="package-summary.html" target="_top">NO FRAMES</a>
+          		</li>
+        	</ul>
+      	</div>
+				<hr />
+		Copyright &copy; 2006-2013 The Apache Software Foundation. All Rights Reserved.
+	</body>
+</html>
\ No newline at end of file
diff --git a/bundleplugin/doc/site/xref-test/overview-frame.html b/bundleplugin/doc/site/xref-test/overview-frame.html
index a586ab9..aed0619 100644
--- a/bundleplugin/doc/site/xref-test/overview-frame.html
+++ b/bundleplugin/doc/site/xref-test/overview-frame.html
@@ -18,6 +18,9 @@
 						<li>
 				<a href="org/apache/felix/bundleplugin/package-frame.html" target="packageFrame">org.apache.felix.bundleplugin</a>
 			</li>
+						<li>
+				<a href="org/apache/maven/shared/osgi/package-frame.html" target="packageFrame">org.apache.maven.shared.osgi</a>
+			</li>
 					</ul>
 
 	</body>
diff --git a/bundleplugin/doc/site/xref-test/overview-summary.html b/bundleplugin/doc/site/xref-test/overview-summary.html
index fca74f2..79c5369 100644
--- a/bundleplugin/doc/site/xref-test/overview-summary.html
+++ b/bundleplugin/doc/site/xref-test/overview-summary.html
@@ -38,6 +38,11 @@
                 		<a href="org/apache/felix/bundleplugin/package-summary.html">org.apache.felix.bundleplugin</a>
               		</td>
             	</tr>
+	          	            	<tr>
+              		<td>
+                		<a href="org/apache/maven/shared/osgi/package-summary.html">org.apache.maven.shared.osgi</a>
+              		</td>
+            	</tr>
 	          	        	</tbody>
       	</table>
 		
@@ -59,6 +64,6 @@
       	</div>
 		
 		<hr />
-		Copyright &copy; 2006-2012 The Apache Software Foundation. All Rights Reserved.
+		Copyright &copy; 2006-2013 The Apache Software Foundation. All Rights Reserved.
 	</body>
 </html>
\ No newline at end of file
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AbstractDependencyFilter.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AbstractDependencyFilter.html
index d8961e8..06a493b 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AbstractDependencyFilter.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AbstractDependencyFilter.html
@@ -38,8 +38,8 @@
 <a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
 <a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
 <a name="30" href="#30">30</a>  
-<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Instruction;
-<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> aQute.libg.header.OSGiHeader;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Instruction;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.header.OSGiHeader;
 <a name="33" href="#33">33</a>  
 <a name="34" href="#34">34</a>  
 <a name="35" href="#35">35</a>  <em class="jxr_javadoccomment">/**</em>
@@ -76,7 +76,7 @@
 <a name="66" href="#66">66</a>  
 <a name="67" href="#67">67</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( String expression, String defaultValue )
 <a name="68" href="#68">68</a>          {
-<a name="69" href="#69">69</a>              m_instruction = Instruction.getPattern( expression );
+<a name="69" href="#69">69</a>              m_instruction = <strong class="jxr_keyword">new</strong> Instruction( expression );
 <a name="70" href="#70">70</a>              m_defaultValue = defaultValue;
 <a name="71" href="#71">71</a>          }
 <a name="72" href="#72">72</a>  
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AntPlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AntPlugin.html
index 0cf0175..ae996d5 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AntPlugin.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AntPlugin.html
@@ -41,8 +41,8 @@
 <a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.IOUtil;
 <a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.StringUtils;
 <a name="33" href="#33">33</a>  
-<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Builder;
-<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Builder;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Jar;
 <a name="36" href="#36">36</a>  
 <a name="37" href="#37">37</a>  
 <a name="38" href="#38">38</a>  <em class="jxr_javadoccomment">/**</em>
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BlueprintPlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BlueprintPlugin.html
index 926167e..92141ff 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BlueprintPlugin.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BlueprintPlugin.html
@@ -50,369 +50,387 @@
 <a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.stream.StreamSource;
 <a name="41" href="#41">41</a>  
 <a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.service.AnalyzerPlugin;
-<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
-<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
-<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Processor;
-<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Resource;
-<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> aQute.libg.generics.Create;
-<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> aQute.libg.qtokens.QuotedTokenizer;
-<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> aQute.libg.reporter.Reporter;
-<a name="50" href="#50">50</a>  
+<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Analyzer;
+<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Descriptors.PackageRef;
+<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Jar;
+<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Processor;
+<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Resource;
+<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> aQute.libg.generics.Create;
+<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> aQute.libg.qtokens.QuotedTokenizer;
+<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> aQute.service.reporter.Reporter;
 <a name="51" href="#51">51</a>  
-<a name="52" href="#52">52</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/BlueprintPlugin.html">BlueprintPlugin</a> implements AnalyzerPlugin
-<a name="53" href="#53">53</a>  {
-<a name="54" href="#54">54</a>  
-<a name="55" href="#55">55</a>      <strong class="jxr_keyword">static</strong> Pattern QN = Pattern.compile( <span class="jxr_string">"[_A-Za-z$][_A-Za-z0-9$]*(&#92;&#92;.[_A-Za-z$][_A-Za-z0-9$]*)*"</span> );
-<a name="56" href="#56">56</a>      <strong class="jxr_keyword">static</strong> Pattern PATHS = Pattern.compile( <span class="jxr_string">".*&#92;&#92;.xml"</span> );
-<a name="57" href="#57">57</a>  
-<a name="58" href="#58">58</a>      Transformer transformer;
-<a name="59" href="#59">59</a>  
+<a name="52" href="#52">52</a>  
+<a name="53" href="#53">53</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/BlueprintPlugin.html">BlueprintPlugin</a> implements AnalyzerPlugin
+<a name="54" href="#54">54</a>  {
+<a name="55" href="#55">55</a>  
+<a name="56" href="#56">56</a>      <strong class="jxr_keyword">static</strong> Pattern QN = Pattern.compile( <span class="jxr_string">"[_A-Za-z$][_A-Za-z0-9$]*(&#92;&#92;.[_A-Za-z$][_A-Za-z0-9$]*)*"</span> );
+<a name="57" href="#57">57</a>      <strong class="jxr_keyword">static</strong> Pattern PATHS = Pattern.compile( <span class="jxr_string">".*&#92;&#92;.xml"</span> );
+<a name="58" href="#58">58</a>  
+<a name="59" href="#59">59</a>      Transformer transformer;
 <a name="60" href="#60">60</a>  
-<a name="61" href="#61">61</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/BlueprintPlugin.html">BlueprintPlugin</a>() <strong class="jxr_keyword">throws</strong> Exception
-<a name="62" href="#62">62</a>      {
-<a name="63" href="#63">63</a>          transformer = getTransformer( getClass().getResource( <span class="jxr_string">"blueprint.xsl"</span> ) );
-<a name="64" href="#64">64</a>      }
-<a name="65" href="#65">65</a>  
+<a name="61" href="#61">61</a>  
+<a name="62" href="#62">62</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/BlueprintPlugin.html">BlueprintPlugin</a>() <strong class="jxr_keyword">throws</strong> Exception
+<a name="63" href="#63">63</a>      {
+<a name="64" href="#64">64</a>          transformer = getTransformer( getClass().getResource( <span class="jxr_string">"blueprint.xsl"</span> ) );
+<a name="65" href="#65">65</a>      }
 <a name="66" href="#66">66</a>  
-<a name="67" href="#67">67</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> analyzeJar( Analyzer analyzer ) <strong class="jxr_keyword">throws</strong> Exception
-<a name="68" href="#68">68</a>      {
-<a name="69" href="#69">69</a>          transformer.setParameter( <span class="jxr_string">"nsh_interface"</span>,
-<a name="70" href="#70">70</a>              analyzer.getProperty( <span class="jxr_string">"nsh_interface"</span> ) != <strong class="jxr_keyword">null</strong> ? analyzer.getProperty( <span class="jxr_string">"nsh_interface"</span> ) : <span class="jxr_string">""</span> );
-<a name="71" href="#71">71</a>          transformer.setParameter( <span class="jxr_string">"nsh_namespace"</span>,
-<a name="72" href="#72">72</a>              analyzer.getProperty( <span class="jxr_string">"nsh_namespace"</span> ) != <strong class="jxr_keyword">null</strong> ? analyzer.getProperty( <span class="jxr_string">"nsh_namespace"</span> ) : <span class="jxr_string">""</span> );
-<a name="73" href="#73">73</a>  
-<a name="74" href="#74">74</a>          Set&lt;String&gt; headers = Create.set();
-<a name="75" href="#75">75</a>  
-<a name="76" href="#76">76</a>          String bpHeader = analyzer.getProperty( <span class="jxr_string">"Bundle-Blueprint"</span>, <span class="jxr_string">"OSGI-INF/blueprint"</span> );
-<a name="77" href="#77">77</a>          Map&lt;String, Map&lt;String, String&gt;&gt; map = Processor.parseHeader( bpHeader, <strong class="jxr_keyword">null</strong> );
-<a name="78" href="#78">78</a>          <strong class="jxr_keyword">for</strong> ( String root : map.keySet() )
-<a name="79" href="#79">79</a>          {
-<a name="80" href="#80">80</a>              Jar jar = analyzer.getJar();
-<a name="81" href="#81">81</a>              Map&lt;String, Resource&gt; dir = jar.getDirectories().get( root );
-<a name="82" href="#82">82</a>              <strong class="jxr_keyword">if</strong> ( dir == <strong class="jxr_keyword">null</strong> || dir.isEmpty() )
-<a name="83" href="#83">83</a>              {
-<a name="84" href="#84">84</a>                  Resource resource = jar.getResource( root );
-<a name="85" href="#85">85</a>                  <strong class="jxr_keyword">if</strong> ( resource != <strong class="jxr_keyword">null</strong> )
-<a name="86" href="#86">86</a>                      process( analyzer, root, resource, headers );
-<a name="87" href="#87">87</a>                  <strong class="jxr_keyword">return</strong> false;
-<a name="88" href="#88">88</a>              }
-<a name="89" href="#89">89</a>              <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, Resource&gt; entry : dir.entrySet() )
-<a name="90" href="#90">90</a>              {
-<a name="91" href="#91">91</a>                  String path = entry.getKey();
-<a name="92" href="#92">92</a>                  Resource resource = entry.getValue();
-<a name="93" href="#93">93</a>                  <strong class="jxr_keyword">if</strong> ( PATHS.matcher( path ).matches() )
-<a name="94" href="#94">94</a>                      process( analyzer, path, resource, headers );
-<a name="95" href="#95">95</a>              }
-<a name="96" href="#96">96</a>  
-<a name="97" href="#97">97</a>          }
-<a name="98" href="#98">98</a>  
-<a name="99" href="#99">99</a>          <em class="jxr_comment">// Group and analyze</em>
-<a name="100" href="#100">100</a>         Map&lt;String, Set&lt;Attribute&gt;&gt; hdrs = Create.map();
-<a name="101" href="#101">101</a>         <strong class="jxr_keyword">for</strong> ( String str : headers )
-<a name="102" href="#102">102</a>         {
-<a name="103" href="#103">103</a>             <strong class="jxr_keyword">int</strong> idx = str.indexOf( ':' );
-<a name="104" href="#104">104</a>             <strong class="jxr_keyword">if</strong> ( idx &lt; 0 )
-<a name="105" href="#105">105</a>             {
-<a name="106" href="#106">106</a>                 analyzer.warning( ( <strong class="jxr_keyword">new</strong> StringBuilder( <span class="jxr_string">"Error analyzing services in blueprint resource: "</span> ) ).append(
-<a name="107" href="#107">107</a>                     str ).toString() );
-<a name="108" href="#108">108</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="67" href="#67">67</a>  
+<a name="68" href="#68">68</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> analyzeJar( Analyzer analyzer ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="69" href="#69">69</a>      {
+<a name="70" href="#70">70</a>          transformer.setParameter( <span class="jxr_string">"nsh_interface"</span>,
+<a name="71" href="#71">71</a>              analyzer.getProperty( <span class="jxr_string">"nsh_interface"</span> ) != <strong class="jxr_keyword">null</strong> ? analyzer.getProperty( <span class="jxr_string">"nsh_interface"</span> ) : <span class="jxr_string">""</span> );
+<a name="72" href="#72">72</a>          transformer.setParameter( <span class="jxr_string">"nsh_namespace"</span>,
+<a name="73" href="#73">73</a>              analyzer.getProperty( <span class="jxr_string">"nsh_namespace"</span> ) != <strong class="jxr_keyword">null</strong> ? analyzer.getProperty( <span class="jxr_string">"nsh_namespace"</span> ) : <span class="jxr_string">""</span> );
+<a name="74" href="#74">74</a>  
+<a name="75" href="#75">75</a>          Set&lt;String&gt; headers = Create.set();
+<a name="76" href="#76">76</a>  
+<a name="77" href="#77">77</a>          String bpHeader = analyzer.getProperty( <span class="jxr_string">"Bundle-Blueprint"</span>, <span class="jxr_string">"OSGI-INF/blueprint"</span> );
+<a name="78" href="#78">78</a>          Map&lt;String, ? <strong class="jxr_keyword">extends</strong> Map&lt;String, String&gt;&gt; map = Processor.parseHeader( bpHeader, <strong class="jxr_keyword">null</strong> );
+<a name="79" href="#79">79</a>  		bpHeader = <span class="jxr_string">""</span>;
+<a name="80" href="#80">80</a>          <strong class="jxr_keyword">for</strong> ( String root : map.keySet() )
+<a name="81" href="#81">81</a>          {
+<a name="82" href="#82">82</a>              Jar jar = analyzer.getJar();
+<a name="83" href="#83">83</a>              Map&lt;String, Resource&gt; dir = jar.getDirectories().get( root );
+<a name="84" href="#84">84</a>              <strong class="jxr_keyword">if</strong> ( dir == <strong class="jxr_keyword">null</strong> || dir.isEmpty() )
+<a name="85" href="#85">85</a>              {
+<a name="86" href="#86">86</a>                  Resource resource = jar.getResource( root );
+<a name="87" href="#87">87</a>                  <strong class="jxr_keyword">if</strong> ( resource != <strong class="jxr_keyword">null</strong> ) 
+<a name="88" href="#88">88</a>  				{
+<a name="89" href="#89">89</a>                      process( analyzer, root, resource, headers );
+<a name="90" href="#90">90</a>  					<strong class="jxr_keyword">if</strong> (bpHeader.length() &gt; 0) {
+<a name="91" href="#91">91</a>  						bpHeader += <span class="jxr_string">","</span>;
+<a name="92" href="#92">92</a>  					}
+<a name="93" href="#93">93</a>  					bpHeader += root;
+<a name="94" href="#94">94</a>  				}
+<a name="95" href="#95">95</a>                  <strong class="jxr_keyword">continue</strong>;
+<a name="96" href="#96">96</a>              }
+<a name="97" href="#97">97</a>              <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, Resource&gt; entry : dir.entrySet() )
+<a name="98" href="#98">98</a>              {
+<a name="99" href="#99">99</a>                  String path = entry.getKey();
+<a name="100" href="#100">100</a>                 Resource resource = entry.getValue();
+<a name="101" href="#101">101</a>                 <strong class="jxr_keyword">if</strong> ( PATHS.matcher( path ).matches() ) 
+<a name="102" href="#102">102</a> 				{
+<a name="103" href="#103">103</a>                     process( analyzer, path, resource, headers );
+<a name="104" href="#104">104</a> 					<strong class="jxr_keyword">if</strong> (bpHeader.length() &gt; 0) {
+<a name="105" href="#105">105</a> 						bpHeader += <span class="jxr_string">","</span>;
+<a name="106" href="#106">106</a> 					}
+<a name="107" href="#107">107</a> 					bpHeader += path;
+<a name="108" href="#108">108</a> 				}
 <a name="109" href="#109">109</a>             }
-<a name="110" href="#110">110</a>             String h = str.substring( 0, idx ).trim();
-<a name="111" href="#111">111</a>             String v = str.substring( idx + 1 ).trim();
-<a name="112" href="#112">112</a>             Set&lt;Attribute&gt; att = hdrs.get( h );
-<a name="113" href="#113">113</a>             <strong class="jxr_keyword">if</strong> ( att == <strong class="jxr_keyword">null</strong> )
-<a name="114" href="#114">114</a>             {
-<a name="115" href="#115">115</a>                 att = <strong class="jxr_keyword">new</strong> TreeSet&lt;Attribute&gt;();
-<a name="116" href="#116">116</a>                 hdrs.put( h, att );
-<a name="117" href="#117">117</a>             }
-<a name="118" href="#118">118</a>             att.addAll( parseHeader( v, <strong class="jxr_keyword">null</strong> ) );
-<a name="119" href="#119">119</a>         }
-<a name="120" href="#120">120</a>         <em class="jxr_comment">// Merge</em>
-<a name="121" href="#121">121</a>         <strong class="jxr_keyword">for</strong> ( String header : hdrs.keySet() )
-<a name="122" href="#122">122</a>         {
-<a name="123" href="#123">123</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"Import-Class"</span>.equals( header ) || <span class="jxr_string">"Import-Package"</span>.equals( header ) )
-<a name="124" href="#124">124</a>             {
-<a name="125" href="#125">125</a>                 Set&lt;Attribute&gt; newAttr = hdrs.get( header );
-<a name="126" href="#126">126</a>                 <strong class="jxr_keyword">for</strong> ( Attribute a : newAttr )
-<a name="127" href="#127">127</a>                 {
-<a name="128" href="#128">128</a>                     String pkg = a.getName();
-<a name="129" href="#129">129</a>                     <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"Import-Class"</span>.equals( header ) )
-<a name="130" href="#130">130</a>                     {
-<a name="131" href="#131">131</a>                         <strong class="jxr_keyword">int</strong> n = a.getName().lastIndexOf( '.' );
-<a name="132" href="#132">132</a>                         <strong class="jxr_keyword">if</strong> ( n &gt; 0 )
-<a name="133" href="#133">133</a>                         {
-<a name="134" href="#134">134</a>                             pkg = pkg.subSequence( 0, n ).toString();
-<a name="135" href="#135">135</a>                         }
-<a name="136" href="#136">136</a>                         <strong class="jxr_keyword">else</strong>
-<a name="137" href="#137">137</a>                         {
-<a name="138" href="#138">138</a>                             <strong class="jxr_keyword">continue</strong>;
-<a name="139" href="#139">139</a>                         }
-<a name="140" href="#140">140</a>                     }
-<a name="141" href="#141">141</a>                     <strong class="jxr_keyword">if</strong> ( !analyzer.getReferred().containsKey( pkg ) )
-<a name="142" href="#142">142</a>                     {
-<a name="143" href="#143">143</a>                         analyzer.getReferred().put( pkg, a.getProperties() );
-<a name="144" href="#144">144</a>                     }
-<a name="145" href="#145">145</a>                 }
-<a name="146" href="#146">146</a>             }
-<a name="147" href="#147">147</a>             <strong class="jxr_keyword">else</strong>
-<a name="148" href="#148">148</a>             {
-<a name="149" href="#149">149</a>                 Set&lt;Attribute&gt; orgAttr = parseHeader( analyzer.getProperty( header ), <strong class="jxr_keyword">null</strong> );
-<a name="150" href="#150">150</a>                 Set&lt;Attribute&gt; newAttr = hdrs.get( header );
-<a name="151" href="#151">151</a>                 <strong class="jxr_keyword">for</strong> ( Iterator&lt;Attribute&gt; it = newAttr.iterator(); it.hasNext(); )
-<a name="152" href="#152">152</a>                 {
-<a name="153" href="#153">153</a>                     <a href="../../../../org/apache/felix/bundleplugin/BlueprintPlugin.html">Attribute</a> a = it.next();
-<a name="154" href="#154">154</a>                     <strong class="jxr_keyword">for</strong> ( Attribute b : orgAttr )
-<a name="155" href="#155">155</a>                     {
-<a name="156" href="#156">156</a>                         <strong class="jxr_keyword">if</strong> ( b.getName().equals( a.getName() ) )
-<a name="157" href="#157">157</a>                         {
-<a name="158" href="#158">158</a>                             it.remove();
-<a name="159" href="#159">159</a>                             <strong class="jxr_keyword">break</strong>;
-<a name="160" href="#160">160</a>                         }
-<a name="161" href="#161">161</a>                     }
-<a name="162" href="#162">162</a>                 }
-<a name="163" href="#163">163</a>                 orgAttr.addAll( newAttr );
-<a name="164" href="#164">164</a>                 <em class="jxr_comment">// Rebuild from orgAttr</em>
-<a name="165" href="#165">165</a>                 StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder();
-<a name="166" href="#166">166</a>                 <strong class="jxr_keyword">for</strong> ( Attribute a : orgAttr )
-<a name="167" href="#167">167</a>                 {
-<a name="168" href="#168">168</a>                     <strong class="jxr_keyword">if</strong> ( sb.length() &gt; 0 )
-<a name="169" href="#169">169</a>                     {
-<a name="170" href="#170">170</a>                         sb.append( <span class="jxr_string">","</span> );
-<a name="171" href="#171">171</a>                     }
-<a name="172" href="#172">172</a>                     sb.append( a.getName() );
-<a name="173" href="#173">173</a>                     <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, String&gt; prop : a.getProperties().entrySet() )
-<a name="174" href="#174">174</a>                     {
-<a name="175" href="#175">175</a>                         sb.append( ';' ).append( prop.getKey() ).append( <span class="jxr_string">"="</span> );
-<a name="176" href="#176">176</a>                         <strong class="jxr_keyword">if</strong> ( prop.getValue().matches( <span class="jxr_string">"[0-9a-zA-Z_-]+"</span> ) )
-<a name="177" href="#177">177</a>                         {
-<a name="178" href="#178">178</a>                             sb.append( prop.getValue() );
-<a name="179" href="#179">179</a>                         }
-<a name="180" href="#180">180</a>                         <strong class="jxr_keyword">else</strong>
-<a name="181" href="#181">181</a>                         {
-<a name="182" href="#182">182</a>                             sb.append( <span class="jxr_string">"\&quot;"</span> );
-<a name="183" href="#183">183</a>                             sb.append( prop.getValue().replace( <span class="jxr_string">"\&quot;"</span>, <span class="jxr_string">"&#92;&#92;\&quot;"</span> ) );
-<a name="184" href="#184">184</a>                             sb.append( <span class="jxr_string">"\&quot;"</span> );
-<a name="185" href="#185">185</a>                         }
-<a name="186" href="#186">186</a>                     }
-<a name="187" href="#187">187</a>                 }
-<a name="188" href="#188">188</a>                 analyzer.setProperty( header, sb.toString() );
-<a name="189" href="#189">189</a>             }
-<a name="190" href="#190">190</a>         }
-<a name="191" href="#191">191</a>         <strong class="jxr_keyword">return</strong> false;
-<a name="192" href="#192">192</a>     }
-<a name="193" href="#193">193</a> 
-<a name="194" href="#194">194</a> 
-<a name="195" href="#195">195</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> process( Analyzer analyzer, String path, Resource resource, Set&lt;String&gt; headers )
-<a name="196" href="#196">196</a>     {
-<a name="197" href="#197">197</a>         InputStream in = <strong class="jxr_keyword">null</strong>;
-<a name="198" href="#198">198</a>         <strong class="jxr_keyword">try</strong>
-<a name="199" href="#199">199</a>         {
-<a name="200" href="#200">200</a>             in = resource.openInputStream();
-<a name="201" href="#201">201</a> 
-<a name="202" href="#202">202</a>             <em class="jxr_comment">// Retrieve headers</em>
-<a name="203" href="#203">203</a>             Set&lt;String&gt; set = analyze( in );
-<a name="204" href="#204">204</a>             headers.addAll( set );
-<a name="205" href="#205">205</a>         }
-<a name="206" href="#206">206</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="207" href="#207">207</a>         {
-<a name="208" href="#208">208</a>             analyzer.error( ( <strong class="jxr_keyword">new</strong> StringBuilder( <span class="jxr_string">"Unexpected exception in processing spring resources("</span> ) )
-<a name="209" href="#209">209</a>                 .append( path ).append( <span class="jxr_string">"): "</span> ).append( e ).toString() );
-<a name="210" href="#210">210</a>         }
-<a name="211" href="#211">211</a>         <strong class="jxr_keyword">finally</strong>
-<a name="212" href="#212">212</a>         {
-<a name="213" href="#213">213</a>             <strong class="jxr_keyword">try</strong>
-<a name="214" href="#214">214</a>             {
-<a name="215" href="#215">215</a>                 <strong class="jxr_keyword">if</strong> ( in != <strong class="jxr_keyword">null</strong> )
-<a name="216" href="#216">216</a>                 {
-<a name="217" href="#217">217</a>                     in.close();
-<a name="218" href="#218">218</a>                 }
-<a name="219" href="#219">219</a>             }
-<a name="220" href="#220">220</a>             <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="221" href="#221">221</a>             {
-<a name="222" href="#222">222</a>             }
+<a name="110" href="#110">110</a>         }
+<a name="111" href="#111">111</a> 		<strong class="jxr_keyword">if</strong>( !map.isEmpty() ) 
+<a name="112" href="#112">112</a> 		{
+<a name="113" href="#113">113</a> 			analyzer.setProperty(<span class="jxr_string">"Bundle-Blueprint"</span>, bpHeader);
+<a name="114" href="#114">114</a> 		}
+<a name="115" href="#115">115</a> 
+<a name="116" href="#116">116</a>         <em class="jxr_comment">// Group and analyze</em>
+<a name="117" href="#117">117</a>         Map&lt;String, Set&lt;Attribute&gt;&gt; hdrs = Create.map();
+<a name="118" href="#118">118</a>         <strong class="jxr_keyword">for</strong> ( String str : headers )
+<a name="119" href="#119">119</a>         {
+<a name="120" href="#120">120</a>             <strong class="jxr_keyword">int</strong> idx = str.indexOf( ':' );
+<a name="121" href="#121">121</a>             <strong class="jxr_keyword">if</strong> ( idx &lt; 0 )
+<a name="122" href="#122">122</a>             {
+<a name="123" href="#123">123</a>                 analyzer.warning( ( <strong class="jxr_keyword">new</strong> StringBuilder( <span class="jxr_string">"Error analyzing services in blueprint resource: "</span> ) ).append(
+<a name="124" href="#124">124</a>                     str ).toString() );
+<a name="125" href="#125">125</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="126" href="#126">126</a>             }
+<a name="127" href="#127">127</a>             String h = str.substring( 0, idx ).trim();
+<a name="128" href="#128">128</a>             String v = str.substring( idx + 1 ).trim();
+<a name="129" href="#129">129</a>             Set&lt;Attribute&gt; att = hdrs.get( h );
+<a name="130" href="#130">130</a>             <strong class="jxr_keyword">if</strong> ( att == <strong class="jxr_keyword">null</strong> )
+<a name="131" href="#131">131</a>             {
+<a name="132" href="#132">132</a>                 att = <strong class="jxr_keyword">new</strong> TreeSet&lt;Attribute&gt;();
+<a name="133" href="#133">133</a>                 hdrs.put( h, att );
+<a name="134" href="#134">134</a>             }
+<a name="135" href="#135">135</a>             att.addAll( parseHeader( v, <strong class="jxr_keyword">null</strong> ) );
+<a name="136" href="#136">136</a>         }
+<a name="137" href="#137">137</a>         <em class="jxr_comment">// Merge</em>
+<a name="138" href="#138">138</a>         <strong class="jxr_keyword">for</strong> ( String header : hdrs.keySet() )
+<a name="139" href="#139">139</a>         {
+<a name="140" href="#140">140</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"Import-Class"</span>.equals( header ) || <span class="jxr_string">"Import-Package"</span>.equals( header ) )
+<a name="141" href="#141">141</a>             {
+<a name="142" href="#142">142</a>                 Set&lt;Attribute&gt; newAttr = hdrs.get( header );
+<a name="143" href="#143">143</a>                 <strong class="jxr_keyword">for</strong> ( Attribute a : newAttr )
+<a name="144" href="#144">144</a>                 {
+<a name="145" href="#145">145</a>                     String pkg = a.getName();
+<a name="146" href="#146">146</a>                     <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"Import-Class"</span>.equals( header ) )
+<a name="147" href="#147">147</a>                     {
+<a name="148" href="#148">148</a>                         <strong class="jxr_keyword">int</strong> n = a.getName().lastIndexOf( '.' );
+<a name="149" href="#149">149</a>                         <strong class="jxr_keyword">if</strong> ( n &gt; 0 )
+<a name="150" href="#150">150</a>                         {
+<a name="151" href="#151">151</a>                             pkg = pkg.subSequence( 0, n ).toString();
+<a name="152" href="#152">152</a>                         }
+<a name="153" href="#153">153</a>                         <strong class="jxr_keyword">else</strong>
+<a name="154" href="#154">154</a>                         {
+<a name="155" href="#155">155</a>                             <strong class="jxr_keyword">continue</strong>;
+<a name="156" href="#156">156</a>                         }
+<a name="157" href="#157">157</a>                     }
+<a name="158" href="#158">158</a>                     PackageRef pkgRef = analyzer.getPackageRef( pkg );
+<a name="159" href="#159">159</a>                     <strong class="jxr_keyword">if</strong> ( !analyzer.getReferred().containsKey( pkgRef ) )
+<a name="160" href="#160">160</a>                     {
+<a name="161" href="#161">161</a>                         analyzer.getReferred().put( pkgRef ).putAll( a.getProperties() );
+<a name="162" href="#162">162</a>                     }
+<a name="163" href="#163">163</a>                 }
+<a name="164" href="#164">164</a>             }
+<a name="165" href="#165">165</a>             <strong class="jxr_keyword">else</strong>
+<a name="166" href="#166">166</a>             {
+<a name="167" href="#167">167</a>                 Set&lt;Attribute&gt; orgAttr = parseHeader( analyzer.getProperty( header ), <strong class="jxr_keyword">null</strong> );
+<a name="168" href="#168">168</a>                 Set&lt;Attribute&gt; newAttr = hdrs.get( header );
+<a name="169" href="#169">169</a>                 <strong class="jxr_keyword">for</strong> ( Iterator&lt;Attribute&gt; it = newAttr.iterator(); it.hasNext(); )
+<a name="170" href="#170">170</a>                 {
+<a name="171" href="#171">171</a>                     <a href="../../../../org/apache/felix/bundleplugin/BlueprintPlugin.html">Attribute</a> a = it.next();
+<a name="172" href="#172">172</a>                     <strong class="jxr_keyword">for</strong> ( Attribute b : orgAttr )
+<a name="173" href="#173">173</a>                     {
+<a name="174" href="#174">174</a>                         <strong class="jxr_keyword">if</strong> ( b.getName().equals( a.getName() ) )
+<a name="175" href="#175">175</a>                         {
+<a name="176" href="#176">176</a>                             it.remove();
+<a name="177" href="#177">177</a>                             <strong class="jxr_keyword">break</strong>;
+<a name="178" href="#178">178</a>                         }
+<a name="179" href="#179">179</a>                     }
+<a name="180" href="#180">180</a>                 }
+<a name="181" href="#181">181</a>                 orgAttr.addAll( newAttr );
+<a name="182" href="#182">182</a>                 <em class="jxr_comment">// Rebuild from orgAttr</em>
+<a name="183" href="#183">183</a>                 StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a name="184" href="#184">184</a>                 <strong class="jxr_keyword">for</strong> ( Attribute a : orgAttr )
+<a name="185" href="#185">185</a>                 {
+<a name="186" href="#186">186</a>                     <strong class="jxr_keyword">if</strong> ( sb.length() &gt; 0 )
+<a name="187" href="#187">187</a>                     {
+<a name="188" href="#188">188</a>                         sb.append( <span class="jxr_string">","</span> );
+<a name="189" href="#189">189</a>                     }
+<a name="190" href="#190">190</a>                     sb.append( a.getName() );
+<a name="191" href="#191">191</a>                     <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, String&gt; prop : a.getProperties().entrySet() )
+<a name="192" href="#192">192</a>                     {
+<a name="193" href="#193">193</a>                         sb.append( ';' ).append( prop.getKey() ).append( <span class="jxr_string">"="</span> );
+<a name="194" href="#194">194</a>                         <strong class="jxr_keyword">if</strong> ( prop.getValue().matches( <span class="jxr_string">"[0-9a-zA-Z_-]+"</span> ) )
+<a name="195" href="#195">195</a>                         {
+<a name="196" href="#196">196</a>                             sb.append( prop.getValue() );
+<a name="197" href="#197">197</a>                         }
+<a name="198" href="#198">198</a>                         <strong class="jxr_keyword">else</strong>
+<a name="199" href="#199">199</a>                         {
+<a name="200" href="#200">200</a>                             sb.append( <span class="jxr_string">"\&quot;"</span> );
+<a name="201" href="#201">201</a>                             sb.append( prop.getValue().replace( <span class="jxr_string">"\&quot;"</span>, <span class="jxr_string">"&#92;&#92;\&quot;"</span> ) );
+<a name="202" href="#202">202</a>                             sb.append( <span class="jxr_string">"\&quot;"</span> );
+<a name="203" href="#203">203</a>                         }
+<a name="204" href="#204">204</a>                     }
+<a name="205" href="#205">205</a>                 }
+<a name="206" href="#206">206</a>                 analyzer.setProperty( header, sb.toString() );
+<a name="207" href="#207">207</a>             }
+<a name="208" href="#208">208</a>         }
+<a name="209" href="#209">209</a>         <strong class="jxr_keyword">return</strong> false;
+<a name="210" href="#210">210</a>     }
+<a name="211" href="#211">211</a> 
+<a name="212" href="#212">212</a> 
+<a name="213" href="#213">213</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> process( Analyzer analyzer, String path, Resource resource, Set&lt;String&gt; headers )
+<a name="214" href="#214">214</a>     {
+<a name="215" href="#215">215</a>         InputStream in = <strong class="jxr_keyword">null</strong>;
+<a name="216" href="#216">216</a>         <strong class="jxr_keyword">try</strong>
+<a name="217" href="#217">217</a>         {
+<a name="218" href="#218">218</a>             in = resource.openInputStream();
+<a name="219" href="#219">219</a> 
+<a name="220" href="#220">220</a>             <em class="jxr_comment">// Retrieve headers</em>
+<a name="221" href="#221">221</a>             Set&lt;String&gt; set = analyze( in );
+<a name="222" href="#222">222</a>             headers.addAll( set );
 <a name="223" href="#223">223</a>         }
-<a name="224" href="#224">224</a>     }
-<a name="225" href="#225">225</a> 
-<a name="226" href="#226">226</a> 
-<a name="227" href="#227">227</a>     <strong class="jxr_keyword">public</strong> Set&lt;String&gt; analyze( InputStream in ) <strong class="jxr_keyword">throws</strong> Exception
-<a name="228" href="#228">228</a>     {
-<a name="229" href="#229">229</a>         Set&lt;String&gt; refers = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;();
-<a name="230" href="#230">230</a>         ByteArrayOutputStream bout = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
-<a name="231" href="#231">231</a>         javax.xml.transform.Result r = <strong class="jxr_keyword">new</strong> StreamResult( bout );
-<a name="232" href="#232">232</a>         javax.xml.transform.Source s = <strong class="jxr_keyword">new</strong> StreamSource( in );
-<a name="233" href="#233">233</a>         transformer.transform( s, r );
-<a name="234" href="#234">234</a>         ByteArrayInputStream bin = <strong class="jxr_keyword">new</strong> ByteArrayInputStream( bout.toByteArray() );
-<a name="235" href="#235">235</a>         bout.close();
-<a name="236" href="#236">236</a>         BufferedReader br = <strong class="jxr_keyword">new</strong> BufferedReader( <strong class="jxr_keyword">new</strong> InputStreamReader( bin ) );
-<a name="237" href="#237">237</a>         <strong class="jxr_keyword">for</strong> ( String line = br.readLine(); line != <strong class="jxr_keyword">null</strong>; line = br.readLine() )
-<a name="238" href="#238">238</a>         {
-<a name="239" href="#239">239</a>             line = line.trim();
-<a name="240" href="#240">240</a>             line = line.replace( <span class="jxr_string">";availability:=mandatory"</span>, <span class="jxr_string">""</span> );
-<a name="241" href="#241">241</a>             <strong class="jxr_keyword">if</strong> ( line.length() &gt; 0 )
-<a name="242" href="#242">242</a>             {
-<a name="243" href="#243">243</a>                 refers.add( line );
-<a name="244" href="#244">244</a>             }
-<a name="245" href="#245">245</a>         }
-<a name="246" href="#246">246</a> 
-<a name="247" href="#247">247</a>         br.close();
-<a name="248" href="#248">248</a>         <strong class="jxr_keyword">return</strong> refers;
-<a name="249" href="#249">249</a>     }
-<a name="250" href="#250">250</a> 
-<a name="251" href="#251">251</a> 
-<a name="252" href="#252">252</a>     <strong class="jxr_keyword">protected</strong> Transformer getTransformer( URL url ) <strong class="jxr_keyword">throws</strong> Exception
-<a name="253" href="#253">253</a>     {
-<a name="254" href="#254">254</a>         TransformerFactory tf = TransformerFactory.newInstance();
-<a name="255" href="#255">255</a>         javax.xml.transform.Source source = <strong class="jxr_keyword">new</strong> StreamSource( url.openStream() );
-<a name="256" href="#256">256</a>         <strong class="jxr_keyword">return</strong> tf.newTransformer( source );
-<a name="257" href="#257">257</a>     }
-<a name="258" href="#258">258</a> 
-<a name="259" href="#259">259</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/BlueprintPlugin.html">Attribute</a> implements Comparable&lt;Attribute&gt;
-<a name="260" href="#260">260</a>     {
-<a name="261" href="#261">261</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String name;
-<a name="262" href="#262">262</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;String, String&gt; properties;
-<a name="263" href="#263">263</a> 
+<a name="224" href="#224">224</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="225" href="#225">225</a>         {
+<a name="226" href="#226">226</a>             analyzer.error( ( <strong class="jxr_keyword">new</strong> StringBuilder( <span class="jxr_string">"Unexpected exception in processing spring resources("</span> ) )
+<a name="227" href="#227">227</a>                 .append( path ).append( <span class="jxr_string">"): "</span> ).append( e ).toString() );
+<a name="228" href="#228">228</a>         }
+<a name="229" href="#229">229</a>         <strong class="jxr_keyword">finally</strong>
+<a name="230" href="#230">230</a>         {
+<a name="231" href="#231">231</a>             <strong class="jxr_keyword">try</strong>
+<a name="232" href="#232">232</a>             {
+<a name="233" href="#233">233</a>                 <strong class="jxr_keyword">if</strong> ( in != <strong class="jxr_keyword">null</strong> )
+<a name="234" href="#234">234</a>                 {
+<a name="235" href="#235">235</a>                     in.close();
+<a name="236" href="#236">236</a>                 }
+<a name="237" href="#237">237</a>             }
+<a name="238" href="#238">238</a>             <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="239" href="#239">239</a>             {
+<a name="240" href="#240">240</a>             }
+<a name="241" href="#241">241</a>         }
+<a name="242" href="#242">242</a>     }
+<a name="243" href="#243">243</a> 
+<a name="244" href="#244">244</a> 
+<a name="245" href="#245">245</a>     <strong class="jxr_keyword">public</strong> Set&lt;String&gt; analyze( InputStream in ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="246" href="#246">246</a>     {
+<a name="247" href="#247">247</a>         Set&lt;String&gt; refers = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;();
+<a name="248" href="#248">248</a>         ByteArrayOutputStream bout = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
+<a name="249" href="#249">249</a>         javax.xml.transform.Result r = <strong class="jxr_keyword">new</strong> StreamResult( bout );
+<a name="250" href="#250">250</a>         javax.xml.transform.Source s = <strong class="jxr_keyword">new</strong> StreamSource( in );
+<a name="251" href="#251">251</a>         transformer.transform( s, r );
+<a name="252" href="#252">252</a>         ByteArrayInputStream bin = <strong class="jxr_keyword">new</strong> ByteArrayInputStream( bout.toByteArray() );
+<a name="253" href="#253">253</a>         bout.close();
+<a name="254" href="#254">254</a>         BufferedReader br = <strong class="jxr_keyword">new</strong> BufferedReader( <strong class="jxr_keyword">new</strong> InputStreamReader( bin ) );
+<a name="255" href="#255">255</a>         <strong class="jxr_keyword">for</strong> ( String line = br.readLine(); line != <strong class="jxr_keyword">null</strong>; line = br.readLine() )
+<a name="256" href="#256">256</a>         {
+<a name="257" href="#257">257</a>             line = line.trim();
+<a name="258" href="#258">258</a>             line = line.replace( <span class="jxr_string">";availability:=mandatory"</span>, <span class="jxr_string">""</span> );
+<a name="259" href="#259">259</a>             <strong class="jxr_keyword">if</strong> ( line.length() &gt; 0 )
+<a name="260" href="#260">260</a>             {
+<a name="261" href="#261">261</a>                 refers.add( line );
+<a name="262" href="#262">262</a>             }
+<a name="263" href="#263">263</a>         }
 <a name="264" href="#264">264</a> 
-<a name="265" href="#265">265</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/BlueprintPlugin.html">Attribute</a>( String name, Map&lt;String, String&gt; properties )
-<a name="266" href="#266">266</a>         {
-<a name="267" href="#267">267</a>             <strong class="jxr_keyword">this</strong>.name = name;
-<a name="268" href="#268">268</a>             <strong class="jxr_keyword">this</strong>.properties = properties;
-<a name="269" href="#269">269</a>         }
-<a name="270" href="#270">270</a> 
-<a name="271" href="#271">271</a> 
-<a name="272" href="#272">272</a>         <strong class="jxr_keyword">public</strong> String getName()
-<a name="273" href="#273">273</a>         {
-<a name="274" href="#274">274</a>             <strong class="jxr_keyword">return</strong> name;
-<a name="275" href="#275">275</a>         }
+<a name="265" href="#265">265</a>         br.close();
+<a name="266" href="#266">266</a>         <strong class="jxr_keyword">return</strong> refers;
+<a name="267" href="#267">267</a>     }
+<a name="268" href="#268">268</a> 
+<a name="269" href="#269">269</a> 
+<a name="270" href="#270">270</a>     <strong class="jxr_keyword">protected</strong> Transformer getTransformer( URL url ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="271" href="#271">271</a>     {
+<a name="272" href="#272">272</a>         TransformerFactory tf = TransformerFactory.newInstance();
+<a name="273" href="#273">273</a>         javax.xml.transform.Source source = <strong class="jxr_keyword">new</strong> StreamSource( url.openStream() );
+<a name="274" href="#274">274</a>         <strong class="jxr_keyword">return</strong> tf.newTransformer( source );
+<a name="275" href="#275">275</a>     }
 <a name="276" href="#276">276</a> 
-<a name="277" href="#277">277</a> 
-<a name="278" href="#278">278</a>         <strong class="jxr_keyword">public</strong> Map&lt;String, String&gt; getProperties()
-<a name="279" href="#279">279</a>         {
-<a name="280" href="#280">280</a>             <strong class="jxr_keyword">return</strong> properties;
-<a name="281" href="#281">281</a>         }
+<a name="277" href="#277">277</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/BlueprintPlugin.html">Attribute</a> implements Comparable&lt;Attribute&gt;
+<a name="278" href="#278">278</a>     {
+<a name="279" href="#279">279</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String name;
+<a name="280" href="#280">280</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;String, String&gt; properties;
+<a name="281" href="#281">281</a> 
 <a name="282" href="#282">282</a> 
-<a name="283" href="#283">283</a> 
-<a name="284" href="#284">284</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> compareTo( Attribute a )
-<a name="285" href="#285">285</a>         {
-<a name="286" href="#286">286</a>             <strong class="jxr_keyword">int</strong> c = name.compareTo( a.name );
-<a name="287" href="#287">287</a>             <strong class="jxr_keyword">if</strong> ( c == 0 )
-<a name="288" href="#288">288</a>             {
-<a name="289" href="#289">289</a>                 c = properties.equals( a.properties ) ? 0 : properties.size() &lt; a.properties.size() ? -1 : properties
-<a name="290" href="#290">290</a>                     .hashCode() &lt; a.properties.hashCode() ? -1 : +1;
-<a name="291" href="#291">291</a>             }
-<a name="292" href="#292">292</a>             <strong class="jxr_keyword">return</strong> c;
+<a name="283" href="#283">283</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/BlueprintPlugin.html">Attribute</a>( String name, Map&lt;String, String&gt; properties )
+<a name="284" href="#284">284</a>         {
+<a name="285" href="#285">285</a>             <strong class="jxr_keyword">this</strong>.name = name;
+<a name="286" href="#286">286</a>             <strong class="jxr_keyword">this</strong>.properties = properties;
+<a name="287" href="#287">287</a>         }
+<a name="288" href="#288">288</a> 
+<a name="289" href="#289">289</a> 
+<a name="290" href="#290">290</a>         <strong class="jxr_keyword">public</strong> String getName()
+<a name="291" href="#291">291</a>         {
+<a name="292" href="#292">292</a>             <strong class="jxr_keyword">return</strong> name;
 <a name="293" href="#293">293</a>         }
 <a name="294" href="#294">294</a> 
 <a name="295" href="#295">295</a> 
-<a name="296" href="#296">296</a>         @Override
-<a name="297" href="#297">297</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> equals( Object o )
-<a name="298" href="#298">298</a>         {
-<a name="299" href="#299">299</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">this</strong> == o )
-<a name="300" href="#300">300</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
-<a name="301" href="#301">301</a>             <strong class="jxr_keyword">if</strong> ( o == <strong class="jxr_keyword">null</strong> || getClass() != o.getClass() )
-<a name="302" href="#302">302</a>                 <strong class="jxr_keyword">return</strong> false;
-<a name="303" href="#303">303</a> 
-<a name="304" href="#304">304</a>             <a href="../../../../org/apache/felix/bundleplugin/BlueprintPlugin.html">Attribute</a> attribute = ( Attribute ) o;
-<a name="305" href="#305">305</a> 
-<a name="306" href="#306">306</a>             <strong class="jxr_keyword">if</strong> ( name != <strong class="jxr_keyword">null</strong> ? !name.equals( attribute.name ) : attribute.name != <strong class="jxr_keyword">null</strong> )
-<a name="307" href="#307">307</a>                 <strong class="jxr_keyword">return</strong> false;
-<a name="308" href="#308">308</a>             <strong class="jxr_keyword">if</strong> ( properties != <strong class="jxr_keyword">null</strong> ? !properties.equals( attribute.properties ) : attribute.properties != <strong class="jxr_keyword">null</strong> )
-<a name="309" href="#309">309</a>                 <strong class="jxr_keyword">return</strong> false;
-<a name="310" href="#310">310</a> 
-<a name="311" href="#311">311</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
-<a name="312" href="#312">312</a>         }
+<a name="296" href="#296">296</a>         <strong class="jxr_keyword">public</strong> Map&lt;String, String&gt; getProperties()
+<a name="297" href="#297">297</a>         {
+<a name="298" href="#298">298</a>             <strong class="jxr_keyword">return</strong> properties;
+<a name="299" href="#299">299</a>         }
+<a name="300" href="#300">300</a> 
+<a name="301" href="#301">301</a> 
+<a name="302" href="#302">302</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> compareTo( Attribute a )
+<a name="303" href="#303">303</a>         {
+<a name="304" href="#304">304</a>             <strong class="jxr_keyword">int</strong> c = name.compareTo( a.name );
+<a name="305" href="#305">305</a>             <strong class="jxr_keyword">if</strong> ( c == 0 )
+<a name="306" href="#306">306</a>             {
+<a name="307" href="#307">307</a>                 c = properties.equals( a.properties ) ? 0 : properties.size() &lt; a.properties.size() ? -1 : properties
+<a name="308" href="#308">308</a>                     .hashCode() &lt; a.properties.hashCode() ? -1 : +1;
+<a name="309" href="#309">309</a>             }
+<a name="310" href="#310">310</a>             <strong class="jxr_keyword">return</strong> c;
+<a name="311" href="#311">311</a>         }
+<a name="312" href="#312">312</a> 
 <a name="313" href="#313">313</a> 
-<a name="314" href="#314">314</a> 
-<a name="315" href="#315">315</a>         @Override
-<a name="316" href="#316">316</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> hashCode()
-<a name="317" href="#317">317</a>         {
-<a name="318" href="#318">318</a>             <strong class="jxr_keyword">int</strong> result = name != <strong class="jxr_keyword">null</strong> ? name.hashCode() : 0;
-<a name="319" href="#319">319</a>             result = 31 * result + ( properties != <strong class="jxr_keyword">null</strong> ? properties.hashCode() : 0 );
-<a name="320" href="#320">320</a>             <strong class="jxr_keyword">return</strong> result;
-<a name="321" href="#321">321</a>         }
-<a name="322" href="#322">322</a>     }
+<a name="314" href="#314">314</a>         @Override
+<a name="315" href="#315">315</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> equals( Object o )
+<a name="316" href="#316">316</a>         {
+<a name="317" href="#317">317</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">this</strong> == o )
+<a name="318" href="#318">318</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
+<a name="319" href="#319">319</a>             <strong class="jxr_keyword">if</strong> ( o == <strong class="jxr_keyword">null</strong> || getClass() != o.getClass() )
+<a name="320" href="#320">320</a>                 <strong class="jxr_keyword">return</strong> false;
+<a name="321" href="#321">321</a> 
+<a name="322" href="#322">322</a>             <a href="../../../../org/apache/felix/bundleplugin/BlueprintPlugin.html">Attribute</a> attribute = ( Attribute ) o;
 <a name="323" href="#323">323</a> 
-<a name="324" href="#324">324</a> 
-<a name="325" href="#325">325</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Set&lt;Attribute&gt; parseHeader( String value, Reporter logger )
-<a name="326" href="#326">326</a>     {
-<a name="327" href="#327">327</a>         <strong class="jxr_keyword">if</strong> ( ( value == <strong class="jxr_keyword">null</strong> ) || ( value.trim().length() == 0 ) )
-<a name="328" href="#328">328</a>         {
-<a name="329" href="#329">329</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> TreeSet&lt;Attribute&gt;();
+<a name="324" href="#324">324</a>             <strong class="jxr_keyword">if</strong> ( name != <strong class="jxr_keyword">null</strong> ? !name.equals( attribute.name ) : attribute.name != <strong class="jxr_keyword">null</strong> )
+<a name="325" href="#325">325</a>                 <strong class="jxr_keyword">return</strong> false;
+<a name="326" href="#326">326</a>             <strong class="jxr_keyword">if</strong> ( properties != <strong class="jxr_keyword">null</strong> ? !properties.equals( attribute.properties ) : attribute.properties != <strong class="jxr_keyword">null</strong> )
+<a name="327" href="#327">327</a>                 <strong class="jxr_keyword">return</strong> false;
+<a name="328" href="#328">328</a> 
+<a name="329" href="#329">329</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
 <a name="330" href="#330">330</a>         }
-<a name="331" href="#331">331</a>         Set&lt;Attribute&gt; result = <strong class="jxr_keyword">new</strong> TreeSet&lt;Attribute&gt;();
-<a name="332" href="#332">332</a>         QuotedTokenizer qt = <strong class="jxr_keyword">new</strong> QuotedTokenizer( value, <span class="jxr_string">";=,"</span> );
-<a name="333" href="#333">333</a>         <strong class="jxr_keyword">char</strong> del = '\0';
-<a name="334" href="#334">334</a>         <strong class="jxr_keyword">do</strong>
+<a name="331" href="#331">331</a> 
+<a name="332" href="#332">332</a> 
+<a name="333" href="#333">333</a>         @Override
+<a name="334" href="#334">334</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> hashCode()
 <a name="335" href="#335">335</a>         {
-<a name="336" href="#336">336</a>             <strong class="jxr_keyword">boolean</strong> hadAttribute = false;
-<a name="337" href="#337">337</a>             Map&lt;String, String&gt; clause = Create.map();
-<a name="338" href="#338">338</a>             List&lt;String&gt; aliases = Create.list();
-<a name="339" href="#339">339</a>             String name = qt.nextToken( <span class="jxr_string">",;"</span> );
-<a name="340" href="#340">340</a> 
-<a name="341" href="#341">341</a>             del = qt.getSeparator();
-<a name="342" href="#342">342</a>             <strong class="jxr_keyword">if</strong> ( ( name == <strong class="jxr_keyword">null</strong> ) || ( name.length() == 0 ) )
-<a name="343" href="#343">343</a>             {
-<a name="344" href="#344">344</a>                 <strong class="jxr_keyword">if</strong> ( ( logger != <strong class="jxr_keyword">null</strong> ) &amp;&amp; ( logger.isPedantic() ) )
-<a name="345" href="#345">345</a>                 {
-<a name="346" href="#346">346</a>                     logger
-<a name="347" href="#347">347</a>                         .warning( <span class="jxr_string">"Empty clause, usually caused by repeating a comma without any name field or by having "</span>
-<a name="348" href="#348">348</a>                             + <span class="jxr_string">"spaces after the backslash of a property file: "</span> + value );
-<a name="349" href="#349">349</a>                 }
-<a name="350" href="#350">350</a> 
-<a name="351" href="#351">351</a>                 <strong class="jxr_keyword">if</strong> ( name != <strong class="jxr_keyword">null</strong> )
-<a name="352" href="#352">352</a>                     <strong class="jxr_keyword">continue</strong>;
-<a name="353" href="#353">353</a>                 <strong class="jxr_keyword">break</strong>;
-<a name="354" href="#354">354</a>             }
-<a name="355" href="#355">355</a>             name = name.trim();
-<a name="356" href="#356">356</a> 
-<a name="357" href="#357">357</a>             aliases.add( name );
-<a name="358" href="#358">358</a>             String advalue;
-<a name="359" href="#359">359</a>             <strong class="jxr_keyword">while</strong> ( del == ';' )
-<a name="360" href="#360">360</a>             {
-<a name="361" href="#361">361</a>                 String adname = qt.nextToken();
-<a name="362" href="#362">362</a>                 <strong class="jxr_keyword">if</strong> ( ( del = qt.getSeparator() ) != '=' )
+<a name="336" href="#336">336</a>             <strong class="jxr_keyword">int</strong> result = name != <strong class="jxr_keyword">null</strong> ? name.hashCode() : 0;
+<a name="337" href="#337">337</a>             result = 31 * result + ( properties != <strong class="jxr_keyword">null</strong> ? properties.hashCode() : 0 );
+<a name="338" href="#338">338</a>             <strong class="jxr_keyword">return</strong> result;
+<a name="339" href="#339">339</a>         }
+<a name="340" href="#340">340</a>     }
+<a name="341" href="#341">341</a> 
+<a name="342" href="#342">342</a> 
+<a name="343" href="#343">343</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Set&lt;Attribute&gt; parseHeader( String value, Reporter logger )
+<a name="344" href="#344">344</a>     {
+<a name="345" href="#345">345</a>         <strong class="jxr_keyword">if</strong> ( ( value == <strong class="jxr_keyword">null</strong> ) || ( value.trim().length() == 0 ) )
+<a name="346" href="#346">346</a>         {
+<a name="347" href="#347">347</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> TreeSet&lt;Attribute&gt;();
+<a name="348" href="#348">348</a>         }
+<a name="349" href="#349">349</a>         Set&lt;Attribute&gt; result = <strong class="jxr_keyword">new</strong> TreeSet&lt;Attribute&gt;();
+<a name="350" href="#350">350</a>         QuotedTokenizer qt = <strong class="jxr_keyword">new</strong> QuotedTokenizer( value, <span class="jxr_string">";=,"</span> );
+<a name="351" href="#351">351</a>         <strong class="jxr_keyword">char</strong> del = '\0';
+<a name="352" href="#352">352</a>         <strong class="jxr_keyword">do</strong>
+<a name="353" href="#353">353</a>         {
+<a name="354" href="#354">354</a>             <strong class="jxr_keyword">boolean</strong> hadAttribute = false;
+<a name="355" href="#355">355</a>             Map&lt;String, String&gt; clause = Create.map();
+<a name="356" href="#356">356</a>             List&lt;String&gt; aliases = Create.list();
+<a name="357" href="#357">357</a>             String name = qt.nextToken( <span class="jxr_string">",;"</span> );
+<a name="358" href="#358">358</a> 
+<a name="359" href="#359">359</a>             del = qt.getSeparator();
+<a name="360" href="#360">360</a>             <strong class="jxr_keyword">if</strong> ( ( name == <strong class="jxr_keyword">null</strong> ) || ( name.length() == 0 ) )
+<a name="361" href="#361">361</a>             {
+<a name="362" href="#362">362</a>                 <strong class="jxr_keyword">if</strong> ( ( logger != <strong class="jxr_keyword">null</strong> ) &amp;&amp; ( logger.isPedantic() ) )
 <a name="363" href="#363">363</a>                 {
-<a name="364" href="#364">364</a>                     <strong class="jxr_keyword">if</strong> ( ( hadAttribute ) &amp;&amp; ( logger != <strong class="jxr_keyword">null</strong> ) )
-<a name="365" href="#365">365</a>                     {
-<a name="366" href="#366">366</a>                         logger.error( <span class="jxr_string">"Header contains name field after attribute or directive: "</span> + adname + <span class="jxr_string">" from "</span>
-<a name="367" href="#367">367</a>                             + value + <span class="jxr_string">". Name fields must be consecutive, separated by a ';' like a;b;c;x=3;y=4"</span> );
-<a name="368" href="#368">368</a>                     }
-<a name="369" href="#369">369</a> 
-<a name="370" href="#370">370</a>                     <strong class="jxr_keyword">if</strong> ( ( adname != <strong class="jxr_keyword">null</strong> ) &amp;&amp; ( adname.length() &gt; 0 ) )
-<a name="371" href="#371">371</a>                         aliases.add( adname.trim() );
-<a name="372" href="#372">372</a>                 }
-<a name="373" href="#373">373</a>                 <strong class="jxr_keyword">else</strong>
-<a name="374" href="#374">374</a>                 {
-<a name="375" href="#375">375</a>                     advalue = qt.nextToken();
-<a name="376" href="#376">376</a>                     <strong class="jxr_keyword">if</strong> ( ( clause.containsKey( adname ) ) &amp;&amp; ( logger != <strong class="jxr_keyword">null</strong> ) &amp;&amp; ( logger.isPedantic() ) )
-<a name="377" href="#377">377</a>                     {
-<a name="378" href="#378">378</a>                         logger.warning( <span class="jxr_string">"Duplicate attribute/directive name "</span> + adname + <span class="jxr_string">" in "</span> + value
-<a name="379" href="#379">379</a>                             + <span class="jxr_string">". This attribute/directive will be ignored"</span> );
-<a name="380" href="#380">380</a>                     }
-<a name="381" href="#381">381</a> 
-<a name="382" href="#382">382</a>                     <strong class="jxr_keyword">if</strong> ( advalue == <strong class="jxr_keyword">null</strong> )
+<a name="364" href="#364">364</a>                     logger
+<a name="365" href="#365">365</a>                         .warning( <span class="jxr_string">"Empty clause, usually caused by repeating a comma without any name field or by having "</span>
+<a name="366" href="#366">366</a>                             + <span class="jxr_string">"spaces after the backslash of a property file: "</span> + value );
+<a name="367" href="#367">367</a>                 }
+<a name="368" href="#368">368</a> 
+<a name="369" href="#369">369</a>                 <strong class="jxr_keyword">if</strong> ( name != <strong class="jxr_keyword">null</strong> )
+<a name="370" href="#370">370</a>                     <strong class="jxr_keyword">continue</strong>;
+<a name="371" href="#371">371</a>                 <strong class="jxr_keyword">break</strong>;
+<a name="372" href="#372">372</a>             }
+<a name="373" href="#373">373</a>             name = name.trim();
+<a name="374" href="#374">374</a> 
+<a name="375" href="#375">375</a>             aliases.add( name );
+<a name="376" href="#376">376</a>             String advalue;
+<a name="377" href="#377">377</a>             <strong class="jxr_keyword">while</strong> ( del == ';' )
+<a name="378" href="#378">378</a>             {
+<a name="379" href="#379">379</a>                 String adname = qt.nextToken();
+<a name="380" href="#380">380</a>                 <strong class="jxr_keyword">if</strong> ( ( del = qt.getSeparator() ) != '=' )
+<a name="381" href="#381">381</a>                 {
+<a name="382" href="#382">382</a>                     <strong class="jxr_keyword">if</strong> ( ( hadAttribute ) &amp;&amp; ( logger != <strong class="jxr_keyword">null</strong> ) )
 <a name="383" href="#383">383</a>                     {
-<a name="384" href="#384">384</a>                         <strong class="jxr_keyword">if</strong> ( logger != <strong class="jxr_keyword">null</strong> )
-<a name="385" href="#385">385</a>                         {
-<a name="386" href="#386">386</a>                             logger.error( <span class="jxr_string">"No value after '=' sign for attribute "</span> + adname );
-<a name="387" href="#387">387</a>                         }
-<a name="388" href="#388">388</a>                         advalue = <span class="jxr_string">""</span>;
-<a name="389" href="#389">389</a>                     }
-<a name="390" href="#390">390</a>                     clause.put( adname.trim(), advalue.trim() );
-<a name="391" href="#391">391</a>                     del = qt.getSeparator();
-<a name="392" href="#392">392</a>                     hadAttribute = <strong class="jxr_keyword">true</strong>;
-<a name="393" href="#393">393</a>                 }
-<a name="394" href="#394">394</a>             }
-<a name="395" href="#395">395</a> 
-<a name="396" href="#396">396</a>             <strong class="jxr_keyword">for</strong> ( String clauseName : aliases )
-<a name="397" href="#397">397</a>             {
-<a name="398" href="#398">398</a>                 result.add( <strong class="jxr_keyword">new</strong> Attribute( clauseName, clause ) );
-<a name="399" href="#399">399</a>             }
-<a name="400" href="#400">400</a>         }
-<a name="401" href="#401">401</a>         <strong class="jxr_keyword">while</strong> ( del == ',' );
-<a name="402" href="#402">402</a>         <strong class="jxr_keyword">return</strong> result;
-<a name="403" href="#403">403</a>     }
-<a name="404" href="#404">404</a> 
-<a name="405" href="#405">405</a> }
+<a name="384" href="#384">384</a>                         logger.error( <span class="jxr_string">"Header contains name field after attribute or directive: "</span> + adname + <span class="jxr_string">" from "</span>
+<a name="385" href="#385">385</a>                             + value + <span class="jxr_string">". Name fields must be consecutive, separated by a ';' like a;b;c;x=3;y=4"</span> );
+<a name="386" href="#386">386</a>                     }
+<a name="387" href="#387">387</a> 
+<a name="388" href="#388">388</a>                     <strong class="jxr_keyword">if</strong> ( ( adname != <strong class="jxr_keyword">null</strong> ) &amp;&amp; ( adname.length() &gt; 0 ) )
+<a name="389" href="#389">389</a>                         aliases.add( adname.trim() );
+<a name="390" href="#390">390</a>                 }
+<a name="391" href="#391">391</a>                 <strong class="jxr_keyword">else</strong>
+<a name="392" href="#392">392</a>                 {
+<a name="393" href="#393">393</a>                     advalue = qt.nextToken();
+<a name="394" href="#394">394</a>                     <strong class="jxr_keyword">if</strong> ( ( clause.containsKey( adname ) ) &amp;&amp; ( logger != <strong class="jxr_keyword">null</strong> ) &amp;&amp; ( logger.isPedantic() ) )
+<a name="395" href="#395">395</a>                     {
+<a name="396" href="#396">396</a>                         logger.warning( <span class="jxr_string">"Duplicate attribute/directive name "</span> + adname + <span class="jxr_string">" in "</span> + value
+<a name="397" href="#397">397</a>                             + <span class="jxr_string">". This attribute/directive will be ignored"</span> );
+<a name="398" href="#398">398</a>                     }
+<a name="399" href="#399">399</a> 
+<a name="400" href="#400">400</a>                     <strong class="jxr_keyword">if</strong> ( advalue == <strong class="jxr_keyword">null</strong> )
+<a name="401" href="#401">401</a>                     {
+<a name="402" href="#402">402</a>                         <strong class="jxr_keyword">if</strong> ( logger != <strong class="jxr_keyword">null</strong> )
+<a name="403" href="#403">403</a>                         {
+<a name="404" href="#404">404</a>                             logger.error( <span class="jxr_string">"No value after '=' sign for attribute "</span> + adname );
+<a name="405" href="#405">405</a>                         }
+<a name="406" href="#406">406</a>                         advalue = <span class="jxr_string">""</span>;
+<a name="407" href="#407">407</a>                     }
+<a name="408" href="#408">408</a>                     clause.put( adname.trim(), advalue.trim() );
+<a name="409" href="#409">409</a>                     del = qt.getSeparator();
+<a name="410" href="#410">410</a>                     hadAttribute = <strong class="jxr_keyword">true</strong>;
+<a name="411" href="#411">411</a>                 }
+<a name="412" href="#412">412</a>             }
+<a name="413" href="#413">413</a> 
+<a name="414" href="#414">414</a>             <strong class="jxr_keyword">for</strong> ( String clauseName : aliases )
+<a name="415" href="#415">415</a>             {
+<a name="416" href="#416">416</a>                 result.add( <strong class="jxr_keyword">new</strong> Attribute( clauseName, clause ) );
+<a name="417" href="#417">417</a>             }
+<a name="418" href="#418">418</a>         }
+<a name="419" href="#419">419</a>         <strong class="jxr_keyword">while</strong> ( del == ',' );
+<a name="420" href="#420">420</a>         <strong class="jxr_keyword">return</strong> result;
+<a name="421" href="#421">421</a>     }
+<a name="422" href="#422">422</a> 
+<a name="423" href="#423">423</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundleAllPlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundleAllPlugin.html
index 196ee0d..f2473da 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundleAllPlugin.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundleAllPlugin.html
@@ -63,8 +63,8 @@
 <a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException;
 <a name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.FileUtils;
 <a name="55" href="#55">55</a>  
-<a name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
-<a name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
+<a name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Analyzer;
+<a name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Jar;
 <a name="58" href="#58">58</a>  
 <a name="59" href="#59">59</a>  
 <a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">/**</em>
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundlePlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundlePlugin.html
index cd912e6..65f6d5d 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundlePlugin.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundlePlugin.html
@@ -50,1496 +50,1539 @@
 <a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
 <a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
 <a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
-<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> java.util.TreeSet;
-<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Attributes;
-<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Manifest;
-<a name="46" href="#46">46</a>  
-<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.ManifestSection;
-<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.MavenArchiveConfiguration;
-<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.MavenArchiver;
-<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
-<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
-<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.execution.MavenSession;
-<a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.License;
-<a name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Model;
-<a name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Resource;
-<a name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
-<a name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
-<a name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoFailureException;
-<a name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
-<a name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
-<a name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProjectHelper;
-<a name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.DefaultMaven2OsgiConverter;
-<a name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.Maven2OsgiConverter;
-<a name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.archiver.UnArchiver;
-<a name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.archiver.manager.ArchiverManager;
-<a name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.DirectoryScanner;
-<a name="67" href="#67">67</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.FileUtils;
+<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Attributes;
+<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Manifest;
+<a name="45" href="#45">45</a>  
+<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.ManifestSection;
+<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.MavenArchiveConfiguration;
+<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.MavenArchiver;
+<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
+<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.execution.MavenSession;
+<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.License;
+<a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Model;
+<a name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Resource;
+<a name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<a name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoFailureException;
+<a name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
+<a name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProjectHelper;
+<a name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.DefaultMaven2OsgiConverter;
+<a name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.Maven2OsgiConverter;
+<a name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.archiver.UnArchiver;
+<a name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.archiver.manager.ArchiverManager;
+<a name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.DirectoryScanner;
+<a name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.FileUtils;
+<a name="67" href="#67">67</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.PropertyUtils;
 <a name="68" href="#68">68</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.StringUtils;
 <a name="69" href="#69">69</a>  
-<a name="70" href="#70">70</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
-<a name="71" href="#71">71</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Builder;
-<a name="72" href="#72">72</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Constants;
-<a name="73" href="#73">73</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.EmbeddedResource;
-<a name="74" href="#74">74</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.FileResource;
-<a name="75" href="#75">75</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
-<a name="76" href="#76">76</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Processor;
-<a name="77" href="#77">77</a>  <strong class="jxr_keyword">import</strong> aQute.lib.spring.SpringXMLType;
-<a name="78" href="#78">78</a>  
-<a name="79" href="#79">79</a>  
-<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">/**</em>
-<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment"> * Create an OSGi bundle from Maven project</em>
-<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment"> *</em>
-<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment"> * @goal bundle</em>
-<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment"> * @phase package</em>
-<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment"> * @requiresDependencyResolution test</em>
-<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment"> * @description build an OSGi bundle jar</em>
-<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment"> * @threadSafe</em>
-<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment"> */</em>
-<a name="89" href="#89">89</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/BundlePlugin.html">BundlePlugin</a> <strong class="jxr_keyword">extends</strong> AbstractMojo
-<a name="90" href="#90">90</a>  {
-<a name="91" href="#91">91</a>      <em class="jxr_javadoccomment">/**</em>
-<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     * Directory where the manifest will be written</em>
-<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     *</em>
-<a name="94" href="#94">94</a>  <em class="jxr_javadoccomment">     * @parameter expression="${manifestLocation}" default-value="${project.build.outputDirectory}/META-INF"</em>
-<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     */</em>
-<a name="96" href="#96">96</a>      <strong class="jxr_keyword">protected</strong> File manifestLocation;
-<a name="97" href="#97">97</a>  
-<a name="98" href="#98">98</a>      <em class="jxr_javadoccomment">/**</em>
-<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     * File where the BND instructions will be dumped</em>
-<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     *</em>
-<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     * @parameter expression="${dumpInstructions}"</em>
-<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     */</em>
-<a name="103" href="#103">103</a>     <strong class="jxr_keyword">protected</strong> File dumpInstructions;
-<a name="104" href="#104">104</a> 
-<a name="105" href="#105">105</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="106" href="#106">106</a> <em class="jxr_javadoccomment">     * File where the BND class-path will be dumped</em>
-<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     *</em>
-<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     * @parameter expression="${dumpClasspath}"</em>
-<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     */</em>
-<a name="110" href="#110">110</a>     <strong class="jxr_keyword">protected</strong> File dumpClasspath;
-<a name="111" href="#111">111</a> 
-<a name="112" href="#112">112</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">     * When true, unpack the bundle contents to the outputDirectory</em>
-<a name="114" href="#114">114</a> <em class="jxr_javadoccomment">     *</em>
-<a name="115" href="#115">115</a> <em class="jxr_javadoccomment">     * @parameter expression="${unpackBundle}"</em>
-<a name="116" href="#116">116</a> <em class="jxr_javadoccomment">     */</em>
-<a name="117" href="#117">117</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> unpackBundle;
-<a name="118" href="#118">118</a> 
-<a name="119" href="#119">119</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     * Comma separated list of artifactIds to exclude from the dependency classpath passed to BND (use "true" to exclude everything)</em>
-<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     *</em>
-<a name="122" href="#122">122</a> <em class="jxr_javadoccomment">     * @parameter expression="${excludeDependencies}"</em>
-<a name="123" href="#123">123</a> <em class="jxr_javadoccomment">     */</em>
-<a name="124" href="#124">124</a>     <strong class="jxr_keyword">protected</strong> String excludeDependencies;
-<a name="125" href="#125">125</a> 
-<a name="126" href="#126">126</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     * Classifier type of the bundle to be installed.  For example, "jdk14".</em>
-<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     * Defaults to none which means this is the project's main bundle.</em>
-<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">     *</em>
-<a name="130" href="#130">130</a> <em class="jxr_javadoccomment">     * @parameter</em>
-<a name="131" href="#131">131</a> <em class="jxr_javadoccomment">     */</em>
-<a name="132" href="#132">132</a>     <strong class="jxr_keyword">protected</strong> String classifier;
-<a name="133" href="#133">133</a> 
-<a name="134" href="#134">134</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="135" href="#135">135</a> <em class="jxr_javadoccomment">     * @component</em>
-<a name="136" href="#136">136</a> <em class="jxr_javadoccomment">     */</em>
-<a name="137" href="#137">137</a>     <strong class="jxr_keyword">private</strong> MavenProjectHelper m_projectHelper;
-<a name="138" href="#138">138</a> 
-<a name="139" href="#139">139</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="140" href="#140">140</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="70" href="#70">70</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.header.Attrs;
+<a name="71" href="#71">71</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Analyzer;
+<a name="72" href="#72">72</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Builder;
+<a name="73" href="#73">73</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Constants;
+<a name="74" href="#74">74</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Descriptors.PackageRef;
+<a name="75" href="#75">75</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.EmbeddedResource;
+<a name="76" href="#76">76</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.FileResource;
+<a name="77" href="#77">77</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Jar;
+<a name="78" href="#78">78</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Packages;
+<a name="79" href="#79">79</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Processor;
+<a name="80" href="#80">80</a>  <strong class="jxr_keyword">import</strong> aQute.lib.spring.SpringXMLType;
+<a name="81" href="#81">81</a>  
+<a name="82" href="#82">82</a>  
+<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment"> * Create an OSGi bundle from Maven project</em>
+<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment"> *</em>
+<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment"> * @goal bundle</em>
+<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment"> * @phase package</em>
+<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment"> * @requiresDependencyResolution test</em>
+<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment"> * @description build an OSGi bundle jar</em>
+<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment"> * @threadSafe</em>
+<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="92" href="#92">92</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/BundlePlugin.html">BundlePlugin</a> <strong class="jxr_keyword">extends</strong> AbstractMojo
+<a name="93" href="#93">93</a>  {
+<a name="94" href="#94">94</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     * Directory where the manifest will be written</em>
+<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     * @parameter expression="${manifestLocation}" default-value="${project.build.outputDirectory}/META-INF"</em>
+<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="99" href="#99">99</a>      <strong class="jxr_keyword">protected</strong> File manifestLocation;
+<a name="100" href="#100">100</a> 
+<a name="101" href="#101">101</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     * File where the BND instructions will be dumped</em>
+<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     *</em>
+<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     * @parameter expression="${dumpInstructions}"</em>
+<a name="105" href="#105">105</a> <em class="jxr_javadoccomment">     */</em>
+<a name="106" href="#106">106</a>     <strong class="jxr_keyword">protected</strong> File dumpInstructions;
+<a name="107" href="#107">107</a> 
+<a name="108" href="#108">108</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     * File where the BND class-path will be dumped</em>
+<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     *</em>
+<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     * @parameter expression="${dumpClasspath}"</em>
+<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     */</em>
+<a name="113" href="#113">113</a>     <strong class="jxr_keyword">protected</strong> File dumpClasspath;
+<a name="114" href="#114">114</a> 
+<a name="115" href="#115">115</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="116" href="#116">116</a> <em class="jxr_javadoccomment">     * When true, unpack the bundle contents to the outputDirectory</em>
+<a name="117" href="#117">117</a> <em class="jxr_javadoccomment">     *</em>
+<a name="118" href="#118">118</a> <em class="jxr_javadoccomment">     * @parameter expression="${unpackBundle}"</em>
+<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">     */</em>
+<a name="120" href="#120">120</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> unpackBundle;
+<a name="121" href="#121">121</a> 
+<a name="122" href="#122">122</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="123" href="#123">123</a> <em class="jxr_javadoccomment">     * Comma separated list of artifactIds to exclude from the dependency classpath passed to BND (use "true" to exclude everything)</em>
+<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">     *</em>
+<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">     * @parameter expression="${excludeDependencies}"</em>
+<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     */</em>
+<a name="127" href="#127">127</a>     <strong class="jxr_keyword">protected</strong> String excludeDependencies;
+<a name="128" href="#128">128</a> 
+<a name="129" href="#129">129</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="130" href="#130">130</a> <em class="jxr_javadoccomment">     * Final name of the bundle (without classifier or extension)</em>
+<a name="131" href="#131">131</a> <em class="jxr_javadoccomment">     * </em>
+<a name="132" href="#132">132</a> <em class="jxr_javadoccomment">     * @parameter expression="${project.build.finalName}"</em>
+<a name="133" href="#133">133</a> <em class="jxr_javadoccomment">     */</em> 
+<a name="134" href="#134">134</a>     <strong class="jxr_keyword">private</strong> String finalName; 
+<a name="135" href="#135">135</a> 
+<a name="136" href="#136">136</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="137" href="#137">137</a> <em class="jxr_javadoccomment">     * Classifier type of the bundle to be installed.  For example, "jdk14".</em>
+<a name="138" href="#138">138</a> <em class="jxr_javadoccomment">     * Defaults to none which means this is the project's main bundle.</em>
+<a name="139" href="#139">139</a> <em class="jxr_javadoccomment">     *</em>
+<a name="140" href="#140">140</a> <em class="jxr_javadoccomment">     * @parameter</em>
 <a name="141" href="#141">141</a> <em class="jxr_javadoccomment">     */</em>
-<a name="142" href="#142">142</a>     <strong class="jxr_keyword">private</strong> ArchiverManager m_archiverManager;
+<a name="142" href="#142">142</a>     <strong class="jxr_keyword">protected</strong> String classifier;
 <a name="143" href="#143">143</a> 
 <a name="144" href="#144">144</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * @component</em>
-<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     */</em>
-<a name="147" href="#147">147</a>     <strong class="jxr_keyword">private</strong> ArtifactHandlerManager m_artifactHandlerManager;
-<a name="148" href="#148">148</a> 
-<a name="149" href="#149">149</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">     * Project types which this plugin supports.</em>
-<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">     *</em>
-<a name="152" href="#152">152</a> <em class="jxr_javadoccomment">     * @parameter</em>
-<a name="153" href="#153">153</a> <em class="jxr_javadoccomment">     */</em>
-<a name="154" href="#154">154</a>     <strong class="jxr_keyword">protected</strong> List supportedProjectTypes = Arrays.asList( <strong class="jxr_keyword">new</strong> String[]
-<a name="155" href="#155">155</a>         { <span class="jxr_string">"jar"</span>, <span class="jxr_string">"bundle"</span> } );
+<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * Packaging type of the bundle to be installed.  For example, "jar".</em>
+<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     * Defaults to none which means use the same packaging as the project.</em>
+<a name="147" href="#147">147</a> <em class="jxr_javadoccomment">     *</em>
+<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">     */</em>
+<a name="150" href="#150">150</a>     <strong class="jxr_keyword">protected</strong> String packaging;
+<a name="151" href="#151">151</a> 
+<a name="152" href="#152">152</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="153" href="#153">153</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="154" href="#154">154</a> <em class="jxr_javadoccomment">     */</em>
+<a name="155" href="#155">155</a>     <strong class="jxr_keyword">private</strong> MavenProjectHelper m_projectHelper;
 <a name="156" href="#156">156</a> 
 <a name="157" href="#157">157</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="158" href="#158">158</a> <em class="jxr_javadoccomment">     * The directory for the generated bundles.</em>
-<a name="159" href="#159">159</a> <em class="jxr_javadoccomment">     *</em>
-<a name="160" href="#160">160</a> <em class="jxr_javadoccomment">     * @parameter expression="${project.build.outputDirectory}"</em>
-<a name="161" href="#161">161</a> <em class="jxr_javadoccomment">     * @required</em>
-<a name="162" href="#162">162</a> <em class="jxr_javadoccomment">     */</em>
-<a name="163" href="#163">163</a>     <strong class="jxr_keyword">private</strong> File outputDirectory;
-<a name="164" href="#164">164</a> 
-<a name="165" href="#165">165</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="166" href="#166">166</a> <em class="jxr_javadoccomment">     * The directory for the generated JAR.</em>
-<a name="167" href="#167">167</a> <em class="jxr_javadoccomment">     *</em>
-<a name="168" href="#168">168</a> <em class="jxr_javadoccomment">     * @parameter expression="${project.build.directory}"</em>
-<a name="169" href="#169">169</a> <em class="jxr_javadoccomment">     * @required</em>
-<a name="170" href="#170">170</a> <em class="jxr_javadoccomment">     */</em>
-<a name="171" href="#171">171</a>     <strong class="jxr_keyword">private</strong> String buildDirectory;
-<a name="172" href="#172">172</a> 
-<a name="173" href="#173">173</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="174" href="#174">174</a> <em class="jxr_javadoccomment">     * The Maven project.</em>
-<a name="175" href="#175">175</a> <em class="jxr_javadoccomment">     *</em>
-<a name="176" href="#176">176</a> <em class="jxr_javadoccomment">     * @parameter expression="${project}"</em>
-<a name="177" href="#177">177</a> <em class="jxr_javadoccomment">     * @required</em>
-<a name="178" href="#178">178</a> <em class="jxr_javadoccomment">     * @readonly</em>
-<a name="179" href="#179">179</a> <em class="jxr_javadoccomment">     */</em>
-<a name="180" href="#180">180</a>     <strong class="jxr_keyword">private</strong> MavenProject project;
-<a name="181" href="#181">181</a> 
-<a name="182" href="#182">182</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="183" href="#183">183</a> <em class="jxr_javadoccomment">     * The BND instructions for the bundle.</em>
-<a name="184" href="#184">184</a> <em class="jxr_javadoccomment">     *</em>
-<a name="185" href="#185">185</a> <em class="jxr_javadoccomment">     * @parameter</em>
-<a name="186" href="#186">186</a> <em class="jxr_javadoccomment">     */</em>
-<a name="187" href="#187">187</a>     <strong class="jxr_keyword">private</strong> Map instructions = <strong class="jxr_keyword">new</strong> LinkedHashMap();
-<a name="188" href="#188">188</a> 
-<a name="189" href="#189">189</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="190" href="#190">190</a> <em class="jxr_javadoccomment">     * Use locally patched version for now.</em>
-<a name="191" href="#191">191</a> <em class="jxr_javadoccomment">     */</em>
-<a name="192" href="#192">192</a>     <strong class="jxr_keyword">private</strong> Maven2OsgiConverter m_maven2OsgiConverter = <strong class="jxr_keyword">new</strong> DefaultMaven2OsgiConverter();
-<a name="193" href="#193">193</a> 
-<a name="194" href="#194">194</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="195" href="#195">195</a> <em class="jxr_javadoccomment">     * The archive configuration to use.</em>
-<a name="196" href="#196">196</a> <em class="jxr_javadoccomment">     *</em>
-<a name="197" href="#197">197</a> <em class="jxr_javadoccomment">     * @parameter</em>
-<a name="198" href="#198">198</a> <em class="jxr_javadoccomment">     */</em>
-<a name="199" href="#199">199</a>     <strong class="jxr_keyword">private</strong> MavenArchiveConfiguration archive; <em class="jxr_comment">// accessed indirectly in JarPluginConfiguration</em>
-<a name="200" href="#200">200</a> 
-<a name="201" href="#201">201</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="202" href="#202">202</a> <em class="jxr_javadoccomment">     * @parameter default-value="${session}"</em>
-<a name="203" href="#203">203</a> <em class="jxr_javadoccomment">     * @required</em>
-<a name="204" href="#204">204</a> <em class="jxr_javadoccomment">     * @readonly</em>
-<a name="205" href="#205">205</a> <em class="jxr_javadoccomment">     */</em>
-<a name="206" href="#206">206</a>     <strong class="jxr_keyword">private</strong> MavenSession m_mavenSession;
-<a name="207" href="#207">207</a> 
-<a name="208" href="#208">208</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_SYMBOLICNAME = <span class="jxr_string">"maven-symbolicname"</span>;
-<a name="209" href="#209">209</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_RESOURCES = <span class="jxr_string">"{maven-resources}"</span>;
-<a name="210" href="#210">210</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LOCAL_PACKAGES = <span class="jxr_string">"{local-packages}"</span>;
-<a name="211" href="#211">211</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_SOURCES = <span class="jxr_string">"{maven-sources}"</span>;
-<a name="212" href="#212">212</a> 
-<a name="213" href="#213">213</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String[] EMPTY_STRING_ARRAY =
-<a name="214" href="#214">214</a>         {};
-<a name="215" href="#215">215</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String[] DEFAULT_INCLUDES =
-<a name="216" href="#216">216</a>         { <span class="jxr_string">"**/**"</span> };
-<a name="217" href="#217">217</a> 
-<a name="218" href="#218">218</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String NL = System.getProperty( <span class="jxr_string">"line.separator"</span> );
-<a name="219" href="#219">219</a> 
-<a name="220" href="#220">220</a> 
-<a name="221" href="#221">221</a>     <strong class="jxr_keyword">protected</strong> Maven2OsgiConverter getMaven2OsgiConverter()
-<a name="222" href="#222">222</a>     {
-<a name="223" href="#223">223</a>         <strong class="jxr_keyword">return</strong> m_maven2OsgiConverter;
-<a name="224" href="#224">224</a>     }
+<a name="158" href="#158">158</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="159" href="#159">159</a> <em class="jxr_javadoccomment">     */</em>
+<a name="160" href="#160">160</a>     <strong class="jxr_keyword">private</strong> ArchiverManager m_archiverManager;
+<a name="161" href="#161">161</a> 
+<a name="162" href="#162">162</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="163" href="#163">163</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="164" href="#164">164</a> <em class="jxr_javadoccomment">     */</em>
+<a name="165" href="#165">165</a>     <strong class="jxr_keyword">private</strong> ArtifactHandlerManager m_artifactHandlerManager;
+<a name="166" href="#166">166</a> 
+<a name="167" href="#167">167</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="168" href="#168">168</a> <em class="jxr_javadoccomment">     * Project types which this plugin supports.</em>
+<a name="169" href="#169">169</a> <em class="jxr_javadoccomment">     *</em>
+<a name="170" href="#170">170</a> <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="171" href="#171">171</a> <em class="jxr_javadoccomment">     */</em>
+<a name="172" href="#172">172</a>     <strong class="jxr_keyword">protected</strong> List supportedProjectTypes = Arrays.asList( <strong class="jxr_keyword">new</strong> String[]
+<a name="173" href="#173">173</a>         { <span class="jxr_string">"jar"</span>, <span class="jxr_string">"bundle"</span> } );
+<a name="174" href="#174">174</a> 
+<a name="175" href="#175">175</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="176" href="#176">176</a> <em class="jxr_javadoccomment">     * The directory for the generated bundles.</em>
+<a name="177" href="#177">177</a> <em class="jxr_javadoccomment">     *</em>
+<a name="178" href="#178">178</a> <em class="jxr_javadoccomment">     * @parameter expression="${project.build.outputDirectory}"</em>
+<a name="179" href="#179">179</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="180" href="#180">180</a> <em class="jxr_javadoccomment">     */</em>
+<a name="181" href="#181">181</a>     <strong class="jxr_keyword">private</strong> File outputDirectory;
+<a name="182" href="#182">182</a> 
+<a name="183" href="#183">183</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="184" href="#184">184</a> <em class="jxr_javadoccomment">     * The directory for the generated JAR.</em>
+<a name="185" href="#185">185</a> <em class="jxr_javadoccomment">     *</em>
+<a name="186" href="#186">186</a> <em class="jxr_javadoccomment">     * @parameter expression="${project.build.directory}"</em>
+<a name="187" href="#187">187</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="188" href="#188">188</a> <em class="jxr_javadoccomment">     */</em>
+<a name="189" href="#189">189</a>     <strong class="jxr_keyword">private</strong> String buildDirectory;
+<a name="190" href="#190">190</a> 
+<a name="191" href="#191">191</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="192" href="#192">192</a> <em class="jxr_javadoccomment">     * The Maven project.</em>
+<a name="193" href="#193">193</a> <em class="jxr_javadoccomment">     *</em>
+<a name="194" href="#194">194</a> <em class="jxr_javadoccomment">     * @parameter expression="${project}"</em>
+<a name="195" href="#195">195</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="196" href="#196">196</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="197" href="#197">197</a> <em class="jxr_javadoccomment">     */</em>
+<a name="198" href="#198">198</a>     <strong class="jxr_keyword">private</strong> MavenProject project;
+<a name="199" href="#199">199</a> 
+<a name="200" href="#200">200</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="201" href="#201">201</a> <em class="jxr_javadoccomment">     * The BND instructions for the bundle.</em>
+<a name="202" href="#202">202</a> <em class="jxr_javadoccomment">     *</em>
+<a name="203" href="#203">203</a> <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="204" href="#204">204</a> <em class="jxr_javadoccomment">     */</em>
+<a name="205" href="#205">205</a>     <strong class="jxr_keyword">private</strong> Map instructions = <strong class="jxr_keyword">new</strong> LinkedHashMap();
+<a name="206" href="#206">206</a> 
+<a name="207" href="#207">207</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="208" href="#208">208</a> <em class="jxr_javadoccomment">     * Use locally patched version for now.</em>
+<a name="209" href="#209">209</a> <em class="jxr_javadoccomment">     */</em>
+<a name="210" href="#210">210</a>     <strong class="jxr_keyword">private</strong> Maven2OsgiConverter m_maven2OsgiConverter = <strong class="jxr_keyword">new</strong> DefaultMaven2OsgiConverter();
+<a name="211" href="#211">211</a> 
+<a name="212" href="#212">212</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="213" href="#213">213</a> <em class="jxr_javadoccomment">     * The archive configuration to use.</em>
+<a name="214" href="#214">214</a> <em class="jxr_javadoccomment">     *</em>
+<a name="215" href="#215">215</a> <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="216" href="#216">216</a> <em class="jxr_javadoccomment">     */</em>
+<a name="217" href="#217">217</a>     <strong class="jxr_keyword">private</strong> MavenArchiveConfiguration archive; <em class="jxr_comment">// accessed indirectly in JarPluginConfiguration</em>
+<a name="218" href="#218">218</a> 
+<a name="219" href="#219">219</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="220" href="#220">220</a> <em class="jxr_javadoccomment">     * @parameter default-value="${session}"</em>
+<a name="221" href="#221">221</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="222" href="#222">222</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="223" href="#223">223</a> <em class="jxr_javadoccomment">     */</em>
+<a name="224" href="#224">224</a>     <strong class="jxr_keyword">private</strong> MavenSession m_mavenSession;
 <a name="225" href="#225">225</a> 
-<a name="226" href="#226">226</a> 
-<a name="227" href="#227">227</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setMaven2OsgiConverter( Maven2OsgiConverter maven2OsgiConverter )
-<a name="228" href="#228">228</a>     {
-<a name="229" href="#229">229</a>         m_maven2OsgiConverter = maven2OsgiConverter;
-<a name="230" href="#230">230</a>     }
-<a name="231" href="#231">231</a> 
-<a name="232" href="#232">232</a> 
-<a name="233" href="#233">233</a>     <strong class="jxr_keyword">protected</strong> MavenProject getProject()
-<a name="234" href="#234">234</a>     {
-<a name="235" href="#235">235</a>         <strong class="jxr_keyword">return</strong> project;
-<a name="236" href="#236">236</a>     }
+<a name="226" href="#226">226</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_SYMBOLICNAME = <span class="jxr_string">"maven-symbolicname"</span>;
+<a name="227" href="#227">227</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_RESOURCES = <span class="jxr_string">"{maven-resources}"</span>;
+<a name="228" href="#228">228</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LOCAL_PACKAGES = <span class="jxr_string">"{local-packages}"</span>;
+<a name="229" href="#229">229</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_SOURCES = <span class="jxr_string">"{maven-sources}"</span>;
+<a name="230" href="#230">230</a> 
+<a name="231" href="#231">231</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String[] EMPTY_STRING_ARRAY =
+<a name="232" href="#232">232</a>         {};
+<a name="233" href="#233">233</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String[] DEFAULT_INCLUDES =
+<a name="234" href="#234">234</a>         { <span class="jxr_string">"**/**"</span> };
+<a name="235" href="#235">235</a> 
+<a name="236" href="#236">236</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String NL = System.getProperty( <span class="jxr_string">"line.separator"</span> );
 <a name="237" href="#237">237</a> 
 <a name="238" href="#238">238</a> 
-<a name="239" href="#239">239</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="240" href="#240">240</a> <em class="jxr_javadoccomment">     * @see org.apache.maven.plugin.AbstractMojo#execute()</em>
-<a name="241" href="#241">241</a> <em class="jxr_javadoccomment">     */</em>
-<a name="242" href="#242">242</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="243" href="#243">243</a>     {
-<a name="244" href="#244">244</a>         Properties properties = <strong class="jxr_keyword">new</strong> Properties();
-<a name="245" href="#245">245</a>         String projectType = getProject().getArtifact().getType();
-<a name="246" href="#246">246</a> 
-<a name="247" href="#247">247</a>         <em class="jxr_comment">// ignore unsupported project types, useful when bundleplugin is configured in parent pom</em>
-<a name="248" href="#248">248</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( projectType ) )
-<a name="249" href="#249">249</a>         {
-<a name="250" href="#250">250</a>             getLog().warn(
-<a name="251" href="#251">251</a>                 <span class="jxr_string">"Ignoring project type "</span> + projectType + <span class="jxr_string">" - supportedProjectTypes = "</span> + supportedProjectTypes );
-<a name="252" href="#252">252</a>             <strong class="jxr_keyword">return</strong>;
-<a name="253" href="#253">253</a>         }
-<a name="254" href="#254">254</a> 
-<a name="255" href="#255">255</a>         execute( getProject(), instructions, properties );
-<a name="256" href="#256">256</a>     }
-<a name="257" href="#257">257</a> 
-<a name="258" href="#258">258</a> 
-<a name="259" href="#259">259</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject currentProject, Map originalInstructions, Properties properties )
-<a name="260" href="#260">260</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="239" href="#239">239</a>     <strong class="jxr_keyword">protected</strong> Maven2OsgiConverter getMaven2OsgiConverter()
+<a name="240" href="#240">240</a>     {
+<a name="241" href="#241">241</a>         <strong class="jxr_keyword">return</strong> m_maven2OsgiConverter;
+<a name="242" href="#242">242</a>     }
+<a name="243" href="#243">243</a> 
+<a name="244" href="#244">244</a> 
+<a name="245" href="#245">245</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setMaven2OsgiConverter( Maven2OsgiConverter maven2OsgiConverter )
+<a name="246" href="#246">246</a>     {
+<a name="247" href="#247">247</a>         m_maven2OsgiConverter = maven2OsgiConverter;
+<a name="248" href="#248">248</a>     }
+<a name="249" href="#249">249</a> 
+<a name="250" href="#250">250</a> 
+<a name="251" href="#251">251</a>     <strong class="jxr_keyword">protected</strong> MavenProject getProject()
+<a name="252" href="#252">252</a>     {
+<a name="253" href="#253">253</a>         <strong class="jxr_keyword">return</strong> project;
+<a name="254" href="#254">254</a>     }
+<a name="255" href="#255">255</a> 
+<a name="256" href="#256">256</a> 
+<a name="257" href="#257">257</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="258" href="#258">258</a> <em class="jxr_javadoccomment">     * @see org.apache.maven.plugin.AbstractMojo#execute()</em>
+<a name="259" href="#259">259</a> <em class="jxr_javadoccomment">     */</em>
+<a name="260" href="#260">260</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
 <a name="261" href="#261">261</a>     {
-<a name="262" href="#262">262</a>         <strong class="jxr_keyword">try</strong>
-<a name="263" href="#263">263</a>         {
-<a name="264" href="#264">264</a>             execute( currentProject, originalInstructions, properties, getClasspath( currentProject ) );
-<a name="265" href="#265">265</a>         }
-<a name="266" href="#266">266</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="262" href="#262">262</a>         Properties properties = <strong class="jxr_keyword">new</strong> Properties();
+<a name="263" href="#263">263</a>         String projectType = getProject().getArtifact().getType();
+<a name="264" href="#264">264</a> 
+<a name="265" href="#265">265</a>         <em class="jxr_comment">// ignore unsupported project types, useful when bundleplugin is configured in parent pom</em>
+<a name="266" href="#266">266</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( projectType ) )
 <a name="267" href="#267">267</a>         {
-<a name="268" href="#268">268</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error calculating classpath for project "</span> + currentProject, e );
-<a name="269" href="#269">269</a>         }
-<a name="270" href="#270">270</a>     }
-<a name="271" href="#271">271</a> 
+<a name="268" href="#268">268</a>             getLog().warn(
+<a name="269" href="#269">269</a>                 <span class="jxr_string">"Ignoring project type "</span> + projectType + <span class="jxr_string">" - supportedProjectTypes = "</span> + supportedProjectTypes );
+<a name="270" href="#270">270</a>             <strong class="jxr_keyword">return</strong>;
+<a name="271" href="#271">271</a>         }
 <a name="272" href="#272">272</a> 
-<a name="273" href="#273">273</a>     <em class="jxr_comment">/*<em class="jxr_comment"> transform directives from their XML form to the expected BND syntax (eg. _include becomes -include) */</em></em>
-<a name="274" href="#274">274</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> Map transformDirectives( Map originalInstructions )
-<a name="275" href="#275">275</a>     {
-<a name="276" href="#276">276</a>         Map transformedInstructions = <strong class="jxr_keyword">new</strong> LinkedHashMap();
-<a name="277" href="#277">277</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = originalInstructions.entrySet().iterator(); i.hasNext(); )
-<a name="278" href="#278">278</a>         {
-<a name="279" href="#279">279</a>             Map.Entry e = ( Map.Entry ) i.next();
-<a name="280" href="#280">280</a> 
-<a name="281" href="#281">281</a>             String key = ( String ) e.getKey();
-<a name="282" href="#282">282</a>             <strong class="jxr_keyword">if</strong> ( key.startsWith( <span class="jxr_string">"_"</span> ) )
-<a name="283" href="#283">283</a>             {
-<a name="284" href="#284">284</a>                 key = <span class="jxr_string">"-"</span> + key.substring( 1 );
-<a name="285" href="#285">285</a>             }
-<a name="286" href="#286">286</a> 
-<a name="287" href="#287">287</a>             String value = ( String ) e.getValue();
-<a name="288" href="#288">288</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == value )
-<a name="289" href="#289">289</a>             {
-<a name="290" href="#290">290</a>                 value = <span class="jxr_string">""</span>;
-<a name="291" href="#291">291</a>             }
-<a name="292" href="#292">292</a>             <strong class="jxr_keyword">else</strong>
-<a name="293" href="#293">293</a>             {
-<a name="294" href="#294">294</a>                 value = value.replaceAll( <span class="jxr_string">"&#92;&#92;p{Blank}*[\r\n]&#92;&#92;p{Blank}*"</span>, <span class="jxr_string">""</span> );
-<a name="295" href="#295">295</a>             }
-<a name="296" href="#296">296</a> 
-<a name="297" href="#297">297</a>             <strong class="jxr_keyword">if</strong> ( Analyzer.WAB.equals( key ) &amp;&amp; value.length() == 0 )
-<a name="298" href="#298">298</a>             {
-<a name="299" href="#299">299</a>                 <em class="jxr_comment">// provide useful default</em>
-<a name="300" href="#300">300</a>                 value = <span class="jxr_string">"src/main/webapp/"</span>;
-<a name="301" href="#301">301</a>             }
-<a name="302" href="#302">302</a> 
-<a name="303" href="#303">303</a>             transformedInstructions.put( key, value );
-<a name="304" href="#304">304</a>         }
-<a name="305" href="#305">305</a>         <strong class="jxr_keyword">return</strong> transformedInstructions;
-<a name="306" href="#306">306</a>     }
-<a name="307" href="#307">307</a> 
-<a name="308" href="#308">308</a> 
-<a name="309" href="#309">309</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> reportErrors( String prefix, Analyzer analyzer )
-<a name="310" href="#310">310</a>     {
-<a name="311" href="#311">311</a>         List errors = analyzer.getErrors();
-<a name="312" href="#312">312</a>         List warnings = analyzer.getWarnings();
-<a name="313" href="#313">313</a> 
-<a name="314" href="#314">314</a>         <strong class="jxr_keyword">for</strong> ( Iterator w = warnings.iterator(); w.hasNext(); )
-<a name="315" href="#315">315</a>         {
-<a name="316" href="#316">316</a>             String msg = ( String ) w.next();
-<a name="317" href="#317">317</a>             getLog().warn( prefix + <span class="jxr_string">" : "</span> + msg );
-<a name="318" href="#318">318</a>         }
-<a name="319" href="#319">319</a> 
-<a name="320" href="#320">320</a>         <strong class="jxr_keyword">boolean</strong> hasErrors = false;
-<a name="321" href="#321">321</a>         String fileNotFound = <span class="jxr_string">"Input file does not exist: "</span>;
-<a name="322" href="#322">322</a>         <strong class="jxr_keyword">for</strong> ( Iterator e = errors.iterator(); e.hasNext(); )
-<a name="323" href="#323">323</a>         {
-<a name="324" href="#324">324</a>             String msg = ( String ) e.next();
-<a name="325" href="#325">325</a>             <strong class="jxr_keyword">if</strong> ( msg.startsWith( fileNotFound ) &amp;&amp; msg.endsWith( <span class="jxr_string">"~"</span> ) )
-<a name="326" href="#326">326</a>             {
-<a name="327" href="#327">327</a>                 <em class="jxr_comment">// treat as warning; this error happens when you have duplicate entries in Include-Resource</em>
-<a name="328" href="#328">328</a>                 String duplicate = Processor.removeDuplicateMarker( msg.substring( fileNotFound.length() ) );
-<a name="329" href="#329">329</a>                 getLog().warn( prefix + <span class="jxr_string">" : Duplicate path '"</span> + duplicate + <span class="jxr_string">"' in Include-Resource"</span> );
-<a name="330" href="#330">330</a>             }
-<a name="331" href="#331">331</a>             <strong class="jxr_keyword">else</strong>
-<a name="332" href="#332">332</a>             {
-<a name="333" href="#333">333</a>                 getLog().error( prefix + <span class="jxr_string">" : "</span> + msg );
-<a name="334" href="#334">334</a>                 hasErrors = <strong class="jxr_keyword">true</strong>;
-<a name="335" href="#335">335</a>             }
+<a name="273" href="#273">273</a>         execute( getProject(), instructions, properties );
+<a name="274" href="#274">274</a>     }
+<a name="275" href="#275">275</a> 
+<a name="276" href="#276">276</a> 
+<a name="277" href="#277">277</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject currentProject, Map originalInstructions, Properties properties )
+<a name="278" href="#278">278</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="279" href="#279">279</a>     {
+<a name="280" href="#280">280</a>         <strong class="jxr_keyword">try</strong>
+<a name="281" href="#281">281</a>         {
+<a name="282" href="#282">282</a>             execute( currentProject, originalInstructions, properties, getClasspath( currentProject ) );
+<a name="283" href="#283">283</a>         }
+<a name="284" href="#284">284</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="285" href="#285">285</a>         {
+<a name="286" href="#286">286</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error calculating classpath for project "</span> + currentProject, e );
+<a name="287" href="#287">287</a>         }
+<a name="288" href="#288">288</a>     }
+<a name="289" href="#289">289</a> 
+<a name="290" href="#290">290</a> 
+<a name="291" href="#291">291</a>     <em class="jxr_comment">/*<em class="jxr_comment"> transform directives from their XML form to the expected BND syntax (eg. _include becomes -include) */</em></em>
+<a name="292" href="#292">292</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> Map transformDirectives( Map originalInstructions )
+<a name="293" href="#293">293</a>     {
+<a name="294" href="#294">294</a>         Map transformedInstructions = <strong class="jxr_keyword">new</strong> LinkedHashMap();
+<a name="295" href="#295">295</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = originalInstructions.entrySet().iterator(); i.hasNext(); )
+<a name="296" href="#296">296</a>         {
+<a name="297" href="#297">297</a>             Map.Entry e = ( Map.Entry ) i.next();
+<a name="298" href="#298">298</a> 
+<a name="299" href="#299">299</a>             String key = ( String ) e.getKey();
+<a name="300" href="#300">300</a>             <strong class="jxr_keyword">if</strong> ( key.startsWith( <span class="jxr_string">"_"</span> ) )
+<a name="301" href="#301">301</a>             {
+<a name="302" href="#302">302</a>                 key = <span class="jxr_string">"-"</span> + key.substring( 1 );
+<a name="303" href="#303">303</a>             }
+<a name="304" href="#304">304</a> 
+<a name="305" href="#305">305</a>             String value = ( String ) e.getValue();
+<a name="306" href="#306">306</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == value )
+<a name="307" href="#307">307</a>             {
+<a name="308" href="#308">308</a>                 value = <span class="jxr_string">""</span>;
+<a name="309" href="#309">309</a>             }
+<a name="310" href="#310">310</a>             <strong class="jxr_keyword">else</strong>
+<a name="311" href="#311">311</a>             {
+<a name="312" href="#312">312</a>                 value = value.replaceAll( <span class="jxr_string">"&#92;&#92;p{Blank}*[\r\n]&#92;&#92;p{Blank}*"</span>, <span class="jxr_string">""</span> );
+<a name="313" href="#313">313</a>             }
+<a name="314" href="#314">314</a> 
+<a name="315" href="#315">315</a>             <strong class="jxr_keyword">if</strong> ( Analyzer.WAB.equals( key ) &amp;&amp; value.length() == 0 )
+<a name="316" href="#316">316</a>             {
+<a name="317" href="#317">317</a>                 <em class="jxr_comment">// provide useful default</em>
+<a name="318" href="#318">318</a>                 value = <span class="jxr_string">"src/main/webapp/"</span>;
+<a name="319" href="#319">319</a>             }
+<a name="320" href="#320">320</a> 
+<a name="321" href="#321">321</a>             transformedInstructions.put( key, value );
+<a name="322" href="#322">322</a>         }
+<a name="323" href="#323">323</a>         <strong class="jxr_keyword">return</strong> transformedInstructions;
+<a name="324" href="#324">324</a>     }
+<a name="325" href="#325">325</a> 
+<a name="326" href="#326">326</a> 
+<a name="327" href="#327">327</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> reportErrors( String prefix, Analyzer analyzer )
+<a name="328" href="#328">328</a>     {
+<a name="329" href="#329">329</a>         List errors = analyzer.getErrors();
+<a name="330" href="#330">330</a>         List warnings = analyzer.getWarnings();
+<a name="331" href="#331">331</a> 
+<a name="332" href="#332">332</a>         <strong class="jxr_keyword">for</strong> ( Iterator w = warnings.iterator(); w.hasNext(); )
+<a name="333" href="#333">333</a>         {
+<a name="334" href="#334">334</a>             String msg = ( String ) w.next();
+<a name="335" href="#335">335</a>             getLog().warn( prefix + <span class="jxr_string">" : "</span> + msg );
 <a name="336" href="#336">336</a>         }
-<a name="337" href="#337">337</a>         <strong class="jxr_keyword">return</strong> hasErrors;
-<a name="338" href="#338">338</a>     }
-<a name="339" href="#339">339</a> 
-<a name="340" href="#340">340</a> 
-<a name="341" href="#341">341</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject currentProject, Map originalInstructions, Properties properties,
-<a name="342" href="#342">342</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="343" href="#343">343</a>     {
-<a name="344" href="#344">344</a>         <strong class="jxr_keyword">try</strong>
-<a name="345" href="#345">345</a>         {
-<a name="346" href="#346">346</a>             File jarFile = <strong class="jxr_keyword">new</strong> File( getBuildDirectory(), getBundleName( currentProject ) );
-<a name="347" href="#347">347</a>             Builder builder = buildOSGiBundle( currentProject, originalInstructions, properties, classpath );
-<a name="348" href="#348">348</a>             <strong class="jxr_keyword">boolean</strong> hasErrors = reportErrors( <span class="jxr_string">"Bundle "</span> + currentProject.getArtifact(), builder );
-<a name="349" href="#349">349</a>             <strong class="jxr_keyword">if</strong> ( hasErrors )
+<a name="337" href="#337">337</a> 
+<a name="338" href="#338">338</a>         <strong class="jxr_keyword">boolean</strong> hasErrors = false;
+<a name="339" href="#339">339</a>         String fileNotFound = <span class="jxr_string">"Input file does not exist: "</span>;
+<a name="340" href="#340">340</a>         <strong class="jxr_keyword">for</strong> ( Iterator e = errors.iterator(); e.hasNext(); )
+<a name="341" href="#341">341</a>         {
+<a name="342" href="#342">342</a>             String msg = ( String ) e.next();
+<a name="343" href="#343">343</a>             <strong class="jxr_keyword">if</strong> ( msg.startsWith( fileNotFound ) &amp;&amp; msg.endsWith( <span class="jxr_string">"~"</span> ) )
+<a name="344" href="#344">344</a>             {
+<a name="345" href="#345">345</a>                 <em class="jxr_comment">// treat as warning; this error happens when you have duplicate entries in Include-Resource</em>
+<a name="346" href="#346">346</a>                 String duplicate = Processor.removeDuplicateMarker( msg.substring( fileNotFound.length() ) );
+<a name="347" href="#347">347</a>                 getLog().warn( prefix + <span class="jxr_string">" : Duplicate path '"</span> + duplicate + <span class="jxr_string">"' in Include-Resource"</span> );
+<a name="348" href="#348">348</a>             }
+<a name="349" href="#349">349</a>             <strong class="jxr_keyword">else</strong>
 <a name="350" href="#350">350</a>             {
-<a name="351" href="#351">351</a>                 String failok = builder.getProperty( <span class="jxr_string">"-failok"</span> );
-<a name="352" href="#352">352</a>                 <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == failok || <span class="jxr_string">"false"</span>.equalsIgnoreCase( failok ) )
-<a name="353" href="#353">353</a>                 {
-<a name="354" href="#354">354</a>                     jarFile.delete();
-<a name="355" href="#355">355</a> 
-<a name="356" href="#356">356</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoFailureException( <span class="jxr_string">"Error(s) found in bundle configuration"</span> );
-<a name="357" href="#357">357</a>                 }
-<a name="358" href="#358">358</a>             }
-<a name="359" href="#359">359</a> 
-<a name="360" href="#360">360</a>             <em class="jxr_comment">// attach bundle to maven project</em>
-<a name="361" href="#361">361</a>             jarFile.getParentFile().mkdirs();
-<a name="362" href="#362">362</a>             builder.getJar().write( jarFile );
-<a name="363" href="#363">363</a> 
-<a name="364" href="#364">364</a>             Artifact mainArtifact = currentProject.getArtifact();
-<a name="365" href="#365">365</a> 
-<a name="366" href="#366">366</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"bundle"</span>.equals( mainArtifact.getType() ) )
-<a name="367" href="#367">367</a>             {
-<a name="368" href="#368">368</a>                 <em class="jxr_comment">// workaround for MNG-1682: force maven to install artifact using the "jar" handler</em>
-<a name="369" href="#369">369</a>                 mainArtifact.setArtifactHandler( m_artifactHandlerManager.getArtifactHandler( <span class="jxr_string">"jar"</span> ) );
-<a name="370" href="#370">370</a>             }
-<a name="371" href="#371">371</a> 
-<a name="372" href="#372">372</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == classifier || classifier.trim().length() == 0 )
-<a name="373" href="#373">373</a>             {
-<a name="374" href="#374">374</a>                 mainArtifact.setFile( jarFile );
-<a name="375" href="#375">375</a>             }
-<a name="376" href="#376">376</a>             <strong class="jxr_keyword">else</strong>
-<a name="377" href="#377">377</a>             {
-<a name="378" href="#378">378</a>                 m_projectHelper.attachArtifact( currentProject, jarFile, classifier );
-<a name="379" href="#379">379</a>             }
-<a name="380" href="#380">380</a> 
-<a name="381" href="#381">381</a>             <strong class="jxr_keyword">if</strong> ( unpackBundle )
-<a name="382" href="#382">382</a>             {
-<a name="383" href="#383">383</a>                 unpackBundle( jarFile );
-<a name="384" href="#384">384</a>             }
-<a name="385" href="#385">385</a> 
-<a name="386" href="#386">386</a>             <strong class="jxr_keyword">if</strong> ( manifestLocation != <strong class="jxr_keyword">null</strong> )
-<a name="387" href="#387">387</a>             {
-<a name="388" href="#388">388</a>                 File outputFile = <strong class="jxr_keyword">new</strong> File( manifestLocation, <span class="jxr_string">"MANIFEST.MF"</span> );
+<a name="351" href="#351">351</a>                 getLog().error( prefix + <span class="jxr_string">" : "</span> + msg );
+<a name="352" href="#352">352</a>                 hasErrors = <strong class="jxr_keyword">true</strong>;
+<a name="353" href="#353">353</a>             }
+<a name="354" href="#354">354</a>         }
+<a name="355" href="#355">355</a>         <strong class="jxr_keyword">return</strong> hasErrors;
+<a name="356" href="#356">356</a>     }
+<a name="357" href="#357">357</a> 
+<a name="358" href="#358">358</a> 
+<a name="359" href="#359">359</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject currentProject, Map originalInstructions, Properties properties,
+<a name="360" href="#360">360</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="361" href="#361">361</a>     {
+<a name="362" href="#362">362</a>         <strong class="jxr_keyword">try</strong>
+<a name="363" href="#363">363</a>         {
+<a name="364" href="#364">364</a>             File jarFile = <strong class="jxr_keyword">new</strong> File( getBuildDirectory(), getBundleName( currentProject ) );
+<a name="365" href="#365">365</a>             Builder builder = buildOSGiBundle( currentProject, originalInstructions, properties, classpath );
+<a name="366" href="#366">366</a>             <strong class="jxr_keyword">boolean</strong> hasErrors = reportErrors( <span class="jxr_string">"Bundle "</span> + currentProject.getArtifact(), builder );
+<a name="367" href="#367">367</a>             <strong class="jxr_keyword">if</strong> ( hasErrors )
+<a name="368" href="#368">368</a>             {
+<a name="369" href="#369">369</a>                 String failok = builder.getProperty( <span class="jxr_string">"-failok"</span> );
+<a name="370" href="#370">370</a>                 <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == failok || <span class="jxr_string">"false"</span>.equalsIgnoreCase( failok ) )
+<a name="371" href="#371">371</a>                 {
+<a name="372" href="#372">372</a>                     jarFile.delete();
+<a name="373" href="#373">373</a> 
+<a name="374" href="#374">374</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoFailureException( <span class="jxr_string">"Error(s) found in bundle configuration"</span> );
+<a name="375" href="#375">375</a>                 }
+<a name="376" href="#376">376</a>             }
+<a name="377" href="#377">377</a> 
+<a name="378" href="#378">378</a>             <em class="jxr_comment">// attach bundle to maven project</em>
+<a name="379" href="#379">379</a>             jarFile.getParentFile().mkdirs();
+<a name="380" href="#380">380</a>             builder.getJar().write( jarFile );
+<a name="381" href="#381">381</a> 
+<a name="382" href="#382">382</a>             Artifact mainArtifact = currentProject.getArtifact();
+<a name="383" href="#383">383</a> 
+<a name="384" href="#384">384</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"bundle"</span>.equals( mainArtifact.getType() ) )
+<a name="385" href="#385">385</a>             {
+<a name="386" href="#386">386</a>                 <em class="jxr_comment">// workaround for MNG-1682: force maven to install artifact using the "jar" handler</em>
+<a name="387" href="#387">387</a>                 mainArtifact.setArtifactHandler( m_artifactHandlerManager.getArtifactHandler( <span class="jxr_string">"jar"</span> ) );
+<a name="388" href="#388">388</a>             }
 <a name="389" href="#389">389</a> 
-<a name="390" href="#390">390</a>                 <strong class="jxr_keyword">try</strong>
-<a name="391" href="#391">391</a>                 {
-<a name="392" href="#392">392</a>                     Manifest manifest = builder.getJar().getManifest();
-<a name="393" href="#393">393</a>                     ManifestPlugin.writeManifest( manifest, outputFile );
-<a name="394" href="#394">394</a>                 }
-<a name="395" href="#395">395</a>                 <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="396" href="#396">396</a>                 {
-<a name="397" href="#397">397</a>                     getLog().error( <span class="jxr_string">"Error trying to write Manifest to file "</span> + outputFile, e );
-<a name="398" href="#398">398</a>                 }
-<a name="399" href="#399">399</a>             }
-<a name="400" href="#400">400</a> 
-<a name="401" href="#401">401</a>             <em class="jxr_comment">// cleanup...</em>
-<a name="402" href="#402">402</a>             builder.close();
-<a name="403" href="#403">403</a>         }
-<a name="404" href="#404">404</a>         <strong class="jxr_keyword">catch</strong> ( MojoFailureException e )
-<a name="405" href="#405">405</a>         {
-<a name="406" href="#406">406</a>             getLog().error( e.getLocalizedMessage() );
-<a name="407" href="#407">407</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error(s) found in bundle configuration"</span>, e );
-<a name="408" href="#408">408</a>         }
-<a name="409" href="#409">409</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="410" href="#410">410</a>         {
-<a name="411" href="#411">411</a>             getLog().error( <span class="jxr_string">"An internal error occurred"</span>, e );
-<a name="412" href="#412">412</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Internal error in maven-bundle-plugin"</span>, e );
-<a name="413" href="#413">413</a>         }
-<a name="414" href="#414">414</a>     }
-<a name="415" href="#415">415</a> 
-<a name="416" href="#416">416</a> 
-<a name="417" href="#417">417</a>     <strong class="jxr_keyword">protected</strong> Builder getOSGiBuilder( MavenProject currentProject, Map originalInstructions, Properties properties,
-<a name="418" href="#418">418</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> Exception
-<a name="419" href="#419">419</a>     {
-<a name="420" href="#420">420</a>         properties.putAll( getDefaultProperties( currentProject ) );
-<a name="421" href="#421">421</a>         properties.putAll( transformDirectives( originalInstructions ) );
-<a name="422" href="#422">422</a> 
-<a name="423" href="#423">423</a>         Builder builder = <strong class="jxr_keyword">new</strong> Builder();
-<a name="424" href="#424">424</a>         builder.setBase( getBase( currentProject ) );
-<a name="425" href="#425">425</a>         builder.setProperties( sanitize( properties ) );
-<a name="426" href="#426">426</a>         <strong class="jxr_keyword">if</strong> ( classpath != <strong class="jxr_keyword">null</strong> )
-<a name="427" href="#427">427</a>         {
-<a name="428" href="#428">428</a>             builder.setClasspath( classpath );
-<a name="429" href="#429">429</a>         }
-<a name="430" href="#430">430</a> 
-<a name="431" href="#431">431</a>         <strong class="jxr_keyword">return</strong> builder;
-<a name="432" href="#432">432</a>     }
-<a name="433" href="#433">433</a> 
-<a name="434" href="#434">434</a> 
-<a name="435" href="#435">435</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> Properties sanitize( Properties properties )
-<a name="436" href="#436">436</a>     {
-<a name="437" href="#437">437</a>         <em class="jxr_comment">// convert any non-String keys/values to Strings</em>
-<a name="438" href="#438">438</a>         Properties sanitizedEntries = <strong class="jxr_keyword">new</strong> Properties();
-<a name="439" href="#439">439</a>         <strong class="jxr_keyword">for</strong> ( Iterator itr = properties.entrySet().iterator(); itr.hasNext(); )
-<a name="440" href="#440">440</a>         {
-<a name="441" href="#441">441</a>             Map.Entry entry = ( Map.Entry ) itr.next();
-<a name="442" href="#442">442</a>             <strong class="jxr_keyword">if</strong> ( entry.getKey() instanceof String == false )
-<a name="443" href="#443">443</a>             {
-<a name="444" href="#444">444</a>                 String key = sanitize( entry.getKey() );
-<a name="445" href="#445">445</a>                 <strong class="jxr_keyword">if</strong> ( !properties.containsKey( key ) )
-<a name="446" href="#446">446</a>                 {
-<a name="447" href="#447">447</a>                     sanitizedEntries.setProperty( key, sanitize( entry.getValue() ) );
-<a name="448" href="#448">448</a>                 }
-<a name="449" href="#449">449</a>                 itr.remove();
-<a name="450" href="#450">450</a>             }
-<a name="451" href="#451">451</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( entry.getValue() instanceof String == false )
-<a name="452" href="#452">452</a>             {
-<a name="453" href="#453">453</a>                 entry.setValue( sanitize( entry.getValue() ) );
-<a name="454" href="#454">454</a>             }
-<a name="455" href="#455">455</a>         }
-<a name="456" href="#456">456</a>         properties.putAll( sanitizedEntries );
-<a name="457" href="#457">457</a>         <strong class="jxr_keyword">return</strong> properties;
-<a name="458" href="#458">458</a>     }
-<a name="459" href="#459">459</a> 
-<a name="460" href="#460">460</a> 
-<a name="461" href="#461">461</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String sanitize( Object value )
-<a name="462" href="#462">462</a>     {
-<a name="463" href="#463">463</a>         <strong class="jxr_keyword">if</strong> ( value instanceof String )
-<a name="464" href="#464">464</a>         {
-<a name="465" href="#465">465</a>             <strong class="jxr_keyword">return</strong> ( String ) value;
-<a name="466" href="#466">466</a>         }
-<a name="467" href="#467">467</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( value instanceof Iterable )
-<a name="468" href="#468">468</a>         {
-<a name="469" href="#469">469</a>             String delim = <span class="jxr_string">""</span>;
-<a name="470" href="#470">470</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
-<a name="471" href="#471">471</a>             <strong class="jxr_keyword">for</strong> ( Object i : ( Iterable&lt;?&gt; ) value )
-<a name="472" href="#472">472</a>             {
-<a name="473" href="#473">473</a>                 buf.append( delim ).append( i );
-<a name="474" href="#474">474</a>                 delim = <span class="jxr_string">", "</span>;
-<a name="475" href="#475">475</a>             }
-<a name="476" href="#476">476</a>             <strong class="jxr_keyword">return</strong> buf.toString();
-<a name="477" href="#477">477</a>         }
-<a name="478" href="#478">478</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( value.getClass().isArray() )
-<a name="479" href="#479">479</a>         {
-<a name="480" href="#480">480</a>             String delim = <span class="jxr_string">""</span>;
-<a name="481" href="#481">481</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
-<a name="482" href="#482">482</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0, len = Array.getLength( value ); i &lt; len; i++ )
-<a name="483" href="#483">483</a>             {
-<a name="484" href="#484">484</a>                 buf.append( delim ).append( Array.get( value, i ) );
-<a name="485" href="#485">485</a>                 delim = <span class="jxr_string">", "</span>;
+<a name="390" href="#390">390</a>             <strong class="jxr_keyword">boolean</strong> customClassifier = <strong class="jxr_keyword">null</strong> != classifier &amp;&amp; classifier.trim().length() &gt; 0;
+<a name="391" href="#391">391</a>             <strong class="jxr_keyword">boolean</strong> customPackaging = <strong class="jxr_keyword">null</strong> != packaging &amp;&amp; packaging.trim().length() &gt; 0;
+<a name="392" href="#392">392</a> 
+<a name="393" href="#393">393</a>             <strong class="jxr_keyword">if</strong> ( customClassifier &amp;&amp; customPackaging )
+<a name="394" href="#394">394</a>             {
+<a name="395" href="#395">395</a>                 m_projectHelper.attachArtifact( currentProject, packaging, classifier, jarFile );
+<a name="396" href="#396">396</a>             }
+<a name="397" href="#397">397</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( customClassifier )
+<a name="398" href="#398">398</a>             {
+<a name="399" href="#399">399</a>                 m_projectHelper.attachArtifact( currentProject, jarFile, classifier );
+<a name="400" href="#400">400</a>             }
+<a name="401" href="#401">401</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( customPackaging )
+<a name="402" href="#402">402</a>             {
+<a name="403" href="#403">403</a>                 m_projectHelper.attachArtifact( currentProject, packaging, jarFile );
+<a name="404" href="#404">404</a>             }
+<a name="405" href="#405">405</a>             <strong class="jxr_keyword">else</strong>
+<a name="406" href="#406">406</a>             {
+<a name="407" href="#407">407</a>                 mainArtifact.setFile( jarFile );
+<a name="408" href="#408">408</a>             }
+<a name="409" href="#409">409</a> 
+<a name="410" href="#410">410</a>             <strong class="jxr_keyword">if</strong> ( unpackBundle )
+<a name="411" href="#411">411</a>             {
+<a name="412" href="#412">412</a>                 unpackBundle( jarFile );
+<a name="413" href="#413">413</a>             }
+<a name="414" href="#414">414</a> 
+<a name="415" href="#415">415</a>             <strong class="jxr_keyword">if</strong> ( manifestLocation != <strong class="jxr_keyword">null</strong> )
+<a name="416" href="#416">416</a>             {
+<a name="417" href="#417">417</a>                 File outputFile = <strong class="jxr_keyword">new</strong> File( manifestLocation, <span class="jxr_string">"MANIFEST.MF"</span> );
+<a name="418" href="#418">418</a> 
+<a name="419" href="#419">419</a>                 <strong class="jxr_keyword">try</strong>
+<a name="420" href="#420">420</a>                 {
+<a name="421" href="#421">421</a>                     Manifest manifest = builder.getJar().getManifest();
+<a name="422" href="#422">422</a>                     ManifestPlugin.writeManifest( manifest, outputFile );
+<a name="423" href="#423">423</a>                 }
+<a name="424" href="#424">424</a>                 <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="425" href="#425">425</a>                 {
+<a name="426" href="#426">426</a>                     getLog().error( <span class="jxr_string">"Error trying to write Manifest to file "</span> + outputFile, e );
+<a name="427" href="#427">427</a>                 }
+<a name="428" href="#428">428</a>             }
+<a name="429" href="#429">429</a> 
+<a name="430" href="#430">430</a>             <em class="jxr_comment">// cleanup...</em>
+<a name="431" href="#431">431</a>             builder.close();
+<a name="432" href="#432">432</a>         }
+<a name="433" href="#433">433</a>         <strong class="jxr_keyword">catch</strong> ( MojoFailureException e )
+<a name="434" href="#434">434</a>         {
+<a name="435" href="#435">435</a>             getLog().error( e.getLocalizedMessage() );
+<a name="436" href="#436">436</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error(s) found in bundle configuration"</span>, e );
+<a name="437" href="#437">437</a>         }
+<a name="438" href="#438">438</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="439" href="#439">439</a>         {
+<a name="440" href="#440">440</a>             getLog().error( <span class="jxr_string">"An internal error occurred"</span>, e );
+<a name="441" href="#441">441</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Internal error in maven-bundle-plugin"</span>, e );
+<a name="442" href="#442">442</a>         }
+<a name="443" href="#443">443</a>     }
+<a name="444" href="#444">444</a> 
+<a name="445" href="#445">445</a> 
+<a name="446" href="#446">446</a>     <strong class="jxr_keyword">protected</strong> Builder getOSGiBuilder( MavenProject currentProject, Map originalInstructions, Properties properties,
+<a name="447" href="#447">447</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="448" href="#448">448</a>     {
+<a name="449" href="#449">449</a>         properties.putAll( getDefaultProperties( currentProject ) );
+<a name="450" href="#450">450</a>         properties.putAll( transformDirectives( originalInstructions ) );
+<a name="451" href="#451">451</a> 
+<a name="452" href="#452">452</a>         Builder builder = <strong class="jxr_keyword">new</strong> Builder();
+<a name="453" href="#453">453</a>         <strong class="jxr_keyword">synchronized</strong> ( BundlePlugin.<strong class="jxr_keyword">class</strong> ) <em class="jxr_comment">// protect setBase...getBndLastModified which uses static DateFormat </em>
+<a name="454" href="#454">454</a>         {
+<a name="455" href="#455">455</a>             builder.setBase( getBase( currentProject ) );
+<a name="456" href="#456">456</a>         }
+<a name="457" href="#457">457</a>         builder.setProperties( sanitize( properties ) );
+<a name="458" href="#458">458</a>         <strong class="jxr_keyword">if</strong> ( classpath != <strong class="jxr_keyword">null</strong> )
+<a name="459" href="#459">459</a>         {
+<a name="460" href="#460">460</a>             builder.setClasspath( classpath );
+<a name="461" href="#461">461</a>         }
+<a name="462" href="#462">462</a> 
+<a name="463" href="#463">463</a>         <strong class="jxr_keyword">return</strong> builder;
+<a name="464" href="#464">464</a>     }
+<a name="465" href="#465">465</a> 
+<a name="466" href="#466">466</a> 
+<a name="467" href="#467">467</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> Properties sanitize( Properties properties )
+<a name="468" href="#468">468</a>     {
+<a name="469" href="#469">469</a>         <em class="jxr_comment">// convert any non-String keys/values to Strings</em>
+<a name="470" href="#470">470</a>         Properties sanitizedEntries = <strong class="jxr_keyword">new</strong> Properties();
+<a name="471" href="#471">471</a>         <strong class="jxr_keyword">for</strong> ( Iterator itr = properties.entrySet().iterator(); itr.hasNext(); )
+<a name="472" href="#472">472</a>         {
+<a name="473" href="#473">473</a>             Map.Entry entry = ( Map.Entry ) itr.next();
+<a name="474" href="#474">474</a>             <strong class="jxr_keyword">if</strong> ( entry.getKey() instanceof String == false )
+<a name="475" href="#475">475</a>             {
+<a name="476" href="#476">476</a>                 String key = sanitize( entry.getKey() );
+<a name="477" href="#477">477</a>                 <strong class="jxr_keyword">if</strong> ( !properties.containsKey( key ) )
+<a name="478" href="#478">478</a>                 {
+<a name="479" href="#479">479</a>                     sanitizedEntries.setProperty( key, sanitize( entry.getValue() ) );
+<a name="480" href="#480">480</a>                 }
+<a name="481" href="#481">481</a>                 itr.remove();
+<a name="482" href="#482">482</a>             }
+<a name="483" href="#483">483</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( entry.getValue() instanceof String == false )
+<a name="484" href="#484">484</a>             {
+<a name="485" href="#485">485</a>                 entry.setValue( sanitize( entry.getValue() ) );
 <a name="486" href="#486">486</a>             }
-<a name="487" href="#487">487</a>             <strong class="jxr_keyword">return</strong> buf.toString();
-<a name="488" href="#488">488</a>         }
-<a name="489" href="#489">489</a>         <strong class="jxr_keyword">else</strong>
-<a name="490" href="#490">490</a>         {
-<a name="491" href="#491">491</a>             <strong class="jxr_keyword">return</strong> String.valueOf( value );
-<a name="492" href="#492">492</a>         }
-<a name="493" href="#493">493</a>     }
-<a name="494" href="#494">494</a> 
-<a name="495" href="#495">495</a> 
-<a name="496" href="#496">496</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addMavenInstructions( MavenProject currentProject, Builder builder ) <strong class="jxr_keyword">throws</strong> Exception
-<a name="497" href="#497">497</a>     {
-<a name="498" href="#498">498</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getBasedir() != <strong class="jxr_keyword">null</strong> )
-<a name="499" href="#499">499</a>         {
-<a name="500" href="#500">500</a>             <em class="jxr_comment">// update BND instructions to add included Maven resources</em>
-<a name="501" href="#501">501</a>             includeMavenResources( currentProject, builder, getLog() );
-<a name="502" href="#502">502</a> 
-<a name="503" href="#503">503</a>             <em class="jxr_comment">// calculate default export/private settings based on sources</em>
-<a name="504" href="#504">504</a>             addLocalPackages( outputDirectory, builder );
-<a name="505" href="#505">505</a> 
-<a name="506" href="#506">506</a>             <em class="jxr_comment">// tell BND where the current project source resides</em>
-<a name="507" href="#507">507</a>             addMavenSourcePath( currentProject, builder, getLog() );
-<a name="508" href="#508">508</a>         }
-<a name="509" href="#509">509</a> 
-<a name="510" href="#510">510</a>         <em class="jxr_comment">// update BND instructions to embed selected Maven dependencies</em>
-<a name="511" href="#511">511</a>         Collection embeddableArtifacts = getEmbeddableArtifacts( currentProject, builder );
-<a name="512" href="#512">512</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyEmbedder.html">DependencyEmbedder</a>( getLog(), embeddableArtifacts ).processHeaders( builder );
-<a name="513" href="#513">513</a> 
-<a name="514" href="#514">514</a>         <strong class="jxr_keyword">if</strong> ( dumpInstructions != <strong class="jxr_keyword">null</strong> || getLog().isDebugEnabled() )
-<a name="515" href="#515">515</a>         {
-<a name="516" href="#516">516</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
-<a name="517" href="#517">517</a>             getLog().debug( <span class="jxr_string">"BND Instructions:"</span> + NL + dumpInstructions( builder.getProperties(), buf ) );
-<a name="518" href="#518">518</a>             <strong class="jxr_keyword">if</strong> ( dumpInstructions != <strong class="jxr_keyword">null</strong> )
-<a name="519" href="#519">519</a>             {
-<a name="520" href="#520">520</a>                 getLog().info( <span class="jxr_string">"Writing BND instructions to "</span> + dumpInstructions );
-<a name="521" href="#521">521</a>                 dumpInstructions.getParentFile().mkdirs();
-<a name="522" href="#522">522</a>                 FileUtils.fileWrite( dumpInstructions, <span class="jxr_string">"# BND instructions"</span> + NL + buf );
-<a name="523" href="#523">523</a>             }
+<a name="487" href="#487">487</a>         }
+<a name="488" href="#488">488</a>         properties.putAll( sanitizedEntries );
+<a name="489" href="#489">489</a>         <strong class="jxr_keyword">return</strong> properties;
+<a name="490" href="#490">490</a>     }
+<a name="491" href="#491">491</a> 
+<a name="492" href="#492">492</a> 
+<a name="493" href="#493">493</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String sanitize( Object value )
+<a name="494" href="#494">494</a>     {
+<a name="495" href="#495">495</a>         <strong class="jxr_keyword">if</strong> ( value instanceof String )
+<a name="496" href="#496">496</a>         {
+<a name="497" href="#497">497</a>             <strong class="jxr_keyword">return</strong> ( String ) value;
+<a name="498" href="#498">498</a>         }
+<a name="499" href="#499">499</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( value instanceof Iterable )
+<a name="500" href="#500">500</a>         {
+<a name="501" href="#501">501</a>             String delim = <span class="jxr_string">""</span>;
+<a name="502" href="#502">502</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a name="503" href="#503">503</a>             <strong class="jxr_keyword">for</strong> ( Object i : ( Iterable&lt;?&gt; ) value )
+<a name="504" href="#504">504</a>             {
+<a name="505" href="#505">505</a>                 buf.append( delim ).append( i );
+<a name="506" href="#506">506</a>                 delim = <span class="jxr_string">", "</span>;
+<a name="507" href="#507">507</a>             }
+<a name="508" href="#508">508</a>             <strong class="jxr_keyword">return</strong> buf.toString();
+<a name="509" href="#509">509</a>         }
+<a name="510" href="#510">510</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( value.getClass().isArray() )
+<a name="511" href="#511">511</a>         {
+<a name="512" href="#512">512</a>             String delim = <span class="jxr_string">""</span>;
+<a name="513" href="#513">513</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a name="514" href="#514">514</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0, len = Array.getLength( value ); i &lt; len; i++ )
+<a name="515" href="#515">515</a>             {
+<a name="516" href="#516">516</a>                 buf.append( delim ).append( Array.get( value, i ) );
+<a name="517" href="#517">517</a>                 delim = <span class="jxr_string">", "</span>;
+<a name="518" href="#518">518</a>             }
+<a name="519" href="#519">519</a>             <strong class="jxr_keyword">return</strong> buf.toString();
+<a name="520" href="#520">520</a>         }
+<a name="521" href="#521">521</a>         <strong class="jxr_keyword">else</strong>
+<a name="522" href="#522">522</a>         {
+<a name="523" href="#523">523</a>             <strong class="jxr_keyword">return</strong> String.valueOf( value );
 <a name="524" href="#524">524</a>         }
-<a name="525" href="#525">525</a> 
-<a name="526" href="#526">526</a>         <strong class="jxr_keyword">if</strong> ( dumpClasspath != <strong class="jxr_keyword">null</strong> || getLog().isDebugEnabled() )
-<a name="527" href="#527">527</a>         {
-<a name="528" href="#528">528</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
-<a name="529" href="#529">529</a>             getLog().debug( <span class="jxr_string">"BND Classpath:"</span> + NL + dumpClasspath( builder.getClasspath(), buf ) );
-<a name="530" href="#530">530</a>             <strong class="jxr_keyword">if</strong> ( dumpClasspath != <strong class="jxr_keyword">null</strong> )
-<a name="531" href="#531">531</a>             {
-<a name="532" href="#532">532</a>                 getLog().info( <span class="jxr_string">"Writing BND classpath to "</span> + dumpClasspath );
-<a name="533" href="#533">533</a>                 dumpClasspath.getParentFile().mkdirs();
-<a name="534" href="#534">534</a>                 FileUtils.fileWrite( dumpClasspath, <span class="jxr_string">"# BND classpath"</span> + NL + buf );
-<a name="535" href="#535">535</a>             }
-<a name="536" href="#536">536</a>         }
-<a name="537" href="#537">537</a>     }
-<a name="538" href="#538">538</a> 
-<a name="539" href="#539">539</a> 
-<a name="540" href="#540">540</a>     <strong class="jxr_keyword">protected</strong> Builder buildOSGiBundle( MavenProject currentProject, Map originalInstructions, Properties properties,
-<a name="541" href="#541">541</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> Exception
-<a name="542" href="#542">542</a>     {
-<a name="543" href="#543">543</a>         Builder builder = getOSGiBuilder( currentProject, originalInstructions, properties, classpath );
-<a name="544" href="#544">544</a> 
-<a name="545" href="#545">545</a>         addMavenInstructions( currentProject, builder );
-<a name="546" href="#546">546</a> 
-<a name="547" href="#547">547</a>         builder.build();
-<a name="548" href="#548">548</a> 
-<a name="549" href="#549">549</a>         mergeMavenManifest( currentProject, builder );
-<a name="550" href="#550">550</a> 
-<a name="551" href="#551">551</a>         <strong class="jxr_keyword">return</strong> builder;
-<a name="552" href="#552">552</a>     }
-<a name="553" href="#553">553</a> 
-<a name="554" href="#554">554</a> 
-<a name="555" href="#555">555</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpInstructions( Properties properties, StringBuilder buf )
-<a name="556" href="#556">556</a>     {
-<a name="557" href="#557">557</a>         <strong class="jxr_keyword">try</strong>
-<a name="558" href="#558">558</a>         {
-<a name="559" href="#559">559</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
-<a name="560" href="#560">560</a>             Properties stringProperties = <strong class="jxr_keyword">new</strong> Properties();
-<a name="561" href="#561">561</a>             <strong class="jxr_keyword">for</strong> ( Enumeration e = properties.propertyNames(); e.hasMoreElements(); )
-<a name="562" href="#562">562</a>             {
-<a name="563" href="#563">563</a>                 <em class="jxr_comment">// we can only store String properties</em>
-<a name="564" href="#564">564</a>                 String key = ( String ) e.nextElement();
-<a name="565" href="#565">565</a>                 String value = properties.getProperty( key );
-<a name="566" href="#566">566</a>                 <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
-<a name="567" href="#567">567</a>                 {
-<a name="568" href="#568">568</a>                     stringProperties.setProperty( key, value );
-<a name="569" href="#569">569</a>                 }
-<a name="570" href="#570">570</a>             }
-<a name="571" href="#571">571</a>             ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
-<a name="572" href="#572">572</a>             stringProperties.store( out, <strong class="jxr_keyword">null</strong> ); <em class="jxr_comment">// properties encoding is 8859_1</em>
-<a name="573" href="#573">573</a>             buf.append( out.toString( <span class="jxr_string">"8859_1"</span> ) );
-<a name="574" href="#574">574</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
-<a name="575" href="#575">575</a>         }
-<a name="576" href="#576">576</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
-<a name="577" href="#577">577</a>         {
-<a name="578" href="#578">578</a>             <em class="jxr_comment">// ignore...</em>
-<a name="579" href="#579">579</a>         }
-<a name="580" href="#580">580</a>         <strong class="jxr_keyword">return</strong> buf;
-<a name="581" href="#581">581</a>     }
+<a name="525" href="#525">525</a>     }
+<a name="526" href="#526">526</a> 
+<a name="527" href="#527">527</a> 
+<a name="528" href="#528">528</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addMavenInstructions( MavenProject currentProject, Builder builder ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="529" href="#529">529</a>     {
+<a name="530" href="#530">530</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getBasedir() != <strong class="jxr_keyword">null</strong> )
+<a name="531" href="#531">531</a>         {
+<a name="532" href="#532">532</a>             <em class="jxr_comment">// update BND instructions to add included Maven resources</em>
+<a name="533" href="#533">533</a>             includeMavenResources( currentProject, builder, getLog() );
+<a name="534" href="#534">534</a> 
+<a name="535" href="#535">535</a>             <em class="jxr_comment">// calculate default export/private settings based on sources</em>
+<a name="536" href="#536">536</a>             addLocalPackages( outputDirectory, builder );
+<a name="537" href="#537">537</a> 
+<a name="538" href="#538">538</a>             <em class="jxr_comment">// tell BND where the current project source resides</em>
+<a name="539" href="#539">539</a>             addMavenSourcePath( currentProject, builder, getLog() );
+<a name="540" href="#540">540</a>         }
+<a name="541" href="#541">541</a> 
+<a name="542" href="#542">542</a>         <em class="jxr_comment">// update BND instructions to embed selected Maven dependencies</em>
+<a name="543" href="#543">543</a>         Collection embeddableArtifacts = getEmbeddableArtifacts( currentProject, builder );
+<a name="544" href="#544">544</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyEmbedder.html">DependencyEmbedder</a>( getLog(), embeddableArtifacts ).processHeaders( builder );
+<a name="545" href="#545">545</a> 
+<a name="546" href="#546">546</a>         <strong class="jxr_keyword">if</strong> ( dumpInstructions != <strong class="jxr_keyword">null</strong> || getLog().isDebugEnabled() )
+<a name="547" href="#547">547</a>         {
+<a name="548" href="#548">548</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a name="549" href="#549">549</a>             getLog().debug( <span class="jxr_string">"BND Instructions:"</span> + NL + dumpInstructions( builder.getProperties(), buf ) );
+<a name="550" href="#550">550</a>             <strong class="jxr_keyword">if</strong> ( dumpInstructions != <strong class="jxr_keyword">null</strong> )
+<a name="551" href="#551">551</a>             {
+<a name="552" href="#552">552</a>                 getLog().info( <span class="jxr_string">"Writing BND instructions to "</span> + dumpInstructions );
+<a name="553" href="#553">553</a>                 dumpInstructions.getParentFile().mkdirs();
+<a name="554" href="#554">554</a>                 FileUtils.fileWrite( dumpInstructions, <span class="jxr_string">"# BND instructions"</span> + NL + buf );
+<a name="555" href="#555">555</a>             }
+<a name="556" href="#556">556</a>         }
+<a name="557" href="#557">557</a> 
+<a name="558" href="#558">558</a>         <strong class="jxr_keyword">if</strong> ( dumpClasspath != <strong class="jxr_keyword">null</strong> || getLog().isDebugEnabled() )
+<a name="559" href="#559">559</a>         {
+<a name="560" href="#560">560</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a name="561" href="#561">561</a>             getLog().debug( <span class="jxr_string">"BND Classpath:"</span> + NL + dumpClasspath( builder.getClasspath(), buf ) );
+<a name="562" href="#562">562</a>             <strong class="jxr_keyword">if</strong> ( dumpClasspath != <strong class="jxr_keyword">null</strong> )
+<a name="563" href="#563">563</a>             {
+<a name="564" href="#564">564</a>                 getLog().info( <span class="jxr_string">"Writing BND classpath to "</span> + dumpClasspath );
+<a name="565" href="#565">565</a>                 dumpClasspath.getParentFile().mkdirs();
+<a name="566" href="#566">566</a>                 FileUtils.fileWrite( dumpClasspath, <span class="jxr_string">"# BND classpath"</span> + NL + buf );
+<a name="567" href="#567">567</a>             }
+<a name="568" href="#568">568</a>         }
+<a name="569" href="#569">569</a>     }
+<a name="570" href="#570">570</a> 
+<a name="571" href="#571">571</a> 
+<a name="572" href="#572">572</a>     <strong class="jxr_keyword">protected</strong> Builder buildOSGiBundle( MavenProject currentProject, Map originalInstructions, Properties properties,
+<a name="573" href="#573">573</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="574" href="#574">574</a>     {
+<a name="575" href="#575">575</a>         Builder builder = getOSGiBuilder( currentProject, originalInstructions, properties, classpath );
+<a name="576" href="#576">576</a> 
+<a name="577" href="#577">577</a>         addMavenInstructions( currentProject, builder );
+<a name="578" href="#578">578</a> 
+<a name="579" href="#579">579</a>         builder.build();
+<a name="580" href="#580">580</a> 
+<a name="581" href="#581">581</a>         mergeMavenManifest( currentProject, builder );
 <a name="582" href="#582">582</a> 
-<a name="583" href="#583">583</a> 
-<a name="584" href="#584">584</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpClasspath( List classpath, StringBuilder buf )
-<a name="585" href="#585">585</a>     {
-<a name="586" href="#586">586</a>         <strong class="jxr_keyword">try</strong>
-<a name="587" href="#587">587</a>         {
-<a name="588" href="#588">588</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
-<a name="589" href="#589">589</a>             buf.append( <span class="jxr_string">"-classpath:&#92;&#92;"</span> + NL );
-<a name="590" href="#590">590</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = classpath.iterator(); i.hasNext(); )
-<a name="591" href="#591">591</a>             {
-<a name="592" href="#592">592</a>                 File path = ( ( Jar ) i.next() ).getSource();
-<a name="593" href="#593">593</a>                 <strong class="jxr_keyword">if</strong> ( path != <strong class="jxr_keyword">null</strong> )
-<a name="594" href="#594">594</a>                 {
-<a name="595" href="#595">595</a>                     buf.append( ' ' + path.toString() + ( i.hasNext() ? <span class="jxr_string">",&#92;&#92;"</span> : <span class="jxr_string">""</span> ) + NL );
-<a name="596" href="#596">596</a>                 }
-<a name="597" href="#597">597</a>             }
-<a name="598" href="#598">598</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
-<a name="599" href="#599">599</a>         }
-<a name="600" href="#600">600</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
-<a name="601" href="#601">601</a>         {
-<a name="602" href="#602">602</a>             <em class="jxr_comment">// ignore...</em>
-<a name="603" href="#603">603</a>         }
-<a name="604" href="#604">604</a>         <strong class="jxr_keyword">return</strong> buf;
-<a name="605" href="#605">605</a>     }
-<a name="606" href="#606">606</a> 
-<a name="607" href="#607">607</a> 
-<a name="608" href="#608">608</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpManifest( Manifest manifest, StringBuilder buf )
-<a name="609" href="#609">609</a>     {
-<a name="610" href="#610">610</a>         <strong class="jxr_keyword">try</strong>
-<a name="611" href="#611">611</a>         {
-<a name="612" href="#612">612</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
-<a name="613" href="#613">613</a>             ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
-<a name="614" href="#614">614</a>             Jar.writeManifest( manifest, out ); <em class="jxr_comment">// manifest encoding is UTF8</em>
-<a name="615" href="#615">615</a>             buf.append( out.toString( <span class="jxr_string">"UTF8"</span> ) );
-<a name="616" href="#616">616</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
-<a name="617" href="#617">617</a>         }
-<a name="618" href="#618">618</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
+<a name="583" href="#583">583</a>         <strong class="jxr_keyword">return</strong> builder;
+<a name="584" href="#584">584</a>     }
+<a name="585" href="#585">585</a> 
+<a name="586" href="#586">586</a> 
+<a name="587" href="#587">587</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpInstructions( Properties properties, StringBuilder buf )
+<a name="588" href="#588">588</a>     {
+<a name="589" href="#589">589</a>         <strong class="jxr_keyword">try</strong>
+<a name="590" href="#590">590</a>         {
+<a name="591" href="#591">591</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
+<a name="592" href="#592">592</a>             Properties stringProperties = <strong class="jxr_keyword">new</strong> Properties();
+<a name="593" href="#593">593</a>             <strong class="jxr_keyword">for</strong> ( Enumeration e = properties.propertyNames(); e.hasMoreElements(); )
+<a name="594" href="#594">594</a>             {
+<a name="595" href="#595">595</a>                 <em class="jxr_comment">// we can only store String properties</em>
+<a name="596" href="#596">596</a>                 String key = ( String ) e.nextElement();
+<a name="597" href="#597">597</a>                 String value = properties.getProperty( key );
+<a name="598" href="#598">598</a>                 <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
+<a name="599" href="#599">599</a>                 {
+<a name="600" href="#600">600</a>                     stringProperties.setProperty( key, value );
+<a name="601" href="#601">601</a>                 }
+<a name="602" href="#602">602</a>             }
+<a name="603" href="#603">603</a>             ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
+<a name="604" href="#604">604</a>             stringProperties.store( out, <strong class="jxr_keyword">null</strong> ); <em class="jxr_comment">// properties encoding is 8859_1</em>
+<a name="605" href="#605">605</a>             buf.append( out.toString( <span class="jxr_string">"8859_1"</span> ) );
+<a name="606" href="#606">606</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
+<a name="607" href="#607">607</a>         }
+<a name="608" href="#608">608</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
+<a name="609" href="#609">609</a>         {
+<a name="610" href="#610">610</a>             <em class="jxr_comment">// ignore...</em>
+<a name="611" href="#611">611</a>         }
+<a name="612" href="#612">612</a>         <strong class="jxr_keyword">return</strong> buf;
+<a name="613" href="#613">613</a>     }
+<a name="614" href="#614">614</a> 
+<a name="615" href="#615">615</a> 
+<a name="616" href="#616">616</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpClasspath( List classpath, StringBuilder buf )
+<a name="617" href="#617">617</a>     {
+<a name="618" href="#618">618</a>         <strong class="jxr_keyword">try</strong>
 <a name="619" href="#619">619</a>         {
-<a name="620" href="#620">620</a>             <em class="jxr_comment">// ignore...</em>
-<a name="621" href="#621">621</a>         }
-<a name="622" href="#622">622</a>         <strong class="jxr_keyword">return</strong> buf;
-<a name="623" href="#623">623</a>     }
-<a name="624" href="#624">624</a> 
-<a name="625" href="#625">625</a> 
-<a name="626" href="#626">626</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> includeMavenResources( MavenProject currentProject, Analyzer analyzer, Log log )
-<a name="627" href="#627">627</a>     {
-<a name="628" href="#628">628</a>         <em class="jxr_comment">// pass maven resource paths onto BND analyzer</em>
-<a name="629" href="#629">629</a>         <strong class="jxr_keyword">final</strong> String mavenResourcePaths = getMavenResourcePaths( currentProject );
-<a name="630" href="#630">630</a>         <strong class="jxr_keyword">final</strong> String includeResource = ( String ) analyzer.getProperty( Analyzer.INCLUDE_RESOURCE );
-<a name="631" href="#631">631</a>         <strong class="jxr_keyword">if</strong> ( includeResource != <strong class="jxr_keyword">null</strong> )
-<a name="632" href="#632">632</a>         {
-<a name="633" href="#633">633</a>             <strong class="jxr_keyword">if</strong> ( includeResource.indexOf( MAVEN_RESOURCES ) &gt;= 0 )
-<a name="634" href="#634">634</a>             {
-<a name="635" href="#635">635</a>                 <em class="jxr_comment">// if there is no maven resource path, we do a special treatment and replace</em>
-<a name="636" href="#636">636</a>                 <em class="jxr_comment">// every occurance of MAVEN_RESOURCES and a following comma with an empty string</em>
-<a name="637" href="#637">637</a>                 <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() == 0 )
-<a name="638" href="#638">638</a>                 {
-<a name="639" href="#639">639</a>                     String cleanedResource = removeTagFromInstruction( includeResource, MAVEN_RESOURCES );
-<a name="640" href="#640">640</a>                     <strong class="jxr_keyword">if</strong> ( cleanedResource.length() &gt; 0 )
-<a name="641" href="#641">641</a>                     {
-<a name="642" href="#642">642</a>                         analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, cleanedResource );
-<a name="643" href="#643">643</a>                     }
-<a name="644" href="#644">644</a>                     <strong class="jxr_keyword">else</strong>
-<a name="645" href="#645">645</a>                     {
-<a name="646" href="#646">646</a>                         analyzer.unsetProperty( Analyzer.INCLUDE_RESOURCE );
-<a name="647" href="#647">647</a>                     }
-<a name="648" href="#648">648</a>                 }
-<a name="649" href="#649">649</a>                 <strong class="jxr_keyword">else</strong>
-<a name="650" href="#650">650</a>                 {
-<a name="651" href="#651">651</a>                     String combinedResource = StringUtils
-<a name="652" href="#652">652</a>                         .replace( includeResource, MAVEN_RESOURCES, mavenResourcePaths );
-<a name="653" href="#653">653</a>                     analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, combinedResource );
-<a name="654" href="#654">654</a>                 }
-<a name="655" href="#655">655</a>             }
-<a name="656" href="#656">656</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() &gt; 0 )
-<a name="657" href="#657">657</a>             {
-<a name="658" href="#658">658</a>                 log.warn( Analyzer.INCLUDE_RESOURCE + <span class="jxr_string">": overriding "</span> + mavenResourcePaths + <span class="jxr_string">" with "</span> + includeResource
-<a name="659" href="#659">659</a>                     + <span class="jxr_string">" (add "</span> + MAVEN_RESOURCES + <span class="jxr_string">" if you want to include the maven resources)"</span> );
-<a name="660" href="#660">660</a>             }
-<a name="661" href="#661">661</a>         }
-<a name="662" href="#662">662</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() &gt; 0 )
-<a name="663" href="#663">663</a>         {
-<a name="664" href="#664">664</a>             analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, mavenResourcePaths );
-<a name="665" href="#665">665</a>         }
-<a name="666" href="#666">666</a>     }
-<a name="667" href="#667">667</a> 
-<a name="668" href="#668">668</a> 
-<a name="669" href="#669">669</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> mergeMavenManifest( MavenProject currentProject, Builder builder ) <strong class="jxr_keyword">throws</strong> Exception
-<a name="670" href="#670">670</a>     {
-<a name="671" href="#671">671</a>         Jar jar = builder.getJar();
-<a name="672" href="#672">672</a> 
-<a name="673" href="#673">673</a>         <strong class="jxr_keyword">if</strong> ( getLog().isDebugEnabled() )
-<a name="674" href="#674">674</a>         {
-<a name="675" href="#675">675</a>             getLog().debug( <span class="jxr_string">"BND Manifest:"</span> + NL + dumpManifest( jar.getManifest(), <strong class="jxr_keyword">new</strong> StringBuilder() ) );
-<a name="676" href="#676">676</a>         }
-<a name="677" href="#677">677</a> 
-<a name="678" href="#678">678</a>         <strong class="jxr_keyword">boolean</strong> addMavenDescriptor = currentProject.getBasedir() != <strong class="jxr_keyword">null</strong>;
-<a name="679" href="#679">679</a> 
-<a name="680" href="#680">680</a>         <strong class="jxr_keyword">try</strong>
-<a name="681" href="#681">681</a>         {
-<a name="682" href="#682">682</a>             <em class="jxr_comment">/*</em>
-<a name="683" href="#683">683</a> <em class="jxr_comment">             * Grab customized manifest entries from the maven-jar-plugin configuration</em>
-<a name="684" href="#684">684</a> <em class="jxr_comment">             */</em>
-<a name="685" href="#685">685</a>             MavenArchiveConfiguration archiveConfig = JarPluginConfiguration.getArchiveConfiguration( currentProject );
-<a name="686" href="#686">686</a>             String mavenManifestText = <strong class="jxr_keyword">new</strong> MavenArchiver().getManifest( currentProject, archiveConfig ).toString();
-<a name="687" href="#687">687</a>             addMavenDescriptor = addMavenDescriptor &amp;&amp; archiveConfig.isAddMavenDescriptor();
-<a name="688" href="#688">688</a> 
-<a name="689" href="#689">689</a>             Manifest mavenManifest = <strong class="jxr_keyword">new</strong> Manifest();
-<a name="690" href="#690">690</a> 
-<a name="691" href="#691">691</a>             <em class="jxr_comment">// First grab the external manifest file (if specified and different to target location)</em>
-<a name="692" href="#692">692</a>             File externalManifestFile = archiveConfig.getManifestFile();
-<a name="693" href="#693">693</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != externalManifestFile &amp;&amp; externalManifestFile.exists()
-<a name="694" href="#694">694</a>                 &amp;&amp; !externalManifestFile.equals( <strong class="jxr_keyword">new</strong> File( manifestLocation, <span class="jxr_string">"MANIFEST.MF"</span> ) ) )
-<a name="695" href="#695">695</a>             {
-<a name="696" href="#696">696</a>                 InputStream mis = <strong class="jxr_keyword">new</strong> FileInputStream( externalManifestFile );
-<a name="697" href="#697">697</a>                 mavenManifest.read( mis );
-<a name="698" href="#698">698</a>                 mis.close();
-<a name="699" href="#699">699</a>             }
+<a name="620" href="#620">620</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
+<a name="621" href="#621">621</a>             buf.append( <span class="jxr_string">"-classpath:&#92;&#92;"</span> + NL );
+<a name="622" href="#622">622</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = classpath.iterator(); i.hasNext(); )
+<a name="623" href="#623">623</a>             {
+<a name="624" href="#624">624</a>                 File path = ( ( Jar ) i.next() ).getSource();
+<a name="625" href="#625">625</a>                 <strong class="jxr_keyword">if</strong> ( path != <strong class="jxr_keyword">null</strong> )
+<a name="626" href="#626">626</a>                 {
+<a name="627" href="#627">627</a>                     buf.append( ' ' + path.toString() + ( i.hasNext() ? <span class="jxr_string">",&#92;&#92;"</span> : <span class="jxr_string">""</span> ) + NL );
+<a name="628" href="#628">628</a>                 }
+<a name="629" href="#629">629</a>             }
+<a name="630" href="#630">630</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
+<a name="631" href="#631">631</a>         }
+<a name="632" href="#632">632</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
+<a name="633" href="#633">633</a>         {
+<a name="634" href="#634">634</a>             <em class="jxr_comment">// ignore...</em>
+<a name="635" href="#635">635</a>         }
+<a name="636" href="#636">636</a>         <strong class="jxr_keyword">return</strong> buf;
+<a name="637" href="#637">637</a>     }
+<a name="638" href="#638">638</a> 
+<a name="639" href="#639">639</a> 
+<a name="640" href="#640">640</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpManifest( Manifest manifest, StringBuilder buf )
+<a name="641" href="#641">641</a>     {
+<a name="642" href="#642">642</a>         <strong class="jxr_keyword">try</strong>
+<a name="643" href="#643">643</a>         {
+<a name="644" href="#644">644</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
+<a name="645" href="#645">645</a>             ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
+<a name="646" href="#646">646</a>             Jar.writeManifest( manifest, out ); <em class="jxr_comment">// manifest encoding is UTF8</em>
+<a name="647" href="#647">647</a>             buf.append( out.toString( <span class="jxr_string">"UTF8"</span> ) );
+<a name="648" href="#648">648</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
+<a name="649" href="#649">649</a>         }
+<a name="650" href="#650">650</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
+<a name="651" href="#651">651</a>         {
+<a name="652" href="#652">652</a>             <em class="jxr_comment">// ignore...</em>
+<a name="653" href="#653">653</a>         }
+<a name="654" href="#654">654</a>         <strong class="jxr_keyword">return</strong> buf;
+<a name="655" href="#655">655</a>     }
+<a name="656" href="#656">656</a> 
+<a name="657" href="#657">657</a> 
+<a name="658" href="#658">658</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> includeMavenResources( MavenProject currentProject, Analyzer analyzer, Log log )
+<a name="659" href="#659">659</a>     {
+<a name="660" href="#660">660</a>         <em class="jxr_comment">// pass maven resource paths onto BND analyzer</em>
+<a name="661" href="#661">661</a>         <strong class="jxr_keyword">final</strong> String mavenResourcePaths = getMavenResourcePaths( currentProject );
+<a name="662" href="#662">662</a>         <strong class="jxr_keyword">final</strong> String includeResource = ( String ) analyzer.getProperty( Analyzer.INCLUDE_RESOURCE );
+<a name="663" href="#663">663</a>         <strong class="jxr_keyword">if</strong> ( includeResource != <strong class="jxr_keyword">null</strong> )
+<a name="664" href="#664">664</a>         {
+<a name="665" href="#665">665</a>             <strong class="jxr_keyword">if</strong> ( includeResource.indexOf( MAVEN_RESOURCES ) &gt;= 0 )
+<a name="666" href="#666">666</a>             {
+<a name="667" href="#667">667</a>                 <em class="jxr_comment">// if there is no maven resource path, we do a special treatment and replace</em>
+<a name="668" href="#668">668</a>                 <em class="jxr_comment">// every occurance of MAVEN_RESOURCES and a following comma with an empty string</em>
+<a name="669" href="#669">669</a>                 <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() == 0 )
+<a name="670" href="#670">670</a>                 {
+<a name="671" href="#671">671</a>                     String cleanedResource = removeTagFromInstruction( includeResource, MAVEN_RESOURCES );
+<a name="672" href="#672">672</a>                     <strong class="jxr_keyword">if</strong> ( cleanedResource.length() &gt; 0 )
+<a name="673" href="#673">673</a>                     {
+<a name="674" href="#674">674</a>                         analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, cleanedResource );
+<a name="675" href="#675">675</a>                     }
+<a name="676" href="#676">676</a>                     <strong class="jxr_keyword">else</strong>
+<a name="677" href="#677">677</a>                     {
+<a name="678" href="#678">678</a>                         analyzer.unsetProperty( Analyzer.INCLUDE_RESOURCE );
+<a name="679" href="#679">679</a>                     }
+<a name="680" href="#680">680</a>                 }
+<a name="681" href="#681">681</a>                 <strong class="jxr_keyword">else</strong>
+<a name="682" href="#682">682</a>                 {
+<a name="683" href="#683">683</a>                     String combinedResource = StringUtils
+<a name="684" href="#684">684</a>                         .replace( includeResource, MAVEN_RESOURCES, mavenResourcePaths );
+<a name="685" href="#685">685</a>                     analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, combinedResource );
+<a name="686" href="#686">686</a>                 }
+<a name="687" href="#687">687</a>             }
+<a name="688" href="#688">688</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() &gt; 0 )
+<a name="689" href="#689">689</a>             {
+<a name="690" href="#690">690</a>                 log.warn( Analyzer.INCLUDE_RESOURCE + <span class="jxr_string">": overriding "</span> + mavenResourcePaths + <span class="jxr_string">" with "</span> + includeResource
+<a name="691" href="#691">691</a>                     + <span class="jxr_string">" (add "</span> + MAVEN_RESOURCES + <span class="jxr_string">" if you want to include the maven resources)"</span> );
+<a name="692" href="#692">692</a>             }
+<a name="693" href="#693">693</a>         }
+<a name="694" href="#694">694</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() &gt; 0 )
+<a name="695" href="#695">695</a>         {
+<a name="696" href="#696">696</a>             analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, mavenResourcePaths );
+<a name="697" href="#697">697</a>         }
+<a name="698" href="#698">698</a>     }
+<a name="699" href="#699">699</a> 
 <a name="700" href="#700">700</a> 
-<a name="701" href="#701">701</a>             <em class="jxr_comment">// Then apply customized entries from the jar plugin; note: manifest encoding is UTF8</em>
-<a name="702" href="#702">702</a>             mavenManifest.read( <strong class="jxr_keyword">new</strong> ByteArrayInputStream( mavenManifestText.getBytes( <span class="jxr_string">"UTF8"</span> ) ) );
-<a name="703" href="#703">703</a> 
-<a name="704" href="#704">704</a>             <strong class="jxr_keyword">if</strong> ( !archiveConfig.isManifestSectionsEmpty() )
-<a name="705" href="#705">705</a>             {
-<a name="706" href="#706">706</a>                 <em class="jxr_comment">/*</em>
-<a name="707" href="#707">707</a> <em class="jxr_comment">                 * Add customized manifest sections (for some reason MavenArchiver doesn't do this for us)</em>
-<a name="708" href="#708">708</a> <em class="jxr_comment">                 */</em>
-<a name="709" href="#709">709</a>                 List sections = archiveConfig.getManifestSections();
-<a name="710" href="#710">710</a>                 <strong class="jxr_keyword">for</strong> ( Iterator i = sections.iterator(); i.hasNext(); )
-<a name="711" href="#711">711</a>                 {
-<a name="712" href="#712">712</a>                     ManifestSection section = ( ManifestSection ) i.next();
-<a name="713" href="#713">713</a>                     Attributes attributes = <strong class="jxr_keyword">new</strong> Attributes();
-<a name="714" href="#714">714</a> 
-<a name="715" href="#715">715</a>                     <strong class="jxr_keyword">if</strong> ( !section.isManifestEntriesEmpty() )
-<a name="716" href="#716">716</a>                     {
-<a name="717" href="#717">717</a>                         Map entries = section.getManifestEntries();
-<a name="718" href="#718">718</a>                         <strong class="jxr_keyword">for</strong> ( Iterator j = entries.entrySet().iterator(); j.hasNext(); )
-<a name="719" href="#719">719</a>                         {
-<a name="720" href="#720">720</a>                             Map.Entry entry = ( Map.Entry ) j.next();
-<a name="721" href="#721">721</a>                             attributes.putValue( ( String ) entry.getKey(), ( String ) entry.getValue() );
-<a name="722" href="#722">722</a>                         }
-<a name="723" href="#723">723</a>                     }
-<a name="724" href="#724">724</a> 
-<a name="725" href="#725">725</a>                     mavenManifest.getEntries().put( section.getName(), attributes );
-<a name="726" href="#726">726</a>                 }
-<a name="727" href="#727">727</a>             }
-<a name="728" href="#728">728</a> 
-<a name="729" href="#729">729</a>             Attributes mainMavenAttributes = mavenManifest.getMainAttributes();
-<a name="730" href="#730">730</a>             mainMavenAttributes.putValue( <span class="jxr_string">"Created-By"</span>, <span class="jxr_string">"Apache Maven Bundle Plugin"</span> );
-<a name="731" href="#731">731</a> 
-<a name="732" href="#732">732</a>             String[] removeHeaders = builder.getProperty( Constants.REMOVEHEADERS, <span class="jxr_string">""</span> ).split( <span class="jxr_string">","</span> );
-<a name="733" href="#733">733</a> 
-<a name="734" href="#734">734</a>             <em class="jxr_comment">// apply -removeheaders to the custom manifest</em>
-<a name="735" href="#735">735</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; removeHeaders.length; i++ )
-<a name="736" href="#736">736</a>             {
-<a name="737" href="#737">737</a>                 <strong class="jxr_keyword">for</strong> ( Iterator j = mainMavenAttributes.keySet().iterator(); j.hasNext(); )
-<a name="738" href="#738">738</a>                 {
-<a name="739" href="#739">739</a>                     <strong class="jxr_keyword">if</strong> ( j.next().toString().matches( removeHeaders[i].trim() ) )
-<a name="740" href="#740">740</a>                     {
-<a name="741" href="#741">741</a>                         j.remove();
-<a name="742" href="#742">742</a>                     }
-<a name="743" href="#743">743</a>                 }
-<a name="744" href="#744">744</a>             }
-<a name="745" href="#745">745</a> 
-<a name="746" href="#746">746</a>             <em class="jxr_comment">/*</em>
-<a name="747" href="#747">747</a> <em class="jxr_comment">             * Overlay generated bundle manifest with customized entries</em>
-<a name="748" href="#748">748</a> <em class="jxr_comment">             */</em>
-<a name="749" href="#749">749</a>             Manifest bundleManifest = jar.getManifest();
-<a name="750" href="#750">750</a>             bundleManifest.getMainAttributes().putAll( mainMavenAttributes );
-<a name="751" href="#751">751</a>             bundleManifest.getEntries().putAll( mavenManifest.getEntries() );
+<a name="701" href="#701">701</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> mergeMavenManifest( MavenProject currentProject, Builder builder ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="702" href="#702">702</a>     {
+<a name="703" href="#703">703</a>         Jar jar = builder.getJar();
+<a name="704" href="#704">704</a> 
+<a name="705" href="#705">705</a>         <strong class="jxr_keyword">if</strong> ( getLog().isDebugEnabled() )
+<a name="706" href="#706">706</a>         {
+<a name="707" href="#707">707</a>             getLog().debug( <span class="jxr_string">"BND Manifest:"</span> + NL + dumpManifest( jar.getManifest(), <strong class="jxr_keyword">new</strong> StringBuilder() ) );
+<a name="708" href="#708">708</a>         }
+<a name="709" href="#709">709</a> 
+<a name="710" href="#710">710</a>         <strong class="jxr_keyword">boolean</strong> addMavenDescriptor = currentProject.getBasedir() != <strong class="jxr_keyword">null</strong>;
+<a name="711" href="#711">711</a> 
+<a name="712" href="#712">712</a>         <strong class="jxr_keyword">try</strong>
+<a name="713" href="#713">713</a>         {
+<a name="714" href="#714">714</a>             <em class="jxr_comment">/*</em>
+<a name="715" href="#715">715</a> <em class="jxr_comment">             * Grab customized manifest entries from the maven-jar-plugin configuration</em>
+<a name="716" href="#716">716</a> <em class="jxr_comment">             */</em>
+<a name="717" href="#717">717</a>             MavenArchiveConfiguration archiveConfig = JarPluginConfiguration.getArchiveConfiguration( currentProject );
+<a name="718" href="#718">718</a>             String mavenManifestText = <strong class="jxr_keyword">new</strong> MavenArchiver().getManifest( currentProject, archiveConfig ).toString();
+<a name="719" href="#719">719</a>             addMavenDescriptor = addMavenDescriptor &amp;&amp; archiveConfig.isAddMavenDescriptor();
+<a name="720" href="#720">720</a> 
+<a name="721" href="#721">721</a>             Manifest mavenManifest = <strong class="jxr_keyword">new</strong> Manifest();
+<a name="722" href="#722">722</a> 
+<a name="723" href="#723">723</a>             <em class="jxr_comment">// First grab the external manifest file (if specified and different to target location)</em>
+<a name="724" href="#724">724</a>             File externalManifestFile = archiveConfig.getManifestFile();
+<a name="725" href="#725">725</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != externalManifestFile )
+<a name="726" href="#726">726</a>             {
+<a name="727" href="#727">727</a>                 <strong class="jxr_keyword">if</strong> ( !externalManifestFile.isAbsolute() )
+<a name="728" href="#728">728</a>                 {
+<a name="729" href="#729">729</a>                     externalManifestFile = <strong class="jxr_keyword">new</strong> File( currentProject.getBasedir(), externalManifestFile.getPath() );
+<a name="730" href="#730">730</a>                 }
+<a name="731" href="#731">731</a>                 <strong class="jxr_keyword">if</strong> ( externalManifestFile.exists() &amp;&amp; !externalManifestFile.equals( <strong class="jxr_keyword">new</strong> File( manifestLocation, <span class="jxr_string">"MANIFEST.MF"</span> ) ) )
+<a name="732" href="#732">732</a>                 {
+<a name="733" href="#733">733</a>                     InputStream mis = <strong class="jxr_keyword">new</strong> FileInputStream( externalManifestFile );
+<a name="734" href="#734">734</a>                     mavenManifest.read( mis );
+<a name="735" href="#735">735</a>                     mis.close();
+<a name="736" href="#736">736</a>                 }
+<a name="737" href="#737">737</a>             }
+<a name="738" href="#738">738</a> 
+<a name="739" href="#739">739</a>             <em class="jxr_comment">// Then apply customized entries from the jar plugin; note: manifest encoding is UTF8</em>
+<a name="740" href="#740">740</a>             mavenManifest.read( <strong class="jxr_keyword">new</strong> ByteArrayInputStream( mavenManifestText.getBytes( <span class="jxr_string">"UTF8"</span> ) ) );
+<a name="741" href="#741">741</a> 
+<a name="742" href="#742">742</a>             <strong class="jxr_keyword">if</strong> ( !archiveConfig.isManifestSectionsEmpty() )
+<a name="743" href="#743">743</a>             {
+<a name="744" href="#744">744</a>                 <em class="jxr_comment">/*</em>
+<a name="745" href="#745">745</a> <em class="jxr_comment">                 * Add customized manifest sections (for some reason MavenArchiver doesn't do this for us)</em>
+<a name="746" href="#746">746</a> <em class="jxr_comment">                 */</em>
+<a name="747" href="#747">747</a>                 List sections = archiveConfig.getManifestSections();
+<a name="748" href="#748">748</a>                 <strong class="jxr_keyword">for</strong> ( Iterator i = sections.iterator(); i.hasNext(); )
+<a name="749" href="#749">749</a>                 {
+<a name="750" href="#750">750</a>                     ManifestSection section = ( ManifestSection ) i.next();
+<a name="751" href="#751">751</a>                     Attributes attributes = <strong class="jxr_keyword">new</strong> Attributes();
 <a name="752" href="#752">752</a> 
-<a name="753" href="#753">753</a>             <em class="jxr_comment">// adjust the import package attributes so that optional dependencies use</em>
-<a name="754" href="#754">754</a>             <em class="jxr_comment">// optional resolution.</em>
-<a name="755" href="#755">755</a>             String importPackages = bundleManifest.getMainAttributes().getValue( <span class="jxr_string">"Import-Package"</span> );
-<a name="756" href="#756">756</a>             <strong class="jxr_keyword">if</strong> ( importPackages != <strong class="jxr_keyword">null</strong> )
-<a name="757" href="#757">757</a>             {
-<a name="758" href="#758">758</a>                 Set optionalPackages = getOptionalPackages( currentProject );
-<a name="759" href="#759">759</a> 
-<a name="760" href="#760">760</a>                 Map&lt;String, Map&lt;String, String&gt;&gt; values = <strong class="jxr_keyword">new</strong> Analyzer().parseHeader( importPackages );
-<a name="761" href="#761">761</a>                 <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, Map&lt;String, String&gt;&gt; entry : values.entrySet() )
-<a name="762" href="#762">762</a>                 {
-<a name="763" href="#763">763</a>                     String pkg = entry.getKey();
-<a name="764" href="#764">764</a>                     Map&lt;String, String&gt; options = entry.getValue();
-<a name="765" href="#765">765</a>                     <strong class="jxr_keyword">if</strong> ( !options.containsKey( <span class="jxr_string">"resolution:"</span> ) &amp;&amp; optionalPackages.contains( pkg ) )
-<a name="766" href="#766">766</a>                     {
-<a name="767" href="#767">767</a>                         options.put( <span class="jxr_string">"resolution:"</span>, <span class="jxr_string">"optional"</span> );
-<a name="768" href="#768">768</a>                     }
-<a name="769" href="#769">769</a>                 }
-<a name="770" href="#770">770</a>                 String result = Processor.printClauses( values );
-<a name="771" href="#771">771</a>                 bundleManifest.getMainAttributes().putValue( <span class="jxr_string">"Import-Package"</span>, result );
-<a name="772" href="#772">772</a>             }
-<a name="773" href="#773">773</a> 
-<a name="774" href="#774">774</a>             jar.setManifest( bundleManifest );
-<a name="775" href="#775">775</a>         }
-<a name="776" href="#776">776</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="777" href="#777">777</a>         {
-<a name="778" href="#778">778</a>             getLog().warn( <span class="jxr_string">"Unable to merge Maven manifest: "</span> + e.getLocalizedMessage() );
-<a name="779" href="#779">779</a>         }
-<a name="780" href="#780">780</a> 
-<a name="781" href="#781">781</a>         <strong class="jxr_keyword">if</strong> ( addMavenDescriptor )
-<a name="782" href="#782">782</a>         {
-<a name="783" href="#783">783</a>             doMavenMetadata( currentProject, jar );
-<a name="784" href="#784">784</a>         }
-<a name="785" href="#785">785</a> 
-<a name="786" href="#786">786</a>         <strong class="jxr_keyword">if</strong> ( getLog().isDebugEnabled() )
-<a name="787" href="#787">787</a>         {
-<a name="788" href="#788">788</a>             getLog().debug( <span class="jxr_string">"Final Manifest:"</span> + NL + dumpManifest( jar.getManifest(), <strong class="jxr_keyword">new</strong> StringBuilder() ) );
-<a name="789" href="#789">789</a>         }
+<a name="753" href="#753">753</a>                     <strong class="jxr_keyword">if</strong> ( !section.isManifestEntriesEmpty() )
+<a name="754" href="#754">754</a>                     {
+<a name="755" href="#755">755</a>                         Map entries = section.getManifestEntries();
+<a name="756" href="#756">756</a>                         <strong class="jxr_keyword">for</strong> ( Iterator j = entries.entrySet().iterator(); j.hasNext(); )
+<a name="757" href="#757">757</a>                         {
+<a name="758" href="#758">758</a>                             Map.Entry entry = ( Map.Entry ) j.next();
+<a name="759" href="#759">759</a>                             attributes.putValue( ( String ) entry.getKey(), ( String ) entry.getValue() );
+<a name="760" href="#760">760</a>                         }
+<a name="761" href="#761">761</a>                     }
+<a name="762" href="#762">762</a> 
+<a name="763" href="#763">763</a>                     mavenManifest.getEntries().put( section.getName(), attributes );
+<a name="764" href="#764">764</a>                 }
+<a name="765" href="#765">765</a>             }
+<a name="766" href="#766">766</a> 
+<a name="767" href="#767">767</a>             Attributes mainMavenAttributes = mavenManifest.getMainAttributes();
+<a name="768" href="#768">768</a>             mainMavenAttributes.putValue( <span class="jxr_string">"Created-By"</span>, <span class="jxr_string">"Apache Maven Bundle Plugin"</span> );
+<a name="769" href="#769">769</a> 
+<a name="770" href="#770">770</a>             String[] removeHeaders = builder.getProperty( Constants.REMOVEHEADERS, <span class="jxr_string">""</span> ).split( <span class="jxr_string">","</span> );
+<a name="771" href="#771">771</a> 
+<a name="772" href="#772">772</a>             <em class="jxr_comment">// apply -removeheaders to the custom manifest</em>
+<a name="773" href="#773">773</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; removeHeaders.length; i++ )
+<a name="774" href="#774">774</a>             {
+<a name="775" href="#775">775</a>                 <strong class="jxr_keyword">for</strong> ( Iterator j = mainMavenAttributes.keySet().iterator(); j.hasNext(); )
+<a name="776" href="#776">776</a>                 {
+<a name="777" href="#777">777</a>                     <strong class="jxr_keyword">if</strong> ( j.next().toString().matches( removeHeaders[i].trim() ) )
+<a name="778" href="#778">778</a>                     {
+<a name="779" href="#779">779</a>                         j.remove();
+<a name="780" href="#780">780</a>                     }
+<a name="781" href="#781">781</a>                 }
+<a name="782" href="#782">782</a>             }
+<a name="783" href="#783">783</a> 
+<a name="784" href="#784">784</a>             <em class="jxr_comment">/*</em>
+<a name="785" href="#785">785</a> <em class="jxr_comment">             * Overlay generated bundle manifest with customized entries</em>
+<a name="786" href="#786">786</a> <em class="jxr_comment">             */</em>
+<a name="787" href="#787">787</a>             Manifest bundleManifest = jar.getManifest();
+<a name="788" href="#788">788</a>             bundleManifest.getMainAttributes().putAll( mainMavenAttributes );
+<a name="789" href="#789">789</a>             bundleManifest.getEntries().putAll( mavenManifest.getEntries() );
 <a name="790" href="#790">790</a> 
-<a name="791" href="#791">791</a>         builder.setJar( jar );
-<a name="792" href="#792">792</a>     }
-<a name="793" href="#793">793</a> 
-<a name="794" href="#794">794</a> 
-<a name="795" href="#795">795</a>     <strong class="jxr_keyword">protected</strong> Set getOptionalPackages( MavenProject currentProject ) <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException
-<a name="796" href="#796">796</a>     {
-<a name="797" href="#797">797</a>         ArrayList inscope = <strong class="jxr_keyword">new</strong> ArrayList();
-<a name="798" href="#798">798</a>         <strong class="jxr_keyword">final</strong> Collection artifacts = getSelectedDependencies( currentProject.getArtifacts() );
-<a name="799" href="#799">799</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = artifacts.iterator(); it.hasNext(); )
-<a name="800" href="#800">800</a>         {
-<a name="801" href="#801">801</a>             Artifact artifact = ( Artifact ) it.next();
-<a name="802" href="#802">802</a>             <strong class="jxr_keyword">if</strong> ( artifact.getArtifactHandler().isAddedToClasspath() )
-<a name="803" href="#803">803</a>             {
-<a name="804" href="#804">804</a>                 <strong class="jxr_keyword">if</strong> ( !Artifact.SCOPE_TEST.equals( artifact.getScope() ) )
-<a name="805" href="#805">805</a>                 {
-<a name="806" href="#806">806</a>                     inscope.add( artifact );
+<a name="791" href="#791">791</a>             <em class="jxr_comment">// adjust the import package attributes so that optional dependencies use</em>
+<a name="792" href="#792">792</a>             <em class="jxr_comment">// optional resolution.</em>
+<a name="793" href="#793">793</a>             String importPackages = bundleManifest.getMainAttributes().getValue( <span class="jxr_string">"Import-Package"</span> );
+<a name="794" href="#794">794</a>             <strong class="jxr_keyword">if</strong> ( importPackages != <strong class="jxr_keyword">null</strong> )
+<a name="795" href="#795">795</a>             {
+<a name="796" href="#796">796</a>                 Set optionalPackages = getOptionalPackages( currentProject );
+<a name="797" href="#797">797</a> 
+<a name="798" href="#798">798</a>                 Map&lt;String, ? <strong class="jxr_keyword">extends</strong> Map&lt;String, String&gt;&gt; values = <strong class="jxr_keyword">new</strong> Analyzer().parseHeader( importPackages );
+<a name="799" href="#799">799</a>                 <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, ? <strong class="jxr_keyword">extends</strong> Map&lt;String, String&gt;&gt; entry : values.entrySet() )
+<a name="800" href="#800">800</a>                 {
+<a name="801" href="#801">801</a>                     String pkg = entry.getKey();
+<a name="802" href="#802">802</a>                     Map&lt;String, String&gt; options = entry.getValue();
+<a name="803" href="#803">803</a>                     <strong class="jxr_keyword">if</strong> ( !options.containsKey( <span class="jxr_string">"resolution:"</span> ) &amp;&amp; optionalPackages.contains( pkg ) )
+<a name="804" href="#804">804</a>                     {
+<a name="805" href="#805">805</a>                         options.put( <span class="jxr_string">"resolution:"</span>, <span class="jxr_string">"optional"</span> );
+<a name="806" href="#806">806</a>                     }
 <a name="807" href="#807">807</a>                 }
-<a name="808" href="#808">808</a>             }
-<a name="809" href="#809">809</a>         }
-<a name="810" href="#810">810</a> 
-<a name="811" href="#811">811</a>         HashSet optionalArtifactIds = <strong class="jxr_keyword">new</strong> HashSet();
-<a name="812" href="#812">812</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = inscope.iterator(); it.hasNext(); )
-<a name="813" href="#813">813</a>         {
-<a name="814" href="#814">814</a>             Artifact artifact = ( Artifact ) it.next();
-<a name="815" href="#815">815</a>             <strong class="jxr_keyword">if</strong> ( artifact.isOptional() )
-<a name="816" href="#816">816</a>             {
-<a name="817" href="#817">817</a>                 String id = artifact.toString();
-<a name="818" href="#818">818</a>                 <strong class="jxr_keyword">if</strong> ( artifact.getScope() != <strong class="jxr_keyword">null</strong> )
-<a name="819" href="#819">819</a>                 {
-<a name="820" href="#820">820</a>                     <em class="jxr_comment">// strip the scope...</em>
-<a name="821" href="#821">821</a>                     id = id.replaceFirst( <span class="jxr_string">":[^:]*$"</span>, <span class="jxr_string">""</span> );
-<a name="822" href="#822">822</a>                 }
-<a name="823" href="#823">823</a>                 optionalArtifactIds.add( id );
-<a name="824" href="#824">824</a>             }
-<a name="825" href="#825">825</a> 
-<a name="826" href="#826">826</a>         }
-<a name="827" href="#827">827</a> 
-<a name="828" href="#828">828</a>         HashSet required = <strong class="jxr_keyword">new</strong> HashSet();
-<a name="829" href="#829">829</a>         HashSet optional = <strong class="jxr_keyword">new</strong> HashSet();
-<a name="830" href="#830">830</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = inscope.iterator(); it.hasNext(); )
-<a name="831" href="#831">831</a>         {
-<a name="832" href="#832">832</a>             Artifact artifact = ( Artifact ) it.next();
-<a name="833" href="#833">833</a>             File file = getFile( artifact );
-<a name="834" href="#834">834</a>             <strong class="jxr_keyword">if</strong> ( file == <strong class="jxr_keyword">null</strong> )
-<a name="835" href="#835">835</a>             {
-<a name="836" href="#836">836</a>                 <strong class="jxr_keyword">continue</strong>;
-<a name="837" href="#837">837</a>             }
-<a name="838" href="#838">838</a> 
-<a name="839" href="#839">839</a>             Jar jar = <strong class="jxr_keyword">new</strong> Jar( artifact.getArtifactId(), file );
-<a name="840" href="#840">840</a>             <strong class="jxr_keyword">if</strong> ( isTransitivelyOptional( optionalArtifactIds, artifact ) )
+<a name="808" href="#808">808</a>                 String result = Processor.printClauses( values );
+<a name="809" href="#809">809</a>                 bundleManifest.getMainAttributes().putValue( <span class="jxr_string">"Import-Package"</span>, result );
+<a name="810" href="#810">810</a>             }
+<a name="811" href="#811">811</a> 
+<a name="812" href="#812">812</a>             jar.setManifest( bundleManifest );
+<a name="813" href="#813">813</a>         }
+<a name="814" href="#814">814</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="815" href="#815">815</a>         {
+<a name="816" href="#816">816</a>             getLog().warn( <span class="jxr_string">"Unable to merge Maven manifest: "</span> + e.getLocalizedMessage() );
+<a name="817" href="#817">817</a>         }
+<a name="818" href="#818">818</a> 
+<a name="819" href="#819">819</a>         <strong class="jxr_keyword">if</strong> ( addMavenDescriptor )
+<a name="820" href="#820">820</a>         {
+<a name="821" href="#821">821</a>             doMavenMetadata( currentProject, jar );
+<a name="822" href="#822">822</a>         }
+<a name="823" href="#823">823</a> 
+<a name="824" href="#824">824</a>         <strong class="jxr_keyword">if</strong> ( getLog().isDebugEnabled() )
+<a name="825" href="#825">825</a>         {
+<a name="826" href="#826">826</a>             getLog().debug( <span class="jxr_string">"Final Manifest:"</span> + NL + dumpManifest( jar.getManifest(), <strong class="jxr_keyword">new</strong> StringBuilder() ) );
+<a name="827" href="#827">827</a>         }
+<a name="828" href="#828">828</a> 
+<a name="829" href="#829">829</a>         builder.setJar( jar );
+<a name="830" href="#830">830</a>     }
+<a name="831" href="#831">831</a> 
+<a name="832" href="#832">832</a> 
+<a name="833" href="#833">833</a>     <strong class="jxr_keyword">protected</strong> Set getOptionalPackages( MavenProject currentProject ) <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException
+<a name="834" href="#834">834</a>     {
+<a name="835" href="#835">835</a>         ArrayList inscope = <strong class="jxr_keyword">new</strong> ArrayList();
+<a name="836" href="#836">836</a>         <strong class="jxr_keyword">final</strong> Collection artifacts = getSelectedDependencies( currentProject.getArtifacts() );
+<a name="837" href="#837">837</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = artifacts.iterator(); it.hasNext(); )
+<a name="838" href="#838">838</a>         {
+<a name="839" href="#839">839</a>             Artifact artifact = ( Artifact ) it.next();
+<a name="840" href="#840">840</a>             <strong class="jxr_keyword">if</strong> ( artifact.getArtifactHandler().isAddedToClasspath() )
 <a name="841" href="#841">841</a>             {
-<a name="842" href="#842">842</a>                 optional.addAll( jar.getPackages() );
-<a name="843" href="#843">843</a>             }
-<a name="844" href="#844">844</a>             <strong class="jxr_keyword">else</strong>
-<a name="845" href="#845">845</a>             {
-<a name="846" href="#846">846</a>                 required.addAll( jar.getPackages() );
-<a name="847" href="#847">847</a>             }
-<a name="848" href="#848">848</a>             jar.close();
-<a name="849" href="#849">849</a>         }
-<a name="850" href="#850">850</a> 
-<a name="851" href="#851">851</a>         optional.removeAll( required );
-<a name="852" href="#852">852</a>         <strong class="jxr_keyword">return</strong> optional;
-<a name="853" href="#853">853</a>     }
-<a name="854" href="#854">854</a> 
-<a name="855" href="#855">855</a> 
-<a name="856" href="#856">856</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="857" href="#857">857</a> <em class="jxr_javadoccomment">     * Check to see if any dependency along the dependency trail of</em>
-<a name="858" href="#858">858</a> <em class="jxr_javadoccomment">     * the artifact is optional.</em>
-<a name="859" href="#859">859</a> <em class="jxr_javadoccomment">     *</em>
-<a name="860" href="#860">860</a> <em class="jxr_javadoccomment">     * @param artifact</em>
-<a name="861" href="#861">861</a> <em class="jxr_javadoccomment">     */</em>
-<a name="862" href="#862">862</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isTransitivelyOptional( HashSet optionalArtifactIds, Artifact artifact )
-<a name="863" href="#863">863</a>     {
-<a name="864" href="#864">864</a>         List trail = artifact.getDependencyTrail();
-<a name="865" href="#865">865</a>         <strong class="jxr_keyword">for</strong> ( Iterator iterator = trail.iterator(); iterator.hasNext(); )
-<a name="866" href="#866">866</a>         {
-<a name="867" href="#867">867</a>             String next = ( String ) iterator.next();
-<a name="868" href="#868">868</a>             <strong class="jxr_keyword">if</strong> ( optionalArtifactIds.contains( next ) )
-<a name="869" href="#869">869</a>             {
-<a name="870" href="#870">870</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
-<a name="871" href="#871">871</a>             }
-<a name="872" href="#872">872</a>         }
-<a name="873" href="#873">873</a>         <strong class="jxr_keyword">return</strong> false;
-<a name="874" href="#874">874</a>     }
-<a name="875" href="#875">875</a> 
+<a name="842" href="#842">842</a>                 <strong class="jxr_keyword">if</strong> ( !Artifact.SCOPE_TEST.equals( artifact.getScope() ) )
+<a name="843" href="#843">843</a>                 {
+<a name="844" href="#844">844</a>                     inscope.add( artifact );
+<a name="845" href="#845">845</a>                 }
+<a name="846" href="#846">846</a>             }
+<a name="847" href="#847">847</a>         }
+<a name="848" href="#848">848</a> 
+<a name="849" href="#849">849</a>         HashSet optionalArtifactIds = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="850" href="#850">850</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = inscope.iterator(); it.hasNext(); )
+<a name="851" href="#851">851</a>         {
+<a name="852" href="#852">852</a>             Artifact artifact = ( Artifact ) it.next();
+<a name="853" href="#853">853</a>             <strong class="jxr_keyword">if</strong> ( artifact.isOptional() )
+<a name="854" href="#854">854</a>             {
+<a name="855" href="#855">855</a>                 String id = artifact.toString();
+<a name="856" href="#856">856</a>                 <strong class="jxr_keyword">if</strong> ( artifact.getScope() != <strong class="jxr_keyword">null</strong> )
+<a name="857" href="#857">857</a>                 {
+<a name="858" href="#858">858</a>                     <em class="jxr_comment">// strip the scope...</em>
+<a name="859" href="#859">859</a>                     id = id.replaceFirst( <span class="jxr_string">":[^:]*$"</span>, <span class="jxr_string">""</span> );
+<a name="860" href="#860">860</a>                 }
+<a name="861" href="#861">861</a>                 optionalArtifactIds.add( id );
+<a name="862" href="#862">862</a>             }
+<a name="863" href="#863">863</a> 
+<a name="864" href="#864">864</a>         }
+<a name="865" href="#865">865</a> 
+<a name="866" href="#866">866</a>         HashSet required = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="867" href="#867">867</a>         HashSet optional = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="868" href="#868">868</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = inscope.iterator(); it.hasNext(); )
+<a name="869" href="#869">869</a>         {
+<a name="870" href="#870">870</a>             Artifact artifact = ( Artifact ) it.next();
+<a name="871" href="#871">871</a>             File file = getFile( artifact );
+<a name="872" href="#872">872</a>             <strong class="jxr_keyword">if</strong> ( file == <strong class="jxr_keyword">null</strong> )
+<a name="873" href="#873">873</a>             {
+<a name="874" href="#874">874</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="875" href="#875">875</a>             }
 <a name="876" href="#876">876</a> 
-<a name="877" href="#877">877</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> unpackBundle( File jarFile )
-<a name="878" href="#878">878</a>     {
-<a name="879" href="#879">879</a>         File outputDir = getOutputDirectory();
-<a name="880" href="#880">880</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == outputDir )
-<a name="881" href="#881">881</a>         {
-<a name="882" href="#882">882</a>             outputDir = <strong class="jxr_keyword">new</strong> File( getBuildDirectory(), <span class="jxr_string">"classes"</span> );
-<a name="883" href="#883">883</a>         }
-<a name="884" href="#884">884</a> 
-<a name="885" href="#885">885</a>         <strong class="jxr_keyword">try</strong>
-<a name="886" href="#886">886</a>         {
-<a name="887" href="#887">887</a>             <em class="jxr_comment">/*</em>
-<a name="888" href="#888">888</a> <em class="jxr_comment">             * this directory must exist before unpacking, otherwise the plexus</em>
-<a name="889" href="#889">889</a> <em class="jxr_comment">             * unarchiver decides to use the current working directory instead!</em>
-<a name="890" href="#890">890</a> <em class="jxr_comment">             */</em>
-<a name="891" href="#891">891</a>             <strong class="jxr_keyword">if</strong> ( !outputDir.exists() )
-<a name="892" href="#892">892</a>             {
-<a name="893" href="#893">893</a>                 outputDir.mkdirs();
-<a name="894" href="#894">894</a>             }
-<a name="895" href="#895">895</a> 
-<a name="896" href="#896">896</a>             UnArchiver unArchiver = m_archiverManager.getUnArchiver( <span class="jxr_string">"jar"</span> );
-<a name="897" href="#897">897</a>             unArchiver.setDestDirectory( outputDir );
-<a name="898" href="#898">898</a>             unArchiver.setSourceFile( jarFile );
-<a name="899" href="#899">899</a>             unArchiver.extract();
-<a name="900" href="#900">900</a>         }
-<a name="901" href="#901">901</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="902" href="#902">902</a>         {
-<a name="903" href="#903">903</a>             getLog().error( <span class="jxr_string">"Problem unpacking "</span> + jarFile + <span class="jxr_string">" to "</span> + outputDir, e );
-<a name="904" href="#904">904</a>         }
-<a name="905" href="#905">905</a>     }
-<a name="906" href="#906">906</a> 
-<a name="907" href="#907">907</a> 
-<a name="908" href="#908">908</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String removeTagFromInstruction( String instruction, String tag )
-<a name="909" href="#909">909</a>     {
-<a name="910" href="#910">910</a>         StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer();
-<a name="911" href="#911">911</a> 
-<a name="912" href="#912">912</a>         String[] clauses = instruction.split( <span class="jxr_string">","</span> );
-<a name="913" href="#913">913</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; clauses.length; i++ )
-<a name="914" href="#914">914</a>         {
-<a name="915" href="#915">915</a>             String clause = clauses[i].trim();
-<a name="916" href="#916">916</a>             <strong class="jxr_keyword">if</strong> ( !tag.equals( clause ) )
-<a name="917" href="#917">917</a>             {
-<a name="918" href="#918">918</a>                 <strong class="jxr_keyword">if</strong> ( buf.length() &gt; 0 )
-<a name="919" href="#919">919</a>                 {
-<a name="920" href="#920">920</a>                     buf.append( ',' );
-<a name="921" href="#921">921</a>                 }
-<a name="922" href="#922">922</a>                 buf.append( clause );
-<a name="923" href="#923">923</a>             }
-<a name="924" href="#924">924</a>         }
-<a name="925" href="#925">925</a> 
-<a name="926" href="#926">926</a>         <strong class="jxr_keyword">return</strong> buf.toString();
-<a name="927" href="#927">927</a>     }
-<a name="928" href="#928">928</a> 
-<a name="929" href="#929">929</a> 
-<a name="930" href="#930">930</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Map getProperties( Model projectModel, String prefix )
-<a name="931" href="#931">931</a>     {
-<a name="932" href="#932">932</a>         Map properties = <strong class="jxr_keyword">new</strong> LinkedHashMap();
-<a name="933" href="#933">933</a>         Method methods[] = Model.<strong class="jxr_keyword">class</strong>.getDeclaredMethods();
-<a name="934" href="#934">934</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; methods.length; i++ )
-<a name="935" href="#935">935</a>         {
-<a name="936" href="#936">936</a>             String name = methods[i].getName();
-<a name="937" href="#937">937</a>             <strong class="jxr_keyword">if</strong> ( name.startsWith( <span class="jxr_string">"get"</span> ) )
-<a name="938" href="#938">938</a>             {
-<a name="939" href="#939">939</a>                 <strong class="jxr_keyword">try</strong>
-<a name="940" href="#940">940</a>                 {
-<a name="941" href="#941">941</a>                     Object v = methods[i].invoke( projectModel, <strong class="jxr_keyword">null</strong> );
-<a name="942" href="#942">942</a>                     <strong class="jxr_keyword">if</strong> ( v != <strong class="jxr_keyword">null</strong> )
-<a name="943" href="#943">943</a>                     {
-<a name="944" href="#944">944</a>                         name = prefix + Character.toLowerCase( name.charAt( 3 ) ) + name.substring( 4 );
-<a name="945" href="#945">945</a>                         <strong class="jxr_keyword">if</strong> ( v.getClass().isArray() )
-<a name="946" href="#946">946</a>                             properties.put( name, Arrays.asList( ( Object[] ) v ).toString() );
-<a name="947" href="#947">947</a>                         <strong class="jxr_keyword">else</strong>
-<a name="948" href="#948">948</a>                             properties.put( name, v );
+<a name="877" href="#877">877</a>             Jar jar = <strong class="jxr_keyword">new</strong> Jar( artifact.getArtifactId(), file );
+<a name="878" href="#878">878</a>             <strong class="jxr_keyword">if</strong> ( isTransitivelyOptional( optionalArtifactIds, artifact ) )
+<a name="879" href="#879">879</a>             {
+<a name="880" href="#880">880</a>                 optional.addAll( jar.getPackages() );
+<a name="881" href="#881">881</a>             }
+<a name="882" href="#882">882</a>             <strong class="jxr_keyword">else</strong>
+<a name="883" href="#883">883</a>             {
+<a name="884" href="#884">884</a>                 required.addAll( jar.getPackages() );
+<a name="885" href="#885">885</a>             }
+<a name="886" href="#886">886</a>             jar.close();
+<a name="887" href="#887">887</a>         }
+<a name="888" href="#888">888</a> 
+<a name="889" href="#889">889</a>         optional.removeAll( required );
+<a name="890" href="#890">890</a>         <strong class="jxr_keyword">return</strong> optional;
+<a name="891" href="#891">891</a>     }
+<a name="892" href="#892">892</a> 
+<a name="893" href="#893">893</a> 
+<a name="894" href="#894">894</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="895" href="#895">895</a> <em class="jxr_javadoccomment">     * Check to see if any dependency along the dependency trail of</em>
+<a name="896" href="#896">896</a> <em class="jxr_javadoccomment">     * the artifact is optional.</em>
+<a name="897" href="#897">897</a> <em class="jxr_javadoccomment">     *</em>
+<a name="898" href="#898">898</a> <em class="jxr_javadoccomment">     * @param artifact</em>
+<a name="899" href="#899">899</a> <em class="jxr_javadoccomment">     */</em>
+<a name="900" href="#900">900</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isTransitivelyOptional( HashSet optionalArtifactIds, Artifact artifact )
+<a name="901" href="#901">901</a>     {
+<a name="902" href="#902">902</a>         List trail = artifact.getDependencyTrail();
+<a name="903" href="#903">903</a>         <strong class="jxr_keyword">for</strong> ( Iterator iterator = trail.iterator(); iterator.hasNext(); )
+<a name="904" href="#904">904</a>         {
+<a name="905" href="#905">905</a>             String next = ( String ) iterator.next();
+<a name="906" href="#906">906</a>             <strong class="jxr_keyword">if</strong> ( optionalArtifactIds.contains( next ) )
+<a name="907" href="#907">907</a>             {
+<a name="908" href="#908">908</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
+<a name="909" href="#909">909</a>             }
+<a name="910" href="#910">910</a>         }
+<a name="911" href="#911">911</a>         <strong class="jxr_keyword">return</strong> false;
+<a name="912" href="#912">912</a>     }
+<a name="913" href="#913">913</a> 
+<a name="914" href="#914">914</a> 
+<a name="915" href="#915">915</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> unpackBundle( File jarFile )
+<a name="916" href="#916">916</a>     {
+<a name="917" href="#917">917</a>         File outputDir = getOutputDirectory();
+<a name="918" href="#918">918</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == outputDir )
+<a name="919" href="#919">919</a>         {
+<a name="920" href="#920">920</a>             outputDir = <strong class="jxr_keyword">new</strong> File( getBuildDirectory(), <span class="jxr_string">"classes"</span> );
+<a name="921" href="#921">921</a>         }
+<a name="922" href="#922">922</a> 
+<a name="923" href="#923">923</a>         <strong class="jxr_keyword">try</strong>
+<a name="924" href="#924">924</a>         {
+<a name="925" href="#925">925</a>             <em class="jxr_comment">/*</em>
+<a name="926" href="#926">926</a> <em class="jxr_comment">             * this directory must exist before unpacking, otherwise the plexus</em>
+<a name="927" href="#927">927</a> <em class="jxr_comment">             * unarchiver decides to use the current working directory instead!</em>
+<a name="928" href="#928">928</a> <em class="jxr_comment">             */</em>
+<a name="929" href="#929">929</a>             <strong class="jxr_keyword">if</strong> ( !outputDir.exists() )
+<a name="930" href="#930">930</a>             {
+<a name="931" href="#931">931</a>                 outputDir.mkdirs();
+<a name="932" href="#932">932</a>             }
+<a name="933" href="#933">933</a> 
+<a name="934" href="#934">934</a>             UnArchiver unArchiver = m_archiverManager.getUnArchiver( <span class="jxr_string">"jar"</span> );
+<a name="935" href="#935">935</a>             unArchiver.setDestDirectory( outputDir );
+<a name="936" href="#936">936</a>             unArchiver.setSourceFile( jarFile );
+<a name="937" href="#937">937</a>             unArchiver.extract();
+<a name="938" href="#938">938</a>         }
+<a name="939" href="#939">939</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="940" href="#940">940</a>         {
+<a name="941" href="#941">941</a>             getLog().error( <span class="jxr_string">"Problem unpacking "</span> + jarFile + <span class="jxr_string">" to "</span> + outputDir, e );
+<a name="942" href="#942">942</a>         }
+<a name="943" href="#943">943</a>     }
+<a name="944" href="#944">944</a> 
+<a name="945" href="#945">945</a> 
+<a name="946" href="#946">946</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String removeTagFromInstruction( String instruction, String tag )
+<a name="947" href="#947">947</a>     {
+<a name="948" href="#948">948</a>         StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer();
 <a name="949" href="#949">949</a> 
-<a name="950" href="#950">950</a>                     }
-<a name="951" href="#951">951</a>                 }
-<a name="952" href="#952">952</a>                 <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="953" href="#953">953</a>                 {
-<a name="954" href="#954">954</a>                     <em class="jxr_comment">// too bad</em>
-<a name="955" href="#955">955</a>                 }
-<a name="956" href="#956">956</a>             }
-<a name="957" href="#957">957</a>         }
-<a name="958" href="#958">958</a>         <strong class="jxr_keyword">return</strong> properties;
-<a name="959" href="#959">959</a>     }
-<a name="960" href="#960">960</a> 
-<a name="961" href="#961">961</a> 
-<a name="962" href="#962">962</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> StringBuffer printLicenses( List licenses )
-<a name="963" href="#963">963</a>     {
-<a name="964" href="#964">964</a>         <strong class="jxr_keyword">if</strong> ( licenses == <strong class="jxr_keyword">null</strong> || licenses.size() == 0 )
-<a name="965" href="#965">965</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a name="966" href="#966">966</a>         StringBuffer sb = <strong class="jxr_keyword">new</strong> StringBuffer();
-<a name="967" href="#967">967</a>         String del = <span class="jxr_string">""</span>;
-<a name="968" href="#968">968</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = licenses.iterator(); i.hasNext(); )
-<a name="969" href="#969">969</a>         {
-<a name="970" href="#970">970</a>             License l = ( License ) i.next();
-<a name="971" href="#971">971</a>             String url = l.getUrl();
-<a name="972" href="#972">972</a>             <strong class="jxr_keyword">if</strong> ( url == <strong class="jxr_keyword">null</strong> )
-<a name="973" href="#973">973</a>                 <strong class="jxr_keyword">continue</strong>;
-<a name="974" href="#974">974</a>             sb.append( del );
-<a name="975" href="#975">975</a>             sb.append( url );
-<a name="976" href="#976">976</a>             del = <span class="jxr_string">", "</span>;
-<a name="977" href="#977">977</a>         }
-<a name="978" href="#978">978</a>         <strong class="jxr_keyword">if</strong> ( sb.length() == 0 )
-<a name="979" href="#979">979</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a name="980" href="#980">980</a>         <strong class="jxr_keyword">return</strong> sb;
-<a name="981" href="#981">981</a>     }
-<a name="982" href="#982">982</a> 
-<a name="983" href="#983">983</a> 
-<a name="984" href="#984">984</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="985" href="#985">985</a> <em class="jxr_javadoccomment">     * @param jar</em>
-<a name="986" href="#986">986</a> <em class="jxr_javadoccomment">     * @throws IOException</em>
-<a name="987" href="#987">987</a> <em class="jxr_javadoccomment">     */</em>
-<a name="988" href="#988">988</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> doMavenMetadata( MavenProject currentProject, Jar jar ) <strong class="jxr_keyword">throws</strong> IOException
-<a name="989" href="#989">989</a>     {
-<a name="990" href="#990">990</a>         String path = <span class="jxr_string">"META-INF/maven/"</span> + currentProject.getGroupId() + <span class="jxr_string">"/"</span> + currentProject.getArtifactId();
-<a name="991" href="#991">991</a>         File pomFile = <strong class="jxr_keyword">new</strong> File( currentProject.getBasedir(), <span class="jxr_string">"pom.xml"</span> );
-<a name="992" href="#992">992</a>         jar.putResource( path + <span class="jxr_string">"/pom.xml"</span>, <strong class="jxr_keyword">new</strong> FileResource( pomFile ) );
-<a name="993" href="#993">993</a> 
-<a name="994" href="#994">994</a>         Properties p = <strong class="jxr_keyword">new</strong> Properties();
-<a name="995" href="#995">995</a>         p.put( <span class="jxr_string">"version"</span>, currentProject.getVersion() );
-<a name="996" href="#996">996</a>         p.put( <span class="jxr_string">"groupId"</span>, currentProject.getGroupId() );
-<a name="997" href="#997">997</a>         p.put( <span class="jxr_string">"artifactId"</span>, currentProject.getArtifactId() );
-<a name="998" href="#998">998</a>         ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
-<a name="999" href="#999">999</a>         p.store( out, <span class="jxr_string">"Generated by org.apache.felix.bundleplugin"</span> );
-<a name="1000" href="#1000">1000</a>         jar.putResource( path + <span class="jxr_string">"/pom.properties"</span>, <strong class="jxr_keyword">new</strong> EmbeddedResource( out.toByteArray(), System.currentTimeMillis() ) );
-<a name="1001" href="#1001">1001</a>     }
-<a name="1002" href="#1002">1002</a> 
-<a name="1003" href="#1003">1003</a> 
-<a name="1004" href="#1004">1004</a>     <strong class="jxr_keyword">protected</strong> Jar[] getClasspath( MavenProject currentProject ) <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException
-<a name="1005" href="#1005">1005</a>     {
-<a name="1006" href="#1006">1006</a>         List list = <strong class="jxr_keyword">new</strong> ArrayList();
-<a name="1007" href="#1007">1007</a> 
-<a name="1008" href="#1008">1008</a>         <strong class="jxr_keyword">if</strong> ( getOutputDirectory() != <strong class="jxr_keyword">null</strong> &amp;&amp; getOutputDirectory().exists() )
-<a name="1009" href="#1009">1009</a>         {
-<a name="1010" href="#1010">1010</a>             list.add( <strong class="jxr_keyword">new</strong> Jar( <span class="jxr_string">"."</span>, getOutputDirectory() ) );
-<a name="1011" href="#1011">1011</a>         }
-<a name="1012" href="#1012">1012</a> 
-<a name="1013" href="#1013">1013</a>         <strong class="jxr_keyword">final</strong> Collection artifacts = getSelectedDependencies( currentProject.getArtifacts() );
-<a name="1014" href="#1014">1014</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = artifacts.iterator(); it.hasNext(); )
-<a name="1015" href="#1015">1015</a>         {
-<a name="1016" href="#1016">1016</a>             Artifact artifact = ( Artifact ) it.next();
-<a name="1017" href="#1017">1017</a>             <strong class="jxr_keyword">if</strong> ( artifact.getArtifactHandler().isAddedToClasspath() )
-<a name="1018" href="#1018">1018</a>             {
-<a name="1019" href="#1019">1019</a>                 <strong class="jxr_keyword">if</strong> ( !Artifact.SCOPE_TEST.equals( artifact.getScope() ) )
-<a name="1020" href="#1020">1020</a>                 {
-<a name="1021" href="#1021">1021</a>                     File file = getFile( artifact );
-<a name="1022" href="#1022">1022</a>                     <strong class="jxr_keyword">if</strong> ( file == <strong class="jxr_keyword">null</strong> )
-<a name="1023" href="#1023">1023</a>                     {
-<a name="1024" href="#1024">1024</a>                         getLog().warn(
-<a name="1025" href="#1025">1025</a>                             <span class="jxr_string">"File is not available for artifact "</span> + artifact + <span class="jxr_string">" in project "</span>
-<a name="1026" href="#1026">1026</a>                                 + currentProject.getArtifact() );
-<a name="1027" href="#1027">1027</a>                         <strong class="jxr_keyword">continue</strong>;
-<a name="1028" href="#1028">1028</a>                     }
-<a name="1029" href="#1029">1029</a>                     Jar jar = <strong class="jxr_keyword">new</strong> Jar( artifact.getArtifactId(), file );
-<a name="1030" href="#1030">1030</a>                     list.add( jar );
-<a name="1031" href="#1031">1031</a>                 }
-<a name="1032" href="#1032">1032</a>             }
-<a name="1033" href="#1033">1033</a>         }
-<a name="1034" href="#1034">1034</a>         Jar[] cp = <strong class="jxr_keyword">new</strong> Jar[list.size()];
-<a name="1035" href="#1035">1035</a>         list.toArray( cp );
-<a name="1036" href="#1036">1036</a>         <strong class="jxr_keyword">return</strong> cp;
-<a name="1037" href="#1037">1037</a>     }
-<a name="1038" href="#1038">1038</a> 
-<a name="1039" href="#1039">1039</a> 
-<a name="1040" href="#1040">1040</a>     <strong class="jxr_keyword">private</strong> Collection getSelectedDependencies( Collection artifacts ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="1041" href="#1041">1041</a>     {
-<a name="1042" href="#1042">1042</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == excludeDependencies || excludeDependencies.length() == 0 )
-<a name="1043" href="#1043">1043</a>         {
-<a name="1044" href="#1044">1044</a>             <strong class="jxr_keyword">return</strong> artifacts;
-<a name="1045" href="#1045">1045</a>         }
-<a name="1046" href="#1046">1046</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"true"</span>.equalsIgnoreCase( excludeDependencies ) )
+<a name="950" href="#950">950</a>         String[] clauses = instruction.split( <span class="jxr_string">","</span> );
+<a name="951" href="#951">951</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; clauses.length; i++ )
+<a name="952" href="#952">952</a>         {
+<a name="953" href="#953">953</a>             String clause = clauses[i].trim();
+<a name="954" href="#954">954</a>             <strong class="jxr_keyword">if</strong> ( !tag.equals( clause ) )
+<a name="955" href="#955">955</a>             {
+<a name="956" href="#956">956</a>                 <strong class="jxr_keyword">if</strong> ( buf.length() &gt; 0 )
+<a name="957" href="#957">957</a>                 {
+<a name="958" href="#958">958</a>                     buf.append( ',' );
+<a name="959" href="#959">959</a>                 }
+<a name="960" href="#960">960</a>                 buf.append( clause );
+<a name="961" href="#961">961</a>             }
+<a name="962" href="#962">962</a>         }
+<a name="963" href="#963">963</a> 
+<a name="964" href="#964">964</a>         <strong class="jxr_keyword">return</strong> buf.toString();
+<a name="965" href="#965">965</a>     }
+<a name="966" href="#966">966</a> 
+<a name="967" href="#967">967</a> 
+<a name="968" href="#968">968</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Map getProperties( Model projectModel, String prefix )
+<a name="969" href="#969">969</a>     {
+<a name="970" href="#970">970</a>         Map properties = <strong class="jxr_keyword">new</strong> LinkedHashMap();
+<a name="971" href="#971">971</a>         Method methods[] = Model.<strong class="jxr_keyword">class</strong>.getDeclaredMethods();
+<a name="972" href="#972">972</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; methods.length; i++ )
+<a name="973" href="#973">973</a>         {
+<a name="974" href="#974">974</a>             String name = methods[i].getName();
+<a name="975" href="#975">975</a>             <strong class="jxr_keyword">if</strong> ( name.startsWith( <span class="jxr_string">"get"</span> ) )
+<a name="976" href="#976">976</a>             {
+<a name="977" href="#977">977</a>                 <strong class="jxr_keyword">try</strong>
+<a name="978" href="#978">978</a>                 {
+<a name="979" href="#979">979</a>                     Object v = methods[i].invoke( projectModel, <strong class="jxr_keyword">null</strong> );
+<a name="980" href="#980">980</a>                     <strong class="jxr_keyword">if</strong> ( v != <strong class="jxr_keyword">null</strong> )
+<a name="981" href="#981">981</a>                     {
+<a name="982" href="#982">982</a>                         name = prefix + Character.toLowerCase( name.charAt( 3 ) ) + name.substring( 4 );
+<a name="983" href="#983">983</a>                         <strong class="jxr_keyword">if</strong> ( v.getClass().isArray() )
+<a name="984" href="#984">984</a>                             properties.put( name, Arrays.asList( ( Object[] ) v ).toString() );
+<a name="985" href="#985">985</a>                         <strong class="jxr_keyword">else</strong>
+<a name="986" href="#986">986</a>                             properties.put( name, v );
+<a name="987" href="#987">987</a> 
+<a name="988" href="#988">988</a>                     }
+<a name="989" href="#989">989</a>                 }
+<a name="990" href="#990">990</a>                 <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="991" href="#991">991</a>                 {
+<a name="992" href="#992">992</a>                     <em class="jxr_comment">// too bad</em>
+<a name="993" href="#993">993</a>                 }
+<a name="994" href="#994">994</a>             }
+<a name="995" href="#995">995</a>         }
+<a name="996" href="#996">996</a>         <strong class="jxr_keyword">return</strong> properties;
+<a name="997" href="#997">997</a>     }
+<a name="998" href="#998">998</a> 
+<a name="999" href="#999">999</a> 
+<a name="1000" href="#1000">1000</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> StringBuffer printLicenses( List licenses )
+<a name="1001" href="#1001">1001</a>     {
+<a name="1002" href="#1002">1002</a>         <strong class="jxr_keyword">if</strong> ( licenses == <strong class="jxr_keyword">null</strong> || licenses.size() == 0 )
+<a name="1003" href="#1003">1003</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="1004" href="#1004">1004</a>         StringBuffer sb = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="1005" href="#1005">1005</a>         String del = <span class="jxr_string">""</span>;
+<a name="1006" href="#1006">1006</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = licenses.iterator(); i.hasNext(); )
+<a name="1007" href="#1007">1007</a>         {
+<a name="1008" href="#1008">1008</a>             License l = ( License ) i.next();
+<a name="1009" href="#1009">1009</a>             String url = l.getUrl();
+<a name="1010" href="#1010">1010</a>             <strong class="jxr_keyword">if</strong> ( url == <strong class="jxr_keyword">null</strong> )
+<a name="1011" href="#1011">1011</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="1012" href="#1012">1012</a>             sb.append( del );
+<a name="1013" href="#1013">1013</a>             sb.append( url );
+<a name="1014" href="#1014">1014</a>             del = <span class="jxr_string">", "</span>;
+<a name="1015" href="#1015">1015</a>         }
+<a name="1016" href="#1016">1016</a>         <strong class="jxr_keyword">if</strong> ( sb.length() == 0 )
+<a name="1017" href="#1017">1017</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="1018" href="#1018">1018</a>         <strong class="jxr_keyword">return</strong> sb;
+<a name="1019" href="#1019">1019</a>     }
+<a name="1020" href="#1020">1020</a> 
+<a name="1021" href="#1021">1021</a> 
+<a name="1022" href="#1022">1022</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="1023" href="#1023">1023</a> <em class="jxr_javadoccomment">     * @param jar</em>
+<a name="1024" href="#1024">1024</a> <em class="jxr_javadoccomment">     * @throws IOException</em>
+<a name="1025" href="#1025">1025</a> <em class="jxr_javadoccomment">     */</em>
+<a name="1026" href="#1026">1026</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> doMavenMetadata( MavenProject currentProject, Jar jar ) <strong class="jxr_keyword">throws</strong> IOException
+<a name="1027" href="#1027">1027</a>     {
+<a name="1028" href="#1028">1028</a>         String path = <span class="jxr_string">"META-INF/maven/"</span> + currentProject.getGroupId() + <span class="jxr_string">"/"</span> + currentProject.getArtifactId();
+<a name="1029" href="#1029">1029</a>         File pomFile = <strong class="jxr_keyword">new</strong> File( currentProject.getBasedir(), <span class="jxr_string">"pom.xml"</span> );
+<a name="1030" href="#1030">1030</a>         jar.putResource( path + <span class="jxr_string">"/pom.xml"</span>, <strong class="jxr_keyword">new</strong> FileResource( pomFile ) );
+<a name="1031" href="#1031">1031</a> 
+<a name="1032" href="#1032">1032</a>         Properties p = <strong class="jxr_keyword">new</strong> Properties();
+<a name="1033" href="#1033">1033</a>         p.put( <span class="jxr_string">"version"</span>, currentProject.getVersion() );
+<a name="1034" href="#1034">1034</a>         p.put( <span class="jxr_string">"groupId"</span>, currentProject.getGroupId() );
+<a name="1035" href="#1035">1035</a>         p.put( <span class="jxr_string">"artifactId"</span>, currentProject.getArtifactId() );
+<a name="1036" href="#1036">1036</a>         ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
+<a name="1037" href="#1037">1037</a>         p.store( out, <span class="jxr_string">"Generated by org.apache.felix.bundleplugin"</span> );
+<a name="1038" href="#1038">1038</a>         jar.putResource( path + <span class="jxr_string">"/pom.properties"</span>, <strong class="jxr_keyword">new</strong> EmbeddedResource( out.toByteArray(), System.currentTimeMillis() ) );
+<a name="1039" href="#1039">1039</a>     }
+<a name="1040" href="#1040">1040</a> 
+<a name="1041" href="#1041">1041</a> 
+<a name="1042" href="#1042">1042</a>     <strong class="jxr_keyword">protected</strong> Jar[] getClasspath( MavenProject currentProject ) <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException
+<a name="1043" href="#1043">1043</a>     {
+<a name="1044" href="#1044">1044</a>         List list = <strong class="jxr_keyword">new</strong> ArrayList();
+<a name="1045" href="#1045">1045</a> 
+<a name="1046" href="#1046">1046</a>         <strong class="jxr_keyword">if</strong> ( getOutputDirectory() != <strong class="jxr_keyword">null</strong> &amp;&amp; getOutputDirectory().exists() )
 <a name="1047" href="#1047">1047</a>         {
-<a name="1048" href="#1048">1048</a>             <strong class="jxr_keyword">return</strong> Collections.EMPTY_LIST;
+<a name="1048" href="#1048">1048</a>             list.add( <strong class="jxr_keyword">new</strong> Jar( <span class="jxr_string">"."</span>, getOutputDirectory() ) );
 <a name="1049" href="#1049">1049</a>         }
 <a name="1050" href="#1050">1050</a> 
-<a name="1051" href="#1051">1051</a>         Collection selectedDependencies = <strong class="jxr_keyword">new</strong> LinkedHashSet( artifacts );
-<a name="1052" href="#1052">1052</a>         <a href="../../../../org/apache/felix/bundleplugin/DependencyExcluder.html">DependencyExcluder</a> excluder = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyExcluder.html">DependencyExcluder</a>( artifacts );
-<a name="1053" href="#1053">1053</a>         excluder.processHeaders( excludeDependencies );
-<a name="1054" href="#1054">1054</a>         selectedDependencies.removeAll( excluder.getExcludedArtifacts() );
-<a name="1055" href="#1055">1055</a> 
-<a name="1056" href="#1056">1056</a>         <strong class="jxr_keyword">return</strong> selectedDependencies;
-<a name="1057" href="#1057">1057</a>     }
-<a name="1058" href="#1058">1058</a> 
-<a name="1059" href="#1059">1059</a> 
-<a name="1060" href="#1060">1060</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="1061" href="#1061">1061</a> <em class="jxr_javadoccomment">     * Get the file for an Artifact</em>
-<a name="1062" href="#1062">1062</a> <em class="jxr_javadoccomment">     *</em>
-<a name="1063" href="#1063">1063</a> <em class="jxr_javadoccomment">     * @param artifact</em>
-<a name="1064" href="#1064">1064</a> <em class="jxr_javadoccomment">     */</em>
-<a name="1065" href="#1065">1065</a>     <strong class="jxr_keyword">protected</strong> File getFile( Artifact artifact )
-<a name="1066" href="#1066">1066</a>     {
-<a name="1067" href="#1067">1067</a>         <strong class="jxr_keyword">return</strong> artifact.getFile();
-<a name="1068" href="#1068">1068</a>     }
-<a name="1069" href="#1069">1069</a> 
-<a name="1070" href="#1070">1070</a> 
-<a name="1071" href="#1071">1071</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> header( Properties properties, String key, Object value )
-<a name="1072" href="#1072">1072</a>     {
-<a name="1073" href="#1073">1073</a>         <strong class="jxr_keyword">if</strong> ( value == <strong class="jxr_keyword">null</strong> )
-<a name="1074" href="#1074">1074</a>             <strong class="jxr_keyword">return</strong>;
-<a name="1075" href="#1075">1075</a> 
-<a name="1076" href="#1076">1076</a>         <strong class="jxr_keyword">if</strong> ( value instanceof Collection &amp;&amp; ( ( Collection ) value ).isEmpty() )
-<a name="1077" href="#1077">1077</a>             <strong class="jxr_keyword">return</strong>;
-<a name="1078" href="#1078">1078</a> 
-<a name="1079" href="#1079">1079</a>         properties.put( key, value.toString().replaceAll( <span class="jxr_string">"[\r\n]"</span>, <span class="jxr_string">""</span> ) );
-<a name="1080" href="#1080">1080</a>     }
-<a name="1081" href="#1081">1081</a> 
-<a name="1082" href="#1082">1082</a> 
-<a name="1083" href="#1083">1083</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="1084" href="#1084">1084</a> <em class="jxr_javadoccomment">     * Convert a Maven version into an OSGi compliant version</em>
-<a name="1085" href="#1085">1085</a> <em class="jxr_javadoccomment">     *</em>
-<a name="1086" href="#1086">1086</a> <em class="jxr_javadoccomment">     * @param version Maven version</em>
-<a name="1087" href="#1087">1087</a> <em class="jxr_javadoccomment">     * @return the OSGi version</em>
-<a name="1088" href="#1088">1088</a> <em class="jxr_javadoccomment">     */</em>
-<a name="1089" href="#1089">1089</a>     <strong class="jxr_keyword">protected</strong> String convertVersionToOsgi( String version )
-<a name="1090" href="#1090">1090</a>     {
-<a name="1091" href="#1091">1091</a>         <strong class="jxr_keyword">return</strong> getMaven2OsgiConverter().getVersion( version );
-<a name="1092" href="#1092">1092</a>     }
+<a name="1051" href="#1051">1051</a>         <strong class="jxr_keyword">final</strong> Collection artifacts = getSelectedDependencies( currentProject.getArtifacts() );
+<a name="1052" href="#1052">1052</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = artifacts.iterator(); it.hasNext(); )
+<a name="1053" href="#1053">1053</a>         {
+<a name="1054" href="#1054">1054</a>             Artifact artifact = ( Artifact ) it.next();
+<a name="1055" href="#1055">1055</a>             <strong class="jxr_keyword">if</strong> ( artifact.getArtifactHandler().isAddedToClasspath() )
+<a name="1056" href="#1056">1056</a>             {
+<a name="1057" href="#1057">1057</a>                 <strong class="jxr_keyword">if</strong> ( !Artifact.SCOPE_TEST.equals( artifact.getScope() ) )
+<a name="1058" href="#1058">1058</a>                 {
+<a name="1059" href="#1059">1059</a>                     File file = getFile( artifact );
+<a name="1060" href="#1060">1060</a>                     <strong class="jxr_keyword">if</strong> ( file == <strong class="jxr_keyword">null</strong> )
+<a name="1061" href="#1061">1061</a>                     {
+<a name="1062" href="#1062">1062</a>                         getLog().warn(
+<a name="1063" href="#1063">1063</a>                             <span class="jxr_string">"File is not available for artifact "</span> + artifact + <span class="jxr_string">" in project "</span>
+<a name="1064" href="#1064">1064</a>                                 + currentProject.getArtifact() );
+<a name="1065" href="#1065">1065</a>                         <strong class="jxr_keyword">continue</strong>;
+<a name="1066" href="#1066">1066</a>                     }
+<a name="1067" href="#1067">1067</a>                     Jar jar = <strong class="jxr_keyword">new</strong> Jar( artifact.getArtifactId(), file );
+<a name="1068" href="#1068">1068</a>                     list.add( jar );
+<a name="1069" href="#1069">1069</a>                 }
+<a name="1070" href="#1070">1070</a>             }
+<a name="1071" href="#1071">1071</a>         }
+<a name="1072" href="#1072">1072</a>         Jar[] cp = <strong class="jxr_keyword">new</strong> Jar[list.size()];
+<a name="1073" href="#1073">1073</a>         list.toArray( cp );
+<a name="1074" href="#1074">1074</a>         <strong class="jxr_keyword">return</strong> cp;
+<a name="1075" href="#1075">1075</a>     }
+<a name="1076" href="#1076">1076</a> 
+<a name="1077" href="#1077">1077</a> 
+<a name="1078" href="#1078">1078</a>     <strong class="jxr_keyword">private</strong> Collection getSelectedDependencies( Collection artifacts ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="1079" href="#1079">1079</a>     {
+<a name="1080" href="#1080">1080</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == excludeDependencies || excludeDependencies.length() == 0 )
+<a name="1081" href="#1081">1081</a>         {
+<a name="1082" href="#1082">1082</a>             <strong class="jxr_keyword">return</strong> artifacts;
+<a name="1083" href="#1083">1083</a>         }
+<a name="1084" href="#1084">1084</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"true"</span>.equalsIgnoreCase( excludeDependencies ) )
+<a name="1085" href="#1085">1085</a>         {
+<a name="1086" href="#1086">1086</a>             <strong class="jxr_keyword">return</strong> Collections.EMPTY_LIST;
+<a name="1087" href="#1087">1087</a>         }
+<a name="1088" href="#1088">1088</a> 
+<a name="1089" href="#1089">1089</a>         Collection selectedDependencies = <strong class="jxr_keyword">new</strong> LinkedHashSet( artifacts );
+<a name="1090" href="#1090">1090</a>         <a href="../../../../org/apache/felix/bundleplugin/DependencyExcluder.html">DependencyExcluder</a> excluder = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyExcluder.html">DependencyExcluder</a>( artifacts );
+<a name="1091" href="#1091">1091</a>         excluder.processHeaders( excludeDependencies );
+<a name="1092" href="#1092">1092</a>         selectedDependencies.removeAll( excluder.getExcludedArtifacts() );
 <a name="1093" href="#1093">1093</a> 
-<a name="1094" href="#1094">1094</a> 
-<a name="1095" href="#1095">1095</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="1096" href="#1096">1096</a> <em class="jxr_javadoccomment">     * TODO this should return getMaven2Osgi().getBundleFileName( project.getArtifact() )</em>
-<a name="1097" href="#1097">1097</a> <em class="jxr_javadoccomment">     */</em>
-<a name="1098" href="#1098">1098</a>     <strong class="jxr_keyword">protected</strong> String getBundleName( MavenProject currentProject )
-<a name="1099" href="#1099">1099</a>     {
-<a name="1100" href="#1100">1100</a>         String extension;
-<a name="1101" href="#1101">1101</a>         <strong class="jxr_keyword">try</strong>
-<a name="1102" href="#1102">1102</a>         {
-<a name="1103" href="#1103">1103</a>             extension = currentProject.getArtifact().getArtifactHandler().getExtension();
-<a name="1104" href="#1104">1104</a>         }
-<a name="1105" href="#1105">1105</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
-<a name="1106" href="#1106">1106</a>         {
-<a name="1107" href="#1107">1107</a>             extension = currentProject.getArtifact().getType();
-<a name="1108" href="#1108">1108</a>         }
-<a name="1109" href="#1109">1109</a>         <strong class="jxr_keyword">if</strong> ( StringUtils.isEmpty( extension ) || <span class="jxr_string">"bundle"</span>.equals( extension ) || <span class="jxr_string">"pom"</span>.equals( extension ) )
-<a name="1110" href="#1110">1110</a>         {
-<a name="1111" href="#1111">1111</a>             extension = <span class="jxr_string">"jar"</span>; <em class="jxr_comment">// just in case maven gets confused</em>
-<a name="1112" href="#1112">1112</a>         }
-<a name="1113" href="#1113">1113</a>         String finalName = currentProject.getBuild().getFinalName();
-<a name="1114" href="#1114">1114</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != classifier &amp;&amp; classifier.trim().length() &gt; 0 )
-<a name="1115" href="#1115">1115</a>         {
-<a name="1116" href="#1116">1116</a>             <strong class="jxr_keyword">return</strong> finalName + '-' + classifier + '.' + extension;
-<a name="1117" href="#1117">1117</a>         }
-<a name="1118" href="#1118">1118</a>         <strong class="jxr_keyword">return</strong> finalName + '.' + extension;
-<a name="1119" href="#1119">1119</a>     }
+<a name="1094" href="#1094">1094</a>         <strong class="jxr_keyword">return</strong> selectedDependencies;
+<a name="1095" href="#1095">1095</a>     }
+<a name="1096" href="#1096">1096</a> 
+<a name="1097" href="#1097">1097</a> 
+<a name="1098" href="#1098">1098</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="1099" href="#1099">1099</a> <em class="jxr_javadoccomment">     * Get the file for an Artifact</em>
+<a name="1100" href="#1100">1100</a> <em class="jxr_javadoccomment">     *</em>
+<a name="1101" href="#1101">1101</a> <em class="jxr_javadoccomment">     * @param artifact</em>
+<a name="1102" href="#1102">1102</a> <em class="jxr_javadoccomment">     */</em>
+<a name="1103" href="#1103">1103</a>     <strong class="jxr_keyword">protected</strong> File getFile( Artifact artifact )
+<a name="1104" href="#1104">1104</a>     {
+<a name="1105" href="#1105">1105</a>         <strong class="jxr_keyword">return</strong> artifact.getFile();
+<a name="1106" href="#1106">1106</a>     }
+<a name="1107" href="#1107">1107</a> 
+<a name="1108" href="#1108">1108</a> 
+<a name="1109" href="#1109">1109</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> header( Properties properties, String key, Object value )
+<a name="1110" href="#1110">1110</a>     {
+<a name="1111" href="#1111">1111</a>         <strong class="jxr_keyword">if</strong> ( value == <strong class="jxr_keyword">null</strong> )
+<a name="1112" href="#1112">1112</a>             <strong class="jxr_keyword">return</strong>;
+<a name="1113" href="#1113">1113</a> 
+<a name="1114" href="#1114">1114</a>         <strong class="jxr_keyword">if</strong> ( value instanceof Collection &amp;&amp; ( ( Collection ) value ).isEmpty() )
+<a name="1115" href="#1115">1115</a>             <strong class="jxr_keyword">return</strong>;
+<a name="1116" href="#1116">1116</a> 
+<a name="1117" href="#1117">1117</a>         properties.put( key, value.toString().replaceAll( <span class="jxr_string">"[\r\n]"</span>, <span class="jxr_string">""</span> ) );
+<a name="1118" href="#1118">1118</a>     }
+<a name="1119" href="#1119">1119</a> 
 <a name="1120" href="#1120">1120</a> 
-<a name="1121" href="#1121">1121</a> 
-<a name="1122" href="#1122">1122</a>     <strong class="jxr_keyword">protected</strong> String getBuildDirectory()
-<a name="1123" href="#1123">1123</a>     {
-<a name="1124" href="#1124">1124</a>         <strong class="jxr_keyword">return</strong> buildDirectory;
-<a name="1125" href="#1125">1125</a>     }
-<a name="1126" href="#1126">1126</a> 
-<a name="1127" href="#1127">1127</a> 
-<a name="1128" href="#1128">1128</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setBuildDirectory( String _buildirectory )
-<a name="1129" href="#1129">1129</a>     {
-<a name="1130" href="#1130">1130</a>         buildDirectory = _buildirectory;
-<a name="1131" href="#1131">1131</a>     }
+<a name="1121" href="#1121">1121</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="1122" href="#1122">1122</a> <em class="jxr_javadoccomment">     * Convert a Maven version into an OSGi compliant version</em>
+<a name="1123" href="#1123">1123</a> <em class="jxr_javadoccomment">     *</em>
+<a name="1124" href="#1124">1124</a> <em class="jxr_javadoccomment">     * @param version Maven version</em>
+<a name="1125" href="#1125">1125</a> <em class="jxr_javadoccomment">     * @return the OSGi version</em>
+<a name="1126" href="#1126">1126</a> <em class="jxr_javadoccomment">     */</em>
+<a name="1127" href="#1127">1127</a>     <strong class="jxr_keyword">protected</strong> String convertVersionToOsgi( String version )
+<a name="1128" href="#1128">1128</a>     {
+<a name="1129" href="#1129">1129</a>         <strong class="jxr_keyword">return</strong> getMaven2OsgiConverter().getVersion( version );
+<a name="1130" href="#1130">1130</a>     }
+<a name="1131" href="#1131">1131</a> 
 <a name="1132" href="#1132">1132</a> 
-<a name="1133" href="#1133">1133</a> 
-<a name="1134" href="#1134">1134</a>     <strong class="jxr_keyword">protected</strong> Properties getDefaultProperties( MavenProject currentProject )
-<a name="1135" href="#1135">1135</a>     {
-<a name="1136" href="#1136">1136</a>         Properties properties = <strong class="jxr_keyword">new</strong> Properties();
-<a name="1137" href="#1137">1137</a> 
-<a name="1138" href="#1138">1138</a>         String bsn;
+<a name="1133" href="#1133">1133</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="1134" href="#1134">1134</a> <em class="jxr_javadoccomment">     * TODO this should return getMaven2Osgi().getBundleFileName( project.getArtifact() )</em>
+<a name="1135" href="#1135">1135</a> <em class="jxr_javadoccomment">     */</em>
+<a name="1136" href="#1136">1136</a>     <strong class="jxr_keyword">protected</strong> String getBundleName( MavenProject currentProject )
+<a name="1137" href="#1137">1137</a>     {
+<a name="1138" href="#1138">1138</a>         String extension;
 <a name="1139" href="#1139">1139</a>         <strong class="jxr_keyword">try</strong>
 <a name="1140" href="#1140">1140</a>         {
-<a name="1141" href="#1141">1141</a>             bsn = getMaven2OsgiConverter().getBundleSymbolicName( currentProject.getArtifact() );
+<a name="1141" href="#1141">1141</a>             extension = currentProject.getArtifact().getArtifactHandler().getExtension();
 <a name="1142" href="#1142">1142</a>         }
-<a name="1143" href="#1143">1143</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="1143" href="#1143">1143</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
 <a name="1144" href="#1144">1144</a>         {
-<a name="1145" href="#1145">1145</a>             bsn = currentProject.getGroupId() + <span class="jxr_string">"."</span> + currentProject.getArtifactId();
+<a name="1145" href="#1145">1145</a>             extension = currentProject.getArtifact().getType();
 <a name="1146" href="#1146">1146</a>         }
-<a name="1147" href="#1147">1147</a> 
-<a name="1148" href="#1148">1148</a>         <em class="jxr_comment">// Setup defaults</em>
-<a name="1149" href="#1149">1149</a>         properties.put( MAVEN_SYMBOLICNAME, bsn );
-<a name="1150" href="#1150">1150</a>         properties.put( Analyzer.BUNDLE_SYMBOLICNAME, bsn );
-<a name="1151" href="#1151">1151</a>         properties.put( Analyzer.IMPORT_PACKAGE, <span class="jxr_string">"*"</span> );
-<a name="1152" href="#1152">1152</a>         properties.put( Analyzer.BUNDLE_VERSION, getMaven2OsgiConverter().getVersion( currentProject.getVersion() ) );
-<a name="1153" href="#1153">1153</a> 
-<a name="1154" href="#1154">1154</a>         <em class="jxr_comment">// remove the extraneous Include-Resource and Private-Package entries from generated manifest</em>
-<a name="1155" href="#1155">1155</a>         properties.put( Constants.REMOVEHEADERS, Analyzer.INCLUDE_RESOURCE + ',' + Analyzer.PRIVATE_PACKAGE );
-<a name="1156" href="#1156">1156</a> 
-<a name="1157" href="#1157">1157</a>         header( properties, Analyzer.BUNDLE_DESCRIPTION, currentProject.getDescription() );
-<a name="1158" href="#1158">1158</a>         StringBuffer licenseText = printLicenses( currentProject.getLicenses() );
-<a name="1159" href="#1159">1159</a>         <strong class="jxr_keyword">if</strong> ( licenseText != <strong class="jxr_keyword">null</strong> )
-<a name="1160" href="#1160">1160</a>         {
-<a name="1161" href="#1161">1161</a>             header( properties, Analyzer.BUNDLE_LICENSE, licenseText );
-<a name="1162" href="#1162">1162</a>         }
-<a name="1163" href="#1163">1163</a>         header( properties, Analyzer.BUNDLE_NAME, currentProject.getName() );
+<a name="1147" href="#1147">1147</a>         <strong class="jxr_keyword">if</strong> ( StringUtils.isEmpty( extension ) || <span class="jxr_string">"bundle"</span>.equals( extension ) || <span class="jxr_string">"pom"</span>.equals( extension ) )
+<a name="1148" href="#1148">1148</a>         {
+<a name="1149" href="#1149">1149</a>             extension = <span class="jxr_string">"jar"</span>; <em class="jxr_comment">// just in case maven gets confused</em>
+<a name="1150" href="#1150">1150</a>         }
+<a name="1151" href="#1151">1151</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != classifier &amp;&amp; classifier.trim().length() &gt; 0 )
+<a name="1152" href="#1152">1152</a>         {
+<a name="1153" href="#1153">1153</a>             <strong class="jxr_keyword">return</strong> finalName + '-' + classifier + '.' + extension;
+<a name="1154" href="#1154">1154</a>         }
+<a name="1155" href="#1155">1155</a>         <strong class="jxr_keyword">return</strong> finalName + '.' + extension;
+<a name="1156" href="#1156">1156</a>     }
+<a name="1157" href="#1157">1157</a> 
+<a name="1158" href="#1158">1158</a> 
+<a name="1159" href="#1159">1159</a>     <strong class="jxr_keyword">protected</strong> String getBuildDirectory()
+<a name="1160" href="#1160">1160</a>     {
+<a name="1161" href="#1161">1161</a>         <strong class="jxr_keyword">return</strong> buildDirectory;
+<a name="1162" href="#1162">1162</a>     }
+<a name="1163" href="#1163">1163</a> 
 <a name="1164" href="#1164">1164</a> 
-<a name="1165" href="#1165">1165</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization() != <strong class="jxr_keyword">null</strong> )
-<a name="1166" href="#1166">1166</a>         {
-<a name="1167" href="#1167">1167</a>             <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization().getName() != <strong class="jxr_keyword">null</strong> )
-<a name="1168" href="#1168">1168</a>             {
-<a name="1169" href="#1169">1169</a>                 String organizationName = currentProject.getOrganization().getName();
-<a name="1170" href="#1170">1170</a>                 header( properties, Analyzer.BUNDLE_VENDOR, organizationName );
-<a name="1171" href="#1171">1171</a>                 properties.put( <span class="jxr_string">"project.organization.name"</span>, organizationName );
-<a name="1172" href="#1172">1172</a>                 properties.put( <span class="jxr_string">"pom.organization.name"</span>, organizationName );
-<a name="1173" href="#1173">1173</a>             }
-<a name="1174" href="#1174">1174</a>             <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization().getUrl() != <strong class="jxr_keyword">null</strong> )
-<a name="1175" href="#1175">1175</a>             {
-<a name="1176" href="#1176">1176</a>                 String organizationUrl = currentProject.getOrganization().getUrl();
-<a name="1177" href="#1177">1177</a>                 header( properties, Analyzer.BUNDLE_DOCURL, organizationUrl );
-<a name="1178" href="#1178">1178</a>                 properties.put( <span class="jxr_string">"project.organization.url"</span>, organizationUrl );
-<a name="1179" href="#1179">1179</a>                 properties.put( <span class="jxr_string">"pom.organization.url"</span>, organizationUrl );
-<a name="1180" href="#1180">1180</a>             }
-<a name="1181" href="#1181">1181</a>         }
-<a name="1182" href="#1182">1182</a> 
-<a name="1183" href="#1183">1183</a>         properties.putAll( currentProject.getProperties() );
-<a name="1184" href="#1184">1184</a>         properties.putAll( currentProject.getModel().getProperties() );
-<a name="1185" href="#1185">1185</a>         <strong class="jxr_keyword">if</strong> ( m_mavenSession != <strong class="jxr_keyword">null</strong> )
-<a name="1186" href="#1186">1186</a>         {
-<a name="1187" href="#1187">1187</a>             <strong class="jxr_keyword">try</strong>
-<a name="1188" href="#1188">1188</a>             {
-<a name="1189" href="#1189">1189</a>                 <em class="jxr_comment">// don't pass upper-case session settings to bnd as they end up in the manifest</em>
-<a name="1190" href="#1190">1190</a>                 Properties sessionProperties = m_mavenSession.getExecutionProperties();
-<a name="1191" href="#1191">1191</a>                 <strong class="jxr_keyword">for</strong> ( Enumeration e = sessionProperties.propertyNames(); e.hasMoreElements(); )
-<a name="1192" href="#1192">1192</a>                 {
-<a name="1193" href="#1193">1193</a>                     String key = ( String ) e.nextElement();
-<a name="1194" href="#1194">1194</a>                     <strong class="jxr_keyword">if</strong> ( key.length() &gt; 0 &amp;&amp; !Character.isUpperCase( key.charAt( 0 ) ) )
-<a name="1195" href="#1195">1195</a>                     {
-<a name="1196" href="#1196">1196</a>                         properties.put( key, sessionProperties.getProperty( key ) );
-<a name="1197" href="#1197">1197</a>                     }
-<a name="1198" href="#1198">1198</a>                 }
-<a name="1199" href="#1199">1199</a>             }
-<a name="1200" href="#1200">1200</a>             <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="1201" href="#1201">1201</a>             {
-<a name="1202" href="#1202">1202</a>                 getLog().warn( <span class="jxr_string">"Problem with Maven session properties: "</span> + e.getLocalizedMessage() );
-<a name="1203" href="#1203">1203</a>             }
-<a name="1204" href="#1204">1204</a>         }
-<a name="1205" href="#1205">1205</a> 
-<a name="1206" href="#1206">1206</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"project.build."</span> ) );
-<a name="1207" href="#1207">1207</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"pom."</span> ) );
-<a name="1208" href="#1208">1208</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"project."</span> ) );
-<a name="1209" href="#1209">1209</a> 
-<a name="1210" href="#1210">1210</a>         properties.put( <span class="jxr_string">"project.baseDir"</span>, getBase( currentProject ) );
-<a name="1211" href="#1211">1211</a>         properties.put( <span class="jxr_string">"project.build.directory"</span>, getBuildDirectory() );
-<a name="1212" href="#1212">1212</a>         properties.put( <span class="jxr_string">"project.build.outputdirectory"</span>, getOutputDirectory() );
-<a name="1213" href="#1213">1213</a> 
-<a name="1214" href="#1214">1214</a>         properties.put( <span class="jxr_string">"classifier"</span>, classifier == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">""</span> : classifier );
-<a name="1215" href="#1215">1215</a> 
-<a name="1216" href="#1216">1216</a>         <em class="jxr_comment">// Add default plugins</em>
-<a name="1217" href="#1217">1217</a>         header( properties, Analyzer.PLUGIN, BlueprintPlugin.<strong class="jxr_keyword">class</strong>.getName() + <span class="jxr_string">","</span> + SpringXMLType.<strong class="jxr_keyword">class</strong>.getName() );
-<a name="1218" href="#1218">1218</a> 
-<a name="1219" href="#1219">1219</a>         <strong class="jxr_keyword">return</strong> properties;
-<a name="1220" href="#1220">1220</a>     }
-<a name="1221" href="#1221">1221</a> 
+<a name="1165" href="#1165">1165</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setBuildDirectory( String _buildirectory )
+<a name="1166" href="#1166">1166</a>     {
+<a name="1167" href="#1167">1167</a>         buildDirectory = _buildirectory;
+<a name="1168" href="#1168">1168</a>     }
+<a name="1169" href="#1169">1169</a> 
+<a name="1170" href="#1170">1170</a> 
+<a name="1171" href="#1171">1171</a>     <strong class="jxr_keyword">protected</strong> Properties getDefaultProperties( MavenProject currentProject )
+<a name="1172" href="#1172">1172</a>     {
+<a name="1173" href="#1173">1173</a>         Properties properties = <strong class="jxr_keyword">new</strong> Properties();
+<a name="1174" href="#1174">1174</a> 
+<a name="1175" href="#1175">1175</a>         String bsn;
+<a name="1176" href="#1176">1176</a>         <strong class="jxr_keyword">try</strong>
+<a name="1177" href="#1177">1177</a>         {
+<a name="1178" href="#1178">1178</a>             bsn = getMaven2OsgiConverter().getBundleSymbolicName( currentProject.getArtifact() );
+<a name="1179" href="#1179">1179</a>         }
+<a name="1180" href="#1180">1180</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="1181" href="#1181">1181</a>         {
+<a name="1182" href="#1182">1182</a>             bsn = currentProject.getGroupId() + <span class="jxr_string">"."</span> + currentProject.getArtifactId();
+<a name="1183" href="#1183">1183</a>         }
+<a name="1184" href="#1184">1184</a> 
+<a name="1185" href="#1185">1185</a>         <em class="jxr_comment">// Setup defaults</em>
+<a name="1186" href="#1186">1186</a>         properties.put( MAVEN_SYMBOLICNAME, bsn );
+<a name="1187" href="#1187">1187</a>         properties.put( Analyzer.BUNDLE_SYMBOLICNAME, bsn );
+<a name="1188" href="#1188">1188</a>         properties.put( Analyzer.IMPORT_PACKAGE, <span class="jxr_string">"*"</span> );
+<a name="1189" href="#1189">1189</a>         properties.put( Analyzer.BUNDLE_VERSION, getMaven2OsgiConverter().getVersion( currentProject.getVersion() ) );
+<a name="1190" href="#1190">1190</a> 
+<a name="1191" href="#1191">1191</a>         <em class="jxr_comment">// remove the extraneous Include-Resource and Private-Package entries from generated manifest</em>
+<a name="1192" href="#1192">1192</a>         properties.put( Constants.REMOVEHEADERS, Analyzer.INCLUDE_RESOURCE + ',' + Analyzer.PRIVATE_PACKAGE );
+<a name="1193" href="#1193">1193</a> 
+<a name="1194" href="#1194">1194</a>         header( properties, Analyzer.BUNDLE_DESCRIPTION, currentProject.getDescription() );
+<a name="1195" href="#1195">1195</a>         StringBuffer licenseText = printLicenses( currentProject.getLicenses() );
+<a name="1196" href="#1196">1196</a>         <strong class="jxr_keyword">if</strong> ( licenseText != <strong class="jxr_keyword">null</strong> )
+<a name="1197" href="#1197">1197</a>         {
+<a name="1198" href="#1198">1198</a>             header( properties, Analyzer.BUNDLE_LICENSE, licenseText );
+<a name="1199" href="#1199">1199</a>         }
+<a name="1200" href="#1200">1200</a>         header( properties, Analyzer.BUNDLE_NAME, currentProject.getName() );
+<a name="1201" href="#1201">1201</a> 
+<a name="1202" href="#1202">1202</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization() != <strong class="jxr_keyword">null</strong> )
+<a name="1203" href="#1203">1203</a>         {
+<a name="1204" href="#1204">1204</a>             <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization().getName() != <strong class="jxr_keyword">null</strong> )
+<a name="1205" href="#1205">1205</a>             {
+<a name="1206" href="#1206">1206</a>                 String organizationName = currentProject.getOrganization().getName();
+<a name="1207" href="#1207">1207</a>                 header( properties, Analyzer.BUNDLE_VENDOR, organizationName );
+<a name="1208" href="#1208">1208</a>                 properties.put( <span class="jxr_string">"project.organization.name"</span>, organizationName );
+<a name="1209" href="#1209">1209</a>                 properties.put( <span class="jxr_string">"pom.organization.name"</span>, organizationName );
+<a name="1210" href="#1210">1210</a>             }
+<a name="1211" href="#1211">1211</a>             <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization().getUrl() != <strong class="jxr_keyword">null</strong> )
+<a name="1212" href="#1212">1212</a>             {
+<a name="1213" href="#1213">1213</a>                 String organizationUrl = currentProject.getOrganization().getUrl();
+<a name="1214" href="#1214">1214</a>                 header( properties, Analyzer.BUNDLE_DOCURL, organizationUrl );
+<a name="1215" href="#1215">1215</a>                 properties.put( <span class="jxr_string">"project.organization.url"</span>, organizationUrl );
+<a name="1216" href="#1216">1216</a>                 properties.put( <span class="jxr_string">"pom.organization.url"</span>, organizationUrl );
+<a name="1217" href="#1217">1217</a>             }
+<a name="1218" href="#1218">1218</a>         }
+<a name="1219" href="#1219">1219</a> 
+<a name="1220" href="#1220">1220</a>         properties.putAll( currentProject.getProperties() );
+<a name="1221" href="#1221">1221</a>         properties.putAll( currentProject.getModel().getProperties() );
 <a name="1222" href="#1222">1222</a> 
-<a name="1223" href="#1223">1223</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> File getBase( MavenProject currentProject )
-<a name="1224" href="#1224">1224</a>     {
-<a name="1225" href="#1225">1225</a>         <strong class="jxr_keyword">return</strong> currentProject.getBasedir() != <strong class="jxr_keyword">null</strong> ? currentProject.getBasedir() : <strong class="jxr_keyword">new</strong> File( <span class="jxr_string">""</span> );
-<a name="1226" href="#1226">1226</a>     }
-<a name="1227" href="#1227">1227</a> 
-<a name="1228" href="#1228">1228</a> 
-<a name="1229" href="#1229">1229</a>     <strong class="jxr_keyword">protected</strong> File getOutputDirectory()
-<a name="1230" href="#1230">1230</a>     {
-<a name="1231" href="#1231">1231</a>         <strong class="jxr_keyword">return</strong> outputDirectory;
-<a name="1232" href="#1232">1232</a>     }
-<a name="1233" href="#1233">1233</a> 
-<a name="1234" href="#1234">1234</a> 
-<a name="1235" href="#1235">1235</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setOutputDirectory( File _outputDirectory )
-<a name="1236" href="#1236">1236</a>     {
-<a name="1237" href="#1237">1237</a>         outputDirectory = _outputDirectory;
-<a name="1238" href="#1238">1238</a>     }
-<a name="1239" href="#1239">1239</a> 
-<a name="1240" href="#1240">1240</a> 
-<a name="1241" href="#1241">1241</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> addLocalPackages( File outputDirectory, Analyzer analyzer )
-<a name="1242" href="#1242">1242</a>     {
-<a name="1243" href="#1243">1243</a>         Collection packages = <strong class="jxr_keyword">new</strong> TreeSet();
-<a name="1244" href="#1244">1244</a> 
-<a name="1245" href="#1245">1245</a>         <strong class="jxr_keyword">if</strong> ( outputDirectory != <strong class="jxr_keyword">null</strong> &amp;&amp; outputDirectory.isDirectory() )
-<a name="1246" href="#1246">1246</a>         {
-<a name="1247" href="#1247">1247</a>             <em class="jxr_comment">// scan classes directory for potential packages</em>
-<a name="1248" href="#1248">1248</a>             DirectoryScanner scanner = <strong class="jxr_keyword">new</strong> DirectoryScanner();
-<a name="1249" href="#1249">1249</a>             scanner.setBasedir( outputDirectory );
-<a name="1250" href="#1250">1250</a>             scanner.setIncludes( <strong class="jxr_keyword">new</strong> String[]
-<a name="1251" href="#1251">1251</a>                 { <span class="jxr_string">"**/*.class"</span> } );
+<a name="1223" href="#1223">1223</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = currentProject.getFilters().iterator(); i.hasNext(); )
+<a name="1224" href="#1224">1224</a>         {
+<a name="1225" href="#1225">1225</a>             File filterFile = <strong class="jxr_keyword">new</strong> File( ( String ) i.next() );
+<a name="1226" href="#1226">1226</a>             <strong class="jxr_keyword">if</strong> ( filterFile.isFile() )
+<a name="1227" href="#1227">1227</a>             {
+<a name="1228" href="#1228">1228</a>                 properties.putAll( PropertyUtils.loadProperties( filterFile ) );
+<a name="1229" href="#1229">1229</a>             }
+<a name="1230" href="#1230">1230</a>         }
+<a name="1231" href="#1231">1231</a> 
+<a name="1232" href="#1232">1232</a>         <strong class="jxr_keyword">if</strong> ( m_mavenSession != <strong class="jxr_keyword">null</strong> )
+<a name="1233" href="#1233">1233</a>         {
+<a name="1234" href="#1234">1234</a>             <strong class="jxr_keyword">try</strong>
+<a name="1235" href="#1235">1235</a>             {
+<a name="1236" href="#1236">1236</a>                 <em class="jxr_comment">// don't pass upper-case session settings to bnd as they end up in the manifest</em>
+<a name="1237" href="#1237">1237</a>                 Properties sessionProperties = m_mavenSession.getExecutionProperties();
+<a name="1238" href="#1238">1238</a>                 <strong class="jxr_keyword">for</strong> ( Enumeration e = sessionProperties.propertyNames(); e.hasMoreElements(); )
+<a name="1239" href="#1239">1239</a>                 {
+<a name="1240" href="#1240">1240</a>                     String key = ( String ) e.nextElement();
+<a name="1241" href="#1241">1241</a>                     <strong class="jxr_keyword">if</strong> ( key.length() &gt; 0 &amp;&amp; !Character.isUpperCase( key.charAt( 0 ) ) )
+<a name="1242" href="#1242">1242</a>                     {
+<a name="1243" href="#1243">1243</a>                         properties.put( key, sessionProperties.getProperty( key ) );
+<a name="1244" href="#1244">1244</a>                     }
+<a name="1245" href="#1245">1245</a>                 }
+<a name="1246" href="#1246">1246</a>             }
+<a name="1247" href="#1247">1247</a>             <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="1248" href="#1248">1248</a>             {
+<a name="1249" href="#1249">1249</a>                 getLog().warn( <span class="jxr_string">"Problem with Maven session properties: "</span> + e.getLocalizedMessage() );
+<a name="1250" href="#1250">1250</a>             }
+<a name="1251" href="#1251">1251</a>         }
 <a name="1252" href="#1252">1252</a> 
-<a name="1253" href="#1253">1253</a>             scanner.addDefaultExcludes();
-<a name="1254" href="#1254">1254</a>             scanner.scan();
-<a name="1255" href="#1255">1255</a> 
-<a name="1256" href="#1256">1256</a>             String[] paths = scanner.getIncludedFiles();
-<a name="1257" href="#1257">1257</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; paths.length; i++ )
-<a name="1258" href="#1258">1258</a>             {
-<a name="1259" href="#1259">1259</a>                 packages.add( getPackageName( paths[i] ) );
-<a name="1260" href="#1260">1260</a>             }
-<a name="1261" href="#1261">1261</a>         }
+<a name="1253" href="#1253">1253</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"project.build."</span> ) );
+<a name="1254" href="#1254">1254</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"pom."</span> ) );
+<a name="1255" href="#1255">1255</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"project."</span> ) );
+<a name="1256" href="#1256">1256</a> 
+<a name="1257" href="#1257">1257</a>         properties.put( <span class="jxr_string">"project.baseDir"</span>, getBase( currentProject ) );
+<a name="1258" href="#1258">1258</a>         properties.put( <span class="jxr_string">"project.build.directory"</span>, getBuildDirectory() );
+<a name="1259" href="#1259">1259</a>         properties.put( <span class="jxr_string">"project.build.outputdirectory"</span>, getOutputDirectory() );
+<a name="1260" href="#1260">1260</a> 
+<a name="1261" href="#1261">1261</a>         properties.put( <span class="jxr_string">"classifier"</span>, classifier == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">""</span> : classifier );
 <a name="1262" href="#1262">1262</a> 
-<a name="1263" href="#1263">1263</a>         StringBuffer exportedPkgs = <strong class="jxr_keyword">new</strong> StringBuffer();
-<a name="1264" href="#1264">1264</a>         StringBuffer privatePkgs = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="1263" href="#1263">1263</a>         <em class="jxr_comment">// Add default plugins</em>
+<a name="1264" href="#1264">1264</a>         header( properties, Analyzer.PLUGIN, BlueprintPlugin.<strong class="jxr_keyword">class</strong>.getName() + <span class="jxr_string">","</span> + SpringXMLType.<strong class="jxr_keyword">class</strong>.getName() );
 <a name="1265" href="#1265">1265</a> 
-<a name="1266" href="#1266">1266</a>         <strong class="jxr_keyword">boolean</strong> noprivatePackages = <span class="jxr_string">"!*"</span>.equals( analyzer.getProperty( Analyzer.PRIVATE_PACKAGE ) );
-<a name="1267" href="#1267">1267</a> 
-<a name="1268" href="#1268">1268</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = packages.iterator(); i.hasNext(); )
-<a name="1269" href="#1269">1269</a>         {
-<a name="1270" href="#1270">1270</a>             String pkg = ( String ) i.next();
-<a name="1271" href="#1271">1271</a> 
-<a name="1272" href="#1272">1272</a>             <em class="jxr_comment">// mark all source packages as private by default (can be overridden by export list)</em>
-<a name="1273" href="#1273">1273</a>             <strong class="jxr_keyword">if</strong> ( privatePkgs.length() &gt; 0 )
-<a name="1274" href="#1274">1274</a>             {
-<a name="1275" href="#1275">1275</a>                 privatePkgs.append( ';' );
-<a name="1276" href="#1276">1276</a>             }
-<a name="1277" href="#1277">1277</a>             privatePkgs.append( pkg );
-<a name="1278" href="#1278">1278</a> 
-<a name="1279" href="#1279">1279</a>             <em class="jxr_comment">// we can't export the default package (".") and we shouldn't export internal packages </em>
-<a name="1280" href="#1280">1280</a>             <strong class="jxr_keyword">if</strong> ( noprivatePackages || !( <span class="jxr_string">"."</span>.equals( pkg ) || pkg.contains( <span class="jxr_string">".internal"</span> ) || pkg.contains( <span class="jxr_string">".impl"</span> ) ) )
-<a name="1281" href="#1281">1281</a>             {
-<a name="1282" href="#1282">1282</a>                 <strong class="jxr_keyword">if</strong> ( exportedPkgs.length() &gt; 0 )
-<a name="1283" href="#1283">1283</a>                 {
-<a name="1284" href="#1284">1284</a>                     exportedPkgs.append( ';' );
-<a name="1285" href="#1285">1285</a>                 }
-<a name="1286" href="#1286">1286</a>                 exportedPkgs.append( pkg );
-<a name="1287" href="#1287">1287</a>             }
-<a name="1288" href="#1288">1288</a>         }
-<a name="1289" href="#1289">1289</a> 
-<a name="1290" href="#1290">1290</a>         <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.EXPORT_PACKAGE ) == <strong class="jxr_keyword">null</strong> )
-<a name="1291" href="#1291">1291</a>         {
-<a name="1292" href="#1292">1292</a>             <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.EXPORT_CONTENTS ) == <strong class="jxr_keyword">null</strong> )
-<a name="1293" href="#1293">1293</a>             {
-<a name="1294" href="#1294">1294</a>                 <em class="jxr_comment">// no -exportcontents overriding the exports, so use our computed list</em>
-<a name="1295" href="#1295">1295</a>                 analyzer.setProperty( Analyzer.EXPORT_PACKAGE, exportedPkgs + <span class="jxr_string">";-split-package:=merge-first"</span> );
-<a name="1296" href="#1296">1296</a>             }
-<a name="1297" href="#1297">1297</a>             <strong class="jxr_keyword">else</strong>
-<a name="1298" href="#1298">1298</a>             {
-<a name="1299" href="#1299">1299</a>                 <em class="jxr_comment">// leave Export-Package empty (but non-null) as we have -exportcontents</em>
-<a name="1300" href="#1300">1300</a>                 analyzer.setProperty( Analyzer.EXPORT_PACKAGE, <span class="jxr_string">""</span> );
-<a name="1301" href="#1301">1301</a>             }
-<a name="1302" href="#1302">1302</a>         }
-<a name="1303" href="#1303">1303</a>         <strong class="jxr_keyword">else</strong>
-<a name="1304" href="#1304">1304</a>         {
-<a name="1305" href="#1305">1305</a>             String exported = analyzer.getProperty( Analyzer.EXPORT_PACKAGE );
-<a name="1306" href="#1306">1306</a>             <strong class="jxr_keyword">if</strong> ( exported.indexOf( LOCAL_PACKAGES ) &gt;= 0 )
-<a name="1307" href="#1307">1307</a>             {
-<a name="1308" href="#1308">1308</a>                 String newExported = StringUtils.replace( exported, LOCAL_PACKAGES, exportedPkgs.toString() );
-<a name="1309" href="#1309">1309</a>                 analyzer.setProperty( Analyzer.EXPORT_PACKAGE, newExported );
-<a name="1310" href="#1310">1310</a> 
-<a name="1311" href="#1311">1311</a>             }
-<a name="1312" href="#1312">1312</a>         }
-<a name="1313" href="#1313">1313</a> 
-<a name="1314" href="#1314">1314</a>         String internal = analyzer.getProperty( Analyzer.PRIVATE_PACKAGE );
-<a name="1315" href="#1315">1315</a>         <strong class="jxr_keyword">if</strong> ( internal == <strong class="jxr_keyword">null</strong> )
+<a name="1266" href="#1266">1266</a>         <strong class="jxr_keyword">return</strong> properties;
+<a name="1267" href="#1267">1267</a>     }
+<a name="1268" href="#1268">1268</a> 
+<a name="1269" href="#1269">1269</a> 
+<a name="1270" href="#1270">1270</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> File getBase( MavenProject currentProject )
+<a name="1271" href="#1271">1271</a>     {
+<a name="1272" href="#1272">1272</a>         <strong class="jxr_keyword">return</strong> currentProject.getBasedir() != <strong class="jxr_keyword">null</strong> ? currentProject.getBasedir() : <strong class="jxr_keyword">new</strong> File( <span class="jxr_string">""</span> );
+<a name="1273" href="#1273">1273</a>     }
+<a name="1274" href="#1274">1274</a> 
+<a name="1275" href="#1275">1275</a> 
+<a name="1276" href="#1276">1276</a>     <strong class="jxr_keyword">protected</strong> File getOutputDirectory()
+<a name="1277" href="#1277">1277</a>     {
+<a name="1278" href="#1278">1278</a>         <strong class="jxr_keyword">return</strong> outputDirectory;
+<a name="1279" href="#1279">1279</a>     }
+<a name="1280" href="#1280">1280</a> 
+<a name="1281" href="#1281">1281</a> 
+<a name="1282" href="#1282">1282</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setOutputDirectory( File _outputDirectory )
+<a name="1283" href="#1283">1283</a>     {
+<a name="1284" href="#1284">1284</a>         outputDirectory = _outputDirectory;
+<a name="1285" href="#1285">1285</a>     }
+<a name="1286" href="#1286">1286</a> 
+<a name="1287" href="#1287">1287</a> 
+<a name="1288" href="#1288">1288</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> addLocalPackages( File outputDirectory, Analyzer analyzer ) <strong class="jxr_keyword">throws</strong> IOException
+<a name="1289" href="#1289">1289</a>     {
+<a name="1290" href="#1290">1290</a>         Packages packages = <strong class="jxr_keyword">new</strong> Packages();
+<a name="1291" href="#1291">1291</a> 
+<a name="1292" href="#1292">1292</a>         <strong class="jxr_keyword">if</strong> ( outputDirectory != <strong class="jxr_keyword">null</strong> &amp;&amp; outputDirectory.isDirectory() )
+<a name="1293" href="#1293">1293</a>         {
+<a name="1294" href="#1294">1294</a>             <em class="jxr_comment">// scan classes directory for potential packages</em>
+<a name="1295" href="#1295">1295</a>             DirectoryScanner scanner = <strong class="jxr_keyword">new</strong> DirectoryScanner();
+<a name="1296" href="#1296">1296</a>             scanner.setBasedir( outputDirectory );
+<a name="1297" href="#1297">1297</a>             scanner.setIncludes( <strong class="jxr_keyword">new</strong> String[]
+<a name="1298" href="#1298">1298</a>                 { <span class="jxr_string">"**/*.class"</span> } );
+<a name="1299" href="#1299">1299</a> 
+<a name="1300" href="#1300">1300</a>             scanner.addDefaultExcludes();
+<a name="1301" href="#1301">1301</a>             scanner.scan();
+<a name="1302" href="#1302">1302</a> 
+<a name="1303" href="#1303">1303</a>             String[] paths = scanner.getIncludedFiles();
+<a name="1304" href="#1304">1304</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; paths.length; i++ )
+<a name="1305" href="#1305">1305</a>             {
+<a name="1306" href="#1306">1306</a>                 packages.put( analyzer.getPackageRef( getPackageName( paths[i] ) ) );
+<a name="1307" href="#1307">1307</a>             }
+<a name="1308" href="#1308">1308</a>         }
+<a name="1309" href="#1309">1309</a> 
+<a name="1310" href="#1310">1310</a>         Packages exportedPkgs = <strong class="jxr_keyword">new</strong> Packages();
+<a name="1311" href="#1311">1311</a>         Packages privatePkgs = <strong class="jxr_keyword">new</strong> Packages();
+<a name="1312" href="#1312">1312</a> 
+<a name="1313" href="#1313">1313</a>         <strong class="jxr_keyword">boolean</strong> noprivatePackages = <span class="jxr_string">"!*"</span>.equals( analyzer.getProperty( Analyzer.PRIVATE_PACKAGE ) );
+<a name="1314" href="#1314">1314</a> 
+<a name="1315" href="#1315">1315</a>         <strong class="jxr_keyword">for</strong> ( PackageRef pkg : packages.keySet() )
 <a name="1316" href="#1316">1316</a>         {
-<a name="1317" href="#1317">1317</a>             <strong class="jxr_keyword">if</strong> ( privatePkgs.length() &gt; 0 )
-<a name="1318" href="#1318">1318</a>             {
-<a name="1319" href="#1319">1319</a>                 analyzer.setProperty( Analyzer.PRIVATE_PACKAGE, privatePkgs + <span class="jxr_string">";-split-package:=merge-first"</span> );
-<a name="1320" href="#1320">1320</a>             }
-<a name="1321" href="#1321">1321</a>             <strong class="jxr_keyword">else</strong>
-<a name="1322" href="#1322">1322</a>             {
-<a name="1323" href="#1323">1323</a>                 <em class="jxr_comment">// if there are really no private packages then use "!*" as this will keep the Bnd Tool happy</em>
-<a name="1324" href="#1324">1324</a>                 analyzer.setProperty( Analyzer.PRIVATE_PACKAGE, <span class="jxr_string">"!*"</span> );
+<a name="1317" href="#1317">1317</a>             <em class="jxr_comment">// mark all source packages as private by default (can be overridden by export list)</em>
+<a name="1318" href="#1318">1318</a>             privatePkgs.put( pkg );
+<a name="1319" href="#1319">1319</a> 
+<a name="1320" href="#1320">1320</a>             <em class="jxr_comment">// we can't export the default package (".") and we shouldn't export internal packages </em>
+<a name="1321" href="#1321">1321</a>             String fqn = pkg.getFQN();
+<a name="1322" href="#1322">1322</a>             <strong class="jxr_keyword">if</strong> ( noprivatePackages || !( <span class="jxr_string">"."</span>.equals( fqn ) || fqn.contains( <span class="jxr_string">".internal"</span> ) || fqn.contains( <span class="jxr_string">".impl"</span> ) ) )
+<a name="1323" href="#1323">1323</a>             {
+<a name="1324" href="#1324">1324</a>                 exportedPkgs.put( pkg );
 <a name="1325" href="#1325">1325</a>             }
 <a name="1326" href="#1326">1326</a>         }
-<a name="1327" href="#1327">1327</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( internal.indexOf( LOCAL_PACKAGES ) &gt;= 0 )
-<a name="1328" href="#1328">1328</a>         {
-<a name="1329" href="#1329">1329</a>             String newInternal = StringUtils.replace( internal, LOCAL_PACKAGES, privatePkgs.toString() );
-<a name="1330" href="#1330">1330</a>             analyzer.setProperty( Analyzer.PRIVATE_PACKAGE, newInternal );
-<a name="1331" href="#1331">1331</a>         }
-<a name="1332" href="#1332">1332</a>     }
-<a name="1333" href="#1333">1333</a> 
-<a name="1334" href="#1334">1334</a> 
-<a name="1335" href="#1335">1335</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getPackageName( String filename )
-<a name="1336" href="#1336">1336</a>     {
-<a name="1337" href="#1337">1337</a>         <strong class="jxr_keyword">int</strong> n = filename.lastIndexOf( File.separatorChar );
-<a name="1338" href="#1338">1338</a>         <strong class="jxr_keyword">return</strong> n &lt; 0 ? <span class="jxr_string">"."</span> : filename.substring( 0, n ).replace( File.separatorChar, '.' );
-<a name="1339" href="#1339">1339</a>     }
-<a name="1340" href="#1340">1340</a> 
-<a name="1341" href="#1341">1341</a> 
-<a name="1342" href="#1342">1342</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List getMavenResources( MavenProject currentProject )
-<a name="1343" href="#1343">1343</a>     {
-<a name="1344" href="#1344">1344</a>         List resources = <strong class="jxr_keyword">new</strong> ArrayList( currentProject.getResources() );
-<a name="1345" href="#1345">1345</a> 
-<a name="1346" href="#1346">1346</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getCompileSourceRoots() != <strong class="jxr_keyword">null</strong> )
-<a name="1347" href="#1347">1347</a>         {
-<a name="1348" href="#1348">1348</a>             <em class="jxr_comment">// also scan for any "packageinfo" files lurking in the source folders</em>
-<a name="1349" href="#1349">1349</a>             List packageInfoIncludes = Collections.singletonList( <span class="jxr_string">"**/packageinfo"</span> );
-<a name="1350" href="#1350">1350</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = currentProject.getCompileSourceRoots().iterator(); i.hasNext(); )
-<a name="1351" href="#1351">1351</a>             {
-<a name="1352" href="#1352">1352</a>                 String sourceRoot = ( String ) i.next();
-<a name="1353" href="#1353">1353</a>                 Resource packageInfoResource = <strong class="jxr_keyword">new</strong> Resource();
-<a name="1354" href="#1354">1354</a>                 packageInfoResource.setDirectory( sourceRoot );
-<a name="1355" href="#1355">1355</a>                 packageInfoResource.setIncludes( packageInfoIncludes );
-<a name="1356" href="#1356">1356</a>                 resources.add( packageInfoResource );
-<a name="1357" href="#1357">1357</a>             }
-<a name="1358" href="#1358">1358</a>         }
-<a name="1359" href="#1359">1359</a> 
-<a name="1360" href="#1360">1360</a>         <strong class="jxr_keyword">return</strong> resources;
-<a name="1361" href="#1361">1361</a>     }
-<a name="1362" href="#1362">1362</a> 
-<a name="1363" href="#1363">1363</a> 
-<a name="1364" href="#1364">1364</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String getMavenResourcePaths( MavenProject currentProject )
-<a name="1365" href="#1365">1365</a>     {
-<a name="1366" href="#1366">1366</a>         <strong class="jxr_keyword">final</strong> String basePath = currentProject.getBasedir().getAbsolutePath();
-<a name="1367" href="#1367">1367</a> 
-<a name="1368" href="#1368">1368</a>         Set pathSet = <strong class="jxr_keyword">new</strong> LinkedHashSet();
-<a name="1369" href="#1369">1369</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = getMavenResources( currentProject ).iterator(); i.hasNext(); )
-<a name="1370" href="#1370">1370</a>         {
-<a name="1371" href="#1371">1371</a>             Resource resource = ( Resource ) i.next();
-<a name="1372" href="#1372">1372</a> 
-<a name="1373" href="#1373">1373</a>             <strong class="jxr_keyword">final</strong> String sourcePath = resource.getDirectory();
-<a name="1374" href="#1374">1374</a>             <strong class="jxr_keyword">final</strong> String targetPath = resource.getTargetPath();
-<a name="1375" href="#1375">1375</a> 
-<a name="1376" href="#1376">1376</a>             <em class="jxr_comment">// ignore empty or non-local resources</em>
-<a name="1377" href="#1377">1377</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">new</strong> File( sourcePath ).exists() &amp;&amp; ( ( targetPath == <strong class="jxr_keyword">null</strong> ) || ( targetPath.indexOf( <span class="jxr_string">".."</span> ) &lt; 0 ) ) )
-<a name="1378" href="#1378">1378</a>             {
-<a name="1379" href="#1379">1379</a>                 DirectoryScanner scanner = <strong class="jxr_keyword">new</strong> DirectoryScanner();
-<a name="1380" href="#1380">1380</a> 
-<a name="1381" href="#1381">1381</a>                 scanner.setBasedir( sourcePath );
-<a name="1382" href="#1382">1382</a>                 <strong class="jxr_keyword">if</strong> ( resource.getIncludes() != <strong class="jxr_keyword">null</strong> &amp;&amp; !resource.getIncludes().isEmpty() )
-<a name="1383" href="#1383">1383</a>                 {
-<a name="1384" href="#1384">1384</a>                     scanner.setIncludes( ( String[] ) resource.getIncludes().toArray( EMPTY_STRING_ARRAY ) );
-<a name="1385" href="#1385">1385</a>                 }
-<a name="1386" href="#1386">1386</a>                 <strong class="jxr_keyword">else</strong>
-<a name="1387" href="#1387">1387</a>                 {
-<a name="1388" href="#1388">1388</a>                     scanner.setIncludes( DEFAULT_INCLUDES );
-<a name="1389" href="#1389">1389</a>                 }
-<a name="1390" href="#1390">1390</a> 
-<a name="1391" href="#1391">1391</a>                 <strong class="jxr_keyword">if</strong> ( resource.getExcludes() != <strong class="jxr_keyword">null</strong> &amp;&amp; !resource.getExcludes().isEmpty() )
-<a name="1392" href="#1392">1392</a>                 {
-<a name="1393" href="#1393">1393</a>                     scanner.setExcludes( ( String[] ) resource.getExcludes().toArray( EMPTY_STRING_ARRAY ) );
-<a name="1394" href="#1394">1394</a>                 }
-<a name="1395" href="#1395">1395</a> 
-<a name="1396" href="#1396">1396</a>                 scanner.addDefaultExcludes();
-<a name="1397" href="#1397">1397</a>                 scanner.scan();
-<a name="1398" href="#1398">1398</a> 
-<a name="1399" href="#1399">1399</a>                 List includedFiles = Arrays.asList( scanner.getIncludedFiles() );
-<a name="1400" href="#1400">1400</a> 
-<a name="1401" href="#1401">1401</a>                 <strong class="jxr_keyword">for</strong> ( Iterator j = includedFiles.iterator(); j.hasNext(); )
-<a name="1402" href="#1402">1402</a>                 {
-<a name="1403" href="#1403">1403</a>                     String name = ( String ) j.next();
-<a name="1404" href="#1404">1404</a>                     String path = sourcePath + '/' + name;
+<a name="1327" href="#1327">1327</a> 
+<a name="1328" href="#1328">1328</a>         Properties properties = analyzer.getProperties();
+<a name="1329" href="#1329">1329</a>         String exported = properties.getProperty( Analyzer.EXPORT_PACKAGE );
+<a name="1330" href="#1330">1330</a>         <strong class="jxr_keyword">if</strong> ( exported == <strong class="jxr_keyword">null</strong> )
+<a name="1331" href="#1331">1331</a>         {
+<a name="1332" href="#1332">1332</a>             <strong class="jxr_keyword">if</strong> ( !properties.containsKey( Analyzer.EXPORT_CONTENTS ) )
+<a name="1333" href="#1333">1333</a>             {
+<a name="1334" href="#1334">1334</a>                 <em class="jxr_comment">// no -exportcontents overriding the exports, so use our computed list</em>
+<a name="1335" href="#1335">1335</a>                 <strong class="jxr_keyword">for</strong> ( Attrs attrs : exportedPkgs.values() )
+<a name="1336" href="#1336">1336</a>                 {
+<a name="1337" href="#1337">1337</a>                     attrs.put( Constants.SPLIT_PACKAGE_DIRECTIVE, <span class="jxr_string">"merge-first"</span> );
+<a name="1338" href="#1338">1338</a>                 }
+<a name="1339" href="#1339">1339</a>                 properties.setProperty( Analyzer.EXPORT_PACKAGE, Processor.printClauses( exportedPkgs ) );
+<a name="1340" href="#1340">1340</a>             }
+<a name="1341" href="#1341">1341</a>             <strong class="jxr_keyword">else</strong>
+<a name="1342" href="#1342">1342</a>             {
+<a name="1343" href="#1343">1343</a>                 <em class="jxr_comment">// leave Export-Package empty (but non-null) as we have -exportcontents</em>
+<a name="1344" href="#1344">1344</a>                 properties.setProperty( Analyzer.EXPORT_PACKAGE, <span class="jxr_string">""</span> );
+<a name="1345" href="#1345">1345</a>             }
+<a name="1346" href="#1346">1346</a>         }
+<a name="1347" href="#1347">1347</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( exported.indexOf( LOCAL_PACKAGES ) &gt;= 0 )
+<a name="1348" href="#1348">1348</a>         {
+<a name="1349" href="#1349">1349</a>             String newExported = StringUtils.replace( exported, LOCAL_PACKAGES, Processor.printClauses( exportedPkgs ) );
+<a name="1350" href="#1350">1350</a>             properties.setProperty( Analyzer.EXPORT_PACKAGE, newExported );
+<a name="1351" href="#1351">1351</a>         }
+<a name="1352" href="#1352">1352</a> 
+<a name="1353" href="#1353">1353</a>         String internal = properties.getProperty( Analyzer.PRIVATE_PACKAGE );
+<a name="1354" href="#1354">1354</a>         <strong class="jxr_keyword">if</strong> ( internal == <strong class="jxr_keyword">null</strong> )
+<a name="1355" href="#1355">1355</a>         {
+<a name="1356" href="#1356">1356</a>             <strong class="jxr_keyword">if</strong> ( !privatePkgs.isEmpty() )
+<a name="1357" href="#1357">1357</a>             {
+<a name="1358" href="#1358">1358</a>                 <strong class="jxr_keyword">for</strong> ( Attrs attrs : privatePkgs.values() )
+<a name="1359" href="#1359">1359</a>                 {
+<a name="1360" href="#1360">1360</a>                     attrs.put( Constants.SPLIT_PACKAGE_DIRECTIVE, <span class="jxr_string">"merge-first"</span> );
+<a name="1361" href="#1361">1361</a>                 }
+<a name="1362" href="#1362">1362</a>                 properties.setProperty( Analyzer.PRIVATE_PACKAGE, Processor.printClauses( privatePkgs ) );
+<a name="1363" href="#1363">1363</a>             }
+<a name="1364" href="#1364">1364</a>             <strong class="jxr_keyword">else</strong>
+<a name="1365" href="#1365">1365</a>             {
+<a name="1366" href="#1366">1366</a>                 <em class="jxr_comment">// if there are really no private packages then use "!*" as this will keep the Bnd Tool happy</em>
+<a name="1367" href="#1367">1367</a>                 properties.setProperty( Analyzer.PRIVATE_PACKAGE, <span class="jxr_string">"!*"</span> );
+<a name="1368" href="#1368">1368</a>             }
+<a name="1369" href="#1369">1369</a>         }
+<a name="1370" href="#1370">1370</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( internal.indexOf( LOCAL_PACKAGES ) &gt;= 0 )
+<a name="1371" href="#1371">1371</a>         {
+<a name="1372" href="#1372">1372</a>             String newInternal = StringUtils.replace( internal, LOCAL_PACKAGES, Processor.printClauses( privatePkgs ) );
+<a name="1373" href="#1373">1373</a>             properties.setProperty( Analyzer.PRIVATE_PACKAGE, newInternal );
+<a name="1374" href="#1374">1374</a>         }
+<a name="1375" href="#1375">1375</a>     }
+<a name="1376" href="#1376">1376</a> 
+<a name="1377" href="#1377">1377</a> 
+<a name="1378" href="#1378">1378</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getPackageName( String filename )
+<a name="1379" href="#1379">1379</a>     {
+<a name="1380" href="#1380">1380</a>         <strong class="jxr_keyword">int</strong> n = filename.lastIndexOf( File.separatorChar );
+<a name="1381" href="#1381">1381</a>         <strong class="jxr_keyword">return</strong> n &lt; 0 ? <span class="jxr_string">"."</span> : filename.substring( 0, n ).replace( File.separatorChar, '.' );
+<a name="1382" href="#1382">1382</a>     }
+<a name="1383" href="#1383">1383</a> 
+<a name="1384" href="#1384">1384</a> 
+<a name="1385" href="#1385">1385</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List getMavenResources( MavenProject currentProject )
+<a name="1386" href="#1386">1386</a>     {
+<a name="1387" href="#1387">1387</a>         List resources = <strong class="jxr_keyword">new</strong> ArrayList( currentProject.getResources() );
+<a name="1388" href="#1388">1388</a> 
+<a name="1389" href="#1389">1389</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getCompileSourceRoots() != <strong class="jxr_keyword">null</strong> )
+<a name="1390" href="#1390">1390</a>         {
+<a name="1391" href="#1391">1391</a>             <em class="jxr_comment">// also scan for any "packageinfo" files lurking in the source folders</em>
+<a name="1392" href="#1392">1392</a>             List packageInfoIncludes = Collections.singletonList( <span class="jxr_string">"**/packageinfo"</span> );
+<a name="1393" href="#1393">1393</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = currentProject.getCompileSourceRoots().iterator(); i.hasNext(); )
+<a name="1394" href="#1394">1394</a>             {
+<a name="1395" href="#1395">1395</a>                 String sourceRoot = ( String ) i.next();
+<a name="1396" href="#1396">1396</a>                 Resource packageInfoResource = <strong class="jxr_keyword">new</strong> Resource();
+<a name="1397" href="#1397">1397</a>                 packageInfoResource.setDirectory( sourceRoot );
+<a name="1398" href="#1398">1398</a>                 packageInfoResource.setIncludes( packageInfoIncludes );
+<a name="1399" href="#1399">1399</a>                 resources.add( packageInfoResource );
+<a name="1400" href="#1400">1400</a>             }
+<a name="1401" href="#1401">1401</a>         }
+<a name="1402" href="#1402">1402</a> 
+<a name="1403" href="#1403">1403</a>         <strong class="jxr_keyword">return</strong> resources;
+<a name="1404" href="#1404">1404</a>     }
 <a name="1405" href="#1405">1405</a> 
-<a name="1406" href="#1406">1406</a>                     <em class="jxr_comment">// make relative to project</em>
-<a name="1407" href="#1407">1407</a>                     <strong class="jxr_keyword">if</strong> ( path.startsWith( basePath ) )
-<a name="1408" href="#1408">1408</a>                     {
-<a name="1409" href="#1409">1409</a>                         <strong class="jxr_keyword">if</strong> ( path.length() == basePath.length() )
-<a name="1410" href="#1410">1410</a>                         {
-<a name="1411" href="#1411">1411</a>                             path = <span class="jxr_string">"."</span>;
-<a name="1412" href="#1412">1412</a>                         }
-<a name="1413" href="#1413">1413</a>                         <strong class="jxr_keyword">else</strong>
-<a name="1414" href="#1414">1414</a>                         {
-<a name="1415" href="#1415">1415</a>                             path = path.substring( basePath.length() + 1 );
-<a name="1416" href="#1416">1416</a>                         }
-<a name="1417" href="#1417">1417</a>                     }
+<a name="1406" href="#1406">1406</a> 
+<a name="1407" href="#1407">1407</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String getMavenResourcePaths( MavenProject currentProject )
+<a name="1408" href="#1408">1408</a>     {
+<a name="1409" href="#1409">1409</a>         <strong class="jxr_keyword">final</strong> String basePath = currentProject.getBasedir().getAbsolutePath();
+<a name="1410" href="#1410">1410</a> 
+<a name="1411" href="#1411">1411</a>         Set pathSet = <strong class="jxr_keyword">new</strong> LinkedHashSet();
+<a name="1412" href="#1412">1412</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = getMavenResources( currentProject ).iterator(); i.hasNext(); )
+<a name="1413" href="#1413">1413</a>         {
+<a name="1414" href="#1414">1414</a>             Resource resource = ( Resource ) i.next();
+<a name="1415" href="#1415">1415</a> 
+<a name="1416" href="#1416">1416</a>             <strong class="jxr_keyword">final</strong> String sourcePath = resource.getDirectory();
+<a name="1417" href="#1417">1417</a>             <strong class="jxr_keyword">final</strong> String targetPath = resource.getTargetPath();
 <a name="1418" href="#1418">1418</a> 
-<a name="1419" href="#1419">1419</a>                     <em class="jxr_comment">// replace windows backslash with a slash</em>
-<a name="1420" href="#1420">1420</a>                     <em class="jxr_comment">// this is a workaround for a problem with bnd 0.0.189</em>
-<a name="1421" href="#1421">1421</a>                     <strong class="jxr_keyword">if</strong> ( File.separatorChar != '/' )
-<a name="1422" href="#1422">1422</a>                     {
-<a name="1423" href="#1423">1423</a>                         name = name.replace( File.separatorChar, '/' );
-<a name="1424" href="#1424">1424</a>                         path = path.replace( File.separatorChar, '/' );
-<a name="1425" href="#1425">1425</a>                     }
-<a name="1426" href="#1426">1426</a> 
-<a name="1427" href="#1427">1427</a>                     <em class="jxr_comment">// copy to correct place</em>
-<a name="1428" href="#1428">1428</a>                     path = name + '=' + path;
-<a name="1429" href="#1429">1429</a>                     <strong class="jxr_keyword">if</strong> ( targetPath != <strong class="jxr_keyword">null</strong> )
-<a name="1430" href="#1430">1430</a>                     {
-<a name="1431" href="#1431">1431</a>                         path = targetPath + '/' + path;
-<a name="1432" href="#1432">1432</a>                     }
+<a name="1419" href="#1419">1419</a>             <em class="jxr_comment">// ignore empty or non-local resources</em>
+<a name="1420" href="#1420">1420</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">new</strong> File( sourcePath ).exists() &amp;&amp; ( ( targetPath == <strong class="jxr_keyword">null</strong> ) || ( targetPath.indexOf( <span class="jxr_string">".."</span> ) &lt; 0 ) ) )
+<a name="1421" href="#1421">1421</a>             {
+<a name="1422" href="#1422">1422</a>                 DirectoryScanner scanner = <strong class="jxr_keyword">new</strong> DirectoryScanner();
+<a name="1423" href="#1423">1423</a> 
+<a name="1424" href="#1424">1424</a>                 scanner.setBasedir( sourcePath );
+<a name="1425" href="#1425">1425</a>                 <strong class="jxr_keyword">if</strong> ( resource.getIncludes() != <strong class="jxr_keyword">null</strong> &amp;&amp; !resource.getIncludes().isEmpty() )
+<a name="1426" href="#1426">1426</a>                 {
+<a name="1427" href="#1427">1427</a>                     scanner.setIncludes( ( String[] ) resource.getIncludes().toArray( EMPTY_STRING_ARRAY ) );
+<a name="1428" href="#1428">1428</a>                 }
+<a name="1429" href="#1429">1429</a>                 <strong class="jxr_keyword">else</strong>
+<a name="1430" href="#1430">1430</a>                 {
+<a name="1431" href="#1431">1431</a>                     scanner.setIncludes( DEFAULT_INCLUDES );
+<a name="1432" href="#1432">1432</a>                 }
 <a name="1433" href="#1433">1433</a> 
-<a name="1434" href="#1434">1434</a>                     <em class="jxr_comment">// use Bnd filtering?</em>
-<a name="1435" href="#1435">1435</a>                     <strong class="jxr_keyword">if</strong> ( resource.isFiltering() )
-<a name="1436" href="#1436">1436</a>                     {
-<a name="1437" href="#1437">1437</a>                         path = '{' + path + '}';
-<a name="1438" href="#1438">1438</a>                     }
-<a name="1439" href="#1439">1439</a> 
-<a name="1440" href="#1440">1440</a>                     pathSet.add( path );
-<a name="1441" href="#1441">1441</a>                 }
-<a name="1442" href="#1442">1442</a>             }
-<a name="1443" href="#1443">1443</a>         }
-<a name="1444" href="#1444">1444</a> 
-<a name="1445" href="#1445">1445</a>         StringBuffer resourcePaths = <strong class="jxr_keyword">new</strong> StringBuffer();
-<a name="1446" href="#1446">1446</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = pathSet.iterator(); i.hasNext(); )
-<a name="1447" href="#1447">1447</a>         {
-<a name="1448" href="#1448">1448</a>             resourcePaths.append( i.next() );
-<a name="1449" href="#1449">1449</a>             <strong class="jxr_keyword">if</strong> ( i.hasNext() )
-<a name="1450" href="#1450">1450</a>             {
-<a name="1451" href="#1451">1451</a>                 resourcePaths.append( ',' );
-<a name="1452" href="#1452">1452</a>             }
-<a name="1453" href="#1453">1453</a>         }
-<a name="1454" href="#1454">1454</a> 
-<a name="1455" href="#1455">1455</a>         <strong class="jxr_keyword">return</strong> resourcePaths.toString();
-<a name="1456" href="#1456">1456</a>     }
-<a name="1457" href="#1457">1457</a> 
-<a name="1458" href="#1458">1458</a> 
-<a name="1459" href="#1459">1459</a>     <strong class="jxr_keyword">protected</strong> Collection getEmbeddableArtifacts( MavenProject currentProject, Analyzer analyzer )
-<a name="1460" href="#1460">1460</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="1461" href="#1461">1461</a>     {
-<a name="1462" href="#1462">1462</a>         <strong class="jxr_keyword">final</strong> Collection artifacts;
-<a name="1463" href="#1463">1463</a> 
-<a name="1464" href="#1464">1464</a>         String embedTransitive = analyzer.getProperty( DependencyEmbedder.EMBED_TRANSITIVE );
-<a name="1465" href="#1465">1465</a>         <strong class="jxr_keyword">if</strong> ( Boolean.valueOf( embedTransitive ).booleanValue() )
-<a name="1466" href="#1466">1466</a>         {
-<a name="1467" href="#1467">1467</a>             <em class="jxr_comment">// includes transitive dependencies</em>
-<a name="1468" href="#1468">1468</a>             artifacts = currentProject.getArtifacts();
-<a name="1469" href="#1469">1469</a>         }
-<a name="1470" href="#1470">1470</a>         <strong class="jxr_keyword">else</strong>
-<a name="1471" href="#1471">1471</a>         {
-<a name="1472" href="#1472">1472</a>             <em class="jxr_comment">// only includes direct dependencies</em>
-<a name="1473" href="#1473">1473</a>             artifacts = currentProject.getDependencyArtifacts();
-<a name="1474" href="#1474">1474</a>         }
-<a name="1475" href="#1475">1475</a> 
-<a name="1476" href="#1476">1476</a>         <strong class="jxr_keyword">return</strong> getSelectedDependencies( artifacts );
-<a name="1477" href="#1477">1477</a>     }
-<a name="1478" href="#1478">1478</a> 
-<a name="1479" href="#1479">1479</a> 
-<a name="1480" href="#1480">1480</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> addMavenSourcePath( MavenProject currentProject, Analyzer analyzer, Log log )
-<a name="1481" href="#1481">1481</a>     {
-<a name="1482" href="#1482">1482</a>         <em class="jxr_comment">// pass maven source paths onto BND analyzer</em>
-<a name="1483" href="#1483">1483</a>         StringBuilder mavenSourcePaths = <strong class="jxr_keyword">new</strong> StringBuilder();
-<a name="1484" href="#1484">1484</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getCompileSourceRoots() != <strong class="jxr_keyword">null</strong> )
-<a name="1485" href="#1485">1485</a>         {
-<a name="1486" href="#1486">1486</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = currentProject.getCompileSourceRoots().iterator(); i.hasNext(); )
-<a name="1487" href="#1487">1487</a>             {
-<a name="1488" href="#1488">1488</a>                 <strong class="jxr_keyword">if</strong> ( mavenSourcePaths.length() &gt; 0 )
-<a name="1489" href="#1489">1489</a>                 {
-<a name="1490" href="#1490">1490</a>                     mavenSourcePaths.append( ',' );
-<a name="1491" href="#1491">1491</a>                 }
-<a name="1492" href="#1492">1492</a>                 mavenSourcePaths.append( ( String ) i.next() );
-<a name="1493" href="#1493">1493</a>             }
-<a name="1494" href="#1494">1494</a>         }
-<a name="1495" href="#1495">1495</a>         <strong class="jxr_keyword">final</strong> String sourcePath = ( String ) analyzer.getProperty( Analyzer.SOURCEPATH );
-<a name="1496" href="#1496">1496</a>         <strong class="jxr_keyword">if</strong> ( sourcePath != <strong class="jxr_keyword">null</strong> )
-<a name="1497" href="#1497">1497</a>         {
-<a name="1498" href="#1498">1498</a>             <strong class="jxr_keyword">if</strong> ( sourcePath.indexOf( MAVEN_SOURCES ) &gt;= 0 )
-<a name="1499" href="#1499">1499</a>             {
-<a name="1500" href="#1500">1500</a>                 <em class="jxr_comment">// if there is no maven source path, we do a special treatment and replace</em>
-<a name="1501" href="#1501">1501</a>                 <em class="jxr_comment">// every occurance of MAVEN_SOURCES and a following comma with an empty string</em>
-<a name="1502" href="#1502">1502</a>                 <strong class="jxr_keyword">if</strong> ( mavenSourcePaths.length() == 0 )
-<a name="1503" href="#1503">1503</a>                 {
-<a name="1504" href="#1504">1504</a>                     String cleanedSource = removeTagFromInstruction( sourcePath, MAVEN_SOURCES );
-<a name="1505" href="#1505">1505</a>                     <strong class="jxr_keyword">if</strong> ( cleanedSource.length() &gt; 0 )
-<a name="1506" href="#1506">1506</a>                     {
-<a name="1507" href="#1507">1507</a>                         analyzer.setProperty( Analyzer.SOURCEPATH, cleanedSource );
-<a name="1508" href="#1508">1508</a>                     }
-<a name="1509" href="#1509">1509</a>                     <strong class="jxr_keyword">else</strong>
-<a name="1510" href="#1510">1510</a>                     {
-<a name="1511" href="#1511">1511</a>                         analyzer.unsetProperty( Analyzer.SOURCEPATH );
-<a name="1512" href="#1512">1512</a>                     }
-<a name="1513" href="#1513">1513</a>                 }
-<a name="1514" href="#1514">1514</a>                 <strong class="jxr_keyword">else</strong>
-<a name="1515" href="#1515">1515</a>                 {
-<a name="1516" href="#1516">1516</a>                     String combinedSource = StringUtils
-<a name="1517" href="#1517">1517</a>                         .replace( sourcePath, MAVEN_SOURCES, mavenSourcePaths.toString() );
-<a name="1518" href="#1518">1518</a>                     analyzer.setProperty( Analyzer.SOURCEPATH, combinedSource );
-<a name="1519" href="#1519">1519</a>                 }
-<a name="1520" href="#1520">1520</a>             }
-<a name="1521" href="#1521">1521</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenSourcePaths.length() &gt; 0 )
-<a name="1522" href="#1522">1522</a>             {
-<a name="1523" href="#1523">1523</a>                 log.warn( Analyzer.SOURCEPATH + <span class="jxr_string">": overriding "</span> + mavenSourcePaths + <span class="jxr_string">" with "</span> + sourcePath + <span class="jxr_string">" (add "</span>
-<a name="1524" href="#1524">1524</a>                     + MAVEN_SOURCES + <span class="jxr_string">" if you want to include the maven sources)"</span> );
-<a name="1525" href="#1525">1525</a>             }
-<a name="1526" href="#1526">1526</a>         }
-<a name="1527" href="#1527">1527</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenSourcePaths.length() &gt; 0 )
+<a name="1434" href="#1434">1434</a>                 <strong class="jxr_keyword">if</strong> ( resource.getExcludes() != <strong class="jxr_keyword">null</strong> &amp;&amp; !resource.getExcludes().isEmpty() )
+<a name="1435" href="#1435">1435</a>                 {
+<a name="1436" href="#1436">1436</a>                     scanner.setExcludes( ( String[] ) resource.getExcludes().toArray( EMPTY_STRING_ARRAY ) );
+<a name="1437" href="#1437">1437</a>                 }
+<a name="1438" href="#1438">1438</a> 
+<a name="1439" href="#1439">1439</a>                 scanner.addDefaultExcludes();
+<a name="1440" href="#1440">1440</a>                 scanner.scan();
+<a name="1441" href="#1441">1441</a> 
+<a name="1442" href="#1442">1442</a>                 List includedFiles = Arrays.asList( scanner.getIncludedFiles() );
+<a name="1443" href="#1443">1443</a> 
+<a name="1444" href="#1444">1444</a>                 <strong class="jxr_keyword">for</strong> ( Iterator j = includedFiles.iterator(); j.hasNext(); )
+<a name="1445" href="#1445">1445</a>                 {
+<a name="1446" href="#1446">1446</a>                     String name = ( String ) j.next();
+<a name="1447" href="#1447">1447</a>                     String path = sourcePath + '/' + name;
+<a name="1448" href="#1448">1448</a> 
+<a name="1449" href="#1449">1449</a>                     <em class="jxr_comment">// make relative to project</em>
+<a name="1450" href="#1450">1450</a>                     <strong class="jxr_keyword">if</strong> ( path.startsWith( basePath ) )
+<a name="1451" href="#1451">1451</a>                     {
+<a name="1452" href="#1452">1452</a>                         <strong class="jxr_keyword">if</strong> ( path.length() == basePath.length() )
+<a name="1453" href="#1453">1453</a>                         {
+<a name="1454" href="#1454">1454</a>                             path = <span class="jxr_string">"."</span>;
+<a name="1455" href="#1455">1455</a>                         }
+<a name="1456" href="#1456">1456</a>                         <strong class="jxr_keyword">else</strong>
+<a name="1457" href="#1457">1457</a>                         {
+<a name="1458" href="#1458">1458</a>                             path = path.substring( basePath.length() + 1 );
+<a name="1459" href="#1459">1459</a>                         }
+<a name="1460" href="#1460">1460</a>                     }
+<a name="1461" href="#1461">1461</a> 
+<a name="1462" href="#1462">1462</a>                     <em class="jxr_comment">// replace windows backslash with a slash</em>
+<a name="1463" href="#1463">1463</a>                     <em class="jxr_comment">// this is a workaround for a problem with bnd 0.0.189</em>
+<a name="1464" href="#1464">1464</a>                     <strong class="jxr_keyword">if</strong> ( File.separatorChar != '/' )
+<a name="1465" href="#1465">1465</a>                     {
+<a name="1466" href="#1466">1466</a>                         name = name.replace( File.separatorChar, '/' );
+<a name="1467" href="#1467">1467</a>                         path = path.replace( File.separatorChar, '/' );
+<a name="1468" href="#1468">1468</a>                     }
+<a name="1469" href="#1469">1469</a> 
+<a name="1470" href="#1470">1470</a>                     <em class="jxr_comment">// copy to correct place</em>
+<a name="1471" href="#1471">1471</a>                     path = name + '=' + path;
+<a name="1472" href="#1472">1472</a>                     <strong class="jxr_keyword">if</strong> ( targetPath != <strong class="jxr_keyword">null</strong> )
+<a name="1473" href="#1473">1473</a>                     {
+<a name="1474" href="#1474">1474</a>                         path = targetPath + '/' + path;
+<a name="1475" href="#1475">1475</a>                     }
+<a name="1476" href="#1476">1476</a> 
+<a name="1477" href="#1477">1477</a>                     <em class="jxr_comment">// use Bnd filtering?</em>
+<a name="1478" href="#1478">1478</a>                     <strong class="jxr_keyword">if</strong> ( resource.isFiltering() )
+<a name="1479" href="#1479">1479</a>                     {
+<a name="1480" href="#1480">1480</a>                         path = '{' + path + '}';
+<a name="1481" href="#1481">1481</a>                     }
+<a name="1482" href="#1482">1482</a> 
+<a name="1483" href="#1483">1483</a>                     pathSet.add( path );
+<a name="1484" href="#1484">1484</a>                 }
+<a name="1485" href="#1485">1485</a>             }
+<a name="1486" href="#1486">1486</a>         }
+<a name="1487" href="#1487">1487</a> 
+<a name="1488" href="#1488">1488</a>         StringBuffer resourcePaths = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="1489" href="#1489">1489</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = pathSet.iterator(); i.hasNext(); )
+<a name="1490" href="#1490">1490</a>         {
+<a name="1491" href="#1491">1491</a>             resourcePaths.append( i.next() );
+<a name="1492" href="#1492">1492</a>             <strong class="jxr_keyword">if</strong> ( i.hasNext() )
+<a name="1493" href="#1493">1493</a>             {
+<a name="1494" href="#1494">1494</a>                 resourcePaths.append( ',' );
+<a name="1495" href="#1495">1495</a>             }
+<a name="1496" href="#1496">1496</a>         }
+<a name="1497" href="#1497">1497</a> 
+<a name="1498" href="#1498">1498</a>         <strong class="jxr_keyword">return</strong> resourcePaths.toString();
+<a name="1499" href="#1499">1499</a>     }
+<a name="1500" href="#1500">1500</a> 
+<a name="1501" href="#1501">1501</a> 
+<a name="1502" href="#1502">1502</a>     <strong class="jxr_keyword">protected</strong> Collection getEmbeddableArtifacts( MavenProject currentProject, Analyzer analyzer )
+<a name="1503" href="#1503">1503</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="1504" href="#1504">1504</a>     {
+<a name="1505" href="#1505">1505</a>         <strong class="jxr_keyword">final</strong> Collection artifacts;
+<a name="1506" href="#1506">1506</a> 
+<a name="1507" href="#1507">1507</a>         String embedTransitive = analyzer.getProperty( DependencyEmbedder.EMBED_TRANSITIVE );
+<a name="1508" href="#1508">1508</a>         <strong class="jxr_keyword">if</strong> ( Boolean.valueOf( embedTransitive ).booleanValue() )
+<a name="1509" href="#1509">1509</a>         {
+<a name="1510" href="#1510">1510</a>             <em class="jxr_comment">// includes transitive dependencies</em>
+<a name="1511" href="#1511">1511</a>             artifacts = currentProject.getArtifacts();
+<a name="1512" href="#1512">1512</a>         }
+<a name="1513" href="#1513">1513</a>         <strong class="jxr_keyword">else</strong>
+<a name="1514" href="#1514">1514</a>         {
+<a name="1515" href="#1515">1515</a>             <em class="jxr_comment">// only includes direct dependencies</em>
+<a name="1516" href="#1516">1516</a>             artifacts = currentProject.getDependencyArtifacts();
+<a name="1517" href="#1517">1517</a>         }
+<a name="1518" href="#1518">1518</a> 
+<a name="1519" href="#1519">1519</a>         <strong class="jxr_keyword">return</strong> getSelectedDependencies( artifacts );
+<a name="1520" href="#1520">1520</a>     }
+<a name="1521" href="#1521">1521</a> 
+<a name="1522" href="#1522">1522</a> 
+<a name="1523" href="#1523">1523</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> addMavenSourcePath( MavenProject currentProject, Analyzer analyzer, Log log )
+<a name="1524" href="#1524">1524</a>     {
+<a name="1525" href="#1525">1525</a>         <em class="jxr_comment">// pass maven source paths onto BND analyzer</em>
+<a name="1526" href="#1526">1526</a>         StringBuilder mavenSourcePaths = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a name="1527" href="#1527">1527</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getCompileSourceRoots() != <strong class="jxr_keyword">null</strong> )
 <a name="1528" href="#1528">1528</a>         {
-<a name="1529" href="#1529">1529</a>             analyzer.setProperty( Analyzer.SOURCEPATH, mavenSourcePaths.toString() );
-<a name="1530" href="#1530">1530</a>         }
-<a name="1531" href="#1531">1531</a>     }
-<a name="1532" href="#1532">1532</a> }
+<a name="1529" href="#1529">1529</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = currentProject.getCompileSourceRoots().iterator(); i.hasNext(); )
+<a name="1530" href="#1530">1530</a>             {
+<a name="1531" href="#1531">1531</a>                 <strong class="jxr_keyword">if</strong> ( mavenSourcePaths.length() &gt; 0 )
+<a name="1532" href="#1532">1532</a>                 {
+<a name="1533" href="#1533">1533</a>                     mavenSourcePaths.append( ',' );
+<a name="1534" href="#1534">1534</a>                 }
+<a name="1535" href="#1535">1535</a>                 mavenSourcePaths.append( ( String ) i.next() );
+<a name="1536" href="#1536">1536</a>             }
+<a name="1537" href="#1537">1537</a>         }
+<a name="1538" href="#1538">1538</a>         <strong class="jxr_keyword">final</strong> String sourcePath = ( String ) analyzer.getProperty( Analyzer.SOURCEPATH );
+<a name="1539" href="#1539">1539</a>         <strong class="jxr_keyword">if</strong> ( sourcePath != <strong class="jxr_keyword">null</strong> )
+<a name="1540" href="#1540">1540</a>         {
+<a name="1541" href="#1541">1541</a>             <strong class="jxr_keyword">if</strong> ( sourcePath.indexOf( MAVEN_SOURCES ) &gt;= 0 )
+<a name="1542" href="#1542">1542</a>             {
+<a name="1543" href="#1543">1543</a>                 <em class="jxr_comment">// if there is no maven source path, we do a special treatment and replace</em>
+<a name="1544" href="#1544">1544</a>                 <em class="jxr_comment">// every occurance of MAVEN_SOURCES and a following comma with an empty string</em>
+<a name="1545" href="#1545">1545</a>                 <strong class="jxr_keyword">if</strong> ( mavenSourcePaths.length() == 0 )
+<a name="1546" href="#1546">1546</a>                 {
+<a name="1547" href="#1547">1547</a>                     String cleanedSource = removeTagFromInstruction( sourcePath, MAVEN_SOURCES );
+<a name="1548" href="#1548">1548</a>                     <strong class="jxr_keyword">if</strong> ( cleanedSource.length() &gt; 0 )
+<a name="1549" href="#1549">1549</a>                     {
+<a name="1550" href="#1550">1550</a>                         analyzer.setProperty( Analyzer.SOURCEPATH, cleanedSource );
+<a name="1551" href="#1551">1551</a>                     }
+<a name="1552" href="#1552">1552</a>                     <strong class="jxr_keyword">else</strong>
+<a name="1553" href="#1553">1553</a>                     {
+<a name="1554" href="#1554">1554</a>                         analyzer.unsetProperty( Analyzer.SOURCEPATH );
+<a name="1555" href="#1555">1555</a>                     }
+<a name="1556" href="#1556">1556</a>                 }
+<a name="1557" href="#1557">1557</a>                 <strong class="jxr_keyword">else</strong>
+<a name="1558" href="#1558">1558</a>                 {
+<a name="1559" href="#1559">1559</a>                     String combinedSource = StringUtils
+<a name="1560" href="#1560">1560</a>                         .replace( sourcePath, MAVEN_SOURCES, mavenSourcePaths.toString() );
+<a name="1561" href="#1561">1561</a>                     analyzer.setProperty( Analyzer.SOURCEPATH, combinedSource );
+<a name="1562" href="#1562">1562</a>                 }
+<a name="1563" href="#1563">1563</a>             }
+<a name="1564" href="#1564">1564</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenSourcePaths.length() &gt; 0 )
+<a name="1565" href="#1565">1565</a>             {
+<a name="1566" href="#1566">1566</a>                 log.warn( Analyzer.SOURCEPATH + <span class="jxr_string">": overriding "</span> + mavenSourcePaths + <span class="jxr_string">" with "</span> + sourcePath + <span class="jxr_string">" (add "</span>
+<a name="1567" href="#1567">1567</a>                     + MAVEN_SOURCES + <span class="jxr_string">" if you want to include the maven sources)"</span> );
+<a name="1568" href="#1568">1568</a>             }
+<a name="1569" href="#1569">1569</a>         }
+<a name="1570" href="#1570">1570</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenSourcePaths.length() &gt; 0 )
+<a name="1571" href="#1571">1571</a>         {
+<a name="1572" href="#1572">1572</a>             analyzer.setProperty( Analyzer.SOURCEPATH, mavenSourcePaths.toString() );
+<a name="1573" href="#1573">1573</a>         }
+<a name="1574" href="#1574">1574</a>     }
+<a name="1575" href="#1575">1575</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/DependencyEmbedder.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/DependencyEmbedder.html
index 1ce3613..79f8ee8 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/DependencyEmbedder.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/DependencyEmbedder.html
@@ -39,7 +39,7 @@
 <a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
 <a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.StringUtils;
 <a name="31" href="#31">31</a>  
-<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Analyzer;
 <a name="33" href="#33">33</a>  
 <a name="34" href="#34">34</a>  
 <a name="35" href="#35">35</a>  <em class="jxr_javadoccomment">/**</em>
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/InstructionsPlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/InstructionsPlugin.html
index b6e9d55..97378e8 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/InstructionsPlugin.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/InstructionsPlugin.html
@@ -39,7 +39,7 @@
 <a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoFailureException;
 <a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
 <a name="31" href="#31">31</a>  
-<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Jar;
 <a name="33" href="#33">33</a>  
 <a name="34" href="#34">34</a>  
 <a name="35" href="#35">35</a>  <em class="jxr_javadoccomment">/**</em>
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/ManifestPlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/ManifestPlugin.html
index 42eb4d2..f213940 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/ManifestPlugin.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/ManifestPlugin.html
@@ -45,10 +45,10 @@
 <a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoFailureException;
 <a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
 <a name="37" href="#37">37</a>  
-<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
-<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Builder;
-<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
-<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Resource;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Analyzer;
+<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Builder;
+<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Jar;
+<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Resource;
 <a name="42" href="#42">42</a>  
 <a name="43" href="#43">43</a>  
 <a name="44" href="#44">44</a>  <em class="jxr_javadoccomment">/**</em>
@@ -182,106 +182,113 @@
 <a name="172" href="#172">172</a> 
 <a name="173" href="#173">173</a>         <strong class="jxr_keyword">if</strong> ( !file.exists() )
 <a name="174" href="#174">174</a>         {
-<a name="175" href="#175">175</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> FileNotFoundException( file.getPath() );
-<a name="176" href="#176">176</a>         }
-<a name="177" href="#177">177</a> 
-<a name="178" href="#178">178</a>         Builder analyzer = getOSGiBuilder( project, instructions, properties, classpath );
-<a name="179" href="#179">179</a> 
-<a name="180" href="#180">180</a>         analyzer.setJar( file );
-<a name="181" href="#181">181</a> 
-<a name="182" href="#182">182</a>         <em class="jxr_comment">// calculateExportsFromContents when we have no explicit instructions defining</em>
-<a name="183" href="#183">183</a>         <em class="jxr_comment">// the contents of the bundle *and* we are not analyzing the output directory,</em>
-<a name="184" href="#184">184</a>         <em class="jxr_comment">// otherwise fall-back to addMavenInstructions approach</em>
-<a name="185" href="#185">185</a> 
-<a name="186" href="#186">186</a>         <strong class="jxr_keyword">boolean</strong> isOutputDirectory = file.equals( getOutputDirectory() );
-<a name="187" href="#187">187</a> 
-<a name="188" href="#188">188</a>         <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.EXPORT_PACKAGE ) == <strong class="jxr_keyword">null</strong>
-<a name="189" href="#189">189</a>             &amp;&amp; analyzer.getProperty( Analyzer.EXPORT_CONTENTS ) == <strong class="jxr_keyword">null</strong>
-<a name="190" href="#190">190</a>             &amp;&amp; analyzer.getProperty( Analyzer.PRIVATE_PACKAGE ) == <strong class="jxr_keyword">null</strong> &amp;&amp; !isOutputDirectory )
-<a name="191" href="#191">191</a>         {
-<a name="192" href="#192">192</a>             String export = calculateExportsFromContents( analyzer.getJar() );
-<a name="193" href="#193">193</a>             analyzer.setProperty( Analyzer.EXPORT_PACKAGE, export );
-<a name="194" href="#194">194</a>         }
-<a name="195" href="#195">195</a> 
-<a name="196" href="#196">196</a>         addMavenInstructions( project, analyzer );
-<a name="197" href="#197">197</a> 
-<a name="198" href="#198">198</a>         <em class="jxr_comment">// if we spot Embed-Dependency and the bundle is "target/classes", assume we need to rebuild</em>
-<a name="199" href="#199">199</a>         <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( DependencyEmbedder.EMBED_DEPENDENCY ) != <strong class="jxr_keyword">null</strong> &amp;&amp; isOutputDirectory )
-<a name="200" href="#200">200</a>         {
-<a name="201" href="#201">201</a>             analyzer.build();
-<a name="202" href="#202">202</a>         }
-<a name="203" href="#203">203</a>         <strong class="jxr_keyword">else</strong>
-<a name="204" href="#204">204</a>         {
-<a name="205" href="#205">205</a>             analyzer.mergeManifest( analyzer.getJar().getManifest() );
-<a name="206" href="#206">206</a>             analyzer.calcManifest();
-<a name="207" href="#207">207</a>         }
-<a name="208" href="#208">208</a> 
-<a name="209" href="#209">209</a>         mergeMavenManifest( project, analyzer );
-<a name="210" href="#210">210</a> 
-<a name="211" href="#211">211</a>         <strong class="jxr_keyword">return</strong> analyzer;
-<a name="212" href="#212">212</a>     }
-<a name="213" href="#213">213</a> 
-<a name="214" href="#214">214</a> 
-<a name="215" href="#215">215</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeManifest( Manifest manifest, File outputFile ) <strong class="jxr_keyword">throws</strong> IOException
-<a name="216" href="#216">216</a>     {
-<a name="217" href="#217">217</a>         outputFile.getParentFile().mkdirs();
-<a name="218" href="#218">218</a> 
-<a name="219" href="#219">219</a>         FileOutputStream os;
-<a name="220" href="#220">220</a>         os = <strong class="jxr_keyword">new</strong> FileOutputStream( outputFile );
-<a name="221" href="#221">221</a>         <strong class="jxr_keyword">try</strong>
-<a name="222" href="#222">222</a>         {
-<a name="223" href="#223">223</a>             Jar.writeManifest( manifest, os );
-<a name="224" href="#224">224</a>         }
-<a name="225" href="#225">225</a>         <strong class="jxr_keyword">finally</strong>
-<a name="226" href="#226">226</a>         {
-<a name="227" href="#227">227</a>             <strong class="jxr_keyword">try</strong>
-<a name="228" href="#228">228</a>             {
-<a name="229" href="#229">229</a>                 os.close();
-<a name="230" href="#230">230</a>             }
-<a name="231" href="#231">231</a>             <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="232" href="#232">232</a>             {
-<a name="233" href="#233">233</a>                 <em class="jxr_comment">// nothing we can do here</em>
-<a name="234" href="#234">234</a>             }
-<a name="235" href="#235">235</a>         }
-<a name="236" href="#236">236</a>     }
-<a name="237" href="#237">237</a> 
-<a name="238" href="#238">238</a> 
-<a name="239" href="#239">239</a>     <em class="jxr_comment">/*</em>
-<a name="240" href="#240">240</a> <em class="jxr_comment">     * Patched version of bnd's Analyzer.calculateExportsFromContents</em>
-<a name="241" href="#241">241</a> <em class="jxr_comment">     */</em>
-<a name="242" href="#242">242</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String calculateExportsFromContents( Jar bundle )
-<a name="243" href="#243">243</a>     {
-<a name="244" href="#244">244</a>         String ddel = <span class="jxr_string">""</span>;
-<a name="245" href="#245">245</a>         StringBuffer sb = <strong class="jxr_keyword">new</strong> StringBuffer();
-<a name="246" href="#246">246</a>         Map&lt;String, Map&lt;String, Resource&gt;&gt; map = bundle.getDirectories();
-<a name="247" href="#247">247</a>         <strong class="jxr_keyword">for</strong> ( Iterator&lt;Entry&lt;String, Map&lt;String, Resource&gt;&gt;&gt; i = map.entrySet().iterator(); i.hasNext(); )
-<a name="248" href="#248">248</a>         {
-<a name="249" href="#249">249</a>             <em class="jxr_comment">//----------------------------------------------------</em>
-<a name="250" href="#250">250</a>             <em class="jxr_comment">// should also ignore directories with no resources</em>
-<a name="251" href="#251">251</a>             <em class="jxr_comment">//----------------------------------------------------</em>
-<a name="252" href="#252">252</a>             Entry&lt;String, Map&lt;String, Resource&gt;&gt; entry = i.next();
-<a name="253" href="#253">253</a>             <strong class="jxr_keyword">if</strong> ( entry.getValue() == <strong class="jxr_keyword">null</strong> || entry.getValue().isEmpty() )
-<a name="254" href="#254">254</a>                 <strong class="jxr_keyword">continue</strong>;
-<a name="255" href="#255">255</a>             <em class="jxr_comment">//----------------------------------------------------</em>
-<a name="256" href="#256">256</a>             String directory = entry.getKey();
-<a name="257" href="#257">257</a>             <strong class="jxr_keyword">if</strong> ( directory.equals( <span class="jxr_string">"META-INF"</span> ) || directory.startsWith( <span class="jxr_string">"META-INF/"</span> ) )
-<a name="258" href="#258">258</a>                 <strong class="jxr_keyword">continue</strong>;
-<a name="259" href="#259">259</a>             <strong class="jxr_keyword">if</strong> ( directory.equals( <span class="jxr_string">"OSGI-OPT"</span> ) || directory.startsWith( <span class="jxr_string">"OSGI-OPT/"</span> ) )
-<a name="260" href="#260">260</a>                 <strong class="jxr_keyword">continue</strong>;
-<a name="261" href="#261">261</a>             <strong class="jxr_keyword">if</strong> ( directory.equals( <span class="jxr_string">"/"</span> ) )
-<a name="262" href="#262">262</a>                 <strong class="jxr_keyword">continue</strong>;
-<a name="263" href="#263">263</a> 
-<a name="264" href="#264">264</a>             <strong class="jxr_keyword">if</strong> ( directory.endsWith( <span class="jxr_string">"/"</span> ) )
-<a name="265" href="#265">265</a>                 directory = directory.substring( 0, directory.length() - 1 );
-<a name="266" href="#266">266</a> 
-<a name="267" href="#267">267</a>             directory = directory.replace( '/', '.' );
-<a name="268" href="#268">268</a>             sb.append( ddel );
-<a name="269" href="#269">269</a>             sb.append( directory );
-<a name="270" href="#270">270</a>             ddel = <span class="jxr_string">","</span>;
-<a name="271" href="#271">271</a>         }
-<a name="272" href="#272">272</a>         <strong class="jxr_keyword">return</strong> sb.toString();
-<a name="273" href="#273">273</a>     }
-<a name="274" href="#274">274</a> }
+<a name="175" href="#175">175</a>             <strong class="jxr_keyword">if</strong> ( file.equals( getOutputDirectory() ) )
+<a name="176" href="#176">176</a>             {
+<a name="177" href="#177">177</a>                 file.mkdirs();
+<a name="178" href="#178">178</a>             }
+<a name="179" href="#179">179</a>             <strong class="jxr_keyword">else</strong>
+<a name="180" href="#180">180</a>             {
+<a name="181" href="#181">181</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> FileNotFoundException( file.getPath() );
+<a name="182" href="#182">182</a>             }
+<a name="183" href="#183">183</a>         }
+<a name="184" href="#184">184</a> 
+<a name="185" href="#185">185</a>         Builder analyzer = getOSGiBuilder( project, instructions, properties, classpath );
+<a name="186" href="#186">186</a> 
+<a name="187" href="#187">187</a>         analyzer.setJar( file );
+<a name="188" href="#188">188</a> 
+<a name="189" href="#189">189</a>         <em class="jxr_comment">// calculateExportsFromContents when we have no explicit instructions defining</em>
+<a name="190" href="#190">190</a>         <em class="jxr_comment">// the contents of the bundle *and* we are not analyzing the output directory,</em>
+<a name="191" href="#191">191</a>         <em class="jxr_comment">// otherwise fall-back to addMavenInstructions approach</em>
+<a name="192" href="#192">192</a> 
+<a name="193" href="#193">193</a>         <strong class="jxr_keyword">boolean</strong> isOutputDirectory = file.equals( getOutputDirectory() );
+<a name="194" href="#194">194</a> 
+<a name="195" href="#195">195</a>         <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.EXPORT_PACKAGE ) == <strong class="jxr_keyword">null</strong>
+<a name="196" href="#196">196</a>             &amp;&amp; analyzer.getProperty( Analyzer.EXPORT_CONTENTS ) == <strong class="jxr_keyword">null</strong>
+<a name="197" href="#197">197</a>             &amp;&amp; analyzer.getProperty( Analyzer.PRIVATE_PACKAGE ) == <strong class="jxr_keyword">null</strong> &amp;&amp; !isOutputDirectory )
+<a name="198" href="#198">198</a>         {
+<a name="199" href="#199">199</a>             String export = calculateExportsFromContents( analyzer.getJar() );
+<a name="200" href="#200">200</a>             analyzer.setProperty( Analyzer.EXPORT_PACKAGE, export );
+<a name="201" href="#201">201</a>         }
+<a name="202" href="#202">202</a> 
+<a name="203" href="#203">203</a>         addMavenInstructions( project, analyzer );
+<a name="204" href="#204">204</a> 
+<a name="205" href="#205">205</a>         <em class="jxr_comment">// if we spot Embed-Dependency and the bundle is "target/classes", assume we need to rebuild</em>
+<a name="206" href="#206">206</a>         <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( DependencyEmbedder.EMBED_DEPENDENCY ) != <strong class="jxr_keyword">null</strong> &amp;&amp; isOutputDirectory )
+<a name="207" href="#207">207</a>         {
+<a name="208" href="#208">208</a>             analyzer.build();
+<a name="209" href="#209">209</a>         }
+<a name="210" href="#210">210</a>         <strong class="jxr_keyword">else</strong>
+<a name="211" href="#211">211</a>         {
+<a name="212" href="#212">212</a>             analyzer.mergeManifest( analyzer.getJar().getManifest() );
+<a name="213" href="#213">213</a>             analyzer.getJar().setManifest( analyzer.calcManifest() );
+<a name="214" href="#214">214</a>         }
+<a name="215" href="#215">215</a> 
+<a name="216" href="#216">216</a>         mergeMavenManifest( project, analyzer );
+<a name="217" href="#217">217</a> 
+<a name="218" href="#218">218</a>         <strong class="jxr_keyword">return</strong> analyzer;
+<a name="219" href="#219">219</a>     }
+<a name="220" href="#220">220</a> 
+<a name="221" href="#221">221</a> 
+<a name="222" href="#222">222</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeManifest( Manifest manifest, File outputFile ) <strong class="jxr_keyword">throws</strong> IOException
+<a name="223" href="#223">223</a>     {
+<a name="224" href="#224">224</a>         outputFile.getParentFile().mkdirs();
+<a name="225" href="#225">225</a> 
+<a name="226" href="#226">226</a>         FileOutputStream os;
+<a name="227" href="#227">227</a>         os = <strong class="jxr_keyword">new</strong> FileOutputStream( outputFile );
+<a name="228" href="#228">228</a>         <strong class="jxr_keyword">try</strong>
+<a name="229" href="#229">229</a>         {
+<a name="230" href="#230">230</a>             Jar.writeManifest( manifest, os );
+<a name="231" href="#231">231</a>         }
+<a name="232" href="#232">232</a>         <strong class="jxr_keyword">finally</strong>
+<a name="233" href="#233">233</a>         {
+<a name="234" href="#234">234</a>             <strong class="jxr_keyword">try</strong>
+<a name="235" href="#235">235</a>             {
+<a name="236" href="#236">236</a>                 os.close();
+<a name="237" href="#237">237</a>             }
+<a name="238" href="#238">238</a>             <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="239" href="#239">239</a>             {
+<a name="240" href="#240">240</a>                 <em class="jxr_comment">// nothing we can do here</em>
+<a name="241" href="#241">241</a>             }
+<a name="242" href="#242">242</a>         }
+<a name="243" href="#243">243</a>     }
+<a name="244" href="#244">244</a> 
+<a name="245" href="#245">245</a> 
+<a name="246" href="#246">246</a>     <em class="jxr_comment">/*</em>
+<a name="247" href="#247">247</a> <em class="jxr_comment">     * Patched version of bnd's Analyzer.calculateExportsFromContents</em>
+<a name="248" href="#248">248</a> <em class="jxr_comment">     */</em>
+<a name="249" href="#249">249</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String calculateExportsFromContents( Jar bundle )
+<a name="250" href="#250">250</a>     {
+<a name="251" href="#251">251</a>         String ddel = <span class="jxr_string">""</span>;
+<a name="252" href="#252">252</a>         StringBuffer sb = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="253" href="#253">253</a>         Map&lt;String, Map&lt;String, Resource&gt;&gt; map = bundle.getDirectories();
+<a name="254" href="#254">254</a>         <strong class="jxr_keyword">for</strong> ( Iterator&lt;Entry&lt;String, Map&lt;String, Resource&gt;&gt;&gt; i = map.entrySet().iterator(); i.hasNext(); )
+<a name="255" href="#255">255</a>         {
+<a name="256" href="#256">256</a>             <em class="jxr_comment">//----------------------------------------------------</em>
+<a name="257" href="#257">257</a>             <em class="jxr_comment">// should also ignore directories with no resources</em>
+<a name="258" href="#258">258</a>             <em class="jxr_comment">//----------------------------------------------------</em>
+<a name="259" href="#259">259</a>             Entry&lt;String, Map&lt;String, Resource&gt;&gt; entry = i.next();
+<a name="260" href="#260">260</a>             <strong class="jxr_keyword">if</strong> ( entry.getValue() == <strong class="jxr_keyword">null</strong> || entry.getValue().isEmpty() )
+<a name="261" href="#261">261</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="262" href="#262">262</a>             <em class="jxr_comment">//----------------------------------------------------</em>
+<a name="263" href="#263">263</a>             String directory = entry.getKey();
+<a name="264" href="#264">264</a>             <strong class="jxr_keyword">if</strong> ( directory.equals( <span class="jxr_string">"META-INF"</span> ) || directory.startsWith( <span class="jxr_string">"META-INF/"</span> ) )
+<a name="265" href="#265">265</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="266" href="#266">266</a>             <strong class="jxr_keyword">if</strong> ( directory.equals( <span class="jxr_string">"OSGI-OPT"</span> ) || directory.startsWith( <span class="jxr_string">"OSGI-OPT/"</span> ) )
+<a name="267" href="#267">267</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="268" href="#268">268</a>             <strong class="jxr_keyword">if</strong> ( directory.equals( <span class="jxr_string">"/"</span> ) )
+<a name="269" href="#269">269</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="270" href="#270">270</a> 
+<a name="271" href="#271">271</a>             <strong class="jxr_keyword">if</strong> ( directory.endsWith( <span class="jxr_string">"/"</span> ) )
+<a name="272" href="#272">272</a>                 directory = directory.substring( 0, directory.length() - 1 );
+<a name="273" href="#273">273</a> 
+<a name="274" href="#274">274</a>             directory = directory.replace( '/', '.' );
+<a name="275" href="#275">275</a>             sb.append( ddel );
+<a name="276" href="#276">276</a>             sb.append( directory );
+<a name="277" href="#277">277</a>             ddel = <span class="jxr_string">","</span>;
+<a name="278" href="#278">278</a>         }
+<a name="279" href="#279">279</a>         <strong class="jxr_keyword">return</strong> sb.toString();
+<a name="280" href="#280">280</a>     }
+<a name="281" href="#281">281</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/package-summary.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/package-summary.html
index 53f7a33..ca96ffb 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/package-summary.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/package-summary.html
@@ -132,6 +132,6 @@
         	</ul>
       	</div>
 				<hr />
-		Copyright &copy; 2006-2012 The Apache Software Foundation. All Rights Reserved.
+		Copyright &copy; 2006-2013 The Apache Software Foundation. All Rights Reserved.
 	</body>
 </html>
\ No newline at end of file
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrInstall.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrInstall.html
index 329a88a..39bb07c 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrInstall.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrInstall.html
@@ -148,52 +148,55 @@
 <a name="138" href="#138">138</a>             <a href="../../../../org/apache/felix/obrplugin/Config.html">Config</a> userConfig = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/obrplugin/Config.html">Config</a>();
 <a name="139" href="#139">139</a> 
 <a name="140" href="#140">140</a>             update = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/obrplugin/ObrUpdate.html">ObrUpdate</a>( repositoryXml, obrXmlFile, project, mavenRepository, userConfig, log );
-<a name="141" href="#141">141</a>             update.parseRepositoryXml();
-<a name="142" href="#142">142</a> 
-<a name="143" href="#143">143</a>             updateLocalBundleMetadata( project.getArtifact(), update );
-<a name="144" href="#144">144</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = attachedArtifacts.iterator(); i.hasNext(); )
-<a name="145" href="#145">145</a>             {
-<a name="146" href="#146">146</a>                 updateLocalBundleMetadata( ( Artifact ) i.next(), update );
-<a name="147" href="#147">147</a>             }
-<a name="148" href="#148">148</a> 
-<a name="149" href="#149">149</a>             update.writeRepositoryXml();
-<a name="150" href="#150">150</a>         }
-<a name="151" href="#151">151</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="152" href="#152">152</a>         {
-<a name="153" href="#153">153</a>             log.warn( <span class="jxr_string">"Exception while updating local OBR: "</span> + e.getLocalizedMessage(), e );
-<a name="154" href="#154">154</a>         }
-<a name="155" href="#155">155</a>     }
-<a name="156" href="#156">156</a> 
-<a name="157" href="#157">157</a> 
-<a name="158" href="#158">158</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> updateLocalBundleMetadata( Artifact artifact, ObrUpdate update ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="159" href="#159">159</a>     {
-<a name="160" href="#160">160</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( artifact.getType() ) )
-<a name="161" href="#161">161</a>         {
-<a name="162" href="#162">162</a>             <strong class="jxr_keyword">return</strong>;
-<a name="163" href="#163">163</a>         }
-<a name="164" href="#164">164</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == artifact.getFile() || artifact.getFile().isDirectory() )
-<a name="165" href="#165">165</a>         {
-<a name="166" href="#166">166</a>             getLog().error( <span class="jxr_string">"No artifact found, try \&quot;mvn install bundle:install\&quot;"</span> );
-<a name="167" href="#167">167</a>             <strong class="jxr_keyword">return</strong>;
-<a name="168" href="#168">168</a>         }
-<a name="169" href="#169">169</a> 
-<a name="170" href="#170">170</a>         URI bundleJar = ObrUtils.getArtifactURI( localRepository, artifact );
-<a name="171" href="#171">171</a> 
-<a name="172" href="#172">172</a>         URI sourceJar = <strong class="jxr_keyword">null</strong>;
-<a name="173" href="#173">173</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != m_sourceArtifact )
-<a name="174" href="#174">174</a>         {
-<a name="175" href="#175">175</a>             sourceJar = ObrUtils.getArtifactURI( localRepository, m_sourceArtifact );
-<a name="176" href="#176">176</a>         }
-<a name="177" href="#177">177</a> 
-<a name="178" href="#178">178</a>         URI docJar = <strong class="jxr_keyword">null</strong>;
-<a name="179" href="#179">179</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != m_docArtifact )
-<a name="180" href="#180">180</a>         {
-<a name="181" href="#181">181</a>             docJar = ObrUtils.getArtifactURI( localRepository, m_docArtifact );
-<a name="182" href="#182">182</a>         }
-<a name="183" href="#183">183</a> 
-<a name="184" href="#184">184</a>         update.updateRepository( bundleJar, sourceJar, docJar );
-<a name="185" href="#185">185</a>     }
-<a name="186" href="#186">186</a> }
+<a name="141" href="#141">141</a>             <strong class="jxr_keyword">synchronized</strong> ( ObrUpdate.<strong class="jxr_keyword">class</strong> ) <em class="jxr_comment">// protect against concurrent in-process updates</em>
+<a name="142" href="#142">142</a>             {
+<a name="143" href="#143">143</a>                 update.parseRepositoryXml();
+<a name="144" href="#144">144</a> 
+<a name="145" href="#145">145</a>                 updateLocalBundleMetadata( project.getArtifact(), update );
+<a name="146" href="#146">146</a>                 <strong class="jxr_keyword">for</strong> ( Iterator i = attachedArtifacts.iterator(); i.hasNext(); )
+<a name="147" href="#147">147</a>                 {
+<a name="148" href="#148">148</a>                     updateLocalBundleMetadata( ( Artifact ) i.next(), update );
+<a name="149" href="#149">149</a>                 }
+<a name="150" href="#150">150</a> 
+<a name="151" href="#151">151</a>                 update.writeRepositoryXml();
+<a name="152" href="#152">152</a>             }
+<a name="153" href="#153">153</a>         }
+<a name="154" href="#154">154</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="155" href="#155">155</a>         {
+<a name="156" href="#156">156</a>             log.warn( <span class="jxr_string">"Exception while updating local OBR: "</span> + e.getLocalizedMessage(), e );
+<a name="157" href="#157">157</a>         }
+<a name="158" href="#158">158</a>     }
+<a name="159" href="#159">159</a> 
+<a name="160" href="#160">160</a> 
+<a name="161" href="#161">161</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> updateLocalBundleMetadata( Artifact artifact, ObrUpdate update ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="162" href="#162">162</a>     {
+<a name="163" href="#163">163</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( artifact.getType() ) )
+<a name="164" href="#164">164</a>         {
+<a name="165" href="#165">165</a>             <strong class="jxr_keyword">return</strong>;
+<a name="166" href="#166">166</a>         }
+<a name="167" href="#167">167</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == artifact.getFile() || artifact.getFile().isDirectory() )
+<a name="168" href="#168">168</a>         {
+<a name="169" href="#169">169</a>             getLog().error( <span class="jxr_string">"No artifact found, try \&quot;mvn install bundle:install\&quot;"</span> );
+<a name="170" href="#170">170</a>             <strong class="jxr_keyword">return</strong>;
+<a name="171" href="#171">171</a>         }
+<a name="172" href="#172">172</a> 
+<a name="173" href="#173">173</a>         URI bundleJar = ObrUtils.getArtifactURI( localRepository, artifact );
+<a name="174" href="#174">174</a> 
+<a name="175" href="#175">175</a>         URI sourceJar = <strong class="jxr_keyword">null</strong>;
+<a name="176" href="#176">176</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != m_sourceArtifact )
+<a name="177" href="#177">177</a>         {
+<a name="178" href="#178">178</a>             sourceJar = ObrUtils.getArtifactURI( localRepository, m_sourceArtifact );
+<a name="179" href="#179">179</a>         }
+<a name="180" href="#180">180</a> 
+<a name="181" href="#181">181</a>         URI docJar = <strong class="jxr_keyword">null</strong>;
+<a name="182" href="#182">182</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != m_docArtifact )
+<a name="183" href="#183">183</a>         {
+<a name="184" href="#184">184</a>             docJar = ObrUtils.getArtifactURI( localRepository, m_docArtifact );
+<a name="185" href="#185">185</a>         }
+<a name="186" href="#186">186</a> 
+<a name="187" href="#187">187</a>         update.updateRepository( bundleJar, sourceJar, docJar );
+<a name="188" href="#188">188</a>     }
+<a name="189" href="#189">189</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/package-summary.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/package-summary.html
index 7a3519a..cc61bef 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/package-summary.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/package-summary.html
@@ -127,6 +127,6 @@
         	</ul>
       	</div>
 				<hr />
-		Copyright &copy; 2006-2012 The Apache Software Foundation. All Rights Reserved.
+		Copyright &copy; 2006-2013 The Apache Software Foundation. All Rights Reserved.
 	</body>
 </html>
\ No newline at end of file
diff --git a/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/package-summary.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/package-summary.html
index c191293..35a062c 100644
--- a/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/package-summary.html
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/package-summary.html
@@ -62,6 +62,6 @@
         	</ul>
       	</div>
 				<hr />
-		Copyright &copy; 2006-2012 The Apache Software Foundation. All Rights Reserved.
+		Copyright &copy; 2006-2013 The Apache Software Foundation. All Rights Reserved.
 	</body>
 </html>
\ No newline at end of file
diff --git a/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.html
index c82b3ad..fd2c032 100644
--- a/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.html
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.html
@@ -43,7 +43,7 @@
 <a name="33" href="#33">33</a>  
 <a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
 <a name="35" href="#35">35</a>  
-<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Analyzer;
 <a name="37" href="#37">37</a>  
 <a name="38" href="#38">38</a>  
 <a name="39" href="#39">39</a>  <em class="jxr_javadoccomment">/**</em>
@@ -78,267 +78,274 @@
 <a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     * org.apache.maven:maven -&gt; org.apache.maven&lt;/li&gt;</em>
 <a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     * &lt;li&gt;if artifactId starts with last section of groupId that portion is removed. eg.</em>
 <a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     * org.apache.maven:maven-core -&gt; org.apache.maven.core&lt;/li&gt;</em>
-<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     * &lt;/ul&gt;</em>
-<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     */</em>
-<a name="73" href="#73">73</a>      <strong class="jxr_keyword">public</strong> String getBundleSymbolicName( Artifact artifact )
-<a name="74" href="#74">74</a>      {
-<a name="75" href="#75">75</a>          <strong class="jxr_keyword">if</strong> ( ( artifact.getFile() != <strong class="jxr_keyword">null</strong> ) &amp;&amp; artifact.getFile().isFile() )
-<a name="76" href="#76">76</a>          {
-<a name="77" href="#77">77</a>              Analyzer analyzer = <strong class="jxr_keyword">new</strong> Analyzer();
-<a name="78" href="#78">78</a>  
-<a name="79" href="#79">79</a>              JarFile jar = <strong class="jxr_keyword">null</strong>;
-<a name="80" href="#80">80</a>              <strong class="jxr_keyword">try</strong>
-<a name="81" href="#81">81</a>              {
-<a name="82" href="#82">82</a>                  jar = <strong class="jxr_keyword">new</strong> JarFile( artifact.getFile(), false );
-<a name="83" href="#83">83</a>  
-<a name="84" href="#84">84</a>                  <strong class="jxr_keyword">if</strong> ( jar.getManifest() != <strong class="jxr_keyword">null</strong> )
-<a name="85" href="#85">85</a>                  {
-<a name="86" href="#86">86</a>                      String symbolicNameAttribute = jar.getManifest().getMainAttributes()
-<a name="87" href="#87">87</a>                          .getValue( Analyzer.BUNDLE_SYMBOLICNAME );
-<a name="88" href="#88">88</a>                      Map bundleSymbolicNameHeader = analyzer.parseHeader( symbolicNameAttribute );
-<a name="89" href="#89">89</a>  
-<a name="90" href="#90">90</a>                      Iterator it = bundleSymbolicNameHeader.keySet().iterator();
-<a name="91" href="#91">91</a>                      <strong class="jxr_keyword">if</strong> ( it.hasNext() )
-<a name="92" href="#92">92</a>                      {
-<a name="93" href="#93">93</a>                          <strong class="jxr_keyword">return</strong> ( String ) it.next();
-<a name="94" href="#94">94</a>                      }
-<a name="95" href="#95">95</a>                  }
-<a name="96" href="#96">96</a>              }
-<a name="97" href="#97">97</a>              <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="98" href="#98">98</a>              {
-<a name="99" href="#99">99</a>                  <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/maven/shared/osgi/ManifestReadingException.html">ManifestReadingException</a>( <span class="jxr_string">"Error reading manifest in jar "</span>
-<a name="100" href="#100">100</a>                     + artifact.getFile().getAbsolutePath(), e );
-<a name="101" href="#101">101</a>             }
-<a name="102" href="#102">102</a>             <strong class="jxr_keyword">finally</strong>
-<a name="103" href="#103">103</a>             {
-<a name="104" href="#104">104</a>                 <strong class="jxr_keyword">if</strong> ( jar != <strong class="jxr_keyword">null</strong> )
-<a name="105" href="#105">105</a>                 {
-<a name="106" href="#106">106</a>                     <strong class="jxr_keyword">try</strong>
-<a name="107" href="#107">107</a>                     {
-<a name="108" href="#108">108</a>                         jar.close();
-<a name="109" href="#109">109</a>                     }
-<a name="110" href="#110">110</a>                     <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="111" href="#111">111</a>                     {
-<a name="112" href="#112">112</a>                     }
-<a name="113" href="#113">113</a>                 }
-<a name="114" href="#114">114</a>             }
-<a name="115" href="#115">115</a>         }
-<a name="116" href="#116">116</a> 
-<a name="117" href="#117">117</a>         <strong class="jxr_keyword">int</strong> i = artifact.getGroupId().lastIndexOf( '.' );
-<a name="118" href="#118">118</a>         <strong class="jxr_keyword">if</strong> ( ( i &lt; 0 ) &amp;&amp; ( artifact.getFile() != <strong class="jxr_keyword">null</strong> ) &amp;&amp; artifact.getFile().isFile() )
-<a name="119" href="#119">119</a>         {
-<a name="120" href="#120">120</a>             String groupIdFromPackage = getGroupIdFromPackage( artifact.getFile() );
-<a name="121" href="#121">121</a>             <strong class="jxr_keyword">if</strong> ( groupIdFromPackage != <strong class="jxr_keyword">null</strong> )
-<a name="122" href="#122">122</a>             {
-<a name="123" href="#123">123</a>                 <strong class="jxr_keyword">return</strong> groupIdFromPackage;
-<a name="124" href="#124">124</a>             }
-<a name="125" href="#125">125</a>         }
-<a name="126" href="#126">126</a>         String lastSection = artifact.getGroupId().substring( ++i );
-<a name="127" href="#127">127</a>         <strong class="jxr_keyword">if</strong> ( artifact.getArtifactId().equals( lastSection ) )
-<a name="128" href="#128">128</a>         {
-<a name="129" href="#129">129</a>             <strong class="jxr_keyword">return</strong> artifact.getGroupId();
-<a name="130" href="#130">130</a>         }
-<a name="131" href="#131">131</a>         <strong class="jxr_keyword">if</strong> ( artifact.getArtifactId().startsWith( lastSection ) )
-<a name="132" href="#132">132</a>         {
-<a name="133" href="#133">133</a>             String artifactId = artifact.getArtifactId().substring( lastSection.length() );
-<a name="134" href="#134">134</a>             <strong class="jxr_keyword">if</strong> ( Character.isLetterOrDigit( artifactId.charAt( 0 ) ) )
-<a name="135" href="#135">135</a>             {
-<a name="136" href="#136">136</a>                 <strong class="jxr_keyword">return</strong> getBundleSymbolicName( artifact.getGroupId(), artifactId );
-<a name="137" href="#137">137</a>             }
-<a name="138" href="#138">138</a>             <strong class="jxr_keyword">else</strong>
-<a name="139" href="#139">139</a>             {
-<a name="140" href="#140">140</a>                 <strong class="jxr_keyword">return</strong> getBundleSymbolicName( artifact.getGroupId(), artifactId.substring( 1 ) );
-<a name="141" href="#141">141</a>             }
-<a name="142" href="#142">142</a>         }
-<a name="143" href="#143">143</a>         <strong class="jxr_keyword">return</strong> getBundleSymbolicName( artifact.getGroupId(), artifact.getArtifactId() );
-<a name="144" href="#144">144</a>     }
-<a name="145" href="#145">145</a> 
-<a name="146" href="#146">146</a> 
-<a name="147" href="#147">147</a>     <strong class="jxr_keyword">private</strong> String getGroupIdFromPackage( File artifactFile )
-<a name="148" href="#148">148</a>     {
-<a name="149" href="#149">149</a>         <strong class="jxr_keyword">try</strong>
-<a name="150" href="#150">150</a>         {
-<a name="151" href="#151">151</a>             <em class="jxr_comment">/*<em class="jxr_comment"> get package names from jar */</em></em>
-<a name="152" href="#152">152</a>             Set packageNames = <strong class="jxr_keyword">new</strong> HashSet();
-<a name="153" href="#153">153</a>             JarFile jar = <strong class="jxr_keyword">new</strong> JarFile( artifactFile, false );
-<a name="154" href="#154">154</a>             Enumeration entries = jar.entries();
-<a name="155" href="#155">155</a>             <strong class="jxr_keyword">while</strong> ( entries.hasMoreElements() )
-<a name="156" href="#156">156</a>             {
-<a name="157" href="#157">157</a>                 ZipEntry entry = ( ZipEntry ) entries.nextElement();
-<a name="158" href="#158">158</a>                 <strong class="jxr_keyword">if</strong> ( entry.getName().endsWith( <span class="jxr_string">".class"</span> ) )
-<a name="159" href="#159">159</a>                 {
-<a name="160" href="#160">160</a>                     File f = <strong class="jxr_keyword">new</strong> File( entry.getName() );
-<a name="161" href="#161">161</a>                     String packageName = f.getParent();
-<a name="162" href="#162">162</a>                     <strong class="jxr_keyword">if</strong> ( packageName != <strong class="jxr_keyword">null</strong> )
-<a name="163" href="#163">163</a>                     {
-<a name="164" href="#164">164</a>                         packageNames.add( packageName );
-<a name="165" href="#165">165</a>                     }
-<a name="166" href="#166">166</a>                 }
-<a name="167" href="#167">167</a>             }
-<a name="168" href="#168">168</a>             jar.close();
-<a name="169" href="#169">169</a> 
-<a name="170" href="#170">170</a>             <em class="jxr_comment">/*<em class="jxr_comment"> find the top package */</em></em>
-<a name="171" href="#171">171</a>             String[] groupIdSections = <strong class="jxr_keyword">null</strong>;
-<a name="172" href="#172">172</a>             <strong class="jxr_keyword">for</strong> ( Iterator it = packageNames.iterator(); it.hasNext(); )
-<a name="173" href="#173">173</a>             {
-<a name="174" href="#174">174</a>                 String packageName = ( String ) it.next();
-<a name="175" href="#175">175</a> 
-<a name="176" href="#176">176</a>                 String[] packageNameSections = packageName.split( <span class="jxr_string">"&#92;&#92;"</span> + FILE_SEPARATOR );
-<a name="177" href="#177">177</a>                 <strong class="jxr_keyword">if</strong> ( groupIdSections == <strong class="jxr_keyword">null</strong> )
-<a name="178" href="#178">178</a>                 {
-<a name="179" href="#179">179</a>                     <em class="jxr_comment">/*<em class="jxr_comment"> first candidate */</em></em>
-<a name="180" href="#180">180</a>                     groupIdSections = packageNameSections;
-<a name="181" href="#181">181</a>                 }
-<a name="182" href="#182">182</a>                 <strong class="jxr_keyword">else</strong>
-<a name="183" href="#183">183</a>                 <em class="jxr_comment">// if ( packageNameSections.length &lt; groupIdSections.length )</em>
-<a name="184" href="#184">184</a>                 {
-<a name="185" href="#185">185</a>                     <em class="jxr_comment">/*</em>
-<a name="186" href="#186">186</a> <em class="jxr_comment">                     * find the common portion of current package and previous selected groupId</em>
-<a name="187" href="#187">187</a> <em class="jxr_comment">                     */</em>
-<a name="188" href="#188">188</a>                     <strong class="jxr_keyword">int</strong> i;
-<a name="189" href="#189">189</a>                     <strong class="jxr_keyword">for</strong> ( i = 0; ( i &lt; packageNameSections.length ) &amp;&amp; ( i &lt; groupIdSections.length ); i++ )
-<a name="190" href="#190">190</a>                     {
-<a name="191" href="#191">191</a>                         <strong class="jxr_keyword">if</strong> ( !packageNameSections[i].equals( groupIdSections[i] ) )
-<a name="192" href="#192">192</a>                         {
-<a name="193" href="#193">193</a>                             <strong class="jxr_keyword">break</strong>;
-<a name="194" href="#194">194</a>                         }
-<a name="195" href="#195">195</a>                     }
-<a name="196" href="#196">196</a>                     groupIdSections = <strong class="jxr_keyword">new</strong> String[i];
-<a name="197" href="#197">197</a>                     System.arraycopy( packageNameSections, 0, groupIdSections, 0, i );
-<a name="198" href="#198">198</a>                 }
-<a name="199" href="#199">199</a>             }
-<a name="200" href="#200">200</a> 
-<a name="201" href="#201">201</a>             <strong class="jxr_keyword">if</strong> ( ( groupIdSections == <strong class="jxr_keyword">null</strong> ) || ( groupIdSections.length == 0 ) )
-<a name="202" href="#202">202</a>             {
-<a name="203" href="#203">203</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a name="204" href="#204">204</a>             }
-<a name="205" href="#205">205</a> 
-<a name="206" href="#206">206</a>             <em class="jxr_comment">/*<em class="jxr_comment"> only one section as id doesn't seem enough, so ignore it */</em></em>
-<a name="207" href="#207">207</a>             <strong class="jxr_keyword">if</strong> ( groupIdSections.length == 1 )
-<a name="208" href="#208">208</a>             {
-<a name="209" href="#209">209</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a name="210" href="#210">210</a>             }
-<a name="211" href="#211">211</a> 
-<a name="212" href="#212">212</a>             StringBuffer sb = <strong class="jxr_keyword">new</strong> StringBuffer();
-<a name="213" href="#213">213</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; groupIdSections.length; i++ )
-<a name="214" href="#214">214</a>             {
-<a name="215" href="#215">215</a>                 sb.append( groupIdSections[i] );
-<a name="216" href="#216">216</a>                 <strong class="jxr_keyword">if</strong> ( i &lt; groupIdSections.length - 1 )
-<a name="217" href="#217">217</a>                 {
-<a name="218" href="#218">218</a>                     sb.append( '.' );
-<a name="219" href="#219">219</a>                 }
-<a name="220" href="#220">220</a>             }
-<a name="221" href="#221">221</a>             <strong class="jxr_keyword">return</strong> sb.toString();
-<a name="222" href="#222">222</a>         }
-<a name="223" href="#223">223</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="224" href="#224">224</a>         {
-<a name="225" href="#225">225</a>             <em class="jxr_comment">/*<em class="jxr_comment"> we took all the precautions to avoid this */</em></em>
-<a name="226" href="#226">226</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException( e );
-<a name="227" href="#227">227</a>         }
-<a name="228" href="#228">228</a>     }
-<a name="229" href="#229">229</a> 
-<a name="230" href="#230">230</a> 
-<a name="231" href="#231">231</a>     <strong class="jxr_keyword">public</strong> String getBundleFileName( Artifact artifact )
-<a name="232" href="#232">232</a>     {
-<a name="233" href="#233">233</a>         <strong class="jxr_keyword">return</strong> getBundleSymbolicName( artifact ) + <span class="jxr_string">"_"</span> + getVersion( artifact.getVersion() ) + <span class="jxr_string">".jar"</span>;
-<a name="234" href="#234">234</a>     }
-<a name="235" href="#235">235</a> 
+<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     * &lt;li&gt;if artifactId starts with groupId then the artifactId is removed. eg.</em>
+<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     * org.apache:org.apache.maven.core -&gt; org.apache.maven.core&lt;/li&gt;</em>
+<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     * &lt;/ul&gt;</em>
+<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="75" href="#75">75</a>      <strong class="jxr_keyword">public</strong> String getBundleSymbolicName( Artifact artifact )
+<a name="76" href="#76">76</a>      {
+<a name="77" href="#77">77</a>          <strong class="jxr_keyword">if</strong> ( ( artifact.getFile() != <strong class="jxr_keyword">null</strong> ) &amp;&amp; artifact.getFile().isFile() )
+<a name="78" href="#78">78</a>          {
+<a name="79" href="#79">79</a>              Analyzer analyzer = <strong class="jxr_keyword">new</strong> Analyzer();
+<a name="80" href="#80">80</a>  
+<a name="81" href="#81">81</a>              JarFile jar = <strong class="jxr_keyword">null</strong>;
+<a name="82" href="#82">82</a>              <strong class="jxr_keyword">try</strong>
+<a name="83" href="#83">83</a>              {
+<a name="84" href="#84">84</a>                  jar = <strong class="jxr_keyword">new</strong> JarFile( artifact.getFile(), false );
+<a name="85" href="#85">85</a>  
+<a name="86" href="#86">86</a>                  <strong class="jxr_keyword">if</strong> ( jar.getManifest() != <strong class="jxr_keyword">null</strong> )
+<a name="87" href="#87">87</a>                  {
+<a name="88" href="#88">88</a>                      String symbolicNameAttribute = jar.getManifest().getMainAttributes()
+<a name="89" href="#89">89</a>                          .getValue( Analyzer.BUNDLE_SYMBOLICNAME );
+<a name="90" href="#90">90</a>                      Map bundleSymbolicNameHeader = analyzer.parseHeader( symbolicNameAttribute );
+<a name="91" href="#91">91</a>  
+<a name="92" href="#92">92</a>                      Iterator it = bundleSymbolicNameHeader.keySet().iterator();
+<a name="93" href="#93">93</a>                      <strong class="jxr_keyword">if</strong> ( it.hasNext() )
+<a name="94" href="#94">94</a>                      {
+<a name="95" href="#95">95</a>                          <strong class="jxr_keyword">return</strong> ( String ) it.next();
+<a name="96" href="#96">96</a>                      }
+<a name="97" href="#97">97</a>                  }
+<a name="98" href="#98">98</a>              }
+<a name="99" href="#99">99</a>              <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="100" href="#100">100</a>             {
+<a name="101" href="#101">101</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/maven/shared/osgi/ManifestReadingException.html">ManifestReadingException</a>( <span class="jxr_string">"Error reading manifest in jar "</span>
+<a name="102" href="#102">102</a>                     + artifact.getFile().getAbsolutePath(), e );
+<a name="103" href="#103">103</a>             }
+<a name="104" href="#104">104</a>             <strong class="jxr_keyword">finally</strong>
+<a name="105" href="#105">105</a>             {
+<a name="106" href="#106">106</a>                 <strong class="jxr_keyword">if</strong> ( jar != <strong class="jxr_keyword">null</strong> )
+<a name="107" href="#107">107</a>                 {
+<a name="108" href="#108">108</a>                     <strong class="jxr_keyword">try</strong>
+<a name="109" href="#109">109</a>                     {
+<a name="110" href="#110">110</a>                         jar.close();
+<a name="111" href="#111">111</a>                     }
+<a name="112" href="#112">112</a>                     <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="113" href="#113">113</a>                     {
+<a name="114" href="#114">114</a>                     }
+<a name="115" href="#115">115</a>                 }
+<a name="116" href="#116">116</a>             }
+<a name="117" href="#117">117</a>         }
+<a name="118" href="#118">118</a> 
+<a name="119" href="#119">119</a>         <strong class="jxr_keyword">int</strong> i = artifact.getGroupId().lastIndexOf( '.' );
+<a name="120" href="#120">120</a>         <strong class="jxr_keyword">if</strong> ( ( i &lt; 0 ) &amp;&amp; ( artifact.getFile() != <strong class="jxr_keyword">null</strong> ) &amp;&amp; artifact.getFile().isFile() )
+<a name="121" href="#121">121</a>         {
+<a name="122" href="#122">122</a>             String groupIdFromPackage = getGroupIdFromPackage( artifact.getFile() );
+<a name="123" href="#123">123</a>             <strong class="jxr_keyword">if</strong> ( groupIdFromPackage != <strong class="jxr_keyword">null</strong> )
+<a name="124" href="#124">124</a>             {
+<a name="125" href="#125">125</a>                 <strong class="jxr_keyword">return</strong> groupIdFromPackage;
+<a name="126" href="#126">126</a>             }
+<a name="127" href="#127">127</a>         }
+<a name="128" href="#128">128</a>         String lastSection = artifact.getGroupId().substring( ++i );
+<a name="129" href="#129">129</a>         <strong class="jxr_keyword">if</strong> ( artifact.getArtifactId().equals( lastSection ) )
+<a name="130" href="#130">130</a>         {
+<a name="131" href="#131">131</a>             <strong class="jxr_keyword">return</strong> artifact.getGroupId();
+<a name="132" href="#132">132</a>         }
+<a name="133" href="#133">133</a>         <strong class="jxr_keyword">if</strong> ( artifact.getArtifactId().equals( artifact.getGroupId() )
+<a name="134" href="#134">134</a>             || artifact.getArtifactId().startsWith( artifact.getGroupId() + <span class="jxr_string">"."</span> ) )
+<a name="135" href="#135">135</a>         {
+<a name="136" href="#136">136</a>             <strong class="jxr_keyword">return</strong> artifact.getArtifactId();
+<a name="137" href="#137">137</a>         }
+<a name="138" href="#138">138</a>         <strong class="jxr_keyword">if</strong> ( artifact.getArtifactId().startsWith( lastSection ) )
+<a name="139" href="#139">139</a>         {
+<a name="140" href="#140">140</a>             String artifactId = artifact.getArtifactId().substring( lastSection.length() );
+<a name="141" href="#141">141</a>             <strong class="jxr_keyword">if</strong> ( Character.isLetterOrDigit( artifactId.charAt( 0 ) ) )
+<a name="142" href="#142">142</a>             {
+<a name="143" href="#143">143</a>                 <strong class="jxr_keyword">return</strong> getBundleSymbolicName( artifact.getGroupId(), artifactId );
+<a name="144" href="#144">144</a>             }
+<a name="145" href="#145">145</a>             <strong class="jxr_keyword">else</strong>
+<a name="146" href="#146">146</a>             {
+<a name="147" href="#147">147</a>                 <strong class="jxr_keyword">return</strong> getBundleSymbolicName( artifact.getGroupId(), artifactId.substring( 1 ) );
+<a name="148" href="#148">148</a>             }
+<a name="149" href="#149">149</a>         }
+<a name="150" href="#150">150</a>         <strong class="jxr_keyword">return</strong> getBundleSymbolicName( artifact.getGroupId(), artifact.getArtifactId() );
+<a name="151" href="#151">151</a>     }
+<a name="152" href="#152">152</a> 
+<a name="153" href="#153">153</a> 
+<a name="154" href="#154">154</a>     <strong class="jxr_keyword">private</strong> String getGroupIdFromPackage( File artifactFile )
+<a name="155" href="#155">155</a>     {
+<a name="156" href="#156">156</a>         <strong class="jxr_keyword">try</strong>
+<a name="157" href="#157">157</a>         {
+<a name="158" href="#158">158</a>             <em class="jxr_comment">/*<em class="jxr_comment"> get package names from jar */</em></em>
+<a name="159" href="#159">159</a>             Set packageNames = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="160" href="#160">160</a>             JarFile jar = <strong class="jxr_keyword">new</strong> JarFile( artifactFile, false );
+<a name="161" href="#161">161</a>             Enumeration entries = jar.entries();
+<a name="162" href="#162">162</a>             <strong class="jxr_keyword">while</strong> ( entries.hasMoreElements() )
+<a name="163" href="#163">163</a>             {
+<a name="164" href="#164">164</a>                 ZipEntry entry = ( ZipEntry ) entries.nextElement();
+<a name="165" href="#165">165</a>                 <strong class="jxr_keyword">if</strong> ( entry.getName().endsWith( <span class="jxr_string">".class"</span> ) )
+<a name="166" href="#166">166</a>                 {
+<a name="167" href="#167">167</a>                     File f = <strong class="jxr_keyword">new</strong> File( entry.getName() );
+<a name="168" href="#168">168</a>                     String packageName = f.getParent();
+<a name="169" href="#169">169</a>                     <strong class="jxr_keyword">if</strong> ( packageName != <strong class="jxr_keyword">null</strong> )
+<a name="170" href="#170">170</a>                     {
+<a name="171" href="#171">171</a>                         packageNames.add( packageName );
+<a name="172" href="#172">172</a>                     }
+<a name="173" href="#173">173</a>                 }
+<a name="174" href="#174">174</a>             }
+<a name="175" href="#175">175</a>             jar.close();
+<a name="176" href="#176">176</a> 
+<a name="177" href="#177">177</a>             <em class="jxr_comment">/*<em class="jxr_comment"> find the top package */</em></em>
+<a name="178" href="#178">178</a>             String[] groupIdSections = <strong class="jxr_keyword">null</strong>;
+<a name="179" href="#179">179</a>             <strong class="jxr_keyword">for</strong> ( Iterator it = packageNames.iterator(); it.hasNext(); )
+<a name="180" href="#180">180</a>             {
+<a name="181" href="#181">181</a>                 String packageName = ( String ) it.next();
+<a name="182" href="#182">182</a> 
+<a name="183" href="#183">183</a>                 String[] packageNameSections = packageName.split( <span class="jxr_string">"&#92;&#92;"</span> + FILE_SEPARATOR );
+<a name="184" href="#184">184</a>                 <strong class="jxr_keyword">if</strong> ( groupIdSections == <strong class="jxr_keyword">null</strong> )
+<a name="185" href="#185">185</a>                 {
+<a name="186" href="#186">186</a>                     <em class="jxr_comment">/*<em class="jxr_comment"> first candidate */</em></em>
+<a name="187" href="#187">187</a>                     groupIdSections = packageNameSections;
+<a name="188" href="#188">188</a>                 }
+<a name="189" href="#189">189</a>                 <strong class="jxr_keyword">else</strong>
+<a name="190" href="#190">190</a>                 <em class="jxr_comment">// if ( packageNameSections.length &lt; groupIdSections.length )</em>
+<a name="191" href="#191">191</a>                 {
+<a name="192" href="#192">192</a>                     <em class="jxr_comment">/*</em>
+<a name="193" href="#193">193</a> <em class="jxr_comment">                     * find the common portion of current package and previous selected groupId</em>
+<a name="194" href="#194">194</a> <em class="jxr_comment">                     */</em>
+<a name="195" href="#195">195</a>                     <strong class="jxr_keyword">int</strong> i;
+<a name="196" href="#196">196</a>                     <strong class="jxr_keyword">for</strong> ( i = 0; ( i &lt; packageNameSections.length ) &amp;&amp; ( i &lt; groupIdSections.length ); i++ )
+<a name="197" href="#197">197</a>                     {
+<a name="198" href="#198">198</a>                         <strong class="jxr_keyword">if</strong> ( !packageNameSections[i].equals( groupIdSections[i] ) )
+<a name="199" href="#199">199</a>                         {
+<a name="200" href="#200">200</a>                             <strong class="jxr_keyword">break</strong>;
+<a name="201" href="#201">201</a>                         }
+<a name="202" href="#202">202</a>                     }
+<a name="203" href="#203">203</a>                     groupIdSections = <strong class="jxr_keyword">new</strong> String[i];
+<a name="204" href="#204">204</a>                     System.arraycopy( packageNameSections, 0, groupIdSections, 0, i );
+<a name="205" href="#205">205</a>                 }
+<a name="206" href="#206">206</a>             }
+<a name="207" href="#207">207</a> 
+<a name="208" href="#208">208</a>             <strong class="jxr_keyword">if</strong> ( ( groupIdSections == <strong class="jxr_keyword">null</strong> ) || ( groupIdSections.length == 0 ) )
+<a name="209" href="#209">209</a>             {
+<a name="210" href="#210">210</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="211" href="#211">211</a>             }
+<a name="212" href="#212">212</a> 
+<a name="213" href="#213">213</a>             <em class="jxr_comment">/*<em class="jxr_comment"> only one section as id doesn't seem enough, so ignore it */</em></em>
+<a name="214" href="#214">214</a>             <strong class="jxr_keyword">if</strong> ( groupIdSections.length == 1 )
+<a name="215" href="#215">215</a>             {
+<a name="216" href="#216">216</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="217" href="#217">217</a>             }
+<a name="218" href="#218">218</a> 
+<a name="219" href="#219">219</a>             StringBuffer sb = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="220" href="#220">220</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; groupIdSections.length; i++ )
+<a name="221" href="#221">221</a>             {
+<a name="222" href="#222">222</a>                 sb.append( groupIdSections[i] );
+<a name="223" href="#223">223</a>                 <strong class="jxr_keyword">if</strong> ( i &lt; groupIdSections.length - 1 )
+<a name="224" href="#224">224</a>                 {
+<a name="225" href="#225">225</a>                     sb.append( '.' );
+<a name="226" href="#226">226</a>                 }
+<a name="227" href="#227">227</a>             }
+<a name="228" href="#228">228</a>             <strong class="jxr_keyword">return</strong> sb.toString();
+<a name="229" href="#229">229</a>         }
+<a name="230" href="#230">230</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="231" href="#231">231</a>         {
+<a name="232" href="#232">232</a>             <em class="jxr_comment">/*<em class="jxr_comment"> we took all the precautions to avoid this */</em></em>
+<a name="233" href="#233">233</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException( e );
+<a name="234" href="#234">234</a>         }
+<a name="235" href="#235">235</a>     }
 <a name="236" href="#236">236</a> 
-<a name="237" href="#237">237</a>     <strong class="jxr_keyword">public</strong> String getVersion( Artifact artifact )
-<a name="238" href="#238">238</a>     {
-<a name="239" href="#239">239</a>         <strong class="jxr_keyword">return</strong> getVersion( artifact.getVersion() );
-<a name="240" href="#240">240</a>     }
-<a name="241" href="#241">241</a> 
+<a name="237" href="#237">237</a> 
+<a name="238" href="#238">238</a>     <strong class="jxr_keyword">public</strong> String getBundleFileName( Artifact artifact )
+<a name="239" href="#239">239</a>     {
+<a name="240" href="#240">240</a>         <strong class="jxr_keyword">return</strong> getBundleSymbolicName( artifact ) + <span class="jxr_string">"_"</span> + getVersion( artifact.getVersion() ) + <span class="jxr_string">".jar"</span>;
+<a name="241" href="#241">241</a>     }
 <a name="242" href="#242">242</a> 
-<a name="243" href="#243">243</a>     <strong class="jxr_keyword">public</strong> String getVersion( String version )
-<a name="244" href="#244">244</a>     {
-<a name="245" href="#245">245</a>         <strong class="jxr_keyword">return</strong> cleanupVersion( version );
-<a name="246" href="#246">246</a>     }
-<a name="247" href="#247">247</a> 
-<a name="248" href="#248">248</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="249" href="#249">249</a> <em class="jxr_javadoccomment">     * Clean up version parameters. Other builders use more fuzzy definitions of</em>
-<a name="250" href="#250">250</a> <em class="jxr_javadoccomment">     * the version syntax. This method cleans up such a version to match an OSGi</em>
-<a name="251" href="#251">251</a> <em class="jxr_javadoccomment">     * version.</em>
-<a name="252" href="#252">252</a> <em class="jxr_javadoccomment">     *</em>
-<a name="253" href="#253">253</a> <em class="jxr_javadoccomment">     * @param VERSION_STRING</em>
-<a name="254" href="#254">254</a> <em class="jxr_javadoccomment">     * @return</em>
-<a name="255" href="#255">255</a> <em class="jxr_javadoccomment">     */</em>
-<a name="256" href="#256">256</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Pattern FUZZY_VERSION = Pattern.compile( <span class="jxr_string">"(&#92;&#92;d+)(&#92;&#92;.(&#92;&#92;d+)(&#92;&#92;.(&#92;&#92;d+))?)?([^a-zA-Z0-9](.*))?"</span>,
-<a name="257" href="#257">257</a>         Pattern.DOTALL );
-<a name="258" href="#258">258</a> 
-<a name="259" href="#259">259</a> 
-<a name="260" href="#260">260</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> String cleanupVersion( String version )
-<a name="261" href="#261">261</a>     {
-<a name="262" href="#262">262</a>         StringBuffer result = <strong class="jxr_keyword">new</strong> StringBuffer();
-<a name="263" href="#263">263</a>         Matcher m = FUZZY_VERSION.matcher( version );
-<a name="264" href="#264">264</a>         <strong class="jxr_keyword">if</strong> ( m.matches() )
-<a name="265" href="#265">265</a>         {
-<a name="266" href="#266">266</a>             String major = m.group( 1 );
-<a name="267" href="#267">267</a>             String minor = m.group( 3 );
-<a name="268" href="#268">268</a>             String micro = m.group( 5 );
-<a name="269" href="#269">269</a>             String qualifier = m.group( 7 );
-<a name="270" href="#270">270</a> 
-<a name="271" href="#271">271</a>             <strong class="jxr_keyword">if</strong> ( major != <strong class="jxr_keyword">null</strong> )
-<a name="272" href="#272">272</a>             {
-<a name="273" href="#273">273</a>                 result.append( major );
-<a name="274" href="#274">274</a>                 <strong class="jxr_keyword">if</strong> ( minor != <strong class="jxr_keyword">null</strong> )
-<a name="275" href="#275">275</a>                 {
-<a name="276" href="#276">276</a>                     result.append( <span class="jxr_string">"."</span> );
-<a name="277" href="#277">277</a>                     result.append( minor );
-<a name="278" href="#278">278</a>                     <strong class="jxr_keyword">if</strong> ( micro != <strong class="jxr_keyword">null</strong> )
-<a name="279" href="#279">279</a>                     {
-<a name="280" href="#280">280</a>                         result.append( <span class="jxr_string">"."</span> );
-<a name="281" href="#281">281</a>                         result.append( micro );
-<a name="282" href="#282">282</a>                         <strong class="jxr_keyword">if</strong> ( qualifier != <strong class="jxr_keyword">null</strong> )
-<a name="283" href="#283">283</a>                         {
-<a name="284" href="#284">284</a>                             result.append( <span class="jxr_string">"."</span> );
-<a name="285" href="#285">285</a>                             cleanupModifier( result, qualifier );
-<a name="286" href="#286">286</a>                         }
-<a name="287" href="#287">287</a>                     }
-<a name="288" href="#288">288</a>                     <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( qualifier != <strong class="jxr_keyword">null</strong> )
-<a name="289" href="#289">289</a>                     {
-<a name="290" href="#290">290</a>                         result.append( <span class="jxr_string">".0."</span> );
-<a name="291" href="#291">291</a>                         cleanupModifier( result, qualifier );
-<a name="292" href="#292">292</a>                     }
-<a name="293" href="#293">293</a>                     <strong class="jxr_keyword">else</strong>
-<a name="294" href="#294">294</a>                     {
-<a name="295" href="#295">295</a>                         result.append( <span class="jxr_string">".0"</span> );
-<a name="296" href="#296">296</a>                     }
-<a name="297" href="#297">297</a>                 }
-<a name="298" href="#298">298</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( qualifier != <strong class="jxr_keyword">null</strong> )
-<a name="299" href="#299">299</a>                 {
-<a name="300" href="#300">300</a>                     result.append( <span class="jxr_string">".0.0."</span> );
-<a name="301" href="#301">301</a>                     cleanupModifier( result, qualifier );
-<a name="302" href="#302">302</a>                 }
-<a name="303" href="#303">303</a>                 <strong class="jxr_keyword">else</strong>
-<a name="304" href="#304">304</a>                 {
-<a name="305" href="#305">305</a>                     result.append( <span class="jxr_string">".0.0"</span> );
-<a name="306" href="#306">306</a>                 }
-<a name="307" href="#307">307</a>             }
-<a name="308" href="#308">308</a>         }
-<a name="309" href="#309">309</a>         <strong class="jxr_keyword">else</strong>
-<a name="310" href="#310">310</a>         {
-<a name="311" href="#311">311</a>             result.append( <span class="jxr_string">"0.0.0."</span> );
-<a name="312" href="#312">312</a>             cleanupModifier( result, version );
-<a name="313" href="#313">313</a>         }
-<a name="314" href="#314">314</a>         <strong class="jxr_keyword">return</strong> result.toString();
-<a name="315" href="#315">315</a>     }
-<a name="316" href="#316">316</a> 
-<a name="317" href="#317">317</a> 
-<a name="318" href="#318">318</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> cleanupModifier( StringBuffer result, String modifier )
-<a name="319" href="#319">319</a>     {
-<a name="320" href="#320">320</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; modifier.length(); i++ )
-<a name="321" href="#321">321</a>         {
-<a name="322" href="#322">322</a>             <strong class="jxr_keyword">char</strong> c = modifier.charAt( i );
-<a name="323" href="#323">323</a>             <strong class="jxr_keyword">if</strong> ( ( c &gt;= '0' &amp;&amp; c &lt;= '9' ) || ( c &gt;= 'a' &amp;&amp; c &lt;= 'z' ) || ( c &gt;= 'A' &amp;&amp; c &lt;= 'Z' ) || c == '_'
-<a name="324" href="#324">324</a>                 || c == '-' )
-<a name="325" href="#325">325</a>                 result.append( c );
-<a name="326" href="#326">326</a>             <strong class="jxr_keyword">else</strong>
-<a name="327" href="#327">327</a>                 result.append( '_' );
-<a name="328" href="#328">328</a>         }
-<a name="329" href="#329">329</a>     }
-<a name="330" href="#330">330</a> 
-<a name="331" href="#331">331</a> }
+<a name="243" href="#243">243</a> 
+<a name="244" href="#244">244</a>     <strong class="jxr_keyword">public</strong> String getVersion( Artifact artifact )
+<a name="245" href="#245">245</a>     {
+<a name="246" href="#246">246</a>         <strong class="jxr_keyword">return</strong> getVersion( artifact.getVersion() );
+<a name="247" href="#247">247</a>     }
+<a name="248" href="#248">248</a> 
+<a name="249" href="#249">249</a> 
+<a name="250" href="#250">250</a>     <strong class="jxr_keyword">public</strong> String getVersion( String version )
+<a name="251" href="#251">251</a>     {
+<a name="252" href="#252">252</a>         <strong class="jxr_keyword">return</strong> cleanupVersion( version );
+<a name="253" href="#253">253</a>     }
+<a name="254" href="#254">254</a> 
+<a name="255" href="#255">255</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="256" href="#256">256</a> <em class="jxr_javadoccomment">     * Clean up version parameters. Other builders use more fuzzy definitions of</em>
+<a name="257" href="#257">257</a> <em class="jxr_javadoccomment">     * the version syntax. This method cleans up such a version to match an OSGi</em>
+<a name="258" href="#258">258</a> <em class="jxr_javadoccomment">     * version.</em>
+<a name="259" href="#259">259</a> <em class="jxr_javadoccomment">     *</em>
+<a name="260" href="#260">260</a> <em class="jxr_javadoccomment">     * @param VERSION_STRING</em>
+<a name="261" href="#261">261</a> <em class="jxr_javadoccomment">     * @return</em>
+<a name="262" href="#262">262</a> <em class="jxr_javadoccomment">     */</em>
+<a name="263" href="#263">263</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Pattern FUZZY_VERSION = Pattern.compile( <span class="jxr_string">"(&#92;&#92;d+)(&#92;&#92;.(&#92;&#92;d+)(&#92;&#92;.(&#92;&#92;d+))?)?([^a-zA-Z0-9](.*))?"</span>,
+<a name="264" href="#264">264</a>         Pattern.DOTALL );
+<a name="265" href="#265">265</a> 
+<a name="266" href="#266">266</a> 
+<a name="267" href="#267">267</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> String cleanupVersion( String version )
+<a name="268" href="#268">268</a>     {
+<a name="269" href="#269">269</a>         StringBuffer result = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="270" href="#270">270</a>         Matcher m = FUZZY_VERSION.matcher( version );
+<a name="271" href="#271">271</a>         <strong class="jxr_keyword">if</strong> ( m.matches() )
+<a name="272" href="#272">272</a>         {
+<a name="273" href="#273">273</a>             String major = m.group( 1 );
+<a name="274" href="#274">274</a>             String minor = m.group( 3 );
+<a name="275" href="#275">275</a>             String micro = m.group( 5 );
+<a name="276" href="#276">276</a>             String qualifier = m.group( 7 );
+<a name="277" href="#277">277</a> 
+<a name="278" href="#278">278</a>             <strong class="jxr_keyword">if</strong> ( major != <strong class="jxr_keyword">null</strong> )
+<a name="279" href="#279">279</a>             {
+<a name="280" href="#280">280</a>                 result.append( major );
+<a name="281" href="#281">281</a>                 <strong class="jxr_keyword">if</strong> ( minor != <strong class="jxr_keyword">null</strong> )
+<a name="282" href="#282">282</a>                 {
+<a name="283" href="#283">283</a>                     result.append( <span class="jxr_string">"."</span> );
+<a name="284" href="#284">284</a>                     result.append( minor );
+<a name="285" href="#285">285</a>                     <strong class="jxr_keyword">if</strong> ( micro != <strong class="jxr_keyword">null</strong> )
+<a name="286" href="#286">286</a>                     {
+<a name="287" href="#287">287</a>                         result.append( <span class="jxr_string">"."</span> );
+<a name="288" href="#288">288</a>                         result.append( micro );
+<a name="289" href="#289">289</a>                         <strong class="jxr_keyword">if</strong> ( qualifier != <strong class="jxr_keyword">null</strong> )
+<a name="290" href="#290">290</a>                         {
+<a name="291" href="#291">291</a>                             result.append( <span class="jxr_string">"."</span> );
+<a name="292" href="#292">292</a>                             cleanupModifier( result, qualifier );
+<a name="293" href="#293">293</a>                         }
+<a name="294" href="#294">294</a>                     }
+<a name="295" href="#295">295</a>                     <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( qualifier != <strong class="jxr_keyword">null</strong> )
+<a name="296" href="#296">296</a>                     {
+<a name="297" href="#297">297</a>                         result.append( <span class="jxr_string">".0."</span> );
+<a name="298" href="#298">298</a>                         cleanupModifier( result, qualifier );
+<a name="299" href="#299">299</a>                     }
+<a name="300" href="#300">300</a>                     <strong class="jxr_keyword">else</strong>
+<a name="301" href="#301">301</a>                     {
+<a name="302" href="#302">302</a>                         result.append( <span class="jxr_string">".0"</span> );
+<a name="303" href="#303">303</a>                     }
+<a name="304" href="#304">304</a>                 }
+<a name="305" href="#305">305</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( qualifier != <strong class="jxr_keyword">null</strong> )
+<a name="306" href="#306">306</a>                 {
+<a name="307" href="#307">307</a>                     result.append( <span class="jxr_string">".0.0."</span> );
+<a name="308" href="#308">308</a>                     cleanupModifier( result, qualifier );
+<a name="309" href="#309">309</a>                 }
+<a name="310" href="#310">310</a>                 <strong class="jxr_keyword">else</strong>
+<a name="311" href="#311">311</a>                 {
+<a name="312" href="#312">312</a>                     result.append( <span class="jxr_string">".0.0"</span> );
+<a name="313" href="#313">313</a>                 }
+<a name="314" href="#314">314</a>             }
+<a name="315" href="#315">315</a>         }
+<a name="316" href="#316">316</a>         <strong class="jxr_keyword">else</strong>
+<a name="317" href="#317">317</a>         {
+<a name="318" href="#318">318</a>             result.append( <span class="jxr_string">"0.0.0."</span> );
+<a name="319" href="#319">319</a>             cleanupModifier( result, version );
+<a name="320" href="#320">320</a>         }
+<a name="321" href="#321">321</a>         <strong class="jxr_keyword">return</strong> result.toString();
+<a name="322" href="#322">322</a>     }
+<a name="323" href="#323">323</a> 
+<a name="324" href="#324">324</a> 
+<a name="325" href="#325">325</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> cleanupModifier( StringBuffer result, String modifier )
+<a name="326" href="#326">326</a>     {
+<a name="327" href="#327">327</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; modifier.length(); i++ )
+<a name="328" href="#328">328</a>         {
+<a name="329" href="#329">329</a>             <strong class="jxr_keyword">char</strong> c = modifier.charAt( i );
+<a name="330" href="#330">330</a>             <strong class="jxr_keyword">if</strong> ( ( c &gt;= '0' &amp;&amp; c &lt;= '9' ) || ( c &gt;= 'a' &amp;&amp; c &lt;= 'z' ) || ( c &gt;= 'A' &amp;&amp; c &lt;= 'Z' ) || c == '_'
+<a name="331" href="#331">331</a>                 || c == '-' )
+<a name="332" href="#332">332</a>                 result.append( c );
+<a name="333" href="#333">333</a>             <strong class="jxr_keyword">else</strong>
+<a name="334" href="#334">334</a>                 result.append( '_' );
+<a name="335" href="#335">335</a>         }
+<a name="336" href="#336">336</a>     }
+<a name="337" href="#337">337</a> 
+<a name="338" href="#338">338</a> }
 </pre>
 <hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
 </html>
diff --git a/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-summary.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-summary.html
index 91c03a2..a444a61 100644
--- a/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-summary.html
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-summary.html
@@ -72,6 +72,6 @@
         	</ul>
       	</div>
 				<hr />
-		Copyright &copy; 2006-2012 The Apache Software Foundation. All Rights Reserved.
+		Copyright &copy; 2006-2013 The Apache Software Foundation. All Rights Reserved.
 	</body>
 </html>
\ No newline at end of file
diff --git a/bundleplugin/doc/site/xref/overview-summary.html b/bundleplugin/doc/site/xref/overview-summary.html
index e2b532b..d69f514 100644
--- a/bundleplugin/doc/site/xref/overview-summary.html
+++ b/bundleplugin/doc/site/xref/overview-summary.html
@@ -74,6 +74,6 @@
       	</div>
 		
 		<hr />
-		Copyright &copy; 2006-2012 The Apache Software Foundation. All Rights Reserved.
+		Copyright &copy; 2006-2013 The Apache Software Foundation. All Rights Reserved.
 	</body>
 </html>
\ No newline at end of file