Add site docs

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1142999 13f79535-47bb-0310-9956-ffa450edef68
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;
+}