diff --git a/bundleplugin/doc/site/ant-mojo.html b/bundleplugin/doc/site/ant-mojo.html
new file mode 100644
index 0000000..d04d676
--- /dev/null
+++ b/bundleplugin/doc/site/ant-mojo.html
@@ -0,0 +1,370 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - 
+    bundle:ant</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                <li class="collapsed">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                  </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        
+  
+    <div class="section"><h2>bundle:ant<a name="bundle:ant"></a></h2>
+      <p><b>Full name</b>:</p>
+      <p>org.apache.felix:maven-bundle-plugin:2.3.5:ant</p>
+      <p><b>Description</b>:</p>
+      <div>Generate Ant script to create the bundle (you should run ant:ant
+first).</div>
+      <p><b>Attributes</b>:</p>
+      <ul>
+        <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>
+      </ul>
+      <div class="section"><h3>Required Parameters<a name="Required_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </tr>
+          <tr class="b">
+            <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>
+          </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>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </tr>
+          <tr class="b">
+            <td><b><a href="#archive">archive</a></b></td>
+            <td><tt>MavenArchiveConfiguration</tt></td>
+            <td><tt>-</tt></td>
+            <td>The archive configuration to use.<br /></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 to be installed. For example,
+&quot;jdk14&quot;. Defaults to none which means this is the project's main
+bundle.<br /></td>
+          </tr>
+          <tr class="b">
+            <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>
+          </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>
+          </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>
+          </tr>
+          <tr class="a">
+            <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">
+            <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>
+          </tr>
+          <tr class="a">
+            <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
+            <td><tt>List</tt></td>
+            <td><tt>-</tt></td>
+            <td>Project types which this plugin supports.<br /></td>
+          </tr>
+          <tr class="b">
+            <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>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Parameter Details<a name="Parameter_Details"></a></h3>
+        <p><b><a name="archive">archive</a>:</b></p>
+        <div>The archive configuration to use.</div>
+        <ul>
+          <li><b>Type</b>: <tt>org.apache.maven.archiver.MavenArchiveConfiguration</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="buildDirectory">buildDirectory</a>:</b></p>
+        <div>The directory for the generated JAR.</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>${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
+bundle.</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="dumpClasspath">dumpClasspath</a>:</b></p>
+        <div>File where the BND class-path 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>${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>
+        </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>
+        </ul><hr /><p><b><a name="instructions">instructions</a>:</b></p>
+        <div>The BND instructions for the bundle.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.util.Map</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="manifestLocation">manifestLocation</a>:</b></p>
+        <div>Directory where the manifest will be written</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>${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>
+        </ul><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
+        <div>Project types which this plugin supports.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.util.List</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="unpackBundle">unpackBundle</a>:</b></p>
+        <div>When true, unpack the bundle contents to the outputDirectory</div>
+        <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>
+        </ul>
+      </div>
+    </div>
+  
+
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/bundle-mojo.html b/bundleplugin/doc/site/bundle-mojo.html
new file mode 100644
index 0000000..4dbbac1
--- /dev/null
+++ b/bundleplugin/doc/site/bundle-mojo.html
@@ -0,0 +1,369 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - 
+    bundle:bundle</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                <li class="collapsed">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                  </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        
+  
+    <div class="section"><h2>bundle:bundle<a name="bundle:bundle"></a></h2>
+      <p><b>Full name</b>:</p>
+      <p>org.apache.felix:maven-bundle-plugin:2.3.5:bundle</p>
+      <p><b>Description</b>:</p>
+      <div>Create an OSGi bundle from Maven project</div>
+      <p><b>Attributes</b>:</p>
+      <ul>
+        <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>
+      </ul>
+      <div class="section"><h3>Required Parameters<a name="Required_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </tr>
+          <tr class="b">
+            <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>
+          </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>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </tr>
+          <tr class="b">
+            <td><b><a href="#archive">archive</a></b></td>
+            <td><tt>MavenArchiveConfiguration</tt></td>
+            <td><tt>-</tt></td>
+            <td>The archive configuration to use.<br /></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 to be installed. For example,
+&quot;jdk14&quot;. Defaults to none which means this is the project's main
+bundle.<br /></td>
+          </tr>
+          <tr class="b">
+            <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>
+          </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>
+          </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>
+          </tr>
+          <tr class="a">
+            <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">
+            <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>
+          </tr>
+          <tr class="a">
+            <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
+            <td><tt>List</tt></td>
+            <td><tt>-</tt></td>
+            <td>Project types which this plugin supports.<br /></td>
+          </tr>
+          <tr class="b">
+            <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>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Parameter Details<a name="Parameter_Details"></a></h3>
+        <p><b><a name="archive">archive</a>:</b></p>
+        <div>The archive configuration to use.</div>
+        <ul>
+          <li><b>Type</b>: <tt>org.apache.maven.archiver.MavenArchiveConfiguration</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="buildDirectory">buildDirectory</a>:</b></p>
+        <div>The directory for the generated JAR.</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>${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
+bundle.</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="dumpClasspath">dumpClasspath</a>:</b></p>
+        <div>File where the BND class-path 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>${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>
+        </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>
+        </ul><hr /><p><b><a name="instructions">instructions</a>:</b></p>
+        <div>The BND instructions for the bundle.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.util.Map</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="manifestLocation">manifestLocation</a>:</b></p>
+        <div>Directory where the manifest will be written</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>${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>
+        </ul><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
+        <div>Project types which this plugin supports.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.util.List</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="unpackBundle">unpackBundle</a>:</b></p>
+        <div>When true, unpack the bundle contents to the outputDirectory</div>
+        <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>
+        </ul>
+      </div>
+    </div>
+  
+
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/bundleall-mojo.html b/bundleplugin/doc/site/bundleall-mojo.html
new file mode 100644
index 0000000..e848211
--- /dev/null
+++ b/bundleplugin/doc/site/bundleall-mojo.html
@@ -0,0 +1,409 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - 
+    bundle:bundleall</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                <li class="collapsed">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                  </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        
+  
+    <div class="section"><h2>bundle:bundleall<a name="bundle:bundleall"></a></h2>
+      <p><b>Full name</b>:</p>
+      <p>org.apache.felix:maven-bundle-plugin:2.3.5:bundleall</p>
+      <p><b>This plugin goal has been deprecated</b>:</p>
+      <div>The bundleall goal is no longer supported and may be removed in a
+future release</div>
+      <p><b>Description</b>:</p>
+      <div>Create OSGi bundles from all dependencies in the Maven project</div>
+      <p><b>Attributes</b>:</p>
+      <ul>
+        <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>
+      </ul>
+      <div class="section"><h3>Required Parameters<a name="Required_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </tr>
+          <tr class="b">
+            <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>
+          </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>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </tr>
+          <tr class="b">
+            <td><b><a href="#archive">archive</a></b></td>
+            <td><tt>MavenArchiveConfiguration</tt></td>
+            <td><tt>-</tt></td>
+            <td>The archive configuration to use.<br /></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 to be installed. For example,
+&quot;jdk14&quot;. Defaults to none which means this is the project's main
+bundle.<br /></td>
+          </tr>
+          <tr class="b">
+            <td><b><a href="#depth">depth</a></b></td>
+            <td><tt>int</tt></td>
+            <td><tt>-</tt></td>
+            <td>Process up to some depth<br /></td>
+          </tr>
+          <tr class="a">
+            <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>
+          </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>
+          </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>
+          </tr>
+          <tr class="b">
+            <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">
+            <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">
+            <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>
+          </tr>
+          <tr class="a">
+            <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
+            <td><tt>List</tt></td>
+            <td><tt>-</tt></td>
+            <td>Project types which this plugin supports.<br /></td>
+          </tr>
+          <tr class="b">
+            <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>
+          </tr>
+          <tr class="a">
+            <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>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Parameter Details<a name="Parameter_Details"></a></h3>
+        <p><b><a name="archive">archive</a>:</b></p>
+        <div>The archive configuration to use.</div>
+        <ul>
+          <li><b>Type</b>: <tt>org.apache.maven.archiver.MavenArchiveConfiguration</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="buildDirectory">buildDirectory</a>:</b></p>
+        <div>The directory for the generated JAR.</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>${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
+bundle.</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="depth">depth</a>:</b></p>
+        <div>Process up to some depth</div>
+        <ul>
+          <li><b>Type</b>: <tt>int</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="dumpClasspath">dumpClasspath</a>:</b></p>
+        <div>File where the BND class-path 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>${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>
+        </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>
+        </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>
+        <ul>
+          <li><b>Type</b>: <tt>boolean</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="instructions">instructions</a>:</b></p>
+        <div>The BND instructions for the bundle.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.util.Map</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="manifestLocation">manifestLocation</a>:</b></p>
+        <div>Directory where the manifest will be written</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>${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>
+        </ul><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
+        <div>Project types which this plugin supports.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.util.List</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="unpackBundle">unpackBundle</a>:</b></p>
+        <div>When true, unpack the bundle contents to the outputDirectory</div>
+        <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>
+        </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>Default</b>: <tt>*</tt></li>
+        </ul>
+      </div>
+    </div>
+  
+
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/clean-mojo.html b/bundleplugin/doc/site/clean-mojo.html
new file mode 100644
index 0000000..ca6f111
--- /dev/null
+++ b/bundleplugin/doc/site/clean-mojo.html
@@ -0,0 +1,233 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - 
+    bundle:clean</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                <li class="collapsed">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                  </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        
+  
+    <div class="section"><h2>bundle:clean<a name="bundle:clean"></a></h2>
+      <p><b>Full name</b>:</p>
+      <p>org.apache.felix:maven-bundle-plugin:2.3.5:clean</p>
+      <p><b>Description</b>:</p>
+      <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>
+      </ul>
+      <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </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>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Parameter Details<a name="Parameter_Details"></a></h3>
+        <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>
+        </ul>
+      </div>
+    </div>
+  
+
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/cleanVersions-mojo.html b/bundleplugin/doc/site/cleanVersions-mojo.html
new file mode 100644
index 0000000..012b11f
--- /dev/null
+++ b/bundleplugin/doc/site/cleanVersions-mojo.html
@@ -0,0 +1,233 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - 
+    bundle:cleanVersions</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                <li class="collapsed">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                  </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        
+  
+    <div class="section"><h2>bundle:cleanVersions<a name="bundle:cleanVersions"></a></h2>
+      <p><b>Full name</b>:</p>
+      <p>org.apache.felix:maven-bundle-plugin:2.3.5:cleanVersions</p>
+      <p><b>Description</b>:</p>
+      <div>(no description)</div>
+      <p><b>Attributes</b>:</p>
+      <ul>
+        <li>Requires a Maven project to be executed.</li>
+        <li>The goal is thread-safe and supports parallel builds.</li>
+      </ul>
+      <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </tr>
+          <tr class="b">
+            <td><b><a href="#versions">versions</a></b></td>
+            <td><tt>Map</tt></td>
+            <td><tt>-</tt></td>
+            <td>The BND instructions for the bundle.<br /></td>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Parameter Details<a name="Parameter_Details"></a></h3>
+        <p><b><a name="versions">versions</a>:</b></p>
+        <div>The BND instructions for the bundle.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.util.Map</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul>
+      </div>
+    </div>
+  
+
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/css/maven-base.css b/bundleplugin/doc/site/css/maven-base.css
new file mode 100644
index 0000000..f39e42c
--- /dev/null
+++ b/bundleplugin/doc/site/css/maven-base.css
@@ -0,0 +1,151 @@
+body {
+  margin: 0px;
+  padding: 0px;
+}
+img {
+  border:none;
+}
+table {
+  padding:0px;
+  width: 100%;
+  margin-left: -2px;
+  margin-right: -2px;
+}
+acronym {
+  cursor: help;
+  border-bottom: 1px dotted #feb;
+}
+table.bodyTable th, table.bodyTable td {
+  padding: 2px 4px 2px 4px;
+  vertical-align: top;
+}
+div.clear{
+  clear:both;
+  visibility: hidden;
+}
+div.clear hr{
+  display: none;
+}
+#bannerLeft, #bannerRight {
+  font-size: xx-large;
+  font-weight: bold;
+}
+#bannerLeft img, #bannerRight img {
+  margin: 0px;
+}
+.xleft, #bannerLeft img {
+  float:left;
+}
+.xright, #bannerRight {
+  float:right;
+}
+#banner {
+  padding: 0px;
+}
+#banner img {
+  border: none;
+}
+#breadcrumbs {
+  padding: 3px 10px 3px 10px;
+}
+#leftColumn {
+ width: 170px;
+ float:left;
+ overflow: auto;
+}
+#bodyColumn {
+  margin-right: 1.5em;
+  margin-left: 197px;
+}
+#legend {
+  padding: 8px 0 8px 0;
+}
+#navcolumn {
+  padding: 8px 4px 0 8px;
+}
+#navcolumn h5 {
+  margin: 0;
+  padding: 0;
+  font-size: small;
+}
+#navcolumn ul {
+  margin: 0;
+  padding: 0;
+  font-size: small;
+}
+#navcolumn li {
+  list-style-type: none;
+  background-image: none;
+  background-repeat: no-repeat;
+  background-position: 0 0.4em;
+  padding-left: 16px;
+  list-style-position: outside;
+  line-height: 1.2em;
+  font-size: smaller;
+}
+#navcolumn li.expanded {
+  background-image: url(../images/expanded.gif);
+}
+#navcolumn li.collapsed {
+  background-image: url(../images/collapsed.gif);
+}
+#poweredBy {
+  text-align: center;
+}
+#navcolumn img {
+  margin-top: 10px;
+  margin-bottom: 3px;
+}
+#poweredBy img {
+  display:block;
+  margin: 20px 0 20px 17px;
+}
+#search img {
+    margin: 0px;
+    display: block;
+}
+#search #q, #search #btnG {
+    border: 1px solid #999;
+    margin-bottom:10px;
+}
+#search form {
+    margin: 0px;
+}
+#lastPublished {
+  font-size: x-small;
+}
+.navSection {
+  margin-bottom: 2px;
+  padding: 8px;
+}
+.navSectionHead {
+  font-weight: bold;
+  font-size: x-small;
+}
+.section {
+  padding: 4px;
+}
+#footer {
+  padding: 3px 10px 3px 10px;
+  font-size: x-small;
+}
+#breadcrumbs {
+  font-size: x-small;
+  margin: 0pt;
+}
+.source {
+  padding: 12px;
+  margin: 1em 7px 1em 7px;
+}
+.source pre {
+  margin: 0px;
+  padding: 0px;
+}
+#navcolumn img.imageLink, .imageLink {
+  padding-left: 0px;
+  padding-bottom: 0px;
+  padding-top: 0px;
+  padding-right: 2px;
+  border: 0px;
+  margin: 0px;
+}
diff --git a/bundleplugin/doc/site/css/maven-theme.css b/bundleplugin/doc/site/css/maven-theme.css
new file mode 100644
index 0000000..ec29c89
--- /dev/null
+++ b/bundleplugin/doc/site/css/maven-theme.css
@@ -0,0 +1,141 @@
+body {
+  padding: 0px 0px 10px 0px;
+}
+body, td, select, input, li{
+  font-family: Verdana, Helvetica, Arial, sans-serif;
+  font-size: 13px;
+}
+code{
+  font-family: Courier, monospace;
+  font-size: 13px;
+}
+a {
+  text-decoration: none;
+}
+a:link {
+  color:#36a;
+}
+a:visited  {
+  color:#47a;
+}
+a:active, a:hover {
+  color:#69c;
+}
+#legend li.externalLink {
+  background: url(../images/external.png) left top no-repeat;
+  padding-left: 18px;
+}
+a.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover {
+  background: url(../images/external.png) right center no-repeat;
+  padding-right: 18px;
+}
+#legend li.newWindow {
+  background: url(../images/newwindow.png) left top no-repeat;
+  padding-left: 18px;
+}
+a.newWindow, a.newWindow:link, a.newWindow:visited, a.newWindow:active, a.newWindow:hover {
+  background: url(../images/newwindow.png) right center no-repeat;
+  padding-right: 18px;
+}
+h2 {
+  padding: 4px 4px 4px 6px;
+  border: 1px solid #999;
+  color: #900;
+  background-color: #ddd;
+  font-weight:900;
+  font-size: x-large;
+}
+h3 {
+  padding: 4px 4px 4px 6px;
+  border: 1px solid #aaa;
+  color: #900;
+  background-color: #eee;
+  font-weight: normal;
+  font-size: large;
+}
+h4 {
+  padding: 4px 4px 4px 6px;
+  border: 1px solid #bbb;
+  color: #900;
+  background-color: #fff;
+  font-weight: normal;
+  font-size: large;
+}
+h5 {
+  padding: 4px 4px 4px 6px;
+  color: #900;
+  font-size: normal;
+}
+p {
+  line-height: 1.3em;
+  font-size: small;
+}
+#breadcrumbs {
+  border-top: 1px solid #aaa;
+  border-bottom: 1px solid #aaa;
+  background-color: #ccc;
+}
+#leftColumn {
+  margin: 10px 0 0 5px;
+  border: 1px solid #999;
+  background-color: #eee;
+}
+#navcolumn h5 {
+  font-size: smaller;
+  border-bottom: 1px solid #aaaaaa;
+  padding-top: 2px;
+  color: #000;
+}
+
+table.bodyTable th {
+  color: white;
+  background-color: #bbb;
+  text-align: left;
+  font-weight: bold;
+}
+
+table.bodyTable th, table.bodyTable td {
+  font-size: 1em;
+}
+
+table.bodyTable tr.a {
+  background-color: #ddd;
+}
+
+table.bodyTable tr.b {
+  background-color: #eee;
+}
+
+.source {
+  border: 1px solid #999;
+}
+dl {
+  padding: 4px 4px 4px 6px;
+  border: 1px solid #aaa;
+  background-color: #ffc;
+}
+dt {
+  color: #900;
+}
+#organizationLogo img, #projectLogo img, #projectLogo span{
+  margin: 8px;
+}
+#banner {
+  border-bottom: 1px solid #fff;
+}
+.errormark, .warningmark, .donemark, .infomark {
+  background: url(../images/icon_error_sml.gif) no-repeat;
+}
+
+.warningmark {
+  background-image: url(../images/icon_warning_sml.gif);
+}
+
+.donemark {
+  background-image: url(../images/icon_success_sml.gif);
+}
+
+.infomark {
+  background-image: url(../images/icon_info_sml.gif);
+}
+
diff --git a/bundleplugin/doc/site/css/print.css b/bundleplugin/doc/site/css/print.css
new file mode 100644
index 0000000..f09d546
--- /dev/null
+++ b/bundleplugin/doc/site/css/print.css
@@ -0,0 +1,7 @@
+#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn {
+	display: none !important;
+}
+#bodyColumn, body.docs div.docs {
+	margin: 0 !important;
+	border: none !important
+}
diff --git a/bundleplugin/doc/site/css/site.css b/bundleplugin/doc/site/css/site.css
new file mode 100644
index 0000000..055e7e2
--- /dev/null
+++ b/bundleplugin/doc/site/css/site.css
@@ -0,0 +1 @@
+/* You can override this file with your own styles */
\ No newline at end of file
diff --git a/bundleplugin/doc/site/dependencies.html b/bundleplugin/doc/site/dependencies.html
new file mode 100644
index 0000000..eae9ada
--- /dev/null
+++ b/bundleplugin/doc/site/dependencies.html
@@ -0,0 +1,276 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - Project Dependencies</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                          <li class="expanded">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                    <ul>
+
+                      <li class="none">
+
+                          <a href="index.html" title="About">About</a>
+
+            </li>
+
+                      <li class="none">
+
+            <strong>Dependencies</strong>
+
+          </li>
+
+                      <li class="none">
+
+                          <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="license.html" title="Project License">Project License</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="team-list.html" title="Project Team">Project Team</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="source-repository.html" title="Source Repository">Source Repository</a>
+
+            </li>
+
+              </ul>
+
+        </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </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.43.0</td><td>jar</td><td><a class="externalLink" href="http://www.opensource.org/licenses/apache2.0.php">All files contained in this JAR are licensed under the Apache
+         2.0 license, unless noted differently in their source (see
+         swing2swt).</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.7-SNAPSHOT</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">
+      function toggleDependencyDetail( divId, imgId )
+      {
+        var div = document.getElementById( divId );
+        var img = document.getElementById( imgId );
+        if( div.style.display == '' )
+        {
+          div.style.display = 'none';
+          img.src='./images/icon_info_sml.gif';
+        }
+        else
+        {
+          div.style.display = '';
+          img.src='./images/close.gif';
+        }
+      }
+</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.3.5 <img id="_1982014511" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1166184083', '_1982014511' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1166184083" 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.43.0 (compile) <img id="_314116278" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_355949571', '_314116278' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_355949571" style="display:none"><table border="0" class="bodyTable"><tr class="a"><th>aQute Bundle Tool Library</th></tr><tr class="b"><td><p><b>Description: </b>A library for manipulating and generating bundles</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">All files contained in this JAR are licensed under the Apache
+         2.0 license, unless noted differently in their source (see
+         swing2swt).</a></p></td></tr></table></div></li><li>org.apache.felix:org.apache.felix.bundlerepository:jar:1.6.7-SNAPSHOT (compile) <img id="_19116370" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1677930057', '_19116370' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1677930057" 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="_717996973" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1576671539', '_717996973' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1576671539" 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="_1669205881" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_367733059', '_1669205881' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_367733059" 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="_1897590488" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_447388164', '_1897590488' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_447388164" 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="_1010394741" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1990580786', '_1010394741' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1990580786" 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="_2061930861" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_724386874', '_2061930861' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_724386874" 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="_929650834" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_51187694', '_929650834' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_51187694" 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="_466424831" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1467056165', '_466424831' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1467056165" 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="_32961049" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1662175654', '_32961049' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1662175654" 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="_1480094306" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_598686730', '_1480094306' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_598686730" 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="_849094250" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_539196783', '_849094250' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_539196783" 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="_1763211487" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2032475818', '_1763211487' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2032475818" 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="_1373129714" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_961883882', '_1373129714' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_961883882" 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="_1626076478" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1382943608', '_1626076478' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1382943608" 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="_1211407158" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_118769752', '_1211407158' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_118769752" 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="_1467969357" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1385523409', '_1467969357' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1385523409" 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="_236407633" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_210860658', '_236407633' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_210860658" 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="_1134440054" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_692520916', '_1134440054' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_692520916" 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="_863718237" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_138287351', '_863718237' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_138287351" 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="_109048558" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1278159887', '_109048558' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1278159887" 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="_1389834597" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_372445514', '_1389834597' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_372445514" 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="_942772687" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1367359890', '_942772687' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1367359890" 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="_965487966" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2028165417', '_965487966' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2028165417" 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="_1875042451" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1171141677', '_1875042451' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1171141677" 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="_135864780" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_549090288', '_135864780' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_549090288" 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="_285900613" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1205975998', '_285900613' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1205975998" 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="_1187648295" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2118351205', '_1187648295' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2118351205" 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="_421725650" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1514520282', '_421725650' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1514520282" 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="_1804770917" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_521651220', '_1804770917' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_521651220" 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="_1483806472" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_890666396', '_1483806472' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_890666396" 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="_202783568" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1224919832', '_202783568' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1224919832" 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="_1078734611" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_275975091', '_1078734611' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_275975091" 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="_896750207" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_486934841', '_896750207' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_486934841" 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="_530602812" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_167796755', '_530602812' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_167796755" 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="_1046161011" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_257761106', '_1046161011' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_257761106" 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="_1551369094" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_218703813', '_1551369094' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_218703813" 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="_717916417" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1955669445', '_717916417' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1955669445" 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="_952691018" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_90389832', '_952691018' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_90389832" 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="_775621942" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1936247541', '_775621942' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1936247541" 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="_13831018" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_364573635', '_13831018' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_364573635" 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="_456532977" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1321012172', '_456532977' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1321012172" 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="_1322037830" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1906188691', '_1322037830' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1906188691" 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="_1588254315" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1386459805', '_1588254315' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1386459805" 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="_1668341321" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1288532247', '_1668341321' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1288532247" 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="_1385544610" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1143436760', '_1385544610' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1143436760" 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="_1331331771" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_757168259', '_1331331771' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_757168259" 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="_1971223993" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1535531655', '_1971223993' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1535531655" 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="_492286453" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1130455560', '_492286453' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1130455560" 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="_1619801952" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_250294471', '_1619801952' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_250294471" 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="_1560546732" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_970883958', '_1560546732' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_970883958" 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="_393066777" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1692214524', '_393066777' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1692214524" 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="_145386098" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1908839319', '_145386098' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1908839319" 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="_1828159784" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1361473249', '_1828159784' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1361473249" 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="_1487539957" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_646858476', '_1487539957' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_646858476" 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="_1993525187" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_143955342', '_1993525187' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_143955342" 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="_1268223866" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_135304936', '_1268223866' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_135304936" 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="_1120633392" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_270363627', '_1120633392' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_270363627" 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="_1705322276" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_972460232', '_1705322276' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_972460232" 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="_102724657" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_72500043', '_102724657' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_72500043" 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="_2080062805" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_540198154', '_2080062805' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_540198154" 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="_300527961" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1913562945', '_300527961' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1913562945" 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="_1445102256" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2129733677', '_1445102256' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2129733677" 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="_213717798" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_441287002', '_213717798' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_441287002" 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="_813699282" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_390149676', '_813699282' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_390149676" 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="_1093043612" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_7858953', '_1093043612' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_7858953" 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="_2010731892" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_758394684', '_2010731892' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_758394684" 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="_617021499" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1402293567', '_617021499' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1402293567" 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="_117637062" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_88649030', '_117637062' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_88649030" 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="_706069189" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1018439113', '_706069189' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1018439113" 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="_996536033" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_2055454290', '_996536033' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_2055454290" 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="_2100941692" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_100141940', '_2100941692' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_100141940" 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="_461498582" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_13683687', '_461498582' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_13683687" 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="_1294071128" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_1933345996', '_1294071128' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_1933345996" 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 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>All files contained in this JAR are licensed under the Apache
+         2.0 license, unless noted differently in their source (see
+         swing2swt).: </b>aQute Bundle Tool Library</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.43.0.jar</td><td>663.85 kB</td><td>423</td><td>197</td><td>42</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.7-SNAPSHOT.jar</td><td>164.36 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.10 MB</td><td>3,785</td><td>2,347</td><td>299</td><td>1.5</td><td>40</td></tr><tr class="a"><td>compile: 30</td><td>compile: 2.53 MB</td><td>compile: 2,130</td><td>compile: 1,276</td><td>compile: 203</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.org/maven2">http://repo1.maven.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.43.0</td><td>-</td><td><a class="externalLink" href="http://repo1.maven.org/maven2/biz/aQute/bndlib/1.43.0/bndlib-1.43.0.jar"><img alt="Found at http://repo1.maven.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.org/maven2/classworlds/classworlds/1.1/classworlds-1.1.jar"><img alt="Found at http://repo1.maven.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.org/maven2/com/jcraft/jsch/0.1.27/jsch-0.1.27.jar"><img alt="Found at http://repo1.maven.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.org/maven2/commons-cli/commons-cli/1.0/commons-cli-1.0.jar"><img alt="Found at http://repo1.maven.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.org/maven2/jtidy/jtidy/4aug2000r7-dev/jtidy-4aug2000r7-dev.jar"><img alt="Found at http://repo1.maven.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.org/maven2/junit/junit/4.0/junit-4.0.jar"><img alt="Found at http://repo1.maven.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.7-SNAPSHOT</td><td>-</td><td>-</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.org/maven2/org/apache/maven/maven-archiver/2.4.1/maven-archiver-2.4.1.jar"><img alt="Found at http://repo1.maven.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.org/maven2/org/apache/maven/maven-artifact/2.0.7/maven-artifact-2.0.7.jar"><img alt="Found at http://repo1.maven.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.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.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.org/maven2/org/apache/maven/maven-core/2.0.7/maven-core-2.0.7.jar"><img alt="Found at http://repo1.maven.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.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.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.org/maven2/org/apache/maven/maven-model/2.0.7/maven-model-2.0.7.jar"><img alt="Found at http://repo1.maven.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.org/maven2/org/apache/maven/maven-monitor/2.0.7/maven-monitor-2.0.7.jar"><img alt="Found at http://repo1.maven.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.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.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.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.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.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.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.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.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.org/maven2/org/apache/maven/maven-profile/2.0.7/maven-profile-2.0.7.jar"><img alt="Found at http://repo1.maven.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.org/maven2/org/apache/maven/maven-project/2.0.7/maven-project-2.0.7.jar"><img alt="Found at http://repo1.maven.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.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.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.org/maven2/org/apache/maven/maven-settings/2.0.7/maven-settings-2.0.7.jar"><img alt="Found at http://repo1.maven.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.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.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.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.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.org/maven2/org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.jar"><img alt="Found at http://repo1.maven.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.org/maven2/org/codehaus/plexus/plexus-archiver/1.0/plexus-archiver-1.0.jar"><img alt="Found at http://repo1.maven.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.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.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.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.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.org/maven2/org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.jar"><img alt="Found at http://repo1.maven.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.org/maven2/org/codehaus/plexus/plexus-io/1.0/plexus-io-1.0.jar"><img alt="Found at http://repo1.maven.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.org/maven2/org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.jar"><img alt="Found at http://repo1.maven.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.org/maven2/org/easymock/easymock/2.4/easymock-2.4.jar"><img alt="Found at http://repo1.maven.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.org/maven2/org/mockito/mockito-all/1.7/mockito-all-1.7.jar"><img alt="Found at http://repo1.maven.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.org/maven2/org/osgi/org.osgi.core/4.1.0/org.osgi.core-4.1.0.jar"><img alt="Found at http://repo1.maven.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.org/maven2/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar"><img alt="Found at http://repo1.maven.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>42</td></tr></table></div>
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/deploy-file-mojo.html b/bundleplugin/doc/site/deploy-file-mojo.html
new file mode 100644
index 0000000..3a40db7
--- /dev/null
+++ b/bundleplugin/doc/site/deploy-file-mojo.html
@@ -0,0 +1,418 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - 
+    bundle:deploy-file</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                <li class="collapsed">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                  </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        
+  
+    <div class="section"><h2>bundle:deploy-file<a name="bundle:deploy-file"></a></h2>
+      <p><b>Full name</b>:</p>
+      <p>org.apache.felix:maven-bundle-plugin:2.3.5:deploy-file</p>
+      <p><b>Description</b>:</p>
+      <div>Deploys bundle details to a remote OBR repository (command-line
+goal)</div>
+      <p><b>Attributes</b>:</p>
+      <ul>
+        <li>Binds by default to the lifecycle phase: <tt>deploy</tt>.</li>
+      </ul>
+      <div class="section"><h3>Required Parameters<a name="Required_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </tr>
+          <tr class="b">
+            <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>
+          </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>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </tr>
+          <tr class="b">
+            <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>
+          </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>
+          </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>
+          </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>
+          </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>
+          </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>
+          </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>
+          </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>
+          </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>
+          </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>
+          </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>
+          </tr>
+          <tr class="a">
+            <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
+            <td><tt>List</tt></td>
+            <td><tt>-</tt></td>
+            <td>Project types which this plugin supports.<br /></td>
+          </tr>
+          <tr class="b">
+            <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>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Parameter Details<a name="Parameter_Details"></a></h3>
+        <p><b><a name="artifactId">artifactId</a>:</b></p>
+        <div>ArtifactId 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>${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>
+        </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>
+        </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>
+        </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>
+        </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>
+        </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>
+        </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>
+        </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>
+        </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>
+        </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>
+        </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>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>
+        <ul>
+          <li><b>Type</b>: <tt>java.util.List</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="url">url</a>:</b></p>
+        <div>Remote OBR repository URL, where the bundle details are to be
+uploaded.</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>${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>
+        </ul>
+      </div>
+    </div>
+  
+
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/deploy-mojo.html b/bundleplugin/doc/site/deploy-mojo.html
new file mode 100644
index 0000000..faff7d8
--- /dev/null
+++ b/bundleplugin/doc/site/deploy-mojo.html
@@ -0,0 +1,319 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - 
+    bundle:deploy</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                <li class="collapsed">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                  </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        
+  
+    <div class="section"><h2>bundle:deploy<a name="bundle:deploy"></a></h2>
+      <p><b>Full name</b>:</p>
+      <p>org.apache.felix:maven-bundle-plugin:2.3.5:deploy</p>
+      <p><b>Description</b>:</p>
+      <div>Deploys bundle details to a remote OBR repository (life-cycle goal)</div>
+      <p><b>Attributes</b>:</p>
+      <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>
+      </ul>
+      <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </tr>
+          <tr class="b">
+            <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>
+          </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>
+          </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>
+          </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>
+          </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>
+          </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>
+          </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>
+          </tr>
+          <tr class="a">
+            <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
+            <td><tt>List</tt></td>
+            <td><tt>-</tt></td>
+            <td>Project types which this plugin supports.<br /></td>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Parameter Details<a name="Parameter_Details"></a></h3>
+        <p><b><a name="altDeploymentRepository">altDeploymentRepository</a>:</b></p>
+        <div>Alternative 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>${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>
+        </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>
+        </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>
+        </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>
+        </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>
+        </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>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>
+        <ul>
+          <li><b>Type</b>: <tt>java.util.List</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul>
+      </div>
+    </div>
+  
+
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/images/close.gif b/bundleplugin/doc/site/images/close.gif
new file mode 100644
index 0000000..1c26bbc
--- /dev/null
+++ b/bundleplugin/doc/site/images/close.gif
Binary files differ
diff --git a/bundleplugin/doc/site/images/collapsed.gif b/bundleplugin/doc/site/images/collapsed.gif
new file mode 100644
index 0000000..6e71084
--- /dev/null
+++ b/bundleplugin/doc/site/images/collapsed.gif
Binary files differ
diff --git a/bundleplugin/doc/site/images/expanded.gif b/bundleplugin/doc/site/images/expanded.gif
new file mode 100644
index 0000000..0fef3d8
--- /dev/null
+++ b/bundleplugin/doc/site/images/expanded.gif
Binary files differ
diff --git a/bundleplugin/doc/site/images/external.png b/bundleplugin/doc/site/images/external.png
new file mode 100644
index 0000000..3f999fc
--- /dev/null
+++ b/bundleplugin/doc/site/images/external.png
Binary files differ
diff --git a/bundleplugin/doc/site/images/icon_error_sml.gif b/bundleplugin/doc/site/images/icon_error_sml.gif
new file mode 100644
index 0000000..61132ef
--- /dev/null
+++ b/bundleplugin/doc/site/images/icon_error_sml.gif
Binary files differ
diff --git a/bundleplugin/doc/site/images/icon_info_sml.gif b/bundleplugin/doc/site/images/icon_info_sml.gif
new file mode 100644
index 0000000..c6cb9ad
--- /dev/null
+++ b/bundleplugin/doc/site/images/icon_info_sml.gif
Binary files differ
diff --git a/bundleplugin/doc/site/images/icon_success_sml.gif b/bundleplugin/doc/site/images/icon_success_sml.gif
new file mode 100644
index 0000000..52e85a4
--- /dev/null
+++ b/bundleplugin/doc/site/images/icon_success_sml.gif
Binary files differ
diff --git a/bundleplugin/doc/site/images/icon_warning_sml.gif b/bundleplugin/doc/site/images/icon_warning_sml.gif
new file mode 100644
index 0000000..873bbb5
--- /dev/null
+++ b/bundleplugin/doc/site/images/icon_warning_sml.gif
Binary files differ
diff --git a/bundleplugin/doc/site/images/logos/build-by-maven-black.png b/bundleplugin/doc/site/images/logos/build-by-maven-black.png
new file mode 100644
index 0000000..919fd0f
--- /dev/null
+++ b/bundleplugin/doc/site/images/logos/build-by-maven-black.png
Binary files differ
diff --git a/bundleplugin/doc/site/images/logos/build-by-maven-white.png b/bundleplugin/doc/site/images/logos/build-by-maven-white.png
new file mode 100644
index 0000000..7d44c9c
--- /dev/null
+++ b/bundleplugin/doc/site/images/logos/build-by-maven-white.png
Binary files differ
diff --git a/bundleplugin/doc/site/images/logos/maven-feather.png b/bundleplugin/doc/site/images/logos/maven-feather.png
new file mode 100644
index 0000000..b5ada83
--- /dev/null
+++ b/bundleplugin/doc/site/images/logos/maven-feather.png
Binary files differ
diff --git a/bundleplugin/doc/site/images/newwindow.png b/bundleplugin/doc/site/images/newwindow.png
new file mode 100644
index 0000000..6287f72
--- /dev/null
+++ b/bundleplugin/doc/site/images/newwindow.png
Binary files differ
diff --git a/bundleplugin/doc/site/index-mojo.html b/bundleplugin/doc/site/index-mojo.html
new file mode 100644
index 0000000..fa53faf
--- /dev/null
+++ b/bundleplugin/doc/site/index-mojo.html
@@ -0,0 +1,254 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - 
+    bundle:index</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                <li class="collapsed">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                  </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        
+  
+    <div class="section"><h2>bundle:index<a name="bundle:index"></a></h2>
+      <p><b>Full name</b>:</p>
+      <p>org.apache.felix:maven-bundle-plugin:2.3.5:index</p>
+      <p><b>Description</b>:</p>
+      <div>Index the content of a maven repository using OBR</div>
+      <p><b>Attributes</b>:</p>
+      <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </tr>
+          <tr class="b">
+            <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>
+          </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>
+          </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>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Parameter Details<a name="Parameter_Details"></a></h3>
+        <p><b><a name="mavenRepository">mavenRepository</a>:</b></p>
+        <div>The repository to index</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>${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>
+        </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>
+        </ul>
+      </div>
+    </div>
+  
+
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/index.html b/bundleplugin/doc/site/index.html
new file mode 100644
index 0000000..4262a80
--- /dev/null
+++ b/bundleplugin/doc/site/index.html
@@ -0,0 +1,244 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - Introduction</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <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="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+            <strong>Introduction</strong>
+
+          </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                          <li class="expanded">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                    <ul>
+
+                      <li class="none">
+
+            <strong>About</strong>
+
+          </li>
+
+                      <li class="none">
+
+                          <a href="dependencies.html" title="Dependencies">Dependencies</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="license.html" title="Project License">Project License</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="team-list.html" title="Project Team">Project Team</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="source-repository.html" title="Source Repository">Source Repository</a>
+
+            </li>
+
+              </ul>
+
+        </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        <!-- Licensed to the Apache Software Foundation (ASF) under one --><!-- or more contributor license agreements.  See the NOTICE file --><!-- distributed with this work for additional information --><!-- regarding copyright ownership.  The ASF licenses this file --><!-- to you under the Apache License, Version 2.0 (the --><!-- "License"); you may not use this file except in compliance --><!-- with the License.  You may obtain a copy of the License at --><!--  --><!-- http://www.apache.org/licenses/LICENSE-2.0 --><!--  --><!-- Unless required by applicable law or agreed to in writing, --><!-- software distributed under the License is distributed on an --><!-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY --><!-- KIND, either express or implied.  See the License for the --><!-- specific language governing permissions and limitations --><!-- under the License. --><!-- NOTE: For help with the syntax of this file, see: --><!-- http://maven.apache.org/doxia/references/apt-format.html --><div class="section"><h2>Maven Bundle Plugin<a name="Maven_Bundle_Plugin"></a></h2><p>This Maven 2 plugin is based on the <a class="externalLink" href="http://www.aqute.biz/Bnd/Bnd/">BND</a> tool from Peter Kriens. The way BND works is by treating your project as a big collection of classes (e.g., project code, dependencies, and the class path). The way you create a bundle with BND is to tell it the content of the bundle's JAR file as a subset of the available classes. This plugin wraps BND to make it work specifically with the Maven 2 project structure and to provide it with reasonable default behavior for Maven 2 projects.</p><div class="section"><h3>Goals Overview<a name="Goals_Overview"></a></h3><p>General Information about the goals.</p><ul><li><a href="./bundle-mojo.html">bundle:bundle</a> Create an OSGi bundle from Maven project. (life-cycle goal)</li><li><a href="./manifest-mojo.html">bundle:manifest</a> Generate an OSGi manifest for this project.</li><li><a href="./cleanVersions-mojo.html">bundle:cleanVersions</a> Convert a group of versions to OSGi format.</li><li><a href="./instructions-mojo.html">bundle:instructions</a> Generate BND instructions for this project.</li><li><a href="./install-mojo.html">bundle:install</a> Installs bundle details in the local OBR repository. (life-cycle goal)</li><li><a href="./deploy-mojo.html">bundle:deploy</a> Deploys bundle details to a remote OBR repository. (life-cycle goal)</li><li><a href="./index-mojo.html">bundle:index</a> Index the content of a maven repository using OBR.</li><li><a href="./install-file-mojo.html">bundle:install-file</a> Installs bundle details in the local OBR repository. (command-line goal)</li><li><a href="./deploy-file-mojo.html">bundle:deploy-file</a> Deploys bundle details to a remote OBR repository. (command-line goal)</li><li><a href="./clean-mojo.html">bundle:clean</a> Clean a local OBR repository by finding and removing missing resources.</li><li><a href="./remote-clean-mojo.html">bundle:remote-clean</a> Clean a remote OBR repository by finding and removing missing resources.</li><li><a href="./ant-mojo.html">bundle:ant</a> Generate Ant script to create the bundle. (you should run ant:ant first)</li></ul></div><div class="section"><h3>Usage<a name="Usage"></a></h3><p>General instructions on how to use the Maven Bundle Plugin can be found on the <a class="externalLink" href="http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html">wiki page</a>. Some more specific use cases are described in the examples given below.</p><p>In case you still have questions regarding the plugin's usage, please have a look at the <a class="externalLink" href="http://felix.apache.org/site/apache-felix-bundle-plugin-faq.html">FAQ</a> and feel free to contact the <a class="externalLink" href="http://felix.apache.org/site/mailinglists.html">user mailing list</a>. The posts to the mailing list are archived and could already contain the answer to your question as part of an older thread. Hence, it is also worth browsing/searching the <a class="externalLink" href="http://www.mail-archive.com/users@felix.apache.org/">mail archive</a>.</p><p>If you feel like the plugin is missing a feature or has a defect, you can fill a feature request or bug report in our <a href="./issue-tracking.html">issue tracker</a>. When creating a new issue, please provide a comprehensive description of your concern. Especially for fixing bugs it is crucial that the developers can reproduce your problem. For this reason, entire debug logs, POMs or most preferably little demo projects attached to the issue are very much appreciated. Of course, patches are welcome, too. Contributors can check out the project from our <a href="./source-repository.html">source repository</a> and will find supplementary information in the <a class="externalLink" href="http://felix.apache.org/site/development.html">Apache Felix developers guide</a>. </p></div><div class="section"><h3>Examples<a name="Examples"></a></h3><p>To provide you with better understanding on some usages of the Maven Bundle Plugin, you can take a look into the following examples:</p><ul><li>Examples coming soon!</li></ul></div></div>
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/install-file-mojo.html b/bundleplugin/doc/site/install-file-mojo.html
new file mode 100644
index 0000000..f4473c3
--- /dev/null
+++ b/bundleplugin/doc/site/install-file-mojo.html
@@ -0,0 +1,345 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - 
+    bundle:install-file</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                <li class="collapsed">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                  </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        
+  
+    <div class="section"><h2>bundle:install-file<a name="bundle:install-file"></a></h2>
+      <p><b>Full name</b>:</p>
+      <p>org.apache.felix:maven-bundle-plugin:2.3.5:install-file</p>
+      <p><b>Description</b>:</p>
+      <div>Installs bundle details in the local OBR repository (command-line
+goal)</div>
+      <p><b>Attributes</b>:</p>
+      <ul>
+        <li>Binds by default to the lifecycle phase: <tt>install</tt>.</li>
+      </ul>
+      <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </tr>
+          <tr class="b">
+            <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>
+          </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>
+          </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>
+          </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>
+          </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>
+          </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>
+          </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>
+          </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>
+          </tr>
+          <tr class="b">
+            <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
+            <td><tt>List</tt></td>
+            <td><tt>-</tt></td>
+            <td>Project types which this plugin supports.<br /></td>
+          </tr>
+          <tr class="a">
+            <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>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Parameter Details<a name="Parameter_Details"></a></h3>
+        <p><b><a name="artifactId">artifactId</a>:</b></p>
+        <div>ArtifactId 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>${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>
+        </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>
+        </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>
+        </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>
+        </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>
+        </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>
+        </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>
+        </ul><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
+        <div>Project types which this plugin supports.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.util.List</tt></li>
+          <li><b>Required</b>: <tt>No</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>
+        </ul>
+      </div>
+    </div>
+  
+
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/install-mojo.html b/bundleplugin/doc/site/install-mojo.html
new file mode 100644
index 0000000..ba450c7
--- /dev/null
+++ b/bundleplugin/doc/site/install-mojo.html
@@ -0,0 +1,247 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - 
+    bundle:install</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                <li class="collapsed">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                  </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        
+  
+    <div class="section"><h2>bundle:install<a name="bundle:install"></a></h2>
+      <p><b>Full name</b>:</p>
+      <p>org.apache.felix:maven-bundle-plugin:2.3.5:install</p>
+      <p><b>Description</b>:</p>
+      <div>Installs bundle details in the local OBR repository (life-cycle
+goal)</div>
+      <p><b>Attributes</b>:</p>
+      <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>
+      </ul>
+      <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </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>
+          </tr>
+          <tr class="a">
+            <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
+            <td><tt>List</tt></td>
+            <td><tt>-</tt></td>
+            <td>Project types which this plugin supports.<br /></td>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Parameter Details<a name="Parameter_Details"></a></h3>
+        <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>
+        </ul><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
+        <div>Project types which this plugin supports.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.util.List</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul>
+      </div>
+    </div>
+  
+
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/instructions-mojo.html b/bundleplugin/doc/site/instructions-mojo.html
new file mode 100644
index 0000000..7a14e92
--- /dev/null
+++ b/bundleplugin/doc/site/instructions-mojo.html
@@ -0,0 +1,369 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - 
+    bundle:instructions</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                <li class="collapsed">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                  </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        
+  
+    <div class="section"><h2>bundle:instructions<a name="bundle:instructions"></a></h2>
+      <p><b>Full name</b>:</p>
+      <p>org.apache.felix:maven-bundle-plugin:2.3.5:instructions</p>
+      <p><b>Description</b>:</p>
+      <div>Generate BND instructions for this project</div>
+      <p><b>Attributes</b>:</p>
+      <ul>
+        <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>
+      </ul>
+      <div class="section"><h3>Required Parameters<a name="Required_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </tr>
+          <tr class="b">
+            <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>
+          </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>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </tr>
+          <tr class="b">
+            <td><b><a href="#archive">archive</a></b></td>
+            <td><tt>MavenArchiveConfiguration</tt></td>
+            <td><tt>-</tt></td>
+            <td>The archive configuration to use.<br /></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 to be installed. For example,
+&quot;jdk14&quot;. Defaults to none which means this is the project's main
+bundle.<br /></td>
+          </tr>
+          <tr class="b">
+            <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>
+          </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>
+          </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>
+          </tr>
+          <tr class="a">
+            <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">
+            <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>
+          </tr>
+          <tr class="a">
+            <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
+            <td><tt>List</tt></td>
+            <td><tt>-</tt></td>
+            <td>Project types which this plugin supports.<br /></td>
+          </tr>
+          <tr class="b">
+            <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>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Parameter Details<a name="Parameter_Details"></a></h3>
+        <p><b><a name="archive">archive</a>:</b></p>
+        <div>The archive configuration to use.</div>
+        <ul>
+          <li><b>Type</b>: <tt>org.apache.maven.archiver.MavenArchiveConfiguration</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="buildDirectory">buildDirectory</a>:</b></p>
+        <div>The directory for the generated JAR.</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>${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
+bundle.</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="dumpClasspath">dumpClasspath</a>:</b></p>
+        <div>File where the BND class-path 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>${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>
+        </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>
+        </ul><hr /><p><b><a name="instructions">instructions</a>:</b></p>
+        <div>The BND instructions for the bundle.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.util.Map</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="manifestLocation">manifestLocation</a>:</b></p>
+        <div>Directory where the manifest will be written</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>${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>
+        </ul><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
+        <div>Project types which this plugin supports.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.util.List</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="unpackBundle">unpackBundle</a>:</b></p>
+        <div>When true, unpack the bundle contents to the outputDirectory</div>
+        <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>
+        </ul>
+      </div>
+    </div>
+  
+
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/issue-tracking.html b/bundleplugin/doc/site/issue-tracking.html
new file mode 100644
index 0000000..d387e25
--- /dev/null
+++ b/bundleplugin/doc/site/issue-tracking.html
@@ -0,0 +1,240 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - Issue Tracking</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                          <li class="expanded">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                    <ul>
+
+                      <li class="none">
+
+                          <a href="index.html" title="About">About</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="dependencies.html" title="Dependencies">Dependencies</a>
+
+            </li>
+
+                      <li class="none">
+
+            <strong>Issue Tracking</strong>
+
+          </li>
+
+                      <li class="none">
+
+                          <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="license.html" title="Project License">Project License</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="team-list.html" title="Project Team">Project Team</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="source-repository.html" title="Source Repository">Source Repository</a>
+
+            </li>
+
+              </ul>
+
+        </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        <div class="section"><h2>Overview<a name="Overview"></a></h2><a name="Overview"></a><p>This project uses <a class="externalLink" href="http://www.atlassian.com/software/jira">JIRA</a> a J2EE-based, issue tracking and project management application.</p></div><div class="section"><h2>Issue Tracking<a name="Issue_Tracking"></a></h2><a name="Issue_Tracking"></a><p>Issues, bugs, and feature requests should be submitted to the following issue tracking system for this project.</p><div class="source"><pre><a class="externalLink" href="http://issues.apache.org/jira/browse/FELIX">http://issues.apache.org/jira/browse/FELIX</a></pre></div></div>
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/jira-report.html b/bundleplugin/doc/site/jira-report.html
new file mode 100644
index 0000000..db00ad0
--- /dev/null
+++ b/bundleplugin/doc/site/jira-report.html
@@ -0,0 +1,228 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - JIRA Report</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+            <strong>Release Notes</strong>
+
+          </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                <li class="collapsed">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                  </li>
+
+                                                                                                                                                      <li class="expanded">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                    <ul>
+
+                      <li class="none">
+
+            <strong>JIRA Report</strong>
+
+          </li>
+
+                      <li class="none">
+
+                          <a href="plugin-info.html" title="Plugin Documentation">Plugin Documentation</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="xref/index.html" title="Source Xref">Source Xref</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="surefire-report.html" title="Surefire Report">Surefire Report</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="xref-test/index.html" title="Test Source Xref">Test Source Xref</a>
+
+            </li>
+
+              </ul>
+
+        </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </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-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>Resolved</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>Resolved</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-2820">FELIX-2820</a></td><td>Provide a default value when using &lt;_wab/&gt;</td><td>Resolved</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><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>Resolved</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><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="b"><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="a"><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="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>Resolved</td><td>Fixed</td><td>Unassigned</td></tr><tr class="a"><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>Resolved</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><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="a"><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="b"><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="a"><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>Resolved</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><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>Resolved</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><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>Resolved</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2427">FELIX-2427</a></td><td>maven site crashes</td><td>Resolved</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><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>Resolved</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><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="a"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-2210">FELIX-2210</a></td><td>Bogus import entries</td><td>Resolved</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><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>Resolved</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><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="b"><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="a"><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="b"><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="a"><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="b"><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>Resolved</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>Resolved</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>Resolved</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>Resolved</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><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>Resolved</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="b"><td><a class="externalLink" href="https://issues.apache.org/jira/browse/FELIX-1734">FELIX-1734</a></td><td>The _donotcopy is ignored</td><td>Resolved</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><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="b"><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>Resolved</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><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="b"><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="a"><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="b"><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="a"><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="b"><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="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-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>Resolved</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-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="b"><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="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>Resolved</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-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="b"><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="a"><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="b"><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="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-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="b"><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="a"><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="b"><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>Resolved</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><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="b"><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="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-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="a"><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="b"><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="a"><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="b"><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="a"><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="b"><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="a"><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="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-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="a"><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="b"><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="a"><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="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-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-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="a"><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="b"><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="a"><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="b"><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="a"><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="b"><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="a"><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="b"><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="a"><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="b"><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="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-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-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="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-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="b"><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="a"><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="b"><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>Resolved</td><td>Fixed</td><td>Stuart McCulloch</td></tr><tr class="a"><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>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/license.html b/bundleplugin/doc/site/license.html
new file mode 100644
index 0000000..f61eb26
--- /dev/null
+++ b/bundleplugin/doc/site/license.html
@@ -0,0 +1,442 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - Project License</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                          <li class="expanded">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                    <ul>
+
+                      <li class="none">
+
+                          <a href="index.html" title="About">About</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="dependencies.html" title="Dependencies">Dependencies</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
+
+            </li>
+
+                      <li class="none">
+
+            <strong>Project License</strong>
+
+          </li>
+
+                      <li class="none">
+
+                          <a href="team-list.html" title="Project Team">Project Team</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="source-repository.html" title="Source Repository">Source Repository</a>
+
+            </li>
+
+              </ul>
+
+        </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        <div class="section"><h2>Overview<a name="Overview"></a></h2><a name="Overview"></a><p>Typically the licenses listed for the project are that of the project itself, and not of dependencies.</p></div><div class="section"><h2>Project License<a name="Project_License"></a></h2><a name="Project_License"></a><div class="section"><h3>The Apache Software License, Version 2.0<a name="The_Apache_Software_License_Version_2.0"></a></h3><a name="The_Apache_Software_License_Version_2.0"></a><div class="source"><pre>
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      &quot;License&quot; shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      &quot;Licensor&quot; shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      &quot;Legal Entity&quot; shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      &quot;control&quot; means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      &quot;You&quot; (or &quot;Your&quot;) shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      &quot;Source&quot; form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      &quot;Object&quot; form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      &quot;Work&quot; shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      &quot;Derivative Works&quot; shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      &quot;Contribution&quot; shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, &quot;submitted&quot;
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as &quot;Not a Contribution.&quot;
+
+      &quot;Contributor&quot; shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a &quot;NOTICE&quot; text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an &quot;AS IS&quot; BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets &quot;[]&quot;
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same &quot;printed page&quot; as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+</pre></div></div></div>
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/mail-lists.html b/bundleplugin/doc/site/mail-lists.html
new file mode 100644
index 0000000..bcd2eed
--- /dev/null
+++ b/bundleplugin/doc/site/mail-lists.html
@@ -0,0 +1,240 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - Project Mailing Lists</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                          <li class="expanded">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                    <ul>
+
+                      <li class="none">
+
+                          <a href="index.html" title="About">About</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="dependencies.html" title="Dependencies">Dependencies</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
+
+            </li>
+
+                      <li class="none">
+
+            <strong>Mailing Lists</strong>
+
+          </li>
+
+                      <li class="none">
+
+                          <a href="license.html" title="Project License">Project License</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="team-list.html" title="Project Team">Project Team</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="source-repository.html" title="Source Repository">Source Repository</a>
+
+            </li>
+
+              </ul>
+
+        </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        <div class="section"><h2>Project Mailing Lists<a name="Project_Mailing_Lists"></a></h2><a name="Project_Mailing_Lists"></a><p>These are the mailing lists that have been established for this project. For each list, there is a subscribe, unsubscribe, and an archive link.</p><table border="0" class="bodyTable"><tr class="a"><th>Name</th><th>Subscribe</th><th>Unsubscribe</th><th>Post</th><th>Archive</th></tr><tr class="b"><td>Felix Dev</td><td><a class="externalLink" href="mailto:dev-subscribe@felix.apache.org">Subscribe</a></td><td><a class="externalLink" href="mailto:dev-unsubscribe@felix.apache.org">Unsubscribe</a></td><td>-</td><td><a class="externalLink" href="http://www.mail-archive.com/dev%40felix.apache.org/">www.mail-archive.com</a></td></tr><tr class="a"><td>Felix Commits</td><td><a class="externalLink" href="mailto:commits-subscribe@felix.apache.org">Subscribe</a></td><td><a class="externalLink" href="mailto:commits-unsubscribe@felix.apache.org">Unsubscribe</a></td><td>-</td><td><a class="externalLink" href="http://www.mail-archive.com/commits%40felix.apache.org/">www.mail-archive.com</a></td></tr></table></div>
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/manifest-mojo.html b/bundleplugin/doc/site/manifest-mojo.html
new file mode 100644
index 0000000..c3dcdc4
--- /dev/null
+++ b/bundleplugin/doc/site/manifest-mojo.html
@@ -0,0 +1,369 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - 
+    bundle:manifest</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                <li class="collapsed">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                  </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        
+  
+    <div class="section"><h2>bundle:manifest<a name="bundle:manifest"></a></h2>
+      <p><b>Full name</b>:</p>
+      <p>org.apache.felix:maven-bundle-plugin:2.3.5:manifest</p>
+      <p><b>Description</b>:</p>
+      <div>Generate an OSGi manifest for this project</div>
+      <p><b>Attributes</b>:</p>
+      <ul>
+        <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>
+      </ul>
+      <div class="section"><h3>Required Parameters<a name="Required_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </tr>
+          <tr class="b">
+            <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>
+          </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>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </tr>
+          <tr class="b">
+            <td><b><a href="#archive">archive</a></b></td>
+            <td><tt>MavenArchiveConfiguration</tt></td>
+            <td><tt>-</tt></td>
+            <td>The archive configuration to use.<br /></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 to be installed. For example,
+&quot;jdk14&quot;. Defaults to none which means this is the project's main
+bundle.<br /></td>
+          </tr>
+          <tr class="b">
+            <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>
+          </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>
+          </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>
+          </tr>
+          <tr class="a">
+            <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">
+            <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>
+          </tr>
+          <tr class="a">
+            <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
+            <td><tt>List</tt></td>
+            <td><tt>-</tt></td>
+            <td>Project types which this plugin supports.<br /></td>
+          </tr>
+          <tr class="b">
+            <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>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Parameter Details<a name="Parameter_Details"></a></h3>
+        <p><b><a name="archive">archive</a>:</b></p>
+        <div>The archive configuration to use.</div>
+        <ul>
+          <li><b>Type</b>: <tt>org.apache.maven.archiver.MavenArchiveConfiguration</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="buildDirectory">buildDirectory</a>:</b></p>
+        <div>The directory for the generated JAR.</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>${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
+bundle.</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="dumpClasspath">dumpClasspath</a>:</b></p>
+        <div>File where the BND class-path 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>${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>
+        </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>
+        </ul><hr /><p><b><a name="instructions">instructions</a>:</b></p>
+        <div>The BND instructions for the bundle.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.util.Map</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="manifestLocation">manifestLocation</a>:</b></p>
+        <div>Directory where the manifest will be written</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>${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>
+        </ul><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
+        <div>Project types which this plugin supports.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.util.List</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="unpackBundle">unpackBundle</a>:</b></p>
+        <div>When true, unpack the bundle contents to the outputDirectory</div>
+        <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>
+        </ul>
+      </div>
+    </div>
+  
+
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/plugin-info.html b/bundleplugin/doc/site/plugin-info.html
new file mode 100644
index 0000000..5b471d3
--- /dev/null
+++ b/bundleplugin/doc/site/plugin-info.html
@@ -0,0 +1,261 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - Plugin Documentation</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+            <strong>Goals</strong>
+
+          </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                <li class="collapsed">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                  </li>
+
+                                                                                                                                                      <li class="expanded">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                    <ul>
+
+                      <li class="none">
+
+                          <a href="jira-report.html" title="JIRA Report">JIRA Report</a>
+
+            </li>
+
+                      <li class="none">
+
+            <strong>Plugin Documentation</strong>
+
+          </li>
+
+                      <li class="none">
+
+                          <a href="xref/index.html" title="Source Xref">Source Xref</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="surefire-report.html" title="Surefire Report">Surefire Report</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="xref-test/index.html" title="Test Source Xref">Test Source Xref</a>
+
+            </li>
+
+              </ul>
+
+        </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </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
+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;
+  ...
+  &lt;build&gt;
+    &lt;!-- To define the plugin version in your parent POM --&gt;
+    &lt;pluginManagement&gt;
+      &lt;plugins&gt;
+        &lt;plugin&gt;
+          &lt;groupId&gt;org.apache.felix&lt;/groupId&gt;
+          &lt;artifactId&gt;maven-bundle-plugin&lt;/artifactId&gt;
+          &lt;version&gt;2.3.5&lt;/version&gt;
+        &lt;/plugin&gt;
+        ...
+      &lt;/plugins&gt;
+    &lt;/pluginManagement&gt;
+    &lt;!-- To use the plugin goals in your POM or parent POM --&gt;
+    &lt;plugins&gt;
+      &lt;plugin&gt;
+        &lt;groupId&gt;org.apache.felix&lt;/groupId&gt;
+        &lt;artifactId&gt;maven-bundle-plugin&lt;/artifactId&gt;
+        &lt;version&gt;2.3.5&lt;/version&gt;
+      &lt;/plugin&gt;
+      ...
+    &lt;/plugins&gt;
+  &lt;/build&gt;
+  ...
+&lt;/project&gt;
+</pre></div><p>For more information, see <a class="externalLink" href="http://maven.apache.org/guides/mini/guide-configuring-plugins.html">&quot;Guide to Configuring Plug-ins&quot;</a></p></div></div>
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/project-info.html b/bundleplugin/doc/site/project-info.html
new file mode 100644
index 0000000..cfdcd30
--- /dev/null
+++ b/bundleplugin/doc/site/project-info.html
@@ -0,0 +1,243 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - Project Information</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                    <li class="expanded">
+
+            <strong>Project Information</strong>
+
+                  <ul>
+
+                      <li class="none">
+
+                          <a href="index.html" title="About">About</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="dependencies.html" title="Dependencies">Dependencies</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="license.html" title="Project License">Project License</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="team-list.html" title="Project Team">Project Team</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="source-repository.html" title="Source Repository">Source Repository</a>
+
+            </li>
+
+              </ul>
+
+        </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        <div class="section"><h2>Project Information<a name="Project_Information"></a></h2><p>This document provides an overview of the various documents and links that are part of this project's general information. All of this content is automatically generated by <a class="externalLink" href="http://maven.apache.org">Maven</a> on behalf of the project.</p><div class="section"><h3>Overview<a name="Overview"></a></h3><table border="0" class="bodyTable"><tr class="a"><th>Document</th><th>Description</th></tr><tr class="b"><td><a href="index.html">About</a></td><td>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)</td></tr><tr class="a"><td><a href="dependencies.html">Dependencies</a></td><td>This document lists the project's dependencies and provides information on each dependency.</td></tr><tr class="b"><td><a href="issue-tracking.html">Issue Tracking</a></td><td>This is a link to the issue management system for this project. Issues (bugs, features, change requests) can be created and queried using this link.</td></tr><tr class="a"><td><a href="mail-lists.html">Mailing Lists</a></td><td>This document provides subscription and archive information for this project's mailing lists.</td></tr><tr class="b"><td><a href="license.html">Project License</a></td><td>This is a link to the definitions of project licenses.</td></tr><tr class="a"><td><a href="team-list.html">Project Team</a></td><td>This document provides information on the members of this project. These are the individuals who have contributed to the project in one form or another.</td></tr><tr class="b"><td><a href="source-repository.html">Source Repository</a></td><td>This is a link to the online source repository that can be viewed via a web browser.</td></tr></table></div></div>
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/project-reports.html b/bundleplugin/doc/site/project-reports.html
new file mode 100644
index 0000000..b8b0bdb
--- /dev/null
+++ b/bundleplugin/doc/site/project-reports.html
@@ -0,0 +1,228 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - Generated Reports</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                <li class="collapsed">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                  </li>
+
+                                                                                                                                                <li class="expanded">
+
+            <strong>Project Reports</strong>
+
+                  <ul>
+
+                      <li class="none">
+
+                          <a href="jira-report.html" title="JIRA Report">JIRA Report</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="plugin-info.html" title="Plugin Documentation">Plugin Documentation</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="xref/index.html" title="Source Xref">Source Xref</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="surefire-report.html" title="Surefire Report">Surefire Report</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="xref-test/index.html" title="Test Source Xref">Test Source Xref</a>
+
+            </li>
+
+              </ul>
+
+        </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        <div class="section"><h2>Generated Reports<a name="Generated_Reports"></a></h2><p>This document provides an overview of the various reports that are automatically generated by <a class="externalLink" href="http://maven.apache.org">Maven</a> . Each report is briefly described below.</p><div class="section"><h3>Overview<a name="Overview"></a></h3><table border="0" class="bodyTable"><tr class="a"><th>Document</th><th>Description</th></tr><tr class="b"><td><a href="jira-report.html">JIRA Report</a></td><td>Report on Issues from the JIRA Issue Tracking System.</td></tr><tr class="a"><td><a href="plugin-info.html">Plugin Documentation</a></td><td>This report provides goals and parameters documentation of a plugin.</td></tr><tr class="b"><td><a href="xref/index.html">Source Xref</a></td><td>HTML based, cross-reference version of Java source code.</td></tr><tr class="a"><td><a href="surefire-report.html">Surefire Report</a></td><td>Report on the test results of the project.</td></tr><tr class="b"><td><a href="xref-test/index.html">Test Source Xref</a></td><td>HTML based, cross-reference version of Java test source code.</td></tr></table></div></div>
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/remote-clean-mojo.html b/bundleplugin/doc/site/remote-clean-mojo.html
new file mode 100644
index 0000000..4c79621
--- /dev/null
+++ b/bundleplugin/doc/site/remote-clean-mojo.html
@@ -0,0 +1,306 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - 
+    bundle:remote-clean</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                <li class="collapsed">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                  </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        
+  
+    <div class="section"><h2>bundle:remote-clean<a name="bundle:remote-clean"></a></h2>
+      <p><b>Full name</b>:</p>
+      <p>org.apache.felix:maven-bundle-plugin:2.3.5:remote-clean</p>
+      <p><b>Description</b>:</p>
+      <div>Clean a remote repository file. It just looks for every resources
+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>
+      </ul>
+      <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </tr>
+          <tr class="b">
+            <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>
+          </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>
+          </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>
+          </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>
+          </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>
+          </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>
+          </tr>
+          <tr class="b">
+            <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
+            <td><tt>List</tt></td>
+            <td><tt>-</tt></td>
+            <td>Project types which this plugin supports.<br /></td>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Parameter Details<a name="Parameter_Details"></a></h3>
+        <p><b><a name="altDeploymentRepository">altDeploymentRepository</a>:</b></p>
+        <div>Alternative 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>${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>
+        </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>
+        </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>
+        </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>
+        </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>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>
+        <ul>
+          <li><b>Type</b>: <tt>java.util.List</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul>
+      </div>
+    </div>
+  
+
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/source-repository.html b/bundleplugin/doc/site/source-repository.html
new file mode 100644
index 0000000..3d21711
--- /dev/null
+++ b/bundleplugin/doc/site/source-repository.html
@@ -0,0 +1,243 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - Source Repository</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                          <li class="expanded">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                    <ul>
+
+                      <li class="none">
+
+                          <a href="index.html" title="About">About</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="dependencies.html" title="Dependencies">Dependencies</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="license.html" title="Project License">Project License</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="team-list.html" title="Project Team">Project Team</a>
+
+            </li>
+
+                      <li class="none">
+
+            <strong>Source Repository</strong>
+
+          </li>
+
+              </ul>
+
+        </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        <div class="section"><h2>Overview<a name="Overview"></a></h2><a name="Overview"></a><p>This project uses <a class="externalLink" href="http://subversion.apache.org/">Subversion</a> to manage its source code. Instructions on Subversion use can be found at <a class="externalLink" href="http://svnbook.red-bean.com/">http://svnbook.red-bean.com/</a>.</p></div><div class="section"><h2>Web Access<a name="Web_Access"></a></h2><a name="Web_Access"></a><p>The following is a link to the online source repository.</p><div class="source"><pre><a class="externalLink" href="http://svn.apache.org/repos/asf/felix/trunk/bundleplugin">http://svn.apache.org/repos/asf/felix/trunk/bundleplugin</a></pre></div></div><div class="section"><h2>Anonymous access<a name="Anonymous_access"></a></h2><a name="Anonymous_access"></a><p>The source can be checked out anonymously from SVN with this command:</p><div class="source"><pre>$ svn checkout http://svn.apache.org/repos/asf/felix/trunk/bundleplugin maven-bundle-plugin</pre></div></div><div class="section"><h2>Developer access<a name="Developer_access"></a></h2><a name="Developer_access"></a><p>Everyone can access the Subversion repository via HTTP, but Committers must checkout the Subversion repository via HTTPS.</p><div class="source"><pre>$ svn checkout https://svn.apache.org/repos/asf/felix/trunk/bundleplugin maven-bundle-plugin</pre></div><p>To commit changes to the repository, execute the following command to commit your changes (svn will prompt you for your password)</p><div class="source"><pre>$ svn commit --username your-username -m &quot;A message&quot;</pre></div></div><div class="section"><h2>Access from behind a firewall<a name="Access_from_behind_a_firewall"></a></h2><a name="Access_from_behind_a_firewall"></a><p>For those users who are stuck behind a corporate firewall which is blocking HTTP access to the Subversion repository, you can try to access it via the developer connection:</p><div class="source"><pre>$ svn checkout https://svn.apache.org/repos/asf/felix/trunk/bundleplugin maven-bundle-plugin</pre></div></div><div class="section"><h2>Access through a proxy<a name="Access_through_a_proxy"></a></h2><a name="Access_through_a_proxy"></a><p>The Subversion client can go through a proxy, if you configure it to do so. First, edit your &quot;servers&quot; configuration file to indicate which proxy to use. The file's location depends on your operating system. On Linux or Unix it is located in the directory &quot;~/.subversion&quot;. On Windows it is in &quot;%APPDATA%\Subversion&quot;. (Try &quot;echo %APPDATA%&quot;, note this is a hidden directory.)</p><p>There are comments in the file explaining what to do. If you don't have that file, get the latest Subversion client and run any command; this will cause the configuration directory and template files to be created.</p><p>Example: Edit the 'servers' file and add something like:</p><div class="source"><pre>[global]
+http-proxy-host = your.proxy.name
+http-proxy-port = 3128
+</pre></div></div>
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/surefire-report.html b/bundleplugin/doc/site/surefire-report.html
new file mode 100644
index 0000000..b73b54a
--- /dev/null
+++ b/bundleplugin/doc/site/surefire-report.html
@@ -0,0 +1,228 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - Surefire Report</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                <li class="collapsed">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                  </li>
+
+                                                                                                                                                      <li class="expanded">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                    <ul>
+
+                      <li class="none">
+
+                          <a href="jira-report.html" title="JIRA Report">JIRA Report</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="plugin-info.html" title="Plugin Documentation">Plugin Documentation</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="xref/index.html" title="Source Xref">Source Xref</a>
+
+            </li>
+
+                      <li class="none">
+
+            <strong>Surefire Report</strong>
+
+          </li>
+
+                      <li class="none">
+
+                          <a href="xref-test/index.html" title="Test Source Xref">Test Source Xref</a>
+
+            </li>
+
+              </ul>
+
+        </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </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>9</td><td>0</td><td>0</td><td>0</td><td>100%</td><td>1.764</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>9</td><td>0</td><td>0</td><td>0</td><td>100%</td><td>1.764</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.497</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.771</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>6</td><td>0</td><td>0</td><td>0</td><td>100%</td><td>0.496</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.463</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.319</td></tr><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testNoReBundling</td><td>0.449</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.059</td></tr><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testReadExportedModules</td><td>0.153</td></tr><tr class="b"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testTransformDirectives</td><td>0.069</td></tr><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testDefaultPropertiesIncludeOrganization</td><td>0.06</td></tr><tr class="b"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testVersion</td><td>0.069</td></tr><tr class="a"><td><img src="images/icon_success_sml.gif" alt="" /></td><td>testPackageInfoDetection</td><td>0.083</td></tr></table></div><br /></div><br />
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/team-list.html b/bundleplugin/doc/site/team-list.html
new file mode 100644
index 0000000..115e818
--- /dev/null
+++ b/bundleplugin/doc/site/team-list.html
@@ -0,0 +1,255 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - Team list</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                          <li class="expanded">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                    <ul>
+
+                      <li class="none">
+
+                          <a href="index.html" title="About">About</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="dependencies.html" title="Dependencies">Dependencies</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="mail-lists.html" title="Mailing Lists">Mailing Lists</a>
+
+            </li>
+
+                      <li class="none">
+
+                          <a href="license.html" title="Project License">Project License</a>
+
+            </li>
+
+                      <li class="none">
+
+            <strong>Project Team</strong>
+
+          </li>
+
+                      <li class="none">
+
+                          <a href="source-repository.html" title="Source Repository">Source Repository</a>
+
+            </li>
+
+              </ul>
+
+        </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        <div class="section"><h2>The Team<a name="The_Team"></a></h2><a name="The_Team"></a><p>A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.</p><p>The team is comprised of Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.</p><div class="section"><h3>Members<a name="Members"></a></h3><a name="Members"></a><p>There are no developers working on this project.</p></div><div class="section"><h3>Contributors<a name="Contributors"></a></h3><a name="Contributors"></a><p>There are no contributors listed for this project. Please check back again later.</p><script type="text/javascript">
+function offsetDate(id, offset) {
+    var now = new Date();
+    var nowTime = now.getTime();
+    var localOffset = now.getTimezoneOffset();
+    var developerTime = nowTime + ( offset * 60 * 60 * 1000 )+ ( localOffset * 60 * 1000 );
+    var developerDate = new Date(developerTime);
+
+    document.getElementById(id).innerHTML = developerDate;
+}
+
+function init(){
+}
+
+window.onLoad = init();
+</script></div></div>
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/wrap-mojo.html b/bundleplugin/doc/site/wrap-mojo.html
new file mode 100644
index 0000000..f75df61
--- /dev/null
+++ b/bundleplugin/doc/site/wrap-mojo.html
@@ -0,0 +1,409 @@
+<!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 Jul 5, 2011 -->
+
+<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" />
+
+    <title>Maven Bundle Plugin - 
+    bundle:wrap</title>
+
+    <style type="text/css" media="all">
+
+      @import url("./css/maven-base.css");
+
+      @import url("./css/maven-theme.css");
+
+      @import url("./css/site.css");
+
+    </style>
+
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+
+    <meta name="Date-Revision-yyyymmdd" content="20110705" />
+
+    <meta http-equiv="Content-Language" content="en" />
+
+        
+
+  </head>
+
+  <body class="composite">
+
+    <div id="banner">
+
+                    <div id="bannerLeft">
+
+                Maven Bundle Plugin
+
+                </div>
+
+                    <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="breadcrumbs">
+
+            
+
+        
+
+                <div class="xleft">
+
+        <span id="publishDate">Last Published: 2011-07-05</span>
+
+                  &nbsp;| <span id="projectVersion">Version: 2.3.5</span>
+
+                      </div>
+
+            <div class="xright">        
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+    <div id="leftColumn">
+
+      <div id="navcolumn">
+
+             
+
+        
+
+                                <h5>Overview</h5>
+
+                  <ul>
+
+                  <li class="none">
+
+                          <a href="index.html" title="Introduction">Introduction</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="plugin-info.html" title="Goals">Goals</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Maven+Bundle+Plugin+%28BND%29" class="externalLink" title="Wiki">Wiki</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="https://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+Bundle+Plugin+FAQ" class="externalLink" title="FAQ">FAQ</a>
+
+            </li>
+
+                  <li class="none">
+
+                          <a href="jira-report.html" title="Release Notes">Release Notes</a>
+
+            </li>
+
+          </ul>
+
+                       <h5>Project Documentation</h5>
+
+                  <ul>
+
+                                                                                                                                                                                <li class="collapsed">
+
+                          <a href="project-info.html" title="Project Information">Project Information</a>
+
+                  </li>
+
+                                                                                                                                            <li class="collapsed">
+
+                          <a href="project-reports.html" title="Project Reports">Project Reports</a>
+
+                  </li>
+
+          </ul>
+
+                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
+
+        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
+
+      </a>
+
+                   
+
+        
+
+            </div>
+
+    </div>
+
+    <div id="bodyColumn">
+
+      <div id="contentBox">
+
+        
+  
+    <div class="section"><h2>bundle:wrap<a name="bundle:wrap"></a></h2>
+      <p><b>Full name</b>:</p>
+      <p>org.apache.felix:maven-bundle-plugin:2.3.5:wrap</p>
+      <p><b>This plugin goal has been deprecated</b>:</p>
+      <div>The wrap goal is no longer supported and may be removed in a future
+release</div>
+      <p><b>Description</b>:</p>
+      <div>(no description)</div>
+      <p><b>Attributes</b>:</p>
+      <ul>
+        <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>
+      </ul>
+      <div class="section"><h3>Required Parameters<a name="Required_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </tr>
+          <tr class="b">
+            <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>
+          </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>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Optional Parameters<a name="Optional_Parameters"></a></h3>
+        <table class="bodyTable" border="0">
+          <tr class="a">
+            <th>Name</th>
+            <th>Type</th>
+            <th>Since</th>
+            <th>Description</th>
+          </tr>
+          <tr class="b">
+            <td><b><a href="#archive">archive</a></b></td>
+            <td><tt>MavenArchiveConfiguration</tt></td>
+            <td><tt>-</tt></td>
+            <td>The archive configuration to use.<br /></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 to be installed. For example,
+&quot;jdk14&quot;. Defaults to none which means this is the project's main
+bundle.<br /></td>
+          </tr>
+          <tr class="b">
+            <td><b><a href="#depth">depth</a></b></td>
+            <td><tt>int</tt></td>
+            <td><tt>-</tt></td>
+            <td>Process up to some depth<br /></td>
+          </tr>
+          <tr class="a">
+            <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>
+          </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>
+          </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>
+          </tr>
+          <tr class="b">
+            <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">
+            <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">
+            <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>
+          </tr>
+          <tr class="a">
+            <td><b><a href="#supportedProjectTypes">supportedProjectTypes</a></b></td>
+            <td><tt>List</tt></td>
+            <td><tt>-</tt></td>
+            <td>Project types which this plugin supports.<br /></td>
+          </tr>
+          <tr class="b">
+            <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>
+          </tr>
+          <tr class="a">
+            <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>
+          </tr>
+        </table>
+      </div>
+      <div class="section"><h3>Parameter Details<a name="Parameter_Details"></a></h3>
+        <p><b><a name="archive">archive</a>:</b></p>
+        <div>The archive configuration to use.</div>
+        <ul>
+          <li><b>Type</b>: <tt>org.apache.maven.archiver.MavenArchiveConfiguration</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="buildDirectory">buildDirectory</a>:</b></p>
+        <div>The directory for the generated JAR.</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>${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
+bundle.</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="depth">depth</a>:</b></p>
+        <div>Process up to some depth</div>
+        <ul>
+          <li><b>Type</b>: <tt>int</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="dumpClasspath">dumpClasspath</a>:</b></p>
+        <div>File where the BND class-path 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>${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>
+        </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>
+        </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>
+        <ul>
+          <li><b>Type</b>: <tt>boolean</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="instructions">instructions</a>:</b></p>
+        <div>The BND instructions for the bundle.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.util.Map</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="manifestLocation">manifestLocation</a>:</b></p>
+        <div>Directory where the manifest will be written</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>${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>
+        </ul><hr /><p><b><a name="supportedProjectTypes">supportedProjectTypes</a>:</b></p>
+        <div>Project types which this plugin supports.</div>
+        <ul>
+          <li><b>Type</b>: <tt>java.util.List</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
+        </ul><hr /><p><b><a name="unpackBundle">unpackBundle</a>:</b></p>
+        <div>When true, unpack the bundle contents to the outputDirectory</div>
+        <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>
+        </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>Default</b>: <tt>*</tt></li>
+        </ul>
+      </div>
+    </div>
+  
+
+
+      </div>
+
+    </div>
+
+    <div class="clear">
+
+      <hr/>
+
+    </div>
+
+    <div id="footer">
+
+      <div class="xright">Copyright &#169;                    2006-2011
+
+                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
+
+            All Rights Reserved.      
+
+        
+
+      </div>
+
+      <div class="clear">
+
+        <hr/>
+
+      </div>
+
+    </div>
+
+  </body>
+
+</html>
+
diff --git a/bundleplugin/doc/site/xref-test/allclasses-frame.html b/bundleplugin/doc/site/xref-test/allclasses-frame.html
new file mode 100644
index 0000000..adfeab3
--- /dev/null
+++ b/bundleplugin/doc/site/xref-test/allclasses-frame.html
@@ -0,0 +1,29 @@
+
+<!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>All Classes</title>
+		<link rel="stylesheet" type="text/css" href="stylesheet.css" title="style" />
+    </head>
+    <body>
+
+		<h3>All Classes</h3>
+
+		<ul>
+						<li>
+				<a href="org/apache/felix/bundleplugin/AbstractBundlePluginTest.html" target="classFrame">AbstractBundlePluginTest</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/BlueprintComponentTest.html" target="classFrame">BlueprintComponentTest</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/BundleAllPluginTest.html" target="classFrame">BundleAllPluginTest</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/BundlePluginTest.html" target="classFrame">BundlePluginTest</a>
+			</li>
+			      </ul>
+
+    </body>
+  </html>
diff --git a/bundleplugin/doc/site/xref-test/index.html b/bundleplugin/doc/site/xref-test/index.html
new file mode 100644
index 0000000..b66913a
--- /dev/null
+++ b/bundleplugin/doc/site/xref-test/index.html
@@ -0,0 +1,24 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "DTD/xhtml1-frameset.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.3.5 Reference</title>
+	</head>
+    <frameset cols="20%,80%">
+		<frameset rows="30%,70%">
+			<frame src="overview-frame.html" name="packageListFrame" />
+			<frame src="allclasses-frame.html" name="packageFrame" />
+		</frameset>
+		<frame src="overview-summary.html" name="classFrame" />
+        <noframes>
+            <body>
+                <h1>Frame Alert</h1>
+                <p>
+                    You don't have frames. Go <a href="overview-summary.html">here</a>
+                </p>
+            </body>
+        </noframes>
+    </frameset>
+</html>
+
diff --git a/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/AbstractBundlePluginTest.html b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/AbstractBundlePluginTest.html
new file mode 100644
index 0000000..19ec3c9
--- /dev/null
+++ b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/AbstractBundlePluginTest.html
@@ -0,0 +1,68 @@
+<!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>AbstractBundlePluginTest 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.felix.bundleplugin;
+<a name="2" href="#2">2</a>   
+<a name="3" href="#3">3</a>   
+<a name="4" href="#4">4</a>   <em class="jxr_comment">/*</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> *</em>
+<a name="13" href="#13">13</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="14" href="#14">14</a>  <em class="jxr_comment"> *</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="19" href="#19">19</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="20" href="#20">20</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="21" href="#21">21</a>  <em class="jxr_comment"> */</em>
+<a name="22" href="#22">22</a>  
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="24" href="#24">24</a>  
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.testing.stubs.ArtifactStub;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.PlexusTestCase;
+<a name="27" href="#27">27</a>  
+<a name="28" href="#28">28</a>  
+<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> * Common methods for bundle plugin testing</em>
+<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="32" href="#32">32</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="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * @version $Id$</em>
+<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractBundlePluginTest.html">AbstractBundlePluginTest</a> <strong class="jxr_keyword">extends</strong> PlexusTestCase
+<a name="36" href="#36">36</a>  {
+<a name="37" href="#37">37</a>  
+<a name="38" href="#38">38</a>      <strong class="jxr_keyword">protected</strong> ArtifactStub getArtifactStub()
+<a name="39" href="#39">39</a>      {
+<a name="40" href="#40">40</a>          ArtifactStub artifact = <strong class="jxr_keyword">new</strong> ArtifactStub();
+<a name="41" href="#41">41</a>          artifact.setGroupId( <span class="jxr_string">"group"</span> );
+<a name="42" href="#42">42</a>          artifact.setArtifactId( <span class="jxr_string">"artifact"</span> );
+<a name="43" href="#43">43</a>          artifact.setVersion( <span class="jxr_string">"1.0"</span> );
+<a name="44" href="#44">44</a>          <strong class="jxr_keyword">return</strong> artifact;
+<a name="45" href="#45">45</a>      }
+<a name="46" href="#46">46</a>  
+<a name="47" href="#47">47</a>  
+<a name="48" href="#48">48</a>      <strong class="jxr_keyword">protected</strong> File getTestBundle()
+<a name="49" href="#49">49</a>      {
+<a name="50" href="#50">50</a>          String osgiBundleFileName = <span class="jxr_string">"org.apache.maven.maven-model_2.1.0.SNAPSHOT.jar"</span>;
+<a name="51" href="#51">51</a>          <strong class="jxr_keyword">return</strong> getTestFile( getBasedir(), <span class="jxr_string">"src/test/resources/"</span> + osgiBundleFileName );
+<a name="52" href="#52">52</a>      }
+<a name="53" href="#53">53</a>  
+<a name="54" href="#54">54</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/felix/bundleplugin/BlueprintComponentTest.html b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/BlueprintComponentTest.html
new file mode 100644
index 0000000..df977ef
--- /dev/null
+++ b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/BlueprintComponentTest.html
@@ -0,0 +1,123 @@
+<!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>BlueprintComponentTest xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<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>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Manifest;
+<a name="30" href="#30">30</a>  
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> junit.framework.TestCase;
+<a name="32" href="#32">32</a>  
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Resource;
+<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="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
+<a name="41" href="#41">41</a>  {
+<a name="42" href="#42">42</a>  
+<a name="43" href="#43">43</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBlueprint() <strong class="jxr_keyword">throws</strong> Exception
+<a name="44" href="#44">44</a>      {
+<a name="45" href="#45">45</a>          MavenProjectStub project = <strong class="jxr_keyword">new</strong> MavenProjectStub()
+<a name="46" href="#46">46</a>          {
+<a name="47" href="#47">47</a>              <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> List resources = <strong class="jxr_keyword">new</strong> ArrayList();
+<a name="48" href="#48">48</a>  
+<a name="49" href="#49">49</a>  
+<a name="50" href="#50">50</a>              @Override
+<a name="51" href="#51">51</a>              <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addResource( Resource resource )
+<a name="52" href="#52">52</a>              {
+<a name="53" href="#53">53</a>                  resources.add( resource );
+<a name="54" href="#54">54</a>              }
+<a name="55" href="#55">55</a>  
+<a name="56" href="#56">56</a>  
+<a name="57" href="#57">57</a>              @Override
+<a name="58" href="#58">58</a>              <strong class="jxr_keyword">public</strong> List getResources()
+<a name="59" href="#59">59</a>              {
+<a name="60" href="#60">60</a>                  <strong class="jxr_keyword">return</strong> resources;
+<a name="61" href="#61">61</a>              }
+<a name="62" href="#62">62</a>  
+<a name="63" href="#63">63</a>  
+<a name="64" href="#64">64</a>              @Override
+<a name="65" href="#65">65</a>              <strong class="jxr_keyword">public</strong> File getBasedir()
+<a name="66" href="#66">66</a>              {
+<a name="67" href="#67">67</a>                  <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> File( <span class="jxr_string">"target/tmp/basedir"</span> );
+<a name="68" href="#68">68</a>              }
+<a name="69" href="#69">69</a>          };
+<a name="70" href="#70">70</a>          project.setGroupId( <span class="jxr_string">"group"</span> );
+<a name="71" href="#71">71</a>          project.setArtifactId( <span class="jxr_string">"artifact"</span> );
+<a name="72" href="#72">72</a>          project.setVersion( <span class="jxr_string">"1.1.0.0"</span> );
+<a name="73" href="#73">73</a>          Resource r = <strong class="jxr_keyword">new</strong> Resource();
+<a name="74" href="#74">74</a>          r.setDirectory( <strong class="jxr_keyword">new</strong> File( <span class="jxr_string">"src/test/resources"</span> ).getAbsoluteFile().getCanonicalPath() );
+<a name="75" href="#75">75</a>          r.setIncludes( Arrays.asList( <span class="jxr_string">"**/*.*"</span> ) );
+<a name="76" href="#76">76</a>          project.addResource( r );
+<a name="77" href="#77">77</a>          project.addCompileSourceRoot( <strong class="jxr_keyword">new</strong> File( <span class="jxr_string">"src/test/resources"</span> ).getAbsoluteFile().getCanonicalPath() );
+<a name="78" href="#78">78</a>  
+<a name="79" href="#79">79</a>          ManifestPlugin plugin = <strong class="jxr_keyword">new</strong> ManifestPlugin();
+<a name="80" href="#80">80</a>          plugin.setBuildDirectory( <span class="jxr_string">"target/tmp/basedir/target"</span> );
+<a name="81" href="#81">81</a>          plugin.setOutputDirectory( <strong class="jxr_keyword">new</strong> File( <span class="jxr_string">"target/tmp/basedir/target/classes"</span> ) );
+<a name="82" href="#82">82</a>  
+<a name="83" href="#83">83</a>          Map instructions = <strong class="jxr_keyword">new</strong> HashMap();
+<a name="84" href="#84">84</a>          instructions.put( <span class="jxr_string">"Test"</span>, <span class="jxr_string">"Foo"</span> );
+<a name="85" href="#85">85</a>  
+<a name="86" href="#86">86</a>          instructions.put( <span class="jxr_string">"nsh_interface"</span>, <span class="jxr_string">"foo.bar.Namespace"</span> );
+<a name="87" href="#87">87</a>          instructions.put( <span class="jxr_string">"nsh_namespace"</span>, <span class="jxr_string">"ns"</span> );
+<a name="88" href="#88">88</a>  
+<a name="89" href="#89">89</a>          instructions.put( <span class="jxr_string">"Export-Service"</span>, <span class="jxr_string">"p7.Foo;mk=mv"</span> );
+<a name="90" href="#90">90</a>          instructions.put( <span class="jxr_string">"Import-Service"</span>, <span class="jxr_string">"org.osgi.service.cm.ConfigurationAdmin;availability:=optional"</span> );
+<a name="91" href="#91">91</a>  
+<a name="92" href="#92">92</a>          Properties props = <strong class="jxr_keyword">new</strong> Properties();
+<a name="93" href="#93">93</a>          Builder builder = plugin.buildOSGiBundle( project, instructions, props, plugin.getClasspath( project ) );
+<a name="94" href="#94">94</a>  
+<a name="95" href="#95">95</a>          Manifest manifest = builder.getJar().getManifest();
+<a name="96" href="#96">96</a>          String expSvc = manifest.getMainAttributes().getValue( Constants.EXPORT_SERVICE );
+<a name="97" href="#97">97</a>          String impSvc = manifest.getMainAttributes().getValue( Constants.IMPORT_SERVICE );
+<a name="98" href="#98">98</a>          assertNotNull( expSvc );
+<a name="99" href="#99">99</a>          assertNotNull( impSvc );
+<a name="100" href="#100">100</a> 
+<a name="101" href="#101">101</a>         String impPkg = manifest.getMainAttributes().getValue( Constants.IMPORT_PACKAGE );
+<a name="102" href="#102">102</a>         List&lt;String&gt; pkgs = Arrays.asList( impPkg.split( <span class="jxr_string">","</span> ) );
+<a name="103" href="#103">103</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 1; i &lt;= 13; i++ )
+<a name="104" href="#104">104</a>         {
+<a name="105" href="#105">105</a>             assertTrue( pkgs.contains( <span class="jxr_string">"p"</span> + i ) );
+<a name="106" href="#106">106</a>         }
+<a name="107" href="#107">107</a>     }
+<a name="108" href="#108">108</a> 
+<a name="109" href="#109">109</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/felix/bundleplugin/BundleAllPluginTest.html b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/BundleAllPluginTest.html
new file mode 100644
index 0000000..921999a
--- /dev/null
+++ b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/BundleAllPluginTest.html
@@ -0,0 +1,161 @@
+<!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>BundleAllPluginTest 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.felix.bundleplugin;
+<a name="2" href="#2">2</a>   
+<a name="3" href="#3">3</a>   
+<a name="4" href="#4">4</a>   <em class="jxr_comment">/*</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * </em>
+<a name="13" href="#13">13</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="14" href="#14">14</a>  <em class="jxr_comment"> * </em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="19" href="#19">19</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="20" href="#20">20</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="21" href="#21">21</a>  <em class="jxr_comment"> */</em>
+<a name="22" href="#22">22</a>  
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="26" href="#26">26</a>  
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.testing.stubs.ArtifactStub;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.testing.stubs.MavenProjectStub;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.DefaultMaven2OsgiConverter;
+<a name="31" href="#31">31</a>  
+<a name="32" href="#32">32</a>  
+<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * Test for {@link BundleAllPlugin}</em>
+<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleAllPluginTest.html">BundleAllPluginTest</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractBundlePluginTest.html">AbstractBundlePluginTest</a>
+<a name="39" href="#39">39</a>  {
+<a name="40" href="#40">40</a>  
+<a name="41" href="#41">41</a>      <strong class="jxr_keyword">private</strong> BundleAllPlugin plugin;
+<a name="42" href="#42">42</a>  
+<a name="43" href="#43">43</a>  
+<a name="44" href="#44">44</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setUp() <strong class="jxr_keyword">throws</strong> Exception
+<a name="45" href="#45">45</a>      {
+<a name="46" href="#46">46</a>          <strong class="jxr_keyword">super</strong>.setUp();
+<a name="47" href="#47">47</a>          init();
+<a name="48" href="#48">48</a>      }
+<a name="49" href="#49">49</a>  
+<a name="50" href="#50">50</a>  
+<a name="51" href="#51">51</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> init()
+<a name="52" href="#52">52</a>      {
+<a name="53" href="#53">53</a>          plugin = <strong class="jxr_keyword">new</strong> BundleAllPlugin();
+<a name="54" href="#54">54</a>          File baseDirectory = <strong class="jxr_keyword">new</strong> File( getBasedir() );
+<a name="55" href="#55">55</a>          File buildDirectory = <strong class="jxr_keyword">new</strong> File( baseDirectory, <span class="jxr_string">"target"</span> );
+<a name="56" href="#56">56</a>          plugin.setBuildDirectory( buildDirectory.getPath() );
+<a name="57" href="#57">57</a>          File outputDirectory = <strong class="jxr_keyword">new</strong> File( buildDirectory, <span class="jxr_string">"test-classes"</span> );
+<a name="58" href="#58">58</a>          plugin.setOutputDirectory( outputDirectory );
+<a name="59" href="#59">59</a>          plugin.setMaven2OsgiConverter( <strong class="jxr_keyword">new</strong> DefaultMaven2OsgiConverter() );
+<a name="60" href="#60">60</a>      }
+<a name="61" href="#61">61</a>  
+<a name="62" href="#62">62</a>  
+<a name="63" href="#63">63</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testSnapshotMatch()
+<a name="64" href="#64">64</a>      {
+<a name="65" href="#65">65</a>          ArtifactStub artifact = getArtifactStub();
+<a name="66" href="#66">66</a>          String bundleName;
+<a name="67" href="#67">67</a>  
+<a name="68" href="#68">68</a>          artifact.setVersion( <span class="jxr_string">"2.1-SNAPSHOT"</span> );
+<a name="69" href="#69">69</a>          bundleName = <span class="jxr_string">"group.artifact_2.1.0.20070207_193904_2.jar"</span>;
+<a name="70" href="#70">70</a>  
+<a name="71" href="#71">71</a>          assertTrue( plugin.snapshotMatch( artifact, bundleName ) );
+<a name="72" href="#72">72</a>  
+<a name="73" href="#73">73</a>          artifact.setVersion( <span class="jxr_string">"2-SNAPSHOT"</span> );
+<a name="74" href="#74">74</a>          assertFalse( plugin.snapshotMatch( artifact, bundleName ) );
+<a name="75" href="#75">75</a>  
+<a name="76" href="#76">76</a>          artifact.setArtifactId( <span class="jxr_string">"artifactx"</span> );
+<a name="77" href="#77">77</a>          artifact.setVersion( <span class="jxr_string">"2.1-SNAPSHOT"</span> );
+<a name="78" href="#78">78</a>          assertFalse( plugin.snapshotMatch( artifact, bundleName ) );
+<a name="79" href="#79">79</a>      }
+<a name="80" href="#80">80</a>  
+<a name="81" href="#81">81</a>  
+<a name="82" href="#82">82</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testNoReBundling() <strong class="jxr_keyword">throws</strong> Exception
+<a name="83" href="#83">83</a>      {
+<a name="84" href="#84">84</a>          File testFile = getTestFile( <span class="jxr_string">"target/test-classes/org.apache.maven.maven-model_1.0.0.0.jar"</span> );
+<a name="85" href="#85">85</a>          <strong class="jxr_keyword">if</strong> ( testFile.exists() )
+<a name="86" href="#86">86</a>          {
+<a name="87" href="#87">87</a>              testFile.delete();
+<a name="88" href="#88">88</a>          }
+<a name="89" href="#89">89</a>  
+<a name="90" href="#90">90</a>          ArtifactStub artifact = <strong class="jxr_keyword">new</strong> ArtifactStub();
+<a name="91" href="#91">91</a>          artifact.setGroupId( <span class="jxr_string">"group"</span> );
+<a name="92" href="#92">92</a>          artifact.setArtifactId( <span class="jxr_string">"artifact"</span> );
+<a name="93" href="#93">93</a>          artifact.setVersion( <span class="jxr_string">"1.0.0.0"</span> );
+<a name="94" href="#94">94</a>  
+<a name="95" href="#95">95</a>          MavenProject project = <strong class="jxr_keyword">new</strong> MavenProjectStub();
+<a name="96" href="#96">96</a>          project.setGroupId( artifact.getGroupId() );
+<a name="97" href="#97">97</a>          project.setArtifactId( artifact.getArtifactId() );
+<a name="98" href="#98">98</a>          project.setVersion( artifact.getVersion() );
+<a name="99" href="#99">99</a>          project.setArtifact( artifact );
+<a name="100" href="#100">100</a>         project.setArtifacts( Collections.EMPTY_SET );
+<a name="101" href="#101">101</a>         project.setDependencyArtifacts( Collections.EMPTY_SET );
+<a name="102" href="#102">102</a>         File bundleFile = getTestFile( <span class="jxr_string">"src/test/resources/org.apache.maven.maven-model_2.1.0.SNAPSHOT.jar"</span> );
+<a name="103" href="#103">103</a>         artifact.setFile( bundleFile );
+<a name="104" href="#104">104</a> 
+<a name="105" href="#105">105</a>         BundleInfo bundleInfo = plugin.bundle( project );
+<a name="106" href="#106">106</a> 
+<a name="107" href="#107">107</a>         Map exports = bundleInfo.getExportedPackages();
+<a name="108" href="#108">108</a>         String[] packages = <strong class="jxr_keyword">new</strong> String[]
+<a name="109" href="#109">109</a>             { <span class="jxr_string">"org.apache.maven.model.io.jdom"</span>, <span class="jxr_string">"org.apache.maven.model"</span> };
+<a name="110" href="#110">110</a> 
+<a name="111" href="#111">111</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; packages.length; i++ )
+<a name="112" href="#112">112</a>         {
+<a name="113" href="#113">113</a>             assertTrue( <span class="jxr_string">"Bundle info does not contain a package that it is  exported in the manifest: "</span> + packages[i],
+<a name="114" href="#114">114</a>                 exports.containsKey( packages[i] ) );
+<a name="115" href="#115">115</a>         }
+<a name="116" href="#116">116</a> 
+<a name="117" href="#117">117</a>         assertFalse( <span class="jxr_string">"Bundle info contains a package that it is not exported in the manifest"</span>,
+<a name="118" href="#118">118</a>             exports.containsKey( <span class="jxr_string">"org.apache.maven.model.io.xpp3"</span> ) );
+<a name="119" href="#119">119</a>     }
+<a name="120" href="#120">120</a> 
+<a name="121" href="#121">121</a>     <em class="jxr_comment">//    public void testRewriting()</em>
+<a name="122" href="#122">122</a>     <em class="jxr_comment">//        throws Exception</em>
+<a name="123" href="#123">123</a>     <em class="jxr_comment">//    {</em>
+<a name="124" href="#124">124</a>     <em class="jxr_comment">//</em>
+<a name="125" href="#125">125</a>     <em class="jxr_comment">//        MavenProjectStub project = new MavenProjectStub();</em>
+<a name="126" href="#126">126</a>     <em class="jxr_comment">//        project.setArtifact( getArtifactStub() );</em>
+<a name="127" href="#127">127</a>     <em class="jxr_comment">//        project.getArtifact().setFile( getTestBundle() );</em>
+<a name="128" href="#128">128</a>     <em class="jxr_comment">//        project.setDependencyArtifacts( Collections.EMPTY_SET );</em>
+<a name="129" href="#129">129</a>     <em class="jxr_comment">//        project.setVersion( project.getArtifact().getVersion() );</em>
+<a name="130" href="#130">130</a>     <em class="jxr_comment">//</em>
+<a name="131" href="#131">131</a>     <em class="jxr_comment">//        File output = new File( plugin.getBuildDirectory(), plugin.getBundleName( project ) );</em>
+<a name="132" href="#132">132</a>     <em class="jxr_comment">//        boolean delete = output.delete();</em>
+<a name="133" href="#133">133</a>     <em class="jxr_comment">//</em>
+<a name="134" href="#134">134</a>     <em class="jxr_comment">//        plugin.bundle( project );</em>
+<a name="135" href="#135">135</a>     <em class="jxr_comment">//</em>
+<a name="136" href="#136">136</a>     <em class="jxr_comment">//        init();</em>
+<a name="137" href="#137">137</a>     <em class="jxr_comment">//        try</em>
+<a name="138" href="#138">138</a>     <em class="jxr_comment">//        {</em>
+<a name="139" href="#139">139</a>     <em class="jxr_comment">//            plugin.bundle( project );</em>
+<a name="140" href="#140">140</a>     <em class="jxr_comment">//            fail();</em>
+<a name="141" href="#141">141</a>     <em class="jxr_comment">//        }</em>
+<a name="142" href="#142">142</a>     <em class="jxr_comment">//        catch ( RuntimeException e )</em>
+<a name="143" href="#143">143</a>     <em class="jxr_comment">//        {</em>
+<a name="144" href="#144">144</a>     <em class="jxr_comment">//            // expected</em>
+<a name="145" href="#145">145</a>     <em class="jxr_comment">//        }</em>
+<a name="146" href="#146">146</a>     <em class="jxr_comment">//    }</em>
+<a name="147" href="#147">147</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/felix/bundleplugin/BundlePluginTest.html b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/BundlePluginTest.html
new file mode 100644
index 0000000..37b70d7
--- /dev/null
+++ b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/BundlePluginTest.html
@@ -0,0 +1,227 @@
+<!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>BundlePluginTest 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.felix.bundleplugin;
+<a name="2" href="#2">2</a>   
+<a name="3" href="#3">3</a>   
+<a name="4" href="#4">4</a>   <em class="jxr_comment">/*</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> *</em>
+<a name="13" href="#13">13</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="14" href="#14">14</a>  <em class="jxr_comment"> *</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="19" href="#19">19</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="20" href="#20">20</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="21" href="#21">21</a>  <em class="jxr_comment"> */</em>
+<a name="22" href="#22">22</a>  
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.TreeMap;
+<a name="27" href="#27">27</a>  
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Organization;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.testing.stubs.MavenProjectStub;
+<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>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.DefaultMaven2OsgiConverter;
+<a name="32" href="#32">32</a>  
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
+<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="36" href="#36">36</a>  
+<a name="37" href="#37">37</a>  
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * Test for {@link BundlePlugin}.</em>
+<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="43" href="#43">43</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/BundlePluginTest.html">BundlePluginTest</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractBundlePluginTest.html">AbstractBundlePluginTest</a>
+<a name="44" href="#44">44</a>  {
+<a name="45" href="#45">45</a>  
+<a name="46" href="#46">46</a>      <strong class="jxr_keyword">private</strong> BundlePlugin plugin;
+<a name="47" href="#47">47</a>  
+<a name="48" href="#48">48</a>  
+<a name="49" href="#49">49</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setUp() <strong class="jxr_keyword">throws</strong> Exception
+<a name="50" href="#50">50</a>      {
+<a name="51" href="#51">51</a>          <strong class="jxr_keyword">super</strong>.setUp();
+<a name="52" href="#52">52</a>          plugin = <strong class="jxr_keyword">new</strong> BundlePlugin();
+<a name="53" href="#53">53</a>          plugin.setMaven2OsgiConverter( <strong class="jxr_keyword">new</strong> DefaultMaven2OsgiConverter() );
+<a name="54" href="#54">54</a>          plugin.setBuildDirectory( <span class="jxr_string">"."</span> );
+<a name="55" href="#55">55</a>          plugin.setOutputDirectory( <strong class="jxr_keyword">new</strong> File( <span class="jxr_string">"."</span> ) );
+<a name="56" href="#56">56</a>      }
+<a name="57" href="#57">57</a>  
+<a name="58" href="#58">58</a>  
+<a name="59" href="#59">59</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testConvertVersionToOsgi()
+<a name="60" href="#60">60</a>      {
+<a name="61" href="#61">61</a>          String osgiVersion;
+<a name="62" href="#62">62</a>  
+<a name="63" href="#63">63</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2.1.0-SNAPSHOT"</span> );
+<a name="64" href="#64">64</a>          assertEquals( <span class="jxr_string">"2.1.0.SNAPSHOT"</span>, osgiVersion );
+<a name="65" href="#65">65</a>  
+<a name="66" href="#66">66</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2.1-SNAPSHOT"</span> );
+<a name="67" href="#67">67</a>          assertEquals( <span class="jxr_string">"2.1.0.SNAPSHOT"</span>, osgiVersion );
+<a name="68" href="#68">68</a>  
+<a name="69" href="#69">69</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2-SNAPSHOT"</span> );
+<a name="70" href="#70">70</a>          assertEquals( <span class="jxr_string">"2.0.0.SNAPSHOT"</span>, osgiVersion );
+<a name="71" href="#71">71</a>  
+<a name="72" href="#72">72</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2"</span> );
+<a name="73" href="#73">73</a>          assertEquals( <span class="jxr_string">"2.0.0"</span>, osgiVersion );
+<a name="74" href="#74">74</a>  
+<a name="75" href="#75">75</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2.1"</span> );
+<a name="76" href="#76">76</a>          assertEquals( <span class="jxr_string">"2.1.0"</span>, osgiVersion );
+<a name="77" href="#77">77</a>  
+<a name="78" href="#78">78</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2.1.3"</span> );
+<a name="79" href="#79">79</a>          assertEquals( <span class="jxr_string">"2.1.3"</span>, osgiVersion );
+<a name="80" href="#80">80</a>  
+<a name="81" href="#81">81</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2.1.3.4"</span> );
+<a name="82" href="#82">82</a>          assertEquals( <span class="jxr_string">"2.1.3.4"</span>, osgiVersion );
+<a name="83" href="#83">83</a>  
+<a name="84" href="#84">84</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"4aug2000r7-dev"</span> );
+<a name="85" href="#85">85</a>          assertEquals( <span class="jxr_string">"0.0.0.4aug2000r7-dev"</span>, osgiVersion );
+<a name="86" href="#86">86</a>  
+<a name="87" href="#87">87</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"1.1-alpha-2"</span> );
+<a name="88" href="#88">88</a>          assertEquals( <span class="jxr_string">"1.1.0.alpha-2"</span>, osgiVersion );
+<a name="89" href="#89">89</a>  
+<a name="90" href="#90">90</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"1.0-alpha-16-20070122.203121-13"</span> );
+<a name="91" href="#91">91</a>          assertEquals( <span class="jxr_string">"1.0.0.alpha-16-20070122_203121-13"</span>, osgiVersion );
+<a name="92" href="#92">92</a>  
+<a name="93" href="#93">93</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"1.0-20070119.021432-1"</span> );
+<a name="94" href="#94">94</a>          assertEquals( <span class="jxr_string">"1.0.0.20070119_021432-1"</span>, osgiVersion );
+<a name="95" href="#95">95</a>  
+<a name="96" href="#96">96</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"1-20070119.021432-1"</span> );
+<a name="97" href="#97">97</a>          assertEquals( <span class="jxr_string">"1.0.0.20070119_021432-1"</span>, osgiVersion );
+<a name="98" href="#98">98</a>  
+<a name="99" href="#99">99</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"1.4.1-20070217.082013-7"</span> );
+<a name="100" href="#100">100</a>         assertEquals( <span class="jxr_string">"1.4.1.20070217_082013-7"</span>, osgiVersion );
+<a name="101" href="#101">101</a>     }
+<a name="102" href="#102">102</a> 
+<a name="103" href="#103">103</a> 
+<a name="104" href="#104">104</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testReadExportedModules() <strong class="jxr_keyword">throws</strong> Exception
+<a name="105" href="#105">105</a>     {
+<a name="106" href="#106">106</a>         File osgiBundleFile = getTestBundle();
+<a name="107" href="#107">107</a> 
+<a name="108" href="#108">108</a>         assertTrue( osgiBundleFile.exists() );
+<a name="109" href="#109">109</a> 
+<a name="110" href="#110">110</a>         MavenProject project = <strong class="jxr_keyword">new</strong> MavenProjectStub();
+<a name="111" href="#111">111</a>         project.setGroupId( <span class="jxr_string">"group"</span> );
+<a name="112" href="#112">112</a>         project.setArtifactId( <span class="jxr_string">"artifact"</span> );
+<a name="113" href="#113">113</a>         project.setVersion( <span class="jxr_string">"1.1.0.0"</span> );
+<a name="114" href="#114">114</a> 
+<a name="115" href="#115">115</a>         <em class="jxr_comment">//        PackageVersionAnalyzer analyzer = new PackageVersionAnalyzer();</em>
+<a name="116" href="#116">116</a>         Builder analyzer = <strong class="jxr_keyword">new</strong> Builder();
+<a name="117" href="#117">117</a>         Jar jar = <strong class="jxr_keyword">new</strong> Jar( <span class="jxr_string">"name"</span>, osgiBundleFile );
+<a name="118" href="#118">118</a>         analyzer.setJar( jar );
+<a name="119" href="#119">119</a>         analyzer.setClasspath( <strong class="jxr_keyword">new</strong> Jar[]
+<a name="120" href="#120">120</a>             { jar } );
+<a name="121" href="#121">121</a> 
+<a name="122" href="#122">122</a>         analyzer.setProperty( Analyzer.EXPORT_PACKAGE, <span class="jxr_string">"*"</span> );
+<a name="123" href="#123">123</a>         analyzer.calcManifest();
+<a name="124" href="#124">124</a> 
+<a name="125" href="#125">125</a>         assertEquals( 3, analyzer.getExports().size() );
+<a name="126" href="#126">126</a> 
+<a name="127" href="#127">127</a>         analyzer.close();
+<a name="128" href="#128">128</a>     }
+<a name="129" href="#129">129</a> 
+<a name="130" href="#130">130</a> 
+<a name="131" href="#131">131</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTransformDirectives() <strong class="jxr_keyword">throws</strong> Exception
+<a name="132" href="#132">132</a>     {
+<a name="133" href="#133">133</a>         Map instructions = <strong class="jxr_keyword">new</strong> TreeMap();
+<a name="134" href="#134">134</a> 
+<a name="135" href="#135">135</a>         instructions.put( <span class="jxr_string">"a"</span>, <span class="jxr_string">"1"</span> );
+<a name="136" href="#136">136</a>         instructions.put( <span class="jxr_string">"-a"</span>, <span class="jxr_string">"2"</span> );
+<a name="137" href="#137">137</a>         instructions.put( <span class="jxr_string">"_a"</span>, <span class="jxr_string">"3"</span> );
+<a name="138" href="#138">138</a>         instructions.put( <span class="jxr_string">"A"</span>, <span class="jxr_string">"3"</span> );
+<a name="139" href="#139">139</a>         instructions.put( <span class="jxr_string">"_A"</span>, <span class="jxr_string">"1"</span> );
+<a name="140" href="#140">140</a>         instructions.put( <span class="jxr_string">"_b"</span>, <span class="jxr_string">"4"</span> );
+<a name="141" href="#141">141</a>         instructions.put( <span class="jxr_string">"b"</span>, <span class="jxr_string">"6"</span> );
+<a name="142" href="#142">142</a>         instructions.put( <span class="jxr_string">"_B"</span>, <span class="jxr_string">"6"</span> );
+<a name="143" href="#143">143</a>         instructions.put( <span class="jxr_string">"-B"</span>, <span class="jxr_string">"5"</span> );
+<a name="144" href="#144">144</a>         instructions.put( <span class="jxr_string">"B"</span>, <span class="jxr_string">"4"</span> );
+<a name="145" href="#145">145</a> 
+<a name="146" href="#146">146</a>         instructions.put( <span class="jxr_string">"z"</span>, <strong class="jxr_keyword">null</strong> );
+<a name="147" href="#147">147</a>         instructions.put( <span class="jxr_string">"_z"</span>, <strong class="jxr_keyword">null</strong> );
+<a name="148" href="#148">148</a> 
+<a name="149" href="#149">149</a>         Map transformedInstructions = BundlePlugin.transformDirectives( instructions );
+<a name="150" href="#150">150</a> 
+<a name="151" href="#151">151</a>         assertEquals( <span class="jxr_string">"1"</span>, transformedInstructions.get( <span class="jxr_string">"a"</span> ) );
+<a name="152" href="#152">152</a>         assertEquals( <span class="jxr_string">"3"</span>, transformedInstructions.get( <span class="jxr_string">"-a"</span> ) );
+<a name="153" href="#153">153</a>         assertEquals( <strong class="jxr_keyword">null</strong>, transformedInstructions.get( <span class="jxr_string">"_a"</span> ) );
+<a name="154" href="#154">154</a>         assertEquals( <span class="jxr_string">"3"</span>, transformedInstructions.get( <span class="jxr_string">"A"</span> ) );
+<a name="155" href="#155">155</a>         assertEquals( <span class="jxr_string">"1"</span>, transformedInstructions.get( <span class="jxr_string">"-A"</span> ) );
+<a name="156" href="#156">156</a>         assertEquals( <strong class="jxr_keyword">null</strong>, transformedInstructions.get( <span class="jxr_string">"_A"</span> ) );
+<a name="157" href="#157">157</a>         assertEquals( <strong class="jxr_keyword">null</strong>, transformedInstructions.get( <span class="jxr_string">"_b"</span> ) );
+<a name="158" href="#158">158</a>         assertEquals( <span class="jxr_string">"4"</span>, transformedInstructions.get( <span class="jxr_string">"-b"</span> ) );
+<a name="159" href="#159">159</a>         assertEquals( <span class="jxr_string">"6"</span>, transformedInstructions.get( <span class="jxr_string">"b"</span> ) );
+<a name="160" href="#160">160</a>         assertEquals( <strong class="jxr_keyword">null</strong>, transformedInstructions.get( <span class="jxr_string">"_B"</span> ) );
+<a name="161" href="#161">161</a>         assertEquals( <span class="jxr_string">"6"</span>, transformedInstructions.get( <span class="jxr_string">"-B"</span> ) );
+<a name="162" href="#162">162</a>         assertEquals( <span class="jxr_string">"4"</span>, transformedInstructions.get( <span class="jxr_string">"B"</span> ) );
+<a name="163" href="#163">163</a> 
+<a name="164" href="#164">164</a>         assertEquals( <span class="jxr_string">""</span>, transformedInstructions.get( <span class="jxr_string">"z"</span> ) );
+<a name="165" href="#165">165</a>         assertEquals( <span class="jxr_string">""</span>, transformedInstructions.get( <span class="jxr_string">"-z"</span> ) );
+<a name="166" href="#166">166</a>     }
+<a name="167" href="#167">167</a> 
+<a name="168" href="#168">168</a> 
+<a name="169" href="#169">169</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDefaultPropertiesIncludeOrganization()
+<a name="170" href="#170">170</a>     {
+<a name="171" href="#171">171</a>         <strong class="jxr_keyword">final</strong> Organization organization = <strong class="jxr_keyword">new</strong> Organization();
+<a name="172" href="#172">172</a>         organization.setName( <span class="jxr_string">"Example Organization"</span> );
+<a name="173" href="#173">173</a>         organization.setUrl( <span class="jxr_string">"http://example.org"</span> );
+<a name="174" href="#174">174</a> 
+<a name="175" href="#175">175</a>         <em class="jxr_comment">// MavenProjectStub.setOrganization(Organization) doesn't do anything, so we have to make it work this way</em>
+<a name="176" href="#176">176</a>         MavenProject project = <strong class="jxr_keyword">new</strong> MavenProjectStub()
+<a name="177" href="#177">177</a>         {
+<a name="178" href="#178">178</a>             @Override
+<a name="179" href="#179">179</a>             <strong class="jxr_keyword">public</strong> Organization getOrganization()
+<a name="180" href="#180">180</a>             {
+<a name="181" href="#181">181</a>                 <strong class="jxr_keyword">return</strong> organization;
+<a name="182" href="#182">182</a>             }
+<a name="183" href="#183">183</a>         };
+<a name="184" href="#184">184</a>         project.setGroupId( <span class="jxr_string">"group"</span> );
+<a name="185" href="#185">185</a>         project.setArtifactId( <span class="jxr_string">"artifact"</span> );
+<a name="186" href="#186">186</a>         project.setVersion( <span class="jxr_string">"1.1.0.0"</span> );
+<a name="187" href="#187">187</a> 
+<a name="188" href="#188">188</a>         Properties properties = plugin.getDefaultProperties( project );
+<a name="189" href="#189">189</a>         assertEquals( organization.getName(), properties.getProperty( <span class="jxr_string">"project.organization.name"</span> ) );
+<a name="190" href="#190">190</a>         assertEquals( organization.getName(), properties.getProperty( <span class="jxr_string">"pom.organization.name"</span> ) );
+<a name="191" href="#191">191</a>         assertEquals( organization.getUrl(), properties.getProperty( <span class="jxr_string">"project.organization.url"</span> ) );
+<a name="192" href="#192">192</a>         assertEquals( organization.getUrl(), properties.getProperty( <span class="jxr_string">"pom.organization.url"</span> ) );
+<a name="193" href="#193">193</a>     }
+<a name="194" href="#194">194</a> 
+<a name="195" href="#195">195</a> 
+<a name="196" href="#196">196</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testVersion() <strong class="jxr_keyword">throws</strong> Exception
+<a name="197" href="#197">197</a>     {
+<a name="198" href="#198">198</a>         String cleanupVersion = Builder.cleanupVersion( <span class="jxr_string">"0.0.0.4aug2000r7-dev"</span> );
+<a name="199" href="#199">199</a>         assertEquals( <span class="jxr_string">"0.0.0.4aug2000r7-dev"</span>, cleanupVersion );
+<a name="200" href="#200">200</a>     }
+<a name="201" href="#201">201</a> 
+<a name="202" href="#202">202</a> 
+<a name="203" href="#203">203</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testPackageInfoDetection() <strong class="jxr_keyword">throws</strong> Exception
+<a name="204" href="#204">204</a>     {
+<a name="205" href="#205">205</a>         MavenProject project = <strong class="jxr_keyword">new</strong> MavenProjectStub();
+<a name="206" href="#206">206</a>         project.addCompileSourceRoot( getBasedir() + <span class="jxr_string">"/src/test/java"</span> );
+<a name="207" href="#207">207</a> 
+<a name="208" href="#208">208</a>         String resourcePaths = plugin.getMavenResourcePaths( project );
+<a name="209" href="#209">209</a> 
+<a name="210" href="#210">210</a>         assertEquals( <span class="jxr_string">"org/apache/felix/bundleplugin/packageinfo="</span>
+<a name="211" href="#211">211</a>             + <span class="jxr_string">"src/test/java/org/apache/felix/bundleplugin/packageinfo"</span>, resourcePaths );
+<a name="212" href="#212">212</a>     }
+<a name="213" href="#213">213</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/felix/bundleplugin/package-frame.html b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/package-frame.html
new file mode 100644
index 0000000..7ecd151
--- /dev/null
+++ b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/package-frame.html
@@ -0,0 +1,33 @@
+
+<!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.3.5 Reference Package org.apache.felix.bundleplugin</title>
+		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
+	</head>
+	<body>
+
+		<h3>
+        	<a href="package-summary.html" target="classFrame">org.apache.felix.bundleplugin</a>
+      	</h3>
+
+      	<h3>Classes</h3>
+
+      	<ul>
+      		          	<li>
+            	<a href="AbstractBundlePluginTest.html" target="classFrame">AbstractBundlePluginTest</a>
+          	</li>
+          	          	<li>
+            	<a href="BlueprintComponentTest.html" target="classFrame">BlueprintComponentTest</a>
+          	</li>
+          	          	<li>
+            	<a href="BundleAllPluginTest.html" target="classFrame">BundleAllPluginTest</a>
+          	</li>
+          	          	<li>
+            	<a href="BundlePluginTest.html" target="classFrame">BundlePluginTest</a>
+          	</li>
+          	      	</ul>
+
+	</body>
+</html>
\ No newline at end of file
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
new file mode 100644
index 0000000..223ce97
--- /dev/null
+++ b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/package-summary.html
@@ -0,0 +1,82 @@
+
+<!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.3.5 Reference Package org.apache.felix.bundleplugin</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.felix.bundleplugin</h2>
+
+		<table class="summary">
+        	<thead>
+          		<tr>
+            		<th>Class Summary</th>
+          		</tr>
+        	</thead>
+        	<tbody>
+        		            	<tr>
+              		<td>
+                		<a href="AbstractBundlePluginTest.html" target="classFrame">AbstractBundlePluginTest</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="BlueprintComponentTest.html" target="classFrame">BlueprintComponentTest</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="BundleAllPluginTest.html" target="classFrame">BundleAllPluginTest</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="BundlePluginTest.html" target="classFrame">BundlePluginTest</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-2011 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
new file mode 100644
index 0000000..8aa06f0
--- /dev/null
+++ b/bundleplugin/doc/site/xref-test/overview-frame.html
@@ -0,0 +1,25 @@
+
+<!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.3.5 Reference</title>
+		<link rel="stylesheet" type="text/css" href="stylesheet.css" title="style" />
+	</head>
+	<body>
+
+		<h3>
+			<a href="allclasses-frame.html" target="packageFrame">All Classes</a>
+		</h3>
+
+		<h3>Packages</h3>
+
+		<ul>
+						<li>
+				<a href="org/apache/felix/bundleplugin/package-frame.html" target="packageFrame">org.apache.felix.bundleplugin</a>
+			</li>
+					</ul>
+
+	</body>
+</html>
+
diff --git a/bundleplugin/doc/site/xref-test/overview-summary.html b/bundleplugin/doc/site/xref-test/overview-summary.html
new file mode 100644
index 0000000..7d163ad
--- /dev/null
+++ b/bundleplugin/doc/site/xref-test/overview-summary.html
@@ -0,0 +1,64 @@
+
+<!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.3.5 Reference</title>
+		<link rel="stylesheet" type="text/css" href="stylesheet.css" title="style" />
+	</head>
+	<body>
+				<div class="overview">
+			<ul>
+				<li class="selected">Overview</li>
+				<li>Package</li>
+			</ul>
+		</div>
+		<div class="framenoframe">
+			<ul>
+				<li>
+					<a href="index.html" target="_top">FRAMES</a>
+				</li>
+				<li>
+    	        	<a href="overview-summary.html" target="_top">NO FRAMES</a>
+        	  	</li>
+	        </ul>
+      	</div>
+		
+		      	<h2>Maven Bundle Plugin 2.3.5 Reference</h2>
+
+		<table class="summary">
+        	<thead>
+          		<tr>
+            		<th>Packages</th>
+          		</tr>
+        	</thead>
+        	<tbody>
+    	    	            	<tr>
+              		<td>
+                		<a href="org/apache/felix/bundleplugin/package-summary.html">org.apache.felix.bundleplugin</a>
+              		</td>
+            	</tr>
+	          	        	</tbody>
+      	</table>
+		
+				<div class="overview">
+			<ul>
+				<li class="selected">Overview</li>
+				<li>Package</li>
+			</ul>
+		</div>
+		<div class="framenoframe">
+			<ul>
+				<li>
+					<a href="index.html" target="_top">FRAMES</a>
+				</li>
+				<li>
+    	        	<a href="overview-summary.html" target="_top">NO FRAMES</a>
+        	  	</li>
+	        </ul>
+      	</div>
+		
+		<hr />
+		Copyright &copy; 2006-2011 The Apache Software Foundation. All Rights Reserved.
+	</body>
+</html>
\ No newline at end of file
diff --git a/bundleplugin/doc/site/xref-test/stylesheet.css b/bundleplugin/doc/site/xref-test/stylesheet.css
new file mode 100644
index 0000000..00e6114
--- /dev/null
+++ b/bundleplugin/doc/site/xref-test/stylesheet.css
@@ -0,0 +1,116 @@
+/* Javadoc style sheet */
+/* Define colors, fonts and other style attributes here to override the defaults  */
+body {
+    background-color: #fff;
+    font-family: Arial, Helvetica, sans-serif;
+}
+
+a:link {
+    color: #00f;
+}
+a:visited {
+    color: #00a;
+}
+
+a:active, a:hover {
+    color: #f30 !important;
+}
+
+ul, li {
+    list-style-type:none;
+    margin:0;
+    padding:0;
+}
+
+table td {
+    padding: 3px;
+    border: 1px solid #000;
+}
+table {
+    width:100%;
+    border: 1px solid #000;
+    border-collapse: collapse;
+}
+
+div.overview {
+    background-color:#ddd;
+    padding: 4px 4px 4px 0;
+}
+div.overview li, div.framenoframe li {
+    display: inline;
+}
+div.framenoframe {
+    text-align: center;
+    font-size: x-small;
+}
+div.framenoframe li {
+    margin: 0 3px 0 3px;
+}
+div.overview li {
+    margin:3px 3px 0 3px;
+    padding: 4px;
+}
+li.selected {
+    background-color:#888;
+    color: #fff;
+    font-weight: bold;
+}
+
+table.summary {
+    margin-bottom: 20px;
+}
+table.summary td, table.summary th {
+    font-weight: bold;
+    text-align: left;
+    padding: 3px;
+}
+table.summary th {
+    background-color:#036;
+    color: #fff;
+}
+table.summary td {
+    background-color:#eee;
+    border: 1px solid black;
+}
+
+em {
+    color: #A00;
+}
+em.comment {
+    color: #390;
+}
+.string {
+    color: #009;
+}
+div#footer {
+    text-align:center;
+}
+#overview {
+    padding:2px;
+}
+
+hr {
+    height: 1px;
+    color: #000;
+}
+
+/* JXR style sheet */
+.jxr_comment
+{
+    color: #390;
+}
+
+.jxr_javadoccomment
+{
+    color: #A00;
+}
+
+.jxr_string
+{
+    color: #009;
+}
+
+.jxr_keyword
+{
+    color: #000;
+}
diff --git a/bundleplugin/doc/site/xref/allclasses-frame.html b/bundleplugin/doc/site/xref/allclasses-frame.html
new file mode 100644
index 0000000..fafb37a
--- /dev/null
+++ b/bundleplugin/doc/site/xref/allclasses-frame.html
@@ -0,0 +1,119 @@
+
+<!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>All Classes</title>
+		<link rel="stylesheet" type="text/css" href="stylesheet.css" title="style" />
+    </head>
+    <body>
+
+		<h3>All Classes</h3>
+
+		<ul>
+						<li>
+				<a href="org/apache/felix/bundleplugin/AbstractDependencyFilter.html" target="classFrame">AbstractDependencyFilter</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/AbstractFileMojo.html" target="classFrame">AbstractFileMojo</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/AntPlugin.html" target="classFrame">AntPlugin</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/BlueprintPlugin.html" target="classFrame">Attribute</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/BlueprintPlugin.html" target="classFrame">BlueprintPlugin</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/BundleAllPlugin.html" target="classFrame">BundleAllPlugin</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/BundleInfo.html" target="classFrame">BundleInfo</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/BundlePlugin.html" target="classFrame">BundlePlugin</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/Config.html" target="classFrame">Config</a>
+			</li>
+						<li>
+				<a href="org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.html" target="classFrame">DefaultMaven2OsgiConverter</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/DependencyEmbedder.html" target="classFrame">DependencyEmbedder</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/DependencyExcluder.html" target="classFrame">DependencyExcluder</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/AbstractDependencyFilter.html" target="classFrame">DependencyFilter</a>
+			</li>
+						<li>
+				<a href="org/apache/maven/shared/dependency/tree/DependencyTreeResolutionListener.html" target="classFrame">DependencyTreeResolutionListener</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/InstructionsPlugin.html" target="classFrame">InstructionsPlugin</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/JarPluginConfiguration.html" target="classFrame">JarPluginConfiguration</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/ManifestPlugin.html" target="classFrame">ManifestPlugin</a>
+			</li>
+						<li>
+				<a href="org/apache/maven/shared/osgi/ManifestReadingException.html" target="classFrame">ManifestReadingException</a>
+			</li>
+						<li>
+				<a href="org/apache/maven/shared/osgi/Maven2OsgiConverter.html" target="classFrame">Maven2OsgiConverter</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/ObrCleanRepo.html" target="classFrame">ObrCleanRepo</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/ObrDeploy.html" target="classFrame">ObrDeploy</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/ObrDeployFile.html" target="classFrame">ObrDeployFile</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/ObrIndex.html" target="classFrame">ObrIndex</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/ObrInstall.html" target="classFrame">ObrInstall</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/ObrInstallFile.html" target="classFrame">ObrInstallFile</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/ObrRemoteClean.html" target="classFrame">ObrRemoteClean</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/ObrUpdate.html" target="classFrame">ObrUpdate</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/ObrUtils.html" target="classFrame">ObrUtils</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/PackageVersionAnalyzer.html" target="classFrame">PackageVersionAnalyzer</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/PomHelper.html" target="classFrame">PomHelper</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/RemoteFileManager.html" target="classFrame">RemoteFileManager</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/VersionCleanerPlugin.html" target="classFrame">VersionCleanerPlugin</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/WrapPlugin.html" target="classFrame">WrapPlugin</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/XmlHelper.html" target="classFrame">XmlHelper</a>
+			</li>
+			      </ul>
+
+    </body>
+  </html>
diff --git a/bundleplugin/doc/site/xref/index.html b/bundleplugin/doc/site/xref/index.html
new file mode 100644
index 0000000..b66913a
--- /dev/null
+++ b/bundleplugin/doc/site/xref/index.html
@@ -0,0 +1,24 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "DTD/xhtml1-frameset.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.3.5 Reference</title>
+	</head>
+    <frameset cols="20%,80%">
+		<frameset rows="30%,70%">
+			<frame src="overview-frame.html" name="packageListFrame" />
+			<frame src="allclasses-frame.html" name="packageFrame" />
+		</frameset>
+		<frame src="overview-summary.html" name="classFrame" />
+        <noframes>
+            <body>
+                <h1>Frame Alert</h1>
+                <p>
+                    You don't have frames. Go <a href="overview-summary.html">here</a>
+                </p>
+            </body>
+        </noframes>
+    </frameset>
+</html>
+
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AbstractDependencyFilter.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AbstractDependencyFilter.html
new file mode 100644
index 0000000..552f2f9
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AbstractDependencyFilter.html
@@ -0,0 +1,249 @@
+<!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>AbstractDependencyFilter xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="26" href="#26">26</a>  
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="29" href="#29">29</a>  
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Instruction;
+<a name="31" href="#31">31</a>  
+<a name="32" href="#32">32</a>  
+<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * Apply clause-based filter over given dependencies</em>
+<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">AbstractDependencyFilter</a>
+<a name="39" href="#39">39</a>  {
+<a name="40" href="#40">40</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment">     * Dependency artifacts.</em>
+<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="43" href="#43">43</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Collection m_dependencyArtifacts;
+<a name="44" href="#44">44</a>  
+<a name="45" href="#45">45</a>  
+<a name="46" href="#46">46</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">AbstractDependencyFilter</a>( Collection dependencyArtifacts )
+<a name="47" href="#47">47</a>      {
+<a name="48" href="#48">48</a>          m_dependencyArtifacts = dependencyArtifacts;
+<a name="49" href="#49">49</a>      }
+<a name="50" href="#50">50</a>  
+<a name="51" href="#51">51</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>
+<a name="52" href="#52">52</a>      {
+<a name="53" href="#53">53</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Instruction m_instruction;
+<a name="54" href="#54">54</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String m_defaultValue;
+<a name="55" href="#55">55</a>  
+<a name="56" href="#56">56</a>  
+<a name="57" href="#57">57</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( String expression )
+<a name="58" href="#58">58</a>          {
+<a name="59" href="#59">59</a>              <strong class="jxr_keyword">this</strong>( expression, <span class="jxr_string">""</span> );
+<a name="60" href="#60">60</a>          }
+<a name="61" href="#61">61</a>  
+<a name="62" href="#62">62</a>  
+<a name="63" href="#63">63</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( String expression, String defaultValue )
+<a name="64" href="#64">64</a>          {
+<a name="65" href="#65">65</a>              m_instruction = Instruction.getPattern( expression );
+<a name="66" href="#66">66</a>              m_defaultValue = defaultValue;
+<a name="67" href="#67">67</a>          }
+<a name="68" href="#68">68</a>  
+<a name="69" href="#69">69</a>  
+<a name="70" href="#70">70</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> filter( Collection dependencies )
+<a name="71" href="#71">71</a>          {
+<a name="72" href="#72">72</a>              <strong class="jxr_keyword">for</strong> ( Iterator i = dependencies.iterator(); i.hasNext(); )
+<a name="73" href="#73">73</a>              {
+<a name="74" href="#74">74</a>                  <strong class="jxr_keyword">if</strong> ( false == matches( ( Artifact ) i.next() ) )
+<a name="75" href="#75">75</a>                  {
+<a name="76" href="#76">76</a>                      i.remove();
+<a name="77" href="#77">77</a>                  }
+<a name="78" href="#78">78</a>              }
+<a name="79" href="#79">79</a>          }
+<a name="80" href="#80">80</a>  
+<a name="81" href="#81">81</a>  
+<a name="82" href="#82">82</a>          <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency );
+<a name="83" href="#83">83</a>  
+<a name="84" href="#84">84</a>  
+<a name="85" href="#85">85</a>          <strong class="jxr_keyword">boolean</strong> matches( String text )
+<a name="86" href="#86">86</a>          {
+<a name="87" href="#87">87</a>              <strong class="jxr_keyword">boolean</strong> result;
+<a name="88" href="#88">88</a>  
+<a name="89" href="#89">89</a>              <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == text )
+<a name="90" href="#90">90</a>              {
+<a name="91" href="#91">91</a>                  result = m_instruction.matches( m_defaultValue );
+<a name="92" href="#92">92</a>              }
+<a name="93" href="#93">93</a>              <strong class="jxr_keyword">else</strong>
+<a name="94" href="#94">94</a>              {
+<a name="95" href="#95">95</a>                  result = m_instruction.matches( text );
+<a name="96" href="#96">96</a>              }
+<a name="97" href="#97">97</a>  
+<a name="98" href="#98">98</a>              <strong class="jxr_keyword">return</strong> m_instruction.isNegated() ? !result : result;
+<a name="99" href="#99">99</a>          }
+<a name="100" href="#100">100</a>     }
+<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">protected</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> processInstructions( Map instructions ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="104" href="#104">104</a>     {
+<a name="105" href="#105">105</a>         <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a> filter;
+<a name="106" href="#106">106</a>         <strong class="jxr_keyword">for</strong> ( Iterator clauseIterator = instructions.entrySet().iterator(); clauseIterator.hasNext(); )
+<a name="107" href="#107">107</a>         {
+<a name="108" href="#108">108</a>             String inline = <span class="jxr_string">"false"</span>;
+<a name="109" href="#109">109</a> 
+<a name="110" href="#110">110</a>             <em class="jxr_comment">// must use a fresh *modifiable* collection for each unique clause</em>
+<a name="111" href="#111">111</a>             Collection filteredDependencies = <strong class="jxr_keyword">new</strong> HashSet( m_dependencyArtifacts );
+<a name="112" href="#112">112</a> 
+<a name="113" href="#113">113</a>             <em class="jxr_comment">// CLAUSE: REGEXP --&gt; { ATTRIBUTE MAP }</em>
+<a name="114" href="#114">114</a>             Map.Entry clause = ( Map.Entry ) clauseIterator.next();
+<a name="115" href="#115">115</a>             StringBuilder tag = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a name="116" href="#116">116</a>             tag.append( clause.getKey() );
+<a name="117" href="#117">117</a> 
+<a name="118" href="#118">118</a>             <strong class="jxr_keyword">if</strong> ( !( ( String ) clause.getKey() ).matches( <span class="jxr_string">"&#92;&#92;*~*"</span> ) )
+<a name="119" href="#119">119</a>             {
+<a name="120" href="#120">120</a>                 filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) clause.getKey() )
+<a name="121" href="#121">121</a>                 {
+<a name="122" href="#122">122</a>                     <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency )
+<a name="123" href="#123">123</a>                     {
+<a name="124" href="#124">124</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getArtifactId() );
+<a name="125" href="#125">125</a>                     }
+<a name="126" href="#126">126</a>                 };
+<a name="127" href="#127">127</a>                 <em class="jxr_comment">// FILTER ON MAIN CLAUSE</em>
+<a name="128" href="#128">128</a>                 filter.filter( filteredDependencies );
+<a name="129" href="#129">129</a>             }
+<a name="130" href="#130">130</a> 
+<a name="131" href="#131">131</a>             <strong class="jxr_keyword">for</strong> ( Iterator attrIterator = ( ( Map ) clause.getValue() ).entrySet().iterator(); attrIterator.hasNext(); )
+<a name="132" href="#132">132</a>             {
+<a name="133" href="#133">133</a>                 <em class="jxr_comment">// ATTRIBUTE: KEY --&gt; REGEXP</em>
+<a name="134" href="#134">134</a>                 Map.Entry attr = ( Map.Entry ) attrIterator.next();
+<a name="135" href="#135">135</a>                 tag.append( ';' ).append( attr );
+<a name="136" href="#136">136</a> 
+<a name="137" href="#137">137</a>                 <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"groupId"</span>.equals( attr.getKey() ) )
+<a name="138" href="#138">138</a>                 {
+<a name="139" href="#139">139</a>                     filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) attr.getValue() )
+<a name="140" href="#140">140</a>                     {
+<a name="141" href="#141">141</a>                         <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency )
+<a name="142" href="#142">142</a>                         {
+<a name="143" href="#143">143</a>                             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getGroupId() );
+<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> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"artifactId"</span>.equals( attr.getKey() ) )
+<a name="148" href="#148">148</a>                 {
+<a name="149" href="#149">149</a>                     filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) attr.getValue() )
+<a name="150" href="#150">150</a>                     {
+<a name="151" href="#151">151</a>                         <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency )
+<a name="152" href="#152">152</a>                         {
+<a name="153" href="#153">153</a>                             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getArtifactId() );
+<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>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"version"</span>.equals( attr.getKey() ) )
+<a name="158" href="#158">158</a>                 {
+<a name="159" href="#159">159</a>                     filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) attr.getValue() )
+<a name="160" href="#160">160</a>                     {
+<a name="161" href="#161">161</a>                         <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency )
+<a name="162" href="#162">162</a>                         {
+<a name="163" href="#163">163</a>                             <strong class="jxr_keyword">try</strong>
+<a name="164" href="#164">164</a>                             {
+<a name="165" href="#165">165</a>                                 <em class="jxr_comment">// use the symbolic version if available (ie. 1.0.0-SNAPSHOT)</em>
+<a name="166" href="#166">166</a>                                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getSelectedVersion().toString() );
+<a name="167" href="#167">167</a>                             }
+<a name="168" href="#168">168</a>                             <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="169" href="#169">169</a>                             {
+<a name="170" href="#170">170</a>                                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getVersion() );
+<a name="171" href="#171">171</a>                             }
+<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>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"scope"</span>.equals( attr.getKey() ) )
+<a name="176" href="#176">176</a>                 {
+<a name="177" href="#177">177</a>                     filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) attr.getValue(), <span class="jxr_string">"compile"</span> )
+<a name="178" href="#178">178</a>                     {
+<a name="179" href="#179">179</a>                         <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency )
+<a name="180" href="#180">180</a>                         {
+<a name="181" href="#181">181</a>                             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getScope() );
+<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>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"type"</span>.equals( attr.getKey() ) )
+<a name="186" href="#186">186</a>                 {
+<a name="187" href="#187">187</a>                     filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) attr.getValue(), <span class="jxr_string">"jar"</span> )
+<a name="188" href="#188">188</a>                     {
+<a name="189" href="#189">189</a>                         <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency )
+<a name="190" href="#190">190</a>                         {
+<a name="191" href="#191">191</a>                             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getType() );
+<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">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"classifier"</span>.equals( attr.getKey() ) )
+<a name="196" href="#196">196</a>                 {
+<a name="197" href="#197">197</a>                     filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) attr.getValue() )
+<a name="198" href="#198">198</a>                     {
+<a name="199" href="#199">199</a>                         <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency )
+<a name="200" href="#200">200</a>                         {
+<a name="201" href="#201">201</a>                             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getClassifier() );
+<a name="202" href="#202">202</a>                         }
+<a name="203" href="#203">203</a>                     };
+<a name="204" href="#204">204</a>                 }
+<a name="205" href="#205">205</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"optional"</span>.equals( attr.getKey() ) )
+<a name="206" href="#206">206</a>                 {
+<a name="207" href="#207">207</a>                     filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) attr.getValue(), <span class="jxr_string">"false"</span> )
+<a name="208" href="#208">208</a>                     {
+<a name="209" href="#209">209</a>                         <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency )
+<a name="210" href="#210">210</a>                         {
+<a name="211" href="#211">211</a>                             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( <span class="jxr_string">""</span> + dependency.isOptional() );
+<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">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"inline"</span>.equals( attr.getKey() ) )
+<a name="216" href="#216">216</a>                 {
+<a name="217" href="#217">217</a>                     inline = ( String ) attr.getValue();
+<a name="218" href="#218">218</a>                     <strong class="jxr_keyword">continue</strong>;
+<a name="219" href="#219">219</a>                 }
+<a name="220" href="#220">220</a>                 <strong class="jxr_keyword">else</strong>
+<a name="221" href="#221">221</a>                 {
+<a name="222" href="#222">222</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unexpected attribute "</span> + attr.getKey() );
+<a name="223" href="#223">223</a>                 }
+<a name="224" href="#224">224</a> 
+<a name="225" href="#225">225</a>                 <em class="jxr_comment">// FILTER ON EACH ATTRIBUTE</em>
+<a name="226" href="#226">226</a>                 filter.filter( filteredDependencies );
+<a name="227" href="#227">227</a>             }
+<a name="228" href="#228">228</a> 
+<a name="229" href="#229">229</a>             processDependencies( tag.toString(), inline, filteredDependencies );
+<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> 
+<a name="234" href="#234">234</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> processDependencies( String clause, String inline, Collection dependencies );
+<a name="235" href="#235">235</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/AntPlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AntPlugin.html
new file mode 100644
index 0000000..0cf0175
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AntPlugin.html
@@ -0,0 +1,110 @@
+<!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>AntPlugin xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.FileOutputStream;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.OutputStream;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
+<a name="27" href="#27">27</a>  
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.FileUtils;
+<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="36" href="#36">36</a>  
+<a name="37" href="#37">37</a>  
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * Generate Ant script to create the bundle (you should run ant:ant first).</em>
+<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> *</em>
+<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * @goal ant</em>
+<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * @requiresDependencyResolution test</em>
+<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * @description generate Ant script to create the bundle</em>
+<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="45" href="#45">45</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/AntPlugin.html">AntPlugin</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/BundlePlugin.html">BundlePlugin</a>
+<a name="46" href="#46">46</a>  {
+<a name="47" href="#47">47</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String BUILD_XML = <span class="jxr_string">"/build.xml"</span>;
+<a name="48" href="#48">48</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String BUILD_BND = <span class="jxr_string">"/maven-build.bnd"</span>;
+<a name="49" href="#49">49</a>  
+<a name="50" href="#50">50</a>  
+<a name="51" href="#51">51</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject currentProject, Map originalInstructions, Properties properties,
+<a name="52" href="#52">52</a>          Jar[] classpath ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="53" href="#53">53</a>      {
+<a name="54" href="#54">54</a>          <strong class="jxr_keyword">final</strong> String artifactId = getProject().getArtifactId();
+<a name="55" href="#55">55</a>          <strong class="jxr_keyword">final</strong> String baseDir = getProject().getBasedir().getPath();
+<a name="56" href="#56">56</a>  
+<a name="57" href="#57">57</a>          <strong class="jxr_keyword">try</strong>
+<a name="58" href="#58">58</a>          {
+<a name="59" href="#59">59</a>              <em class="jxr_comment">// assemble bundle as usual, but don't save it - this way we have all the instructions we need</em>
+<a name="60" href="#60">60</a>              Builder builder = buildOSGiBundle( currentProject, originalInstructions, properties, classpath );
+<a name="61" href="#61">61</a>              Properties bndProperties = builder.getProperties();
+<a name="62" href="#62">62</a>  
+<a name="63" href="#63">63</a>              <em class="jxr_comment">// cleanup and remove all non-strings from the builder properties</em>
+<a name="64" href="#64">64</a>              <strong class="jxr_keyword">for</strong> ( Iterator i = bndProperties.values().iterator(); i.hasNext(); )
+<a name="65" href="#65">65</a>              {
+<a name="66" href="#66">66</a>                  <strong class="jxr_keyword">if</strong> ( !( i.next() instanceof String ) )
+<a name="67" href="#67">67</a>                  {
+<a name="68" href="#68">68</a>                      i.remove();
+<a name="69" href="#69">69</a>                  }
+<a name="70" href="#70">70</a>              }
+<a name="71" href="#71">71</a>  
+<a name="72" href="#72">72</a>              <em class="jxr_comment">// save the BND generated bundle to the same output directory that maven uses</em>
+<a name="73" href="#73">73</a>              bndProperties.setProperty( <span class="jxr_string">"-output"</span>, <span class="jxr_string">"${maven.build.dir}/${maven.build.finalName}.jar"</span> );
+<a name="74" href="#74">74</a>  
+<a name="75" href="#75">75</a>              OutputStream out = <strong class="jxr_keyword">new</strong> FileOutputStream( baseDir + BUILD_BND );
+<a name="76" href="#76">76</a>              bndProperties.store( out, <span class="jxr_string">" Merged BND Instructions"</span> );
+<a name="77" href="#77">77</a>              IOUtil.close( out );
+<a name="78" href="#78">78</a>  
+<a name="79" href="#79">79</a>              <em class="jxr_comment">// modify build template</em>
+<a name="80" href="#80">80</a>              String buildXml = IOUtil.toString( getClass().getResourceAsStream( BUILD_XML ) );
+<a name="81" href="#81">81</a>              buildXml = StringUtils.replace( buildXml, <span class="jxr_string">"BND_VERSION"</span>, builder.getVersion() );
+<a name="82" href="#82">82</a>              buildXml = StringUtils.replace( buildXml, <span class="jxr_string">"ARTIFACT_ID"</span>, artifactId );
+<a name="83" href="#83">83</a>  
+<a name="84" href="#84">84</a>              FileUtils.fileWrite( baseDir + BUILD_XML, buildXml );
+<a name="85" href="#85">85</a>  
+<a name="86" href="#86">86</a>              <em class="jxr_comment">// cleanup...</em>
+<a name="87" href="#87">87</a>              builder.close();
+<a name="88" href="#88">88</a>          }
+<a name="89" href="#89">89</a>          <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="90" href="#90">90</a>          {
+<a name="91" href="#91">91</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Problem creating Ant script"</span>, e );
+<a name="92" href="#92">92</a>          }
+<a name="93" href="#93">93</a>  
+<a name="94" href="#94">94</a>          getLog().info( <span class="jxr_string">"Wrote Ant bundle project for "</span> + artifactId + <span class="jxr_string">" to "</span> + baseDir );
+<a name="95" href="#95">95</a>      }
+<a name="96" href="#96">96</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/BlueprintPlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BlueprintPlugin.html
new file mode 100644
index 0000000..926167e
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BlueprintPlugin.html
@@ -0,0 +1,419 @@
+<!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>BlueprintPlugin xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.BufferedReader;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.ByteArrayInputStream;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.ByteArrayOutputStream;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.io.InputStreamReader;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.net.URL;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.TreeSet;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Pattern;
+<a name="36" href="#36">36</a>  
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.Transformer;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.TransformerFactory;
+<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.stream.StreamResult;
+<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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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> }
+</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
new file mode 100644
index 0000000..4133b19
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundleAllPlugin.html
@@ -0,0 +1,616 @@
+<!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>BundleAllPlugin xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<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>  <strong class="jxr_keyword">import</strong> java.io.FilenameFilter;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Manifest;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Matcher;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Pattern;
+<a name="36" href="#36">36</a>  
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.factory.ArtifactFactory;
+<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.metadata.ArtifactMetadataSource;
+<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.repository.ArtifactRepository;
+<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.resolver.ArtifactCollector;
+<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.resolver.ArtifactNotFoundException;
+<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.resolver.ArtifactResolutionException;
+<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.resolver.ArtifactResolver;
+<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.versioning.VersionRange;
+<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProjectBuilder;
+<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.ProjectBuildingException;
+<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.artifact.InvalidDependencyVersionException;
+<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.dependency.tree.DependencyNode;
+<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.dependency.tree.DependencyTreeBuilder;
+<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="58" href="#58">58</a>  
+<a name="59" href="#59">59</a>  
+<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment"> * Create OSGi bundles from all dependencies in the Maven project</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment"> * @goal bundleall</em>
+<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment"> * @phase package</em>
+<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment"> * @requiresDependencyResolution test</em>
+<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment"> * @description build an OSGi bundle jar for all transitive dependencies</em>
+<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment"> * @deprecated The bundleall goal is no longer supported and may be removed in a future release</em>
+<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="69" href="#69">69</a>  @Deprecated
+<a name="70" href="#70">70</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleAllPlugin.html">BundleAllPlugin</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/ManifestPlugin.html">ManifestPlugin</a>
+<a name="71" href="#71">71</a>  {
+<a name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LS = System.getProperty( <span class="jxr_string">"line.separator"</span> );
+<a name="73" href="#73">73</a>  
+<a name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Pattern SNAPSHOT_VERSION_PATTERN = Pattern.compile( <span class="jxr_string">"[0-9]{8}_[0-9]{6}_[0-9]+"</span> );
+<a name="75" href="#75">75</a>  
+<a name="76" href="#76">76</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     * Local repository.</em>
+<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     * @parameter expression="${localRepository}"</em>
+<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="83" href="#83">83</a>      <strong class="jxr_keyword">private</strong> ArtifactRepository localRepository;
+<a name="84" href="#84">84</a>  
+<a name="85" href="#85">85</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     * Remote repositories.</em>
+<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     * @parameter expression="${project.remoteArtifactRepositories}"</em>
+<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="92" href="#92">92</a>      <strong class="jxr_keyword">private</strong> List remoteRepositories;
+<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">     * Import-Package to be used when wrapping dependencies.</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="${wrapImportPackage}" default-value="*"</em>
+<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="99" href="#99">99</a>      <strong class="jxr_keyword">private</strong> String wrapImportPackage;
+<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">     * @component</em>
+<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     */</em>
+<a name="104" href="#104">104</a>     <strong class="jxr_keyword">private</strong> ArtifactFactory m_factory;
+<a name="105" href="#105">105</a> 
+<a name="106" href="#106">106</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     */</em>
+<a name="109" href="#109">109</a>     <strong class="jxr_keyword">private</strong> ArtifactMetadataSource m_artifactMetadataSource;
+<a name="110" href="#110">110</a> 
+<a name="111" href="#111">111</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">     */</em>
+<a name="114" href="#114">114</a>     <strong class="jxr_keyword">private</strong> ArtifactCollector m_collector;
+<a name="115" href="#115">115</a> 
+<a name="116" href="#116">116</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="117" href="#117">117</a> <em class="jxr_javadoccomment">     * Artifact resolver, needed to download jars.</em>
+<a name="118" href="#118">118</a> <em class="jxr_javadoccomment">     * </em>
+<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     */</em>
+<a name="121" href="#121">121</a>     <strong class="jxr_keyword">private</strong> ArtifactResolver m_artifactResolver;
+<a name="122" href="#122">122</a> 
+<a name="123" href="#123">123</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">     */</em>
+<a name="126" href="#126">126</a>     <strong class="jxr_keyword">private</strong> DependencyTreeBuilder m_dependencyTreeBuilder;
+<a name="127" href="#127">127</a> 
+<a name="128" href="#128">128</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="130" href="#130">130</a> <em class="jxr_javadoccomment">     */</em>
+<a name="131" href="#131">131</a>     <strong class="jxr_keyword">private</strong> MavenProjectBuilder m_mavenProjectBuilder;
+<a name="132" href="#132">132</a> 
+<a name="133" href="#133">133</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="134" href="#134">134</a> <em class="jxr_javadoccomment">     * Ignore missing artifacts that are not required by current project but are required by the</em>
+<a name="135" href="#135">135</a> <em class="jxr_javadoccomment">     * transitive dependencies.</em>
+<a name="136" href="#136">136</a> <em class="jxr_javadoccomment">     * </em>
+<a name="137" href="#137">137</a> <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="138" href="#138">138</a> <em class="jxr_javadoccomment">     */</em>
+<a name="139" href="#139">139</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> ignoreMissingArtifacts;
+<a name="140" href="#140">140</a> 
+<a name="141" href="#141">141</a>     <strong class="jxr_keyword">private</strong> Set m_artifactsBeingProcessed = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="142" href="#142">142</a> 
+<a name="143" href="#143">143</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     * Process up to some depth </em>
+<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * </em>
+<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="147" href="#147">147</a> <em class="jxr_javadoccomment">     */</em>
+<a name="148" href="#148">148</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> depth = Integer.MAX_VALUE;
+<a name="149" href="#149">149</a> 
+<a name="150" href="#150">150</a> 
+<a name="151" href="#151">151</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="152" href="#152">152</a>     {
+<a name="153" href="#153">153</a>         getLog().warn( <span class="jxr_string">"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"</span> );
+<a name="154" href="#154">154</a>         getLog().warn( <span class="jxr_string">"! The bundleall goal is no longer supported and may be removed in a future release !"</span> );
+<a name="155" href="#155">155</a>         getLog().warn( <span class="jxr_string">"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"</span> );
+<a name="156" href="#156">156</a> 
+<a name="157" href="#157">157</a>         <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> bundleInfo = bundleAll( getProject() );
+<a name="158" href="#158">158</a>         logDuplicatedPackages( bundleInfo );
+<a name="159" href="#159">159</a>     }
+<a name="160" href="#160">160</a> 
+<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">     * Bundle a project and all its dependencies</em>
+<a name="164" href="#164">164</a> <em class="jxr_javadoccomment">     * </em>
+<a name="165" href="#165">165</a> <em class="jxr_javadoccomment">     * @param project</em>
+<a name="166" href="#166">166</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException</em>
+<a name="167" href="#167">167</a> <em class="jxr_javadoccomment">     */</em>
+<a name="168" href="#168">168</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> bundleAll( MavenProject project ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="169" href="#169">169</a>     {
+<a name="170" href="#170">170</a>         <strong class="jxr_keyword">return</strong> bundleAll( project, depth );
+<a name="171" href="#171">171</a>     }
+<a name="172" href="#172">172</a> 
+<a name="173" href="#173">173</a> 
+<a name="174" href="#174">174</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="175" href="#175">175</a> <em class="jxr_javadoccomment">     * Bundle a project and its transitive dependencies up to some depth level</em>
+<a name="176" href="#176">176</a> <em class="jxr_javadoccomment">     * </em>
+<a name="177" href="#177">177</a> <em class="jxr_javadoccomment">     * @param project</em>
+<a name="178" href="#178">178</a> <em class="jxr_javadoccomment">     * @param maxDepth how deep to process the dependency tree</em>
+<a name="179" href="#179">179</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException</em>
+<a name="180" href="#180">180</a> <em class="jxr_javadoccomment">     */</em>
+<a name="181" href="#181">181</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> bundleAll( MavenProject project, <strong class="jxr_keyword">int</strong> maxDepth ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="182" href="#182">182</a>     {
+<a name="183" href="#183">183</a>         <strong class="jxr_keyword">if</strong> ( alreadyBundled( project.getArtifact() ) )
+<a name="184" href="#184">184</a>         {
+<a name="185" href="#185">185</a>             getLog().debug( <span class="jxr_string">"Ignoring project already processed "</span> + project.getArtifact() );
+<a name="186" href="#186">186</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="187" href="#187">187</a>         }
+<a name="188" href="#188">188</a> 
+<a name="189" href="#189">189</a>         <strong class="jxr_keyword">if</strong> ( m_artifactsBeingProcessed.contains( project.getArtifact() ) )
+<a name="190" href="#190">190</a>         {
+<a name="191" href="#191">191</a>             getLog().warn( <span class="jxr_string">"Ignoring artifact due to dependency cycle "</span> + project.getArtifact() );
+<a name="192" href="#192">192</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="193" href="#193">193</a>         }
+<a name="194" href="#194">194</a>         m_artifactsBeingProcessed.add( project.getArtifact() );
+<a name="195" href="#195">195</a> 
+<a name="196" href="#196">196</a>         DependencyNode dependencyTree;
+<a name="197" href="#197">197</a> 
+<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>             dependencyTree = m_dependencyTreeBuilder.buildDependencyTree( project, localRepository, m_factory,
+<a name="201" href="#201">201</a>                 m_artifactMetadataSource, <strong class="jxr_keyword">null</strong>, m_collector );
+<a name="202" href="#202">202</a>         }
+<a name="203" href="#203">203</a>         <strong class="jxr_keyword">catch</strong> ( DependencyTreeBuilderException e )
+<a name="204" href="#204">204</a>         {
+<a name="205" href="#205">205</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to build dependency tree"</span>, e );
+<a name="206" href="#206">206</a>         }
+<a name="207" href="#207">207</a> 
+<a name="208" href="#208">208</a>         <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> bundleInfo = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a>();
+<a name="209" href="#209">209</a> 
+<a name="210" href="#210">210</a>         <strong class="jxr_keyword">if</strong> ( !dependencyTree.hasChildren() )
+<a name="211" href="#211">211</a>         {
+<a name="212" href="#212">212</a>             <em class="jxr_comment">/*<em class="jxr_comment"> no need to traverse the tree */</em></em>
+<a name="213" href="#213">213</a>             <strong class="jxr_keyword">return</strong> bundleRoot( project, bundleInfo );
+<a name="214" href="#214">214</a>         }
+<a name="215" href="#215">215</a> 
+<a name="216" href="#216">216</a>         getLog().debug( <span class="jxr_string">"Will bundle the following dependency tree"</span> + LS + dependencyTree );
+<a name="217" href="#217">217</a> 
+<a name="218" href="#218">218</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = dependencyTree.inverseIterator(); it.hasNext(); )
+<a name="219" href="#219">219</a>         {
+<a name="220" href="#220">220</a>             DependencyNode node = ( DependencyNode ) it.next();
+<a name="221" href="#221">221</a>             <strong class="jxr_keyword">if</strong> ( !it.hasNext() )
+<a name="222" href="#222">222</a>             {
+<a name="223" href="#223">223</a>                 <em class="jxr_comment">/*<em class="jxr_comment"> this is the root, current project */</em></em>
+<a name="224" href="#224">224</a>                 <strong class="jxr_keyword">break</strong>;
+<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">if</strong> ( node.getState() != DependencyNode.INCLUDED )
+<a name="228" href="#228">228</a>             {
+<a name="229" href="#229">229</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="230" href="#230">230</a>             }
+<a name="231" href="#231">231</a> 
+<a name="232" href="#232">232</a>             <strong class="jxr_keyword">if</strong> ( Artifact.SCOPE_SYSTEM.equals( node.getArtifact().getScope() ) )
+<a name="233" href="#233">233</a>             {
+<a name="234" href="#234">234</a>                 getLog().debug( <span class="jxr_string">"Ignoring system scoped artifact "</span> + node.getArtifact() );
+<a name="235" href="#235">235</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="236" href="#236">236</a>             }
+<a name="237" href="#237">237</a> 
+<a name="238" href="#238">238</a>             Artifact artifact;
+<a name="239" href="#239">239</a>             <strong class="jxr_keyword">try</strong>
+<a name="240" href="#240">240</a>             {
+<a name="241" href="#241">241</a>                 artifact = resolveArtifact( node.getArtifact() );
+<a name="242" href="#242">242</a>             }
+<a name="243" href="#243">243</a>             <strong class="jxr_keyword">catch</strong> ( ArtifactNotFoundException e )
+<a name="244" href="#244">244</a>             {
+<a name="245" href="#245">245</a>                 <strong class="jxr_keyword">if</strong> ( ignoreMissingArtifacts )
+<a name="246" href="#246">246</a>                 {
+<a name="247" href="#247">247</a>                     <strong class="jxr_keyword">continue</strong>;
+<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">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Artifact was not found in the repo"</span> + node.getArtifact(), e );
+<a name="251" href="#251">251</a>             }
+<a name="252" href="#252">252</a> 
+<a name="253" href="#253">253</a>             node.getArtifact().setFile( artifact.getFile() );
+<a name="254" href="#254">254</a> 
+<a name="255" href="#255">255</a>             <strong class="jxr_keyword">int</strong> nodeDepth = node.getDepth();
+<a name="256" href="#256">256</a>             <strong class="jxr_keyword">if</strong> ( nodeDepth &gt; maxDepth )
+<a name="257" href="#257">257</a>             {
+<a name="258" href="#258">258</a>                 <em class="jxr_comment">/*<em class="jxr_comment"> node is deeper than we want */</em></em>
+<a name="259" href="#259">259</a>                 getLog().debug(
+<a name="260" href="#260">260</a>                     <span class="jxr_string">"Ignoring "</span> + node.getArtifact() + <span class="jxr_string">", depth is "</span> + nodeDepth + <span class="jxr_string">", bigger than "</span> + maxDepth );
+<a name="261" href="#261">261</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="262" href="#262">262</a>             }
+<a name="263" href="#263">263</a> 
+<a name="264" href="#264">264</a>             MavenProject childProject;
+<a name="265" href="#265">265</a>             <strong class="jxr_keyword">try</strong>
+<a name="266" href="#266">266</a>             {
+<a name="267" href="#267">267</a>                 childProject = m_mavenProjectBuilder.buildFromRepository( artifact, remoteRepositories,
+<a name="268" href="#268">268</a>                     localRepository, <strong class="jxr_keyword">true</strong> );
+<a name="269" href="#269">269</a>                 <strong class="jxr_keyword">if</strong> ( childProject.getDependencyArtifacts() == <strong class="jxr_keyword">null</strong> )
+<a name="270" href="#270">270</a>                 {
+<a name="271" href="#271">271</a>                     childProject.setDependencyArtifacts( childProject.createArtifacts( m_factory, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> ) );
+<a name="272" href="#272">272</a>                 }
+<a name="273" href="#273">273</a>             }
+<a name="274" href="#274">274</a>             <strong class="jxr_keyword">catch</strong> ( ProjectBuildingException e )
+<a name="275" href="#275">275</a>             {
+<a name="276" href="#276">276</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to build project object for artifact "</span> + artifact, e );
+<a name="277" href="#277">277</a>             }
+<a name="278" href="#278">278</a>             <strong class="jxr_keyword">catch</strong> ( InvalidDependencyVersionException e )
+<a name="279" href="#279">279</a>             {
+<a name="280" href="#280">280</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Invalid dependency version for artifact "</span> + artifact );
+<a name="281" href="#281">281</a>             }
+<a name="282" href="#282">282</a> 
+<a name="283" href="#283">283</a>             childProject.setArtifact( artifact );
+<a name="284" href="#284">284</a>             getLog().debug( <span class="jxr_string">"Child project artifact location: "</span> + childProject.getArtifact().getFile() );
+<a name="285" href="#285">285</a> 
+<a name="286" href="#286">286</a>             <strong class="jxr_keyword">if</strong> ( ( Artifact.SCOPE_COMPILE.equals( artifact.getScope() ) )
+<a name="287" href="#287">287</a>                 || ( Artifact.SCOPE_RUNTIME.equals( artifact.getScope() ) ) )
+<a name="288" href="#288">288</a>             {
+<a name="289" href="#289">289</a>                 <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> subBundleInfo = bundleAll( childProject, maxDepth - 1 );
+<a name="290" href="#290">290</a>                 <strong class="jxr_keyword">if</strong> ( subBundleInfo != <strong class="jxr_keyword">null</strong> )
+<a name="291" href="#291">291</a>                 {
+<a name="292" href="#292">292</a>                     bundleInfo.merge( subBundleInfo );
+<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>
+<a name="296" href="#296">296</a>             {
+<a name="297" href="#297">297</a>                 getLog().debug(
+<a name="298" href="#298">298</a>                     <span class="jxr_string">"Not processing due to scope ("</span> + childProject.getArtifact().getScope() + <span class="jxr_string">"): "</span>
+<a name="299" href="#299">299</a>                         + childProject.getArtifact() );
+<a name="300" href="#300">300</a>             }
+<a name="301" href="#301">301</a>         }
+<a name="302" href="#302">302</a> 
+<a name="303" href="#303">303</a>         <strong class="jxr_keyword">return</strong> bundleRoot( project, bundleInfo );
+<a name="304" href="#304">304</a>     }
+<a name="305" href="#305">305</a> 
+<a name="306" href="#306">306</a> 
+<a name="307" href="#307">307</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="308" href="#308">308</a> <em class="jxr_javadoccomment">     * Bundle the root of a dependency tree after all its children have been bundled</em>
+<a name="309" href="#309">309</a> <em class="jxr_javadoccomment">     * </em>
+<a name="310" href="#310">310</a> <em class="jxr_javadoccomment">     * @param project</em>
+<a name="311" href="#311">311</a> <em class="jxr_javadoccomment">     * @param bundleInfo</em>
+<a name="312" href="#312">312</a> <em class="jxr_javadoccomment">     * @return</em>
+<a name="313" href="#313">313</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException</em>
+<a name="314" href="#314">314</a> <em class="jxr_javadoccomment">     */</em>
+<a name="315" href="#315">315</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> bundleRoot( MavenProject project, BundleInfo bundleInfo ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="316" href="#316">316</a>     {
+<a name="317" href="#317">317</a>         <em class="jxr_comment">/*<em class="jxr_comment"> do not bundle the project the mojo was called on */</em></em>
+<a name="318" href="#318">318</a>         <strong class="jxr_keyword">if</strong> ( getProject() != project )
+<a name="319" href="#319">319</a>         {
+<a name="320" href="#320">320</a>             getLog().debug( <span class="jxr_string">"Project artifact location: "</span> + project.getArtifact().getFile() );
+<a name="321" href="#321">321</a> 
+<a name="322" href="#322">322</a>             <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> subBundleInfo = bundle( project );
+<a name="323" href="#323">323</a>             <strong class="jxr_keyword">if</strong> ( subBundleInfo != <strong class="jxr_keyword">null</strong> )
+<a name="324" href="#324">324</a>             {
+<a name="325" href="#325">325</a>                 bundleInfo.merge( subBundleInfo );
+<a name="326" href="#326">326</a>             }
+<a name="327" href="#327">327</a>         }
+<a name="328" href="#328">328</a>         <strong class="jxr_keyword">return</strong> bundleInfo;
+<a name="329" href="#329">329</a>     }
+<a name="330" href="#330">330</a> 
+<a name="331" href="#331">331</a> 
+<a name="332" href="#332">332</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="333" href="#333">333</a> <em class="jxr_javadoccomment">     * Bundle one project only without building its childre</em>
+<a name="334" href="#334">334</a> <em class="jxr_javadoccomment">     * </em>
+<a name="335" href="#335">335</a> <em class="jxr_javadoccomment">     * @param project</em>
+<a name="336" href="#336">336</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException</em>
+<a name="337" href="#337">337</a> <em class="jxr_javadoccomment">     */</em>
+<a name="338" href="#338">338</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> bundle( MavenProject project ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="339" href="#339">339</a>     {
+<a name="340" href="#340">340</a>         Artifact artifact = project.getArtifact();
+<a name="341" href="#341">341</a>         getLog().info( <span class="jxr_string">"Bundling "</span> + artifact );
+<a name="342" href="#342">342</a> 
+<a name="343" href="#343">343</a>         <strong class="jxr_keyword">try</strong>
+<a name="344" href="#344">344</a>         {
+<a name="345" href="#345">345</a>             Map instructions = <strong class="jxr_keyword">new</strong> LinkedHashMap();
+<a name="346" href="#346">346</a>             instructions.put( Analyzer.IMPORT_PACKAGE, wrapImportPackage );
+<a name="347" href="#347">347</a> 
+<a name="348" href="#348">348</a>             project.getArtifact().setFile( getFile( artifact ) );
+<a name="349" href="#349">349</a>             File outputFile = getOutputFile( artifact );
+<a name="350" href="#350">350</a> 
+<a name="351" href="#351">351</a>             <strong class="jxr_keyword">if</strong> ( project.getArtifact().getFile().equals( outputFile ) )
+<a name="352" href="#352">352</a>             {
+<a name="353" href="#353">353</a>                 <em class="jxr_comment">/*<em class="jxr_comment"> TODO find the cause why it's getting here */</em></em>
+<a name="354" href="#354">354</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="355" href="#355">355</a>                 <em class="jxr_comment">//                getLog().error(</em>
+<a name="356" href="#356">356</a>                 <em class="jxr_comment">//                                "Trying to read and write " + artifact + " to the same file, try cleaning: "</em>
+<a name="357" href="#357">357</a>                 <em class="jxr_comment">//                                    + outputFile );</em>
+<a name="358" href="#358">358</a>                 <em class="jxr_comment">//                throw new IllegalStateException( "Trying to read and write " + artifact</em>
+<a name="359" href="#359">359</a>                 <em class="jxr_comment">//                    + " to the same file, try cleaning: " + outputFile );</em>
+<a name="360" href="#360">360</a>             }
+<a name="361" href="#361">361</a> 
+<a name="362" href="#362">362</a>             Analyzer analyzer = getAnalyzer( project, instructions, <strong class="jxr_keyword">new</strong> Properties(), getClasspath( project ) );
+<a name="363" href="#363">363</a> 
+<a name="364" href="#364">364</a>             Jar osgiJar = <strong class="jxr_keyword">new</strong> Jar( project.getArtifactId(), project.getArtifact().getFile() );
+<a name="365" href="#365">365</a> 
+<a name="366" href="#366">366</a>             outputFile.getAbsoluteFile().getParentFile().mkdirs();
+<a name="367" href="#367">367</a> 
+<a name="368" href="#368">368</a>             Collection exportedPackages;
+<a name="369" href="#369">369</a>             <strong class="jxr_keyword">if</strong> ( isOsgi( osgiJar ) )
+<a name="370" href="#370">370</a>             {
+<a name="371" href="#371">371</a>                 <em class="jxr_comment">/*<em class="jxr_comment"> if it is already an OSGi jar copy it as is */</em></em>
+<a name="372" href="#372">372</a>                 getLog().info(
+<a name="373" href="#373">373</a>                     <span class="jxr_string">"Using existing OSGi bundle for "</span> + project.getGroupId() + <span class="jxr_string">":"</span> + project.getArtifactId() + <span class="jxr_string">":"</span>
+<a name="374" href="#374">374</a>                         + project.getVersion() );
+<a name="375" href="#375">375</a>                 String exportHeader = osgiJar.getManifest().getMainAttributes().getValue( Analyzer.EXPORT_PACKAGE );
+<a name="376" href="#376">376</a>                 exportedPackages = analyzer.parseHeader( exportHeader ).keySet();
+<a name="377" href="#377">377</a>                 FileUtils.copyFile( project.getArtifact().getFile(), outputFile );
+<a name="378" href="#378">378</a>             }
+<a name="379" href="#379">379</a>             <strong class="jxr_keyword">else</strong>
+<a name="380" href="#380">380</a>             {
+<a name="381" href="#381">381</a>                 <em class="jxr_comment">/*<em class="jxr_comment"> else generate the manifest from the packages */</em></em>
+<a name="382" href="#382">382</a>                 exportedPackages = analyzer.getExports().keySet();
+<a name="383" href="#383">383</a>                 Manifest manifest = analyzer.getJar().getManifest();
+<a name="384" href="#384">384</a>                 osgiJar.setManifest( manifest );
+<a name="385" href="#385">385</a>                 osgiJar.write( outputFile );
+<a name="386" href="#386">386</a>             }
+<a name="387" href="#387">387</a> 
+<a name="388" href="#388">388</a>             <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> bundleInfo = addExportedPackages( project, exportedPackages );
+<a name="389" href="#389">389</a> 
+<a name="390" href="#390">390</a>             <em class="jxr_comment">// cleanup...</em>
+<a name="391" href="#391">391</a>             analyzer.close();
+<a name="392" href="#392">392</a>             osgiJar.close();
+<a name="393" href="#393">393</a> 
+<a name="394" href="#394">394</a>             <strong class="jxr_keyword">return</strong> bundleInfo;
+<a name="395" href="#395">395</a>         }
+<a name="396" href="#396">396</a>         <em class="jxr_comment">/*<em class="jxr_comment"> too bad Jar.write throws Exception */</em></em>
+<a name="397" href="#397">397</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="398" href="#398">398</a>         {
+<a name="399" href="#399">399</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error generating OSGi bundle for project "</span>
+<a name="400" href="#400">400</a>                 + getArtifactKey( project.getArtifact() ), e );
+<a name="401" href="#401">401</a>         }
+<a name="402" href="#402">402</a>     }
+<a name="403" href="#403">403</a> 
+<a name="404" href="#404">404</a> 
+<a name="405" href="#405">405</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> isOsgi( Jar jar ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="406" href="#406">406</a>     {
+<a name="407" href="#407">407</a>         <strong class="jxr_keyword">if</strong> ( jar.getManifest() != <strong class="jxr_keyword">null</strong> )
+<a name="408" href="#408">408</a>         {
+<a name="409" href="#409">409</a>             <strong class="jxr_keyword">return</strong> jar.getManifest().getMainAttributes().getValue( Analyzer.BUNDLE_NAME ) != <strong class="jxr_keyword">null</strong>;
+<a name="410" href="#410">410</a>         }
+<a name="411" href="#411">411</a>         <strong class="jxr_keyword">return</strong> false;
+<a name="412" href="#412">412</a>     }
+<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">private</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> addExportedPackages( MavenProject project, Collection packages )
+<a name="416" href="#416">416</a>     {
+<a name="417" href="#417">417</a>         <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> bundleInfo = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a>();
+<a name="418" href="#418">418</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = packages.iterator(); it.hasNext(); )
+<a name="419" href="#419">419</a>         {
+<a name="420" href="#420">420</a>             String packageName = ( String ) it.next();
+<a name="421" href="#421">421</a>             bundleInfo.addExportedPackage( packageName, project.getArtifact() );
+<a name="422" href="#422">422</a>         }
+<a name="423" href="#423">423</a>         <strong class="jxr_keyword">return</strong> bundleInfo;
+<a name="424" href="#424">424</a>     }
+<a name="425" href="#425">425</a> 
+<a name="426" href="#426">426</a> 
+<a name="427" href="#427">427</a>     <strong class="jxr_keyword">private</strong> String getArtifactKey( Artifact artifact )
+<a name="428" href="#428">428</a>     {
+<a name="429" href="#429">429</a>         <strong class="jxr_keyword">return</strong> artifact.getGroupId() + <span class="jxr_string">":"</span> + artifact.getArtifactId();
+<a name="430" href="#430">430</a>     }
+<a name="431" href="#431">431</a> 
+<a name="432" href="#432">432</a> 
+<a name="433" href="#433">433</a>     <strong class="jxr_keyword">private</strong> String getBundleName( Artifact artifact )
+<a name="434" href="#434">434</a>     {
+<a name="435" href="#435">435</a>         <strong class="jxr_keyword">return</strong> getMaven2OsgiConverter().getBundleFileName( artifact );
+<a name="436" href="#436">436</a>     }
+<a name="437" href="#437">437</a> 
+<a name="438" href="#438">438</a> 
+<a name="439" href="#439">439</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> alreadyBundled( Artifact artifact )
+<a name="440" href="#440">440</a>     {
+<a name="441" href="#441">441</a>         <strong class="jxr_keyword">return</strong> getBuiltFile( artifact ) != <strong class="jxr_keyword">null</strong>;
+<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>     <em class="jxr_javadoccomment">/**</em>
+<a name="446" href="#446">446</a> <em class="jxr_javadoccomment">     * Use previously built bundles when available.</em>
+<a name="447" href="#447">447</a> <em class="jxr_javadoccomment">     * </em>
+<a name="448" href="#448">448</a> <em class="jxr_javadoccomment">     * @param artifact</em>
+<a name="449" href="#449">449</a> <em class="jxr_javadoccomment">     */</em>
+<a name="450" href="#450">450</a>     <strong class="jxr_keyword">protected</strong> File getFile( <strong class="jxr_keyword">final</strong> Artifact artifact )
+<a name="451" href="#451">451</a>     {
+<a name="452" href="#452">452</a>         File bundle = getBuiltFile( artifact );
+<a name="453" href="#453">453</a> 
+<a name="454" href="#454">454</a>         <strong class="jxr_keyword">if</strong> ( bundle != <strong class="jxr_keyword">null</strong> )
+<a name="455" href="#455">455</a>         {
+<a name="456" href="#456">456</a>             getLog().debug( <span class="jxr_string">"Using previously built OSGi bundle for "</span> + artifact + <span class="jxr_string">" in "</span> + bundle );
+<a name="457" href="#457">457</a>             <strong class="jxr_keyword">return</strong> bundle;
+<a name="458" href="#458">458</a>         }
+<a name="459" href="#459">459</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.getFile( artifact );
+<a name="460" href="#460">460</a>     }
+<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">private</strong> File getBuiltFile( <strong class="jxr_keyword">final</strong> Artifact artifact )
+<a name="464" href="#464">464</a>     {
+<a name="465" href="#465">465</a>         File bundle = <strong class="jxr_keyword">null</strong>;
+<a name="466" href="#466">466</a> 
+<a name="467" href="#467">467</a>         <em class="jxr_comment">/*<em class="jxr_comment"> if bundle was already built use it instead of jar from repo */</em></em>
+<a name="468" href="#468">468</a>         File outputFile = getOutputFile( artifact );
+<a name="469" href="#469">469</a>         <strong class="jxr_keyword">if</strong> ( outputFile.exists() )
+<a name="470" href="#470">470</a>         {
+<a name="471" href="#471">471</a>             bundle = outputFile;
+<a name="472" href="#472">472</a>         }
+<a name="473" href="#473">473</a> 
+<a name="474" href="#474">474</a>         <em class="jxr_comment">/*</em>
+<a name="475" href="#475">475</a> <em class="jxr_comment">         * Find snapshots in output folder, eg. 2.1-SNAPSHOT will match 2.1.0.20070207_193904_2</em>
+<a name="476" href="#476">476</a> <em class="jxr_comment">         * TODO there has to be another way to do this using Maven libs </em>
+<a name="477" href="#477">477</a> <em class="jxr_comment">         */</em>
+<a name="478" href="#478">478</a>         <strong class="jxr_keyword">if</strong> ( ( bundle == <strong class="jxr_keyword">null</strong> ) &amp;&amp; artifact.isSnapshot() )
+<a name="479" href="#479">479</a>         {
+<a name="480" href="#480">480</a>             <strong class="jxr_keyword">final</strong> File buildDirectory = <strong class="jxr_keyword">new</strong> File( getBuildDirectory() );
+<a name="481" href="#481">481</a>             <strong class="jxr_keyword">if</strong> ( !buildDirectory.exists() )
+<a name="482" href="#482">482</a>             {
+<a name="483" href="#483">483</a>                 buildDirectory.mkdirs();
+<a name="484" href="#484">484</a>             }
+<a name="485" href="#485">485</a>             File[] files = buildDirectory.listFiles( <strong class="jxr_keyword">new</strong> FilenameFilter()
+<a name="486" href="#486">486</a>             {
+<a name="487" href="#487">487</a>                 <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> accept( File dir, String name )
+<a name="488" href="#488">488</a>                 {
+<a name="489" href="#489">489</a>                     <strong class="jxr_keyword">if</strong> ( dir.equals( buildDirectory ) &amp;&amp; snapshotMatch( artifact, name ) )
+<a name="490" href="#490">490</a>                     {
+<a name="491" href="#491">491</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
+<a name="492" href="#492">492</a>                     }
+<a name="493" href="#493">493</a>                     <strong class="jxr_keyword">return</strong> false;
+<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">if</strong> ( files.length &gt; 1 )
+<a name="497" href="#497">497</a>             {
+<a name="498" href="#498">498</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException( <span class="jxr_string">"More than one previously built bundle matches for artifact "</span> + artifact
+<a name="499" href="#499">499</a>                     + <span class="jxr_string">" : "</span> + Arrays.asList( files ) );
+<a name="500" href="#500">500</a>             }
+<a name="501" href="#501">501</a>             <strong class="jxr_keyword">if</strong> ( files.length == 1 )
+<a name="502" href="#502">502</a>             {
+<a name="503" href="#503">503</a>                 bundle = files[0];
+<a name="504" href="#504">504</a>             }
+<a name="505" href="#505">505</a>         }
+<a name="506" href="#506">506</a> 
+<a name="507" href="#507">507</a>         <strong class="jxr_keyword">return</strong> bundle;
+<a name="508" href="#508">508</a>     }
+<a name="509" href="#509">509</a> 
+<a name="510" href="#510">510</a> 
+<a name="511" href="#511">511</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="512" href="#512">512</a> <em class="jxr_javadoccomment">     * Check that the bundleName provided correspond to the artifact provided.</em>
+<a name="513" href="#513">513</a> <em class="jxr_javadoccomment">     * Used to determine when the bundle name is a timestamped snapshot and the artifact is a snapshot not timestamped.</em>
+<a name="514" href="#514">514</a> <em class="jxr_javadoccomment">     * </em>
+<a name="515" href="#515">515</a> <em class="jxr_javadoccomment">     * @param artifact artifact with snapshot version</em>
+<a name="516" href="#516">516</a> <em class="jxr_javadoccomment">     * @param bundleName bundle file name </em>
+<a name="517" href="#517">517</a> <em class="jxr_javadoccomment">     * @return if both represent the same artifact and version, forgetting about the snapshot timestamp</em>
+<a name="518" href="#518">518</a> <em class="jxr_javadoccomment">     */</em>
+<a name="519" href="#519">519</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> snapshotMatch( Artifact artifact, String bundleName )
+<a name="520" href="#520">520</a>     {
+<a name="521" href="#521">521</a>         String artifactBundleName = getBundleName( artifact );
+<a name="522" href="#522">522</a>         <strong class="jxr_keyword">int</strong> i = artifactBundleName.indexOf( <span class="jxr_string">"SNAPSHOT"</span> );
+<a name="523" href="#523">523</a>         <strong class="jxr_keyword">if</strong> ( i &lt; 0 )
+<a name="524" href="#524">524</a>         {
+<a name="525" href="#525">525</a>             <strong class="jxr_keyword">return</strong> false;
+<a name="526" href="#526">526</a>         }
+<a name="527" href="#527">527</a>         artifactBundleName = artifactBundleName.substring( 0, i );
+<a name="528" href="#528">528</a> 
+<a name="529" href="#529">529</a>         <strong class="jxr_keyword">if</strong> ( bundleName.startsWith( artifactBundleName ) )
+<a name="530" href="#530">530</a>         {
+<a name="531" href="#531">531</a>             <em class="jxr_comment">/*<em class="jxr_comment"> it's the same artifact groupId and artifactId */</em></em>
+<a name="532" href="#532">532</a>             String timestamp = bundleName.substring( artifactBundleName.length(), bundleName.lastIndexOf( <span class="jxr_string">".jar"</span> ) );
+<a name="533" href="#533">533</a>             Matcher m = SNAPSHOT_VERSION_PATTERN.matcher( timestamp );
+<a name="534" href="#534">534</a>             <strong class="jxr_keyword">return</strong> m.matches();
+<a name="535" href="#535">535</a>         }
+<a name="536" href="#536">536</a>         <strong class="jxr_keyword">return</strong> false;
+<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> File getOutputFile( Artifact artifact )
+<a name="541" href="#541">541</a>     {
+<a name="542" href="#542">542</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> File( getOutputDirectory(), getBundleName( artifact ) );
+<a name="543" href="#543">543</a>     }
+<a name="544" href="#544">544</a> 
+<a name="545" href="#545">545</a> 
+<a name="546" href="#546">546</a>     <strong class="jxr_keyword">private</strong> Artifact resolveArtifact( Artifact artifact ) <strong class="jxr_keyword">throws</strong> MojoExecutionException, ArtifactNotFoundException
+<a name="547" href="#547">547</a>     {
+<a name="548" href="#548">548</a>         VersionRange versionRange;
+<a name="549" href="#549">549</a>         <strong class="jxr_keyword">if</strong> ( artifact.getVersion() != <strong class="jxr_keyword">null</strong> )
+<a name="550" href="#550">550</a>         {
+<a name="551" href="#551">551</a>             versionRange = VersionRange.createFromVersion( artifact.getVersion() );
+<a name="552" href="#552">552</a>         }
+<a name="553" href="#553">553</a>         <strong class="jxr_keyword">else</strong>
+<a name="554" href="#554">554</a>         {
+<a name="555" href="#555">555</a>             versionRange = artifact.getVersionRange();
+<a name="556" href="#556">556</a>         }
+<a name="557" href="#557">557</a> 
+<a name="558" href="#558">558</a>         <em class="jxr_comment">/*</em>
+<a name="559" href="#559">559</a> <em class="jxr_comment">         * there's a bug with ArtifactFactory#createDependencyArtifact(String, String, VersionRange,</em>
+<a name="560" href="#560">560</a> <em class="jxr_comment">         * String, String, String) that ignores the scope parameter, that's why we use the one with</em>
+<a name="561" href="#561">561</a> <em class="jxr_comment">         * the extra null parameter</em>
+<a name="562" href="#562">562</a> <em class="jxr_comment">         */</em>
+<a name="563" href="#563">563</a>         Artifact resolvedArtifact = m_factory.createDependencyArtifact( artifact.getGroupId(),
+<a name="564" href="#564">564</a>             artifact.getArtifactId(), versionRange, artifact.getType(), artifact.getClassifier(), artifact.getScope(),
+<a name="565" href="#565">565</a>             <strong class="jxr_keyword">null</strong> );
+<a name="566" href="#566">566</a> 
+<a name="567" href="#567">567</a>         <strong class="jxr_keyword">try</strong>
+<a name="568" href="#568">568</a>         {
+<a name="569" href="#569">569</a>             m_artifactResolver.resolve( resolvedArtifact, remoteRepositories, localRepository );
+<a name="570" href="#570">570</a>         }
+<a name="571" href="#571">571</a>         <strong class="jxr_keyword">catch</strong> ( ArtifactResolutionException e )
+<a name="572" href="#572">572</a>         {
+<a name="573" href="#573">573</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error resolving artifact "</span> + resolvedArtifact, e );
+<a name="574" href="#574">574</a>         }
+<a name="575" href="#575">575</a> 
+<a name="576" href="#576">576</a>         <strong class="jxr_keyword">return</strong> resolvedArtifact;
+<a name="577" href="#577">577</a>     }
+<a name="578" href="#578">578</a> 
+<a name="579" href="#579">579</a> 
+<a name="580" href="#580">580</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="581" href="#581">581</a> <em class="jxr_javadoccomment">     * Log what packages are exported in more than one bundle</em>
+<a name="582" href="#582">582</a> <em class="jxr_javadoccomment">     */</em>
+<a name="583" href="#583">583</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> logDuplicatedPackages( BundleInfo bundleInfo )
+<a name="584" href="#584">584</a>     {
+<a name="585" href="#585">585</a>         Map duplicatedExports = bundleInfo.getDuplicatedExports();
+<a name="586" href="#586">586</a> 
+<a name="587" href="#587">587</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = duplicatedExports.entrySet().iterator(); it.hasNext(); )
+<a name="588" href="#588">588</a>         {
+<a name="589" href="#589">589</a>             Map.Entry entry = ( Map.Entry ) it.next();
+<a name="590" href="#590">590</a>             String packageName = ( String ) entry.getKey();
+<a name="591" href="#591">591</a>             Collection artifacts = ( Collection ) entry.getValue();
+<a name="592" href="#592">592</a> 
+<a name="593" href="#593">593</a>             getLog().warn( <span class="jxr_string">"Package "</span> + packageName + <span class="jxr_string">" is exported in more than a bundle: "</span> );
+<a name="594" href="#594">594</a>             <strong class="jxr_keyword">for</strong> ( Iterator it2 = artifacts.iterator(); it2.hasNext(); )
+<a name="595" href="#595">595</a>             {
+<a name="596" href="#596">596</a>                 Artifact artifact = ( Artifact ) it2.next();
+<a name="597" href="#597">597</a>                 getLog().warn( <span class="jxr_string">"  "</span> + artifact );
+<a name="598" href="#598">598</a>             }
+<a name="599" href="#599">599</a> 
+<a name="600" href="#600">600</a>         }
+<a name="601" href="#601">601</a>     }
+<a name="602" href="#602">602</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/BundleInfo.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundleInfo.html
new file mode 100644
index 0000000..13ed7ba
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundleInfo.html
@@ -0,0 +1,128 @@
+<!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>BundleInfo xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more contributor license</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * agreements. See the NOTICE file distributed with this work for additional information regarding</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance with the License. You may obtain a</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * copy of the License at</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * </em>
+<a name="8" href="#8">8</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="9" href="#9">9</a>   <em class="jxr_comment"> * </em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software distributed under the License</em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * or implied. See the License for the specific language governing permissions and limitations under</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * the License.</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> */</em>
+<a name="15" href="#15">15</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="16" href="#16">16</a>  
+<a name="17" href="#17">17</a>  
+<a name="18" href="#18">18</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
+<a name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
+<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
+<a name="24" href="#24">24</a>  
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<a name="26" href="#26">26</a>  
+<a name="27" href="#27">27</a>  
+<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * Information result of the bundling process </em>
+<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="31" href="#31">31</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="32" href="#32">32</a>  <em class="jxr_javadoccomment"> * @version $Id$</em>
+<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a>
+<a name="35" href="#35">35</a>  {
+<a name="36" href="#36">36</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment">     * {@link Map} &amp;lt; {@link String}, {@link Set} &amp;lt; {@link Artifact} &gt; &gt;</em>
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment">     * Used to check for duplicated exports. Key is package name and value list of artifacts where it's exported.</em>
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="40" href="#40">40</a>      <strong class="jxr_keyword">private</strong> Map m_exportedPackages = <strong class="jxr_keyword">new</strong> HashMap();
+<a name="41" href="#41">41</a>  
+<a name="42" href="#42">42</a>  
+<a name="43" href="#43">43</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addExportedPackage( String packageName, Artifact artifact )
+<a name="44" href="#44">44</a>      {
+<a name="45" href="#45">45</a>          Set artifacts = ( Set ) getExportedPackages().get( packageName );
+<a name="46" href="#46">46</a>          <strong class="jxr_keyword">if</strong> ( artifacts == <strong class="jxr_keyword">null</strong> )
+<a name="47" href="#47">47</a>          {
+<a name="48" href="#48">48</a>              artifacts = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="49" href="#49">49</a>              m_exportedPackages.put( packageName, artifacts );
+<a name="50" href="#50">50</a>          }
+<a name="51" href="#51">51</a>          artifacts.add( artifact );
+<a name="52" href="#52">52</a>      }
+<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">protected</strong> Map getExportedPackages()
+<a name="56" href="#56">56</a>      {
+<a name="57" href="#57">57</a>          <strong class="jxr_keyword">return</strong> m_exportedPackages;
+<a name="58" href="#58">58</a>      }
+<a name="59" href="#59">59</a>  
+<a name="60" href="#60">60</a>  
+<a name="61" href="#61">61</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * Get a list of packages that are exported in more than one bundle.</em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * Key is package name and value list of artifacts where it's exported.</em>
+<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     * @return {@link Map} &amp;lt; {@link String}, {@link Set} &amp;lt; {@link Artifact} &gt; &gt;</em>
+<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="66" href="#66">66</a>      <strong class="jxr_keyword">public</strong> Map getDuplicatedExports()
+<a name="67" href="#67">67</a>      {
+<a name="68" href="#68">68</a>          Map duplicatedExports = <strong class="jxr_keyword">new</strong> HashMap();
+<a name="69" href="#69">69</a>  
+<a name="70" href="#70">70</a>          <strong class="jxr_keyword">for</strong> ( Iterator it = getExportedPackages().entrySet().iterator(); it.hasNext(); )
+<a name="71" href="#71">71</a>          {
+<a name="72" href="#72">72</a>              Map.Entry entry = ( Map.Entry ) it.next();
+<a name="73" href="#73">73</a>              Set artifacts = ( Set ) entry.getValue();
+<a name="74" href="#74">74</a>              <strong class="jxr_keyword">if</strong> ( artifacts.size() &gt; 1 )
+<a name="75" href="#75">75</a>              {
+<a name="76" href="#76">76</a>                  <em class="jxr_comment">/*<em class="jxr_comment"> remove warnings caused by different versions of same artifact */</em></em>
+<a name="77" href="#77">77</a>                  Set artifactKeys = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="78" href="#78">78</a>  
+<a name="79" href="#79">79</a>                  String packageName = ( String ) entry.getKey();
+<a name="80" href="#80">80</a>                  <strong class="jxr_keyword">for</strong> ( Iterator it2 = artifacts.iterator(); it2.hasNext(); )
+<a name="81" href="#81">81</a>                  {
+<a name="82" href="#82">82</a>                      Artifact artifact = ( Artifact ) it2.next();
+<a name="83" href="#83">83</a>                      artifactKeys.add( artifact.getGroupId() + <span class="jxr_string">"."</span> + artifact.getArtifactId() );
+<a name="84" href="#84">84</a>                  }
+<a name="85" href="#85">85</a>  
+<a name="86" href="#86">86</a>                  <strong class="jxr_keyword">if</strong> ( artifactKeys.size() &gt; 1 )
+<a name="87" href="#87">87</a>                  {
+<a name="88" href="#88">88</a>                      duplicatedExports.put( packageName, artifacts );
+<a name="89" href="#89">89</a>                  }
+<a name="90" href="#90">90</a>              }
+<a name="91" href="#91">91</a>          }
+<a name="92" href="#92">92</a>  
+<a name="93" href="#93">93</a>          <strong class="jxr_keyword">return</strong> duplicatedExports;
+<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">public</strong> <strong class="jxr_keyword">void</strong> merge( BundleInfo bundleInfo )
+<a name="98" href="#98">98</a>      {
+<a name="99" href="#99">99</a>          <strong class="jxr_keyword">for</strong> ( Iterator it = bundleInfo.getExportedPackages().entrySet().iterator(); it.hasNext(); )
+<a name="100" href="#100">100</a>         {
+<a name="101" href="#101">101</a>             Map.Entry entry = ( Map.Entry ) it.next();
+<a name="102" href="#102">102</a>             String packageName = ( String ) entry.getKey();
+<a name="103" href="#103">103</a>             Collection artifacts = ( Collection ) entry.getValue();
+<a name="104" href="#104">104</a> 
+<a name="105" href="#105">105</a>             Collection artifactsWithPackage = ( Collection ) getExportedPackages().get( packageName );
+<a name="106" href="#106">106</a>             <strong class="jxr_keyword">if</strong> ( artifactsWithPackage == <strong class="jxr_keyword">null</strong> )
+<a name="107" href="#107">107</a>             {
+<a name="108" href="#108">108</a>                 artifactsWithPackage = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="109" href="#109">109</a>                 getExportedPackages().put( packageName, artifactsWithPackage );
+<a name="110" href="#110">110</a>             }
+<a name="111" href="#111">111</a>             artifactsWithPackage.addAll( artifacts );
+<a name="112" href="#112">112</a>         }
+<a name="113" href="#113">113</a>     }
+<a name="114" href="#114">114</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/BundlePlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundlePlugin.html
new file mode 100644
index 0000000..f067875
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundlePlugin.html
@@ -0,0 +1,1391 @@
+<!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>BundlePlugin xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.ByteArrayInputStream;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.ByteArrayOutputStream;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.FileInputStream;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Method;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.Enumeration;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashSet;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
+<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
+<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Attributes;
+<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Manifest;
+<a name="44" href="#44">44</a>  
+<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.ManifestSection;
+<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.MavenArchiveConfiguration;
+<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.MavenArchiver;
+<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
+<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.execution.MavenSession;
+<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.License;
+<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Model;
+<a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Resource;
+<a name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<a name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoFailureException;
+<a name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
+<a name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProjectHelper;
+<a name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.DefaultMaven2OsgiConverter;
+<a name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.Maven2OsgiConverter;
+<a name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.archiver.UnArchiver;
+<a name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.archiver.manager.ArchiverManager;
+<a name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.DirectoryScanner;
+<a name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.FileUtils;
+<a name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.StringUtils;
+<a name="67" href="#67">67</a>  
+<a name="68" href="#68">68</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
+<a name="69" href="#69">69</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Builder;
+<a name="70" href="#70">70</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Constants;
+<a name="71" href="#71">71</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.EmbeddedResource;
+<a name="72" href="#72">72</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.FileResource;
+<a name="73" href="#73">73</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
+<a name="74" href="#74">74</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Processor;
+<a name="75" href="#75">75</a>  <strong class="jxr_keyword">import</strong> aQute.lib.spring.SpringXMLType;
+<a name="76" href="#76">76</a>  
+<a name="77" href="#77">77</a>  
+<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment"> * Create an OSGi bundle from Maven project</em>
+<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment"> *</em>
+<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment"> * @goal bundle</em>
+<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment"> * @phase package</em>
+<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment"> * @requiresDependencyResolution test</em>
+<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment"> * @description build an OSGi bundle jar</em>
+<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment"> * @threadSafe</em>
+<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="87" href="#87">87</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="88" href="#88">88</a>  {
+<a name="89" href="#89">89</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * Directory where the manifest will be written</em>
+<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     * @parameter expression="${manifestLocation}" default-value="${project.build.outputDirectory}/META-INF"</em>
+<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="94" href="#94">94</a>      <strong class="jxr_keyword">protected</strong> File manifestLocation;
+<a name="95" href="#95">95</a>  
+<a name="96" href="#96">96</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     * File where the BND instructions will be dumped</em>
+<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     * @parameter expression="${dumpInstructions}"</em>
+<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     */</em>
+<a name="101" href="#101">101</a>     <strong class="jxr_keyword">protected</strong> File dumpInstructions;
+<a name="102" href="#102">102</a> 
+<a name="103" href="#103">103</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     * File where the BND class-path will be dumped</em>
+<a name="105" href="#105">105</a> <em class="jxr_javadoccomment">     *</em>
+<a name="106" href="#106">106</a> <em class="jxr_javadoccomment">     * @parameter expression="${dumpClasspath}"</em>
+<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     */</em>
+<a name="108" href="#108">108</a>     <strong class="jxr_keyword">protected</strong> File dumpClasspath;
+<a name="109" href="#109">109</a> 
+<a name="110" href="#110">110</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     * When true, unpack the bundle contents to the outputDirectory</em>
+<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     *</em>
+<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">     * @parameter expression="${unpackBundle}"</em>
+<a name="114" href="#114">114</a> <em class="jxr_javadoccomment">     */</em>
+<a name="115" href="#115">115</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> unpackBundle;
+<a name="116" href="#116">116</a> 
+<a name="117" href="#117">117</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="118" href="#118">118</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="119" href="#119">119</a> <em class="jxr_javadoccomment">     *</em>
+<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     * @parameter expression="${excludeDependencies}"</em>
+<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     */</em>
+<a name="122" href="#122">122</a>     <strong class="jxr_keyword">protected</strong> String excludeDependencies;
+<a name="123" href="#123">123</a> 
+<a name="124" href="#124">124</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">     * Classifier type of the bundle to be installed.  For example, "jdk14".</em>
+<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     * Defaults to none which means this is the project's main bundle.</em>
+<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     *</em>
+<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">     */</em>
+<a name="130" href="#130">130</a>     <strong class="jxr_keyword">protected</strong> String classifier;
+<a name="131" href="#131">131</a> 
+<a name="132" href="#132">132</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="133" href="#133">133</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="134" href="#134">134</a> <em class="jxr_javadoccomment">     */</em>
+<a name="135" href="#135">135</a>     <strong class="jxr_keyword">private</strong> MavenProjectHelper m_projectHelper;
+<a name="136" href="#136">136</a> 
+<a name="137" href="#137">137</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="138" href="#138">138</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="139" href="#139">139</a> <em class="jxr_javadoccomment">     */</em>
+<a name="140" href="#140">140</a>     <strong class="jxr_keyword">private</strong> ArchiverManager m_archiverManager;
+<a name="141" href="#141">141</a> 
+<a name="142" href="#142">142</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="143" href="#143">143</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     */</em>
+<a name="145" href="#145">145</a>     <strong class="jxr_keyword">private</strong> ArtifactHandlerManager m_artifactHandlerManager;
+<a name="146" href="#146">146</a> 
+<a name="147" href="#147">147</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">     * Project types which this plugin supports.</em>
+<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">     *</em>
+<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">     */</em>
+<a name="152" href="#152">152</a>     <strong class="jxr_keyword">protected</strong> List supportedProjectTypes = Arrays.asList( <strong class="jxr_keyword">new</strong> String[]
+<a name="153" href="#153">153</a>         { <span class="jxr_string">"jar"</span>, <span class="jxr_string">"bundle"</span> } );
+<a name="154" href="#154">154</a> 
+<a name="155" href="#155">155</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="156" href="#156">156</a> <em class="jxr_javadoccomment">     * The directory for the generated bundles.</em>
+<a name="157" href="#157">157</a> <em class="jxr_javadoccomment">     *</em>
+<a name="158" href="#158">158</a> <em class="jxr_javadoccomment">     * @parameter expression="${project.build.outputDirectory}"</em>
+<a name="159" href="#159">159</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="160" href="#160">160</a> <em class="jxr_javadoccomment">     */</em>
+<a name="161" href="#161">161</a>     <strong class="jxr_keyword">private</strong> File outputDirectory;
+<a name="162" href="#162">162</a> 
+<a name="163" href="#163">163</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="164" href="#164">164</a> <em class="jxr_javadoccomment">     * The directory for the generated JAR.</em>
+<a name="165" href="#165">165</a> <em class="jxr_javadoccomment">     *</em>
+<a name="166" href="#166">166</a> <em class="jxr_javadoccomment">     * @parameter expression="${project.build.directory}"</em>
+<a name="167" href="#167">167</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="168" href="#168">168</a> <em class="jxr_javadoccomment">     */</em>
+<a name="169" href="#169">169</a>     <strong class="jxr_keyword">private</strong> String buildDirectory;
+<a name="170" href="#170">170</a> 
+<a name="171" href="#171">171</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="172" href="#172">172</a> <em class="jxr_javadoccomment">     * The Maven project.</em>
+<a name="173" href="#173">173</a> <em class="jxr_javadoccomment">     *</em>
+<a name="174" href="#174">174</a> <em class="jxr_javadoccomment">     * @parameter expression="${project}"</em>
+<a name="175" href="#175">175</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="176" href="#176">176</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="177" href="#177">177</a> <em class="jxr_javadoccomment">     */</em>
+<a name="178" href="#178">178</a>     <strong class="jxr_keyword">private</strong> MavenProject project;
+<a name="179" href="#179">179</a> 
+<a name="180" href="#180">180</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="181" href="#181">181</a> <em class="jxr_javadoccomment">     * The BND instructions for the bundle.</em>
+<a name="182" href="#182">182</a> <em class="jxr_javadoccomment">     *</em>
+<a name="183" href="#183">183</a> <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="184" href="#184">184</a> <em class="jxr_javadoccomment">     */</em>
+<a name="185" href="#185">185</a>     <strong class="jxr_keyword">private</strong> Map instructions = <strong class="jxr_keyword">new</strong> LinkedHashMap();
+<a name="186" href="#186">186</a> 
+<a name="187" href="#187">187</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="188" href="#188">188</a> <em class="jxr_javadoccomment">     * Use locally patched version for now.</em>
+<a name="189" href="#189">189</a> <em class="jxr_javadoccomment">     */</em>
+<a name="190" href="#190">190</a>     <strong class="jxr_keyword">private</strong> Maven2OsgiConverter m_maven2OsgiConverter = <strong class="jxr_keyword">new</strong> DefaultMaven2OsgiConverter();
+<a name="191" href="#191">191</a> 
+<a name="192" href="#192">192</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="193" href="#193">193</a> <em class="jxr_javadoccomment">     * The archive configuration to use.</em>
+<a name="194" href="#194">194</a> <em class="jxr_javadoccomment">     *</em>
+<a name="195" href="#195">195</a> <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="196" href="#196">196</a> <em class="jxr_javadoccomment">     */</em>
+<a name="197" href="#197">197</a>     <strong class="jxr_keyword">private</strong> MavenArchiveConfiguration archive; <em class="jxr_comment">// accessed indirectly in JarPluginConfiguration</em>
+<a name="198" href="#198">198</a> 
+<a name="199" href="#199">199</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="200" href="#200">200</a> <em class="jxr_javadoccomment">     * @parameter default-value="${session}"</em>
+<a name="201" href="#201">201</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="202" href="#202">202</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="203" href="#203">203</a> <em class="jxr_javadoccomment">     */</em>
+<a name="204" href="#204">204</a>     <strong class="jxr_keyword">private</strong> MavenSession m_mavenSession;
+<a name="205" href="#205">205</a> 
+<a name="206" href="#206">206</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="207" href="#207">207</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="208" href="#208">208</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="209" href="#209">209</a> 
+<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[] EMPTY_STRING_ARRAY =
+<a name="211" href="#211">211</a>         {};
+<a name="212" href="#212">212</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String[] DEFAULT_INCLUDES =
+<a name="213" href="#213">213</a>         { <span class="jxr_string">"**/**"</span> };
+<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 NL = System.getProperty( <span class="jxr_string">"line.separator"</span> );
+<a name="216" href="#216">216</a> 
+<a name="217" href="#217">217</a> 
+<a name="218" href="#218">218</a>     <strong class="jxr_keyword">protected</strong> Maven2OsgiConverter getMaven2OsgiConverter()
+<a name="219" href="#219">219</a>     {
+<a name="220" href="#220">220</a>         <strong class="jxr_keyword">return</strong> m_maven2OsgiConverter;
+<a name="221" href="#221">221</a>     }
+<a name="222" href="#222">222</a> 
+<a name="223" href="#223">223</a> 
+<a name="224" href="#224">224</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setMaven2OsgiConverter( Maven2OsgiConverter maven2OsgiConverter )
+<a name="225" href="#225">225</a>     {
+<a name="226" href="#226">226</a>         m_maven2OsgiConverter = maven2OsgiConverter;
+<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>     <strong class="jxr_keyword">protected</strong> MavenProject getProject()
+<a name="231" href="#231">231</a>     {
+<a name="232" href="#232">232</a>         <strong class="jxr_keyword">return</strong> project;
+<a name="233" href="#233">233</a>     }
+<a name="234" href="#234">234</a> 
+<a name="235" href="#235">235</a> 
+<a name="236" href="#236">236</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="237" href="#237">237</a> <em class="jxr_javadoccomment">     * @see org.apache.maven.plugin.AbstractMojo#execute()</em>
+<a name="238" href="#238">238</a> <em class="jxr_javadoccomment">     */</em>
+<a name="239" href="#239">239</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="240" href="#240">240</a>     {
+<a name="241" href="#241">241</a>         Properties properties = <strong class="jxr_keyword">new</strong> Properties();
+<a name="242" href="#242">242</a>         String projectType = getProject().getArtifact().getType();
+<a name="243" href="#243">243</a> 
+<a name="244" href="#244">244</a>         <em class="jxr_comment">// ignore unsupported project types, useful when bundleplugin is configured in parent pom</em>
+<a name="245" href="#245">245</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( projectType ) )
+<a name="246" href="#246">246</a>         {
+<a name="247" href="#247">247</a>             getLog().warn(
+<a name="248" href="#248">248</a>                 <span class="jxr_string">"Ignoring project type "</span> + projectType + <span class="jxr_string">" - supportedProjectTypes = "</span> + supportedProjectTypes );
+<a name="249" href="#249">249</a>             <strong class="jxr_keyword">return</strong>;
+<a name="250" href="#250">250</a>         }
+<a name="251" href="#251">251</a> 
+<a name="252" href="#252">252</a>         execute( getProject(), instructions, properties );
+<a name="253" href="#253">253</a>     }
+<a name="254" href="#254">254</a> 
+<a name="255" href="#255">255</a> 
+<a name="256" href="#256">256</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject currentProject, Map originalInstructions, Properties properties )
+<a name="257" href="#257">257</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="258" href="#258">258</a>     {
+<a name="259" href="#259">259</a>         <strong class="jxr_keyword">try</strong>
+<a name="260" href="#260">260</a>         {
+<a name="261" href="#261">261</a>             execute( currentProject, originalInstructions, properties, getClasspath( currentProject ) );
+<a name="262" href="#262">262</a>         }
+<a name="263" href="#263">263</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="264" href="#264">264</a>         {
+<a name="265" href="#265">265</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="266" href="#266">266</a>         }
+<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>     <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="271" href="#271">271</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> Map transformDirectives( Map originalInstructions )
+<a name="272" href="#272">272</a>     {
+<a name="273" href="#273">273</a>         Map transformedInstructions = <strong class="jxr_keyword">new</strong> LinkedHashMap();
+<a name="274" href="#274">274</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = originalInstructions.entrySet().iterator(); i.hasNext(); )
+<a name="275" href="#275">275</a>         {
+<a name="276" href="#276">276</a>             Map.Entry e = ( Map.Entry ) i.next();
+<a name="277" href="#277">277</a> 
+<a name="278" href="#278">278</a>             String key = ( String ) e.getKey();
+<a name="279" href="#279">279</a>             <strong class="jxr_keyword">if</strong> ( key.startsWith( <span class="jxr_string">"_"</span> ) )
+<a name="280" href="#280">280</a>             {
+<a name="281" href="#281">281</a>                 key = <span class="jxr_string">"-"</span> + key.substring( 1 );
+<a name="282" href="#282">282</a>             }
+<a name="283" href="#283">283</a> 
+<a name="284" href="#284">284</a>             String value = ( String ) e.getValue();
+<a name="285" href="#285">285</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == value )
+<a name="286" href="#286">286</a>             {
+<a name="287" href="#287">287</a>                 value = <span class="jxr_string">""</span>;
+<a name="288" href="#288">288</a>             }
+<a name="289" href="#289">289</a>             <strong class="jxr_keyword">else</strong>
+<a name="290" href="#290">290</a>             {
+<a name="291" href="#291">291</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="292" href="#292">292</a>             }
+<a name="293" href="#293">293</a> 
+<a name="294" href="#294">294</a>             <strong class="jxr_keyword">if</strong> ( Analyzer.WAB.equals( key ) &amp;&amp; value.length() == 0 )
+<a name="295" href="#295">295</a>             {
+<a name="296" href="#296">296</a>                 <em class="jxr_comment">// provide useful default</em>
+<a name="297" href="#297">297</a>                 value = <span class="jxr_string">"src/main/webapp/"</span>;
+<a name="298" href="#298">298</a>             }
+<a name="299" href="#299">299</a> 
+<a name="300" href="#300">300</a>             transformedInstructions.put( key, value );
+<a name="301" href="#301">301</a>         }
+<a name="302" href="#302">302</a>         <strong class="jxr_keyword">return</strong> transformedInstructions;
+<a name="303" href="#303">303</a>     }
+<a name="304" href="#304">304</a> 
+<a name="305" href="#305">305</a> 
+<a name="306" href="#306">306</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> reportErrors( String prefix, Analyzer analyzer )
+<a name="307" href="#307">307</a>     {
+<a name="308" href="#308">308</a>         List errors = analyzer.getErrors();
+<a name="309" href="#309">309</a>         List warnings = analyzer.getWarnings();
+<a name="310" href="#310">310</a> 
+<a name="311" href="#311">311</a>         <strong class="jxr_keyword">for</strong> ( Iterator w = warnings.iterator(); w.hasNext(); )
+<a name="312" href="#312">312</a>         {
+<a name="313" href="#313">313</a>             String msg = ( String ) w.next();
+<a name="314" href="#314">314</a>             getLog().warn( prefix + <span class="jxr_string">" : "</span> + msg );
+<a name="315" href="#315">315</a>         }
+<a name="316" href="#316">316</a> 
+<a name="317" href="#317">317</a>         <strong class="jxr_keyword">boolean</strong> hasErrors = false;
+<a name="318" href="#318">318</a>         String fileNotFound = <span class="jxr_string">"Input file does not exist: "</span>;
+<a name="319" href="#319">319</a>         <strong class="jxr_keyword">for</strong> ( Iterator e = errors.iterator(); e.hasNext(); )
+<a name="320" href="#320">320</a>         {
+<a name="321" href="#321">321</a>             String msg = ( String ) e.next();
+<a name="322" href="#322">322</a>             <strong class="jxr_keyword">if</strong> ( msg.startsWith( fileNotFound ) &amp;&amp; msg.endsWith( <span class="jxr_string">"~"</span> ) )
+<a name="323" href="#323">323</a>             {
+<a name="324" href="#324">324</a>                 <em class="jxr_comment">// treat as warning; this error happens when you have duplicate entries in Include-Resource</em>
+<a name="325" href="#325">325</a>                 String duplicate = Processor.removeDuplicateMarker( msg.substring( fileNotFound.length() ) );
+<a name="326" href="#326">326</a>                 getLog().warn( prefix + <span class="jxr_string">" : Duplicate path '"</span> + duplicate + <span class="jxr_string">"' in Include-Resource"</span> );
+<a name="327" href="#327">327</a>             }
+<a name="328" href="#328">328</a>             <strong class="jxr_keyword">else</strong>
+<a name="329" href="#329">329</a>             {
+<a name="330" href="#330">330</a>                 getLog().error( prefix + <span class="jxr_string">" : "</span> + msg );
+<a name="331" href="#331">331</a>                 hasErrors = <strong class="jxr_keyword">true</strong>;
+<a name="332" href="#332">332</a>             }
+<a name="333" href="#333">333</a>         }
+<a name="334" href="#334">334</a>         <strong class="jxr_keyword">return</strong> hasErrors;
+<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>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject currentProject, Map originalInstructions, Properties properties,
+<a name="339" href="#339">339</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="340" href="#340">340</a>     {
+<a name="341" href="#341">341</a>         <strong class="jxr_keyword">try</strong>
+<a name="342" href="#342">342</a>         {
+<a name="343" href="#343">343</a>             File jarFile = <strong class="jxr_keyword">new</strong> File( getBuildDirectory(), getBundleName( currentProject ) );
+<a name="344" href="#344">344</a>             Builder builder = buildOSGiBundle( currentProject, originalInstructions, properties, classpath );
+<a name="345" href="#345">345</a>             <strong class="jxr_keyword">boolean</strong> hasErrors = reportErrors( <span class="jxr_string">"Bundle "</span> + currentProject.getArtifact(), builder );
+<a name="346" href="#346">346</a>             <strong class="jxr_keyword">if</strong> ( hasErrors )
+<a name="347" href="#347">347</a>             {
+<a name="348" href="#348">348</a>                 String failok = builder.getProperty( <span class="jxr_string">"-failok"</span> );
+<a name="349" href="#349">349</a>                 <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == failok || <span class="jxr_string">"false"</span>.equalsIgnoreCase( failok ) )
+<a name="350" href="#350">350</a>                 {
+<a name="351" href="#351">351</a>                     jarFile.delete();
+<a name="352" href="#352">352</a> 
+<a name="353" href="#353">353</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="354" href="#354">354</a>                 }
+<a name="355" href="#355">355</a>             }
+<a name="356" href="#356">356</a> 
+<a name="357" href="#357">357</a>             <em class="jxr_comment">// attach bundle to maven project</em>
+<a name="358" href="#358">358</a>             jarFile.getParentFile().mkdirs();
+<a name="359" href="#359">359</a>             builder.getJar().write( jarFile );
+<a name="360" href="#360">360</a> 
+<a name="361" href="#361">361</a>             Artifact mainArtifact = currentProject.getArtifact();
+<a name="362" href="#362">362</a> 
+<a name="363" href="#363">363</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"bundle"</span>.equals( mainArtifact.getType() ) )
+<a name="364" href="#364">364</a>             {
+<a name="365" href="#365">365</a>                 <em class="jxr_comment">// workaround for MNG-1682: force maven to install artifact using the "jar" handler</em>
+<a name="366" href="#366">366</a>                 mainArtifact.setArtifactHandler( m_artifactHandlerManager.getArtifactHandler( <span class="jxr_string">"jar"</span> ) );
+<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> ( <strong class="jxr_keyword">null</strong> == classifier || classifier.trim().length() == 0 )
+<a name="370" href="#370">370</a>             {
+<a name="371" href="#371">371</a>                 mainArtifact.setFile( jarFile );
+<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>                 m_projectHelper.attachArtifact( currentProject, jarFile, classifier );
+<a name="376" href="#376">376</a>             }
+<a name="377" href="#377">377</a> 
+<a name="378" href="#378">378</a>             <strong class="jxr_keyword">if</strong> ( unpackBundle )
+<a name="379" href="#379">379</a>             {
+<a name="380" href="#380">380</a>                 unpackBundle( jarFile );
+<a name="381" href="#381">381</a>             }
+<a name="382" href="#382">382</a> 
+<a name="383" href="#383">383</a>             <strong class="jxr_keyword">if</strong> ( manifestLocation != <strong class="jxr_keyword">null</strong> )
+<a name="384" href="#384">384</a>             {
+<a name="385" href="#385">385</a>                 File outputFile = <strong class="jxr_keyword">new</strong> File( manifestLocation, <span class="jxr_string">"MANIFEST.MF"</span> );
+<a name="386" href="#386">386</a> 
+<a name="387" href="#387">387</a>                 <strong class="jxr_keyword">try</strong>
+<a name="388" href="#388">388</a>                 {
+<a name="389" href="#389">389</a>                     Manifest manifest = builder.getJar().getManifest();
+<a name="390" href="#390">390</a>                     ManifestPlugin.writeManifest( manifest, outputFile );
+<a name="391" href="#391">391</a>                 }
+<a name="392" href="#392">392</a>                 <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="393" href="#393">393</a>                 {
+<a name="394" href="#394">394</a>                     getLog().error( <span class="jxr_string">"Error trying to write Manifest to file "</span> + outputFile, e );
+<a name="395" href="#395">395</a>                 }
+<a name="396" href="#396">396</a>             }
+<a name="397" href="#397">397</a> 
+<a name="398" href="#398">398</a>             <em class="jxr_comment">// cleanup...</em>
+<a name="399" href="#399">399</a>             builder.close();
+<a name="400" href="#400">400</a>         }
+<a name="401" href="#401">401</a>         <strong class="jxr_keyword">catch</strong> ( MojoFailureException e )
+<a name="402" href="#402">402</a>         {
+<a name="403" href="#403">403</a>             getLog().error( e.getLocalizedMessage() );
+<a name="404" href="#404">404</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="405" href="#405">405</a>         }
+<a name="406" href="#406">406</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="407" href="#407">407</a>         {
+<a name="408" href="#408">408</a>             getLog().error( <span class="jxr_string">"An internal error occurred"</span>, e );
+<a name="409" href="#409">409</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="410" href="#410">410</a>         }
+<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">protected</strong> Builder getOSGiBuilder( MavenProject currentProject, Map originalInstructions, Properties properties,
+<a name="415" href="#415">415</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="416" href="#416">416</a>     {
+<a name="417" href="#417">417</a>         properties.putAll( getDefaultProperties( currentProject ) );
+<a name="418" href="#418">418</a>         properties.putAll( transformDirectives( originalInstructions ) );
+<a name="419" href="#419">419</a> 
+<a name="420" href="#420">420</a>         Builder builder = <strong class="jxr_keyword">new</strong> Builder();
+<a name="421" href="#421">421</a>         builder.setBase( getBase( currentProject ) );
+<a name="422" href="#422">422</a>         builder.setProperties( properties );
+<a name="423" href="#423">423</a>         <strong class="jxr_keyword">if</strong> ( classpath != <strong class="jxr_keyword">null</strong> )
+<a name="424" href="#424">424</a>         {
+<a name="425" href="#425">425</a>             builder.setClasspath( classpath );
+<a name="426" href="#426">426</a>         }
+<a name="427" href="#427">427</a> 
+<a name="428" href="#428">428</a>         <strong class="jxr_keyword">return</strong> builder;
+<a name="429" href="#429">429</a>     }
+<a name="430" href="#430">430</a> 
+<a name="431" href="#431">431</a> 
+<a name="432" href="#432">432</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="433" href="#433">433</a>     {
+<a name="434" href="#434">434</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getBasedir() != <strong class="jxr_keyword">null</strong> )
+<a name="435" href="#435">435</a>         {
+<a name="436" href="#436">436</a>             <em class="jxr_comment">// update BND instructions to add included Maven resources</em>
+<a name="437" href="#437">437</a>             includeMavenResources( currentProject, builder, getLog() );
+<a name="438" href="#438">438</a> 
+<a name="439" href="#439">439</a>             <em class="jxr_comment">// calculate default export/private settings based on sources</em>
+<a name="440" href="#440">440</a>             addLocalPackages( outputDirectory, builder );
+<a name="441" href="#441">441</a>         }
+<a name="442" href="#442">442</a> 
+<a name="443" href="#443">443</a>         <em class="jxr_comment">// update BND instructions to embed selected Maven dependencies</em>
+<a name="444" href="#444">444</a>         Collection embeddableArtifacts = getEmbeddableArtifacts( currentProject, builder );
+<a name="445" href="#445">445</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyEmbedder.html">DependencyEmbedder</a>( getLog(), embeddableArtifacts ).processHeaders( builder );
+<a name="446" href="#446">446</a> 
+<a name="447" href="#447">447</a>         <strong class="jxr_keyword">if</strong> ( dumpInstructions != <strong class="jxr_keyword">null</strong> || getLog().isDebugEnabled() )
+<a name="448" href="#448">448</a>         {
+<a name="449" href="#449">449</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a name="450" href="#450">450</a>             getLog().debug( <span class="jxr_string">"BND Instructions:"</span> + NL + dumpInstructions( builder.getProperties(), buf ) );
+<a name="451" href="#451">451</a>             <strong class="jxr_keyword">if</strong> ( dumpInstructions != <strong class="jxr_keyword">null</strong> )
+<a name="452" href="#452">452</a>             {
+<a name="453" href="#453">453</a>                 getLog().info( <span class="jxr_string">"Writing BND instructions to "</span> + dumpInstructions );
+<a name="454" href="#454">454</a>                 dumpInstructions.getParentFile().mkdirs();
+<a name="455" href="#455">455</a>                 FileUtils.fileWrite( dumpInstructions, <span class="jxr_string">"# BND instructions"</span> + NL + buf );
+<a name="456" href="#456">456</a>             }
+<a name="457" href="#457">457</a>         }
+<a name="458" href="#458">458</a> 
+<a name="459" href="#459">459</a>         <strong class="jxr_keyword">if</strong> ( dumpClasspath != <strong class="jxr_keyword">null</strong> || getLog().isDebugEnabled() )
+<a name="460" href="#460">460</a>         {
+<a name="461" href="#461">461</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a name="462" href="#462">462</a>             getLog().debug( <span class="jxr_string">"BND Classpath:"</span> + NL + dumpClasspath( builder.getClasspath(), buf ) );
+<a name="463" href="#463">463</a>             <strong class="jxr_keyword">if</strong> ( dumpClasspath != <strong class="jxr_keyword">null</strong> )
+<a name="464" href="#464">464</a>             {
+<a name="465" href="#465">465</a>                 getLog().info( <span class="jxr_string">"Writing BND classpath to "</span> + dumpClasspath );
+<a name="466" href="#466">466</a>                 dumpClasspath.getParentFile().mkdirs();
+<a name="467" href="#467">467</a>                 FileUtils.fileWrite( dumpClasspath, <span class="jxr_string">"# BND classpath"</span> + NL + buf );
+<a name="468" href="#468">468</a>             }
+<a name="469" href="#469">469</a>         }
+<a name="470" href="#470">470</a>     }
+<a name="471" href="#471">471</a> 
+<a name="472" href="#472">472</a> 
+<a name="473" href="#473">473</a>     <strong class="jxr_keyword">protected</strong> Builder buildOSGiBundle( MavenProject currentProject, Map originalInstructions, Properties properties,
+<a name="474" href="#474">474</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="475" href="#475">475</a>     {
+<a name="476" href="#476">476</a>         Builder builder = getOSGiBuilder( currentProject, originalInstructions, properties, classpath );
+<a name="477" href="#477">477</a> 
+<a name="478" href="#478">478</a>         addMavenInstructions( currentProject, builder );
+<a name="479" href="#479">479</a> 
+<a name="480" href="#480">480</a>         builder.build();
+<a name="481" href="#481">481</a> 
+<a name="482" href="#482">482</a>         mergeMavenManifest( currentProject, builder );
+<a name="483" href="#483">483</a> 
+<a name="484" href="#484">484</a>         <strong class="jxr_keyword">return</strong> builder;
+<a name="485" href="#485">485</a>     }
+<a name="486" href="#486">486</a> 
+<a name="487" href="#487">487</a> 
+<a name="488" href="#488">488</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpInstructions( Properties properties, StringBuilder buf )
+<a name="489" href="#489">489</a>     {
+<a name="490" href="#490">490</a>         <strong class="jxr_keyword">try</strong>
+<a name="491" href="#491">491</a>         {
+<a name="492" href="#492">492</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
+<a name="493" href="#493">493</a>             Properties stringProperties = <strong class="jxr_keyword">new</strong> Properties();
+<a name="494" href="#494">494</a>             <strong class="jxr_keyword">for</strong> ( Enumeration e = properties.propertyNames(); e.hasMoreElements(); )
+<a name="495" href="#495">495</a>             {
+<a name="496" href="#496">496</a>                 <em class="jxr_comment">// we can only store String properties</em>
+<a name="497" href="#497">497</a>                 String key = ( String ) e.nextElement();
+<a name="498" href="#498">498</a>                 String value = properties.getProperty( key );
+<a name="499" href="#499">499</a>                 <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
+<a name="500" href="#500">500</a>                 {
+<a name="501" href="#501">501</a>                     stringProperties.setProperty( key, value );
+<a name="502" href="#502">502</a>                 }
+<a name="503" href="#503">503</a>             }
+<a name="504" href="#504">504</a>             ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
+<a name="505" href="#505">505</a>             stringProperties.store( out, <strong class="jxr_keyword">null</strong> ); <em class="jxr_comment">// properties encoding is 8859_1</em>
+<a name="506" href="#506">506</a>             buf.append( out.toString( <span class="jxr_string">"8859_1"</span> ) );
+<a name="507" href="#507">507</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
+<a name="508" href="#508">508</a>         }
+<a name="509" href="#509">509</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
+<a name="510" href="#510">510</a>         {
+<a name="511" href="#511">511</a>             <em class="jxr_comment">// ignore...</em>
+<a name="512" href="#512">512</a>         }
+<a name="513" href="#513">513</a>         <strong class="jxr_keyword">return</strong> buf;
+<a name="514" href="#514">514</a>     }
+<a name="515" href="#515">515</a> 
+<a name="516" href="#516">516</a> 
+<a name="517" href="#517">517</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpClasspath( List classpath, StringBuilder buf )
+<a name="518" href="#518">518</a>     {
+<a name="519" href="#519">519</a>         <strong class="jxr_keyword">try</strong>
+<a name="520" href="#520">520</a>         {
+<a name="521" href="#521">521</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
+<a name="522" href="#522">522</a>             buf.append( <span class="jxr_string">"-classpath:&#92;&#92;"</span> + NL );
+<a name="523" href="#523">523</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = classpath.iterator(); i.hasNext(); )
+<a name="524" href="#524">524</a>             {
+<a name="525" href="#525">525</a>                 File path = ( ( Jar ) i.next() ).getSource();
+<a name="526" href="#526">526</a>                 <strong class="jxr_keyword">if</strong> ( path != <strong class="jxr_keyword">null</strong> )
+<a name="527" href="#527">527</a>                 {
+<a name="528" href="#528">528</a>                     buf.append( ' ' + path.toString() + ( i.hasNext() ? <span class="jxr_string">",&#92;&#92;"</span> : <span class="jxr_string">""</span> ) + NL );
+<a name="529" href="#529">529</a>                 }
+<a name="530" href="#530">530</a>             }
+<a name="531" href="#531">531</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
+<a name="532" href="#532">532</a>         }
+<a name="533" href="#533">533</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
+<a name="534" href="#534">534</a>         {
+<a name="535" href="#535">535</a>             <em class="jxr_comment">// ignore...</em>
+<a name="536" href="#536">536</a>         }
+<a name="537" href="#537">537</a>         <strong class="jxr_keyword">return</strong> buf;
+<a name="538" href="#538">538</a>     }
+<a name="539" href="#539">539</a> 
+<a name="540" href="#540">540</a> 
+<a name="541" href="#541">541</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpManifest( Manifest manifest, StringBuilder buf )
+<a name="542" href="#542">542</a>     {
+<a name="543" href="#543">543</a>         <strong class="jxr_keyword">try</strong>
+<a name="544" href="#544">544</a>         {
+<a name="545" href="#545">545</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
+<a name="546" href="#546">546</a>             ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
+<a name="547" href="#547">547</a>             manifest.write( out ); <em class="jxr_comment">// manifest encoding is UTF8</em>
+<a name="548" href="#548">548</a>             buf.append( out.toString( <span class="jxr_string">"UTF8"</span> ) );
+<a name="549" href="#549">549</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
+<a name="550" href="#550">550</a>         }
+<a name="551" href="#551">551</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
+<a name="552" href="#552">552</a>         {
+<a name="553" href="#553">553</a>             <em class="jxr_comment">// ignore...</em>
+<a name="554" href="#554">554</a>         }
+<a name="555" href="#555">555</a>         <strong class="jxr_keyword">return</strong> buf;
+<a name="556" href="#556">556</a>     }
+<a name="557" href="#557">557</a> 
+<a name="558" href="#558">558</a> 
+<a name="559" href="#559">559</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="560" href="#560">560</a>     {
+<a name="561" href="#561">561</a>         <em class="jxr_comment">// pass maven resource paths onto BND analyzer</em>
+<a name="562" href="#562">562</a>         <strong class="jxr_keyword">final</strong> String mavenResourcePaths = getMavenResourcePaths( currentProject );
+<a name="563" href="#563">563</a>         <strong class="jxr_keyword">final</strong> String includeResource = ( String ) analyzer.getProperty( Analyzer.INCLUDE_RESOURCE );
+<a name="564" href="#564">564</a>         <strong class="jxr_keyword">if</strong> ( includeResource != <strong class="jxr_keyword">null</strong> )
+<a name="565" href="#565">565</a>         {
+<a name="566" href="#566">566</a>             <strong class="jxr_keyword">if</strong> ( includeResource.indexOf( MAVEN_RESOURCES ) &gt;= 0 )
+<a name="567" href="#567">567</a>             {
+<a name="568" href="#568">568</a>                 <em class="jxr_comment">// if there is no maven resource path, we do a special treatment and replace</em>
+<a name="569" href="#569">569</a>                 <em class="jxr_comment">// every occurance of MAVEN_RESOURCES and a following comma with an empty string</em>
+<a name="570" href="#570">570</a>                 <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() == 0 )
+<a name="571" href="#571">571</a>                 {
+<a name="572" href="#572">572</a>                     String cleanedResource = removeTagFromInstruction( includeResource, MAVEN_RESOURCES );
+<a name="573" href="#573">573</a>                     <strong class="jxr_keyword">if</strong> ( cleanedResource.length() &gt; 0 )
+<a name="574" href="#574">574</a>                     {
+<a name="575" href="#575">575</a>                         analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, cleanedResource );
+<a name="576" href="#576">576</a>                     }
+<a name="577" href="#577">577</a>                     <strong class="jxr_keyword">else</strong>
+<a name="578" href="#578">578</a>                     {
+<a name="579" href="#579">579</a>                         analyzer.unsetProperty( Analyzer.INCLUDE_RESOURCE );
+<a name="580" href="#580">580</a>                     }
+<a name="581" href="#581">581</a>                 }
+<a name="582" href="#582">582</a>                 <strong class="jxr_keyword">else</strong>
+<a name="583" href="#583">583</a>                 {
+<a name="584" href="#584">584</a>                     String combinedResource = StringUtils
+<a name="585" href="#585">585</a>                         .replace( includeResource, MAVEN_RESOURCES, mavenResourcePaths );
+<a name="586" href="#586">586</a>                     analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, combinedResource );
+<a name="587" href="#587">587</a>                 }
+<a name="588" href="#588">588</a>             }
+<a name="589" href="#589">589</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() &gt; 0 )
+<a name="590" href="#590">590</a>             {
+<a name="591" href="#591">591</a>                 log.warn( Analyzer.INCLUDE_RESOURCE + <span class="jxr_string">": overriding "</span> + mavenResourcePaths + <span class="jxr_string">" with "</span> + includeResource
+<a name="592" href="#592">592</a>                     + <span class="jxr_string">" (add "</span> + MAVEN_RESOURCES + <span class="jxr_string">" if you want to include the maven resources)"</span> );
+<a name="593" href="#593">593</a>             }
+<a name="594" href="#594">594</a>         }
+<a name="595" href="#595">595</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() &gt; 0 )
+<a name="596" href="#596">596</a>         {
+<a name="597" href="#597">597</a>             analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, mavenResourcePaths );
+<a name="598" href="#598">598</a>         }
+<a name="599" href="#599">599</a>     }
+<a name="600" href="#600">600</a> 
+<a name="601" href="#601">601</a> 
+<a name="602" href="#602">602</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="603" href="#603">603</a>     {
+<a name="604" href="#604">604</a>         Jar jar = builder.getJar();
+<a name="605" href="#605">605</a> 
+<a name="606" href="#606">606</a>         <strong class="jxr_keyword">if</strong> ( getLog().isDebugEnabled() )
+<a name="607" href="#607">607</a>         {
+<a name="608" href="#608">608</a>             getLog().debug( <span class="jxr_string">"BND Manifest:"</span> + NL + dumpManifest( jar.getManifest(), <strong class="jxr_keyword">new</strong> StringBuilder() ) );
+<a name="609" href="#609">609</a>         }
+<a name="610" href="#610">610</a> 
+<a name="611" href="#611">611</a>         <strong class="jxr_keyword">boolean</strong> addMavenDescriptor = currentProject.getBasedir() != <strong class="jxr_keyword">null</strong>;
+<a name="612" href="#612">612</a> 
+<a name="613" href="#613">613</a>         <strong class="jxr_keyword">try</strong>
+<a name="614" href="#614">614</a>         {
+<a name="615" href="#615">615</a>             <em class="jxr_comment">/*</em>
+<a name="616" href="#616">616</a> <em class="jxr_comment">             * Grab customized manifest entries from the maven-jar-plugin configuration</em>
+<a name="617" href="#617">617</a> <em class="jxr_comment">             */</em>
+<a name="618" href="#618">618</a>             MavenArchiveConfiguration archiveConfig = JarPluginConfiguration.getArchiveConfiguration( currentProject );
+<a name="619" href="#619">619</a>             String mavenManifestText = <strong class="jxr_keyword">new</strong> MavenArchiver().getManifest( currentProject, archiveConfig ).toString();
+<a name="620" href="#620">620</a>             addMavenDescriptor = addMavenDescriptor &amp;&amp; archiveConfig.isAddMavenDescriptor();
+<a name="621" href="#621">621</a> 
+<a name="622" href="#622">622</a>             Manifest mavenManifest = <strong class="jxr_keyword">new</strong> Manifest();
+<a name="623" href="#623">623</a> 
+<a name="624" href="#624">624</a>             <em class="jxr_comment">// First grab the external manifest file (if specified)</em>
+<a name="625" href="#625">625</a>             File externalManifestFile = archiveConfig.getManifestFile();
+<a name="626" href="#626">626</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != externalManifestFile &amp;&amp; externalManifestFile.exists() )
+<a name="627" href="#627">627</a>             {
+<a name="628" href="#628">628</a>                 InputStream mis = <strong class="jxr_keyword">new</strong> FileInputStream( externalManifestFile );
+<a name="629" href="#629">629</a>                 mavenManifest.read( mis );
+<a name="630" href="#630">630</a>                 mis.close();
+<a name="631" href="#631">631</a>             }
+<a name="632" href="#632">632</a> 
+<a name="633" href="#633">633</a>             <em class="jxr_comment">// Then apply customized entries from the jar plugin; note: manifest encoding is UTF8</em>
+<a name="634" href="#634">634</a>             mavenManifest.read( <strong class="jxr_keyword">new</strong> ByteArrayInputStream( mavenManifestText.getBytes( <span class="jxr_string">"UTF8"</span> ) ) );
+<a name="635" href="#635">635</a> 
+<a name="636" href="#636">636</a>             <strong class="jxr_keyword">if</strong> ( !archiveConfig.isManifestSectionsEmpty() )
+<a name="637" href="#637">637</a>             {
+<a name="638" href="#638">638</a>                 <em class="jxr_comment">/*</em>
+<a name="639" href="#639">639</a> <em class="jxr_comment">                 * Add customized manifest sections (for some reason MavenArchiver doesn't do this for us)</em>
+<a name="640" href="#640">640</a> <em class="jxr_comment">                 */</em>
+<a name="641" href="#641">641</a>                 List sections = archiveConfig.getManifestSections();
+<a name="642" href="#642">642</a>                 <strong class="jxr_keyword">for</strong> ( Iterator i = sections.iterator(); i.hasNext(); )
+<a name="643" href="#643">643</a>                 {
+<a name="644" href="#644">644</a>                     ManifestSection section = ( ManifestSection ) i.next();
+<a name="645" href="#645">645</a>                     Attributes attributes = <strong class="jxr_keyword">new</strong> Attributes();
+<a name="646" href="#646">646</a> 
+<a name="647" href="#647">647</a>                     <strong class="jxr_keyword">if</strong> ( !section.isManifestEntriesEmpty() )
+<a name="648" href="#648">648</a>                     {
+<a name="649" href="#649">649</a>                         Map entries = section.getManifestEntries();
+<a name="650" href="#650">650</a>                         <strong class="jxr_keyword">for</strong> ( Iterator j = entries.entrySet().iterator(); j.hasNext(); )
+<a name="651" href="#651">651</a>                         {
+<a name="652" href="#652">652</a>                             Map.Entry entry = ( Map.Entry ) j.next();
+<a name="653" href="#653">653</a>                             attributes.putValue( ( String ) entry.getKey(), ( String ) entry.getValue() );
+<a name="654" href="#654">654</a>                         }
+<a name="655" href="#655">655</a>                     }
+<a name="656" href="#656">656</a> 
+<a name="657" href="#657">657</a>                     mavenManifest.getEntries().put( section.getName(), attributes );
+<a name="658" href="#658">658</a>                 }
+<a name="659" href="#659">659</a>             }
+<a name="660" href="#660">660</a> 
+<a name="661" href="#661">661</a>             Attributes mainMavenAttributes = mavenManifest.getMainAttributes();
+<a name="662" href="#662">662</a>             mainMavenAttributes.putValue( <span class="jxr_string">"Created-By"</span>, <span class="jxr_string">"Apache Maven Bundle Plugin"</span> );
+<a name="663" href="#663">663</a> 
+<a name="664" href="#664">664</a>             String[] removeHeaders = builder.getProperty( Constants.REMOVEHEADERS, <span class="jxr_string">""</span> ).split( <span class="jxr_string">","</span> );
+<a name="665" href="#665">665</a> 
+<a name="666" href="#666">666</a>             <em class="jxr_comment">// apply -removeheaders to the custom manifest</em>
+<a name="667" href="#667">667</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; removeHeaders.length; i++ )
+<a name="668" href="#668">668</a>             {
+<a name="669" href="#669">669</a>                 <strong class="jxr_keyword">for</strong> ( Iterator j = mainMavenAttributes.keySet().iterator(); j.hasNext(); )
+<a name="670" href="#670">670</a>                 {
+<a name="671" href="#671">671</a>                     <strong class="jxr_keyword">if</strong> ( j.next().toString().matches( removeHeaders[i].trim() ) )
+<a name="672" href="#672">672</a>                     {
+<a name="673" href="#673">673</a>                         j.remove();
+<a name="674" href="#674">674</a>                     }
+<a name="675" href="#675">675</a>                 }
+<a name="676" href="#676">676</a>             }
+<a name="677" href="#677">677</a> 
+<a name="678" href="#678">678</a>             <em class="jxr_comment">/*</em>
+<a name="679" href="#679">679</a> <em class="jxr_comment">             * Overlay generated bundle manifest with customized entries</em>
+<a name="680" href="#680">680</a> <em class="jxr_comment">             */</em>
+<a name="681" href="#681">681</a>             Manifest bundleManifest = jar.getManifest();
+<a name="682" href="#682">682</a>             bundleManifest.getMainAttributes().putAll( mainMavenAttributes );
+<a name="683" href="#683">683</a>             bundleManifest.getEntries().putAll( mavenManifest.getEntries() );
+<a name="684" href="#684">684</a> 
+<a name="685" href="#685">685</a>             <em class="jxr_comment">// adjust the import package attributes so that optional dependencies use</em>
+<a name="686" href="#686">686</a>             <em class="jxr_comment">// optional resolution.</em>
+<a name="687" href="#687">687</a>             String importPackages = bundleManifest.getMainAttributes().getValue( <span class="jxr_string">"Import-Package"</span> );
+<a name="688" href="#688">688</a>             <strong class="jxr_keyword">if</strong> ( importPackages != <strong class="jxr_keyword">null</strong> )
+<a name="689" href="#689">689</a>             {
+<a name="690" href="#690">690</a>                 Set optionalPackages = getOptionalPackages( currentProject );
+<a name="691" href="#691">691</a> 
+<a name="692" href="#692">692</a>                 Map&lt;String, Map&lt;String, String&gt;&gt; values = <strong class="jxr_keyword">new</strong> Analyzer().parseHeader( importPackages );
+<a name="693" href="#693">693</a>                 <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, Map&lt;String, String&gt;&gt; entry : values.entrySet() )
+<a name="694" href="#694">694</a>                 {
+<a name="695" href="#695">695</a>                     String pkg = entry.getKey();
+<a name="696" href="#696">696</a>                     Map&lt;String, String&gt; options = entry.getValue();
+<a name="697" href="#697">697</a>                     <strong class="jxr_keyword">if</strong> ( !options.containsKey( <span class="jxr_string">"resolution:"</span> ) &amp;&amp; optionalPackages.contains( pkg ) )
+<a name="698" href="#698">698</a>                     {
+<a name="699" href="#699">699</a>                         options.put( <span class="jxr_string">"resolution:"</span>, <span class="jxr_string">"optional"</span> );
+<a name="700" href="#700">700</a>                     }
+<a name="701" href="#701">701</a>                 }
+<a name="702" href="#702">702</a>                 String result = Processor.printClauses( values, <span class="jxr_string">"resolution:"</span> );
+<a name="703" href="#703">703</a>                 bundleManifest.getMainAttributes().putValue( <span class="jxr_string">"Import-Package"</span>, result );
+<a name="704" href="#704">704</a>             }
+<a name="705" href="#705">705</a> 
+<a name="706" href="#706">706</a>             jar.setManifest( bundleManifest );
+<a name="707" href="#707">707</a>         }
+<a name="708" href="#708">708</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="709" href="#709">709</a>         {
+<a name="710" href="#710">710</a>             getLog().warn( <span class="jxr_string">"Unable to merge Maven manifest: "</span> + e.getLocalizedMessage() );
+<a name="711" href="#711">711</a>         }
+<a name="712" href="#712">712</a> 
+<a name="713" href="#713">713</a>         <strong class="jxr_keyword">if</strong> ( addMavenDescriptor )
+<a name="714" href="#714">714</a>         {
+<a name="715" href="#715">715</a>             doMavenMetadata( currentProject, jar );
+<a name="716" href="#716">716</a>         }
+<a name="717" href="#717">717</a> 
+<a name="718" href="#718">718</a>         <strong class="jxr_keyword">if</strong> ( getLog().isDebugEnabled() )
+<a name="719" href="#719">719</a>         {
+<a name="720" href="#720">720</a>             getLog().debug( <span class="jxr_string">"Final Manifest:"</span> + NL + dumpManifest( jar.getManifest(), <strong class="jxr_keyword">new</strong> StringBuilder() ) );
+<a name="721" href="#721">721</a>         }
+<a name="722" href="#722">722</a> 
+<a name="723" href="#723">723</a>         builder.setJar( jar );
+<a name="724" href="#724">724</a>     }
+<a name="725" href="#725">725</a> 
+<a name="726" href="#726">726</a> 
+<a name="727" href="#727">727</a>     <strong class="jxr_keyword">protected</strong> Set getOptionalPackages( MavenProject currentProject ) <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException
+<a name="728" href="#728">728</a>     {
+<a name="729" href="#729">729</a>         ArrayList inscope = <strong class="jxr_keyword">new</strong> ArrayList();
+<a name="730" href="#730">730</a>         <strong class="jxr_keyword">final</strong> Collection artifacts = getSelectedDependencies( currentProject.getArtifacts() );
+<a name="731" href="#731">731</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = artifacts.iterator(); it.hasNext(); )
+<a name="732" href="#732">732</a>         {
+<a name="733" href="#733">733</a>             Artifact artifact = ( Artifact ) it.next();
+<a name="734" href="#734">734</a>             <strong class="jxr_keyword">if</strong> ( artifact.getArtifactHandler().isAddedToClasspath() )
+<a name="735" href="#735">735</a>             {
+<a name="736" href="#736">736</a>                 <strong class="jxr_keyword">if</strong> ( !Artifact.SCOPE_TEST.equals( artifact.getScope() ) )
+<a name="737" href="#737">737</a>                 {
+<a name="738" href="#738">738</a>                     inscope.add( artifact );
+<a name="739" href="#739">739</a>                 }
+<a name="740" href="#740">740</a>             }
+<a name="741" href="#741">741</a>         }
+<a name="742" href="#742">742</a> 
+<a name="743" href="#743">743</a>         HashSet optionalArtifactIds = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="744" href="#744">744</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = inscope.iterator(); it.hasNext(); )
+<a name="745" href="#745">745</a>         {
+<a name="746" href="#746">746</a>             Artifact artifact = ( Artifact ) it.next();
+<a name="747" href="#747">747</a>             <strong class="jxr_keyword">if</strong> ( artifact.isOptional() )
+<a name="748" href="#748">748</a>             {
+<a name="749" href="#749">749</a>                 String id = artifact.toString();
+<a name="750" href="#750">750</a>                 <strong class="jxr_keyword">if</strong> ( artifact.getScope() != <strong class="jxr_keyword">null</strong> )
+<a name="751" href="#751">751</a>                 {
+<a name="752" href="#752">752</a>                     <em class="jxr_comment">// strip the scope...</em>
+<a name="753" href="#753">753</a>                     id = id.replaceFirst( <span class="jxr_string">":[^:]*$"</span>, <span class="jxr_string">""</span> );
+<a name="754" href="#754">754</a>                 }
+<a name="755" href="#755">755</a>                 optionalArtifactIds.add( id );
+<a name="756" href="#756">756</a>             }
+<a name="757" href="#757">757</a> 
+<a name="758" href="#758">758</a>         }
+<a name="759" href="#759">759</a> 
+<a name="760" href="#760">760</a>         HashSet required = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="761" href="#761">761</a>         HashSet optional = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="762" href="#762">762</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = inscope.iterator(); it.hasNext(); )
+<a name="763" href="#763">763</a>         {
+<a name="764" href="#764">764</a>             Artifact artifact = ( Artifact ) it.next();
+<a name="765" href="#765">765</a>             File file = getFile( artifact );
+<a name="766" href="#766">766</a>             <strong class="jxr_keyword">if</strong> ( file == <strong class="jxr_keyword">null</strong> )
+<a name="767" href="#767">767</a>             {
+<a name="768" href="#768">768</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="769" href="#769">769</a>             }
+<a name="770" href="#770">770</a> 
+<a name="771" href="#771">771</a>             Jar jar = <strong class="jxr_keyword">new</strong> Jar( artifact.getArtifactId(), file );
+<a name="772" href="#772">772</a>             <strong class="jxr_keyword">if</strong> ( isTransitivelyOptional( optionalArtifactIds, artifact ) )
+<a name="773" href="#773">773</a>             {
+<a name="774" href="#774">774</a>                 optional.addAll( jar.getPackages() );
+<a name="775" href="#775">775</a>             }
+<a name="776" href="#776">776</a>             <strong class="jxr_keyword">else</strong>
+<a name="777" href="#777">777</a>             {
+<a name="778" href="#778">778</a>                 required.addAll( jar.getPackages() );
+<a name="779" href="#779">779</a>             }
+<a name="780" href="#780">780</a>             jar.close();
+<a name="781" href="#781">781</a>         }
+<a name="782" href="#782">782</a> 
+<a name="783" href="#783">783</a>         optional.removeAll( required );
+<a name="784" href="#784">784</a>         <strong class="jxr_keyword">return</strong> optional;
+<a name="785" href="#785">785</a>     }
+<a name="786" href="#786">786</a> 
+<a name="787" href="#787">787</a> 
+<a name="788" href="#788">788</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="789" href="#789">789</a> <em class="jxr_javadoccomment">     * Check to see if any dependency along the dependency trail of</em>
+<a name="790" href="#790">790</a> <em class="jxr_javadoccomment">     * the artifact is optional.</em>
+<a name="791" href="#791">791</a> <em class="jxr_javadoccomment">     *</em>
+<a name="792" href="#792">792</a> <em class="jxr_javadoccomment">     * @param artifact</em>
+<a name="793" href="#793">793</a> <em class="jxr_javadoccomment">     */</em>
+<a name="794" href="#794">794</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isTransitivelyOptional( HashSet optionalArtifactIds, Artifact artifact )
+<a name="795" href="#795">795</a>     {
+<a name="796" href="#796">796</a>         List trail = artifact.getDependencyTrail();
+<a name="797" href="#797">797</a>         <strong class="jxr_keyword">for</strong> ( Iterator iterator = trail.iterator(); iterator.hasNext(); )
+<a name="798" href="#798">798</a>         {
+<a name="799" href="#799">799</a>             String next = ( String ) iterator.next();
+<a name="800" href="#800">800</a>             <strong class="jxr_keyword">if</strong> ( optionalArtifactIds.contains( next ) )
+<a name="801" href="#801">801</a>             {
+<a name="802" href="#802">802</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
+<a name="803" href="#803">803</a>             }
+<a name="804" href="#804">804</a>         }
+<a name="805" href="#805">805</a>         <strong class="jxr_keyword">return</strong> false;
+<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>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> unpackBundle( File jarFile )
+<a name="810" href="#810">810</a>     {
+<a name="811" href="#811">811</a>         File outputDir = getOutputDirectory();
+<a name="812" href="#812">812</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == outputDir )
+<a name="813" href="#813">813</a>         {
+<a name="814" href="#814">814</a>             outputDir = <strong class="jxr_keyword">new</strong> File( getBuildDirectory(), <span class="jxr_string">"classes"</span> );
+<a name="815" href="#815">815</a>         }
+<a name="816" href="#816">816</a> 
+<a name="817" href="#817">817</a>         <strong class="jxr_keyword">try</strong>
+<a name="818" href="#818">818</a>         {
+<a name="819" href="#819">819</a>             <em class="jxr_comment">/*</em>
+<a name="820" href="#820">820</a> <em class="jxr_comment">             * this directory must exist before unpacking, otherwise the plexus</em>
+<a name="821" href="#821">821</a> <em class="jxr_comment">             * unarchiver decides to use the current working directory instead!</em>
+<a name="822" href="#822">822</a> <em class="jxr_comment">             */</em>
+<a name="823" href="#823">823</a>             <strong class="jxr_keyword">if</strong> ( !outputDir.exists() )
+<a name="824" href="#824">824</a>             {
+<a name="825" href="#825">825</a>                 outputDir.mkdirs();
+<a name="826" href="#826">826</a>             }
+<a name="827" href="#827">827</a> 
+<a name="828" href="#828">828</a>             UnArchiver unArchiver = m_archiverManager.getUnArchiver( <span class="jxr_string">"jar"</span> );
+<a name="829" href="#829">829</a>             unArchiver.setDestDirectory( outputDir );
+<a name="830" href="#830">830</a>             unArchiver.setSourceFile( jarFile );
+<a name="831" href="#831">831</a>             unArchiver.extract();
+<a name="832" href="#832">832</a>         }
+<a name="833" href="#833">833</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="834" href="#834">834</a>         {
+<a name="835" href="#835">835</a>             getLog().error( <span class="jxr_string">"Problem unpacking "</span> + jarFile + <span class="jxr_string">" to "</span> + outputDir, e );
+<a name="836" href="#836">836</a>         }
+<a name="837" href="#837">837</a>     }
+<a name="838" href="#838">838</a> 
+<a name="839" href="#839">839</a> 
+<a name="840" href="#840">840</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String removeTagFromInstruction( String instruction, String tag )
+<a name="841" href="#841">841</a>     {
+<a name="842" href="#842">842</a>         StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="843" href="#843">843</a> 
+<a name="844" href="#844">844</a>         String[] clauses = instruction.split( <span class="jxr_string">","</span> );
+<a name="845" href="#845">845</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; clauses.length; i++ )
+<a name="846" href="#846">846</a>         {
+<a name="847" href="#847">847</a>             String clause = clauses[i].trim();
+<a name="848" href="#848">848</a>             <strong class="jxr_keyword">if</strong> ( !tag.equals( clause ) )
+<a name="849" href="#849">849</a>             {
+<a name="850" href="#850">850</a>                 <strong class="jxr_keyword">if</strong> ( buf.length() &gt; 0 )
+<a name="851" href="#851">851</a>                 {
+<a name="852" href="#852">852</a>                     buf.append( ',' );
+<a name="853" href="#853">853</a>                 }
+<a name="854" href="#854">854</a>                 buf.append( clause );
+<a name="855" href="#855">855</a>             }
+<a name="856" href="#856">856</a>         }
+<a name="857" href="#857">857</a> 
+<a name="858" href="#858">858</a>         <strong class="jxr_keyword">return</strong> buf.toString();
+<a name="859" href="#859">859</a>     }
+<a name="860" href="#860">860</a> 
+<a name="861" href="#861">861</a> 
+<a name="862" href="#862">862</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Map getProperties( Model projectModel, String prefix )
+<a name="863" href="#863">863</a>     {
+<a name="864" href="#864">864</a>         Map properties = <strong class="jxr_keyword">new</strong> LinkedHashMap();
+<a name="865" href="#865">865</a>         Method methods[] = Model.<strong class="jxr_keyword">class</strong>.getDeclaredMethods();
+<a name="866" href="#866">866</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; methods.length; i++ )
+<a name="867" href="#867">867</a>         {
+<a name="868" href="#868">868</a>             String name = methods[i].getName();
+<a name="869" href="#869">869</a>             <strong class="jxr_keyword">if</strong> ( name.startsWith( <span class="jxr_string">"get"</span> ) )
+<a name="870" href="#870">870</a>             {
+<a name="871" href="#871">871</a>                 <strong class="jxr_keyword">try</strong>
+<a name="872" href="#872">872</a>                 {
+<a name="873" href="#873">873</a>                     Object v = methods[i].invoke( projectModel, <strong class="jxr_keyword">null</strong> );
+<a name="874" href="#874">874</a>                     <strong class="jxr_keyword">if</strong> ( v != <strong class="jxr_keyword">null</strong> )
+<a name="875" href="#875">875</a>                     {
+<a name="876" href="#876">876</a>                         name = prefix + Character.toLowerCase( name.charAt( 3 ) ) + name.substring( 4 );
+<a name="877" href="#877">877</a>                         <strong class="jxr_keyword">if</strong> ( v.getClass().isArray() )
+<a name="878" href="#878">878</a>                             properties.put( name, Arrays.asList( ( Object[] ) v ).toString() );
+<a name="879" href="#879">879</a>                         <strong class="jxr_keyword">else</strong>
+<a name="880" href="#880">880</a>                             properties.put( name, v );
+<a name="881" href="#881">881</a> 
+<a name="882" href="#882">882</a>                     }
+<a name="883" href="#883">883</a>                 }
+<a name="884" href="#884">884</a>                 <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="885" href="#885">885</a>                 {
+<a name="886" href="#886">886</a>                     <em class="jxr_comment">// too bad</em>
+<a name="887" href="#887">887</a>                 }
+<a name="888" href="#888">888</a>             }
+<a name="889" href="#889">889</a>         }
+<a name="890" href="#890">890</a>         <strong class="jxr_keyword">return</strong> properties;
+<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>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> StringBuffer printLicenses( List licenses )
+<a name="895" href="#895">895</a>     {
+<a name="896" href="#896">896</a>         <strong class="jxr_keyword">if</strong> ( licenses == <strong class="jxr_keyword">null</strong> || licenses.size() == 0 )
+<a name="897" href="#897">897</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="898" href="#898">898</a>         StringBuffer sb = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="899" href="#899">899</a>         String del = <span class="jxr_string">""</span>;
+<a name="900" href="#900">900</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = licenses.iterator(); i.hasNext(); )
+<a name="901" href="#901">901</a>         {
+<a name="902" href="#902">902</a>             License l = ( License ) i.next();
+<a name="903" href="#903">903</a>             String url = l.getUrl();
+<a name="904" href="#904">904</a>             <strong class="jxr_keyword">if</strong> ( url == <strong class="jxr_keyword">null</strong> )
+<a name="905" href="#905">905</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="906" href="#906">906</a>             sb.append( del );
+<a name="907" href="#907">907</a>             sb.append( url );
+<a name="908" href="#908">908</a>             del = <span class="jxr_string">", "</span>;
+<a name="909" href="#909">909</a>         }
+<a name="910" href="#910">910</a>         <strong class="jxr_keyword">if</strong> ( sb.length() == 0 )
+<a name="911" href="#911">911</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="912" href="#912">912</a>         <strong class="jxr_keyword">return</strong> sb;
+<a name="913" href="#913">913</a>     }
+<a name="914" href="#914">914</a> 
+<a name="915" href="#915">915</a> 
+<a name="916" href="#916">916</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="917" href="#917">917</a> <em class="jxr_javadoccomment">     * @param jar</em>
+<a name="918" href="#918">918</a> <em class="jxr_javadoccomment">     * @throws IOException</em>
+<a name="919" href="#919">919</a> <em class="jxr_javadoccomment">     */</em>
+<a name="920" href="#920">920</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="921" href="#921">921</a>     {
+<a name="922" href="#922">922</a>         String path = <span class="jxr_string">"META-INF/maven/"</span> + currentProject.getGroupId() + <span class="jxr_string">"/"</span> + currentProject.getArtifactId();
+<a name="923" href="#923">923</a>         File pomFile = <strong class="jxr_keyword">new</strong> File( currentProject.getBasedir(), <span class="jxr_string">"pom.xml"</span> );
+<a name="924" href="#924">924</a>         jar.putResource( path + <span class="jxr_string">"/pom.xml"</span>, <strong class="jxr_keyword">new</strong> FileResource( pomFile ) );
+<a name="925" href="#925">925</a> 
+<a name="926" href="#926">926</a>         Properties p = <strong class="jxr_keyword">new</strong> Properties();
+<a name="927" href="#927">927</a>         p.put( <span class="jxr_string">"version"</span>, currentProject.getVersion() );
+<a name="928" href="#928">928</a>         p.put( <span class="jxr_string">"groupId"</span>, currentProject.getGroupId() );
+<a name="929" href="#929">929</a>         p.put( <span class="jxr_string">"artifactId"</span>, currentProject.getArtifactId() );
+<a name="930" href="#930">930</a>         ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
+<a name="931" href="#931">931</a>         p.store( out, <span class="jxr_string">"Generated by org.apache.felix.bundleplugin"</span> );
+<a name="932" href="#932">932</a>         jar.putResource( path + <span class="jxr_string">"/pom.properties"</span>, <strong class="jxr_keyword">new</strong> EmbeddedResource( out.toByteArray(), System.currentTimeMillis() ) );
+<a name="933" href="#933">933</a>     }
+<a name="934" href="#934">934</a> 
+<a name="935" href="#935">935</a> 
+<a name="936" href="#936">936</a>     <strong class="jxr_keyword">protected</strong> Jar[] getClasspath( MavenProject currentProject ) <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException
+<a name="937" href="#937">937</a>     {
+<a name="938" href="#938">938</a>         List list = <strong class="jxr_keyword">new</strong> ArrayList();
+<a name="939" href="#939">939</a> 
+<a name="940" href="#940">940</a>         <strong class="jxr_keyword">if</strong> ( getOutputDirectory() != <strong class="jxr_keyword">null</strong> &amp;&amp; getOutputDirectory().exists() )
+<a name="941" href="#941">941</a>         {
+<a name="942" href="#942">942</a>             list.add( <strong class="jxr_keyword">new</strong> Jar( <span class="jxr_string">"."</span>, getOutputDirectory() ) );
+<a name="943" href="#943">943</a>         }
+<a name="944" href="#944">944</a> 
+<a name="945" href="#945">945</a>         <strong class="jxr_keyword">final</strong> Collection artifacts = getSelectedDependencies( currentProject.getArtifacts() );
+<a name="946" href="#946">946</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = artifacts.iterator(); it.hasNext(); )
+<a name="947" href="#947">947</a>         {
+<a name="948" href="#948">948</a>             Artifact artifact = ( Artifact ) it.next();
+<a name="949" href="#949">949</a>             <strong class="jxr_keyword">if</strong> ( artifact.getArtifactHandler().isAddedToClasspath() )
+<a name="950" href="#950">950</a>             {
+<a name="951" href="#951">951</a>                 <strong class="jxr_keyword">if</strong> ( !Artifact.SCOPE_TEST.equals( artifact.getScope() ) )
+<a name="952" href="#952">952</a>                 {
+<a name="953" href="#953">953</a>                     File file = getFile( artifact );
+<a name="954" href="#954">954</a>                     <strong class="jxr_keyword">if</strong> ( file == <strong class="jxr_keyword">null</strong> )
+<a name="955" href="#955">955</a>                     {
+<a name="956" href="#956">956</a>                         getLog().warn(
+<a name="957" href="#957">957</a>                             <span class="jxr_string">"File is not available for artifact "</span> + artifact + <span class="jxr_string">" in project "</span>
+<a name="958" href="#958">958</a>                                 + currentProject.getArtifact() );
+<a name="959" href="#959">959</a>                         <strong class="jxr_keyword">continue</strong>;
+<a name="960" href="#960">960</a>                     }
+<a name="961" href="#961">961</a>                     Jar jar = <strong class="jxr_keyword">new</strong> Jar( artifact.getArtifactId(), file );
+<a name="962" href="#962">962</a>                     list.add( jar );
+<a name="963" href="#963">963</a>                 }
+<a name="964" href="#964">964</a>             }
+<a name="965" href="#965">965</a>         }
+<a name="966" href="#966">966</a>         Jar[] cp = <strong class="jxr_keyword">new</strong> Jar[list.size()];
+<a name="967" href="#967">967</a>         list.toArray( cp );
+<a name="968" href="#968">968</a>         <strong class="jxr_keyword">return</strong> cp;
+<a name="969" href="#969">969</a>     }
+<a name="970" href="#970">970</a> 
+<a name="971" href="#971">971</a> 
+<a name="972" href="#972">972</a>     <strong class="jxr_keyword">private</strong> Collection getSelectedDependencies( Collection artifacts ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="973" href="#973">973</a>     {
+<a name="974" href="#974">974</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == excludeDependencies || excludeDependencies.length() == 0 )
+<a name="975" href="#975">975</a>         {
+<a name="976" href="#976">976</a>             <strong class="jxr_keyword">return</strong> artifacts;
+<a name="977" href="#977">977</a>         }
+<a name="978" href="#978">978</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"true"</span>.equalsIgnoreCase( excludeDependencies ) )
+<a name="979" href="#979">979</a>         {
+<a name="980" href="#980">980</a>             <strong class="jxr_keyword">return</strong> Collections.EMPTY_LIST;
+<a name="981" href="#981">981</a>         }
+<a name="982" href="#982">982</a> 
+<a name="983" href="#983">983</a>         Collection selectedDependencies = <strong class="jxr_keyword">new</strong> LinkedHashSet( artifacts );
+<a name="984" href="#984">984</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="985" href="#985">985</a>         excluder.processHeaders( excludeDependencies );
+<a name="986" href="#986">986</a>         selectedDependencies.removeAll( excluder.getExcludedArtifacts() );
+<a name="987" href="#987">987</a> 
+<a name="988" href="#988">988</a>         <strong class="jxr_keyword">return</strong> selectedDependencies;
+<a name="989" href="#989">989</a>     }
+<a name="990" href="#990">990</a> 
+<a name="991" href="#991">991</a> 
+<a name="992" href="#992">992</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="993" href="#993">993</a> <em class="jxr_javadoccomment">     * Get the file for an Artifact</em>
+<a name="994" href="#994">994</a> <em class="jxr_javadoccomment">     *</em>
+<a name="995" href="#995">995</a> <em class="jxr_javadoccomment">     * @param artifact</em>
+<a name="996" href="#996">996</a> <em class="jxr_javadoccomment">     */</em>
+<a name="997" href="#997">997</a>     <strong class="jxr_keyword">protected</strong> File getFile( Artifact artifact )
+<a name="998" href="#998">998</a>     {
+<a name="999" href="#999">999</a>         <strong class="jxr_keyword">return</strong> artifact.getFile();
+<a name="1000" href="#1000">1000</a>     }
+<a name="1001" href="#1001">1001</a> 
+<a name="1002" href="#1002">1002</a> 
+<a name="1003" href="#1003">1003</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="1004" href="#1004">1004</a>     {
+<a name="1005" href="#1005">1005</a>         <strong class="jxr_keyword">if</strong> ( value == <strong class="jxr_keyword">null</strong> )
+<a name="1006" href="#1006">1006</a>             <strong class="jxr_keyword">return</strong>;
+<a name="1007" href="#1007">1007</a> 
+<a name="1008" href="#1008">1008</a>         <strong class="jxr_keyword">if</strong> ( value instanceof Collection &amp;&amp; ( ( Collection ) value ).isEmpty() )
+<a name="1009" href="#1009">1009</a>             <strong class="jxr_keyword">return</strong>;
+<a name="1010" href="#1010">1010</a> 
+<a name="1011" href="#1011">1011</a>         properties.put( key, value.toString().replaceAll( <span class="jxr_string">"[\r\n]"</span>, <span class="jxr_string">""</span> ) );
+<a name="1012" href="#1012">1012</a>     }
+<a name="1013" href="#1013">1013</a> 
+<a name="1014" href="#1014">1014</a> 
+<a name="1015" href="#1015">1015</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="1016" href="#1016">1016</a> <em class="jxr_javadoccomment">     * Convert a Maven version into an OSGi compliant version</em>
+<a name="1017" href="#1017">1017</a> <em class="jxr_javadoccomment">     *</em>
+<a name="1018" href="#1018">1018</a> <em class="jxr_javadoccomment">     * @param version Maven version</em>
+<a name="1019" href="#1019">1019</a> <em class="jxr_javadoccomment">     * @return the OSGi version</em>
+<a name="1020" href="#1020">1020</a> <em class="jxr_javadoccomment">     */</em>
+<a name="1021" href="#1021">1021</a>     <strong class="jxr_keyword">protected</strong> String convertVersionToOsgi( String version )
+<a name="1022" href="#1022">1022</a>     {
+<a name="1023" href="#1023">1023</a>         <strong class="jxr_keyword">return</strong> getMaven2OsgiConverter().getVersion( version );
+<a name="1024" href="#1024">1024</a>     }
+<a name="1025" href="#1025">1025</a> 
+<a name="1026" href="#1026">1026</a> 
+<a name="1027" href="#1027">1027</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="1028" href="#1028">1028</a> <em class="jxr_javadoccomment">     * TODO this should return getMaven2Osgi().getBundleFileName( project.getArtifact() )</em>
+<a name="1029" href="#1029">1029</a> <em class="jxr_javadoccomment">     */</em>
+<a name="1030" href="#1030">1030</a>     <strong class="jxr_keyword">protected</strong> String getBundleName( MavenProject currentProject )
+<a name="1031" href="#1031">1031</a>     {
+<a name="1032" href="#1032">1032</a>         String extension;
+<a name="1033" href="#1033">1033</a>         <strong class="jxr_keyword">try</strong>
+<a name="1034" href="#1034">1034</a>         {
+<a name="1035" href="#1035">1035</a>             extension = currentProject.getArtifact().getArtifactHandler().getExtension();
+<a name="1036" href="#1036">1036</a>         }
+<a name="1037" href="#1037">1037</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
+<a name="1038" href="#1038">1038</a>         {
+<a name="1039" href="#1039">1039</a>             extension = currentProject.getArtifact().getType();
+<a name="1040" href="#1040">1040</a>         }
+<a name="1041" href="#1041">1041</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="1042" href="#1042">1042</a>         {
+<a name="1043" href="#1043">1043</a>             extension = <span class="jxr_string">"jar"</span>; <em class="jxr_comment">// just in case maven gets confused</em>
+<a name="1044" href="#1044">1044</a>         }
+<a name="1045" href="#1045">1045</a>         String finalName = currentProject.getBuild().getFinalName();
+<a name="1046" href="#1046">1046</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != classifier &amp;&amp; classifier.trim().length() &gt; 0 )
+<a name="1047" href="#1047">1047</a>         {
+<a name="1048" href="#1048">1048</a>             <strong class="jxr_keyword">return</strong> finalName + '-' + classifier + '.' + extension;
+<a name="1049" href="#1049">1049</a>         }
+<a name="1050" href="#1050">1050</a>         <strong class="jxr_keyword">return</strong> finalName + '.' + extension;
+<a name="1051" href="#1051">1051</a>     }
+<a name="1052" href="#1052">1052</a> 
+<a name="1053" href="#1053">1053</a> 
+<a name="1054" href="#1054">1054</a>     <strong class="jxr_keyword">protected</strong> String getBuildDirectory()
+<a name="1055" href="#1055">1055</a>     {
+<a name="1056" href="#1056">1056</a>         <strong class="jxr_keyword">return</strong> buildDirectory;
+<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>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setBuildDirectory( String _buildirectory )
+<a name="1061" href="#1061">1061</a>     {
+<a name="1062" href="#1062">1062</a>         buildDirectory = _buildirectory;
+<a name="1063" href="#1063">1063</a>     }
+<a name="1064" href="#1064">1064</a> 
+<a name="1065" href="#1065">1065</a> 
+<a name="1066" href="#1066">1066</a>     <strong class="jxr_keyword">protected</strong> Properties getDefaultProperties( MavenProject currentProject )
+<a name="1067" href="#1067">1067</a>     {
+<a name="1068" href="#1068">1068</a>         Properties properties = <strong class="jxr_keyword">new</strong> Properties();
+<a name="1069" href="#1069">1069</a> 
+<a name="1070" href="#1070">1070</a>         String bsn;
+<a name="1071" href="#1071">1071</a>         <strong class="jxr_keyword">try</strong>
+<a name="1072" href="#1072">1072</a>         {
+<a name="1073" href="#1073">1073</a>             bsn = getMaven2OsgiConverter().getBundleSymbolicName( currentProject.getArtifact() );
+<a name="1074" href="#1074">1074</a>         }
+<a name="1075" href="#1075">1075</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="1076" href="#1076">1076</a>         {
+<a name="1077" href="#1077">1077</a>             bsn = currentProject.getGroupId() + <span class="jxr_string">"."</span> + currentProject.getArtifactId();
+<a name="1078" href="#1078">1078</a>         }
+<a name="1079" href="#1079">1079</a> 
+<a name="1080" href="#1080">1080</a>         <em class="jxr_comment">// Setup defaults</em>
+<a name="1081" href="#1081">1081</a>         properties.put( MAVEN_SYMBOLICNAME, bsn );
+<a name="1082" href="#1082">1082</a>         properties.put( Analyzer.BUNDLE_SYMBOLICNAME, bsn );
+<a name="1083" href="#1083">1083</a>         properties.put( Analyzer.IMPORT_PACKAGE, <span class="jxr_string">"*"</span> );
+<a name="1084" href="#1084">1084</a>         properties.put( Analyzer.BUNDLE_VERSION, getMaven2OsgiConverter().getVersion( currentProject.getVersion() ) );
+<a name="1085" href="#1085">1085</a> 
+<a name="1086" href="#1086">1086</a>         <em class="jxr_comment">// remove the extraneous Include-Resource and Private-Package entries from generated manifest</em>
+<a name="1087" href="#1087">1087</a>         properties.put( Constants.REMOVEHEADERS, Analyzer.INCLUDE_RESOURCE + ',' + Analyzer.PRIVATE_PACKAGE );
+<a name="1088" href="#1088">1088</a> 
+<a name="1089" href="#1089">1089</a>         header( properties, Analyzer.BUNDLE_DESCRIPTION, currentProject.getDescription() );
+<a name="1090" href="#1090">1090</a>         StringBuffer licenseText = printLicenses( currentProject.getLicenses() );
+<a name="1091" href="#1091">1091</a>         <strong class="jxr_keyword">if</strong> ( licenseText != <strong class="jxr_keyword">null</strong> )
+<a name="1092" href="#1092">1092</a>         {
+<a name="1093" href="#1093">1093</a>             header( properties, Analyzer.BUNDLE_LICENSE, licenseText );
+<a name="1094" href="#1094">1094</a>         }
+<a name="1095" href="#1095">1095</a>         header( properties, Analyzer.BUNDLE_NAME, currentProject.getName() );
+<a name="1096" href="#1096">1096</a> 
+<a name="1097" href="#1097">1097</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization() != <strong class="jxr_keyword">null</strong> )
+<a name="1098" href="#1098">1098</a>         {
+<a name="1099" href="#1099">1099</a>             <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization().getName() != <strong class="jxr_keyword">null</strong> )
+<a name="1100" href="#1100">1100</a>             {
+<a name="1101" href="#1101">1101</a>                 String organizationName = currentProject.getOrganization().getName();
+<a name="1102" href="#1102">1102</a>                 header( properties, Analyzer.BUNDLE_VENDOR, organizationName );
+<a name="1103" href="#1103">1103</a>                 properties.put( <span class="jxr_string">"project.organization.name"</span>, organizationName );
+<a name="1104" href="#1104">1104</a>                 properties.put( <span class="jxr_string">"pom.organization.name"</span>, organizationName );
+<a name="1105" href="#1105">1105</a>             }
+<a name="1106" href="#1106">1106</a>             <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization().getUrl() != <strong class="jxr_keyword">null</strong> )
+<a name="1107" href="#1107">1107</a>             {
+<a name="1108" href="#1108">1108</a>                 String organizationUrl = currentProject.getOrganization().getUrl();
+<a name="1109" href="#1109">1109</a>                 header( properties, Analyzer.BUNDLE_DOCURL, organizationUrl );
+<a name="1110" href="#1110">1110</a>                 properties.put( <span class="jxr_string">"project.organization.url"</span>, organizationUrl );
+<a name="1111" href="#1111">1111</a>                 properties.put( <span class="jxr_string">"pom.organization.url"</span>, organizationUrl );
+<a name="1112" href="#1112">1112</a>             }
+<a name="1113" href="#1113">1113</a>         }
+<a name="1114" href="#1114">1114</a> 
+<a name="1115" href="#1115">1115</a>         properties.putAll( currentProject.getProperties() );
+<a name="1116" href="#1116">1116</a>         properties.putAll( currentProject.getModel().getProperties() );
+<a name="1117" href="#1117">1117</a>         <strong class="jxr_keyword">if</strong> ( m_mavenSession != <strong class="jxr_keyword">null</strong> )
+<a name="1118" href="#1118">1118</a>         {
+<a name="1119" href="#1119">1119</a>             properties.putAll( m_mavenSession.getExecutionProperties() );
+<a name="1120" href="#1120">1120</a>         }
+<a name="1121" href="#1121">1121</a> 
+<a name="1122" href="#1122">1122</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"project.build."</span> ) );
+<a name="1123" href="#1123">1123</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"pom."</span> ) );
+<a name="1124" href="#1124">1124</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"project."</span> ) );
+<a name="1125" href="#1125">1125</a> 
+<a name="1126" href="#1126">1126</a>         properties.put( <span class="jxr_string">"project.baseDir"</span>, getBase( currentProject ) );
+<a name="1127" href="#1127">1127</a>         properties.put( <span class="jxr_string">"project.build.directory"</span>, getBuildDirectory() );
+<a name="1128" href="#1128">1128</a>         properties.put( <span class="jxr_string">"project.build.outputdirectory"</span>, getOutputDirectory() );
+<a name="1129" href="#1129">1129</a> 
+<a name="1130" href="#1130">1130</a>         properties.put( <span class="jxr_string">"classifier"</span>, classifier == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">""</span> : classifier );
+<a name="1131" href="#1131">1131</a> 
+<a name="1132" href="#1132">1132</a>         <em class="jxr_comment">// Add default plugins</em>
+<a name="1133" href="#1133">1133</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="1134" href="#1134">1134</a> 
+<a name="1135" href="#1135">1135</a>         <strong class="jxr_keyword">return</strong> properties;
+<a name="1136" href="#1136">1136</a>     }
+<a name="1137" href="#1137">1137</a> 
+<a name="1138" href="#1138">1138</a> 
+<a name="1139" href="#1139">1139</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> File getBase( MavenProject currentProject )
+<a name="1140" href="#1140">1140</a>     {
+<a name="1141" href="#1141">1141</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="1142" href="#1142">1142</a>     }
+<a name="1143" href="#1143">1143</a> 
+<a name="1144" href="#1144">1144</a> 
+<a name="1145" href="#1145">1145</a>     <strong class="jxr_keyword">protected</strong> File getOutputDirectory()
+<a name="1146" href="#1146">1146</a>     {
+<a name="1147" href="#1147">1147</a>         <strong class="jxr_keyword">return</strong> outputDirectory;
+<a name="1148" href="#1148">1148</a>     }
+<a name="1149" href="#1149">1149</a> 
+<a name="1150" href="#1150">1150</a> 
+<a name="1151" href="#1151">1151</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setOutputDirectory( File _outputDirectory )
+<a name="1152" href="#1152">1152</a>     {
+<a name="1153" href="#1153">1153</a>         outputDirectory = _outputDirectory;
+<a name="1154" href="#1154">1154</a>     }
+<a name="1155" href="#1155">1155</a> 
+<a name="1156" href="#1156">1156</a> 
+<a name="1157" href="#1157">1157</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="1158" href="#1158">1158</a>     {
+<a name="1159" href="#1159">1159</a>         Collection packages = <strong class="jxr_keyword">new</strong> LinkedHashSet();
+<a name="1160" href="#1160">1160</a> 
+<a name="1161" href="#1161">1161</a>         <strong class="jxr_keyword">if</strong> ( outputDirectory != <strong class="jxr_keyword">null</strong> &amp;&amp; outputDirectory.isDirectory() )
+<a name="1162" href="#1162">1162</a>         {
+<a name="1163" href="#1163">1163</a>             <em class="jxr_comment">// scan classes directory for potential packages</em>
+<a name="1164" href="#1164">1164</a>             DirectoryScanner scanner = <strong class="jxr_keyword">new</strong> DirectoryScanner();
+<a name="1165" href="#1165">1165</a>             scanner.setBasedir( outputDirectory );
+<a name="1166" href="#1166">1166</a>             scanner.setIncludes( <strong class="jxr_keyword">new</strong> String[]
+<a name="1167" href="#1167">1167</a>                 { <span class="jxr_string">"**/*.class"</span> } );
+<a name="1168" href="#1168">1168</a> 
+<a name="1169" href="#1169">1169</a>             scanner.addDefaultExcludes();
+<a name="1170" href="#1170">1170</a>             scanner.scan();
+<a name="1171" href="#1171">1171</a> 
+<a name="1172" href="#1172">1172</a>             String[] paths = scanner.getIncludedFiles();
+<a name="1173" href="#1173">1173</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; paths.length; i++ )
+<a name="1174" href="#1174">1174</a>             {
+<a name="1175" href="#1175">1175</a>                 packages.add( getPackageName( paths[i] ) );
+<a name="1176" href="#1176">1176</a>             }
+<a name="1177" href="#1177">1177</a>         }
+<a name="1178" href="#1178">1178</a> 
+<a name="1179" href="#1179">1179</a>         StringBuffer exportedPkgs = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="1180" href="#1180">1180</a>         StringBuffer privatePkgs = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="1181" href="#1181">1181</a> 
+<a name="1182" href="#1182">1182</a>         <strong class="jxr_keyword">boolean</strong> noprivatePackages = <span class="jxr_string">"!*"</span>.equals( analyzer.getProperty( Analyzer.PRIVATE_PACKAGE ) );
+<a name="1183" href="#1183">1183</a> 
+<a name="1184" href="#1184">1184</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = packages.iterator(); i.hasNext(); )
+<a name="1185" href="#1185">1185</a>         {
+<a name="1186" href="#1186">1186</a>             String pkg = ( String ) i.next();
+<a name="1187" href="#1187">1187</a> 
+<a name="1188" href="#1188">1188</a>             <em class="jxr_comment">// mark all source packages as private by default (can be overridden by export list)</em>
+<a name="1189" href="#1189">1189</a>             privatePkgs.append( pkg ).append( <span class="jxr_string">";-split-package:=merge-first,"</span> );
+<a name="1190" href="#1190">1190</a> 
+<a name="1191" href="#1191">1191</a>             <em class="jxr_comment">// we can't export the default package (".") and we shouldn't export internal packages </em>
+<a name="1192" href="#1192">1192</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="1193" href="#1193">1193</a>             {
+<a name="1194" href="#1194">1194</a>                 <strong class="jxr_keyword">if</strong> ( exportedPkgs.length() &gt; 0 )
+<a name="1195" href="#1195">1195</a>                 {
+<a name="1196" href="#1196">1196</a>                     exportedPkgs.append( ';' );
+<a name="1197" href="#1197">1197</a>                 }
+<a name="1198" href="#1198">1198</a>                 exportedPkgs.append( pkg );
+<a name="1199" href="#1199">1199</a>             }
+<a name="1200" href="#1200">1200</a>         }
+<a name="1201" href="#1201">1201</a> 
+<a name="1202" href="#1202">1202</a>         <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.EXPORT_PACKAGE ) == <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> ( analyzer.getProperty( Analyzer.EXPORT_CONTENTS ) == <strong class="jxr_keyword">null</strong> )
+<a name="1205" href="#1205">1205</a>             {
+<a name="1206" href="#1206">1206</a>                 <em class="jxr_comment">// no -exportcontents overriding the exports, so use our computed list</em>
+<a name="1207" href="#1207">1207</a>                 analyzer.setProperty( Analyzer.EXPORT_PACKAGE, exportedPkgs.toString() );
+<a name="1208" href="#1208">1208</a>             }
+<a name="1209" href="#1209">1209</a>             <strong class="jxr_keyword">else</strong>
+<a name="1210" href="#1210">1210</a>             {
+<a name="1211" href="#1211">1211</a>                 <em class="jxr_comment">// leave Export-Package empty (but non-null) as we have -exportcontents</em>
+<a name="1212" href="#1212">1212</a>                 analyzer.setProperty( Analyzer.EXPORT_PACKAGE, <span class="jxr_string">""</span> );
+<a name="1213" href="#1213">1213</a>             }
+<a name="1214" href="#1214">1214</a>         }
+<a name="1215" href="#1215">1215</a>         <strong class="jxr_keyword">else</strong>
+<a name="1216" href="#1216">1216</a>         {
+<a name="1217" href="#1217">1217</a>             String exported = analyzer.getProperty( Analyzer.EXPORT_PACKAGE );
+<a name="1218" href="#1218">1218</a>             <strong class="jxr_keyword">if</strong> ( exported.indexOf( LOCAL_PACKAGES ) &gt;= 0 )
+<a name="1219" href="#1219">1219</a>             {
+<a name="1220" href="#1220">1220</a>                 String newExported = StringUtils.replace( exported, LOCAL_PACKAGES, exportedPkgs.toString() );
+<a name="1221" href="#1221">1221</a>                 analyzer.setProperty( Analyzer.EXPORT_PACKAGE, newExported );
+<a name="1222" href="#1222">1222</a> 
+<a name="1223" href="#1223">1223</a>             }
+<a name="1224" href="#1224">1224</a>         }
+<a name="1225" href="#1225">1225</a> 
+<a name="1226" href="#1226">1226</a>         <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.PRIVATE_PACKAGE ) == <strong class="jxr_keyword">null</strong> )
+<a name="1227" href="#1227">1227</a>         {
+<a name="1228" href="#1228">1228</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="1229" href="#1229">1229</a>             analyzer.setProperty( Analyzer.PRIVATE_PACKAGE, privatePkgs.length() == 0 ? <span class="jxr_string">"!*"</span> : privatePkgs.toString() );
+<a name="1230" href="#1230">1230</a>         }
+<a name="1231" href="#1231">1231</a>     }
+<a name="1232" href="#1232">1232</a> 
+<a name="1233" href="#1233">1233</a> 
+<a name="1234" href="#1234">1234</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getPackageName( String filename )
+<a name="1235" href="#1235">1235</a>     {
+<a name="1236" href="#1236">1236</a>         <strong class="jxr_keyword">int</strong> n = filename.lastIndexOf( File.separatorChar );
+<a name="1237" href="#1237">1237</a>         <strong class="jxr_keyword">return</strong> n &lt; 0 ? <span class="jxr_string">"."</span> : filename.substring( 0, n ).replace( File.separatorChar, '.' );
+<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> List getMavenResources( MavenProject currentProject )
+<a name="1242" href="#1242">1242</a>     {
+<a name="1243" href="#1243">1243</a>         List resources = <strong class="jxr_keyword">new</strong> ArrayList( currentProject.getResources() );
+<a name="1244" href="#1244">1244</a> 
+<a name="1245" href="#1245">1245</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getCompileSourceRoots() != <strong class="jxr_keyword">null</strong> )
+<a name="1246" href="#1246">1246</a>         {
+<a name="1247" href="#1247">1247</a>             <em class="jxr_comment">// also scan for any "packageinfo" files lurking in the source folders</em>
+<a name="1248" href="#1248">1248</a>             List packageInfoIncludes = Collections.singletonList( <span class="jxr_string">"**/packageinfo"</span> );
+<a name="1249" href="#1249">1249</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = currentProject.getCompileSourceRoots().iterator(); i.hasNext(); )
+<a name="1250" href="#1250">1250</a>             {
+<a name="1251" href="#1251">1251</a>                 String sourceRoot = ( String ) i.next();
+<a name="1252" href="#1252">1252</a>                 Resource packageInfoResource = <strong class="jxr_keyword">new</strong> Resource();
+<a name="1253" href="#1253">1253</a>                 packageInfoResource.setDirectory( sourceRoot );
+<a name="1254" href="#1254">1254</a>                 packageInfoResource.setIncludes( packageInfoIncludes );
+<a name="1255" href="#1255">1255</a>                 resources.add( packageInfoResource );
+<a name="1256" href="#1256">1256</a>             }
+<a name="1257" href="#1257">1257</a>         }
+<a name="1258" href="#1258">1258</a> 
+<a name="1259" href="#1259">1259</a>         <strong class="jxr_keyword">return</strong> resources;
+<a name="1260" href="#1260">1260</a>     }
+<a name="1261" href="#1261">1261</a> 
+<a name="1262" href="#1262">1262</a> 
+<a name="1263" href="#1263">1263</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String getMavenResourcePaths( MavenProject currentProject )
+<a name="1264" href="#1264">1264</a>     {
+<a name="1265" href="#1265">1265</a>         <strong class="jxr_keyword">final</strong> String basePath = currentProject.getBasedir().getAbsolutePath();
+<a name="1266" href="#1266">1266</a> 
+<a name="1267" href="#1267">1267</a>         Set pathSet = <strong class="jxr_keyword">new</strong> LinkedHashSet();
+<a name="1268" href="#1268">1268</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = getMavenResources( currentProject ).iterator(); i.hasNext(); )
+<a name="1269" href="#1269">1269</a>         {
+<a name="1270" href="#1270">1270</a>             Resource resource = ( Resource ) i.next();
+<a name="1271" href="#1271">1271</a> 
+<a name="1272" href="#1272">1272</a>             <strong class="jxr_keyword">final</strong> String sourcePath = resource.getDirectory();
+<a name="1273" href="#1273">1273</a>             <strong class="jxr_keyword">final</strong> String targetPath = resource.getTargetPath();
+<a name="1274" href="#1274">1274</a> 
+<a name="1275" href="#1275">1275</a>             <em class="jxr_comment">// ignore empty or non-local resources</em>
+<a name="1276" href="#1276">1276</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="1277" href="#1277">1277</a>             {
+<a name="1278" href="#1278">1278</a>                 DirectoryScanner scanner = <strong class="jxr_keyword">new</strong> DirectoryScanner();
+<a name="1279" href="#1279">1279</a> 
+<a name="1280" href="#1280">1280</a>                 scanner.setBasedir( sourcePath );
+<a name="1281" href="#1281">1281</a>                 <strong class="jxr_keyword">if</strong> ( resource.getIncludes() != <strong class="jxr_keyword">null</strong> &amp;&amp; !resource.getIncludes().isEmpty() )
+<a name="1282" href="#1282">1282</a>                 {
+<a name="1283" href="#1283">1283</a>                     scanner.setIncludes( ( String[] ) resource.getIncludes().toArray( EMPTY_STRING_ARRAY ) );
+<a name="1284" href="#1284">1284</a>                 }
+<a name="1285" href="#1285">1285</a>                 <strong class="jxr_keyword">else</strong>
+<a name="1286" href="#1286">1286</a>                 {
+<a name="1287" href="#1287">1287</a>                     scanner.setIncludes( DEFAULT_INCLUDES );
+<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> ( resource.getExcludes() != <strong class="jxr_keyword">null</strong> &amp;&amp; !resource.getExcludes().isEmpty() )
+<a name="1291" href="#1291">1291</a>                 {
+<a name="1292" href="#1292">1292</a>                     scanner.setExcludes( ( String[] ) resource.getExcludes().toArray( EMPTY_STRING_ARRAY ) );
+<a name="1293" href="#1293">1293</a>                 }
+<a name="1294" href="#1294">1294</a> 
+<a name="1295" href="#1295">1295</a>                 scanner.addDefaultExcludes();
+<a name="1296" href="#1296">1296</a>                 scanner.scan();
+<a name="1297" href="#1297">1297</a> 
+<a name="1298" href="#1298">1298</a>                 List includedFiles = Arrays.asList( scanner.getIncludedFiles() );
+<a name="1299" href="#1299">1299</a> 
+<a name="1300" href="#1300">1300</a>                 <strong class="jxr_keyword">for</strong> ( Iterator j = includedFiles.iterator(); j.hasNext(); )
+<a name="1301" href="#1301">1301</a>                 {
+<a name="1302" href="#1302">1302</a>                     String name = ( String ) j.next();
+<a name="1303" href="#1303">1303</a>                     String path = sourcePath + '/' + name;
+<a name="1304" href="#1304">1304</a> 
+<a name="1305" href="#1305">1305</a>                     <em class="jxr_comment">// make relative to project</em>
+<a name="1306" href="#1306">1306</a>                     <strong class="jxr_keyword">if</strong> ( path.startsWith( basePath ) )
+<a name="1307" href="#1307">1307</a>                     {
+<a name="1308" href="#1308">1308</a>                         <strong class="jxr_keyword">if</strong> ( path.length() == basePath.length() )
+<a name="1309" href="#1309">1309</a>                         {
+<a name="1310" href="#1310">1310</a>                             path = <span class="jxr_string">"."</span>;
+<a name="1311" href="#1311">1311</a>                         }
+<a name="1312" href="#1312">1312</a>                         <strong class="jxr_keyword">else</strong>
+<a name="1313" href="#1313">1313</a>                         {
+<a name="1314" href="#1314">1314</a>                             path = path.substring( basePath.length() + 1 );
+<a name="1315" href="#1315">1315</a>                         }
+<a name="1316" href="#1316">1316</a>                     }
+<a name="1317" href="#1317">1317</a> 
+<a name="1318" href="#1318">1318</a>                     <em class="jxr_comment">// replace windows backslash with a slash</em>
+<a name="1319" href="#1319">1319</a>                     <em class="jxr_comment">// this is a workaround for a problem with bnd 0.0.189</em>
+<a name="1320" href="#1320">1320</a>                     <strong class="jxr_keyword">if</strong> ( File.separatorChar != '/' )
+<a name="1321" href="#1321">1321</a>                     {
+<a name="1322" href="#1322">1322</a>                         name = name.replace( File.separatorChar, '/' );
+<a name="1323" href="#1323">1323</a>                         path = path.replace( File.separatorChar, '/' );
+<a name="1324" href="#1324">1324</a>                     }
+<a name="1325" href="#1325">1325</a> 
+<a name="1326" href="#1326">1326</a>                     <em class="jxr_comment">// copy to correct place</em>
+<a name="1327" href="#1327">1327</a>                     path = name + '=' + path;
+<a name="1328" href="#1328">1328</a>                     <strong class="jxr_keyword">if</strong> ( targetPath != <strong class="jxr_keyword">null</strong> )
+<a name="1329" href="#1329">1329</a>                     {
+<a name="1330" href="#1330">1330</a>                         path = targetPath + '/' + path;
+<a name="1331" href="#1331">1331</a>                     }
+<a name="1332" href="#1332">1332</a> 
+<a name="1333" href="#1333">1333</a>                     <em class="jxr_comment">// use Bnd filtering?</em>
+<a name="1334" href="#1334">1334</a>                     <strong class="jxr_keyword">if</strong> ( resource.isFiltering() )
+<a name="1335" href="#1335">1335</a>                     {
+<a name="1336" href="#1336">1336</a>                         path = '{' + path + '}';
+<a name="1337" href="#1337">1337</a>                     }
+<a name="1338" href="#1338">1338</a> 
+<a name="1339" href="#1339">1339</a>                     pathSet.add( path );
+<a name="1340" href="#1340">1340</a>                 }
+<a name="1341" href="#1341">1341</a>             }
+<a name="1342" href="#1342">1342</a>         }
+<a name="1343" href="#1343">1343</a> 
+<a name="1344" href="#1344">1344</a>         StringBuffer resourcePaths = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="1345" href="#1345">1345</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = pathSet.iterator(); i.hasNext(); )
+<a name="1346" href="#1346">1346</a>         {
+<a name="1347" href="#1347">1347</a>             resourcePaths.append( i.next() );
+<a name="1348" href="#1348">1348</a>             <strong class="jxr_keyword">if</strong> ( i.hasNext() )
+<a name="1349" href="#1349">1349</a>             {
+<a name="1350" href="#1350">1350</a>                 resourcePaths.append( ',' );
+<a name="1351" href="#1351">1351</a>             }
+<a name="1352" href="#1352">1352</a>         }
+<a name="1353" href="#1353">1353</a> 
+<a name="1354" href="#1354">1354</a>         <strong class="jxr_keyword">return</strong> resourcePaths.toString();
+<a name="1355" href="#1355">1355</a>     }
+<a name="1356" href="#1356">1356</a> 
+<a name="1357" href="#1357">1357</a> 
+<a name="1358" href="#1358">1358</a>     <strong class="jxr_keyword">protected</strong> Collection getEmbeddableArtifacts( MavenProject currentProject, Analyzer analyzer )
+<a name="1359" href="#1359">1359</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="1360" href="#1360">1360</a>     {
+<a name="1361" href="#1361">1361</a>         <strong class="jxr_keyword">final</strong> Collection artifacts;
+<a name="1362" href="#1362">1362</a> 
+<a name="1363" href="#1363">1363</a>         String embedTransitive = analyzer.getProperty( DependencyEmbedder.EMBED_TRANSITIVE );
+<a name="1364" href="#1364">1364</a>         <strong class="jxr_keyword">if</strong> ( Boolean.valueOf( embedTransitive ).booleanValue() )
+<a name="1365" href="#1365">1365</a>         {
+<a name="1366" href="#1366">1366</a>             <em class="jxr_comment">// includes transitive dependencies</em>
+<a name="1367" href="#1367">1367</a>             artifacts = currentProject.getArtifacts();
+<a name="1368" href="#1368">1368</a>         }
+<a name="1369" href="#1369">1369</a>         <strong class="jxr_keyword">else</strong>
+<a name="1370" href="#1370">1370</a>         {
+<a name="1371" href="#1371">1371</a>             <em class="jxr_comment">// only includes direct dependencies</em>
+<a name="1372" href="#1372">1372</a>             artifacts = currentProject.getDependencyArtifacts();
+<a name="1373" href="#1373">1373</a>         }
+<a name="1374" href="#1374">1374</a> 
+<a name="1375" href="#1375">1375</a>         <strong class="jxr_keyword">return</strong> getSelectedDependencies( artifacts );
+<a name="1376" href="#1376">1376</a>     }
+<a name="1377" href="#1377">1377</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
new file mode 100644
index 0000000..e7d4b46
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/DependencyEmbedder.html
@@ -0,0 +1,315 @@
+<!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>DependencyEmbedder xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<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>  <strong class="jxr_keyword">import</strong> java.util.Collection;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashSet;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="27" href="#27">27</a>  
+<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>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.StringUtils;
+<a name="32" href="#32">32</a>  
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> aQute.libg.header.OSGiHeader;
+<a name="35" href="#35">35</a>  
+<a name="36" href="#36">36</a>  
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * Add BND directives to embed selected dependencies inside a bundle</em>
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="42" href="#42">42</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyEmbedder.html">DependencyEmbedder</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">AbstractDependencyFilter</a>
+<a name="43" href="#43">43</a>  {
+<a name="44" href="#44">44</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMBED_DEPENDENCY = <span class="jxr_string">"Embed-Dependency"</span>;
+<a name="45" href="#45">45</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMBED_DIRECTORY = <span class="jxr_string">"Embed-Directory"</span>;
+<a name="46" href="#46">46</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMBED_STRIP_GROUP = <span class="jxr_string">"Embed-StripGroup"</span>;
+<a name="47" href="#47">47</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMBED_STRIP_VERSION = <span class="jxr_string">"Embed-StripVersion"</span>;
+<a name="48" href="#48">48</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMBED_TRANSITIVE = <span class="jxr_string">"Embed-Transitive"</span>;
+<a name="49" href="#49">49</a>  
+<a name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_DEPENDENCIES = <span class="jxr_string">"{maven-dependencies}"</span>;
+<a name="51" href="#51">51</a>  
+<a name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> String m_embedDirectory;
+<a name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> String m_embedStripGroup;
+<a name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> String m_embedStripVersion;
+<a name="55" href="#55">55</a>  
+<a name="56" href="#56">56</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * Maven logger.</em>
+<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Log m_log;
+<a name="60" href="#60">60</a>  
+<a name="61" href="#61">61</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * Inlined paths.</em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Collection m_inlinedPaths;
+<a name="65" href="#65">65</a>  
+<a name="66" href="#66">66</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     * Embedded artifacts.</em>
+<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Collection m_embeddedArtifacts;
+<a name="70" href="#70">70</a>  
+<a name="71" href="#71">71</a>  
+<a name="72" href="#72">72</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyEmbedder.html">DependencyEmbedder</a>( Log log, Collection dependencyArtifacts )
+<a name="73" href="#73">73</a>      {
+<a name="74" href="#74">74</a>          <strong class="jxr_keyword">super</strong>( dependencyArtifacts );
+<a name="75" href="#75">75</a>  
+<a name="76" href="#76">76</a>          m_log = log;
+<a name="77" href="#77">77</a>  
+<a name="78" href="#78">78</a>          m_inlinedPaths = <strong class="jxr_keyword">new</strong> LinkedHashSet();
+<a name="79" href="#79">79</a>          m_embeddedArtifacts = <strong class="jxr_keyword">new</strong> LinkedHashSet();
+<a name="80" href="#80">80</a>      }
+<a name="81" href="#81">81</a>  
+<a name="82" href="#82">82</a>  
+<a name="83" href="#83">83</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> processHeaders( Analyzer analyzer ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="84" href="#84">84</a>      {
+<a name="85" href="#85">85</a>          StringBuffer includeResource = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="86" href="#86">86</a>          StringBuffer bundleClassPath = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="87" href="#87">87</a>  
+<a name="88" href="#88">88</a>          m_inlinedPaths.clear();
+<a name="89" href="#89">89</a>          m_embeddedArtifacts.clear();
+<a name="90" href="#90">90</a>  
+<a name="91" href="#91">91</a>          String embedDependencyHeader = analyzer.getProperty( EMBED_DEPENDENCY );
+<a name="92" href="#92">92</a>          <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != embedDependencyHeader &amp;&amp; embedDependencyHeader.length() &gt; 0 )
+<a name="93" href="#93">93</a>          {
+<a name="94" href="#94">94</a>              m_embedDirectory = analyzer.getProperty( EMBED_DIRECTORY );
+<a name="95" href="#95">95</a>              m_embedStripGroup = analyzer.getProperty( EMBED_STRIP_GROUP, <span class="jxr_string">"true"</span> );
+<a name="96" href="#96">96</a>              m_embedStripVersion = analyzer.getProperty( EMBED_STRIP_VERSION );
+<a name="97" href="#97">97</a>  
+<a name="98" href="#98">98</a>              Map embedInstructions = OSGiHeader.parseHeader( embedDependencyHeader );
+<a name="99" href="#99">99</a>              processInstructions( embedInstructions );
+<a name="100" href="#100">100</a> 
+<a name="101" href="#101">101</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = m_inlinedPaths.iterator(); i.hasNext(); )
+<a name="102" href="#102">102</a>             {
+<a name="103" href="#103">103</a>                 inlineDependency( ( String ) i.next(), includeResource );
+<a name="104" href="#104">104</a>             }
+<a name="105" href="#105">105</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = m_embeddedArtifacts.iterator(); i.hasNext(); )
+<a name="106" href="#106">106</a>             {
+<a name="107" href="#107">107</a>                 embedDependency( ( Artifact ) i.next(), includeResource, bundleClassPath );
+<a name="108" href="#108">108</a>             }
+<a name="109" href="#109">109</a>         }
+<a name="110" href="#110">110</a> 
+<a name="111" href="#111">111</a>         <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.WAB ) == <strong class="jxr_keyword">null</strong> &amp;&amp; bundleClassPath.length() &gt; 0 )
+<a name="112" href="#112">112</a>         {
+<a name="113" href="#113">113</a>             <em class="jxr_comment">// set explicit default before merging dependency classpath</em>
+<a name="114" href="#114">114</a>             <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.BUNDLE_CLASSPATH ) == <strong class="jxr_keyword">null</strong> )
+<a name="115" href="#115">115</a>             {
+<a name="116" href="#116">116</a>                 analyzer.setProperty( Analyzer.BUNDLE_CLASSPATH, <span class="jxr_string">"."</span> );
+<a name="117" href="#117">117</a>             }
+<a name="118" href="#118">118</a>         }
+<a name="119" href="#119">119</a> 
+<a name="120" href="#120">120</a>         appendDependencies( analyzer, Analyzer.INCLUDE_RESOURCE, includeResource.toString() );
+<a name="121" href="#121">121</a>         appendDependencies( analyzer, Analyzer.BUNDLE_CLASSPATH, bundleClassPath.toString() );
+<a name="122" href="#122">122</a>     }
+<a name="123" href="#123">123</a> 
+<a name="124" href="#124">124</a> 
+<a name="125" href="#125">125</a>     @Override
+<a name="126" href="#126">126</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> processDependencies( String tag, String inline, Collection dependencies )
+<a name="127" href="#127">127</a>     {
+<a name="128" href="#128">128</a>         <strong class="jxr_keyword">if</strong> ( dependencies.isEmpty() )
+<a name="129" href="#129">129</a>         {
+<a name="130" href="#130">130</a>             m_log.warn( EMBED_DEPENDENCY + <span class="jxr_string">": clause \&quot;"</span> + tag + <span class="jxr_string">"\&quot; did not match any dependencies"</span> );
+<a name="131" href="#131">131</a>         }
+<a name="132" href="#132">132</a> 
+<a name="133" href="#133">133</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == inline || <span class="jxr_string">"false"</span>.equalsIgnoreCase( inline ) )
+<a name="134" href="#134">134</a>         {
+<a name="135" href="#135">135</a>             m_embeddedArtifacts.addAll( dependencies );
+<a name="136" href="#136">136</a>         }
+<a name="137" href="#137">137</a>         <strong class="jxr_keyword">else</strong>
+<a name="138" href="#138">138</a>         {
+<a name="139" href="#139">139</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = dependencies.iterator(); i.hasNext(); )
+<a name="140" href="#140">140</a>             {
+<a name="141" href="#141">141</a>                 addInlinedPaths( ( Artifact ) i.next(), inline, m_inlinedPaths );
+<a name="142" href="#142">142</a>             }
+<a name="143" href="#143">143</a>         }
+<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> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> addInlinedPaths( Artifact dependency, String inline, Collection inlinedPaths )
+<a name="148" href="#148">148</a>     {
+<a name="149" href="#149">149</a>         File path = dependency.getFile();
+<a name="150" href="#150">150</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != path &amp;&amp; path.exists() )
+<a name="151" href="#151">151</a>         {
+<a name="152" href="#152">152</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"true"</span>.equalsIgnoreCase( inline ) || inline.length() == 0 )
+<a name="153" href="#153">153</a>             {
+<a name="154" href="#154">154</a>                 inlinedPaths.add( path.getPath() );
+<a name="155" href="#155">155</a>             }
+<a name="156" href="#156">156</a>             <strong class="jxr_keyword">else</strong>
+<a name="157" href="#157">157</a>             {
+<a name="158" href="#158">158</a>                 String[] filters = inline.split( <span class="jxr_string">"&#92;&#92;|"</span> );
+<a name="159" href="#159">159</a>                 <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; filters.length; i++ )
+<a name="160" href="#160">160</a>                 {
+<a name="161" href="#161">161</a>                     <strong class="jxr_keyword">if</strong> ( filters[i].length() &gt; 0 )
+<a name="162" href="#162">162</a>                     {
+<a name="163" href="#163">163</a>                         inlinedPaths.add( path + <span class="jxr_string">"!/"</span> + filters[i] );
+<a name="164" href="#164">164</a>                     }
+<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>     }
+<a name="169" href="#169">169</a> 
+<a name="170" href="#170">170</a> 
+<a name="171" href="#171">171</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> embedDependency( Artifact dependency, StringBuffer includeResource, StringBuffer bundleClassPath )
+<a name="172" href="#172">172</a>     {
+<a name="173" href="#173">173</a>         File sourceFile = dependency.getFile();
+<a name="174" href="#174">174</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != sourceFile &amp;&amp; sourceFile.exists() )
+<a name="175" href="#175">175</a>         {
+<a name="176" href="#176">176</a>             String embedDirectory = m_embedDirectory;
+<a name="177" href="#177">177</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">""</span>.equals( embedDirectory ) || <span class="jxr_string">"."</span>.equals( embedDirectory ) )
+<a name="178" href="#178">178</a>             {
+<a name="179" href="#179">179</a>                 embedDirectory = <strong class="jxr_keyword">null</strong>;
+<a name="180" href="#180">180</a>             }
+<a name="181" href="#181">181</a> 
+<a name="182" href="#182">182</a>             <strong class="jxr_keyword">if</strong> ( false == Boolean.valueOf( m_embedStripGroup ).booleanValue() )
+<a name="183" href="#183">183</a>             {
+<a name="184" href="#184">184</a>                 embedDirectory = <strong class="jxr_keyword">new</strong> File( embedDirectory, dependency.getGroupId() ).getPath();
+<a name="185" href="#185">185</a>             }
+<a name="186" href="#186">186</a> 
+<a name="187" href="#187">187</a>             File targetFile;
+<a name="188" href="#188">188</a>             <strong class="jxr_keyword">if</strong> ( Boolean.valueOf( m_embedStripVersion ).booleanValue() )
+<a name="189" href="#189">189</a>             {
+<a name="190" href="#190">190</a>                 String extension = dependency.getArtifactHandler().getExtension();
+<a name="191" href="#191">191</a>                 <strong class="jxr_keyword">if</strong> ( extension != <strong class="jxr_keyword">null</strong> )
+<a name="192" href="#192">192</a>                 {
+<a name="193" href="#193">193</a>                     targetFile = <strong class="jxr_keyword">new</strong> File( embedDirectory, dependency.getArtifactId() + <span class="jxr_string">"."</span> + extension );
+<a name="194" href="#194">194</a>                 }
+<a name="195" href="#195">195</a>                 <strong class="jxr_keyword">else</strong>
+<a name="196" href="#196">196</a>                 {
+<a name="197" href="#197">197</a>                     targetFile = <strong class="jxr_keyword">new</strong> File( embedDirectory, dependency.getArtifactId() );
+<a name="198" href="#198">198</a>                 }
+<a name="199" href="#199">199</a>             }
+<a name="200" href="#200">200</a>             <strong class="jxr_keyword">else</strong>
+<a name="201" href="#201">201</a>             {
+<a name="202" href="#202">202</a>                 targetFile = <strong class="jxr_keyword">new</strong> File( embedDirectory, sourceFile.getName() );
+<a name="203" href="#203">203</a>             }
+<a name="204" href="#204">204</a> 
+<a name="205" href="#205">205</a>             String targetFilePath = targetFile.getPath();
+<a name="206" href="#206">206</a> 
+<a name="207" href="#207">207</a>             <em class="jxr_comment">// replace windows backslash with a slash</em>
+<a name="208" href="#208">208</a>             <strong class="jxr_keyword">if</strong> ( File.separatorChar != '/' )
+<a name="209" href="#209">209</a>             {
+<a name="210" href="#210">210</a>                 targetFilePath = targetFilePath.replace( File.separatorChar, '/' );
+<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">if</strong> ( includeResource.length() &gt; 0 )
+<a name="214" href="#214">214</a>             {
+<a name="215" href="#215">215</a>                 includeResource.append( ',' );
+<a name="216" href="#216">216</a>             }
+<a name="217" href="#217">217</a> 
+<a name="218" href="#218">218</a>             includeResource.append( targetFilePath );
+<a name="219" href="#219">219</a>             includeResource.append( '=' );
+<a name="220" href="#220">220</a>             includeResource.append( sourceFile );
+<a name="221" href="#221">221</a> 
+<a name="222" href="#222">222</a>             <strong class="jxr_keyword">if</strong> ( bundleClassPath.length() &gt; 0 )
+<a name="223" href="#223">223</a>             {
+<a name="224" href="#224">224</a>                 bundleClassPath.append( ',' );
+<a name="225" href="#225">225</a>             }
+<a name="226" href="#226">226</a> 
+<a name="227" href="#227">227</a>             bundleClassPath.append( targetFilePath );
+<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> 
+<a name="232" href="#232">232</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> inlineDependency( String path, StringBuffer includeResource )
+<a name="233" href="#233">233</a>     {
+<a name="234" href="#234">234</a>         <strong class="jxr_keyword">if</strong> ( includeResource.length() &gt; 0 )
+<a name="235" href="#235">235</a>         {
+<a name="236" href="#236">236</a>             includeResource.append( ',' );
+<a name="237" href="#237">237</a>         }
+<a name="238" href="#238">238</a> 
+<a name="239" href="#239">239</a>         includeResource.append( '@' );
+<a name="240" href="#240">240</a>         includeResource.append( path );
+<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>     <strong class="jxr_keyword">public</strong> Collection getInlinedPaths()
+<a name="245" href="#245">245</a>     {
+<a name="246" href="#246">246</a>         <strong class="jxr_keyword">return</strong> m_inlinedPaths;
+<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> Collection getEmbeddedArtifacts()
+<a name="251" href="#251">251</a>     {
+<a name="252" href="#252">252</a>         <strong class="jxr_keyword">return</strong> m_embeddedArtifacts;
+<a name="253" href="#253">253</a>     }
+<a name="254" href="#254">254</a> 
+<a name="255" href="#255">255</a> 
+<a name="256" href="#256">256</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> appendDependencies( Analyzer analyzer, String directiveName, String mavenDependencies )
+<a name="257" href="#257">257</a>     {
+<a name="258" href="#258">258</a>         <em class="jxr_comment">/*</em>
+<a name="259" href="#259">259</a> <em class="jxr_comment">         * similar algorithm to {maven-resources} but default behaviour here is to append rather than override</em>
+<a name="260" href="#260">260</a> <em class="jxr_comment">         */</em>
+<a name="261" href="#261">261</a>         <strong class="jxr_keyword">final</strong> String instruction = analyzer.getProperty( directiveName );
+<a name="262" href="#262">262</a>         <strong class="jxr_keyword">if</strong> ( instruction != <strong class="jxr_keyword">null</strong> &amp;&amp; instruction.length() &gt; 0 )
+<a name="263" href="#263">263</a>         {
+<a name="264" href="#264">264</a>             <strong class="jxr_keyword">if</strong> ( instruction.indexOf( MAVEN_DEPENDENCIES ) &gt;= 0 )
+<a name="265" href="#265">265</a>             {
+<a name="266" href="#266">266</a>                 <em class="jxr_comment">// if there are no embeddded dependencies, we do a special treatment and replace</em>
+<a name="267" href="#267">267</a>                 <em class="jxr_comment">// every occurance of MAVEN_DEPENDENCIES and a following comma with an empty string</em>
+<a name="268" href="#268">268</a>                 <strong class="jxr_keyword">if</strong> ( mavenDependencies.length() == 0 )
+<a name="269" href="#269">269</a>                 {
+<a name="270" href="#270">270</a>                     String cleanInstruction = BundlePlugin.removeTagFromInstruction( instruction, MAVEN_DEPENDENCIES );
+<a name="271" href="#271">271</a>                     analyzer.setProperty( directiveName, cleanInstruction );
+<a name="272" href="#272">272</a>                 }
+<a name="273" href="#273">273</a>                 <strong class="jxr_keyword">else</strong>
+<a name="274" href="#274">274</a>                 {
+<a name="275" href="#275">275</a>                     String mergedInstruction = StringUtils.replace( instruction, MAVEN_DEPENDENCIES, mavenDependencies );
+<a name="276" href="#276">276</a>                     analyzer.setProperty( directiveName, mergedInstruction );
+<a name="277" href="#277">277</a>                 }
+<a name="278" href="#278">278</a>             }
+<a name="279" href="#279">279</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenDependencies.length() &gt; 0 )
+<a name="280" href="#280">280</a>             {
+<a name="281" href="#281">281</a>                 <strong class="jxr_keyword">if</strong> ( Analyzer.INCLUDE_RESOURCE.equalsIgnoreCase( directiveName ) )
+<a name="282" href="#282">282</a>                 {
+<a name="283" href="#283">283</a>                     <em class="jxr_comment">// dependencies should be prepended so they can be overwritten by local resources</em>
+<a name="284" href="#284">284</a>                     analyzer.setProperty( directiveName, mavenDependencies + ',' + instruction );
+<a name="285" href="#285">285</a>                 }
+<a name="286" href="#286">286</a>                 <strong class="jxr_keyword">else</strong>
+<a name="287" href="#287">287</a>                 <em class="jxr_comment">// Analyzer.BUNDLE_CLASSPATH</em>
+<a name="288" href="#288">288</a>                 {
+<a name="289" href="#289">289</a>                     <em class="jxr_comment">// for the classpath we want dependencies to be appended after local entries</em>
+<a name="290" href="#290">290</a>                     analyzer.setProperty( directiveName, instruction + ',' + mavenDependencies );
+<a name="291" href="#291">291</a>                 }
+<a name="292" href="#292">292</a>             }
+<a name="293" href="#293">293</a>             <em class="jxr_comment">// otherwise leave instruction unchanged</em>
+<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> ( mavenDependencies.length() &gt; 0 )
+<a name="296" href="#296">296</a>         {
+<a name="297" href="#297">297</a>             analyzer.setProperty( directiveName, mavenDependencies );
+<a name="298" href="#298">298</a>         }
+<a name="299" href="#299">299</a>         <em class="jxr_comment">// otherwise leave instruction unchanged</em>
+<a name="300" href="#300">300</a>     }
+<a name="301" href="#301">301</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/DependencyExcluder.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/DependencyExcluder.html
new file mode 100644
index 0000000..36e6668
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/DependencyExcluder.html
@@ -0,0 +1,87 @@
+<!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>DependencyExcluder xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
+<a name="24" href="#24">24</a>  
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="26" href="#26">26</a>  
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> aQute.libg.header.OSGiHeader;
+<a name="28" href="#28">28</a>  
+<a name="29" href="#29">29</a>  
+<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> * Exclude selected dependencies from the classpath passed to BND.</em>
+<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyExcluder.html">DependencyExcluder</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">AbstractDependencyFilter</a>
+<a name="36" href="#36">36</a>  {
+<a name="37" href="#37">37</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment">     * Excluded artifacts.</em>
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="40" href="#40">40</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Collection m_excludedArtifacts;
+<a name="41" href="#41">41</a>  
+<a name="42" href="#42">42</a>  
+<a name="43" href="#43">43</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyExcluder.html">DependencyExcluder</a>( Collection dependencyArtifacts )
+<a name="44" href="#44">44</a>      {
+<a name="45" href="#45">45</a>          <strong class="jxr_keyword">super</strong>( dependencyArtifacts );
+<a name="46" href="#46">46</a>  
+<a name="47" href="#47">47</a>          m_excludedArtifacts = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="48" href="#48">48</a>      }
+<a name="49" href="#49">49</a>  
+<a name="50" href="#50">50</a>  
+<a name="51" href="#51">51</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> processHeaders( String excludeDependencies ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="52" href="#52">52</a>      {
+<a name="53" href="#53">53</a>          m_excludedArtifacts.clear();
+<a name="54" href="#54">54</a>  
+<a name="55" href="#55">55</a>          <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != excludeDependencies &amp;&amp; excludeDependencies.length() &gt; 0 )
+<a name="56" href="#56">56</a>          {
+<a name="57" href="#57">57</a>              processInstructions( OSGiHeader.parseHeader( excludeDependencies ) );
+<a name="58" href="#58">58</a>          }
+<a name="59" href="#59">59</a>      }
+<a name="60" href="#60">60</a>  
+<a name="61" href="#61">61</a>  
+<a name="62" href="#62">62</a>      @Override
+<a name="63" href="#63">63</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> processDependencies( String tag, String inline, Collection dependencies )
+<a name="64" href="#64">64</a>      {
+<a name="65" href="#65">65</a>          m_excludedArtifacts.addAll( dependencies );
+<a name="66" href="#66">66</a>      }
+<a name="67" href="#67">67</a>  
+<a name="68" href="#68">68</a>  
+<a name="69" href="#69">69</a>      <strong class="jxr_keyword">public</strong> Collection getExcludedArtifacts()
+<a name="70" href="#70">70</a>      {
+<a name="71" href="#71">71</a>          <strong class="jxr_keyword">return</strong> m_excludedArtifacts;
+<a name="72" href="#72">72</a>      }
+<a name="73" href="#73">73</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/InstructionsPlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/InstructionsPlugin.html
new file mode 100644
index 0000000..b6e9d55
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/InstructionsPlugin.html
@@ -0,0 +1,89 @@
+<!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>InstructionsPlugin xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<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>  <strong class="jxr_keyword">import</strong> java.io.FileNotFoundException;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
+<a name="27" href="#27">27</a>  
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<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="33" href="#33">33</a>  
+<a name="34" href="#34">34</a>  
+<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * Generate BND instructions for this project</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * @goal instructions</em>
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * @requiresDependencyResolution test</em>
+<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * @threadSafe</em>
+<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="42" href="#42">42</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/InstructionsPlugin.html">InstructionsPlugin</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/BundlePlugin.html">BundlePlugin</a>
+<a name="43" href="#43">43</a>  {
+<a name="44" href="#44">44</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject project, Map instructions, Properties properties, Jar[] classpath )
+<a name="45" href="#45">45</a>          <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="46" href="#46">46</a>      {
+<a name="47" href="#47">47</a>          <strong class="jxr_keyword">if</strong> ( dumpInstructions == <strong class="jxr_keyword">null</strong> )
+<a name="48" href="#48">48</a>          {
+<a name="49" href="#49">49</a>              dumpInstructions = <strong class="jxr_keyword">new</strong> File( getBuildDirectory(), <span class="jxr_string">"instructions.bnd"</span> );
+<a name="50" href="#50">50</a>          }
+<a name="51" href="#51">51</a>  
+<a name="52" href="#52">52</a>          <strong class="jxr_keyword">try</strong>
+<a name="53" href="#53">53</a>          {
+<a name="54" href="#54">54</a>              addMavenInstructions( project, getOSGiBuilder( project, instructions, properties, classpath ) );
+<a name="55" href="#55">55</a>          }
+<a name="56" href="#56">56</a>          <strong class="jxr_keyword">catch</strong> ( FileNotFoundException e )
+<a name="57" href="#57">57</a>          {
+<a name="58" href="#58">58</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Cannot find "</span> + e.getMessage(), e );
+<a name="59" href="#59">59</a>          }
+<a name="60" href="#60">60</a>          <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="61" href="#61">61</a>          {
+<a name="62" href="#62">62</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error trying to generate instructions"</span>, e );
+<a name="63" href="#63">63</a>          }
+<a name="64" href="#64">64</a>          <strong class="jxr_keyword">catch</strong> ( MojoFailureException e )
+<a name="65" href="#65">65</a>          {
+<a name="66" href="#66">66</a>              getLog().error( e.getLocalizedMessage() );
+<a name="67" href="#67">67</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error(s) found in instructions"</span>, e );
+<a name="68" href="#68">68</a>          }
+<a name="69" href="#69">69</a>          <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="70" href="#70">70</a>          {
+<a name="71" href="#71">71</a>              getLog().error( <span class="jxr_string">"An internal error occurred"</span>, e );
+<a name="72" href="#72">72</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="73" href="#73">73</a>          }
+<a name="74" href="#74">74</a>      }
+<a name="75" href="#75">75</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/JarPluginConfiguration.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/JarPluginConfiguration.html
new file mode 100644
index 0000000..b2b269c
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/JarPluginConfiguration.html
@@ -0,0 +1,108 @@
+<!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>JarPluginConfiguration xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.MavenArchiveConfiguration;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.component.configurator.converters.lookup.ConverterLookup;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.component.configurator.converters.lookup.DefaultConverterLookup;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.component.configurator.expression.DefaultExpressionEvaluator;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.configuration.PlexusConfiguration;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.xml.Xpp3Dom;
+<a name="32" href="#32">32</a>  
+<a name="33" href="#33">33</a>  
+<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * Provide access to the archive configuration from the jar plugin</em>
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="39" href="#39">39</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/JarPluginConfiguration.html">JarPluginConfiguration</a>
+<a name="40" href="#40">40</a>  {
+<a name="41" href="#41">41</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> MavenArchiveConfiguration getArchiveConfiguration( MavenProject project )
+<a name="42" href="#42">42</a>      {
+<a name="43" href="#43">43</a>          MavenArchiveConfiguration archiveConfig = <strong class="jxr_keyword">new</strong> MavenArchiveConfiguration();
+<a name="44" href="#44">44</a>  
+<a name="45" href="#45">45</a>          <strong class="jxr_keyword">try</strong>
+<a name="46" href="#46">46</a>          {
+<a name="47" href="#47">47</a>              ObjectWithFieldsConverter converter = <strong class="jxr_keyword">new</strong> ObjectWithFieldsConverter();
+<a name="48" href="#48">48</a>              ClassLoader loader = JarPluginConfiguration.<strong class="jxr_keyword">class</strong>.getClassLoader();
+<a name="49" href="#49">49</a>              ExpressionEvaluator evaluator = <strong class="jxr_keyword">new</strong> DefaultExpressionEvaluator();
+<a name="50" href="#50">50</a>              ConverterLookup converters = <strong class="jxr_keyword">new</strong> DefaultConverterLookup();
+<a name="51" href="#51">51</a>  
+<a name="52" href="#52">52</a>              PlexusConfiguration settings = <strong class="jxr_keyword">null</strong>;
+<a name="53" href="#53">53</a>  
+<a name="54" href="#54">54</a>              <strong class="jxr_keyword">try</strong>
+<a name="55" href="#55">55</a>              {
+<a name="56" href="#56">56</a>                  <em class="jxr_comment">// first look for bundle specific archive settings</em>
+<a name="57" href="#57">57</a>                  settings = getPluginConfiguration( project, <span class="jxr_string">"org.apache.felix"</span>, <span class="jxr_string">"maven-bundle-plugin"</span> );
+<a name="58" href="#58">58</a>                  settings = settings.getChild( <span class="jxr_string">"archive"</span> );
+<a name="59" href="#59">59</a>              }
+<a name="60" href="#60">60</a>              <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="61" href="#61">61</a>              {
+<a name="62" href="#62">62</a>              }
+<a name="63" href="#63">63</a>  
+<a name="64" href="#64">64</a>              <em class="jxr_comment">// if it's empty fall back to the jar archive settings</em>
+<a name="65" href="#65">65</a>              <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == settings || settings.getChildCount() == 0 )
+<a name="66" href="#66">66</a>              {
+<a name="67" href="#67">67</a>                  settings = getCorePluginConfiguration( project, <span class="jxr_string">"jar"</span> );
+<a name="68" href="#68">68</a>                  settings = settings.getChild( <span class="jxr_string">"archive"</span> );
+<a name="69" href="#69">69</a>              }
+<a name="70" href="#70">70</a>  
+<a name="71" href="#71">71</a>              converter.processConfiguration( converters, archiveConfig, loader, settings, evaluator, <strong class="jxr_keyword">null</strong> );
+<a name="72" href="#72">72</a>          }
+<a name="73" href="#73">73</a>          <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="74" href="#74">74</a>          {
+<a name="75" href="#75">75</a>              <em class="jxr_comment">// ignore and return empty configuration...</em>
+<a name="76" href="#76">76</a>          }
+<a name="77" href="#77">77</a>  
+<a name="78" href="#78">78</a>          <strong class="jxr_keyword">return</strong> archiveConfig;
+<a name="79" href="#79">79</a>      }
+<a name="80" href="#80">80</a>  
+<a name="81" href="#81">81</a>  
+<a name="82" href="#82">82</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> PlexusConfiguration getCorePluginConfiguration( MavenProject project, String pluginName )
+<a name="83" href="#83">83</a>      {
+<a name="84" href="#84">84</a>          <strong class="jxr_keyword">return</strong> getPluginConfiguration( project, <span class="jxr_string">"org.apache.maven.plugins"</span>, <span class="jxr_string">"maven-"</span> + pluginName + <span class="jxr_string">"-plugin"</span> );
+<a name="85" href="#85">85</a>      }
+<a name="86" href="#86">86</a>  
+<a name="87" href="#87">87</a>  
+<a name="88" href="#88">88</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> PlexusConfiguration getPluginConfiguration( MavenProject project, String groupId, String artifactId )
+<a name="89" href="#89">89</a>      {
+<a name="90" href="#90">90</a>          Xpp3Dom pluginConfig = project.getGoalConfiguration( groupId, artifactId, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> );
+<a name="91" href="#91">91</a>  
+<a name="92" href="#92">92</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> XmlPlexusConfiguration( pluginConfig );
+<a name="93" href="#93">93</a>      }
+<a name="94" href="#94">94</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/ManifestPlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/ManifestPlugin.html
new file mode 100644
index 0000000..9c08abe
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/ManifestPlugin.html
@@ -0,0 +1,210 @@
+<!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>ManifestPlugin xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<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>  <strong class="jxr_keyword">import</strong> java.io.FileNotFoundException;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.FileOutputStream;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Manifest;
+<a name="30" href="#30">30</a>  
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoFailureException;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="34" href="#34">34</a>  
+<a name="35" href="#35">35</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.lib.osgi.Builder;
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
+<a name="38" href="#38">38</a>  
+<a name="39" href="#39">39</a>  
+<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * Generate an OSGi manifest for this project</em>
+<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * @goal manifest</em>
+<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> * @phase process-classes</em>
+<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> * @requiresDependencyResolution test</em>
+<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * @threadSafe</em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="48" href="#48">48</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/ManifestPlugin.html">ManifestPlugin</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/BundlePlugin.html">BundlePlugin</a>
+<a name="49" href="#49">49</a>  {
+<a name="50" href="#50">50</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject project, Map instructions, Properties properties, Jar[] classpath )
+<a name="51" href="#51">51</a>          <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="52" href="#52">52</a>      {
+<a name="53" href="#53">53</a>          Manifest manifest;
+<a name="54" href="#54">54</a>          <strong class="jxr_keyword">try</strong>
+<a name="55" href="#55">55</a>          {
+<a name="56" href="#56">56</a>              <strong class="jxr_keyword">if</strong> ( supportedProjectTypes.contains( getProject().getArtifact().getType() ) )
+<a name="57" href="#57">57</a>              {
+<a name="58" href="#58">58</a>                  Builder builder = buildOSGiBundle( project, instructions, properties, classpath );
+<a name="59" href="#59">59</a>                  manifest = builder.getJar().getManifest();
+<a name="60" href="#60">60</a>                  builder.close();
+<a name="61" href="#61">61</a>              }
+<a name="62" href="#62">62</a>              <strong class="jxr_keyword">else</strong>
+<a name="63" href="#63">63</a>              {
+<a name="64" href="#64">64</a>                  manifest = getManifest( project, instructions, properties, classpath );
+<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">catch</strong> ( FileNotFoundException e )
+<a name="68" href="#68">68</a>          {
+<a name="69" href="#69">69</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Cannot find "</span> + e.getMessage()
+<a name="70" href="#70">70</a>                  + <span class="jxr_string">" (manifest goal must be run after compile phase)"</span>, e );
+<a name="71" href="#71">71</a>          }
+<a name="72" href="#72">72</a>          <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="73" href="#73">73</a>          {
+<a name="74" href="#74">74</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error trying to generate Manifest"</span>, e );
+<a name="75" href="#75">75</a>          }
+<a name="76" href="#76">76</a>          <strong class="jxr_keyword">catch</strong> ( MojoFailureException e )
+<a name="77" href="#77">77</a>          {
+<a name="78" href="#78">78</a>              getLog().error( e.getLocalizedMessage() );
+<a name="79" href="#79">79</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error(s) found in manifest configuration"</span>, e );
+<a name="80" href="#80">80</a>          }
+<a name="81" href="#81">81</a>          <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="82" href="#82">82</a>          {
+<a name="83" href="#83">83</a>              getLog().error( <span class="jxr_string">"An internal error occurred"</span>, e );
+<a name="84" href="#84">84</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="85" href="#85">85</a>          }
+<a name="86" href="#86">86</a>  
+<a name="87" href="#87">87</a>          File outputFile = <strong class="jxr_keyword">new</strong> File( manifestLocation, <span class="jxr_string">"MANIFEST.MF"</span> );
+<a name="88" href="#88">88</a>  
+<a name="89" href="#89">89</a>          <strong class="jxr_keyword">try</strong>
+<a name="90" href="#90">90</a>          {
+<a name="91" href="#91">91</a>              writeManifest( manifest, outputFile );
+<a name="92" href="#92">92</a>          }
+<a name="93" href="#93">93</a>          <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="94" href="#94">94</a>          {
+<a name="95" href="#95">95</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error trying to write Manifest to file "</span> + outputFile, e );
+<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>  
+<a name="100" href="#100">100</a>     <strong class="jxr_keyword">public</strong> Manifest getManifest( MavenProject project, Jar[] classpath ) <strong class="jxr_keyword">throws</strong> IOException, MojoFailureException,
+<a name="101" href="#101">101</a>         MojoExecutionException, Exception
+<a name="102" href="#102">102</a>     {
+<a name="103" href="#103">103</a>         <strong class="jxr_keyword">return</strong> getManifest( project, <strong class="jxr_keyword">new</strong> LinkedHashMap(), <strong class="jxr_keyword">new</strong> Properties(), classpath );
+<a name="104" href="#104">104</a>     }
+<a name="105" href="#105">105</a> 
+<a name="106" href="#106">106</a> 
+<a name="107" href="#107">107</a>     <strong class="jxr_keyword">public</strong> Manifest getManifest( MavenProject project, Map instructions, Properties properties, Jar[] classpath )
+<a name="108" href="#108">108</a>         <strong class="jxr_keyword">throws</strong> IOException, MojoFailureException, MojoExecutionException, Exception
+<a name="109" href="#109">109</a>     {
+<a name="110" href="#110">110</a>         Analyzer analyzer = getAnalyzer( project, instructions, properties, classpath );
+<a name="111" href="#111">111</a>         <strong class="jxr_keyword">boolean</strong> hasErrors = reportErrors( <span class="jxr_string">"Manifest "</span> + project.getArtifact(), analyzer );
+<a name="112" href="#112">112</a>         <strong class="jxr_keyword">if</strong> ( hasErrors )
+<a name="113" href="#113">113</a>         {
+<a name="114" href="#114">114</a>             String failok = analyzer.getProperty( <span class="jxr_string">"-failok"</span> );
+<a name="115" href="#115">115</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == failok || <span class="jxr_string">"false"</span>.equalsIgnoreCase( failok ) )
+<a name="116" href="#116">116</a>             {
+<a name="117" href="#117">117</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoFailureException( <span class="jxr_string">"Error(s) found in manifest configuration"</span> );
+<a name="118" href="#118">118</a>             }
+<a name="119" href="#119">119</a>         }
+<a name="120" href="#120">120</a> 
+<a name="121" href="#121">121</a>         Manifest manifest = analyzer.getJar().getManifest();
+<a name="122" href="#122">122</a> 
+<a name="123" href="#123">123</a>         <em class="jxr_comment">// cleanup...</em>
+<a name="124" href="#124">124</a>         analyzer.close();
+<a name="125" href="#125">125</a> 
+<a name="126" href="#126">126</a>         <strong class="jxr_keyword">return</strong> manifest;
+<a name="127" href="#127">127</a>     }
+<a name="128" href="#128">128</a> 
+<a name="129" href="#129">129</a> 
+<a name="130" href="#130">130</a>     <strong class="jxr_keyword">protected</strong> Analyzer getAnalyzer( MavenProject project, Jar[] classpath ) <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException,
+<a name="131" href="#131">131</a>         Exception
+<a name="132" href="#132">132</a>     {
+<a name="133" href="#133">133</a>         <strong class="jxr_keyword">return</strong> getAnalyzer( project, <strong class="jxr_keyword">new</strong> LinkedHashMap(), <strong class="jxr_keyword">new</strong> Properties(), classpath );
+<a name="134" href="#134">134</a>     }
+<a name="135" href="#135">135</a> 
+<a name="136" href="#136">136</a> 
+<a name="137" href="#137">137</a>     <strong class="jxr_keyword">protected</strong> Analyzer getAnalyzer( MavenProject project, Map instructions, Properties properties, Jar[] classpath )
+<a name="138" href="#138">138</a>         <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException, Exception
+<a name="139" href="#139">139</a>     {
+<a name="140" href="#140">140</a>         File file = project.getArtifact().getFile();
+<a name="141" href="#141">141</a>         <strong class="jxr_keyword">if</strong> ( file == <strong class="jxr_keyword">null</strong> )
+<a name="142" href="#142">142</a>         {
+<a name="143" href="#143">143</a>             file = getOutputDirectory();
+<a name="144" href="#144">144</a>         }
+<a name="145" href="#145">145</a> 
+<a name="146" href="#146">146</a>         <strong class="jxr_keyword">if</strong> ( !file.exists() )
+<a name="147" href="#147">147</a>         {
+<a name="148" href="#148">148</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> FileNotFoundException( file.getPath() );
+<a name="149" href="#149">149</a>         }
+<a name="150" href="#150">150</a> 
+<a name="151" href="#151">151</a>         Builder analyzer = getOSGiBuilder( project, instructions, properties, classpath );
+<a name="152" href="#152">152</a> 
+<a name="153" href="#153">153</a>         analyzer.setJar( file );
+<a name="154" href="#154">154</a> 
+<a name="155" href="#155">155</a>         <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.EXPORT_PACKAGE ) == <strong class="jxr_keyword">null</strong>
+<a name="156" href="#156">156</a>             &amp;&amp; analyzer.getProperty( Analyzer.EXPORT_CONTENTS ) == <strong class="jxr_keyword">null</strong>
+<a name="157" href="#157">157</a>             &amp;&amp; analyzer.getProperty( Analyzer.PRIVATE_PACKAGE ) == <strong class="jxr_keyword">null</strong> )
+<a name="158" href="#158">158</a>         {
+<a name="159" href="#159">159</a>             String export = analyzer.calculateExportsFromContents( analyzer.getJar() );
+<a name="160" href="#160">160</a>             analyzer.setProperty( Analyzer.EXPORT_PACKAGE, export );
+<a name="161" href="#161">161</a>         }
+<a name="162" href="#162">162</a> 
+<a name="163" href="#163">163</a>         addMavenInstructions( project, analyzer );
+<a name="164" href="#164">164</a> 
+<a name="165" href="#165">165</a>         analyzer.mergeManifest( analyzer.getJar().getManifest() );
+<a name="166" href="#166">166</a>         analyzer.calcManifest();
+<a name="167" href="#167">167</a> 
+<a name="168" href="#168">168</a>         mergeMavenManifest( project, analyzer );
+<a name="169" href="#169">169</a> 
+<a name="170" href="#170">170</a>         <strong class="jxr_keyword">return</strong> analyzer;
+<a name="171" href="#171">171</a>     }
+<a name="172" href="#172">172</a> 
+<a name="173" href="#173">173</a> 
+<a name="174" href="#174">174</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="175" href="#175">175</a>     {
+<a name="176" href="#176">176</a>         outputFile.getParentFile().mkdirs();
+<a name="177" href="#177">177</a> 
+<a name="178" href="#178">178</a>         FileOutputStream os;
+<a name="179" href="#179">179</a>         os = <strong class="jxr_keyword">new</strong> FileOutputStream( outputFile );
+<a name="180" href="#180">180</a>         <strong class="jxr_keyword">try</strong>
+<a name="181" href="#181">181</a>         {
+<a name="182" href="#182">182</a>             manifest.write( os );
+<a name="183" href="#183">183</a>         }
+<a name="184" href="#184">184</a>         <strong class="jxr_keyword">finally</strong>
+<a name="185" href="#185">185</a>         {
+<a name="186" href="#186">186</a>             <strong class="jxr_keyword">try</strong>
+<a name="187" href="#187">187</a>             {
+<a name="188" href="#188">188</a>                 os.close();
+<a name="189" href="#189">189</a>             }
+<a name="190" href="#190">190</a>             <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="191" href="#191">191</a>             {
+<a name="192" href="#192">192</a>                 <em class="jxr_comment">// nothing we can do here</em>
+<a name="193" href="#193">193</a>             }
+<a name="194" href="#194">194</a>         }
+<a name="195" href="#195">195</a>     }
+<a name="196" href="#196">196</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/PackageVersionAnalyzer.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/PackageVersionAnalyzer.html
new file mode 100644
index 0000000..ca4d2b3
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/PackageVersionAnalyzer.html
@@ -0,0 +1,79 @@
+<!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>PackageVersionAnalyzer xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Builder;
+<a name="23" href="#23">23</a>  
+<a name="24" href="#24">24</a>  
+<a name="25" href="#25">25</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="26" href="#26">26</a>  <em class="jxr_javadoccomment"> * Extension of {@link aQute.lib.osgi.Builder} to handle package versions</em>
+<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/PackageVersionAnalyzer.html">PackageVersionAnalyzer</a> <strong class="jxr_keyword">extends</strong> Builder
+<a name="31" href="#31">31</a>  {
+<a name="32" href="#32">32</a>      <em class="jxr_comment">/*</em>
+<a name="33" href="#33">33</a>  <em class="jxr_comment">     * Remove META-INF subfolders from exports and set package versions to bundle version.</em>
+<a name="34" href="#34">34</a>  <em class="jxr_comment">     */</em>
+<a name="35" href="#35">35</a>      <em class="jxr_comment">/*</em>
+<a name="36" href="#36">36</a>  <em class="jxr_comment">        public Map analyzeBundleClasspath( Jar dot, Map bundleClasspath, Map contained, Map referred, Map uses )</em>
+<a name="37" href="#37">37</a>  <em class="jxr_comment">            throws IOException</em>
+<a name="38" href="#38">38</a>  <em class="jxr_comment">        {</em>
+<a name="39" href="#39">39</a>  <em class="jxr_comment">            Map classSpace = super.analyzeBundleClasspath( dot, bundleClasspath, contained, referred, uses );</em>
+<a name="40" href="#40">40</a>  <em class="jxr_comment">            String bundleVersion = getProperty( BUNDLE_VERSION );</em>
+<a name="41" href="#41">41</a>  <em class="jxr_comment">            for ( Iterator it = contained.entrySet().iterator(); it.hasNext(); )</em>
+<a name="42" href="#42">42</a>  <em class="jxr_comment">            {</em>
+<a name="43" href="#43">43</a>  <em class="jxr_comment">                Map.Entry entry = ( Map.Entry ) it.next();</em>
+<a name="44" href="#44">44</a>  
+<a name="45" href="#45">45</a>  <em class="jxr_comment">                // remove packages under META-INF</em>
+<a name="46" href="#46">46</a>  <em class="jxr_comment">                String packageName = ( String ) entry.getKey();</em>
+<a name="47" href="#47">47</a>  <em class="jxr_comment">                if ( packageName.startsWith( "META-INF." ) )</em>
+<a name="48" href="#48">48</a>  <em class="jxr_comment">                {</em>
+<a name="49" href="#49">49</a>  <em class="jxr_comment">                    it.remove();</em>
+<a name="50" href="#50">50</a>  <em class="jxr_comment">                }</em>
+<a name="51" href="#51">51</a>  
+<a name="52" href="#52">52</a>  <em class="jxr_comment">                // set package versions to bundle version values</em>
+<a name="53" href="#53">53</a>  <em class="jxr_comment">                if ( bundleVersion != null )</em>
+<a name="54" href="#54">54</a>  <em class="jxr_comment">                {</em>
+<a name="55" href="#55">55</a>  <em class="jxr_comment">                    Map values = ( Map ) entry.getValue();</em>
+<a name="56" href="#56">56</a>  <em class="jxr_comment">                    if ( values.get( "version" ) == null )</em>
+<a name="57" href="#57">57</a>  <em class="jxr_comment">                    {</em>
+<a name="58" href="#58">58</a>  <em class="jxr_comment">                        values.put( "version", bundleVersion );</em>
+<a name="59" href="#59">59</a>  <em class="jxr_comment">                    }</em>
+<a name="60" href="#60">60</a>  <em class="jxr_comment">                }</em>
+<a name="61" href="#61">61</a>  <em class="jxr_comment">            }</em>
+<a name="62" href="#62">62</a>  <em class="jxr_comment">            return classSpace;</em>
+<a name="63" href="#63">63</a>  <em class="jxr_comment">        }</em>
+<a name="64" href="#64">64</a>  <em class="jxr_comment">    */</em>
+<a name="65" href="#65">65</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/VersionCleanerPlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/VersionCleanerPlugin.html
new file mode 100644
index 0000000..682be62
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/VersionCleanerPlugin.html
@@ -0,0 +1,96 @@
+<!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>VersionCleanerPlugin xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="24" href="#24">24</a>  
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoFailureException;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.DefaultMaven2OsgiConverter;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.Maven2OsgiConverter;
+<a name="31" href="#31">31</a>  
+<a name="32" href="#32">32</a>  
+<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * @goal cleanVersions</em>
+<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * @description clean OSGi versions</em>
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * @threadSafe</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/VersionCleanerPlugin.html">VersionCleanerPlugin</a> <strong class="jxr_keyword">extends</strong> AbstractMojo
+<a name="39" href="#39">39</a>  {
+<a name="40" href="#40">40</a>  
+<a name="41" href="#41">41</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment">     * The BND instructions for the bundle.</em>
+<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="46" href="#46">46</a>      <strong class="jxr_keyword">private</strong> Map versions = <strong class="jxr_keyword">new</strong> LinkedHashMap();
+<a name="47" href="#47">47</a>  
+<a name="48" href="#48">48</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">     * The Maven project.</em>
+<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">     * @parameter expression="${project}"</em>
+<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> MavenProject project;
+<a name="56" href="#56">56</a>  
+<a name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> Maven2OsgiConverter maven2OsgiConverter = <strong class="jxr_keyword">new</strong> DefaultMaven2OsgiConverter();
+<a name="58" href="#58">58</a>  
+<a name="59" href="#59">59</a>  
+<a name="60" href="#60">60</a>      <strong class="jxr_keyword">public</strong> Maven2OsgiConverter getMaven2OsgiConverter()
+<a name="61" href="#61">61</a>      {
+<a name="62" href="#62">62</a>          <strong class="jxr_keyword">return</strong> maven2OsgiConverter;
+<a name="63" href="#63">63</a>      }
+<a name="64" href="#64">64</a>  
+<a name="65" href="#65">65</a>  
+<a name="66" href="#66">66</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setMaven2OsgiConverter( Maven2OsgiConverter maven2OsgiConverter )
+<a name="67" href="#67">67</a>      {
+<a name="68" href="#68">68</a>          <strong class="jxr_keyword">this</strong>.maven2OsgiConverter = maven2OsgiConverter;
+<a name="69" href="#69">69</a>      }
+<a name="70" href="#70">70</a>  
+<a name="71" href="#71">71</a>  
+<a name="72" href="#72">72</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException, MojoFailureException
+<a name="73" href="#73">73</a>      {
+<a name="74" href="#74">74</a>          <strong class="jxr_keyword">for</strong> ( Object key : versions.keySet() )
+<a name="75" href="#75">75</a>          {
+<a name="76" href="#76">76</a>              String name = ( String ) key;
+<a name="77" href="#77">77</a>              String version = ( String ) versions.get( key );
+<a name="78" href="#78">78</a>              String osgi = maven2OsgiConverter.getVersion( version );
+<a name="79" href="#79">79</a>              project.getProperties().put( name, osgi );
+<a name="80" href="#80">80</a>          }
+<a name="81" href="#81">81</a>      }
+<a name="82" href="#82">82</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/WrapPlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/WrapPlugin.html
new file mode 100644
index 0000000..9fccd57
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/WrapPlugin.html
@@ -0,0 +1,58 @@
+<!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>WrapPlugin xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="23" href="#23">23</a>  
+<a name="24" href="#24">24</a>  
+<a name="25" href="#25">25</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="26" href="#26">26</a>  <em class="jxr_javadoccomment"> * @goal wrap</em>
+<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment"> * @phase package</em>
+<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> * @requiresDependencyResolution test</em>
+<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * @description build an OSGi bundle jar for direct dependencies</em>
+<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> * @deprecated The wrap goal is no longer supported and may be removed in a future release</em>
+<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="32" href="#32">32</a>  @Deprecated
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/WrapPlugin.html">WrapPlugin</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleAllPlugin.html">BundleAllPlugin</a>
+<a name="34" href="#34">34</a>  {
+<a name="35" href="#35">35</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="36" href="#36">36</a>      {
+<a name="37" href="#37">37</a>          getLog().warn( <span class="jxr_string">"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"</span> );
+<a name="38" href="#38">38</a>          getLog().warn( <span class="jxr_string">"! The wrap goal is no longer supported and may be removed in a future release !"</span> );
+<a name="39" href="#39">39</a>          getLog().warn( <span class="jxr_string">"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"</span> );
+<a name="40" href="#40">40</a>  
+<a name="41" href="#41">41</a>          <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> bundleInfo = bundleAll( getProject(), 1 );
+<a name="42" href="#42">42</a>          logDuplicatedPackages( bundleInfo );
+<a name="43" href="#43">43</a>      }
+<a name="44" href="#44">44</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-frame.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/package-frame.html
new file mode 100644
index 0000000..023285b
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/package-frame.html
@@ -0,0 +1,69 @@
+
+<!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.3.5 Reference Package org.apache.felix.bundleplugin</title>
+		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
+	</head>
+	<body>
+
+		<h3>
+        	<a href="package-summary.html" target="classFrame">org.apache.felix.bundleplugin</a>
+      	</h3>
+
+      	<h3>Classes</h3>
+
+      	<ul>
+      		          	<li>
+            	<a href="AbstractDependencyFilter.html" target="classFrame">AbstractDependencyFilter</a>
+          	</li>
+          	          	<li>
+            	<a href="AntPlugin.html" target="classFrame">AntPlugin</a>
+          	</li>
+          	          	<li>
+            	<a href="BlueprintPlugin.html" target="classFrame">Attribute</a>
+          	</li>
+          	          	<li>
+            	<a href="BlueprintPlugin.html" target="classFrame">BlueprintPlugin</a>
+          	</li>
+          	          	<li>
+            	<a href="BundleAllPlugin.html" target="classFrame">BundleAllPlugin</a>
+          	</li>
+          	          	<li>
+            	<a href="BundleInfo.html" target="classFrame">BundleInfo</a>
+          	</li>
+          	          	<li>
+            	<a href="BundlePlugin.html" target="classFrame">BundlePlugin</a>
+          	</li>
+          	          	<li>
+            	<a href="DependencyEmbedder.html" target="classFrame">DependencyEmbedder</a>
+          	</li>
+          	          	<li>
+            	<a href="DependencyExcluder.html" target="classFrame">DependencyExcluder</a>
+          	</li>
+          	          	<li>
+            	<a href="AbstractDependencyFilter.html" target="classFrame">DependencyFilter</a>
+          	</li>
+          	          	<li>
+            	<a href="InstructionsPlugin.html" target="classFrame">InstructionsPlugin</a>
+          	</li>
+          	          	<li>
+            	<a href="JarPluginConfiguration.html" target="classFrame">JarPluginConfiguration</a>
+          	</li>
+          	          	<li>
+            	<a href="ManifestPlugin.html" target="classFrame">ManifestPlugin</a>
+          	</li>
+          	          	<li>
+            	<a href="PackageVersionAnalyzer.html" target="classFrame">PackageVersionAnalyzer</a>
+          	</li>
+          	          	<li>
+            	<a href="VersionCleanerPlugin.html" target="classFrame">VersionCleanerPlugin</a>
+          	</li>
+          	          	<li>
+            	<a href="WrapPlugin.html" target="classFrame">WrapPlugin</a>
+          	</li>
+          	      	</ul>
+
+	</body>
+</html>
\ No newline at end of file
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
new file mode 100644
index 0000000..dba2169
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/package-summary.html
@@ -0,0 +1,142 @@
+
+<!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.3.5 Reference Package org.apache.felix.bundleplugin</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.felix.bundleplugin</h2>
+
+		<table class="summary">
+        	<thead>
+          		<tr>
+            		<th>Class Summary</th>
+          		</tr>
+        	</thead>
+        	<tbody>
+        		            	<tr>
+              		<td>
+                		<a href="AbstractDependencyFilter.html" target="classFrame">AbstractDependencyFilter</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="AntPlugin.html" target="classFrame">AntPlugin</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="BlueprintPlugin.html" target="classFrame">Attribute</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="BlueprintPlugin.html" target="classFrame">BlueprintPlugin</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="BundleAllPlugin.html" target="classFrame">BundleAllPlugin</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="BundleInfo.html" target="classFrame">BundleInfo</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="BundlePlugin.html" target="classFrame">BundlePlugin</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="DependencyEmbedder.html" target="classFrame">DependencyEmbedder</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="DependencyExcluder.html" target="classFrame">DependencyExcluder</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="AbstractDependencyFilter.html" target="classFrame">DependencyFilter</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="InstructionsPlugin.html" target="classFrame">InstructionsPlugin</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="JarPluginConfiguration.html" target="classFrame">JarPluginConfiguration</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ManifestPlugin.html" target="classFrame">ManifestPlugin</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="PackageVersionAnalyzer.html" target="classFrame">PackageVersionAnalyzer</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="VersionCleanerPlugin.html" target="classFrame">VersionCleanerPlugin</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="WrapPlugin.html" target="classFrame">WrapPlugin</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-2011 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/AbstractFileMojo.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/AbstractFileMojo.html
new file mode 100644
index 0000000..3d41b39
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/AbstractFileMojo.html
@@ -0,0 +1,147 @@
+<!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>AbstractFileMojo xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<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.artifact.Artifact;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.factory.ArtifactFactory;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="29" href="#29">29</a>  
+<a name="30" href="#30">30</a>  
+<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> * Base class for the command-line install-file and deploy-file goals.</em>
+<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/AbstractFileMojo.html">AbstractFileMojo</a> <strong class="jxr_keyword">extends</strong> AbstractMojo
+<a name="37" href="#37">37</a>  {
+<a name="38" href="#38">38</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment">     * GroupId of the bundle. Retrieved from POM file if specified.</em>
+<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment">     * @parameter expression="${groupId}"</em>
+<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="43" href="#43">43</a>      <strong class="jxr_keyword">private</strong> String groupId;
+<a name="44" href="#44">44</a>  
+<a name="45" href="#45">45</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment">     * ArtifactId of the bundle. Retrieved from POM file if specified.</em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment">     * @parameter expression="${artifactId}"</em>
+<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> String artifactId;
+<a name="51" href="#51">51</a>  
+<a name="52" href="#52">52</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">     * Version of the bundle. Retrieved from POM file if specified.</em>
+<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment">     * @parameter expression="${version}"</em>
+<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> String version;
+<a name="58" href="#58">58</a>  
+<a name="59" href="#59">59</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     * Packaging type of the bundle. Retrieved from POM file if specified.</em>
+<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * @parameter expression="${packaging}"</em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> String packaging;
+<a name="65" href="#65">65</a>  
+<a name="66" href="#66">66</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     * Classifier type of the bundle. Defaults to none.</em>
+<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     * @parameter expression="${classifier}"</em>
+<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> String classifier;
+<a name="72" href="#72">72</a>  
+<a name="73" href="#73">73</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     * Location of an existing POM file.</em>
+<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * @parameter expression="${pomFile}"</em>
+<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="78" href="#78">78</a>      <strong class="jxr_keyword">private</strong> File pomFile;
+<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">     * Bundle file, defaults to the artifact in the local Maven repository.</em>
+<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment">     * @parameter expression="${file}"</em>
+<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="85" href="#85">85</a>      <strong class="jxr_keyword">protected</strong> File file;
+<a name="86" href="#86">86</a>  
+<a name="87" href="#87">87</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     * Optional XML file describing additional requirements and capabilities.</em>
+<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * @parameter expression="${obrXml}"</em>
+<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="92" href="#92">92</a>      <strong class="jxr_keyword">protected</strong> String obrXml;
+<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">     * Component factory for Maven artifacts</em>
+<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     * @component</em>
+<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="99" href="#99">99</a>      <strong class="jxr_keyword">private</strong> ArtifactFactory m_factory;
+<a name="100" href="#100">100</a> 
+<a name="101" href="#101">101</a> 
+<a name="102" href="#102">102</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     * @return project based on command-line settings, with bundle attached</em>
+<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException</em>
+<a name="105" href="#105">105</a> <em class="jxr_javadoccomment">     */</em>
+<a name="106" href="#106">106</a>     <strong class="jxr_keyword">public</strong> MavenProject getProject() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="107" href="#107">107</a>     {
+<a name="108" href="#108">108</a>         <strong class="jxr_keyword">final</strong> MavenProject project;
+<a name="109" href="#109">109</a>         <strong class="jxr_keyword">if</strong> ( pomFile != <strong class="jxr_keyword">null</strong> &amp;&amp; pomFile.exists() )
+<a name="110" href="#110">110</a>         {
+<a name="111" href="#111">111</a>             project = PomHelper.readPom( pomFile );
+<a name="112" href="#112">112</a> 
+<a name="113" href="#113">113</a>             groupId = project.getGroupId();
+<a name="114" href="#114">114</a>             artifactId = project.getArtifactId();
+<a name="115" href="#115">115</a>             version = project.getVersion();
+<a name="116" href="#116">116</a>             packaging = project.getPackaging();
+<a name="117" href="#117">117</a>         }
+<a name="118" href="#118">118</a>         <strong class="jxr_keyword">else</strong>
+<a name="119" href="#119">119</a>         {
+<a name="120" href="#120">120</a>             project = PomHelper.buildPom( groupId, artifactId, version, packaging );
+<a name="121" href="#121">121</a>         }
+<a name="122" href="#122">122</a> 
+<a name="123" href="#123">123</a>         <strong class="jxr_keyword">if</strong> ( groupId == <strong class="jxr_keyword">null</strong> || artifactId == <strong class="jxr_keyword">null</strong> || version == <strong class="jxr_keyword">null</strong> || packaging == <strong class="jxr_keyword">null</strong> )
+<a name="124" href="#124">124</a>         {
+<a name="125" href="#125">125</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Missing group, artifact, version, or packaging information"</span> );
+<a name="126" href="#126">126</a>         }
+<a name="127" href="#127">127</a> 
+<a name="128" href="#128">128</a>         Artifact bundle = m_factory.createArtifactWithClassifier( groupId, artifactId, version, packaging, classifier );
+<a name="129" href="#129">129</a>         project.setArtifact( bundle );
+<a name="130" href="#130">130</a> 
+<a name="131" href="#131">131</a>         <strong class="jxr_keyword">return</strong> project;
+<a name="132" href="#132">132</a>     }
+<a name="133" href="#133">133</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/Config.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/Config.html
new file mode 100644
index 0000000..a8c8cbf
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/Config.html
@@ -0,0 +1,115 @@
+<!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>Config xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*<em class="jxr_comment"> </em></em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.net.URI;
+<a name="23" href="#23">23</a>  
+<a name="24" href="#24">24</a>  
+<a name="25" href="#25">25</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="26" href="#26">26</a>  <em class="jxr_javadoccomment"> * this class is used to store some user information about configuration of the plugin.</em>
+<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> *</em>
+<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/Config.html">Config</a>
+<a name="31" href="#31">31</a>  {
+<a name="32" href="#32">32</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_pathRelative; <em class="jxr_comment">// use relative or absolute path in repository.xml</em>
+<a name="33" href="#33">33</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_remoteFile; <em class="jxr_comment">// deploy file on remote server</em>
+<a name="34" href="#34">34</a>      <strong class="jxr_keyword">private</strong> URI m_remoteBundle; <em class="jxr_comment">// public address of deployed bundle</em>
+<a name="35" href="#35">35</a>  
+<a name="36" href="#36">36</a>  
+<a name="37" href="#37">37</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment">     * constructor: set default configuration: use relative path and don't upload file.</em>
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="40" href="#40">40</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/obrplugin/Config.html">Config</a>()
+<a name="41" href="#41">41</a>      {
+<a name="42" href="#42">42</a>          <em class="jxr_comment">// default configuration</em>
+<a name="43" href="#43">43</a>          m_pathRelative = <strong class="jxr_keyword">true</strong>;
+<a name="44" href="#44">44</a>          m_remoteFile = false;
+<a name="45" href="#45">45</a>          m_remoteBundle = <strong class="jxr_keyword">null</strong>;
+<a name="46" href="#46">46</a>      }
+<a name="47" href="#47">47</a>  
+<a name="48" href="#48">48</a>  
+<a name="49" href="#49">49</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     * @param value enable to use relative path</em>
+<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="52" href="#52">52</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setPathRelative( <strong class="jxr_keyword">boolean</strong> value )
+<a name="53" href="#53">53</a>      {
+<a name="54" href="#54">54</a>          m_pathRelative = value;
+<a name="55" href="#55">55</a>      }
+<a name="56" href="#56">56</a>  
+<a name="57" href="#57">57</a>  
+<a name="58" href="#58">58</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment">     * @param value enable when uploading</em>
+<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="61" href="#61">61</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRemoteFile( <strong class="jxr_keyword">boolean</strong> value )
+<a name="62" href="#62">62</a>      {
+<a name="63" href="#63">63</a>          m_remoteFile = value;
+<a name="64" href="#64">64</a>      }
+<a name="65" href="#65">65</a>  
+<a name="66" href="#66">66</a>  
+<a name="67" href="#67">67</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     * @param value public address of deployed bundle</em>
+<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="70" href="#70">70</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRemoteBundle( URI value )
+<a name="71" href="#71">71</a>      {
+<a name="72" href="#72">72</a>          m_remoteBundle = value;
+<a name="73" href="#73">73</a>      }
+<a name="74" href="#74">74</a>  
+<a name="75" href="#75">75</a>  
+<a name="76" href="#76">76</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     * @return true if plugin uses relative path, else false</em>
+<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="79" href="#79">79</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isPathRelative()
+<a name="80" href="#80">80</a>      {
+<a name="81" href="#81">81</a>          <strong class="jxr_keyword">return</strong> m_pathRelative;
+<a name="82" href="#82">82</a>      }
+<a name="83" href="#83">83</a>  
+<a name="84" href="#84">84</a>  
+<a name="85" href="#85">85</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     * @return true if the file will be uploaded, else false</em>
+<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="88" href="#88">88</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isRemoteFile()
+<a name="89" href="#89">89</a>      {
+<a name="90" href="#90">90</a>          <strong class="jxr_keyword">return</strong> m_remoteFile;
+<a name="91" href="#91">91</a>      }
+<a name="92" href="#92">92</a>  
+<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">     * @return public address of deployed bundle</em>
+<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="97" href="#97">97</a>      <strong class="jxr_keyword">public</strong> URI getRemoteBundle()
+<a name="98" href="#98">98</a>      {
+<a name="99" href="#99">99</a>          <strong class="jxr_keyword">return</strong> m_remoteBundle;
+<a name="100" href="#100">100</a>     }
+<a name="101" href="#101">101</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/ObrCleanRepo.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrCleanRepo.html
new file mode 100644
index 0000000..bdabac8
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrCleanRepo.html
@@ -0,0 +1,331 @@
+<!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>ObrCleanRepo xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*<em class="jxr_comment"> </em></em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<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>  <strong class="jxr_keyword">import</strong> java.io.FileOutputStream;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.net.URI;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.text.SimpleDateFormat;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
+<a name="31" href="#31">31</a>  
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilder;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilderFactory;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.ParserConfigurationException;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.Result;
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.Transformer;
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.TransformerConfigurationException;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.TransformerException;
+<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.TransformerFactory;
+<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.dom.DOMSource;
+<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.stream.StreamResult;
+<a name="42" href="#42">42</a>  
+<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.repository.ArtifactRepository;
+<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.FileUtils;
+<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Document;
+<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Element;
+<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Node;
+<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.NodeList;
+<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.xml.sax.SAXException;
+<a name="52" href="#52">52</a>  
+<a name="53" href="#53">53</a>  
+<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment"> * Clean an OBR repository by finding and removing missing resources.</em>
+<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment"> * @requiresProject false</em>
+<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment"> * @goal clean</em>
+<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment"> * @phase clean</em>
+<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="63" href="#63">63</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/ObrCleanRepo.html">ObrCleanRepo</a> <strong class="jxr_keyword">extends</strong> AbstractMojo
+<a name="64" href="#64">64</a>  {
+<a name="65" href="#65">65</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     * OBR Repository.</em>
+<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     * @parameter expression="${obrRepository}"</em>
+<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="70" href="#70">70</a>      <strong class="jxr_keyword">private</strong> String obrRepository;
+<a name="71" href="#71">71</a>  
+<a name="72" href="#72">72</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     * Local Repository.</em>
+<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     * @parameter expression="${localRepository}"</em>
+<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="79" href="#79">79</a>      <strong class="jxr_keyword">private</strong> ArtifactRepository localRepository;
+<a name="80" href="#80">80</a>  
+<a name="81" href="#81">81</a>  
+<a name="82" href="#82">82</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute()
+<a name="83" href="#83">83</a>      {
+<a name="84" href="#84">84</a>          <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"NONE"</span>.equalsIgnoreCase( obrRepository ) || <span class="jxr_string">"false"</span>.equalsIgnoreCase( obrRepository ) )
+<a name="85" href="#85">85</a>          {
+<a name="86" href="#86">86</a>              getLog().info( <span class="jxr_string">"Local OBR clean disabled (enable with -DobrRepository)"</span> );
+<a name="87" href="#87">87</a>              <strong class="jxr_keyword">return</strong>;
+<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">try</strong>
+<a name="91" href="#91">91</a>          {
+<a name="92" href="#92">92</a>              <em class="jxr_comment">// Compute local repository location</em>
+<a name="93" href="#93">93</a>              URI repositoryXml = ObrUtils.findRepositoryXml( localRepository.getBasedir(), obrRepository );
+<a name="94" href="#94">94</a>              <strong class="jxr_keyword">if</strong> ( !<span class="jxr_string">"file"</span>.equals( repositoryXml.getScheme() ) )
+<a name="95" href="#95">95</a>              {
+<a name="96" href="#96">96</a>                  getLog().error( <span class="jxr_string">"The repository URI "</span> + repositoryXml + <span class="jxr_string">" is not a local file"</span> );
+<a name="97" href="#97">97</a>                  <strong class="jxr_keyword">return</strong>;
+<a name="98" href="#98">98</a>              }
+<a name="99" href="#99">99</a>  
+<a name="100" href="#100">100</a>             File repositoryFile = <strong class="jxr_keyword">new</strong> File( repositoryXml );
+<a name="101" href="#101">101</a> 
+<a name="102" href="#102">102</a>             <em class="jxr_comment">// Check if the file exist</em>
+<a name="103" href="#103">103</a>             <strong class="jxr_keyword">if</strong> ( !repositoryFile.exists() )
+<a name="104" href="#104">104</a>             {
+<a name="105" href="#105">105</a>                 getLog().error( <span class="jxr_string">"The repository file "</span> + repositoryFile + <span class="jxr_string">" does not exist"</span> );
+<a name="106" href="#106">106</a>                 <strong class="jxr_keyword">return</strong>;
+<a name="107" href="#107">107</a>             }
+<a name="108" href="#108">108</a> 
+<a name="109" href="#109">109</a>             getLog().info( <span class="jxr_string">"Cleaning..."</span> );
+<a name="110" href="#110">110</a> 
+<a name="111" href="#111">111</a>             Document doc = parseFile( repositoryFile, initConstructor() );
+<a name="112" href="#112">112</a>             Node finalDocument = cleanDocument( doc.getDocumentElement() ); <em class="jxr_comment">// Analyze existing repository.</em>
+<a name="113" href="#113">113</a> 
+<a name="114" href="#114">114</a>             <strong class="jxr_keyword">if</strong> ( finalDocument == <strong class="jxr_keyword">null</strong> )
+<a name="115" href="#115">115</a>             {
+<a name="116" href="#116">116</a>                 getLog().info( <span class="jxr_string">"Nothing to clean in "</span> + repositoryFile );
+<a name="117" href="#117">117</a>             }
+<a name="118" href="#118">118</a>             <strong class="jxr_keyword">else</strong>
+<a name="119" href="#119">119</a>             {
+<a name="120" href="#120">120</a>                 writeToFile( repositoryXml, finalDocument ); <em class="jxr_comment">// Write the new file</em>
+<a name="121" href="#121">121</a>                 getLog().info( <span class="jxr_string">"Repository "</span> + repositoryFile + <span class="jxr_string">" cleaned"</span> );
+<a name="122" href="#122">122</a>             }
+<a name="123" href="#123">123</a>         }
+<a name="124" href="#124">124</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="125" href="#125">125</a>         {
+<a name="126" href="#126">126</a>             getLog().error( <span class="jxr_string">"Exception while cleaning local OBR: "</span> + e.getLocalizedMessage(), e );
+<a name="127" href="#127">127</a>         }
+<a name="128" href="#128">128</a>     }
+<a name="129" href="#129">129</a> 
+<a name="130" href="#130">130</a> 
+<a name="131" href="#131">131</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="132" href="#132">132</a> <em class="jxr_javadoccomment">     * Analyze the given XML tree (DOM of the repository file) and remove missing resources.</em>
+<a name="133" href="#133">133</a> <em class="jxr_javadoccomment">     * </em>
+<a name="134" href="#134">134</a> <em class="jxr_javadoccomment">     * @param elem : the input XML tree</em>
+<a name="135" href="#135">135</a> <em class="jxr_javadoccomment">     * @return the cleaned XML tree</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> Element cleanDocument( Element elem )
+<a name="138" href="#138">138</a>     {
+<a name="139" href="#139">139</a>         String localRepoPath = localRepository.getBasedir();
+<a name="140" href="#140">140</a>         URI baseURI = <strong class="jxr_keyword">new</strong> File( localRepoPath + '/' ).toURI();
+<a name="141" href="#141">141</a>         NodeList nodes = elem.getElementsByTagName( <span class="jxr_string">"resource"</span> );
+<a name="142" href="#142">142</a>         List toRemove = <strong class="jxr_keyword">new</strong> ArrayList();
+<a name="143" href="#143">143</a> 
+<a name="144" href="#144">144</a>         <em class="jxr_comment">// First, look for missing resources</em>
+<a name="145" href="#145">145</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; nodes.getLength(); i++ )
+<a name="146" href="#146">146</a>         {
+<a name="147" href="#147">147</a>             Element n = ( Element ) nodes.item( i );
+<a name="148" href="#148">148</a>             String value = n.getAttribute( <span class="jxr_string">"uri"</span> );
+<a name="149" href="#149">149</a> 
+<a name="150" href="#150">150</a>             URI resource;
+<a name="151" href="#151">151</a>             <strong class="jxr_keyword">try</strong>
+<a name="152" href="#152">152</a>             {
+<a name="153" href="#153">153</a>                 resource = baseURI.resolve( value );
+<a name="154" href="#154">154</a>             }
+<a name="155" href="#155">155</a>             <strong class="jxr_keyword">catch</strong> ( IllegalArgumentException e )
+<a name="156" href="#156">156</a>             {
+<a name="157" href="#157">157</a>                 getLog().error( <span class="jxr_string">"Malformed URL when creating the resource absolute URI : "</span> + e.getMessage() );
+<a name="158" href="#158">158</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<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">if</strong> ( <span class="jxr_string">"file"</span>.equals( resource.getScheme() ) &amp;&amp; !<strong class="jxr_keyword">new</strong> File( resource ).exists() )
+<a name="162" href="#162">162</a>             {
+<a name="163" href="#163">163</a>                 getLog().info(
+<a name="164" href="#164">164</a>                     <span class="jxr_string">"The bundle "</span> + n.getAttribute( <span class="jxr_string">"presentationname"</span> ) + <span class="jxr_string">" - "</span> + n.getAttribute( <span class="jxr_string">"version"</span> )
+<a name="165" href="#165">165</a>                         + <span class="jxr_string">" will be removed"</span> );
+<a name="166" href="#166">166</a>                 toRemove.add( n );
+<a name="167" href="#167">167</a>             }
+<a name="168" href="#168">168</a>         }
+<a name="169" href="#169">169</a> 
+<a name="170" href="#170">170</a>         Date d = <strong class="jxr_keyword">new</strong> Date();
+<a name="171" href="#171">171</a>         <strong class="jxr_keyword">if</strong> ( toRemove.size() &gt; 0 )
+<a name="172" href="#172">172</a>         {
+<a name="173" href="#173">173</a>             <em class="jxr_comment">// Then remove missing resources.</em>
+<a name="174" href="#174">174</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; toRemove.size(); i++ )
+<a name="175" href="#175">175</a>             {
+<a name="176" href="#176">176</a>                 elem.removeChild( ( Node ) toRemove.get( i ) );
+<a name="177" href="#177">177</a>             }
+<a name="178" href="#178">178</a> 
+<a name="179" href="#179">179</a>             <em class="jxr_comment">// If we have to remove resources, we need to update 'lastmodified' attribute</em>
+<a name="180" href="#180">180</a>             SimpleDateFormat format = <strong class="jxr_keyword">new</strong> SimpleDateFormat( <span class="jxr_string">"yyyyMMddHHmmss.SSS"</span> );
+<a name="181" href="#181">181</a>             d.setTime( System.currentTimeMillis() );
+<a name="182" href="#182">182</a>             elem.setAttribute( <span class="jxr_string">"lastmodified"</span>, format.format( d ) );
+<a name="183" href="#183">183</a>             <strong class="jxr_keyword">return</strong> elem;
+<a name="184" href="#184">184</a>         }
+<a name="185" href="#185">185</a> 
+<a name="186" href="#186">186</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="187" href="#187">187</a>     }
+<a name="188" href="#188">188</a> 
+<a name="189" href="#189">189</a> 
+<a name="190" href="#190">190</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="191" href="#191">191</a> <em class="jxr_javadoccomment">     * Initialize the document builder from Xerces.</em>
+<a name="192" href="#192">192</a> <em class="jxr_javadoccomment">     * </em>
+<a name="193" href="#193">193</a> <em class="jxr_javadoccomment">     * @return DocumentBuilder ready to create new document</em>
+<a name="194" href="#194">194</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException : occurs when the instantiation of the document builder fails</em>
+<a name="195" href="#195">195</a> <em class="jxr_javadoccomment">     */</em>
+<a name="196" href="#196">196</a>     <strong class="jxr_keyword">private</strong> DocumentBuilder initConstructor() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="197" href="#197">197</a>     {
+<a name="198" href="#198">198</a>         DocumentBuilder constructor = <strong class="jxr_keyword">null</strong>;
+<a name="199" href="#199">199</a>         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+<a name="200" href="#200">200</a>         <strong class="jxr_keyword">try</strong>
+<a name="201" href="#201">201</a>         {
+<a name="202" href="#202">202</a>             constructor = factory.newDocumentBuilder();
+<a name="203" href="#203">203</a>         }
+<a name="204" href="#204">204</a>         <strong class="jxr_keyword">catch</strong> ( ParserConfigurationException e )
+<a name="205" href="#205">205</a>         {
+<a name="206" href="#206">206</a>             getLog().error( <span class="jxr_string">"Unable to create a new xml document"</span> );
+<a name="207" href="#207">207</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Cannot create the Document Builder : "</span> + e.getMessage() );
+<a name="208" href="#208">208</a>         }
+<a name="209" href="#209">209</a>         <strong class="jxr_keyword">return</strong> constructor;
+<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>     <em class="jxr_javadoccomment">/**</em>
+<a name="214" href="#214">214</a> <em class="jxr_javadoccomment">     * Open an XML file.</em>
+<a name="215" href="#215">215</a> <em class="jxr_javadoccomment">     * </em>
+<a name="216" href="#216">216</a> <em class="jxr_javadoccomment">     * @param file : XML file path</em>
+<a name="217" href="#217">217</a> <em class="jxr_javadoccomment">     * @param constructor DocumentBuilder get from xerces</em>
+<a name="218" href="#218">218</a> <em class="jxr_javadoccomment">     * @return Document which describes this file</em>
+<a name="219" href="#219">219</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException occurs when the given file cannot be opened or is a valid XML file.</em>
+<a name="220" href="#220">220</a> <em class="jxr_javadoccomment">     */</em>
+<a name="221" href="#221">221</a>     <strong class="jxr_keyword">private</strong> Document parseFile( File file, DocumentBuilder constructor ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="222" href="#222">222</a>     {
+<a name="223" href="#223">223</a>         <strong class="jxr_keyword">if</strong> ( constructor == <strong class="jxr_keyword">null</strong> )
+<a name="224" href="#224">224</a>         {
+<a name="225" href="#225">225</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="226" href="#226">226</a>         }
+<a name="227" href="#227">227</a>         <em class="jxr_comment">// The document is the root of the DOM tree.</em>
+<a name="228" href="#228">228</a>         File targetFile = file.getAbsoluteFile();
+<a name="229" href="#229">229</a>         getLog().info( <span class="jxr_string">"Parsing "</span> + targetFile );
+<a name="230" href="#230">230</a>         Document doc = <strong class="jxr_keyword">null</strong>;
+<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>             doc = constructor.parse( targetFile );
+<a name="234" href="#234">234</a>         }
+<a name="235" href="#235">235</a>         <strong class="jxr_keyword">catch</strong> ( SAXException e )
+<a name="236" href="#236">236</a>         {
+<a name="237" href="#237">237</a>             getLog().error( <span class="jxr_string">"Cannot parse "</span> + targetFile + <span class="jxr_string">" : "</span> + e.getMessage() );
+<a name="238" href="#238">238</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Cannot parse "</span> + targetFile + <span class="jxr_string">" : "</span> + e.getMessage() );
+<a name="239" href="#239">239</a>         }
+<a name="240" href="#240">240</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="241" href="#241">241</a>         {
+<a name="242" href="#242">242</a>             getLog().error( <span class="jxr_string">"Cannot open "</span> + targetFile + <span class="jxr_string">" : "</span> + e.getMessage() );
+<a name="243" href="#243">243</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Cannot open "</span> + targetFile + <span class="jxr_string">" : "</span> + e.getMessage() );
+<a name="244" href="#244">244</a>         }
+<a name="245" href="#245">245</a>         <strong class="jxr_keyword">return</strong> doc;
+<a name="246" href="#246">246</a>     }
+<a name="247" href="#247">247</a> 
+<a name="248" href="#248">248</a> 
+<a name="249" href="#249">249</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="250" href="#250">250</a> <em class="jxr_javadoccomment">     * write a Node in a xml file.</em>
+<a name="251" href="#251">251</a> <em class="jxr_javadoccomment">     * </em>
+<a name="252" href="#252">252</a> <em class="jxr_javadoccomment">     * @param outputFilename URI to the output file</em>
+<a name="253" href="#253">253</a> <em class="jxr_javadoccomment">     * @param treeToBeWrite Node root of the tree to be write in file</em>
+<a name="254" href="#254">254</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException if the plugin failed</em>
+<a name="255" href="#255">255</a> <em class="jxr_javadoccomment">     */</em>
+<a name="256" href="#256">256</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeToFile( URI outputFilename, Node treeToBeWrite ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="257" href="#257">257</a>     {
+<a name="258" href="#258">258</a>         <em class="jxr_comment">// init the transformer</em>
+<a name="259" href="#259">259</a>         Transformer transformer = <strong class="jxr_keyword">null</strong>;
+<a name="260" href="#260">260</a>         TransformerFactory tfabrique = TransformerFactory.newInstance();
+<a name="261" href="#261">261</a>         <strong class="jxr_keyword">try</strong>
+<a name="262" href="#262">262</a>         {
+<a name="263" href="#263">263</a>             transformer = tfabrique.newTransformer();
+<a name="264" href="#264">264</a>         }
+<a name="265" href="#265">265</a>         <strong class="jxr_keyword">catch</strong> ( TransformerConfigurationException e )
+<a name="266" href="#266">266</a>         {
+<a name="267" href="#267">267</a>             getLog().error( <span class="jxr_string">"Unable to write to file: "</span> + outputFilename.toString() );
+<a name="268" href="#268">268</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to write to file: "</span> + outputFilename.toString() + <span class="jxr_string">" : "</span>
+<a name="269" href="#269">269</a>                 + e.getMessage() );
+<a name="270" href="#270">270</a>         }
+<a name="271" href="#271">271</a>         Properties proprietes = <strong class="jxr_keyword">new</strong> Properties();
+<a name="272" href="#272">272</a>         proprietes.put( <span class="jxr_string">"method"</span>, <span class="jxr_string">"xml"</span> );
+<a name="273" href="#273">273</a>         proprietes.put( <span class="jxr_string">"version"</span>, <span class="jxr_string">"1.0"</span> );
+<a name="274" href="#274">274</a>         proprietes.put( <span class="jxr_string">"encoding"</span>, <span class="jxr_string">"ISO-8859-1"</span> );
+<a name="275" href="#275">275</a>         proprietes.put( <span class="jxr_string">"standalone"</span>, <span class="jxr_string">"yes"</span> );
+<a name="276" href="#276">276</a>         proprietes.put( <span class="jxr_string">"indent"</span>, <span class="jxr_string">"yes"</span> );
+<a name="277" href="#277">277</a>         proprietes.put( <span class="jxr_string">"omit-xml-declaration"</span>, <span class="jxr_string">"no"</span> );
+<a name="278" href="#278">278</a>         transformer.setOutputProperties( proprietes );
+<a name="279" href="#279">279</a> 
+<a name="280" href="#280">280</a>         DOMSource input = <strong class="jxr_keyword">new</strong> DOMSource( treeToBeWrite );
+<a name="281" href="#281">281</a> 
+<a name="282" href="#282">282</a>         File fichier = <strong class="jxr_keyword">null</strong>;
+<a name="283" href="#283">283</a>         FileOutputStream flux = <strong class="jxr_keyword">null</strong>;
+<a name="284" href="#284">284</a>         <strong class="jxr_keyword">try</strong>
+<a name="285" href="#285">285</a>         {
+<a name="286" href="#286">286</a>             fichier = File.createTempFile( <span class="jxr_string">"repository"</span>, <span class="jxr_string">".xml"</span> );
+<a name="287" href="#287">287</a>             flux = <strong class="jxr_keyword">new</strong> FileOutputStream( fichier );
+<a name="288" href="#288">288</a>         }
+<a name="289" href="#289">289</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="290" href="#290">290</a>         {
+<a name="291" href="#291">291</a>             getLog().error( <span class="jxr_string">"Unable to write to file: "</span> + fichier.getName() );
+<a name="292" href="#292">292</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to write to file: "</span> + fichier.getName() + <span class="jxr_string">" : "</span> + e.getMessage() );
+<a name="293" href="#293">293</a>         }
+<a name="294" href="#294">294</a>         Result output = <strong class="jxr_keyword">new</strong> StreamResult( flux );
+<a name="295" href="#295">295</a>         <strong class="jxr_keyword">try</strong>
+<a name="296" href="#296">296</a>         {
+<a name="297" href="#297">297</a>             transformer.transform( input, output );
+<a name="298" href="#298">298</a>         }
+<a name="299" href="#299">299</a>         <strong class="jxr_keyword">catch</strong> ( TransformerException e )
+<a name="300" href="#300">300</a>         {
+<a name="301" href="#301">301</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to write to file: "</span> + outputFilename.toString() + <span class="jxr_string">" : "</span>
+<a name="302" href="#302">302</a>                 + e.getMessage() );
+<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">try</strong>
+<a name="306" href="#306">306</a>         {
+<a name="307" href="#307">307</a>             flux.flush();
+<a name="308" href="#308">308</a>             flux.close();
+<a name="309" href="#309">309</a> 
+<a name="310" href="#310">310</a>             FileUtils.rename( fichier, <strong class="jxr_keyword">new</strong> File( outputFilename ) );
+<a name="311" href="#311">311</a>         }
+<a name="312" href="#312">312</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="313" href="#313">313</a>         {
+<a name="314" href="#314">314</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"IOException when closing file : "</span> + e.getMessage() );
+<a name="315" href="#315">315</a>         }
+<a name="316" href="#316">316</a>     }
+<a name="317" href="#317">317</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/ObrDeploy.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrDeploy.html
new file mode 100644
index 0000000..62d8a37
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrDeploy.html
@@ -0,0 +1,368 @@
+<!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>ObrDeploy xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<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>  <strong class="jxr_keyword">import</strong> java.net.URI;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.net.URL;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Matcher;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Pattern;
+<a name="30" href="#30">30</a>  
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.manager.WagonManager;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.repository.ArtifactRepository;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.settings.Settings;
+<a name="39" href="#39">39</a>  
+<a name="40" href="#40">40</a>  
+<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * Deploys bundle details to a remote OBR repository (life-cycle goal)</em>
+<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> * @goal deploy</em>
+<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> * @phase deploy</em>
+<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * @threadSafe</em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="50" href="#50">50</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/ObrDeploy.html">ObrDeploy</a> <strong class="jxr_keyword">extends</strong> AbstractMojo
+<a name="51" href="#51">51</a>  {
+<a name="52" href="#52">52</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">     * When true, ignore remote locking.</em>
+<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment">     * @parameter expression="${ignoreLock}"</em>
+<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> ignoreLock;
+<a name="58" href="#58">58</a>  
+<a name="59" href="#59">59</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     * Optional public URL prefix for the remote repository.</em>
+<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * @parameter expression="${prefixUrl}"</em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> String prefixUrl;
+<a name="65" href="#65">65</a>  
+<a name="66" href="#66">66</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     * Optional public URL where the bundle has been deployed.</em>
+<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     * @parameter expression="${bundleUrl}"</em>
+<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> String bundleUrl;
+<a name="72" href="#72">72</a>  
+<a name="73" href="#73">73</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     * Remote OBR Repository.</em>
+<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * @parameter expression="${remoteOBR}" default-value="NONE"</em>
+<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="78" href="#78">78</a>      <strong class="jxr_keyword">private</strong> String remoteOBR;
+<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">     * Local OBR Repository.</em>
+<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment">     * @parameter expression="${obrRepository}"</em>
+<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="85" href="#85">85</a>      <strong class="jxr_keyword">private</strong> String obrRepository;
+<a name="86" href="#86">86</a>  
+<a name="87" href="#87">87</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     * Project types which this plugin supports.</em>
+<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="92" href="#92">92</a>      <strong class="jxr_keyword">private</strong> List supportedProjectTypes = Arrays.asList( <strong class="jxr_keyword">new</strong> String[]
+<a name="93" href="#93">93</a>          { <span class="jxr_string">"jar"</span>, <span class="jxr_string">"bundle"</span> } );
+<a name="94" href="#94">94</a>  
+<a name="95" href="#95">95</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     * @parameter expression="${project.distributionManagementArtifactRepository}"</em>
+<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="99" href="#99">99</a>      <strong class="jxr_keyword">private</strong> ArtifactRepository deploymentRepository;
+<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">     * Alternative deployment repository. Format: id::layout::url</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="${altDeploymentRepository}"</em>
+<a name="105" href="#105">105</a> <em class="jxr_javadoccomment">     */</em>
+<a name="106" href="#106">106</a>     <strong class="jxr_keyword">private</strong> String altDeploymentRepository;
+<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">     * OBR specific deployment repository. Format: id::layout::url</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="${obrDeploymentRepository}"</em>
+<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     */</em>
+<a name="113" href="#113">113</a>     <strong class="jxr_keyword">private</strong> String obrDeploymentRepository;
+<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">     * Local Repository.</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="${localRepository}"</em>
+<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     */</em>
+<a name="122" href="#122">122</a>     <strong class="jxr_keyword">private</strong> ArtifactRepository localRepository;
+<a name="123" href="#123">123</a> 
+<a name="124" href="#124">124</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">     * The Maven project.</em>
+<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     * </em>
+<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     * @parameter expression="${project}"</em>
+<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="130" href="#130">130</a> <em class="jxr_javadoccomment">     */</em>
+<a name="131" href="#131">131</a>     <strong class="jxr_keyword">private</strong> MavenProject project;
+<a name="132" href="#132">132</a> 
+<a name="133" href="#133">133</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="134" href="#134">134</a> <em class="jxr_javadoccomment">     * @parameter expression="${project.attachedArtifacts}</em>
+<a name="135" href="#135">135</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="136" href="#136">136</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="137" href="#137">137</a> <em class="jxr_javadoccomment">     */</em>
+<a name="138" href="#138">138</a>     <strong class="jxr_keyword">private</strong> List attachedArtifacts;
+<a name="139" href="#139">139</a> 
+<a name="140" href="#140">140</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="141" href="#141">141</a> <em class="jxr_javadoccomment">     * Local Maven settings.</em>
+<a name="142" href="#142">142</a> <em class="jxr_javadoccomment">     * </em>
+<a name="143" href="#143">143</a> <em class="jxr_javadoccomment">     * @parameter expression="${settings}"</em>
+<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * @readonly</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> Settings settings;
+<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">     * The Wagon manager.</em>
+<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">     * </em>
+<a name="152" href="#152">152</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="153" href="#153">153</a> <em class="jxr_javadoccomment">     */</em>
+<a name="154" href="#154">154</a>     <strong class="jxr_keyword">private</strong> WagonManager m_wagonManager;
+<a name="155" href="#155">155</a> 
+<a name="156" href="#156">156</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="157" href="#157">157</a> <em class="jxr_javadoccomment">     * Attached source artifact</em>
+<a name="158" href="#158">158</a> <em class="jxr_javadoccomment">     */</em>
+<a name="159" href="#159">159</a>     <strong class="jxr_keyword">private</strong> Artifact m_sourceArtifact;
+<a name="160" href="#160">160</a> 
+<a name="161" href="#161">161</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="162" href="#162">162</a> <em class="jxr_javadoccomment">     * Attached doc artifact</em>
+<a name="163" href="#163">163</a> <em class="jxr_javadoccomment">     */</em>
+<a name="164" href="#164">164</a>     <strong class="jxr_keyword">private</strong> Artifact m_docArtifact;
+<a name="165" href="#165">165</a> 
+<a name="166" href="#166">166</a> 
+<a name="167" href="#167">167</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="168" href="#168">168</a>     {
+<a name="169" href="#169">169</a>         String projectType = project.getPackaging();
+<a name="170" href="#170">170</a> 
+<a name="171" href="#171">171</a>         <em class="jxr_comment">// ignore unsupported project types, useful when bundleplugin is configured in parent pom</em>
+<a name="172" href="#172">172</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( projectType ) )
+<a name="173" href="#173">173</a>         {
+<a name="174" href="#174">174</a>             getLog().warn(
+<a name="175" href="#175">175</a>                 <span class="jxr_string">"Ignoring project type "</span> + projectType + <span class="jxr_string">" - supportedProjectTypes = "</span> + supportedProjectTypes );
+<a name="176" href="#176">176</a>             <strong class="jxr_keyword">return</strong>;
+<a name="177" href="#177">177</a>         }
+<a name="178" href="#178">178</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"NONE"</span>.equalsIgnoreCase( remoteOBR ) || <span class="jxr_string">"false"</span>.equalsIgnoreCase( remoteOBR ) )
+<a name="179" href="#179">179</a>         {
+<a name="180" href="#180">180</a>             getLog().info( <span class="jxr_string">"Remote OBR update disabled (enable with -DremoteOBR)"</span> );
+<a name="181" href="#181">181</a>             <strong class="jxr_keyword">return</strong>;
+<a name="182" href="#182">182</a>         }
+<a name="183" href="#183">183</a> 
+<a name="184" href="#184">184</a>         <em class="jxr_comment">// check for any attached sources or docs</em>
+<a name="185" href="#185">185</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = attachedArtifacts.iterator(); i.hasNext(); )
+<a name="186" href="#186">186</a>         {
+<a name="187" href="#187">187</a>             Artifact artifact = ( Artifact ) i.next();
+<a name="188" href="#188">188</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"sources"</span>.equals( artifact.getClassifier() ) )
+<a name="189" href="#189">189</a>             {
+<a name="190" href="#190">190</a>                 m_sourceArtifact = artifact;
+<a name="191" href="#191">191</a>             }
+<a name="192" href="#192">192</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"javadoc"</span>.equals( artifact.getClassifier() ) )
+<a name="193" href="#193">193</a>             {
+<a name="194" href="#194">194</a>                 m_docArtifact = artifact;
+<a name="195" href="#195">195</a>             }
+<a name="196" href="#196">196</a>         }
+<a name="197" href="#197">197</a> 
+<a name="198" href="#198">198</a>         <em class="jxr_comment">// if the user doesn't supply an explicit name for the remote OBR file, use the local name instead</em>
+<a name="199" href="#199">199</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == remoteOBR || remoteOBR.trim().length() == 0 || <span class="jxr_string">"true"</span>.equalsIgnoreCase( remoteOBR ) )
+<a name="200" href="#200">200</a>         {
+<a name="201" href="#201">201</a>             remoteOBR = obrRepository;
+<a name="202" href="#202">202</a>         }
+<a name="203" href="#203">203</a> 
+<a name="204" href="#204">204</a>         URI tempURI = ObrUtils.findRepositoryXml( <span class="jxr_string">""</span>, remoteOBR );
+<a name="205" href="#205">205</a>         String repositoryName = <strong class="jxr_keyword">new</strong> File( tempURI.getSchemeSpecificPart() ).getName();
+<a name="206" href="#206">206</a> 
+<a name="207" href="#207">207</a>         Log log = getLog();
+<a name="208" href="#208">208</a>         <a href="../../../../org/apache/felix/obrplugin/ObrUpdate.html">ObrUpdate</a> update;
+<a name="209" href="#209">209</a> 
+<a name="210" href="#210">210</a>         <a href="../../../../org/apache/felix/obrplugin/RemoteFileManager.html">RemoteFileManager</a> remoteFile = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/obrplugin/RemoteFileManager.html">RemoteFileManager</a>( m_wagonManager, settings, log );
+<a name="211" href="#211">211</a>         openRepositoryConnection( remoteFile );
+<a name="212" href="#212">212</a> 
+<a name="213" href="#213">213</a>         <em class="jxr_comment">// ======== LOCK REMOTE OBR ========</em>
+<a name="214" href="#214">214</a>         log.info( <span class="jxr_string">"LOCK "</span> + remoteFile + '/' + repositoryName );
+<a name="215" href="#215">215</a>         remoteFile.lockFile( repositoryName, ignoreLock );
+<a name="216" href="#216">216</a>         File downloadedRepositoryXml = <strong class="jxr_keyword">null</strong>;
+<a name="217" href="#217">217</a> 
+<a name="218" href="#218">218</a>         <strong class="jxr_keyword">try</strong>
+<a name="219" href="#219">219</a>         {
+<a name="220" href="#220">220</a>             <em class="jxr_comment">// ======== DOWNLOAD REMOTE OBR ========</em>
+<a name="221" href="#221">221</a>             log.info( <span class="jxr_string">"Downloading "</span> + repositoryName );
+<a name="222" href="#222">222</a>             downloadedRepositoryXml = remoteFile.get( repositoryName, <span class="jxr_string">".xml"</span> );
+<a name="223" href="#223">223</a> 
+<a name="224" href="#224">224</a>             String mavenRepository = localRepository.getBasedir();
+<a name="225" href="#225">225</a> 
+<a name="226" href="#226">226</a>             URI repositoryXml = downloadedRepositoryXml.toURI();
+<a name="227" href="#227">227</a>             URI obrXmlFile = ObrUtils.findObrXml( project );
+<a name="228" href="#228">228</a> 
+<a name="229" href="#229">229</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="230" href="#230">230</a>             userConfig.setRemoteFile( <strong class="jxr_keyword">true</strong> );
+<a name="231" href="#231">231</a> 
+<a name="232" href="#232">232</a>             <strong class="jxr_keyword">if</strong> ( bundleUrl != <strong class="jxr_keyword">null</strong> )
+<a name="233" href="#233">233</a>             {
+<a name="234" href="#234">234</a>                 <em class="jxr_comment">// public URL differs from the bundle file location</em>
+<a name="235" href="#235">235</a>                 URI uri = URI.create( bundleUrl );
+<a name="236" href="#236">236</a>                 log.info( <span class="jxr_string">"Computed bundle uri: "</span> + uri );
+<a name="237" href="#237">237</a>                 userConfig.setRemoteBundle( uri );
+<a name="238" href="#238">238</a>             }
+<a name="239" href="#239">239</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( prefixUrl != <strong class="jxr_keyword">null</strong> )
+<a name="240" href="#240">240</a>             {
+<a name="241" href="#241">241</a>                 <em class="jxr_comment">// support absolute bundle URLs based on given prefix</em>
+<a name="242" href="#242">242</a>                 URI bundleJar = ObrUtils.getArtifactURI( localRepository, project.getArtifact() );
+<a name="243" href="#243">243</a>                 String relative = ObrUtils.getRelativeURI( ObrUtils.toFileURI( mavenRepository ), bundleJar )
+<a name="244" href="#244">244</a>                     .toASCIIString();
+<a name="245" href="#245">245</a>                 URL resourceURL = <strong class="jxr_keyword">new</strong> URL( <strong class="jxr_keyword">new</strong> URL( prefixUrl + '/' ), relative );
+<a name="246" href="#246">246</a>                 URI uri = URI.create( resourceURL.toString() );
+<a name="247" href="#247">247</a>                 log.info( <span class="jxr_string">"Computed bundle uri: "</span> + uri );
+<a name="248" href="#248">248</a>                 userConfig.setRemoteBundle( uri );
+<a name="249" href="#249">249</a>             }
+<a name="250" href="#250">250</a> 
+<a name="251" href="#251">251</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="252" href="#252">252</a>             update.parseRepositoryXml();
+<a name="253" href="#253">253</a> 
+<a name="254" href="#254">254</a>             updateRemoteBundleMetadata( project.getArtifact(), update );
+<a name="255" href="#255">255</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = attachedArtifacts.iterator(); i.hasNext(); )
+<a name="256" href="#256">256</a>             {
+<a name="257" href="#257">257</a>                 updateRemoteBundleMetadata( ( Artifact ) i.next(), update );
+<a name="258" href="#258">258</a>             }
+<a name="259" href="#259">259</a> 
+<a name="260" href="#260">260</a>             update.writeRepositoryXml();
+<a name="261" href="#261">261</a> 
+<a name="262" href="#262">262</a>             <strong class="jxr_keyword">if</strong> ( downloadedRepositoryXml.exists() )
+<a name="263" href="#263">263</a>             {
+<a name="264" href="#264">264</a>                 <em class="jxr_comment">// ======== UPLOAD MODIFIED OBR ========</em>
+<a name="265" href="#265">265</a>                 log.info( <span class="jxr_string">"Uploading "</span> + repositoryName );
+<a name="266" href="#266">266</a>                 remoteFile.put( downloadedRepositoryXml, repositoryName );
+<a name="267" href="#267">267</a>             }
+<a name="268" href="#268">268</a>         }
+<a name="269" href="#269">269</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="270" href="#270">270</a>         {
+<a name="271" href="#271">271</a>             log.warn( <span class="jxr_string">"Exception while updating remote OBR: "</span> + e.getLocalizedMessage(), e );
+<a name="272" href="#272">272</a>         }
+<a name="273" href="#273">273</a>         <strong class="jxr_keyword">finally</strong>
+<a name="274" href="#274">274</a>         {
+<a name="275" href="#275">275</a>             <em class="jxr_comment">// ======== UNLOCK REMOTE OBR ========</em>
+<a name="276" href="#276">276</a>             log.info( <span class="jxr_string">"UNLOCK "</span> + remoteFile + '/' + repositoryName );
+<a name="277" href="#277">277</a>             remoteFile.unlockFile( repositoryName );
+<a name="278" href="#278">278</a>             remoteFile.disconnect();
+<a name="279" href="#279">279</a> 
+<a name="280" href="#280">280</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != downloadedRepositoryXml )
+<a name="281" href="#281">281</a>             {
+<a name="282" href="#282">282</a>                 downloadedRepositoryXml.delete();
+<a name="283" href="#283">283</a>             }
+<a name="284" href="#284">284</a>         }
+<a name="285" href="#285">285</a>     }
+<a name="286" href="#286">286</a> 
+<a name="287" href="#287">287</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Pattern ALT_REPO_SYNTAX_PATTERN = Pattern.compile( <span class="jxr_string">"(.+)::(.+)::(.+)"</span> );
+<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">private</strong> <strong class="jxr_keyword">void</strong> openRepositoryConnection( RemoteFileManager remoteFile ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="291" href="#291">291</a>     {
+<a name="292" href="#292">292</a>         <em class="jxr_comment">// use OBR specific deployment location?</em>
+<a name="293" href="#293">293</a>         <strong class="jxr_keyword">if</strong> ( obrDeploymentRepository != <strong class="jxr_keyword">null</strong> )
+<a name="294" href="#294">294</a>         {
+<a name="295" href="#295">295</a>             altDeploymentRepository = obrDeploymentRepository;
+<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">if</strong> ( deploymentRepository == <strong class="jxr_keyword">null</strong> &amp;&amp; altDeploymentRepository == <strong class="jxr_keyword">null</strong> )
+<a name="299" href="#299">299</a>         {
+<a name="300" href="#300">300</a>             String msg = <span class="jxr_string">"Deployment failed: repository element was not specified in the pom inside"</span>
+<a name="301" href="#301">301</a>                 + <span class="jxr_string">" distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter"</span>;
+<a name="302" href="#302">302</a> 
+<a name="303" href="#303">303</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( msg );
+<a name="304" href="#304">304</a>         }
+<a name="305" href="#305">305</a> 
+<a name="306" href="#306">306</a>         <strong class="jxr_keyword">if</strong> ( altDeploymentRepository != <strong class="jxr_keyword">null</strong> )
+<a name="307" href="#307">307</a>         {
+<a name="308" href="#308">308</a>             getLog().info( <span class="jxr_string">"Using alternate deployment repository "</span> + altDeploymentRepository );
+<a name="309" href="#309">309</a> 
+<a name="310" href="#310">310</a>             Matcher matcher = ALT_REPO_SYNTAX_PATTERN.matcher( altDeploymentRepository );
+<a name="311" href="#311">311</a>             <strong class="jxr_keyword">if</strong> ( !matcher.matches() )
+<a name="312" href="#312">312</a>             {
+<a name="313" href="#313">313</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Invalid syntax for alternative repository \&quot;"</span>
+<a name="314" href="#314">314</a>                     + altDeploymentRepository + <span class="jxr_string">"\&quot;. Use \&quot;id::layout::url\&quot;."</span> );
+<a name="315" href="#315">315</a>             }
+<a name="316" href="#316">316</a> 
+<a name="317" href="#317">317</a>             remoteFile.connect( matcher.group( 1 ).trim(), matcher.group( 3 ).trim() );
+<a name="318" href="#318">318</a>         }
+<a name="319" href="#319">319</a>         <strong class="jxr_keyword">else</strong>
+<a name="320" href="#320">320</a>         {
+<a name="321" href="#321">321</a>             remoteFile.connect( deploymentRepository.getId(), deploymentRepository.getUrl() );
+<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> 
+<a name="326" href="#326">326</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> updateRemoteBundleMetadata( Artifact artifact, ObrUpdate update ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="327" href="#327">327</a>     {
+<a name="328" href="#328">328</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( artifact.getType() ) )
+<a name="329" href="#329">329</a>         {
+<a name="330" href="#330">330</a>             <strong class="jxr_keyword">return</strong>;
+<a name="331" href="#331">331</a>         }
+<a name="332" href="#332">332</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="333" href="#333">333</a>         {
+<a name="334" href="#334">334</a>             getLog().error( <span class="jxr_string">"No artifact found, try \&quot;mvn install bundle:deploy\&quot;"</span> );
+<a name="335" href="#335">335</a>             <strong class="jxr_keyword">return</strong>;
+<a name="336" href="#336">336</a>         }
+<a name="337" href="#337">337</a> 
+<a name="338" href="#338">338</a>         URI bundleJar = ObrUtils.getArtifactURI( localRepository, artifact );
+<a name="339" href="#339">339</a> 
+<a name="340" href="#340">340</a>         URI sourceJar = <strong class="jxr_keyword">null</strong>;
+<a name="341" href="#341">341</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != m_sourceArtifact )
+<a name="342" href="#342">342</a>         {
+<a name="343" href="#343">343</a>             sourceJar = ObrUtils.getArtifactURI( localRepository, m_sourceArtifact );
+<a name="344" href="#344">344</a>         }
+<a name="345" href="#345">345</a> 
+<a name="346" href="#346">346</a>         URI docJar = <strong class="jxr_keyword">null</strong>;
+<a name="347" href="#347">347</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != m_docArtifact )
+<a name="348" href="#348">348</a>         {
+<a name="349" href="#349">349</a>             docJar = ObrUtils.getArtifactURI( localRepository, m_docArtifact );
+<a name="350" href="#350">350</a>         }
+<a name="351" href="#351">351</a> 
+<a name="352" href="#352">352</a>         update.updateRepository( bundleJar, sourceJar, docJar );
+<a name="353" href="#353">353</a>     }
+<a name="354" href="#354">354</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/ObrDeployFile.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrDeployFile.html
new file mode 100644
index 0000000..7e3002c
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrDeployFile.html
@@ -0,0 +1,246 @@
+<!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>ObrDeployFile xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<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>  <strong class="jxr_keyword">import</strong> java.net.URI;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="26" href="#26">26</a>  
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.manager.WagonManager;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.repository.ArtifactRepository;
+<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>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.settings.Settings;
+<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>
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * Deploys bundle details to a remote OBR repository (command-line goal)</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * @requiresProject false</em>
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * @goal deploy-file</em>
+<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * @phase deploy</em>
+<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="44" href="#44">44</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/ObrDeployFile.html">ObrDeployFile</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/obrplugin/AbstractFileMojo.html">AbstractFileMojo</a>
+<a name="45" href="#45">45</a>  {
+<a name="46" href="#46">46</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">     * When true, ignore remote locking.</em>
+<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">     * @parameter expression="${ignoreLock}"</em>
+<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="51" href="#51">51</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> ignoreLock;
+<a name="52" href="#52">52</a>  
+<a name="53" href="#53">53</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     * Remote OBR Repository.</em>
+<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     * @parameter expression="${remoteOBR}"</em>
+<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> String remoteOBR;
+<a name="59" href="#59">59</a>  
+<a name="60" href="#60">60</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     * Local OBR Repository.</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * @parameter expression="${obrRepository}"</em>
+<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> String obrRepository;
+<a name="66" href="#66">66</a>  
+<a name="67" href="#67">67</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     * Project types which this plugin supports.</em>
+<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> List supportedProjectTypes = Arrays.asList( <strong class="jxr_keyword">new</strong> String[]
+<a name="73" href="#73">73</a>          { <span class="jxr_string">"jar"</span>, <span class="jxr_string">"bundle"</span> } );
+<a name="74" href="#74">74</a>  
+<a name="75" href="#75">75</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * Remote repository id, used to lookup authentication settings.</em>
+<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     * @parameter expression="${repositoryId}" default-value="remote-repository"</em>
+<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="81" href="#81">81</a>      <strong class="jxr_keyword">private</strong> String repositoryId;
+<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">     * Remote OBR repository URL, where the bundle details are to be uploaded.</em>
+<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     * @parameter expression="${url}"</em>
+<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="89" href="#89">89</a>      <strong class="jxr_keyword">private</strong> String url;
+<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">     * Optional public URL where the bundle has been deployed.</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="${bundleUrl}"</em>
+<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="96" href="#96">96</a>      <strong class="jxr_keyword">private</strong> String bundleUrl;
+<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">     * Local Repository.</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="${localRepository}"</em>
+<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     */</em>
+<a name="105" href="#105">105</a>     <strong class="jxr_keyword">private</strong> ArtifactRepository localRepository;
+<a name="106" href="#106">106</a> 
+<a name="107" href="#107">107</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     * Local Maven settings.</em>
+<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     * </em>
+<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     * @parameter expression="${settings}"</em>
+<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">     */</em>
+<a name="114" href="#114">114</a>     <strong class="jxr_keyword">private</strong> Settings settings;
+<a name="115" href="#115">115</a> 
+<a name="116" href="#116">116</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="117" href="#117">117</a> <em class="jxr_javadoccomment">     * The Wagon manager.</em>
+<a name="118" href="#118">118</a> <em class="jxr_javadoccomment">     * </em>
+<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     */</em>
+<a name="121" href="#121">121</a>     <strong class="jxr_keyword">private</strong> WagonManager m_wagonManager;
+<a name="122" href="#122">122</a> 
+<a name="123" href="#123">123</a> 
+<a name="124" href="#124">124</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="125" href="#125">125</a>     {
+<a name="126" href="#126">126</a>         MavenProject project = getProject();
+<a name="127" href="#127">127</a>         String projectType = project.getPackaging();
+<a name="128" href="#128">128</a> 
+<a name="129" href="#129">129</a>         <em class="jxr_comment">// ignore unsupported project types, useful when bundleplugin is configured in parent pom</em>
+<a name="130" href="#130">130</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( projectType ) )
+<a name="131" href="#131">131</a>         {
+<a name="132" href="#132">132</a>             getLog().warn(
+<a name="133" href="#133">133</a>                 <span class="jxr_string">"Ignoring project type "</span> + projectType + <span class="jxr_string">" - supportedProjectTypes = "</span> + supportedProjectTypes );
+<a name="134" href="#134">134</a>             <strong class="jxr_keyword">return</strong>;
+<a name="135" href="#135">135</a>         }
+<a name="136" href="#136">136</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"NONE"</span>.equalsIgnoreCase( remoteOBR ) || <span class="jxr_string">"false"</span>.equalsIgnoreCase( remoteOBR ) )
+<a name="137" href="#137">137</a>         {
+<a name="138" href="#138">138</a>             getLog().info( <span class="jxr_string">"Remote OBR update disabled (enable with -DremoteOBR)"</span> );
+<a name="139" href="#139">139</a>             <strong class="jxr_keyword">return</strong>;
+<a name="140" href="#140">140</a>         }
+<a name="141" href="#141">141</a> 
+<a name="142" href="#142">142</a>         <em class="jxr_comment">// if the user doesn't supply an explicit name for the remote OBR file, use the local name instead</em>
+<a name="143" href="#143">143</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == remoteOBR || remoteOBR.trim().length() == 0 || <span class="jxr_string">"true"</span>.equalsIgnoreCase( remoteOBR ) )
+<a name="144" href="#144">144</a>         {
+<a name="145" href="#145">145</a>             remoteOBR = obrRepository;
+<a name="146" href="#146">146</a>         }
+<a name="147" href="#147">147</a> 
+<a name="148" href="#148">148</a>         URI tempURI = ObrUtils.findRepositoryXml( <span class="jxr_string">""</span>, remoteOBR );
+<a name="149" href="#149">149</a>         String repositoryName = <strong class="jxr_keyword">new</strong> File( tempURI.getSchemeSpecificPart() ).getName();
+<a name="150" href="#150">150</a> 
+<a name="151" href="#151">151</a>         Log log = getLog();
+<a name="152" href="#152">152</a>         <a href="../../../../org/apache/felix/obrplugin/ObrUpdate.html">ObrUpdate</a> update;
+<a name="153" href="#153">153</a> 
+<a name="154" href="#154">154</a>         <a href="../../../../org/apache/felix/obrplugin/RemoteFileManager.html">RemoteFileManager</a> remoteFile = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/obrplugin/RemoteFileManager.html">RemoteFileManager</a>( m_wagonManager, settings, log );
+<a name="155" href="#155">155</a>         remoteFile.connect( repositoryId, url );
+<a name="156" href="#156">156</a> 
+<a name="157" href="#157">157</a>         <em class="jxr_comment">// ======== LOCK REMOTE OBR ========</em>
+<a name="158" href="#158">158</a>         log.info( <span class="jxr_string">"LOCK "</span> + remoteFile + '/' + repositoryName );
+<a name="159" href="#159">159</a>         remoteFile.lockFile( repositoryName, ignoreLock );
+<a name="160" href="#160">160</a>         File downloadedRepositoryXml = <strong class="jxr_keyword">null</strong>;
+<a name="161" href="#161">161</a> 
+<a name="162" href="#162">162</a>         <strong class="jxr_keyword">try</strong>
+<a name="163" href="#163">163</a>         {
+<a name="164" href="#164">164</a>             <em class="jxr_comment">// ======== DOWNLOAD REMOTE OBR ========</em>
+<a name="165" href="#165">165</a>             log.info( <span class="jxr_string">"Downloading "</span> + repositoryName );
+<a name="166" href="#166">166</a>             downloadedRepositoryXml = remoteFile.get( repositoryName, <span class="jxr_string">".xml"</span> );
+<a name="167" href="#167">167</a> 
+<a name="168" href="#168">168</a>             String mavenRepository = localRepository.getBasedir();
+<a name="169" href="#169">169</a> 
+<a name="170" href="#170">170</a>             URI repositoryXml = downloadedRepositoryXml.toURI();
+<a name="171" href="#171">171</a>             URI obrXmlFile = ObrUtils.toFileURI( obrXml );
+<a name="172" href="#172">172</a>             URI bundleJar;
+<a name="173" href="#173">173</a> 
+<a name="174" href="#174">174</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == file )
+<a name="175" href="#175">175</a>             {
+<a name="176" href="#176">176</a>                 bundleJar = ObrUtils.getArtifactURI( localRepository, project.getArtifact() );
+<a name="177" href="#177">177</a>             }
+<a name="178" href="#178">178</a>             <strong class="jxr_keyword">else</strong>
+<a name="179" href="#179">179</a>             {
+<a name="180" href="#180">180</a>                 bundleJar = file.toURI();
+<a name="181" href="#181">181</a>             }
+<a name="182" href="#182">182</a> 
+<a name="183" href="#183">183</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="184" href="#184">184</a>             userConfig.setRemoteFile( <strong class="jxr_keyword">true</strong> );
+<a name="185" href="#185">185</a> 
+<a name="186" href="#186">186</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != bundleUrl )
+<a name="187" href="#187">187</a>             {
+<a name="188" href="#188">188</a>                 <em class="jxr_comment">// public URL differs from the bundle file location</em>
+<a name="189" href="#189">189</a>                 URI uri = URI.create( bundleUrl );
+<a name="190" href="#190">190</a>                 log.info( <span class="jxr_string">"Computed bundle uri: "</span> + uri );
+<a name="191" href="#191">191</a>                 userConfig.setRemoteBundle( uri );
+<a name="192" href="#192">192</a>             }
+<a name="193" href="#193">193</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != file )
+<a name="194" href="#194">194</a>             {
+<a name="195" href="#195">195</a>                 <em class="jxr_comment">// assume file will be deployed in remote repository, so find the remote relative location</em>
+<a name="196" href="#196">196</a>                 URI uri = URI.create( localRepository.pathOf( project.getArtifact() ) );
+<a name="197" href="#197">197</a>                 log.info( <span class="jxr_string">"Computed bundle uri: "</span> + uri );
+<a name="198" href="#198">198</a>                 userConfig.setRemoteBundle( uri );
+<a name="199" href="#199">199</a>             }
+<a name="200" href="#200">200</a> 
+<a name="201" href="#201">201</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="202" href="#202">202</a>             update.parseRepositoryXml();
+<a name="203" href="#203">203</a> 
+<a name="204" href="#204">204</a>             update.updateRepository( bundleJar, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> );
+<a name="205" href="#205">205</a> 
+<a name="206" href="#206">206</a>             update.writeRepositoryXml();
+<a name="207" href="#207">207</a> 
+<a name="208" href="#208">208</a>             <strong class="jxr_keyword">if</strong> ( downloadedRepositoryXml.exists() )
+<a name="209" href="#209">209</a>             {
+<a name="210" href="#210">210</a>                 <em class="jxr_comment">// ======== UPLOAD MODIFIED OBR ========</em>
+<a name="211" href="#211">211</a>                 log.info( <span class="jxr_string">"Uploading "</span> + repositoryName );
+<a name="212" href="#212">212</a>                 remoteFile.put( downloadedRepositoryXml, repositoryName );
+<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">catch</strong> ( Exception e )
+<a name="216" href="#216">216</a>         {
+<a name="217" href="#217">217</a>             log.warn( <span class="jxr_string">"Exception while updating remote OBR: "</span> + e.getLocalizedMessage(), e );
+<a name="218" href="#218">218</a>         }
+<a name="219" href="#219">219</a>         <strong class="jxr_keyword">finally</strong>
+<a name="220" href="#220">220</a>         {
+<a name="221" href="#221">221</a>             <em class="jxr_comment">// ======== UNLOCK REMOTE OBR ========</em>
+<a name="222" href="#222">222</a>             log.info( <span class="jxr_string">"UNLOCK "</span> + remoteFile + '/' + repositoryName );
+<a name="223" href="#223">223</a>             remoteFile.unlockFile( repositoryName );
+<a name="224" href="#224">224</a>             remoteFile.disconnect();
+<a name="225" href="#225">225</a> 
+<a name="226" href="#226">226</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != downloadedRepositoryXml )
+<a name="227" href="#227">227</a>             {
+<a name="228" href="#228">228</a>                 downloadedRepositoryXml.delete();
+<a name="229" href="#229">229</a>             }
+<a name="230" href="#230">230</a>         }
+<a name="231" href="#231">231</a>     }
+<a name="232" href="#232">232</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/ObrIndex.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrIndex.html
new file mode 100644
index 0000000..5b330ad
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrIndex.html
@@ -0,0 +1,277 @@
+<!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>ObrIndex xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<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>  <strong class="jxr_keyword">import</strong> java.io.FileFilter;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.FileWriter;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.io.Writer;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.net.URI;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.net.URISyntaxException;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="31" href="#31">31</a>  
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.Property;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.Resource;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.impl.DataModelHelperImpl;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.impl.RepositoryImpl;
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.impl.ResourceImpl;
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.repository.ArtifactRepository;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
+<a name="41" href="#41">41</a>  
+<a name="42" href="#42">42</a>  
+<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> * Index the content of a maven repository using OBR</em>
+<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> *</em>
+<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * @goal index</em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * @requiresProject false</em>
+<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> *</em>
+<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="51" href="#51">51</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/ObrIndex.html">ObrIndex</a> <strong class="jxr_keyword">extends</strong> AbstractMojo
+<a name="52" href="#52">52</a>  {
+<a name="53" href="#53">53</a>  
+<a name="54" href="#54">54</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment">     * OBR Repository.</em>
+<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * @parameter expression="${obrRepository}"</em>
+<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> String obrRepository;
+<a name="60" href="#60">60</a>  
+<a name="61" href="#61">61</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * Template for urls</em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     * @parameter expression="${urlTemplate}"</em>
+<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> String urlTemplate;
+<a name="67" href="#67">67</a>  
+<a name="68" href="#68">68</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     * The repository to index</em>
+<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     * @parameter expression="${mavenRepository}</em>
+<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="73" href="#73">73</a>      <strong class="jxr_keyword">private</strong> String mavenRepository;
+<a name="74" href="#74">74</a>  
+<a name="75" href="#75">75</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * Local Repository.</em>
+<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     * @parameter expression="${localRepository}"</em>
+<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="82" href="#82">82</a>      <strong class="jxr_keyword">private</strong> ArtifactRepository localRepository;
+<a name="83" href="#83">83</a>  
+<a name="84" href="#84">84</a>  
+<a name="85" href="#85">85</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="86" href="#86">86</a>      {
+<a name="87" href="#87">87</a>          Log log = getLog();
+<a name="88" href="#88">88</a>          <strong class="jxr_keyword">try</strong>
+<a name="89" href="#89">89</a>          {
+<a name="90" href="#90">90</a>              log.info( <span class="jxr_string">"Indexing..."</span> );
+<a name="91" href="#91">91</a>  
+<a name="92" href="#92">92</a>              String repo = mavenRepository;
+<a name="93" href="#93">93</a>              <strong class="jxr_keyword">if</strong> ( repo == <strong class="jxr_keyword">null</strong> )
+<a name="94" href="#94">94</a>              {
+<a name="95" href="#95">95</a>                  repo = localRepository.getBasedir();
+<a name="96" href="#96">96</a>              }
+<a name="97" href="#97">97</a>              URI mavenRepoUri = <strong class="jxr_keyword">new</strong> File( repo ).toURI();
+<a name="98" href="#98">98</a>  
+<a name="99" href="#99">99</a>              URI repositoryXml = ObrUtils.findRepositoryXml( repo, obrRepository );
+<a name="100" href="#100">100</a> 
+<a name="101" href="#101">101</a>             log.info( <span class="jxr_string">"Repository:   "</span> + mavenRepoUri );
+<a name="102" href="#102">102</a>             log.info( <span class="jxr_string">"OBR xml:      "</span> + repositoryXml );
+<a name="103" href="#103">103</a>             log.info( <span class="jxr_string">"URL template: "</span> + urlTemplate );
+<a name="104" href="#104">104</a> 
+<a name="105" href="#105">105</a>             List&lt;File&gt; files = <strong class="jxr_keyword">new</strong> ArrayList&lt;File&gt;();
+<a name="106" href="#106">106</a>             findAllJars( <strong class="jxr_keyword">new</strong> File( repo ), files );
+<a name="107" href="#107">107</a> 
+<a name="108" href="#108">108</a>             DataModelHelperImpl dmh = <strong class="jxr_keyword">new</strong> DataModelHelperImpl();
+<a name="109" href="#109">109</a>             RepositoryImpl repository;
+<a name="110" href="#110">110</a> 
+<a name="111" href="#111">111</a>             File obrRepoFile = <strong class="jxr_keyword">new</strong> File( repositoryXml );
+<a name="112" href="#112">112</a>             <strong class="jxr_keyword">if</strong> ( obrRepoFile.isFile() )
+<a name="113" href="#113">113</a>             {
+<a name="114" href="#114">114</a>                 repository = ( RepositoryImpl ) dmh.repository( repositoryXml.toURL() );
+<a name="115" href="#115">115</a>             }
+<a name="116" href="#116">116</a>             <strong class="jxr_keyword">else</strong>
+<a name="117" href="#117">117</a>             {
+<a name="118" href="#118">118</a>                 repository = <strong class="jxr_keyword">new</strong> RepositoryImpl();
+<a name="119" href="#119">119</a>             }
+<a name="120" href="#120">120</a> 
+<a name="121" href="#121">121</a>             <strong class="jxr_keyword">for</strong> ( File file : files )
+<a name="122" href="#122">122</a>             {
+<a name="123" href="#123">123</a>                 <strong class="jxr_keyword">try</strong>
+<a name="124" href="#124">124</a>                 {
+<a name="125" href="#125">125</a>                     ResourceImpl resource = ( ResourceImpl ) dmh.createResource( file.toURI().toURL() );
+<a name="126" href="#126">126</a>                     <strong class="jxr_keyword">if</strong> ( resource != <strong class="jxr_keyword">null</strong> )
+<a name="127" href="#127">127</a>                     {
+<a name="128" href="#128">128</a>                         repository.addResource( resource );
+<a name="129" href="#129">129</a>                         doTemplate( mavenRepoUri, file, resource );
+<a name="130" href="#130">130</a>                         log.info( <span class="jxr_string">"Adding resource: "</span> + file );
+<a name="131" href="#131">131</a>                     }
+<a name="132" href="#132">132</a>                     <strong class="jxr_keyword">else</strong>
+<a name="133" href="#133">133</a>                     {
+<a name="134" href="#134">134</a>                         log.info( <span class="jxr_string">"Ignoring non OSGi bundle: "</span> + file );
+<a name="135" href="#135">135</a>                     }
+<a name="136" href="#136">136</a>                 }
+<a name="137" href="#137">137</a>                 <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="138" href="#138">138</a>                 {
+<a name="139" href="#139">139</a>                     log.warn( <span class="jxr_string">"Error processing bundle: "</span> + file + <span class="jxr_string">" "</span> + e.getMessage() );
+<a name="140" href="#140">140</a>                 }
+<a name="141" href="#141">141</a>             }
+<a name="142" href="#142">142</a>             Writer writer = <strong class="jxr_keyword">new</strong> FileWriter( obrRepoFile );
+<a name="143" href="#143">143</a>             <strong class="jxr_keyword">try</strong>
+<a name="144" href="#144">144</a>             {
+<a name="145" href="#145">145</a>                 dmh.writeRepository( repository, writer );
+<a name="146" href="#146">146</a>             }
+<a name="147" href="#147">147</a>             <strong class="jxr_keyword">finally</strong>
+<a name="148" href="#148">148</a>             {
+<a name="149" href="#149">149</a>                 writer.close();
+<a name="150" href="#150">150</a>             }
+<a name="151" href="#151">151</a>         }
+<a name="152" href="#152">152</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="153" href="#153">153</a>         {
+<a name="154" href="#154">154</a>             log.warn( <span class="jxr_string">"Exception while updating local OBR: "</span> + e.getLocalizedMessage(), e );
+<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> 
+<a name="159" href="#159">159</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> doTemplate( URI root, File path, ResourceImpl resource ) <strong class="jxr_keyword">throws</strong> IOException, URISyntaxException
+<a name="160" href="#160">160</a>     {
+<a name="161" href="#161">161</a>         path = path.getAbsoluteFile().getCanonicalFile();
+<a name="162" href="#162">162</a>         String finalUri = root.relativize( path.toURI() ).toString();
+<a name="163" href="#163">163</a>         <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"maven"</span>.equals( urlTemplate ) )
+<a name="164" href="#164">164</a>         {
+<a name="165" href="#165">165</a>             String dir = root.relativize( path.toURI() ).toString();
+<a name="166" href="#166">166</a>             String[] p = dir.split( <span class="jxr_string">"/"</span> );
+<a name="167" href="#167">167</a>             <strong class="jxr_keyword">if</strong> ( p.length &gt;= 4 &amp;&amp; p[p.length - 1].startsWith( p[p.length - 3] + <span class="jxr_string">"-"</span> + p[p.length - 2] ) )
+<a name="168" href="#168">168</a>             {
+<a name="169" href="#169">169</a>                 String artifactId = p[p.length - 3];
+<a name="170" href="#170">170</a>                 String version = p[p.length - 2];
+<a name="171" href="#171">171</a>                 String classifier;
+<a name="172" href="#172">172</a>                 String type;
+<a name="173" href="#173">173</a>                 String artifactIdVersion = artifactId + <span class="jxr_string">"-"</span> + version;
+<a name="174" href="#174">174</a>                 StringBuffer sb = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="175" href="#175">175</a>                 <strong class="jxr_keyword">if</strong> ( p[p.length - 1].charAt( artifactIdVersion.length() ) == '-' )
+<a name="176" href="#176">176</a>                 {
+<a name="177" href="#177">177</a>                     classifier = p[p.length - 1].substring( artifactIdVersion.length() + 1,
+<a name="178" href="#178">178</a>                         p[p.length - 1].lastIndexOf( '.' ) );
+<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>                     classifier = <strong class="jxr_keyword">null</strong>;
+<a name="183" href="#183">183</a>                 }
+<a name="184" href="#184">184</a>                 type = p[p.length - 1].substring( p[p.length - 1].lastIndexOf( '.' ) + 1 );
+<a name="185" href="#185">185</a>                 sb.append( <span class="jxr_string">"mvn:"</span> );
+<a name="186" href="#186">186</a>                 <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> j = 0; j &lt; p.length - 3; j++ )
+<a name="187" href="#187">187</a>                 {
+<a name="188" href="#188">188</a>                     <strong class="jxr_keyword">if</strong> ( j &gt; 0 )
+<a name="189" href="#189">189</a>                     {
+<a name="190" href="#190">190</a>                         sb.append( '.' );
+<a name="191" href="#191">191</a>                     }
+<a name="192" href="#192">192</a>                     sb.append( p[j] );
+<a name="193" href="#193">193</a>                 }
+<a name="194" href="#194">194</a>                 sb.append( '/' ).append( artifactId ).append( '/' ).append( version );
+<a name="195" href="#195">195</a>                 <strong class="jxr_keyword">if</strong> ( !<span class="jxr_string">"jar"</span>.equals( type ) || classifier != <strong class="jxr_keyword">null</strong> )
+<a name="196" href="#196">196</a>                 {
+<a name="197" href="#197">197</a>                     sb.append( '/' );
+<a name="198" href="#198">198</a>                     <strong class="jxr_keyword">if</strong> ( !<span class="jxr_string">"jar"</span>.equals( type ) )
+<a name="199" href="#199">199</a>                     {
+<a name="200" href="#200">200</a>                         sb.append( type );
+<a name="201" href="#201">201</a>                     }
+<a name="202" href="#202">202</a>                     <strong class="jxr_keyword">if</strong> ( classifier != <strong class="jxr_keyword">null</strong> )
+<a name="203" href="#203">203</a>                     {
+<a name="204" href="#204">204</a>                         sb.append( '/' ).append( classifier );
+<a name="205" href="#205">205</a>                     }
+<a name="206" href="#206">206</a>                 }
+<a name="207" href="#207">207</a>                 finalUri = sb.toString();
+<a name="208" href="#208">208</a>             }
+<a name="209" href="#209">209</a>         }
+<a name="210" href="#210">210</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( urlTemplate != <strong class="jxr_keyword">null</strong> )
+<a name="211" href="#211">211</a>         {
+<a name="212" href="#212">212</a>             String dir = path.getParentFile().toURI().toURL().toString();
+<a name="213" href="#213">213</a>             <strong class="jxr_keyword">if</strong> ( dir.endsWith( <span class="jxr_string">"/"</span> ) )
+<a name="214" href="#214">214</a>                 dir = dir.substring( 0, dir.length() - 1 );
+<a name="215" href="#215">215</a> 
+<a name="216" href="#216">216</a>             <strong class="jxr_keyword">if</strong> ( dir.startsWith( root.toString() ) )
+<a name="217" href="#217">217</a>                 dir = dir.substring( root.toString().length() );
+<a name="218" href="#218">218</a> 
+<a name="219" href="#219">219</a>             String url = urlTemplate.replaceAll( <span class="jxr_string">"%v"</span>, <span class="jxr_string">""</span> + resource.getVersion() );
+<a name="220" href="#220">220</a>             url = url.replaceAll( <span class="jxr_string">"%s"</span>, resource.getSymbolicName() );
+<a name="221" href="#221">221</a>             url = url.replaceAll( <span class="jxr_string">"%f"</span>, path.getName() );
+<a name="222" href="#222">222</a>             url = url.replaceAll( <span class="jxr_string">"%p"</span>, dir );
+<a name="223" href="#223">223</a>             finalUri = url;
+<a name="224" href="#224">224</a>         }
+<a name="225" href="#225">225</a>         resource.put( Resource.URI, finalUri, Property.URI );
+<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">private</strong> <strong class="jxr_keyword">final</strong> FileFilter filter = <strong class="jxr_keyword">new</strong> FileFilter()
+<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> <strong class="jxr_keyword">boolean</strong> accept( File pathname )
+<a name="232" href="#232">232</a>         {
+<a name="233" href="#233">233</a>             <strong class="jxr_keyword">return</strong> pathname.getName().endsWith( <span class="jxr_string">"ar"</span> );
+<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>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> findAllJars( File mainRoot, List&lt;File&gt; files )
+<a name="239" href="#239">239</a>     {
+<a name="240" href="#240">240</a>         List&lt;File&gt; roots = <strong class="jxr_keyword">new</strong> ArrayList&lt;File&gt;();
+<a name="241" href="#241">241</a>         roots.add( mainRoot );
+<a name="242" href="#242">242</a>         <strong class="jxr_keyword">while</strong> ( !roots.isEmpty() )
+<a name="243" href="#243">243</a>         {
+<a name="244" href="#244">244</a>             File root = roots.remove( 0 );
+<a name="245" href="#245">245</a>             File[] children = root.listFiles();
+<a name="246" href="#246">246</a>             <strong class="jxr_keyword">if</strong> ( children != <strong class="jxr_keyword">null</strong> )
+<a name="247" href="#247">247</a>             {
+<a name="248" href="#248">248</a>                 <strong class="jxr_keyword">for</strong> ( File child : children )
+<a name="249" href="#249">249</a>                 {
+<a name="250" href="#250">250</a>                     <strong class="jxr_keyword">if</strong> ( child.isFile() &amp;&amp; filter.accept( child ) )
+<a name="251" href="#251">251</a>                     {
+<a name="252" href="#252">252</a>                         files.add( child );
+<a name="253" href="#253">253</a>                     }
+<a name="254" href="#254">254</a>                     <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( child.isDirectory() )
+<a name="255" href="#255">255</a>                     {
+<a name="256" href="#256">256</a>                         roots.add( child );
+<a name="257" href="#257">257</a>                     }
+<a name="258" href="#258">258</a>                 }
+<a name="259" href="#259">259</a>             }
+<a name="260" href="#260">260</a>         }
+<a name="261" href="#261">261</a>     }
+<a name="262" href="#262">262</a> 
+<a name="263" href="#263">263</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/ObrInstall.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrInstall.html
new file mode 100644
index 0000000..329a88a
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrInstall.html
@@ -0,0 +1,200 @@
+<!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>ObrInstall xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.net.URI;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="26" href="#26">26</a>  
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.repository.ArtifactRepository;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<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>
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * Installs bundle details in the local OBR repository (life-cycle goal)</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * @goal install</em>
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * @phase install</em>
+<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * @threadSafe</em>
+<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="44" href="#44">44</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/ObrInstall.html">ObrInstall</a> <strong class="jxr_keyword">extends</strong> AbstractMojo
+<a name="45" href="#45">45</a>  {
+<a name="46" href="#46">46</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">     * OBR Repository.</em>
+<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">     * @parameter expression="${obrRepository}"</em>
+<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="51" href="#51">51</a>      <strong class="jxr_keyword">private</strong> String obrRepository;
+<a name="52" href="#52">52</a>  
+<a name="53" href="#53">53</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     * Project types which this plugin supports.</em>
+<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> List supportedProjectTypes = Arrays.asList( <strong class="jxr_keyword">new</strong> String[]
+<a name="59" href="#59">59</a>          { <span class="jxr_string">"jar"</span>, <span class="jxr_string">"bundle"</span> } );
+<a name="60" href="#60">60</a>  
+<a name="61" href="#61">61</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * Local Repository.</em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     * @parameter expression="${localRepository}"</em>
+<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="68" href="#68">68</a>      <strong class="jxr_keyword">private</strong> ArtifactRepository localRepository;
+<a name="69" href="#69">69</a>  
+<a name="70" href="#70">70</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     * The Maven project.</em>
+<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     * @parameter expression="${project}"</em>
+<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="77" href="#77">77</a>      <strong class="jxr_keyword">private</strong> MavenProject project;
+<a name="78" href="#78">78</a>  
+<a name="79" href="#79">79</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     * @parameter expression="${project.attachedArtifacts}</em>
+<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="84" href="#84">84</a>      <strong class="jxr_keyword">private</strong> List attachedArtifacts;
+<a name="85" href="#85">85</a>  
+<a name="86" href="#86">86</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * Attached source artifact</em>
+<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="89" href="#89">89</a>      <strong class="jxr_keyword">private</strong> Artifact m_sourceArtifact;
+<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">     * Attached doc artifact</em>
+<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="94" href="#94">94</a>      <strong class="jxr_keyword">private</strong> Artifact m_docArtifact;
+<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">public</strong> <strong class="jxr_keyword">void</strong> execute()
+<a name="98" href="#98">98</a>      {
+<a name="99" href="#99">99</a>          String projectType = project.getPackaging();
+<a name="100" href="#100">100</a> 
+<a name="101" href="#101">101</a>         <em class="jxr_comment">// ignore unsupported project types, useful when bundleplugin is configured in parent pom</em>
+<a name="102" href="#102">102</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( projectType ) )
+<a name="103" href="#103">103</a>         {
+<a name="104" href="#104">104</a>             getLog().warn(
+<a name="105" href="#105">105</a>                 <span class="jxr_string">"Ignoring project type "</span> + projectType + <span class="jxr_string">" - supportedProjectTypes = "</span> + supportedProjectTypes );
+<a name="106" href="#106">106</a>             <strong class="jxr_keyword">return</strong>;
+<a name="107" href="#107">107</a>         }
+<a name="108" href="#108">108</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"NONE"</span>.equalsIgnoreCase( obrRepository ) || <span class="jxr_string">"false"</span>.equalsIgnoreCase( obrRepository ) )
+<a name="109" href="#109">109</a>         {
+<a name="110" href="#110">110</a>             getLog().info( <span class="jxr_string">"Local OBR update disabled (enable with -DobrRepository)"</span> );
+<a name="111" href="#111">111</a>             <strong class="jxr_keyword">return</strong>;
+<a name="112" href="#112">112</a>         }
+<a name="113" href="#113">113</a> 
+<a name="114" href="#114">114</a>         <em class="jxr_comment">// check for any attached sources or docs</em>
+<a name="115" href="#115">115</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = attachedArtifacts.iterator(); i.hasNext(); )
+<a name="116" href="#116">116</a>         {
+<a name="117" href="#117">117</a>             Artifact artifact = ( Artifact ) i.next();
+<a name="118" href="#118">118</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"sources"</span>.equals( artifact.getClassifier() ) )
+<a name="119" href="#119">119</a>             {
+<a name="120" href="#120">120</a>                 m_sourceArtifact = artifact;
+<a name="121" href="#121">121</a>             }
+<a name="122" href="#122">122</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"javadoc"</span>.equals( artifact.getClassifier() ) )
+<a name="123" href="#123">123</a>             {
+<a name="124" href="#124">124</a>                 m_docArtifact = artifact;
+<a name="125" href="#125">125</a>             }
+<a name="126" href="#126">126</a>         }
+<a name="127" href="#127">127</a> 
+<a name="128" href="#128">128</a>         Log log = getLog();
+<a name="129" href="#129">129</a>         <a href="../../../../org/apache/felix/obrplugin/ObrUpdate.html">ObrUpdate</a> update;
+<a name="130" href="#130">130</a> 
+<a name="131" href="#131">131</a>         <strong class="jxr_keyword">try</strong>
+<a name="132" href="#132">132</a>         {
+<a name="133" href="#133">133</a>             String mavenRepository = localRepository.getBasedir();
+<a name="134" href="#134">134</a> 
+<a name="135" href="#135">135</a>             URI repositoryXml = ObrUtils.findRepositoryXml( mavenRepository, obrRepository );
+<a name="136" href="#136">136</a>             URI obrXmlFile = ObrUtils.findObrXml( project );
+<a name="137" href="#137">137</a> 
+<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> }
+</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/ObrInstallFile.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrInstallFile.html
new file mode 100644
index 0000000..c2464d7
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrInstallFile.html
@@ -0,0 +1,127 @@
+<!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>ObrInstallFile xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.net.URI;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="25" href="#25">25</a>  
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.repository.ArtifactRepository;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="30" href="#30">30</a>  
+<a name="31" href="#31">31</a>  
+<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * Installs bundle details in the local OBR repository (command-line goal)</em>
+<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * @requiresProject false</em>
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * @goal install-file</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * @phase install</em>
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="41" href="#41">41</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/ObrInstallFile.html">ObrInstallFile</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/obrplugin/AbstractFileMojo.html">AbstractFileMojo</a>
+<a name="42" href="#42">42</a>  {
+<a name="43" href="#43">43</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment">     * OBR Repository.</em>
+<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment">     * @parameter expression="${obrRepository}"</em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="48" href="#48">48</a>      <strong class="jxr_keyword">private</strong> String obrRepository;
+<a name="49" href="#49">49</a>  
+<a name="50" href="#50">50</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">     * Project types which this plugin supports.</em>
+<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> List supportedProjectTypes = Arrays.asList( <strong class="jxr_keyword">new</strong> String[]
+<a name="56" href="#56">56</a>          { <span class="jxr_string">"jar"</span>, <span class="jxr_string">"bundle"</span> } );
+<a name="57" href="#57">57</a>  
+<a name="58" href="#58">58</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment">     * Local Repository.</em>
+<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     * @parameter expression="${localRepository}"</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> ArtifactRepository localRepository;
+<a name="66" href="#66">66</a>  
+<a name="67" href="#67">67</a>  
+<a name="68" href="#68">68</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="69" href="#69">69</a>      {
+<a name="70" href="#70">70</a>          MavenProject project = getProject();
+<a name="71" href="#71">71</a>          String projectType = project.getPackaging();
+<a name="72" href="#72">72</a>  
+<a name="73" href="#73">73</a>          <em class="jxr_comment">// ignore unsupported project types, useful when bundleplugin is configured in parent pom</em>
+<a name="74" href="#74">74</a>          <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( projectType ) )
+<a name="75" href="#75">75</a>          {
+<a name="76" href="#76">76</a>              getLog().warn(
+<a name="77" href="#77">77</a>                  <span class="jxr_string">"Ignoring project type "</span> + projectType + <span class="jxr_string">" - supportedProjectTypes = "</span> + supportedProjectTypes );
+<a name="78" href="#78">78</a>              <strong class="jxr_keyword">return</strong>;
+<a name="79" href="#79">79</a>          }
+<a name="80" href="#80">80</a>          <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"NONE"</span>.equalsIgnoreCase( obrRepository ) || <span class="jxr_string">"false"</span>.equalsIgnoreCase( obrRepository ) )
+<a name="81" href="#81">81</a>          {
+<a name="82" href="#82">82</a>              getLog().info( <span class="jxr_string">"Local OBR update disabled (enable with -DobrRepository)"</span> );
+<a name="83" href="#83">83</a>              <strong class="jxr_keyword">return</strong>;
+<a name="84" href="#84">84</a>          }
+<a name="85" href="#85">85</a>  
+<a name="86" href="#86">86</a>          Log log = getLog();
+<a name="87" href="#87">87</a>          <a href="../../../../org/apache/felix/obrplugin/ObrUpdate.html">ObrUpdate</a> update;
+<a name="88" href="#88">88</a>  
+<a name="89" href="#89">89</a>          String mavenRepository = localRepository.getBasedir();
+<a name="90" href="#90">90</a>  
+<a name="91" href="#91">91</a>          URI repositoryXml = ObrUtils.findRepositoryXml( mavenRepository, obrRepository );
+<a name="92" href="#92">92</a>          URI obrXmlFile = ObrUtils.toFileURI( obrXml );
+<a name="93" href="#93">93</a>          URI bundleJar;
+<a name="94" href="#94">94</a>  
+<a name="95" href="#95">95</a>          <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == file )
+<a name="96" href="#96">96</a>          {
+<a name="97" href="#97">97</a>              bundleJar = ObrUtils.getArtifactURI( localRepository, project.getArtifact() );
+<a name="98" href="#98">98</a>          }
+<a name="99" href="#99">99</a>          <strong class="jxr_keyword">else</strong>
+<a name="100" href="#100">100</a>         {
+<a name="101" href="#101">101</a>             bundleJar = file.toURI();
+<a name="102" href="#102">102</a>         }
+<a name="103" href="#103">103</a> 
+<a name="104" href="#104">104</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="105" href="#105">105</a> 
+<a name="106" href="#106">106</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="107" href="#107">107</a>         update.parseRepositoryXml();
+<a name="108" href="#108">108</a> 
+<a name="109" href="#109">109</a>         update.updateRepository( bundleJar, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> );
+<a name="110" href="#110">110</a> 
+<a name="111" href="#111">111</a>         update.writeRepositoryXml();
+<a name="112" href="#112">112</a>     }
+<a name="113" href="#113">113</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/ObrRemoteClean.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrRemoteClean.html
new file mode 100644
index 0000000..cdbd2db
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrRemoteClean.html
@@ -0,0 +1,504 @@
+<!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>ObrRemoteClean xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.BufferedReader;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.FileNotFoundException;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.FileOutputStream;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.io.InputStreamReader;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.net.MalformedURLException;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.net.URI;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.net.URL;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.text.SimpleDateFormat;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Matcher;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Pattern;
+<a name="39" href="#39">39</a>  
+<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilder;
+<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilderFactory;
+<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.ParserConfigurationException;
+<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.Result;
+<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.Transformer;
+<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.TransformerConfigurationException;
+<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.TransformerException;
+<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.TransformerFactory;
+<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.dom.DOMSource;
+<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.stream.StreamResult;
+<a name="50" href="#50">50</a>  
+<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.manager.WagonManager;
+<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.repository.ArtifactRepository;
+<a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<a name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
+<a name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.settings.Settings;
+<a name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Document;
+<a name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Element;
+<a name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Node;
+<a name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.NodeList;
+<a name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.xml.sax.SAXException;
+<a name="63" href="#63">63</a>  
+<a name="64" href="#64">64</a>  
+<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment"> * Clean a remote repository file.</em>
+<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment"> * It just looks for every resources and check that pointed file exists.</em>
+<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment"> * @requiresProject false</em>
+<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment"> * @goal remote-clean</em>
+<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment"> * @phase clean</em>
+<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&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> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/ObrRemoteClean.html">ObrRemoteClean</a> <strong class="jxr_keyword">extends</strong> AbstractMojo
+<a name="76" href="#76">76</a>  {
+<a name="77" href="#77">77</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     * When true, ignore remote locking.</em>
+<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     * @parameter expression="${ignoreLock}"</em>
+<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="82" href="#82">82</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> ignoreLock;
+<a name="83" href="#83">83</a>  
+<a name="84" href="#84">84</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment">     * Optional public URL prefix for the remote repository.</em>
+<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * @parameter expression="${prefixUrl}"</em>
+<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="89" href="#89">89</a>      <strong class="jxr_keyword">private</strong> String prefixUrl;
+<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">     * Remote OBR Repository.</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="${remoteOBR}" default-value="NONE"</em>
+<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="96" href="#96">96</a>      <strong class="jxr_keyword">private</strong> String remoteOBR;
+<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">     * Local OBR Repository.</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="${obrRepository}"</em>
+<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     */</em>
+<a name="103" href="#103">103</a>     <strong class="jxr_keyword">private</strong> String obrRepository;
+<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">     * Project types which this plugin supports.</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</em>
+<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     */</em>
+<a name="110" href="#110">110</a>     <strong class="jxr_keyword">private</strong> List supportedProjectTypes = Arrays.asList( <strong class="jxr_keyword">new</strong> String[]
+<a name="111" href="#111">111</a>         { <span class="jxr_string">"jar"</span>, <span class="jxr_string">"bundle"</span> } );
+<a name="112" href="#112">112</a> 
+<a name="113" href="#113">113</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="114" href="#114">114</a> <em class="jxr_javadoccomment">     * @parameter expression="${project.distributionManagementArtifactRepository}"</em>
+<a name="115" href="#115">115</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="116" href="#116">116</a> <em class="jxr_javadoccomment">     */</em>
+<a name="117" href="#117">117</a>     <strong class="jxr_keyword">private</strong> ArtifactRepository deploymentRepository;
+<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">     * Alternative deployment repository. Format: id::layout::url</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="${altDeploymentRepository}"</em>
+<a name="123" href="#123">123</a> <em class="jxr_javadoccomment">     */</em>
+<a name="124" href="#124">124</a>     <strong class="jxr_keyword">private</strong> String altDeploymentRepository;
+<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">     * OBR specific deployment repository. Format: id::layout::url</em>
+<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     *</em>
+<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">     * @parameter expression="${obrDeploymentRepository}"</em>
+<a name="130" href="#130">130</a> <em class="jxr_javadoccomment">     */</em>
+<a name="131" href="#131">131</a>     <strong class="jxr_keyword">private</strong> String obrDeploymentRepository;
+<a name="132" href="#132">132</a> 
+<a name="133" href="#133">133</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="134" href="#134">134</a> <em class="jxr_javadoccomment">     * The Maven project.</em>
+<a name="135" href="#135">135</a> <em class="jxr_javadoccomment">     * </em>
+<a name="136" href="#136">136</a> <em class="jxr_javadoccomment">     * @parameter expression="${project}"</em>
+<a name="137" href="#137">137</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="138" href="#138">138</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="139" href="#139">139</a> <em class="jxr_javadoccomment">     */</em>
+<a name="140" href="#140">140</a>     <strong class="jxr_keyword">private</strong> MavenProject project;
+<a name="141" href="#141">141</a> 
+<a name="142" href="#142">142</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="143" href="#143">143</a> <em class="jxr_javadoccomment">     * Local Maven settings.</em>
+<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     * </em>
+<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * @parameter expression="${settings}"</em>
+<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="147" href="#147">147</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">     */</em>
+<a name="149" href="#149">149</a>     <strong class="jxr_keyword">private</strong> Settings settings;
+<a name="150" href="#150">150</a> 
+<a name="151" href="#151">151</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="152" href="#152">152</a> <em class="jxr_javadoccomment">     * The Wagon manager.</em>
+<a name="153" href="#153">153</a> <em class="jxr_javadoccomment">     * </em>
+<a name="154" href="#154">154</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="155" href="#155">155</a> <em class="jxr_javadoccomment">     */</em>
+<a name="156" href="#156">156</a>     <strong class="jxr_keyword">private</strong> WagonManager m_wagonManager;
+<a name="157" href="#157">157</a> 
+<a name="158" href="#158">158</a> 
+<a name="159" href="#159">159</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="160" href="#160">160</a>     {
+<a name="161" href="#161">161</a>         String projectType = project.getPackaging();
+<a name="162" href="#162">162</a> 
+<a name="163" href="#163">163</a>         <em class="jxr_comment">// ignore unsupported project types, useful when bundleplugin is configured in parent pom</em>
+<a name="164" href="#164">164</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( projectType ) )
+<a name="165" href="#165">165</a>         {
+<a name="166" href="#166">166</a>             getLog().warn(
+<a name="167" href="#167">167</a>                 <span class="jxr_string">"Ignoring project type "</span> + projectType + <span class="jxr_string">" - supportedProjectTypes = "</span> + supportedProjectTypes );
+<a name="168" href="#168">168</a>             <strong class="jxr_keyword">return</strong>;
+<a name="169" href="#169">169</a>         }
+<a name="170" href="#170">170</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"NONE"</span>.equalsIgnoreCase( remoteOBR ) || <span class="jxr_string">"false"</span>.equalsIgnoreCase( remoteOBR ) )
+<a name="171" href="#171">171</a>         {
+<a name="172" href="#172">172</a>             getLog().info( <span class="jxr_string">"Remote OBR update disabled (enable with -DremoteOBR)"</span> );
+<a name="173" href="#173">173</a>             <strong class="jxr_keyword">return</strong>;
+<a name="174" href="#174">174</a>         }
+<a name="175" href="#175">175</a> 
+<a name="176" href="#176">176</a>         <em class="jxr_comment">// if the user doesn't supply an explicit name for the remote OBR file, use the local name instead</em>
+<a name="177" href="#177">177</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == remoteOBR || remoteOBR.trim().length() == 0 || <span class="jxr_string">"true"</span>.equalsIgnoreCase( remoteOBR ) )
+<a name="178" href="#178">178</a>         {
+<a name="179" href="#179">179</a>             remoteOBR = obrRepository;
+<a name="180" href="#180">180</a>         }
+<a name="181" href="#181">181</a> 
+<a name="182" href="#182">182</a>         URI tempURI = ObrUtils.findRepositoryXml( <span class="jxr_string">""</span>, remoteOBR );
+<a name="183" href="#183">183</a>         String repositoryName = <strong class="jxr_keyword">new</strong> File( tempURI.getSchemeSpecificPart() ).getName();
+<a name="184" href="#184">184</a> 
+<a name="185" href="#185">185</a>         Log log = getLog();
+<a name="186" href="#186">186</a> 
+<a name="187" href="#187">187</a>         <a href="../../../../org/apache/felix/obrplugin/RemoteFileManager.html">RemoteFileManager</a> remoteFile = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/obrplugin/RemoteFileManager.html">RemoteFileManager</a>( m_wagonManager, settings, log );
+<a name="188" href="#188">188</a>         openRepositoryConnection( remoteFile );
+<a name="189" href="#189">189</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == prefixUrl )
+<a name="190" href="#190">190</a>         {
+<a name="191" href="#191">191</a>             prefixUrl = remoteFile.toString();
+<a name="192" href="#192">192</a>         }
+<a name="193" href="#193">193</a> 
+<a name="194" href="#194">194</a>         <em class="jxr_comment">// ======== LOCK REMOTE OBR ========</em>
+<a name="195" href="#195">195</a>         log.info( <span class="jxr_string">"LOCK "</span> + remoteFile + '/' + repositoryName );
+<a name="196" href="#196">196</a>         remoteFile.lockFile( repositoryName, ignoreLock );
+<a name="197" href="#197">197</a>         File downloadedRepositoryXml = <strong class="jxr_keyword">null</strong>;
+<a name="198" href="#198">198</a> 
+<a name="199" href="#199">199</a>         <strong class="jxr_keyword">try</strong>
+<a name="200" href="#200">200</a>         {
+<a name="201" href="#201">201</a>             <em class="jxr_comment">// ======== DOWNLOAD REMOTE OBR ========</em>
+<a name="202" href="#202">202</a>             log.info( <span class="jxr_string">"Downloading "</span> + repositoryName );
+<a name="203" href="#203">203</a>             downloadedRepositoryXml = remoteFile.get( repositoryName, <span class="jxr_string">".xml"</span> );
+<a name="204" href="#204">204</a> 
+<a name="205" href="#205">205</a>             URI repositoryXml = downloadedRepositoryXml.toURI();
+<a name="206" href="#206">206</a> 
+<a name="207" href="#207">207</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="208" href="#208">208</a>             userConfig.setRemoteFile( <strong class="jxr_keyword">true</strong> );
+<a name="209" href="#209">209</a> 
+<a name="210" href="#210">210</a>             <em class="jxr_comment">// Clean the downloaded file.</em>
+<a name="211" href="#211">211</a>             Document doc = parseFile( <strong class="jxr_keyword">new</strong> File( repositoryXml ), initConstructor() );
+<a name="212" href="#212">212</a>             Node finalDocument = cleanDocument( doc.getDocumentElement() );
+<a name="213" href="#213">213</a> 
+<a name="214" href="#214">214</a>             <strong class="jxr_keyword">if</strong> ( finalDocument == <strong class="jxr_keyword">null</strong> )
+<a name="215" href="#215">215</a>             {
+<a name="216" href="#216">216</a>                 getLog().info( <span class="jxr_string">"Nothing to clean in "</span> + repositoryName );
+<a name="217" href="#217">217</a>             }
+<a name="218" href="#218">218</a>             <strong class="jxr_keyword">else</strong>
+<a name="219" href="#219">219</a>             {
+<a name="220" href="#220">220</a>                 writeToFile( repositoryXml, finalDocument ); <em class="jxr_comment">// Write the new file</em>
+<a name="221" href="#221">221</a>                 getLog().info( <span class="jxr_string">"Repository "</span> + repositoryName + <span class="jxr_string">" cleaned"</span> );
+<a name="222" href="#222">222</a>                 <em class="jxr_comment">// ======== UPLOAD MODIFIED OBR ========</em>
+<a name="223" href="#223">223</a>                 log.info( <span class="jxr_string">"Uploading "</span> + repositoryName );
+<a name="224" href="#224">224</a>                 remoteFile.put( downloadedRepositoryXml, repositoryName );
+<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">catch</strong> ( Exception e )
+<a name="228" href="#228">228</a>         {
+<a name="229" href="#229">229</a>             log.warn( <span class="jxr_string">"Exception while updating remote OBR: "</span> + e.getLocalizedMessage(), e );
+<a name="230" href="#230">230</a>         }
+<a name="231" href="#231">231</a>         <strong class="jxr_keyword">finally</strong>
+<a name="232" href="#232">232</a>         {
+<a name="233" href="#233">233</a>             <em class="jxr_comment">// ======== UNLOCK REMOTE OBR ========</em>
+<a name="234" href="#234">234</a>             log.info( <span class="jxr_string">"UNLOCK "</span> + remoteFile + '/' + repositoryName );
+<a name="235" href="#235">235</a>             remoteFile.unlockFile( repositoryName );
+<a name="236" href="#236">236</a>             remoteFile.disconnect();
+<a name="237" href="#237">237</a> 
+<a name="238" href="#238">238</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != downloadedRepositoryXml )
+<a name="239" href="#239">239</a>             {
+<a name="240" href="#240">240</a>                 downloadedRepositoryXml.delete();
+<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">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Pattern ALT_REPO_SYNTAX_PATTERN = Pattern.compile( <span class="jxr_string">"(.+)::(.+)::(.+)"</span> );
+<a name="246" href="#246">246</a> 
+<a name="247" href="#247">247</a> 
+<a name="248" href="#248">248</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> openRepositoryConnection( RemoteFileManager remoteFile ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="249" href="#249">249</a>     {
+<a name="250" href="#250">250</a>         <em class="jxr_comment">// use OBR specific deployment location?</em>
+<a name="251" href="#251">251</a>         <strong class="jxr_keyword">if</strong> ( obrDeploymentRepository != <strong class="jxr_keyword">null</strong> )
+<a name="252" href="#252">252</a>         {
+<a name="253" href="#253">253</a>             altDeploymentRepository = obrDeploymentRepository;
+<a name="254" href="#254">254</a>         }
+<a name="255" href="#255">255</a> 
+<a name="256" href="#256">256</a>         <strong class="jxr_keyword">if</strong> ( deploymentRepository == <strong class="jxr_keyword">null</strong> &amp;&amp; altDeploymentRepository == <strong class="jxr_keyword">null</strong> )
+<a name="257" href="#257">257</a>         {
+<a name="258" href="#258">258</a>             String msg = <span class="jxr_string">"Deployment failed: repository element was not specified in the pom inside"</span>
+<a name="259" href="#259">259</a>                 + <span class="jxr_string">" distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter"</span>;
+<a name="260" href="#260">260</a> 
+<a name="261" href="#261">261</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( msg );
+<a name="262" href="#262">262</a>         }
+<a name="263" href="#263">263</a> 
+<a name="264" href="#264">264</a>         <strong class="jxr_keyword">if</strong> ( altDeploymentRepository != <strong class="jxr_keyword">null</strong> )
+<a name="265" href="#265">265</a>         {
+<a name="266" href="#266">266</a>             getLog().info( <span class="jxr_string">"Using alternate deployment repository "</span> + altDeploymentRepository );
+<a name="267" href="#267">267</a> 
+<a name="268" href="#268">268</a>             Matcher matcher = ALT_REPO_SYNTAX_PATTERN.matcher( altDeploymentRepository );
+<a name="269" href="#269">269</a>             <strong class="jxr_keyword">if</strong> ( !matcher.matches() )
+<a name="270" href="#270">270</a>             {
+<a name="271" href="#271">271</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Invalid syntax for alternative repository \&quot;"</span>
+<a name="272" href="#272">272</a>                     + altDeploymentRepository + <span class="jxr_string">"\&quot;. Use \&quot;id::layout::url\&quot;."</span> );
+<a name="273" href="#273">273</a>             }
+<a name="274" href="#274">274</a> 
+<a name="275" href="#275">275</a>             remoteFile.connect( matcher.group( 1 ).trim(), matcher.group( 3 ).trim() );
+<a name="276" href="#276">276</a>         }
+<a name="277" href="#277">277</a>         <strong class="jxr_keyword">else</strong>
+<a name="278" href="#278">278</a>         {
+<a name="279" href="#279">279</a>             remoteFile.connect( deploymentRepository.getId(), deploymentRepository.getUrl() );
+<a name="280" href="#280">280</a>         }
+<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>     <em class="jxr_javadoccomment">/**</em>
+<a name="285" href="#285">285</a> <em class="jxr_javadoccomment">     * Analyze the given XML tree (DOM of the repository file) and remove missing resources.</em>
+<a name="286" href="#286">286</a> <em class="jxr_javadoccomment">     * This method ask the user before deleting the resources from the repository.</em>
+<a name="287" href="#287">287</a> <em class="jxr_javadoccomment">     * @param elem : the input XML tree</em>
+<a name="288" href="#288">288</a> <em class="jxr_javadoccomment">     * @return the cleaned XML tree</em>
+<a name="289" href="#289">289</a> <em class="jxr_javadoccomment">     */</em>
+<a name="290" href="#290">290</a>     <strong class="jxr_keyword">private</strong> Element cleanDocument( Element elem )
+<a name="291" href="#291">291</a>     {
+<a name="292" href="#292">292</a>         NodeList nodes = elem.getElementsByTagName( <span class="jxr_string">"resource"</span> );
+<a name="293" href="#293">293</a>         List toRemove = <strong class="jxr_keyword">new</strong> ArrayList();
+<a name="294" href="#294">294</a> 
+<a name="295" href="#295">295</a>         <em class="jxr_comment">// First, look for missing resources</em>
+<a name="296" href="#296">296</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; nodes.getLength(); i++ )
+<a name="297" href="#297">297</a>         {
+<a name="298" href="#298">298</a>             Element n = ( Element ) nodes.item( i );
+<a name="299" href="#299">299</a>             String value = n.getAttribute( <span class="jxr_string">"uri"</span> );
+<a name="300" href="#300">300</a> 
+<a name="301" href="#301">301</a>             URL url;
+<a name="302" href="#302">302</a>             <strong class="jxr_keyword">try</strong>
+<a name="303" href="#303">303</a>             {
+<a name="304" href="#304">304</a>                 url = <strong class="jxr_keyword">new</strong> URL( <strong class="jxr_keyword">new</strong> URL( prefixUrl + '/' ), value );
+<a name="305" href="#305">305</a>             }
+<a name="306" href="#306">306</a>             <strong class="jxr_keyword">catch</strong> ( MalformedURLException e )
+<a name="307" href="#307">307</a>             {
+<a name="308" href="#308">308</a>                 getLog().error( <span class="jxr_string">"Malformed URL when creating the resource absolute URI : "</span> + e.getMessage() );
+<a name="309" href="#309">309</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="310" href="#310">310</a>             }
+<a name="311" href="#311">311</a> 
+<a name="312" href="#312">312</a>             <strong class="jxr_keyword">try</strong>
+<a name="313" href="#313">313</a>             {
+<a name="314" href="#314">314</a>                 url.openConnection().getContent();
+<a name="315" href="#315">315</a>             }
+<a name="316" href="#316">316</a>             <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="317" href="#317">317</a>             {
+<a name="318" href="#318">318</a>                 getLog().info(
+<a name="319" href="#319">319</a>                     <span class="jxr_string">"The bundle "</span> + n.getAttribute( <span class="jxr_string">"presentationname"</span> ) + <span class="jxr_string">" - "</span> + n.getAttribute( <span class="jxr_string">"version"</span> )
+<a name="320" href="#320">320</a>                         + <span class="jxr_string">" will be removed : "</span> + e.getMessage() );
+<a name="321" href="#321">321</a>                 toRemove.add( n );
+<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>         Date d = <strong class="jxr_keyword">new</strong> Date();
+<a name="326" href="#326">326</a>         <strong class="jxr_keyword">if</strong> ( toRemove.size() &gt; 0 )
+<a name="327" href="#327">327</a>         {
+<a name="328" href="#328">328</a>             System.out.println( <span class="jxr_string">"Do you want to remove these bundles from the repository file [y/N]:"</span> );
+<a name="329" href="#329">329</a>             BufferedReader br = <strong class="jxr_keyword">new</strong> BufferedReader( <strong class="jxr_keyword">new</strong> InputStreamReader( System.in ) );
+<a name="330" href="#330">330</a>             String answer = <strong class="jxr_keyword">null</strong>;
+<a name="331" href="#331">331</a> 
+<a name="332" href="#332">332</a>             <strong class="jxr_keyword">try</strong>
+<a name="333" href="#333">333</a>             {
+<a name="334" href="#334">334</a>                 answer = br.readLine();
+<a name="335" href="#335">335</a>             }
+<a name="336" href="#336">336</a>             <strong class="jxr_keyword">catch</strong> ( IOException ioe )
+<a name="337" href="#337">337</a>             {
+<a name="338" href="#338">338</a>                 getLog().error( <span class="jxr_string">"IO error trying to read the user confirmation"</span> );
+<a name="339" href="#339">339</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="340" href="#340">340</a>             }
+<a name="341" href="#341">341</a> 
+<a name="342" href="#342">342</a>             <strong class="jxr_keyword">if</strong> ( answer != <strong class="jxr_keyword">null</strong> &amp;&amp; answer.trim().equalsIgnoreCase( <span class="jxr_string">"y"</span> ) )
+<a name="343" href="#343">343</a>             {
+<a name="344" href="#344">344</a>                 <em class="jxr_comment">// Then remove missing resources.</em>
+<a name="345" href="#345">345</a>                 <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; toRemove.size(); i++ )
+<a name="346" href="#346">346</a>                 {
+<a name="347" href="#347">347</a>                     elem.removeChild( ( Node ) toRemove.get( i ) );
+<a name="348" href="#348">348</a>                 }
+<a name="349" href="#349">349</a> 
+<a name="350" href="#350">350</a>                 <em class="jxr_comment">// If we have to remove resources, we need to update 'lastmodified' attribute</em>
+<a name="351" href="#351">351</a>                 SimpleDateFormat format = <strong class="jxr_keyword">new</strong> SimpleDateFormat( <span class="jxr_string">"yyyyMMddHHmmss.SSS"</span> );
+<a name="352" href="#352">352</a>                 d.setTime( System.currentTimeMillis() );
+<a name="353" href="#353">353</a>                 elem.setAttribute( <span class="jxr_string">"lastmodified"</span>, format.format( d ) );
+<a name="354" href="#354">354</a>                 <strong class="jxr_keyword">return</strong> elem;
+<a name="355" href="#355">355</a>             }
+<a name="356" href="#356">356</a>             <strong class="jxr_keyword">else</strong>
+<a name="357" href="#357">357</a>             {
+<a name="358" href="#358">358</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="359" href="#359">359</a>             }
+<a name="360" href="#360">360</a>         }
+<a name="361" href="#361">361</a> 
+<a name="362" href="#362">362</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="363" href="#363">363</a>     }
+<a name="364" href="#364">364</a> 
+<a name="365" href="#365">365</a> 
+<a name="366" href="#366">366</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="367" href="#367">367</a> <em class="jxr_javadoccomment">     * Initialize the document builder from Xerces.</em>
+<a name="368" href="#368">368</a> <em class="jxr_javadoccomment">     * </em>
+<a name="369" href="#369">369</a> <em class="jxr_javadoccomment">     * @return DocumentBuilder ready to create new document</em>
+<a name="370" href="#370">370</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException : occurs when the instantiation of the document builder fails</em>
+<a name="371" href="#371">371</a> <em class="jxr_javadoccomment">     */</em>
+<a name="372" href="#372">372</a>     <strong class="jxr_keyword">private</strong> DocumentBuilder initConstructor() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="373" href="#373">373</a>     {
+<a name="374" href="#374">374</a>         DocumentBuilder constructor = <strong class="jxr_keyword">null</strong>;
+<a name="375" href="#375">375</a>         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+<a name="376" href="#376">376</a>         <strong class="jxr_keyword">try</strong>
+<a name="377" href="#377">377</a>         {
+<a name="378" href="#378">378</a>             constructor = factory.newDocumentBuilder();
+<a name="379" href="#379">379</a>         }
+<a name="380" href="#380">380</a>         <strong class="jxr_keyword">catch</strong> ( ParserConfigurationException e )
+<a name="381" href="#381">381</a>         {
+<a name="382" href="#382">382</a>             getLog().error( <span class="jxr_string">"Unable to create a new xml document"</span> );
+<a name="383" href="#383">383</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Cannot create the Document Builder : "</span> + e.getMessage() );
+<a name="384" href="#384">384</a>         }
+<a name="385" href="#385">385</a>         <strong class="jxr_keyword">return</strong> constructor;
+<a name="386" href="#386">386</a>     }
+<a name="387" href="#387">387</a> 
+<a name="388" href="#388">388</a> 
+<a name="389" href="#389">389</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="390" href="#390">390</a> <em class="jxr_javadoccomment">     * Open an XML file.</em>
+<a name="391" href="#391">391</a> <em class="jxr_javadoccomment">     * </em>
+<a name="392" href="#392">392</a> <em class="jxr_javadoccomment">     * @param file : XML file</em>
+<a name="393" href="#393">393</a> <em class="jxr_javadoccomment">     * @param constructor DocumentBuilder get from xerces</em>
+<a name="394" href="#394">394</a> <em class="jxr_javadoccomment">     * @return Document which describes this file</em>
+<a name="395" href="#395">395</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException occurs when the given file cannot be opened or is a valid XML file.</em>
+<a name="396" href="#396">396</a> <em class="jxr_javadoccomment">     */</em>
+<a name="397" href="#397">397</a>     <strong class="jxr_keyword">private</strong> Document parseFile( File file, DocumentBuilder constructor ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="398" href="#398">398</a>     {
+<a name="399" href="#399">399</a>         <strong class="jxr_keyword">if</strong> ( constructor == <strong class="jxr_keyword">null</strong> )
+<a name="400" href="#400">400</a>         {
+<a name="401" href="#401">401</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="402" href="#402">402</a>         }
+<a name="403" href="#403">403</a>         <em class="jxr_comment">// The document is the root of the DOM tree.</em>
+<a name="404" href="#404">404</a>         File targetFile = file.getAbsoluteFile();
+<a name="405" href="#405">405</a>         getLog().info( <span class="jxr_string">"Parsing "</span> + targetFile );
+<a name="406" href="#406">406</a>         Document doc = <strong class="jxr_keyword">null</strong>;
+<a name="407" href="#407">407</a>         <strong class="jxr_keyword">try</strong>
+<a name="408" href="#408">408</a>         {
+<a name="409" href="#409">409</a>             doc = constructor.parse( targetFile );
+<a name="410" href="#410">410</a>         }
+<a name="411" href="#411">411</a>         <strong class="jxr_keyword">catch</strong> ( SAXException e )
+<a name="412" href="#412">412</a>         {
+<a name="413" href="#413">413</a>             getLog().error( <span class="jxr_string">"Cannot parse "</span> + targetFile + <span class="jxr_string">" : "</span> + e.getMessage() );
+<a name="414" href="#414">414</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Cannot parse "</span> + targetFile + <span class="jxr_string">" : "</span> + e.getMessage() );
+<a name="415" href="#415">415</a>         }
+<a name="416" href="#416">416</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="417" href="#417">417</a>         {
+<a name="418" href="#418">418</a>             getLog().error( <span class="jxr_string">"Cannot open "</span> + targetFile + <span class="jxr_string">" : "</span> + e.getMessage() );
+<a name="419" href="#419">419</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Cannot open "</span> + targetFile + <span class="jxr_string">" : "</span> + e.getMessage() );
+<a name="420" href="#420">420</a>         }
+<a name="421" href="#421">421</a>         <strong class="jxr_keyword">return</strong> doc;
+<a name="422" href="#422">422</a>     }
+<a name="423" href="#423">423</a> 
+<a name="424" href="#424">424</a> 
+<a name="425" href="#425">425</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="426" href="#426">426</a> <em class="jxr_javadoccomment">     * write a Node in a xml file.</em>
+<a name="427" href="#427">427</a> <em class="jxr_javadoccomment">     * </em>
+<a name="428" href="#428">428</a> <em class="jxr_javadoccomment">     * @param outputFilename URI to the output file</em>
+<a name="429" href="#429">429</a> <em class="jxr_javadoccomment">     * @param treeToBeWrite Node root of the tree to be write in file</em>
+<a name="430" href="#430">430</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException if the plugin failed</em>
+<a name="431" href="#431">431</a> <em class="jxr_javadoccomment">     */</em>
+<a name="432" href="#432">432</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeToFile( URI outputFilename, Node treeToBeWrite ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="433" href="#433">433</a>     {
+<a name="434" href="#434">434</a>         <em class="jxr_comment">// init the transformer</em>
+<a name="435" href="#435">435</a>         Transformer transformer = <strong class="jxr_keyword">null</strong>;
+<a name="436" href="#436">436</a>         TransformerFactory tfabrique = TransformerFactory.newInstance();
+<a name="437" href="#437">437</a>         <strong class="jxr_keyword">try</strong>
+<a name="438" href="#438">438</a>         {
+<a name="439" href="#439">439</a>             transformer = tfabrique.newTransformer();
+<a name="440" href="#440">440</a>         }
+<a name="441" href="#441">441</a>         <strong class="jxr_keyword">catch</strong> ( TransformerConfigurationException e )
+<a name="442" href="#442">442</a>         {
+<a name="443" href="#443">443</a>             getLog().error( <span class="jxr_string">"Unable to write to file: "</span> + outputFilename.toString() );
+<a name="444" href="#444">444</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to write to file: "</span> + outputFilename.toString() + <span class="jxr_string">" : "</span>
+<a name="445" href="#445">445</a>                 + e.getMessage() );
+<a name="446" href="#446">446</a>         }
+<a name="447" href="#447">447</a>         Properties proprietes = <strong class="jxr_keyword">new</strong> Properties();
+<a name="448" href="#448">448</a>         proprietes.put( <span class="jxr_string">"method"</span>, <span class="jxr_string">"xml"</span> );
+<a name="449" href="#449">449</a>         proprietes.put( <span class="jxr_string">"version"</span>, <span class="jxr_string">"1.0"</span> );
+<a name="450" href="#450">450</a>         proprietes.put( <span class="jxr_string">"encoding"</span>, <span class="jxr_string">"ISO-8859-1"</span> );
+<a name="451" href="#451">451</a>         proprietes.put( <span class="jxr_string">"standalone"</span>, <span class="jxr_string">"yes"</span> );
+<a name="452" href="#452">452</a>         proprietes.put( <span class="jxr_string">"indent"</span>, <span class="jxr_string">"yes"</span> );
+<a name="453" href="#453">453</a>         proprietes.put( <span class="jxr_string">"omit-xml-declaration"</span>, <span class="jxr_string">"no"</span> );
+<a name="454" href="#454">454</a>         transformer.setOutputProperties( proprietes );
+<a name="455" href="#455">455</a> 
+<a name="456" href="#456">456</a>         DOMSource input = <strong class="jxr_keyword">new</strong> DOMSource( treeToBeWrite );
+<a name="457" href="#457">457</a> 
+<a name="458" href="#458">458</a>         File fichier = <strong class="jxr_keyword">new</strong> File( outputFilename );
+<a name="459" href="#459">459</a>         FileOutputStream flux = <strong class="jxr_keyword">null</strong>;
+<a name="460" href="#460">460</a>         <strong class="jxr_keyword">try</strong>
+<a name="461" href="#461">461</a>         {
+<a name="462" href="#462">462</a>             flux = <strong class="jxr_keyword">new</strong> FileOutputStream( fichier );
+<a name="463" href="#463">463</a>         }
+<a name="464" href="#464">464</a>         <strong class="jxr_keyword">catch</strong> ( FileNotFoundException e )
+<a name="465" href="#465">465</a>         {
+<a name="466" href="#466">466</a>             getLog().error( <span class="jxr_string">"Unable to write to file: "</span> + fichier.getName() );
+<a name="467" href="#467">467</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to write to file: "</span> + fichier.getName() + <span class="jxr_string">" : "</span> + e.getMessage() );
+<a name="468" href="#468">468</a>         }
+<a name="469" href="#469">469</a>         Result output = <strong class="jxr_keyword">new</strong> StreamResult( flux );
+<a name="470" href="#470">470</a>         <strong class="jxr_keyword">try</strong>
+<a name="471" href="#471">471</a>         {
+<a name="472" href="#472">472</a>             transformer.transform( input, output );
+<a name="473" href="#473">473</a>         }
+<a name="474" href="#474">474</a>         <strong class="jxr_keyword">catch</strong> ( TransformerException e )
+<a name="475" href="#475">475</a>         {
+<a name="476" href="#476">476</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to write to file: "</span> + outputFilename.toString() + <span class="jxr_string">" : "</span>
+<a name="477" href="#477">477</a>                 + e.getMessage() );
+<a name="478" href="#478">478</a>         }
+<a name="479" href="#479">479</a> 
+<a name="480" href="#480">480</a>         <strong class="jxr_keyword">try</strong>
+<a name="481" href="#481">481</a>         {
+<a name="482" href="#482">482</a>             flux.flush();
+<a name="483" href="#483">483</a>             flux.close();
+<a name="484" href="#484">484</a>         }
+<a name="485" href="#485">485</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="486" href="#486">486</a>         {
+<a name="487" href="#487">487</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"IOException when closing file : "</span> + e.getMessage() );
+<a name="488" href="#488">488</a>         }
+<a name="489" href="#489">489</a>     }
+<a name="490" href="#490">490</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/ObrUpdate.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrUpdate.html
new file mode 100644
index 0000000..4c52dee
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrUpdate.html
@@ -0,0 +1,369 @@
+<!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>ObrUpdate xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*<em class="jxr_comment"> </em></em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<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>  <strong class="jxr_keyword">import</strong> java.io.FileInputStream;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.FileOutputStream;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.io.OutputStreamWriter;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.io.Writer;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.net.URI;
+<a name="30" href="#30">30</a>  
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.Resource;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.impl.DataModelHelperImpl;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.impl.PullParser;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.impl.RepositoryImpl;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.impl.RepositoryParser;
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.impl.ResourceImpl;
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
+<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.FileUtils;
+<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.kxml2.io.KXmlParser;
+<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.xmlpull.v1.XmlPullParser;
+<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>
+<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * this class parse the old repository.xml file build the bundle resource description and update the repository.</em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="49" href="#49">49</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/ObrUpdate.html">ObrUpdate</a>
+<a name="50" href="#50">50</a>  {
+<a name="51" href="#51">51</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment">     * logger for this plugin.</em>
+<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> Log m_logger;
+<a name="55" href="#55">55</a>  
+<a name="56" href="#56">56</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * name and path to the repository descriptor file.</em>
+<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> URI m_repositoryXml;
+<a name="60" href="#60">60</a>  
+<a name="61" href="#61">61</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * name and path to the obr.xml file.</em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> URI m_obrXml;
+<a name="65" href="#65">65</a>  
+<a name="66" href="#66">66</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     * maven project description.</em>
+<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> MavenProject m_project;
+<a name="70" href="#70">70</a>  
+<a name="71" href="#71">71</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     * user configuration information.</em>
+<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/felix/obrplugin/Config.html">Config</a> m_userConfig;
+<a name="75" href="#75">75</a>  
+<a name="76" href="#76">76</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     * root on parent document.</em>
+<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="79" href="#79">79</a>      <strong class="jxr_keyword">private</strong> RepositoryImpl m_repository;
+<a name="80" href="#80">80</a>  
+<a name="81" href="#81">81</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     * used to store bundle information.</em>
+<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="84" href="#84">84</a>      <strong class="jxr_keyword">private</strong> ResourceImpl m_resourceBundle;
+<a name="85" href="#85">85</a>  
+<a name="86" href="#86">86</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * base URI used to relativize bundle URIs.</em>
+<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="89" href="#89">89</a>      <strong class="jxr_keyword">private</strong> URI m_baseURI;
+<a name="90" href="#90">90</a>  
+<a name="91" href="#91">91</a>  
+<a name="92" href="#92">92</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     * initialize information.</em>
+<a name="94" href="#94">94</a>  <em class="jxr_javadoccomment">     * @param repositoryXml path to the repository descriptor file</em>
+<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     * @param obrXml path and filename to the obr.xml file</em>
+<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     * @param project maven project description</em>
+<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     * @param mavenRepositoryPath path to the local maven repository</em>
+<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     * @param userConfig user information</em>
+<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     * @param logger plugin logger</em>
+<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     */</em>
+<a name="101" href="#101">101</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/obrplugin/ObrUpdate.html">ObrUpdate</a>( URI repositoryXml, URI obrXml, MavenProject project, String mavenRepositoryPath,
+<a name="102" href="#102">102</a>         <a href="../../../../org/apache/felix/obrplugin/Config.html">Config</a> userConfig, Log logger )
+<a name="103" href="#103">103</a>     {
+<a name="104" href="#104">104</a>         m_repositoryXml = repositoryXml;
+<a name="105" href="#105">105</a>         m_obrXml = obrXml;
+<a name="106" href="#106">106</a>         m_project = project;
+<a name="107" href="#107">107</a>         m_logger = logger;
+<a name="108" href="#108">108</a> 
+<a name="109" href="#109">109</a>         m_userConfig = userConfig;
+<a name="110" href="#110">110</a> 
+<a name="111" href="#111">111</a>         <strong class="jxr_keyword">if</strong> ( userConfig.isRemoteFile() )
+<a name="112" href="#112">112</a>         {
+<a name="113" href="#113">113</a>             m_baseURI = ObrUtils.toFileURI( mavenRepositoryPath );
+<a name="114" href="#114">114</a>         }
+<a name="115" href="#115">115</a>         <strong class="jxr_keyword">else</strong>
+<a name="116" href="#116">116</a>         {
+<a name="117" href="#117">117</a>             m_baseURI = m_repositoryXml;
+<a name="118" href="#118">118</a>         }
+<a name="119" href="#119">119</a>     }
+<a name="120" href="#120">120</a> 
+<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">     * update the repository descriptor file. parse the old repository descriptor file,</em>
+<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">     * get the old reference of the bundle or determine the id for a new bundle, extract</em>
+<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">     * information from bindex set the new information in descriptor file and save it.</em>
+<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     * </em>
+<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     * @param bundleJar path to the bundle jar file</em>
+<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     * @param sourceJar path to the source jar file</em>
+<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">     * @param docJar path to the docs jar file</em>
+<a name="130" href="#130">130</a> <em class="jxr_javadoccomment">     * </em>
+<a name="131" href="#131">131</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException if the plugin failed</em>
+<a name="132" href="#132">132</a> <em class="jxr_javadoccomment">     */</em>
+<a name="133" href="#133">133</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateRepository( URI bundleJar, URI sourceJar, URI docJar ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="134" href="#134">134</a>     {
+<a name="135" href="#135">135</a>         m_logger.debug( <span class="jxr_string">" (f) repositoryXml = "</span> + m_repositoryXml );
+<a name="136" href="#136">136</a>         m_logger.debug( <span class="jxr_string">" (f) bundleJar = "</span> + bundleJar );
+<a name="137" href="#137">137</a>         m_logger.debug( <span class="jxr_string">" (f) sourceJar = "</span> + sourceJar );
+<a name="138" href="#138">138</a>         m_logger.debug( <span class="jxr_string">" (f) obrXml = "</span> + m_obrXml );
+<a name="139" href="#139">139</a> 
+<a name="140" href="#140">140</a>         <strong class="jxr_keyword">if</strong> ( m_repository == <strong class="jxr_keyword">null</strong> )
+<a name="141" href="#141">141</a>         {
+<a name="142" href="#142">142</a>             <strong class="jxr_keyword">return</strong>;
+<a name="143" href="#143">143</a>         }
+<a name="144" href="#144">144</a> 
+<a name="145" href="#145">145</a>         <em class="jxr_comment">// get the file size</em>
+<a name="146" href="#146">146</a>         File bundleFile = <strong class="jxr_keyword">new</strong> File( bundleJar );
+<a name="147" href="#147">147</a>         <strong class="jxr_keyword">if</strong> ( bundleFile.exists() )
+<a name="148" href="#148">148</a>         {
+<a name="149" href="#149">149</a>             URI resourceURI = m_userConfig.getRemoteBundle();
+<a name="150" href="#150">150</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == resourceURI )
+<a name="151" href="#151">151</a>             {
+<a name="152" href="#152">152</a>                 resourceURI = bundleJar;
+<a name="153" href="#153">153</a>                 <strong class="jxr_keyword">if</strong> ( m_userConfig.isPathRelative() )
+<a name="154" href="#154">154</a>                 {
+<a name="155" href="#155">155</a>                     resourceURI = ObrUtils.getRelativeURI( m_baseURI, resourceURI );
+<a name="156" href="#156">156</a>                 }
+<a name="157" href="#157">157</a>             }
+<a name="158" href="#158">158</a> 
+<a name="159" href="#159">159</a>             <strong class="jxr_keyword">if</strong> ( m_userConfig.isRemoteFile() )
+<a name="160" href="#160">160</a>             {
+<a name="161" href="#161">161</a>                 m_logger.info( <span class="jxr_string">"Deploying "</span> + resourceURI );
+<a name="162" href="#162">162</a>             }
+<a name="163" href="#163">163</a>             <strong class="jxr_keyword">else</strong>
+<a name="164" href="#164">164</a>             {
+<a name="165" href="#165">165</a>                 m_logger.info( <span class="jxr_string">"Installing "</span> + resourceURI );
+<a name="166" href="#166">166</a>             }
+<a name="167" href="#167">167</a> 
+<a name="168" href="#168">168</a>             <strong class="jxr_keyword">try</strong>
+<a name="169" href="#169">169</a>             {
+<a name="170" href="#170">170</a>                 m_resourceBundle = ( ResourceImpl ) <strong class="jxr_keyword">new</strong> DataModelHelperImpl().createResource( bundleJar.toURL() );
+<a name="171" href="#171">171</a>                 <strong class="jxr_keyword">if</strong> ( m_resourceBundle == <strong class="jxr_keyword">null</strong> )
+<a name="172" href="#172">172</a>                 {
+<a name="173" href="#173">173</a>                     <strong class="jxr_keyword">return</strong>;
+<a name="174" href="#174">174</a>                 }
+<a name="175" href="#175">175</a>             }
+<a name="176" href="#176">176</a>             <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="177" href="#177">177</a>             {
+<a name="178" href="#178">178</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to load resource information"</span>, e );
+<a name="179" href="#179">179</a>             }
+<a name="180" href="#180">180</a> 
+<a name="181" href="#181">181</a>             m_resourceBundle.put( Resource.SIZE, String.valueOf( bundleFile.length() ) );
+<a name="182" href="#182">182</a>             m_resourceBundle.put( Resource.URI, resourceURI.toASCIIString() );
+<a name="183" href="#183">183</a>         }
+<a name="184" href="#184">184</a>         <strong class="jxr_keyword">else</strong>
+<a name="185" href="#185">185</a>         {
+<a name="186" href="#186">186</a>             m_logger.error( <span class="jxr_string">"file doesn't exist: "</span> + bundleJar );
+<a name="187" href="#187">187</a>             <strong class="jxr_keyword">return</strong>;
+<a name="188" href="#188">188</a>         }
+<a name="189" href="#189">189</a> 
+<a name="190" href="#190">190</a>         <em class="jxr_comment">// parse the obr.xml file</em>
+<a name="191" href="#191">191</a>         <strong class="jxr_keyword">if</strong> ( m_obrXml != <strong class="jxr_keyword">null</strong> )
+<a name="192" href="#192">192</a>         {
+<a name="193" href="#193">193</a>             m_logger.info( <span class="jxr_string">"Adding "</span> + m_obrXml );
+<a name="194" href="#194">194</a> 
+<a name="195" href="#195">195</a>             <em class="jxr_comment">// URL url = getClass().getResource("/SchemaObr.xsd");</em>
+<a name="196" href="#196">196</a>             <em class="jxr_comment">// TODO validate obr.xml file</em>
+<a name="197" href="#197">197</a> 
+<a name="198" href="#198">198</a>             <em class="jxr_comment">// add contents to resource bundle</em>
+<a name="199" href="#199">199</a>             parseObrXml();
+<a name="200" href="#200">200</a>         }
+<a name="201" href="#201">201</a> 
+<a name="202" href="#202">202</a>         String sourcePath = relativisePath( sourceJar );
+<a name="203" href="#203">203</a>         String docPath = relativisePath( docJar );
+<a name="204" href="#204">204</a> 
+<a name="205" href="#205">205</a>         <em class="jxr_comment">//        m_resourceBundle.construct( m_project, bindexExtractor, sourcePath, docPath );</em>
+<a name="206" href="#206">206</a>         <em class="jxr_comment">//         TODO: rebuild wrt m_project</em>
+<a name="207" href="#207">207</a> 
+<a name="208" href="#208">208</a>         m_repository.addResource( m_resourceBundle );
+<a name="209" href="#209">209</a>         m_repository.setLastModified( System.currentTimeMillis() );
+<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> String relativisePath( URI uri )
+<a name="214" href="#214">214</a>     {
+<a name="215" href="#215">215</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != uri )
+<a name="216" href="#216">216</a>         {
+<a name="217" href="#217">217</a>             <strong class="jxr_keyword">if</strong> ( m_userConfig.isPathRelative() )
+<a name="218" href="#218">218</a>             {
+<a name="219" href="#219">219</a>                 <strong class="jxr_keyword">return</strong> ObrUtils.getRelativeURI( m_baseURI, uri ).toASCIIString();
+<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">return</strong> uri.toASCIIString();
+<a name="223" href="#223">223</a>         }
+<a name="224" href="#224">224</a> 
+<a name="225" href="#225">225</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="226" href="#226">226</a>     }
+<a name="227" href="#227">227</a> 
+<a name="228" href="#228">228</a> 
+<a name="229" href="#229">229</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> writeRepositoryXml() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="230" href="#230">230</a>     {
+<a name="231" href="#231">231</a>         m_logger.info( <span class="jxr_string">"Writing OBR metadata"</span> );
+<a name="232" href="#232">232</a> 
+<a name="233" href="#233">233</a>         File file = <strong class="jxr_keyword">null</strong>;
+<a name="234" href="#234">234</a>         Writer writer;
+<a name="235" href="#235">235</a>         <strong class="jxr_keyword">try</strong>
+<a name="236" href="#236">236</a>         {
+<a name="237" href="#237">237</a>             file = File.createTempFile( <span class="jxr_string">"repository"</span>, <span class="jxr_string">".xml"</span> );
+<a name="238" href="#238">238</a>             writer = <strong class="jxr_keyword">new</strong> OutputStreamWriter( <strong class="jxr_keyword">new</strong> FileOutputStream( file ) );
+<a name="239" href="#239">239</a>         }
+<a name="240" href="#240">240</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="241" href="#241">241</a>         {
+<a name="242" href="#242">242</a>             m_logger.error( <span class="jxr_string">"Unable to write to file: "</span> + file.getName() );
+<a name="243" href="#243">243</a>             e.printStackTrace();
+<a name="244" href="#244">244</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to write to file: "</span> + file.getName() + <span class="jxr_string">" : "</span> + e.getMessage() );
+<a name="245" href="#245">245</a>         }
+<a name="246" href="#246">246</a> 
+<a name="247" href="#247">247</a>         <strong class="jxr_keyword">try</strong>
+<a name="248" href="#248">248</a>         {
+<a name="249" href="#249">249</a>             <strong class="jxr_keyword">new</strong> DataModelHelperImpl().writeRepository( m_repository, writer );
+<a name="250" href="#250">250</a>         }
+<a name="251" href="#251">251</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="252" href="#252">252</a>         {
+<a name="253" href="#253">253</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to write repository xml"</span>, e );
+<a name="254" href="#254">254</a>         }
+<a name="255" href="#255">255</a> 
+<a name="256" href="#256">256</a>         <strong class="jxr_keyword">try</strong>
+<a name="257" href="#257">257</a>         {
+<a name="258" href="#258">258</a>             writer.flush();
+<a name="259" href="#259">259</a>             writer.close();
+<a name="260" href="#260">260</a> 
+<a name="261" href="#261">261</a>             File outputFile = <strong class="jxr_keyword">new</strong> File( m_repositoryXml );
+<a name="262" href="#262">262</a>             outputFile.getParentFile().mkdirs();
+<a name="263" href="#263">263</a>             FileUtils.rename( file, outputFile );
+<a name="264" href="#264">264</a>         }
+<a name="265" href="#265">265</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="266" href="#266">266</a>         {
+<a name="267" href="#267">267</a>             e.printStackTrace();
+<a name="268" href="#268">268</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"IOException"</span> );
+<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> 
+<a name="273" href="#273">273</a> 
+<a name="274" href="#274">274</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="275" href="#275">275</a> <em class="jxr_javadoccomment">      * Parse the repository descriptor file.</em>
+<a name="276" href="#276">276</a> <em class="jxr_javadoccomment">      *</em>
+<a name="277" href="#277">277</a> <em class="jxr_javadoccomment">      * @throws MojoExecutionException if the plugin failed</em>
+<a name="278" href="#278">278</a> <em class="jxr_javadoccomment">      */</em>
+<a name="279" href="#279">279</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> parseRepositoryXml() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="280" href="#280">280</a>     {
+<a name="281" href="#281">281</a>         File fout = <strong class="jxr_keyword">new</strong> File( m_repositoryXml );
+<a name="282" href="#282">282</a>         <strong class="jxr_keyword">if</strong> ( !fout.exists() )
+<a name="283" href="#283">283</a>         {
+<a name="284" href="#284">284</a>             m_repository = <strong class="jxr_keyword">new</strong> RepositoryImpl();
+<a name="285" href="#285">285</a>             writeRepositoryXml();
+<a name="286" href="#286">286</a>         }
+<a name="287" href="#287">287</a>         <strong class="jxr_keyword">else</strong>
+<a name="288" href="#288">288</a>         {
+<a name="289" href="#289">289</a>             <strong class="jxr_keyword">try</strong>
+<a name="290" href="#290">290</a>             {
+<a name="291" href="#291">291</a>                 m_repository = ( RepositoryImpl ) <strong class="jxr_keyword">new</strong> DataModelHelperImpl().repository( m_repositoryXml.toURL() );
+<a name="292" href="#292">292</a>             }
+<a name="293" href="#293">293</a>             <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="294" href="#294">294</a>             {
+<a name="295" href="#295">295</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to read repository xml: "</span> + m_repositoryXml, e );
+<a name="296" href="#296">296</a>             }
+<a name="297" href="#297">297</a>         }
+<a name="298" href="#298">298</a>     }
+<a name="299" href="#299">299</a> 
+<a name="300" href="#300">300</a> 
+<a name="301" href="#301">301</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="302" href="#302">302</a> <em class="jxr_javadoccomment">     * put the information from obr.xml into ressourceBundle object.</em>
+<a name="303" href="#303">303</a> <em class="jxr_javadoccomment">     */</em>
+<a name="304" href="#304">304</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> parseObrXml() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="305" href="#305">305</a>     {
+<a name="306" href="#306">306</a>         <strong class="jxr_keyword">try</strong>
+<a name="307" href="#307">307</a>         {
+<a name="308" href="#308">308</a>             InputStream is = <strong class="jxr_keyword">new</strong> FileInputStream( <strong class="jxr_keyword">new</strong> File( m_obrXml ) );
+<a name="309" href="#309">309</a>             <strong class="jxr_keyword">try</strong>
+<a name="310" href="#310">310</a>             {
+<a name="311" href="#311">311</a>                 KXmlParser kxp = <strong class="jxr_keyword">new</strong> KXmlParser();
+<a name="312" href="#312">312</a>                 kxp.setInput( is, <strong class="jxr_keyword">null</strong> );
+<a name="313" href="#313">313</a>                 kxp.nextTag(); <em class="jxr_comment">// skip top level element</em>
+<a name="314" href="#314">314</a>                 kxp.nextTag(); <em class="jxr_comment">// go to first child element</em>
+<a name="315" href="#315">315</a>                 parseObrXml( kxp );
+<a name="316" href="#316">316</a>             }
+<a name="317" href="#317">317</a>             <strong class="jxr_keyword">finally</strong>
+<a name="318" href="#318">318</a>             {
+<a name="319" href="#319">319</a>                 is.close();
+<a name="320" href="#320">320</a>             }
+<a name="321" href="#321">321</a>         }
+<a name="322" href="#322">322</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="323" href="#323">323</a>         {
+<a name="324" href="#324">324</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to parse obr xml: "</span> + m_obrXml, e );
+<a name="325" href="#325">325</a>         }
+<a name="326" href="#326">326</a>     }
+<a name="327" href="#327">327</a> 
+<a name="328" href="#328">328</a> 
+<a name="329" href="#329">329</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> parseObrXml( KXmlParser kxp ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="330" href="#330">330</a>     {
+<a name="331" href="#331">331</a>         PullParser parser = <strong class="jxr_keyword">new</strong> PullParser();
+<a name="332" href="#332">332</a>         <strong class="jxr_keyword">while</strong> ( kxp.getEventType() == XmlPullParser.START_TAG )
+<a name="333" href="#333">333</a>         {
+<a name="334" href="#334">334</a>             <strong class="jxr_keyword">if</strong> ( RepositoryParser.CATEGORY.equals( kxp.getName() ) )
+<a name="335" href="#335">335</a>             {
+<a name="336" href="#336">336</a>                 m_resourceBundle.addCategory( parser.parseCategory( kxp ) );
+<a name="337" href="#337">337</a>             }
+<a name="338" href="#338">338</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( RepositoryParser.REQUIRE.equals( kxp.getName() ) )
+<a name="339" href="#339">339</a>             {
+<a name="340" href="#340">340</a>                 m_resourceBundle.addRequire( parser.parseRequire( kxp ) );
+<a name="341" href="#341">341</a>             }
+<a name="342" href="#342">342</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( RepositoryParser.CAPABILITY.equals( kxp.getName() ) )
+<a name="343" href="#343">343</a>             {
+<a name="344" href="#344">344</a>                 m_resourceBundle.addCapability( parser.parseCapability( kxp ) );
+<a name="345" href="#345">345</a>             }
+<a name="346" href="#346">346</a>             <strong class="jxr_keyword">else</strong>
+<a name="347" href="#347">347</a>             {
+<a name="348" href="#348">348</a>                 kxp.nextTag();
+<a name="349" href="#349">349</a>                 parseObrXml( kxp );
+<a name="350" href="#350">350</a>             }
+<a name="351" href="#351">351</a>             kxp.nextTag();
+<a name="352" href="#352">352</a>         }
+<a name="353" href="#353">353</a>     }
+<a name="354" href="#354">354</a> 
+<a name="355" href="#355">355</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/ObrUtils.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrUtils.html
new file mode 100644
index 0000000..7e3cb55
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrUtils.html
@@ -0,0 +1,187 @@
+<!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>ObrUtils xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<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>  <strong class="jxr_keyword">import</strong> java.net.URI;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Pattern;
+<a name="26" href="#26">26</a>  
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.repository.ArtifactRepository;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Resource;
+<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>  
+<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * Various OBR utility methods</em>
+<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/ObrUtils.html">ObrUtils</a>
+<a name="39" href="#39">39</a>  {
+<a name="40" href="#40">40</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String DOT_XML = <span class="jxr_string">".xml"</span>;
+<a name="41" href="#41">41</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String REPO_XML = <span class="jxr_string">"repository.xml"</span>;
+<a name="42" href="#42">42</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String OBR_XML = <span class="jxr_string">"obr.xml"</span>;
+<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>
+<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment">     * @param mavenRepository path to local maven repository</em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">     * @param obrRepository path to specific repository.xml</em>
+<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment">     * @return URI pointing to correct repository.xml</em>
+<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="50" href="#50">50</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> URI findRepositoryXml( String mavenRepository, String obrRepository )
+<a name="51" href="#51">51</a>      {
+<a name="52" href="#52">52</a>          String targetPath = obrRepository;
+<a name="53" href="#53">53</a>  
+<a name="54" href="#54">54</a>          Pattern ignoredNames = Pattern.compile( <span class="jxr_string">"^(true|false|none|null)?$"</span>, Pattern.CASE_INSENSITIVE );
+<a name="55" href="#55">55</a>  
+<a name="56" href="#56">56</a>          <em class="jxr_comment">// Combine location settings into a single repository location</em>
+<a name="57" href="#57">57</a>          <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == targetPath || ignoredNames.matcher( targetPath ).matches() )
+<a name="58" href="#58">58</a>          {
+<a name="59" href="#59">59</a>              targetPath = mavenRepository + '/' + REPO_XML;
+<a name="60" href="#60">60</a>          }
+<a name="61" href="#61">61</a>          <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( !targetPath.toLowerCase().endsWith( DOT_XML ) )
+<a name="62" href="#62">62</a>          {
+<a name="63" href="#63">63</a>              targetPath = targetPath + '/' + REPO_XML;
+<a name="64" href="#64">64</a>          }
+<a name="65" href="#65">65</a>  
+<a name="66" href="#66">66</a>          URI uri;
+<a name="67" href="#67">67</a>          <strong class="jxr_keyword">try</strong>
+<a name="68" href="#68">68</a>          {
+<a name="69" href="#69">69</a>              uri = <strong class="jxr_keyword">new</strong> URI( targetPath );
+<a name="70" href="#70">70</a>              uri.toURL(); <em class="jxr_comment">// check protocol</em>
+<a name="71" href="#71">71</a>          }
+<a name="72" href="#72">72</a>          <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="73" href="#73">73</a>          {
+<a name="74" href="#74">74</a>              uri = <strong class="jxr_keyword">null</strong>;
+<a name="75" href="#75">75</a>          }
+<a name="76" href="#76">76</a>  
+<a name="77" href="#77">77</a>          <em class="jxr_comment">// fall-back to file-system approach</em>
+<a name="78" href="#78">78</a>          <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == uri || !uri.isAbsolute() )
+<a name="79" href="#79">79</a>          {
+<a name="80" href="#80">80</a>              uri = <strong class="jxr_keyword">new</strong> File( targetPath ).toURI();
+<a name="81" href="#81">81</a>          }
+<a name="82" href="#82">82</a>  
+<a name="83" href="#83">83</a>          <strong class="jxr_keyword">return</strong> uri;
+<a name="84" href="#84">84</a>      }
+<a name="85" href="#85">85</a>  
+<a name="86" href="#86">86</a>  
+<a name="87" href="#87">87</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     * @param project current project</em>
+<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * @return URI pointing to correct obr.xml, null if not found</em>
+<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="91" href="#91">91</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> URI findObrXml( MavenProject project )
+<a name="92" href="#92">92</a>      {
+<a name="93" href="#93">93</a>          File obrFile = <strong class="jxr_keyword">new</strong> File( project.getBuild().getOutputDirectory(), OBR_XML );
+<a name="94" href="#94">94</a>          <strong class="jxr_keyword">if</strong> ( obrFile.exists() )
+<a name="95" href="#95">95</a>          {
+<a name="96" href="#96">96</a>              <strong class="jxr_keyword">return</strong> obrFile.toURI();
+<a name="97" href="#97">97</a>          }
+<a name="98" href="#98">98</a>          <strong class="jxr_keyword">for</strong> ( Iterator i = project.getResources().iterator(); i.hasNext(); )
+<a name="99" href="#99">99</a>          {
+<a name="100" href="#100">100</a>             Resource resource = ( Resource ) i.next();
+<a name="101" href="#101">101</a>             obrFile = <strong class="jxr_keyword">new</strong> File( resource.getDirectory(), OBR_XML );
+<a name="102" href="#102">102</a>             <strong class="jxr_keyword">if</strong> ( obrFile.exists() )
+<a name="103" href="#103">103</a>             {
+<a name="104" href="#104">104</a>                 <strong class="jxr_keyword">return</strong> obrFile.toURI();
+<a name="105" href="#105">105</a>             }
+<a name="106" href="#106">106</a>         }
+<a name="107" href="#107">107</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="108" href="#108">108</a>     }
+<a name="109" href="#109">109</a> 
+<a name="110" href="#110">110</a> 
+<a name="111" href="#111">111</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     * @param repository maven repository</em>
+<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">     * @param artifact maven artifact</em>
+<a name="114" href="#114">114</a> <em class="jxr_javadoccomment">     * @return file URI pointing to artifact in repository</em>
+<a name="115" href="#115">115</a> <em class="jxr_javadoccomment">     */</em>
+<a name="116" href="#116">116</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> URI getArtifactURI( ArtifactRepository repository, Artifact artifact )
+<a name="117" href="#117">117</a>     {
+<a name="118" href="#118">118</a>         String baseDir = repository.getBasedir();
+<a name="119" href="#119">119</a>         String artifactPath = repository.pathOf( artifact );
+<a name="120" href="#120">120</a> 
+<a name="121" href="#121">121</a>         <strong class="jxr_keyword">return</strong> toFileURI( baseDir + '/' + artifactPath );
+<a name="122" href="#122">122</a>     }
+<a name="123" href="#123">123</a> 
+<a name="124" href="#124">124</a> 
+<a name="125" href="#125">125</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     * @param path filesystem path</em>
+<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     * @return file URI for the path</em>
+<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     */</em>
+<a name="129" href="#129">129</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> URI toFileURI( String path )
+<a name="130" href="#130">130</a>     {
+<a name="131" href="#131">131</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == path )
+<a name="132" href="#132">132</a>         {
+<a name="133" href="#133">133</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="134" href="#134">134</a>         }
+<a name="135" href="#135">135</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( path.startsWith( <span class="jxr_string">"file:"</span> ) )
+<a name="136" href="#136">136</a>         {
+<a name="137" href="#137">137</a>             <strong class="jxr_keyword">return</strong> URI.create( path );
+<a name="138" href="#138">138</a>         }
+<a name="139" href="#139">139</a>         <strong class="jxr_keyword">else</strong>
+<a name="140" href="#140">140</a>         {
+<a name="141" href="#141">141</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> File( path ).toURI();
+<a name="142" href="#142">142</a>         }
+<a name="143" href="#143">143</a>     }
+<a name="144" href="#144">144</a> 
+<a name="145" href="#145">145</a> 
+<a name="146" href="#146">146</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="147" href="#147">147</a> <em class="jxr_javadoccomment">     * @param repositoryXml URI pointing to repository.xml, or directory containing it</em>
+<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">     * @param bundleJar URI pointing to bundle jarfile</em>
+<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">     * @return relative URI to bundle jarfile</em>
+<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">     */</em>
+<a name="151" href="#151">151</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> URI getRelativeURI( URI repositoryXml, URI bundleJar )
+<a name="152" href="#152">152</a>     {
+<a name="153" href="#153">153</a>         <strong class="jxr_keyword">try</strong>
+<a name="154" href="#154">154</a>         {
+<a name="155" href="#155">155</a>             String repositoryPath = repositoryXml.getPath();
+<a name="156" href="#156">156</a>             <strong class="jxr_keyword">if</strong> ( repositoryPath.toLowerCase().endsWith( DOT_XML ) )
+<a name="157" href="#157">157</a>             {
+<a name="158" href="#158">158</a>                 <em class="jxr_comment">// remove filename to get containing directory</em>
+<a name="159" href="#159">159</a>                 <strong class="jxr_keyword">int</strong> dirnameIndex = repositoryPath.lastIndexOf( '/' );
+<a name="160" href="#160">160</a>                 repositoryPath = repositoryPath.substring( 0, dirnameIndex );
+<a name="161" href="#161">161</a>             }
+<a name="162" href="#162">162</a> 
+<a name="163" href="#163">163</a>             URI rootURI = <strong class="jxr_keyword">new</strong> URI( <strong class="jxr_keyword">null</strong>, repositoryPath, <strong class="jxr_keyword">null</strong> );
+<a name="164" href="#164">164</a>             URI localURI = <strong class="jxr_keyword">new</strong> URI( <strong class="jxr_keyword">null</strong>, bundleJar.getPath(), <strong class="jxr_keyword">null</strong> );
+<a name="165" href="#165">165</a> 
+<a name="166" href="#166">166</a>             <strong class="jxr_keyword">return</strong> rootURI.relativize( localURI );
+<a name="167" href="#167">167</a>         }
+<a name="168" href="#168">168</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="169" href="#169">169</a>         {
+<a name="170" href="#170">170</a>             <strong class="jxr_keyword">return</strong> bundleJar;
+<a name="171" href="#171">171</a>         }
+<a name="172" href="#172">172</a>     }
+<a name="173" href="#173">173</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/PomHelper.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/PomHelper.html
new file mode 100644
index 0000000..3d48f33
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/PomHelper.html
@@ -0,0 +1,98 @@
+<!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>PomHelper xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<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>  <strong class="jxr_keyword">import</strong> java.io.FileNotFoundException;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.FileReader;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.io.Reader;
+<a name="27" href="#27">27</a>  
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Model;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.IOUtil;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+<a name="34" href="#34">34</a>  
+<a name="35" href="#35">35</a>  
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * Maven POM helper methods.</em>
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="41" href="#41">41</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/PomHelper.html">PomHelper</a>
+<a name="42" href="#42">42</a>  {
+<a name="43" href="#43">43</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> MavenProject readPom( File pomFile ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="44" href="#44">44</a>      {
+<a name="45" href="#45">45</a>          Reader reader = <strong class="jxr_keyword">null</strong>;
+<a name="46" href="#46">46</a>  
+<a name="47" href="#47">47</a>          <strong class="jxr_keyword">try</strong>
+<a name="48" href="#48">48</a>          {
+<a name="49" href="#49">49</a>              reader = <strong class="jxr_keyword">new</strong> FileReader( pomFile );
+<a name="50" href="#50">50</a>              MavenXpp3Reader modelReader = <strong class="jxr_keyword">new</strong> MavenXpp3Reader();
+<a name="51" href="#51">51</a>              <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> MavenProject( modelReader.read( reader ) );
+<a name="52" href="#52">52</a>          }
+<a name="53" href="#53">53</a>          <strong class="jxr_keyword">catch</strong> ( FileNotFoundException e )
+<a name="54" href="#54">54</a>          {
+<a name="55" href="#55">55</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error reading specified POM file: "</span> + e.getMessage(), e );
+<a name="56" href="#56">56</a>          }
+<a name="57" href="#57">57</a>          <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="58" href="#58">58</a>          {
+<a name="59" href="#59">59</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error reading specified POM file: "</span> + e.getMessage(), e );
+<a name="60" href="#60">60</a>          }
+<a name="61" href="#61">61</a>          <strong class="jxr_keyword">catch</strong> ( XmlPullParserException e )
+<a name="62" href="#62">62</a>          {
+<a name="63" href="#63">63</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error reading specified POM file: "</span> + e.getMessage(), e );
+<a name="64" href="#64">64</a>          }
+<a name="65" href="#65">65</a>          <strong class="jxr_keyword">finally</strong>
+<a name="66" href="#66">66</a>          {
+<a name="67" href="#67">67</a>              IOUtil.close( reader );
+<a name="68" href="#68">68</a>          }
+<a name="69" href="#69">69</a>      }
+<a name="70" href="#70">70</a>  
+<a name="71" href="#71">71</a>  
+<a name="72" href="#72">72</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> MavenProject buildPom( String groupId, String artifactId, String version, String packaging )
+<a name="73" href="#73">73</a>      {
+<a name="74" href="#74">74</a>          Model model = <strong class="jxr_keyword">new</strong> Model();
+<a name="75" href="#75">75</a>  
+<a name="76" href="#76">76</a>          model.setModelVersion( <span class="jxr_string">"4.0.0"</span> );
+<a name="77" href="#77">77</a>          model.setGroupId( groupId );
+<a name="78" href="#78">78</a>          model.setArtifactId( artifactId );
+<a name="79" href="#79">79</a>          model.setVersion( version );
+<a name="80" href="#80">80</a>          model.setPackaging( packaging );
+<a name="81" href="#81">81</a>  
+<a name="82" href="#82">82</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> MavenProject( model );
+<a name="83" href="#83">83</a>      }
+<a name="84" href="#84">84</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/RemoteFileManager.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/RemoteFileManager.html
new file mode 100644
index 0000000..307a578
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/RemoteFileManager.html
@@ -0,0 +1,387 @@
+<!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>RemoteFileManager xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*<em class="jxr_comment"> </em></em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.BufferedWriter;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.FileWriter;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.io.Writer;
+<a name="27" href="#27">27</a>  
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.manager.WagonConfigurationException;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.manager.WagonManager;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.settings.Proxy;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.settings.Settings;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.ConnectionException;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.ResourceDoesNotExistException;
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.TransferFailedException;
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.UnsupportedProtocolException;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.Wagon;
+<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.authentication.AuthenticationException;
+<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.authorization.AuthorizationException;
+<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.proxy.ProxyInfo;
+<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.repository.Repository;
+<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>
+<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * this class is used to manage all connections by wagon.</em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="49" href="#49">49</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/RemoteFileManager.html">RemoteFileManager</a>
+<a name="50" href="#50">50</a>  {
+<a name="51" href="#51">51</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment">     * save the connection.</em>
+<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> Wagon m_wagon;
+<a name="55" href="#55">55</a>  
+<a name="56" href="#56">56</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * the wagon manager.</em>
+<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> WagonManager m_wagonManager;
+<a name="60" href="#60">60</a>  
+<a name="61" href="#61">61</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * the project settings.</em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> Settings m_settings;
+<a name="65" href="#65">65</a>  
+<a name="66" href="#66">66</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     * logger instance.</em>
+<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> Log m_log;
+<a name="70" href="#70">70</a>  
+<a name="71" href="#71">71</a>  
+<a name="72" href="#72">72</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     * initialize main information.</em>
+<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     * @param wm WagonManager provides by maven</em>
+<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     * @param settings settings of the current project provides by maven</em>
+<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * @param log logger</em>
+<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="78" href="#78">78</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/obrplugin/RemoteFileManager.html">RemoteFileManager</a>( WagonManager wm, Settings settings, Log log )
+<a name="79" href="#79">79</a>      {
+<a name="80" href="#80">80</a>          m_wagonManager = wm;
+<a name="81" href="#81">81</a>          m_settings = settings;
+<a name="82" href="#82">82</a>          m_log = log;
+<a name="83" href="#83">83</a>          m_wagon = <strong class="jxr_keyword">null</strong>;
+<a name="84" href="#84">84</a>      }
+<a name="85" href="#85">85</a>  
+<a name="86" href="#86">86</a>  
+<a name="87" href="#87">87</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     * disconnect the current object.</em>
+<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="90" href="#90">90</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> disconnect()
+<a name="91" href="#91">91</a>      {
+<a name="92" href="#92">92</a>          <strong class="jxr_keyword">try</strong>
+<a name="93" href="#93">93</a>          {
+<a name="94" href="#94">94</a>              <strong class="jxr_keyword">if</strong> ( m_wagon != <strong class="jxr_keyword">null</strong> )
+<a name="95" href="#95">95</a>              {
+<a name="96" href="#96">96</a>                  m_wagon.disconnect();
+<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> ( ConnectionException e )
+<a name="100" href="#100">100</a>         {
+<a name="101" href="#101">101</a>             m_log.error( <span class="jxr_string">"Error disconnecting Wagon"</span>, e );
+<a name="102" href="#102">102</a>         }
+<a name="103" href="#103">103</a>     }
+<a name="104" href="#104">104</a> 
+<a name="105" href="#105">105</a> 
+<a name="106" href="#106">106</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     * connect the current object to repository given in constructor.</em>
+<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     * @param id repository id</em>
+<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     * @param url repository url</em>
+<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException</em>
+<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     */</em>
+<a name="112" href="#112">112</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> connect( String id, String url ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="113" href="#113">113</a>     {
+<a name="114" href="#114">114</a>         Repository repository = <strong class="jxr_keyword">new</strong> Repository( id, url );
+<a name="115" href="#115">115</a> 
+<a name="116" href="#116">116</a>         <strong class="jxr_keyword">try</strong>
+<a name="117" href="#117">117</a>         {
+<a name="118" href="#118">118</a>             m_wagon = m_wagonManager.getWagon( repository );
+<a name="119" href="#119">119</a>         }
+<a name="120" href="#120">120</a>         <strong class="jxr_keyword">catch</strong> ( UnsupportedProtocolException e )
+<a name="121" href="#121">121</a>         {
+<a name="122" href="#122">122</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unsupported protocol: '"</span> + repository.getProtocol() + <span class="jxr_string">"'"</span>, e );
+<a name="123" href="#123">123</a>         }
+<a name="124" href="#124">124</a>         <strong class="jxr_keyword">catch</strong> ( WagonConfigurationException e )
+<a name="125" href="#125">125</a>         {
+<a name="126" href="#126">126</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to configure Wagon: '"</span> + repository.getProtocol() + <span class="jxr_string">"'"</span>, e );
+<a name="127" href="#127">127</a>         }
+<a name="128" href="#128">128</a> 
+<a name="129" href="#129">129</a>         <strong class="jxr_keyword">try</strong>
+<a name="130" href="#130">130</a>         {
+<a name="131" href="#131">131</a>             ProxyInfo proxyInfo = getProxyInfo( m_settings );
+<a name="132" href="#132">132</a>             <strong class="jxr_keyword">if</strong> ( proxyInfo != <strong class="jxr_keyword">null</strong> )
+<a name="133" href="#133">133</a>             {
+<a name="134" href="#134">134</a>                 m_wagon.connect( repository, m_wagonManager.getAuthenticationInfo( id ), proxyInfo );
+<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>                 m_wagon.connect( repository, m_wagonManager.getAuthenticationInfo( id ) );
+<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">catch</strong> ( ConnectionException e )
+<a name="142" href="#142">142</a>         {
+<a name="143" href="#143">143</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Connection failed"</span>, e );
+<a name="144" href="#144">144</a>         }
+<a name="145" href="#145">145</a>         <strong class="jxr_keyword">catch</strong> ( AuthenticationException e )
+<a name="146" href="#146">146</a>         {
+<a name="147" href="#147">147</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Authentication failed"</span>, e );
+<a name="148" href="#148">148</a>         }
+<a name="149" href="#149">149</a>     }
+<a name="150" href="#150">150</a> 
+<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">     * get a file from the current repository connected.</em>
+<a name="154" href="#154">154</a> <em class="jxr_javadoccomment">     * @param url url to the targeted file</em>
+<a name="155" href="#155">155</a> <em class="jxr_javadoccomment">     * @param suffix suggested file suffix</em>
+<a name="156" href="#156">156</a> <em class="jxr_javadoccomment">     * @return get a file descriptor on the required resource</em>
+<a name="157" href="#157">157</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException</em>
+<a name="158" href="#158">158</a> <em class="jxr_javadoccomment">     */</em>
+<a name="159" href="#159">159</a>     <strong class="jxr_keyword">public</strong> File get( String url, String suffix ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="160" href="#160">160</a>     {
+<a name="161" href="#161">161</a>         <strong class="jxr_keyword">if</strong> ( m_wagon == <strong class="jxr_keyword">null</strong> )
+<a name="162" href="#162">162</a>         {
+<a name="163" href="#163">163</a>             m_log.error( <span class="jxr_string">"must be connected first!"</span> );
+<a name="164" href="#164">164</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="165" href="#165">165</a>         }
+<a name="166" href="#166">166</a> 
+<a name="167" href="#167">167</a>         File file = <strong class="jxr_keyword">null</strong>;
+<a name="168" href="#168">168</a>         <strong class="jxr_keyword">try</strong>
+<a name="169" href="#169">169</a>         {
+<a name="170" href="#170">170</a>             file = File.createTempFile( String.valueOf( System.currentTimeMillis() ), suffix );
+<a name="171" href="#171">171</a>         }
+<a name="172" href="#172">172</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="173" href="#173">173</a>         {
+<a name="174" href="#174">174</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"I/O problem"</span>, e );
+<a name="175" href="#175">175</a>         }
+<a name="176" href="#176">176</a> 
+<a name="177" href="#177">177</a>         <strong class="jxr_keyword">try</strong>
+<a name="178" href="#178">178</a>         {
+<a name="179" href="#179">179</a>             m_wagon.get( url, file );
+<a name="180" href="#180">180</a>         }
+<a name="181" href="#181">181</a>         <strong class="jxr_keyword">catch</strong> ( TransferFailedException e )
+<a name="182" href="#182">182</a>         {
+<a name="183" href="#183">183</a>             file.delete(); <em class="jxr_comment">// cleanup on failure</em>
+<a name="184" href="#184">184</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Transfer failed"</span>, e );
+<a name="185" href="#185">185</a>         }
+<a name="186" href="#186">186</a>         <strong class="jxr_keyword">catch</strong> ( AuthorizationException e )
+<a name="187" href="#187">187</a>         {
+<a name="188" href="#188">188</a>             file.delete(); <em class="jxr_comment">// cleanup on failure</em>
+<a name="189" href="#189">189</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Authorization failed"</span>, e );
+<a name="190" href="#190">190</a>         }
+<a name="191" href="#191">191</a>         <strong class="jxr_keyword">catch</strong> ( ResourceDoesNotExistException e )
+<a name="192" href="#192">192</a>         {
+<a name="193" href="#193">193</a>             file.delete(); <em class="jxr_comment">// return non-existent file</em>
+<a name="194" href="#194">194</a>         }
+<a name="195" href="#195">195</a> 
+<a name="196" href="#196">196</a>         <strong class="jxr_keyword">return</strong> file;
+<a name="197" href="#197">197</a>     }
+<a name="198" href="#198">198</a> 
+<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">     * put a file on the current repository connected.</em>
+<a name="202" href="#202">202</a> <em class="jxr_javadoccomment">     * @param file file to upload</em>
+<a name="203" href="#203">203</a> <em class="jxr_javadoccomment">     * @param url url to copy file</em>
+<a name="204" href="#204">204</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException</em>
+<a name="205" href="#205">205</a> <em class="jxr_javadoccomment">     */</em>
+<a name="206" href="#206">206</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> put( File file, String url ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="207" href="#207">207</a>     {
+<a name="208" href="#208">208</a>         <strong class="jxr_keyword">if</strong> ( m_wagon == <strong class="jxr_keyword">null</strong> )
+<a name="209" href="#209">209</a>         {
+<a name="210" href="#210">210</a>             m_log.error( <span class="jxr_string">"must be connected first!"</span> );
+<a name="211" href="#211">211</a>             <strong class="jxr_keyword">return</strong>;
+<a name="212" href="#212">212</a>         }
+<a name="213" href="#213">213</a> 
+<a name="214" href="#214">214</a>         <strong class="jxr_keyword">try</strong>
+<a name="215" href="#215">215</a>         {
+<a name="216" href="#216">216</a>             m_wagon.put( file, url );
+<a name="217" href="#217">217</a>         }
+<a name="218" href="#218">218</a>         <strong class="jxr_keyword">catch</strong> ( TransferFailedException e )
+<a name="219" href="#219">219</a>         {
+<a name="220" href="#220">220</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Transfer failed"</span>, e );
+<a name="221" href="#221">221</a>         }
+<a name="222" href="#222">222</a>         <strong class="jxr_keyword">catch</strong> ( AuthorizationException e )
+<a name="223" href="#223">223</a>         {
+<a name="224" href="#224">224</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Authorization failed"</span>, e );
+<a name="225" href="#225">225</a>         }
+<a name="226" href="#226">226</a>         <strong class="jxr_keyword">catch</strong> ( ResourceDoesNotExistException e )
+<a name="227" href="#227">227</a>         {
+<a name="228" href="#228">228</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Resource does not exist:"</span> + file, e );
+<a name="229" href="#229">229</a>         }
+<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>     <em class="jxr_javadoccomment">/**</em>
+<a name="234" href="#234">234</a> <em class="jxr_javadoccomment">     * Convenience method to map a Proxy object from the user system settings to a ProxyInfo object.</em>
+<a name="235" href="#235">235</a> <em class="jxr_javadoccomment">     * @param settings project settings given by maven</em>
+<a name="236" href="#236">236</a> <em class="jxr_javadoccomment">     * @return a proxyInfo object instancied or null if no active proxy is define in the settings.xml</em>
+<a name="237" href="#237">237</a> <em class="jxr_javadoccomment">     */</em>
+<a name="238" href="#238">238</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ProxyInfo getProxyInfo( Settings settings )
+<a name="239" href="#239">239</a>     {
+<a name="240" href="#240">240</a>         ProxyInfo proxyInfo = <strong class="jxr_keyword">null</strong>;
+<a name="241" href="#241">241</a>         <strong class="jxr_keyword">if</strong> ( settings != <strong class="jxr_keyword">null</strong> &amp;&amp; settings.getActiveProxy() != <strong class="jxr_keyword">null</strong> )
+<a name="242" href="#242">242</a>         {
+<a name="243" href="#243">243</a>             Proxy settingsProxy = settings.getActiveProxy();
+<a name="244" href="#244">244</a> 
+<a name="245" href="#245">245</a>             proxyInfo = <strong class="jxr_keyword">new</strong> ProxyInfo();
+<a name="246" href="#246">246</a>             proxyInfo.setHost( settingsProxy.getHost() );
+<a name="247" href="#247">247</a>             proxyInfo.setType( settingsProxy.getProtocol() );
+<a name="248" href="#248">248</a>             proxyInfo.setPort( settingsProxy.getPort() );
+<a name="249" href="#249">249</a>             proxyInfo.setNonProxyHosts( settingsProxy.getNonProxyHosts() );
+<a name="250" href="#250">250</a>             proxyInfo.setUserName( settingsProxy.getUsername() );
+<a name="251" href="#251">251</a>             proxyInfo.setPassword( settingsProxy.getPassword() );
+<a name="252" href="#252">252</a>         }
+<a name="253" href="#253">253</a> 
+<a name="254" href="#254">254</a>         <strong class="jxr_keyword">return</strong> proxyInfo;
+<a name="255" href="#255">255</a>     }
+<a name="256" href="#256">256</a> 
+<a name="257" href="#257">257</a> 
+<a name="258" href="#258">258</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> lockFile( String fileName, <strong class="jxr_keyword">boolean</strong> ignoreLock ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="259" href="#259">259</a>     {
+<a name="260" href="#260">260</a>         <strong class="jxr_keyword">if</strong> ( !ignoreLock )
+<a name="261" href="#261">261</a>         {
+<a name="262" href="#262">262</a>             <strong class="jxr_keyword">int</strong> countError = 0;
+<a name="263" href="#263">263</a>             <strong class="jxr_keyword">while</strong> ( isLockedFile( fileName ) &amp;&amp; countError &lt; 2 )
+<a name="264" href="#264">264</a>             {
+<a name="265" href="#265">265</a>                 countError++;
+<a name="266" href="#266">266</a>                 m_log.warn( <span class="jxr_string">"File is currently locked, retry in 10s"</span> );
+<a name="267" href="#267">267</a>                 <strong class="jxr_keyword">try</strong>
+<a name="268" href="#268">268</a>                 {
+<a name="269" href="#269">269</a>                     Thread.sleep( 10000 );
+<a name="270" href="#270">270</a>                 }
+<a name="271" href="#271">271</a>                 <strong class="jxr_keyword">catch</strong> ( InterruptedException e )
+<a name="272" href="#272">272</a>                 {
+<a name="273" href="#273">273</a>                     m_log.warn( <span class="jxr_string">"Sleep interrupted"</span> );
+<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">if</strong> ( countError == 2 )
+<a name="278" href="#278">278</a>             {
+<a name="279" href="#279">279</a>                 m_log.error( <span class="jxr_string">"File "</span> + fileName + <span class="jxr_string">" is locked. Use -DignoreLock to force uploading"</span> );
+<a name="280" href="#280">280</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Remote file locked"</span> );
+<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>         File file = <strong class="jxr_keyword">null</strong>;
+<a name="285" href="#285">285</a>         <strong class="jxr_keyword">try</strong>
+<a name="286" href="#286">286</a>         {
+<a name="287" href="#287">287</a>             <em class="jxr_comment">// create a non-empty file used to lock the remote file</em>
+<a name="288" href="#288">288</a>             file = File.createTempFile( String.valueOf( System.currentTimeMillis() ), <span class="jxr_string">".lock"</span> );
+<a name="289" href="#289">289</a> 
+<a name="290" href="#290">290</a>             Writer writer = <strong class="jxr_keyword">new</strong> BufferedWriter( <strong class="jxr_keyword">new</strong> FileWriter( file ) );
+<a name="291" href="#291">291</a>             writer.write( <span class="jxr_string">"LOCKED"</span> );
+<a name="292" href="#292">292</a>             writer.close();
+<a name="293" href="#293">293</a> 
+<a name="294" href="#294">294</a>             put( file, fileName + <span class="jxr_string">".lock"</span> );
+<a name="295" href="#295">295</a>         }
+<a name="296" href="#296">296</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="297" href="#297">297</a>         {
+<a name="298" href="#298">298</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"I/O problem"</span>, e );
+<a name="299" href="#299">299</a>         }
+<a name="300" href="#300">300</a>         <strong class="jxr_keyword">finally</strong>
+<a name="301" href="#301">301</a>         {
+<a name="302" href="#302">302</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != file )
+<a name="303" href="#303">303</a>             {
+<a name="304" href="#304">304</a>                 file.delete();
+<a name="305" href="#305">305</a>             }
+<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> 
+<a name="310" href="#310">310</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> unlockFile( String fileName ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="311" href="#311">311</a>     {
+<a name="312" href="#312">312</a>         File file = <strong class="jxr_keyword">null</strong>;
+<a name="313" href="#313">313</a>         <strong class="jxr_keyword">try</strong>
+<a name="314" href="#314">314</a>         {
+<a name="315" href="#315">315</a>             <em class="jxr_comment">// clear the contents of the file used to lock the remote file</em>
+<a name="316" href="#316">316</a>             file = File.createTempFile( String.valueOf( System.currentTimeMillis() ), <span class="jxr_string">".lock"</span> );
+<a name="317" href="#317">317</a> 
+<a name="318" href="#318">318</a>             Writer writer = <strong class="jxr_keyword">new</strong> BufferedWriter( <strong class="jxr_keyword">new</strong> FileWriter( file ) );
+<a name="319" href="#319">319</a>             writer.write( <span class="jxr_string">" "</span> ); <em class="jxr_comment">// write 1 byte to force wagon upload</em>
+<a name="320" href="#320">320</a>             writer.close();
+<a name="321" href="#321">321</a> 
+<a name="322" href="#322">322</a>             put( file, fileName + <span class="jxr_string">".lock"</span> );
+<a name="323" href="#323">323</a>         }
+<a name="324" href="#324">324</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="325" href="#325">325</a>         {
+<a name="326" href="#326">326</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"I/O problem"</span>, e );
+<a name="327" href="#327">327</a>         }
+<a name="328" href="#328">328</a>         <strong class="jxr_keyword">finally</strong>
+<a name="329" href="#329">329</a>         {
+<a name="330" href="#330">330</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != file )
+<a name="331" href="#331">331</a>             {
+<a name="332" href="#332">332</a>                 file.delete();
+<a name="333" href="#333">333</a>             }
+<a name="334" href="#334">334</a>         }
+<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>     <em class="jxr_javadoccomment">/**</em>
+<a name="339" href="#339">339</a> <em class="jxr_javadoccomment">     * this method indicates if the targeted file is locked or not.</em>
+<a name="340" href="#340">340</a> <em class="jxr_javadoccomment">     * @param fileName name targeted</em>
+<a name="341" href="#341">341</a> <em class="jxr_javadoccomment">     * @return  true if the required file is locked, else false</em>
+<a name="342" href="#342">342</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException</em>
+<a name="343" href="#343">343</a> <em class="jxr_javadoccomment">     */</em>
+<a name="344" href="#344">344</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isLockedFile( String fileName ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="345" href="#345">345</a>     {
+<a name="346" href="#346">346</a>         File file = <strong class="jxr_keyword">null</strong>;
+<a name="347" href="#347">347</a>         <strong class="jxr_keyword">try</strong>
+<a name="348" href="#348">348</a>         {
+<a name="349" href="#349">349</a>             file = get( fileName + <span class="jxr_string">".lock"</span>, <span class="jxr_string">".lock"</span> );
+<a name="350" href="#350">350</a> 
+<a name="351" href="#351">351</a>             <em class="jxr_comment">// file is locked with contents "LOCKED"</em>
+<a name="352" href="#352">352</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != file &amp;&amp; file.length() &lt;= 2 )
+<a name="353" href="#353">353</a>             {
+<a name="354" href="#354">354</a>                 <strong class="jxr_keyword">return</strong> false;
+<a name="355" href="#355">355</a>             }
+<a name="356" href="#356">356</a>         }
+<a name="357" href="#357">357</a>         <strong class="jxr_keyword">finally</strong>
+<a name="358" href="#358">358</a>         {
+<a name="359" href="#359">359</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != file )
+<a name="360" href="#360">360</a>             {
+<a name="361" href="#361">361</a>                 file.delete();
+<a name="362" href="#362">362</a>             }
+<a name="363" href="#363">363</a>         }
+<a name="364" href="#364">364</a> 
+<a name="365" href="#365">365</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
+<a name="366" href="#366">366</a>     }
+<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">public</strong> String toString()
+<a name="370" href="#370">370</a>     {
+<a name="371" href="#371">371</a>         <strong class="jxr_keyword">return</strong> m_wagon.getRepository().getUrl();
+<a name="372" href="#372">372</a>     }
+<a name="373" href="#373">373</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/XmlHelper.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/XmlHelper.html
new file mode 100644
index 0000000..a52ed41
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/XmlHelper.html
@@ -0,0 +1,124 @@
+<!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>XmlHelper xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Node;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.NodeList;
+<a name="24" href="#24">24</a>  
+<a name="25" href="#25">25</a>  
+<a name="26" href="#26">26</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment"> * Provide XML helper methods to support pre-Java5 runtimes</em>
+<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/XmlHelper.html">XmlHelper</a>
+<a name="32" href="#32">32</a>  {
+<a name="33" href="#33">33</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment">     * based on public Java5 javadoc of org.w3c.dom.Node.getTextContent method</em>
+<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="36" href="#36">36</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String getTextContent( Node node )
+<a name="37" href="#37">37</a>      {
+<a name="38" href="#38">38</a>          <strong class="jxr_keyword">switch</strong> ( node.getNodeType() )
+<a name="39" href="#39">39</a>          {
+<a name="40" href="#40">40</a>              <strong class="jxr_keyword">case</strong> Node.ELEMENT_NODE:
+<a name="41" href="#41">41</a>              <strong class="jxr_keyword">case</strong> Node.ATTRIBUTE_NODE:
+<a name="42" href="#42">42</a>              <strong class="jxr_keyword">case</strong> Node.ENTITY_NODE:
+<a name="43" href="#43">43</a>              <strong class="jxr_keyword">case</strong> Node.ENTITY_REFERENCE_NODE:
+<a name="44" href="#44">44</a>              <strong class="jxr_keyword">case</strong> Node.DOCUMENT_FRAGMENT_NODE:
+<a name="45" href="#45">45</a>                  <strong class="jxr_keyword">return</strong> mergeTextContent( node.getChildNodes() );
+<a name="46" href="#46">46</a>              <strong class="jxr_keyword">case</strong> Node.TEXT_NODE:
+<a name="47" href="#47">47</a>              <strong class="jxr_keyword">case</strong> Node.CDATA_SECTION_NODE:
+<a name="48" href="#48">48</a>              <strong class="jxr_keyword">case</strong> Node.COMMENT_NODE:
+<a name="49" href="#49">49</a>              <strong class="jxr_keyword">case</strong> Node.PROCESSING_INSTRUCTION_NODE:
+<a name="50" href="#50">50</a>                  <strong class="jxr_keyword">return</strong> node.getNodeValue();
+<a name="51" href="#51">51</a>              <strong class="jxr_keyword">case</strong> Node.DOCUMENT_NODE:
+<a name="52" href="#52">52</a>              <strong class="jxr_keyword">case</strong> Node.DOCUMENT_TYPE_NODE:
+<a name="53" href="#53">53</a>              <strong class="jxr_keyword">case</strong> Node.NOTATION_NODE:
+<a name="54" href="#54">54</a>              <strong class="jxr_keyword">default</strong>:
+<a name="55" href="#55">55</a>                  <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="56" href="#56">56</a>          }
+<a name="57" href="#57">57</a>      }
+<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>
+<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     * based on the following quote from public Java5 javadoc of org.w3c.dom.Node.getTextContent method:</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * "concatenation of the textContent attribute value of every child node, excluding COMMENT_NODE and</em>
+<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     * PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children"</em>
+<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String mergeTextContent( NodeList nodes )
+<a name="67" href="#67">67</a>      {
+<a name="68" href="#68">68</a>          StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="69" href="#69">69</a>          <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; nodes.getLength(); i++ )
+<a name="70" href="#70">70</a>          {
+<a name="71" href="#71">71</a>              Node n = nodes.item( i );
+<a name="72" href="#72">72</a>              <strong class="jxr_keyword">final</strong> String text;
+<a name="73" href="#73">73</a>  
+<a name="74" href="#74">74</a>              <strong class="jxr_keyword">switch</strong> ( n.getNodeType() )
+<a name="75" href="#75">75</a>              {
+<a name="76" href="#76">76</a>                  <strong class="jxr_keyword">case</strong> Node.COMMENT_NODE:
+<a name="77" href="#77">77</a>                  <strong class="jxr_keyword">case</strong> Node.PROCESSING_INSTRUCTION_NODE:
+<a name="78" href="#78">78</a>                      text = <strong class="jxr_keyword">null</strong>;
+<a name="79" href="#79">79</a>                      <strong class="jxr_keyword">break</strong>;
+<a name="80" href="#80">80</a>                  <strong class="jxr_keyword">default</strong>:
+<a name="81" href="#81">81</a>                      text = getTextContent( n );
+<a name="82" href="#82">82</a>                      <strong class="jxr_keyword">break</strong>;
+<a name="83" href="#83">83</a>              }
+<a name="84" href="#84">84</a>  
+<a name="85" href="#85">85</a>              <strong class="jxr_keyword">if</strong> ( text != <strong class="jxr_keyword">null</strong> )
+<a name="86" href="#86">86</a>              {
+<a name="87" href="#87">87</a>                  buf.append( text );
+<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">return</strong> buf.toString();
+<a name="91" href="#91">91</a>      }
+<a name="92" href="#92">92</a>  
+<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">     * based on public Java5 javadoc of org.w3c.dom.Node.setTextContent method</em>
+<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="97" href="#97">97</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> setTextContent( Node node, <strong class="jxr_keyword">final</strong> String text )
+<a name="98" href="#98">98</a>      {
+<a name="99" href="#99">99</a>          <strong class="jxr_keyword">while</strong> ( node.hasChildNodes() )
+<a name="100" href="#100">100</a>         {
+<a name="101" href="#101">101</a>             node.removeChild( node.getFirstChild() );
+<a name="102" href="#102">102</a>         }
+<a name="103" href="#103">103</a> 
+<a name="104" href="#104">104</a>         <strong class="jxr_keyword">if</strong> ( text != <strong class="jxr_keyword">null</strong> &amp;&amp; text.length() &gt; 0 )
+<a name="105" href="#105">105</a>         {
+<a name="106" href="#106">106</a>             Node textNode = node.getOwnerDocument().createTextNode( text );
+<a name="107" href="#107">107</a>             node.appendChild( textNode );
+<a name="108" href="#108">108</a>         }
+<a name="109" href="#109">109</a>     }
+<a name="110" href="#110">110</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-frame.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/package-frame.html
new file mode 100644
index 0000000..f7d979b
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/package-frame.html
@@ -0,0 +1,63 @@
+
+<!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.3.5 Reference Package org.apache.felix.obrplugin</title>
+		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
+	</head>
+	<body>
+
+		<h3>
+        	<a href="package-summary.html" target="classFrame">org.apache.felix.obrplugin</a>
+      	</h3>
+
+      	<h3>Classes</h3>
+
+      	<ul>
+      		          	<li>
+            	<a href="AbstractFileMojo.html" target="classFrame">AbstractFileMojo</a>
+          	</li>
+          	          	<li>
+            	<a href="Config.html" target="classFrame">Config</a>
+          	</li>
+          	          	<li>
+            	<a href="ObrCleanRepo.html" target="classFrame">ObrCleanRepo</a>
+          	</li>
+          	          	<li>
+            	<a href="ObrDeploy.html" target="classFrame">ObrDeploy</a>
+          	</li>
+          	          	<li>
+            	<a href="ObrDeployFile.html" target="classFrame">ObrDeployFile</a>
+          	</li>
+          	          	<li>
+            	<a href="ObrIndex.html" target="classFrame">ObrIndex</a>
+          	</li>
+          	          	<li>
+            	<a href="ObrInstall.html" target="classFrame">ObrInstall</a>
+          	</li>
+          	          	<li>
+            	<a href="ObrInstallFile.html" target="classFrame">ObrInstallFile</a>
+          	</li>
+          	          	<li>
+            	<a href="ObrRemoteClean.html" target="classFrame">ObrRemoteClean</a>
+          	</li>
+          	          	<li>
+            	<a href="ObrUpdate.html" target="classFrame">ObrUpdate</a>
+          	</li>
+          	          	<li>
+            	<a href="ObrUtils.html" target="classFrame">ObrUtils</a>
+          	</li>
+          	          	<li>
+            	<a href="PomHelper.html" target="classFrame">PomHelper</a>
+          	</li>
+          	          	<li>
+            	<a href="RemoteFileManager.html" target="classFrame">RemoteFileManager</a>
+          	</li>
+          	          	<li>
+            	<a href="XmlHelper.html" target="classFrame">XmlHelper</a>
+          	</li>
+          	      	</ul>
+
+	</body>
+</html>
\ No newline at end of file
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
new file mode 100644
index 0000000..b3d67e8
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/package-summary.html
@@ -0,0 +1,132 @@
+
+<!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.3.5 Reference Package org.apache.felix.obrplugin</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.felix.obrplugin</h2>
+
+		<table class="summary">
+        	<thead>
+          		<tr>
+            		<th>Class Summary</th>
+          		</tr>
+        	</thead>
+        	<tbody>
+        		            	<tr>
+              		<td>
+                		<a href="AbstractFileMojo.html" target="classFrame">AbstractFileMojo</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="Config.html" target="classFrame">Config</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ObrCleanRepo.html" target="classFrame">ObrCleanRepo</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ObrDeploy.html" target="classFrame">ObrDeploy</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ObrDeployFile.html" target="classFrame">ObrDeployFile</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ObrIndex.html" target="classFrame">ObrIndex</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ObrInstall.html" target="classFrame">ObrInstall</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ObrInstallFile.html" target="classFrame">ObrInstallFile</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ObrRemoteClean.html" target="classFrame">ObrRemoteClean</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ObrUpdate.html" target="classFrame">ObrUpdate</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ObrUtils.html" target="classFrame">ObrUtils</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="PomHelper.html" target="classFrame">PomHelper</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="RemoteFileManager.html" target="classFrame">RemoteFileManager</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="XmlHelper.html" target="classFrame">XmlHelper</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-2011 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/DependencyTreeResolutionListener.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/DependencyTreeResolutionListener.html
new file mode 100644
index 0000000..644471f
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/DependencyTreeResolutionListener.html
@@ -0,0 +1,592 @@
+<!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>DependencyTreeResolutionListener 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.dependency.tree;
+<a name="2" href="#2">2</a>   
+<a name="3" href="#3">3</a>   
+<a name="4" href="#4">4</a>   <em class="jxr_comment">/*</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> *</em>
+<a name="13" href="#13">13</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="14" href="#14">14</a>  <em class="jxr_comment"> *</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="19" href="#19">19</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="20" href="#20">20</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="21" href="#21">21</a>  <em class="jxr_comment"> */</em>
+<a name="22" href="#22">22</a>  
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.IdentityHashMap;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.Stack;
+<a name="30" href="#30">30</a>  
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.resolver.ResolutionListener;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.resolver.ResolutionListenerForDepMgmt;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.versioning.VersionRange;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.dependency.tree.traversal.CollectingDependencyNodeVisitor;
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.logging.Logger;
+<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>
+<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * An artifact resolution listener that constructs a dependency tree.</em>
+<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * @author Edwin Punzalan</em>
+<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:markhobson@gmail.com" target="alexandria_uri">mailto:markhobson@gmail.com</a>"&gt;Mark Hobson&lt;/a&gt;</em>
+<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> * @version $Id$</em>
+<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="46" href="#46">46</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/maven/shared/dependency/tree/DependencyTreeResolutionListener.html">DependencyTreeResolutionListener</a> implements ResolutionListener, ResolutionListenerForDepMgmt
+<a name="47" href="#47">47</a>  {
+<a name="48" href="#48">48</a>      <em class="jxr_comment">// fields -----------------------------------------------------------------</em>
+<a name="49" href="#49">49</a>  
+<a name="50" href="#50">50</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">     * The log to write debug messages to.</em>
+<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Logger logger;
+<a name="54" href="#54">54</a>  
+<a name="55" href="#55">55</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     * The parent dependency nodes of the current dependency node.</em>
+<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Stack parentNodes;
+<a name="59" href="#59">59</a>  
+<a name="60" href="#60">60</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     * A map of dependency nodes by their attached artifact.</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map nodesByArtifact;
+<a name="64" href="#64">64</a>  
+<a name="65" href="#65">65</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     * The root dependency node of the computed dependency tree.</em>
+<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="68" href="#68">68</a>      <strong class="jxr_keyword">private</strong> DependencyNode rootNode;
+<a name="69" href="#69">69</a>  
+<a name="70" href="#70">70</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     * The dependency node currently being processed by this listener.</em>
+<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="73" href="#73">73</a>      <strong class="jxr_keyword">private</strong> DependencyNode currentNode;
+<a name="74" href="#74">74</a>  
+<a name="75" href="#75">75</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * Map &amp;lt; String replacementId, String premanaged version &gt;</em>
+<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="78" href="#78">78</a>      <strong class="jxr_keyword">private</strong> Map managedVersions = <strong class="jxr_keyword">new</strong> HashMap();
+<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">     * Map &amp;lt; String replacementId, String premanaged scope &gt;</em>
+<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="83" href="#83">83</a>      <strong class="jxr_keyword">private</strong> Map managedScopes = <strong class="jxr_keyword">new</strong> HashMap();
+<a name="84" href="#84">84</a>  
+<a name="85" href="#85">85</a>  
+<a name="86" href="#86">86</a>      <em class="jxr_comment">// constructors -----------------------------------------------------------</em>
+<a name="87" href="#87">87</a>  
+<a name="88" href="#88">88</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * Creates a new dependency tree resolution listener that writes to the specified log.</em>
+<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     * @param logger</em>
+<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     *            the log to write debug messages to</em>
+<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="94" href="#94">94</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/maven/shared/dependency/tree/DependencyTreeResolutionListener.html">DependencyTreeResolutionListener</a>( Logger logger )
+<a name="95" href="#95">95</a>      {
+<a name="96" href="#96">96</a>          <strong class="jxr_keyword">this</strong>.logger = logger;
+<a name="97" href="#97">97</a>  
+<a name="98" href="#98">98</a>          parentNodes = <strong class="jxr_keyword">new</strong> Stack();
+<a name="99" href="#99">99</a>          nodesByArtifact = <strong class="jxr_keyword">new</strong> IdentityHashMap();
+<a name="100" href="#100">100</a>         rootNode = <strong class="jxr_keyword">null</strong>;
+<a name="101" href="#101">101</a>         currentNode = <strong class="jxr_keyword">null</strong>;
+<a name="102" href="#102">102</a>     }
+<a name="103" href="#103">103</a> 
+<a name="104" href="#104">104</a> 
+<a name="105" href="#105">105</a>     <em class="jxr_comment">// ResolutionListener methods ---------------------------------------------</em>
+<a name="106" href="#106">106</a> 
+<a name="107" href="#107">107</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     */</em>
+<a name="110" href="#110">110</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testArtifact( Artifact artifact )
+<a name="111" href="#111">111</a>     {
+<a name="112" href="#112">112</a>         log( <span class="jxr_string">"testArtifact: artifact="</span> + artifact );
+<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>     <em class="jxr_javadoccomment">/**</em>
+<a name="117" href="#117">117</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="118" href="#118">118</a> <em class="jxr_javadoccomment">     */</em>
+<a name="119" href="#119">119</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> startProcessChildren( Artifact artifact )
+<a name="120" href="#120">120</a>     {
+<a name="121" href="#121">121</a>         log( <span class="jxr_string">"startProcessChildren: artifact="</span> + artifact );
+<a name="122" href="#122">122</a> 
+<a name="123" href="#123">123</a>         <strong class="jxr_keyword">if</strong> ( !currentNode.getArtifact().equals( artifact ) )
+<a name="124" href="#124">124</a>         {
+<a name="125" href="#125">125</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException( <span class="jxr_string">"Artifact was expected to be "</span> + currentNode.getArtifact() + <span class="jxr_string">" but was "</span>
+<a name="126" href="#126">126</a>                 + artifact );
+<a name="127" href="#127">127</a>         }
+<a name="128" href="#128">128</a> 
+<a name="129" href="#129">129</a>         parentNodes.push( currentNode );
+<a name="130" href="#130">130</a>     }
+<a name="131" href="#131">131</a> 
+<a name="132" href="#132">132</a> 
+<a name="133" href="#133">133</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="134" href="#134">134</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="135" href="#135">135</a> <em class="jxr_javadoccomment">     */</em>
+<a name="136" href="#136">136</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> endProcessChildren( Artifact artifact )
+<a name="137" href="#137">137</a>     {
+<a name="138" href="#138">138</a>         DependencyNode node = ( DependencyNode ) parentNodes.pop();
+<a name="139" href="#139">139</a> 
+<a name="140" href="#140">140</a>         log( <span class="jxr_string">"endProcessChildren: artifact="</span> + artifact );
+<a name="141" href="#141">141</a> 
+<a name="142" href="#142">142</a>         <strong class="jxr_keyword">if</strong> ( node == <strong class="jxr_keyword">null</strong> )
+<a name="143" href="#143">143</a>         {
+<a name="144" href="#144">144</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException( <span class="jxr_string">"Parent dependency node was null"</span> );
+<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">if</strong> ( !node.getArtifact().equals( artifact ) )
+<a name="148" href="#148">148</a>         {
+<a name="149" href="#149">149</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException( <span class="jxr_string">"Parent dependency node artifact was expected to be "</span> + node.getArtifact()
+<a name="150" href="#150">150</a>                 + <span class="jxr_string">" but was "</span> + artifact );
+<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> 
+<a name="155" href="#155">155</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="156" href="#156">156</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="157" href="#157">157</a> <em class="jxr_javadoccomment">     */</em>
+<a name="158" href="#158">158</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> includeArtifact( Artifact artifact )
+<a name="159" href="#159">159</a>     {
+<a name="160" href="#160">160</a>         log( <span class="jxr_string">"includeArtifact: artifact="</span> + artifact );
+<a name="161" href="#161">161</a> 
+<a name="162" href="#162">162</a>         DependencyNode existingNode = getNode( artifact );
+<a name="163" href="#163">163</a> 
+<a name="164" href="#164">164</a>         <em class="jxr_comment">/*</em>
+<a name="165" href="#165">165</a> <em class="jxr_comment">         * Ignore duplicate includeArtifact calls since omitForNearer can be called prior to includeArtifact on the same</em>
+<a name="166" href="#166">166</a> <em class="jxr_comment">         * artifact, and we don't wish to include it twice.</em>
+<a name="167" href="#167">167</a> <em class="jxr_comment">         */</em>
+<a name="168" href="#168">168</a>         <strong class="jxr_keyword">if</strong> ( existingNode == <strong class="jxr_keyword">null</strong> &amp;&amp; isCurrentNodeIncluded() )
+<a name="169" href="#169">169</a>         {
+<a name="170" href="#170">170</a>             DependencyNode node = addNode( artifact );
+<a name="171" href="#171">171</a> 
+<a name="172" href="#172">172</a>             <em class="jxr_comment">/*</em>
+<a name="173" href="#173">173</a> <em class="jxr_comment">             * Add the dependency management information cached in any prior manageArtifact calls, since includeArtifact</em>
+<a name="174" href="#174">174</a> <em class="jxr_comment">             * is always called after manageArtifact.</em>
+<a name="175" href="#175">175</a> <em class="jxr_comment">             */</em>
+<a name="176" href="#176">176</a>             flushDependencyManagement( node );
+<a name="177" href="#177">177</a>         }
+<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>     <em class="jxr_javadoccomment">/**</em>
+<a name="182" href="#182">182</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="183" href="#183">183</a> <em class="jxr_javadoccomment">     */</em>
+<a name="184" href="#184">184</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> omitForNearer( Artifact omitted, Artifact kept )
+<a name="185" href="#185">185</a>     {
+<a name="186" href="#186">186</a>         log( <span class="jxr_string">"omitForNearer: omitted="</span> + omitted + <span class="jxr_string">" kept="</span> + kept );
+<a name="187" href="#187">187</a> 
+<a name="188" href="#188">188</a>         <strong class="jxr_keyword">if</strong> ( !omitted.getDependencyConflictId().equals( kept.getDependencyConflictId() ) )
+<a name="189" href="#189">189</a>         {
+<a name="190" href="#190">190</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException( <span class="jxr_string">"Omitted artifact dependency conflict id "</span>
+<a name="191" href="#191">191</a>                 + omitted.getDependencyConflictId() + <span class="jxr_string">" differs from kept artifact dependency conflict id "</span>
+<a name="192" href="#192">192</a>                 + kept.getDependencyConflictId() );
+<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">if</strong> ( isCurrentNodeIncluded() )
+<a name="196" href="#196">196</a>         {
+<a name="197" href="#197">197</a>             DependencyNode omittedNode = getNode( omitted );
+<a name="198" href="#198">198</a> 
+<a name="199" href="#199">199</a>             <strong class="jxr_keyword">if</strong> ( omittedNode != <strong class="jxr_keyword">null</strong> )
+<a name="200" href="#200">200</a>             {
+<a name="201" href="#201">201</a>                 removeNode( omitted );
+<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>                 omittedNode = createNode( omitted );
+<a name="206" href="#206">206</a> 
+<a name="207" href="#207">207</a>                 currentNode = omittedNode;
+<a name="208" href="#208">208</a>             }
+<a name="209" href="#209">209</a> 
+<a name="210" href="#210">210</a>             omittedNode.omitForConflict( kept );
+<a name="211" href="#211">211</a> 
+<a name="212" href="#212">212</a>             <em class="jxr_comment">/*</em>
+<a name="213" href="#213">213</a> <em class="jxr_comment">             * Add the dependency management information cached in any prior manageArtifact calls, since omitForNearer</em>
+<a name="214" href="#214">214</a> <em class="jxr_comment">             * is always called after manageArtifact.</em>
+<a name="215" href="#215">215</a> <em class="jxr_comment">             */</em>
+<a name="216" href="#216">216</a>             flushDependencyManagement( omittedNode );
+<a name="217" href="#217">217</a> 
+<a name="218" href="#218">218</a>             DependencyNode keptNode = getNode( kept );
+<a name="219" href="#219">219</a> 
+<a name="220" href="#220">220</a>             <strong class="jxr_keyword">if</strong> ( keptNode == <strong class="jxr_keyword">null</strong> )
+<a name="221" href="#221">221</a>             {
+<a name="222" href="#222">222</a>                 addNode( kept );
+<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> 
+<a name="228" href="#228">228</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="229" href="#229">229</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="230" href="#230">230</a> <em class="jxr_javadoccomment">     */</em>
+<a name="231" href="#231">231</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateScope( Artifact artifact, String scope )
+<a name="232" href="#232">232</a>     {
+<a name="233" href="#233">233</a>         log( <span class="jxr_string">"updateScope: artifact="</span> + artifact + <span class="jxr_string">", scope="</span> + scope );
+<a name="234" href="#234">234</a> 
+<a name="235" href="#235">235</a>         DependencyNode node = getNode( artifact );
+<a name="236" href="#236">236</a> 
+<a name="237" href="#237">237</a>         <strong class="jxr_keyword">if</strong> ( node == <strong class="jxr_keyword">null</strong> )
+<a name="238" href="#238">238</a>         {
+<a name="239" href="#239">239</a>             <em class="jxr_comment">// updateScope events can be received prior to includeArtifact events</em>
+<a name="240" href="#240">240</a>             node = addNode( artifact );
+<a name="241" href="#241">241</a>         }
+<a name="242" href="#242">242</a> 
+<a name="243" href="#243">243</a>         node.setOriginalScope( artifact.getScope() );
+<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>     <em class="jxr_javadoccomment">/**</em>
+<a name="248" href="#248">248</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="249" href="#249">249</a> <em class="jxr_javadoccomment">     */</em>
+<a name="250" href="#250">250</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> manageArtifact( Artifact artifact, Artifact replacement )
+<a name="251" href="#251">251</a>     {
+<a name="252" href="#252">252</a>         <em class="jxr_comment">// TODO: remove when ResolutionListenerForDepMgmt merged into ResolutionListener</em>
+<a name="253" href="#253">253</a> 
+<a name="254" href="#254">254</a>         log( <span class="jxr_string">"manageArtifact: artifact="</span> + artifact + <span class="jxr_string">", replacement="</span> + replacement );
+<a name="255" href="#255">255</a> 
+<a name="256" href="#256">256</a>         <strong class="jxr_keyword">if</strong> ( replacement.getVersion() != <strong class="jxr_keyword">null</strong> )
+<a name="257" href="#257">257</a>         {
+<a name="258" href="#258">258</a>             manageArtifactVersion( artifact, replacement );
+<a name="259" href="#259">259</a>         }
+<a name="260" href="#260">260</a> 
+<a name="261" href="#261">261</a>         <strong class="jxr_keyword">if</strong> ( replacement.getScope() != <strong class="jxr_keyword">null</strong> )
+<a name="262" href="#262">262</a>         {
+<a name="263" href="#263">263</a>             manageArtifactScope( artifact, replacement );
+<a name="264" href="#264">264</a>         }
+<a name="265" href="#265">265</a>     }
+<a name="266" href="#266">266</a> 
+<a name="267" href="#267">267</a> 
+<a name="268" href="#268">268</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="269" href="#269">269</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="270" href="#270">270</a> <em class="jxr_javadoccomment">     */</em>
+<a name="271" href="#271">271</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> omitForCycle( Artifact artifact )
+<a name="272" href="#272">272</a>     {
+<a name="273" href="#273">273</a>         log( <span class="jxr_string">"omitForCycle: artifact="</span> + artifact );
+<a name="274" href="#274">274</a> 
+<a name="275" href="#275">275</a>         <strong class="jxr_keyword">if</strong> ( isCurrentNodeIncluded() )
+<a name="276" href="#276">276</a>         {
+<a name="277" href="#277">277</a>             DependencyNode node = createNode( artifact );
+<a name="278" href="#278">278</a> 
+<a name="279" href="#279">279</a>             node.omitForCycle();
+<a name="280" href="#280">280</a>         }
+<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>     <em class="jxr_javadoccomment">/**</em>
+<a name="285" href="#285">285</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="286" href="#286">286</a> <em class="jxr_javadoccomment">     */</em>
+<a name="287" href="#287">287</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateScopeCurrentPom( Artifact artifact, String scopeIgnored )
+<a name="288" href="#288">288</a>     {
+<a name="289" href="#289">289</a>         log( <span class="jxr_string">"updateScopeCurrentPom: artifact="</span> + artifact + <span class="jxr_string">", scopeIgnored="</span> + scopeIgnored );
+<a name="290" href="#290">290</a> 
+<a name="291" href="#291">291</a>         DependencyNode node = getNode( artifact );
+<a name="292" href="#292">292</a> 
+<a name="293" href="#293">293</a>         <strong class="jxr_keyword">if</strong> ( node == <strong class="jxr_keyword">null</strong> )
+<a name="294" href="#294">294</a>         {
+<a name="295" href="#295">295</a>             <em class="jxr_comment">// updateScopeCurrentPom events can be received prior to includeArtifact events</em>
+<a name="296" href="#296">296</a>             node = addNode( artifact );
+<a name="297" href="#297">297</a>             <em class="jxr_comment">// TODO remove the node that tried to impose its scope and add some info</em>
+<a name="298" href="#298">298</a>         }
+<a name="299" href="#299">299</a> 
+<a name="300" href="#300">300</a>         node.setFailedUpdateScope( scopeIgnored );
+<a name="301" href="#301">301</a>     }
+<a name="302" href="#302">302</a> 
+<a name="303" href="#303">303</a> 
+<a name="304" href="#304">304</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="305" href="#305">305</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="306" href="#306">306</a> <em class="jxr_javadoccomment">     */</em>
+<a name="307" href="#307">307</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> selectVersionFromRange( Artifact artifact )
+<a name="308" href="#308">308</a>     {
+<a name="309" href="#309">309</a>         log( <span class="jxr_string">"selectVersionFromRange: artifact="</span> + artifact );
+<a name="310" href="#310">310</a> 
+<a name="311" href="#311">311</a>         DependencyNode node = getNode( artifact );
+<a name="312" href="#312">312</a> 
+<a name="313" href="#313">313</a>         <em class="jxr_comment">/*</em>
+<a name="314" href="#314">314</a> <em class="jxr_comment">         * selectVersionFromRange is called before includeArtifact</em>
+<a name="315" href="#315">315</a> <em class="jxr_comment">         */</em>
+<a name="316" href="#316">316</a>         <strong class="jxr_keyword">if</strong> ( node == <strong class="jxr_keyword">null</strong> &amp;&amp; isCurrentNodeIncluded() )
+<a name="317" href="#317">317</a>         {
+<a name="318" href="#318">318</a>             node = addNode( artifact );
+<a name="319" href="#319">319</a>         }
+<a name="320" href="#320">320</a> 
+<a name="321" href="#321">321</a>         node.setVersionSelectedFromRange( artifact.getVersionRange() );
+<a name="322" href="#322">322</a>         node.setAvailableVersions( artifact.getAvailableVersions() );
+<a name="323" href="#323">323</a>     }
+<a name="324" href="#324">324</a> 
+<a name="325" href="#325">325</a> 
+<a name="326" href="#326">326</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="327" href="#327">327</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="328" href="#328">328</a> <em class="jxr_javadoccomment">     */</em>
+<a name="329" href="#329">329</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> restrictRange( Artifact artifact, Artifact replacement, VersionRange versionRange )
+<a name="330" href="#330">330</a>     {
+<a name="331" href="#331">331</a>         log( <span class="jxr_string">"restrictRange: artifact="</span> + artifact + <span class="jxr_string">", replacement="</span> + replacement + <span class="jxr_string">", versionRange="</span> + versionRange );
+<a name="332" href="#332">332</a> 
+<a name="333" href="#333">333</a>         <em class="jxr_comment">// TODO: track range restriction in node (MNG-3093)</em>
+<a name="334" href="#334">334</a>     }
+<a name="335" href="#335">335</a> 
+<a name="336" href="#336">336</a> 
+<a name="337" href="#337">337</a>     <em class="jxr_comment">// ResolutionListenerForDepMgmt methods -----------------------------------</em>
+<a name="338" href="#338">338</a> 
+<a name="339" href="#339">339</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="340" href="#340">340</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="341" href="#341">341</a> <em class="jxr_javadoccomment">     */</em>
+<a name="342" href="#342">342</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> manageArtifactVersion( Artifact artifact, Artifact replacement )
+<a name="343" href="#343">343</a>     {
+<a name="344" href="#344">344</a>         log( <span class="jxr_string">"manageArtifactVersion: artifact="</span> + artifact + <span class="jxr_string">", replacement="</span> + replacement );
+<a name="345" href="#345">345</a> 
+<a name="346" href="#346">346</a>         <em class="jxr_comment">/*</em>
+<a name="347" href="#347">347</a> <em class="jxr_comment">         * DefaultArtifactCollector calls manageArtifact twice: first with the change; then subsequently with no change.</em>
+<a name="348" href="#348">348</a> <em class="jxr_comment">         * We ignore the second call when the versions are equal.</em>
+<a name="349" href="#349">349</a> <em class="jxr_comment">         */</em>
+<a name="350" href="#350">350</a>         <strong class="jxr_keyword">if</strong> ( isCurrentNodeIncluded() &amp;&amp; !replacement.getVersion().equals( artifact.getVersion() ) )
+<a name="351" href="#351">351</a>         {
+<a name="352" href="#352">352</a>             <em class="jxr_comment">/*</em>
+<a name="353" href="#353">353</a> <em class="jxr_comment">             * Cache management information and apply in includeArtifact, since DefaultArtifactCollector mutates the</em>
+<a name="354" href="#354">354</a> <em class="jxr_comment">             * artifact and then calls includeArtifact after manageArtifact.</em>
+<a name="355" href="#355">355</a> <em class="jxr_comment">             */</em>
+<a name="356" href="#356">356</a>             managedVersions.put( getRangeId( replacement ), artifact.getVersion() );
+<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> 
+<a name="361" href="#361">361</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="362" href="#362">362</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="363" href="#363">363</a> <em class="jxr_javadoccomment">     */</em>
+<a name="364" href="#364">364</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> manageArtifactScope( Artifact artifact, Artifact replacement )
+<a name="365" href="#365">365</a>     {
+<a name="366" href="#366">366</a>         log( <span class="jxr_string">"manageArtifactScope: artifact="</span> + artifact + <span class="jxr_string">", replacement="</span> + replacement );
+<a name="367" href="#367">367</a> 
+<a name="368" href="#368">368</a>         <em class="jxr_comment">/*</em>
+<a name="369" href="#369">369</a> <em class="jxr_comment">         * DefaultArtifactCollector calls manageArtifact twice: first with the change; then subsequently with no change.</em>
+<a name="370" href="#370">370</a> <em class="jxr_comment">         * We ignore the second call when the scopes are equal.</em>
+<a name="371" href="#371">371</a> <em class="jxr_comment">         */</em>
+<a name="372" href="#372">372</a>         <strong class="jxr_keyword">if</strong> ( isCurrentNodeIncluded() &amp;&amp; !replacement.getScope().equals( artifact.getScope() ) )
+<a name="373" href="#373">373</a>         {
+<a name="374" href="#374">374</a>             <em class="jxr_comment">/*</em>
+<a name="375" href="#375">375</a> <em class="jxr_comment">             * Cache management information and apply in includeArtifact, since DefaultArtifactCollector mutates the</em>
+<a name="376" href="#376">376</a> <em class="jxr_comment">             * artifact and then calls includeArtifact after manageArtifact.</em>
+<a name="377" href="#377">377</a> <em class="jxr_comment">             */</em>
+<a name="378" href="#378">378</a>             managedScopes.put( getRangeId( replacement ), artifact.getScope() );
+<a name="379" href="#379">379</a>         }
+<a name="380" href="#380">380</a>     }
+<a name="381" href="#381">381</a> 
+<a name="382" href="#382">382</a> 
+<a name="383" href="#383">383</a>     <em class="jxr_comment">// public methods ---------------------------------------------------------</em>
+<a name="384" href="#384">384</a> 
+<a name="385" href="#385">385</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="386" href="#386">386</a> <em class="jxr_javadoccomment">     * Gets a list of all dependency nodes in the computed dependency tree.</em>
+<a name="387" href="#387">387</a> <em class="jxr_javadoccomment">     * </em>
+<a name="388" href="#388">388</a> <em class="jxr_javadoccomment">     * @return a list of dependency nodes</em>
+<a name="389" href="#389">389</a> <em class="jxr_javadoccomment">     * @deprecated As of 1.1, use a {@link CollectingDependencyNodeVisitor} on the root dependency node</em>
+<a name="390" href="#390">390</a> <em class="jxr_javadoccomment">     */</em>
+<a name="391" href="#391">391</a>     <strong class="jxr_keyword">public</strong> Collection getNodes()
+<a name="392" href="#392">392</a>     {
+<a name="393" href="#393">393</a>         <strong class="jxr_keyword">return</strong> Collections.unmodifiableCollection( nodesByArtifact.values() );
+<a name="394" href="#394">394</a>     }
+<a name="395" href="#395">395</a> 
+<a name="396" href="#396">396</a> 
+<a name="397" href="#397">397</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="398" href="#398">398</a> <em class="jxr_javadoccomment">     * Gets the root dependency node of the computed dependency tree.</em>
+<a name="399" href="#399">399</a> <em class="jxr_javadoccomment">     * </em>
+<a name="400" href="#400">400</a> <em class="jxr_javadoccomment">     * @return the root node</em>
+<a name="401" href="#401">401</a> <em class="jxr_javadoccomment">     */</em>
+<a name="402" href="#402">402</a>     <strong class="jxr_keyword">public</strong> DependencyNode getRootNode()
+<a name="403" href="#403">403</a>     {
+<a name="404" href="#404">404</a>         <strong class="jxr_keyword">return</strong> rootNode;
+<a name="405" href="#405">405</a>     }
+<a name="406" href="#406">406</a> 
+<a name="407" href="#407">407</a> 
+<a name="408" href="#408">408</a>     <em class="jxr_comment">// private methods --------------------------------------------------------</em>
+<a name="409" href="#409">409</a> 
+<a name="410" href="#410">410</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="411" href="#411">411</a> <em class="jxr_javadoccomment">     * Writes the specified message to the log at debug level with indentation for the current node's depth.</em>
+<a name="412" href="#412">412</a> <em class="jxr_javadoccomment">     * </em>
+<a name="413" href="#413">413</a> <em class="jxr_javadoccomment">     * @param message</em>
+<a name="414" href="#414">414</a> <em class="jxr_javadoccomment">     *            the message to write to the log</em>
+<a name="415" href="#415">415</a> <em class="jxr_javadoccomment">     */</em>
+<a name="416" href="#416">416</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> log( String message )
+<a name="417" href="#417">417</a>     {
+<a name="418" href="#418">418</a>         <strong class="jxr_keyword">int</strong> depth = parentNodes.size();
+<a name="419" href="#419">419</a> 
+<a name="420" href="#420">420</a>         StringBuffer buffer = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="421" href="#421">421</a> 
+<a name="422" href="#422">422</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; depth; i++ )
+<a name="423" href="#423">423</a>         {
+<a name="424" href="#424">424</a>             buffer.append( <span class="jxr_string">"  "</span> );
+<a name="425" href="#425">425</a>         }
+<a name="426" href="#426">426</a> 
+<a name="427" href="#427">427</a>         buffer.append( message );
+<a name="428" href="#428">428</a> 
+<a name="429" href="#429">429</a>         logger.debug( buffer.toString() );
+<a name="430" href="#430">430</a>     }
+<a name="431" href="#431">431</a> 
+<a name="432" href="#432">432</a> 
+<a name="433" href="#433">433</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="434" href="#434">434</a> <em class="jxr_javadoccomment">     * Creates a new dependency node for the specified artifact and appends it to the current parent dependency node.</em>
+<a name="435" href="#435">435</a> <em class="jxr_javadoccomment">     * </em>
+<a name="436" href="#436">436</a> <em class="jxr_javadoccomment">     * @param artifact</em>
+<a name="437" href="#437">437</a> <em class="jxr_javadoccomment">     *            the attached artifact for the new dependency node</em>
+<a name="438" href="#438">438</a> <em class="jxr_javadoccomment">     * @return the new dependency node</em>
+<a name="439" href="#439">439</a> <em class="jxr_javadoccomment">     */</em>
+<a name="440" href="#440">440</a>     <strong class="jxr_keyword">private</strong> DependencyNode createNode( Artifact artifact )
+<a name="441" href="#441">441</a>     {
+<a name="442" href="#442">442</a>         DependencyNode node = <strong class="jxr_keyword">new</strong> DependencyNode( artifact );
+<a name="443" href="#443">443</a> 
+<a name="444" href="#444">444</a>         <strong class="jxr_keyword">if</strong> ( !parentNodes.isEmpty() )
+<a name="445" href="#445">445</a>         {
+<a name="446" href="#446">446</a>             DependencyNode parent = ( DependencyNode ) parentNodes.peek();
+<a name="447" href="#447">447</a> 
+<a name="448" href="#448">448</a>             parent.addChild( node );
+<a name="449" href="#449">449</a>         }
+<a name="450" href="#450">450</a> 
+<a name="451" href="#451">451</a>         <strong class="jxr_keyword">return</strong> node;
+<a name="452" href="#452">452</a>     }
+<a name="453" href="#453">453</a> 
+<a name="454" href="#454">454</a> 
+<a name="455" href="#455">455</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="456" href="#456">456</a> <em class="jxr_javadoccomment">     * Creates a new dependency node for the specified artifact, appends it to the current parent dependency node and</em>
+<a name="457" href="#457">457</a> <em class="jxr_javadoccomment">     * puts it into the dependency node cache.</em>
+<a name="458" href="#458">458</a> <em class="jxr_javadoccomment">     * </em>
+<a name="459" href="#459">459</a> <em class="jxr_javadoccomment">     * @param artifact</em>
+<a name="460" href="#460">460</a> <em class="jxr_javadoccomment">     *            the attached artifact for the new dependency node</em>
+<a name="461" href="#461">461</a> <em class="jxr_javadoccomment">     * @return the new dependency node</em>
+<a name="462" href="#462">462</a> <em class="jxr_javadoccomment">     */</em>
+<a name="463" href="#463">463</a>     <em class="jxr_comment">// package protected for unit test</em>
+<a name="464" href="#464">464</a>     DependencyNode addNode( Artifact artifact )
+<a name="465" href="#465">465</a>     {
+<a name="466" href="#466">466</a>         DependencyNode node = createNode( artifact );
+<a name="467" href="#467">467</a> 
+<a name="468" href="#468">468</a>         DependencyNode previousNode = ( DependencyNode ) nodesByArtifact.put( node.getArtifact(), node );
+<a name="469" href="#469">469</a> 
+<a name="470" href="#470">470</a>         <strong class="jxr_keyword">if</strong> ( previousNode != <strong class="jxr_keyword">null</strong> )
+<a name="471" href="#471">471</a>         {
+<a name="472" href="#472">472</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException( <span class="jxr_string">"Duplicate node registered for artifact: "</span> + node.getArtifact() );
+<a name="473" href="#473">473</a>         }
+<a name="474" href="#474">474</a> 
+<a name="475" href="#475">475</a>         <strong class="jxr_keyword">if</strong> ( rootNode == <strong class="jxr_keyword">null</strong> )
+<a name="476" href="#476">476</a>         {
+<a name="477" href="#477">477</a>             rootNode = node;
+<a name="478" href="#478">478</a>         }
+<a name="479" href="#479">479</a> 
+<a name="480" href="#480">480</a>         currentNode = node;
+<a name="481" href="#481">481</a> 
+<a name="482" href="#482">482</a>         <strong class="jxr_keyword">return</strong> node;
+<a name="483" href="#483">483</a>     }
+<a name="484" href="#484">484</a> 
+<a name="485" href="#485">485</a> 
+<a name="486" href="#486">486</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="487" href="#487">487</a> <em class="jxr_javadoccomment">     * Gets the dependency node for the specified artifact from the dependency node cache.</em>
+<a name="488" href="#488">488</a> <em class="jxr_javadoccomment">     * </em>
+<a name="489" href="#489">489</a> <em class="jxr_javadoccomment">     * @param artifact</em>
+<a name="490" href="#490">490</a> <em class="jxr_javadoccomment">     *            the artifact to find the dependency node for</em>
+<a name="491" href="#491">491</a> <em class="jxr_javadoccomment">     * @return the dependency node, or &lt;code&gt;null&lt;/code&gt; if the specified artifact has no corresponding dependency</em>
+<a name="492" href="#492">492</a> <em class="jxr_javadoccomment">     *         node</em>
+<a name="493" href="#493">493</a> <em class="jxr_javadoccomment">     */</em>
+<a name="494" href="#494">494</a>     <strong class="jxr_keyword">private</strong> DependencyNode getNode( Artifact artifact )
+<a name="495" href="#495">495</a>     {
+<a name="496" href="#496">496</a>         <strong class="jxr_keyword">return</strong> ( DependencyNode ) nodesByArtifact.get( artifact );
+<a name="497" href="#497">497</a>     }
+<a name="498" href="#498">498</a> 
+<a name="499" href="#499">499</a> 
+<a name="500" href="#500">500</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="501" href="#501">501</a> <em class="jxr_javadoccomment">     * Removes the dependency node for the specified artifact from the dependency node cache.</em>
+<a name="502" href="#502">502</a> <em class="jxr_javadoccomment">     * </em>
+<a name="503" href="#503">503</a> <em class="jxr_javadoccomment">     * @param artifact</em>
+<a name="504" href="#504">504</a> <em class="jxr_javadoccomment">     *            the artifact to remove the dependency node for</em>
+<a name="505" href="#505">505</a> <em class="jxr_javadoccomment">     */</em>
+<a name="506" href="#506">506</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> removeNode( Artifact artifact )
+<a name="507" href="#507">507</a>     {
+<a name="508" href="#508">508</a>         DependencyNode node = ( DependencyNode ) nodesByArtifact.remove( artifact );
+<a name="509" href="#509">509</a> 
+<a name="510" href="#510">510</a>         <strong class="jxr_keyword">if</strong> ( !artifact.equals( node.getArtifact() ) )
+<a name="511" href="#511">511</a>         {
+<a name="512" href="#512">512</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException( <span class="jxr_string">"Removed dependency node artifact was expected to be "</span> + artifact
+<a name="513" href="#513">513</a>                 + <span class="jxr_string">" but was "</span> + node.getArtifact() );
+<a name="514" href="#514">514</a>         }
+<a name="515" href="#515">515</a>     }
+<a name="516" href="#516">516</a> 
+<a name="517" href="#517">517</a> 
+<a name="518" href="#518">518</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="519" href="#519">519</a> <em class="jxr_javadoccomment">     * Gets whether the all the ancestors of the dependency node currently being processed by this listener have an</em>
+<a name="520" href="#520">520</a> <em class="jxr_javadoccomment">     * included state.</em>
+<a name="521" href="#521">521</a> <em class="jxr_javadoccomment">     * </em>
+<a name="522" href="#522">522</a> <em class="jxr_javadoccomment">     * @return &lt;code&gt;true&lt;/code&gt; if all the ancestors of the current dependency node have a state of</em>
+<a name="523" href="#523">523</a> <em class="jxr_javadoccomment">     *         &lt;code&gt;INCLUDED&lt;/code&gt;</em>
+<a name="524" href="#524">524</a> <em class="jxr_javadoccomment">     */</em>
+<a name="525" href="#525">525</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> isCurrentNodeIncluded()
+<a name="526" href="#526">526</a>     {
+<a name="527" href="#527">527</a>         <strong class="jxr_keyword">boolean</strong> included = <strong class="jxr_keyword">true</strong>;
+<a name="528" href="#528">528</a> 
+<a name="529" href="#529">529</a>         <strong class="jxr_keyword">for</strong> ( Iterator iterator = parentNodes.iterator(); included &amp;&amp; iterator.hasNext(); )
+<a name="530" href="#530">530</a>         {
+<a name="531" href="#531">531</a>             DependencyNode node = ( DependencyNode ) iterator.next();
+<a name="532" href="#532">532</a> 
+<a name="533" href="#533">533</a>             <strong class="jxr_keyword">if</strong> ( node.getState() != DependencyNode.INCLUDED )
+<a name="534" href="#534">534</a>             {
+<a name="535" href="#535">535</a>                 included = false;
+<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>         <strong class="jxr_keyword">return</strong> included;
+<a name="540" href="#540">540</a>     }
+<a name="541" href="#541">541</a> 
+<a name="542" href="#542">542</a> 
+<a name="543" href="#543">543</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="544" href="#544">544</a> <em class="jxr_javadoccomment">     * Updates the specified node with any dependency management information cached in prior &lt;code&gt;manageArtifact&lt;/code&gt;</em>
+<a name="545" href="#545">545</a> <em class="jxr_javadoccomment">     * calls.</em>
+<a name="546" href="#546">546</a> <em class="jxr_javadoccomment">     * </em>
+<a name="547" href="#547">547</a> <em class="jxr_javadoccomment">     * @param node</em>
+<a name="548" href="#548">548</a> <em class="jxr_javadoccomment">     *            the node to update</em>
+<a name="549" href="#549">549</a> <em class="jxr_javadoccomment">     */</em>
+<a name="550" href="#550">550</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> flushDependencyManagement( DependencyNode node )
+<a name="551" href="#551">551</a>     {
+<a name="552" href="#552">552</a>         Artifact artifact = node.getArtifact();
+<a name="553" href="#553">553</a>         String premanagedVersion = ( String ) managedVersions.get( getRangeId( artifact ) );
+<a name="554" href="#554">554</a>         String premanagedScope = ( String ) managedScopes.get( getRangeId( artifact ) );
+<a name="555" href="#555">555</a> 
+<a name="556" href="#556">556</a>         <strong class="jxr_keyword">if</strong> ( premanagedVersion != <strong class="jxr_keyword">null</strong> || premanagedScope != <strong class="jxr_keyword">null</strong> )
+<a name="557" href="#557">557</a>         {
+<a name="558" href="#558">558</a>             <strong class="jxr_keyword">if</strong> ( premanagedVersion != <strong class="jxr_keyword">null</strong> )
+<a name="559" href="#559">559</a>             {
+<a name="560" href="#560">560</a>                 node.setPremanagedVersion( premanagedVersion );
+<a name="561" href="#561">561</a>             }
+<a name="562" href="#562">562</a> 
+<a name="563" href="#563">563</a>             <strong class="jxr_keyword">if</strong> ( premanagedScope != <strong class="jxr_keyword">null</strong> )
+<a name="564" href="#564">564</a>             {
+<a name="565" href="#565">565</a>                 node.setPremanagedScope( premanagedScope );
+<a name="566" href="#566">566</a>             }
+<a name="567" href="#567">567</a> 
+<a name="568" href="#568">568</a>             premanagedVersion = <strong class="jxr_keyword">null</strong>;
+<a name="569" href="#569">569</a>             premanagedScope = <strong class="jxr_keyword">null</strong>;
+<a name="570" href="#570">570</a>         }
+<a name="571" href="#571">571</a>     }
+<a name="572" href="#572">572</a> 
+<a name="573" href="#573">573</a> 
+<a name="574" href="#574">574</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getRangeId( Artifact artifact )
+<a name="575" href="#575">575</a>     {
+<a name="576" href="#576">576</a>         <strong class="jxr_keyword">return</strong> artifact.getDependencyConflictId() + <span class="jxr_string">":"</span> + artifact.getVersionRange();
+<a name="577" href="#577">577</a>     }
+<a name="578" href="#578">578</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/dependency/tree/package-frame.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/package-frame.html
new file mode 100644
index 0000000..29f9d2c
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/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.3.5 Reference Package org.apache.maven.shared.dependency.tree</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.dependency.tree</a>
+      	</h3>
+
+      	<h3>Classes</h3>
+
+      	<ul>
+      		          	<li>
+            	<a href="DependencyTreeResolutionListener.html" target="classFrame">DependencyTreeResolutionListener</a>
+          	</li>
+          	      	</ul>
+
+	</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
new file mode 100644
index 0000000..348e590
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/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.3.5 Reference Package org.apache.maven.shared.dependency.tree</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.dependency.tree</h2>
+
+		<table class="summary">
+        	<thead>
+          		<tr>
+            		<th>Class Summary</th>
+          		</tr>
+        	</thead>
+        	<tbody>
+        		            	<tr>
+              		<td>
+                		<a href="DependencyTreeResolutionListener.html" target="classFrame">DependencyTreeResolutionListener</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-2011 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
new file mode 100644
index 0000000..c82b3ad
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.html
@@ -0,0 +1,345 @@
+<!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>DefaultMaven2OsgiConverter xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.maven.shared.osgi;
+<a name="20" href="#20">20</a>  
+<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>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Enumeration;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.jar.JarFile;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Matcher;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Pattern;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.zip.ZipEntry;
+<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="37" href="#37">37</a>  
+<a name="38" href="#38">38</a>  
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * Default implementation of {@link Maven2OsgiConverter}</em>
+<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * @plexus.component</em>
+<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="44" href="#44">44</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="45" href="#45">45</a>  <em class="jxr_javadoccomment"> * @version $Id$</em>
+<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="47" href="#47">47</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> DefaultMaven2OsgiConverter implements Maven2OsgiConverter
+<a name="48" href="#48">48</a>  {
+<a name="49" href="#49">49</a>  
+<a name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String FILE_SEPARATOR = System.getProperty( <span class="jxr_string">"file.separator"</span> );
+<a name="51" href="#51">51</a>  
+<a name="52" href="#52">52</a>  
+<a name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> String getBundleSymbolicName( String groupId, String artifactId )
+<a name="54" href="#54">54</a>      {
+<a name="55" href="#55">55</a>          <strong class="jxr_keyword">return</strong> groupId + <span class="jxr_string">"."</span> + artifactId;
+<a name="56" href="#56">56</a>      }
+<a name="57" href="#57">57</a>  
+<a name="58" href="#58">58</a>  
+<a name="59" href="#59">59</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     * Get the symbolic name as groupId + "." + artifactId, with the following exceptions</em>
+<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     * &lt;ul&gt;</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * &lt;li&gt;if artifact.getFile is not null and the jar contains a OSGi Manifest with</em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * Bundle-SymbolicName property then that value is returned&lt;/li&gt;</em>
+<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     * &lt;li&gt;if groupId has only one section (no dots) and artifact.getFile is not null then the</em>
+<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     * first package name with classes is returned. eg. commons-logging:commons-logging -&gt;</em>
+<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     * org.apache.commons.logging&lt;/li&gt;</em>
+<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     * &lt;li&gt;if artifactId is equal to last section of groupId then groupId is returned. eg.</em>
+<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="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="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> }
+</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/ManifestReadingException.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/ManifestReadingException.html
new file mode 100644
index 0000000..24ae4e4
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/ManifestReadingException.html
@@ -0,0 +1,67 @@
+<!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>ManifestReadingException xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.maven.shared.osgi;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="23" href="#23">23</a>  <em class="jxr_javadoccomment"> * Exception while reading the manifest. Encapsulates an IOException to make it runtime</em>
+<a name="24" href="#24">24</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="25" href="#25">25</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="26" href="#26">26</a>  <em class="jxr_javadoccomment"> * @version $Id$</em>
+<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/maven/shared/osgi/ManifestReadingException.html">ManifestReadingException</a> <strong class="jxr_keyword">extends</strong> RuntimeException
+<a name="29" href="#29">29</a>  {
+<a name="30" href="#30">30</a>  
+<a name="31" href="#31">31</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/maven/shared/osgi/ManifestReadingException.html">ManifestReadingException</a>()
+<a name="32" href="#32">32</a>      {
+<a name="33" href="#33">33</a>          <strong class="jxr_keyword">super</strong>();
+<a name="34" href="#34">34</a>      }
+<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">public</strong> <a href="../../../../../org/apache/maven/shared/osgi/ManifestReadingException.html">ManifestReadingException</a>( String message, Throwable cause )
+<a name="38" href="#38">38</a>      {
+<a name="39" href="#39">39</a>          <strong class="jxr_keyword">super</strong>( message, cause );
+<a name="40" href="#40">40</a>      }
+<a name="41" href="#41">41</a>  
+<a name="42" href="#42">42</a>  
+<a name="43" href="#43">43</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/maven/shared/osgi/ManifestReadingException.html">ManifestReadingException</a>( String message )
+<a name="44" href="#44">44</a>      {
+<a name="45" href="#45">45</a>          <strong class="jxr_keyword">super</strong>( message );
+<a name="46" href="#46">46</a>      }
+<a name="47" href="#47">47</a>  
+<a name="48" href="#48">48</a>  
+<a name="49" href="#49">49</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/maven/shared/osgi/ManifestReadingException.html">ManifestReadingException</a>( Throwable cause )
+<a name="50" href="#50">50</a>      {
+<a name="51" href="#51">51</a>          <strong class="jxr_keyword">super</strong>( cause );
+<a name="52" href="#52">52</a>      }
+<a name="53" href="#53">53</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/Maven2OsgiConverter.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/Maven2OsgiConverter.html
new file mode 100644
index 0000000..fe0a52e
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/Maven2OsgiConverter.html
@@ -0,0 +1,77 @@
+<!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>Maven2OsgiConverter xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.maven.shared.osgi;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<a name="23" href="#23">23</a>  
+<a name="24" href="#24">24</a>  
+<a name="25" href="#25">25</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="26" href="#26">26</a>  <em class="jxr_javadoccomment"> * Converter from Maven groupId,artifactId and versions to OSGi Bundle-SymbolicName and version</em>
+<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="28" href="#28">28</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="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * @version $Id$</em>
+<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">interface</strong> Maven2OsgiConverter
+<a name="32" href="#32">32</a>  {
+<a name="33" href="#33">33</a>  
+<a name="34" href="#34">34</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment">     * Get the OSGi symbolic name for the artifact</em>
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment">     * @param artifact</em>
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment">     * @return the Bundle-SymbolicName manifest property</em>
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="40" href="#40">40</a>      String getBundleSymbolicName( Artifact artifact );
+<a name="41" href="#41">41</a>  
+<a name="42" href="#42">42</a>  
+<a name="43" href="#43">43</a>      String getBundleFileName( Artifact artifact );
+<a name="44" href="#44">44</a>  
+<a name="45" href="#45">45</a>  
+<a name="46" href="#46">46</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">     * Convert a Maven version into an OSGi compliant version</em>
+<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">     * @param artifact Maven artifact</em>
+<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     * @return the OSGi version</em>
+<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="52" href="#52">52</a>      String getVersion( Artifact artifact );
+<a name="53" href="#53">53</a>  
+<a name="54" href="#54">54</a>  
+<a name="55" href="#55">55</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     * Convert a Maven version into an OSGi compliant version</em>
+<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     * @param version Maven version</em>
+<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment">     * @return the OSGi version</em>
+<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="61" href="#61">61</a>      String getVersion( String version );
+<a name="62" href="#62">62</a>  
+<a name="63" href="#63">63</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-frame.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-frame.html
new file mode 100644
index 0000000..8a158f3
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-frame.html
@@ -0,0 +1,30 @@
+
+<!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.3.5 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="DefaultMaven2OsgiConverter.html" target="classFrame">DefaultMaven2OsgiConverter</a>
+          	</li>
+          	          	<li>
+            	<a href="ManifestReadingException.html" target="classFrame">ManifestReadingException</a>
+          	</li>
+          	          	<li>
+            	<a href="Maven2OsgiConverter.html" target="classFrame">Maven2OsgiConverter</a>
+          	</li>
+          	      	</ul>
+
+	</body>
+</html>
\ No newline at end of file
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
new file mode 100644
index 0000000..c33547a
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-summary.html
@@ -0,0 +1,77 @@
+
+<!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.3.5 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="DefaultMaven2OsgiConverter.html" target="classFrame">DefaultMaven2OsgiConverter</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ManifestReadingException.html" target="classFrame">ManifestReadingException</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="Maven2OsgiConverter.html" target="classFrame">Maven2OsgiConverter</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-2011 The Apache Software Foundation. All Rights Reserved.
+	</body>
+</html>
\ No newline at end of file
diff --git a/bundleplugin/doc/site/xref/overview-frame.html b/bundleplugin/doc/site/xref/overview-frame.html
new file mode 100644
index 0000000..6bbfaa4
--- /dev/null
+++ b/bundleplugin/doc/site/xref/overview-frame.html
@@ -0,0 +1,34 @@
+
+<!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.3.5 Reference</title>
+		<link rel="stylesheet" type="text/css" href="stylesheet.css" title="style" />
+	</head>
+	<body>
+
+		<h3>
+			<a href="allclasses-frame.html" target="packageFrame">All Classes</a>
+		</h3>
+
+		<h3>Packages</h3>
+
+		<ul>
+						<li>
+				<a href="org/apache/felix/bundleplugin/package-frame.html" target="packageFrame">org.apache.felix.bundleplugin</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/package-frame.html" target="packageFrame">org.apache.felix.obrplugin</a>
+			</li>
+						<li>
+				<a href="org/apache/maven/shared/dependency/tree/package-frame.html" target="packageFrame">org.apache.maven.shared.dependency.tree</a>
+			</li>
+						<li>
+				<a href="org/apache/maven/shared/osgi/package-frame.html" target="packageFrame">org.apache.maven.shared.osgi</a>
+			</li>
+					</ul>
+
+	</body>
+</html>
+
diff --git a/bundleplugin/doc/site/xref/overview-summary.html b/bundleplugin/doc/site/xref/overview-summary.html
new file mode 100644
index 0000000..d186331
--- /dev/null
+++ b/bundleplugin/doc/site/xref/overview-summary.html
@@ -0,0 +1,79 @@
+
+<!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.3.5 Reference</title>
+		<link rel="stylesheet" type="text/css" href="stylesheet.css" title="style" />
+	</head>
+	<body>
+				<div class="overview">
+			<ul>
+				<li class="selected">Overview</li>
+				<li>Package</li>
+			</ul>
+		</div>
+		<div class="framenoframe">
+			<ul>
+				<li>
+					<a href="index.html" target="_top">FRAMES</a>
+				</li>
+				<li>
+    	        	<a href="overview-summary.html" target="_top">NO FRAMES</a>
+        	  	</li>
+	        </ul>
+      	</div>
+		
+		      	<h2>Maven Bundle Plugin 2.3.5 Reference</h2>
+
+		<table class="summary">
+        	<thead>
+          		<tr>
+            		<th>Packages</th>
+          		</tr>
+        	</thead>
+        	<tbody>
+    	    	            	<tr>
+              		<td>
+                		<a href="org/apache/felix/bundleplugin/package-summary.html">org.apache.felix.bundleplugin</a>
+              		</td>
+            	</tr>
+	          	            	<tr>
+              		<td>
+                		<a href="org/apache/felix/obrplugin/package-summary.html">org.apache.felix.obrplugin</a>
+              		</td>
+            	</tr>
+	          	            	<tr>
+              		<td>
+                		<a href="org/apache/maven/shared/dependency/tree/package-summary.html">org.apache.maven.shared.dependency.tree</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>
+		
+				<div class="overview">
+			<ul>
+				<li class="selected">Overview</li>
+				<li>Package</li>
+			</ul>
+		</div>
+		<div class="framenoframe">
+			<ul>
+				<li>
+					<a href="index.html" target="_top">FRAMES</a>
+				</li>
+				<li>
+    	        	<a href="overview-summary.html" target="_top">NO FRAMES</a>
+        	  	</li>
+	        </ul>
+      	</div>
+		
+		<hr />
+		Copyright &copy; 2006-2011 The Apache Software Foundation. All Rights Reserved.
+	</body>
+</html>
\ No newline at end of file
diff --git a/bundleplugin/doc/site/xref/stylesheet.css b/bundleplugin/doc/site/xref/stylesheet.css
new file mode 100644
index 0000000..00e6114
--- /dev/null
+++ b/bundleplugin/doc/site/xref/stylesheet.css
@@ -0,0 +1,116 @@
+/* Javadoc style sheet */
+/* Define colors, fonts and other style attributes here to override the defaults  */
+body {
+    background-color: #fff;
+    font-family: Arial, Helvetica, sans-serif;
+}
+
+a:link {
+    color: #00f;
+}
+a:visited {
+    color: #00a;
+}
+
+a:active, a:hover {
+    color: #f30 !important;
+}
+
+ul, li {
+    list-style-type:none;
+    margin:0;
+    padding:0;
+}
+
+table td {
+    padding: 3px;
+    border: 1px solid #000;
+}
+table {
+    width:100%;
+    border: 1px solid #000;
+    border-collapse: collapse;
+}
+
+div.overview {
+    background-color:#ddd;
+    padding: 4px 4px 4px 0;
+}
+div.overview li, div.framenoframe li {
+    display: inline;
+}
+div.framenoframe {
+    text-align: center;
+    font-size: x-small;
+}
+div.framenoframe li {
+    margin: 0 3px 0 3px;
+}
+div.overview li {
+    margin:3px 3px 0 3px;
+    padding: 4px;
+}
+li.selected {
+    background-color:#888;
+    color: #fff;
+    font-weight: bold;
+}
+
+table.summary {
+    margin-bottom: 20px;
+}
+table.summary td, table.summary th {
+    font-weight: bold;
+    text-align: left;
+    padding: 3px;
+}
+table.summary th {
+    background-color:#036;
+    color: #fff;
+}
+table.summary td {
+    background-color:#eee;
+    border: 1px solid black;
+}
+
+em {
+    color: #A00;
+}
+em.comment {
+    color: #390;
+}
+.string {
+    color: #009;
+}
+div#footer {
+    text-align:center;
+}
+#overview {
+    padding:2px;
+}
+
+hr {
+    height: 1px;
+    color: #000;
+}
+
+/* JXR style sheet */
+.jxr_comment
+{
+    color: #390;
+}
+
+.jxr_javadoccomment
+{
+    color: #A00;
+}
+
+.jxr_string
+{
+    color: #009;
+}
+
+.jxr_keyword
+{
+    color: #000;
+}
