diff --git a/bundleplugin/doc/site/team-list.html b/bundleplugin/doc/site/team-list.html
index 115e818..956fe33 100644
--- a/bundleplugin/doc/site/team-list.html
+++ b/bundleplugin/doc/site/team-list.html
@@ -1,207 +1,105 @@
 <!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 -->
-
+<!-- Generated by Apache Maven Doxia at Nov 28, 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 name="Date-Revision-yyyymmdd" content="20111128" />
     <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>
-
+        <span id="publishDate">Last Published: 2011-11-28</span>
+                  &nbsp;| <span id="projectVersion">Version: 2.4.0-SNAPSHOT</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();
@@ -218,38 +116,20 @@
 
 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>
-
