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>
+
