diff --git a/bundleplugin/doc/site/wrap-mojo.html b/bundleplugin/doc/site/wrap-mojo.html
index ee5a3ee..f3cc3a1 100644
--- a/bundleplugin/doc/site/wrap-mojo.html
+++ b/bundleplugin/doc/site/wrap-mojo.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia at Jun 8, 2013 -->
+<!-- Generated by Apache Maven Doxia at Jun 20, 2014 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -11,7 +11,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20130608" />
+    <meta name="Date-Revision-yyyymmdd" content="20140620" />
     <meta http-equiv="Content-Language" content="en" />
         
   </head>
@@ -28,8 +28,8 @@
             
         
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2013-06-08</span>
-                  &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</span>
+        <span id="publishDate">Last Published: 2014-06-20</span>
+                  &nbsp;| <span id="projectVersion">Version: 2.5.0</span>
                       </div>
             <div class="xright">        
         
@@ -82,7 +82,7 @@
   
     <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.4.0-SNAPSHOT:wrap</p>
+      <p>org.apache.felix:maven-bundle-plugin:2.5.0: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>
@@ -190,32 +190,38 @@
             <td>Directory where the manifest will be written<br /><b>Default value is</b>: <tt>${project.build.outputDirectory}/META-INF</tt>.<br /><b>User property is</b>: <tt>manifestLocation</tt>.</td>
           </tr>
           <tr class="b">
+            <td><b><a href="#niceManifest">niceManifest</a></b></td>
+            <td><tt>boolean</tt></td>
+            <td><tt>-</tt></td>
+            <td>(no description)<br /></td>
+          </tr>
+          <tr class="a">
             <td><b><a href="#packaging">packaging</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
             <td>Packaging type of the bundle to be installed. For example, &quot;jar&quot;.
 Defaults to none which means use the same packaging as the project.<br /></td>
           </tr>
-          <tr class="a">
+          <tr class="b">
             <td><b><a href="#rebuildBundle">rebuildBundle</a></b></td>
             <td><tt>boolean</tt></td>
             <td><tt>-</tt></td>
             <td>When true, generate the manifest by rebuilding the full bundle in
 memory<br /><b>User property is</b>: <tt>rebuildBundle</tt>.</td>
           </tr>
-          <tr class="b">
+          <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="a">
+          <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 /><b>User property is</b>: <tt>unpackBundle</tt>.</td>
           </tr>
-          <tr class="b">
+          <tr class="a">
             <td><b><a href="#wrapImportPackage">wrapImportPackage</a></b></td>
             <td><tt>String</tt></td>
             <td><tt>-</tt></td>
@@ -290,6 +296,11 @@
           <li><b>Required</b>: <tt>No</tt></li>
           <li><b>User Property</b>: <tt>manifestLocation</tt></li>
           <li><b>Default</b>: <tt>${project.build.outputDirectory}/META-INF</tt></li>
+        </ul><hr /><p><b><a name="niceManifest">niceManifest</a>:</b></p>
+        <div>(no description)</div>
+        <ul>
+          <li><b>Type</b>: <tt>boolean</tt></li>
+          <li><b>Required</b>: <tt>No</tt></li>
         </ul><hr /><p><b><a name="outputDirectory">outputDirectory</a>:</b></p>
         <div>The directory for the generated bundles.</div>
         <ul>
@@ -338,7 +349,7 @@
       <hr/>
     </div>
     <div id="footer">
-      <div class="xright">Copyright &#169;                    2006-2013
+      <div class="xright">Copyright &#169;                    2006-2014
                         <a href="http://www.apache.org/">The Apache Software Foundation</a>.
             All Rights Reserved.      
         
