diff --git a/bundleplugin/doc/apache-felix-maven-bundle-plugin-bnd.html b/bundleplugin/doc/apache-felix-maven-bundle-plugin-bnd.html
index be895cf..256a1bd 100644
--- a/bundleplugin/doc/apache-felix-maven-bundle-plugin-bnd.html
+++ b/bundleplugin/doc/apache-felix-maven-bundle-plugin-bnd.html
@@ -1,684 +1,61 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html><head>
-
-
-  
     <title>Apache Felix - Apache Felix Maven Bundle Plugin (BND)</title>
     <link rel="stylesheet" href="apache-felix-maven-bundle-plugin-bnd_files/site.css" type="text/css" media="all">
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-  </head><body>
+  </head>
+  <body>
     <div class="title"><div class="logo"><a href="http://felix.apache.org/site/index.html"><img alt="Apache Felix" src="apache-felix-maven-bundle-plugin-bnd_files/logo.png" border="0"></a></div><div class="header"><a href="http://www.apache.org/"><img alt="Apache" src="apache-felix-maven-bundle-plugin-bnd_files/apache.png" border="0"></a></div></div>
     <div class="menu">
-
-    
-    
-    
-
-    
-    
-    
-    
-
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-            
-            
-
-            
-            
-            
-            
-
-            
-            
-            
-            
-
-            &gt;
+<ul>
 	<li><a href="http://felix.apache.org/site/news.html" title="news">news</a></li>
-	<li><a href="http://felix.apache.org/site/license.html" title="license">license</a></li>
-	<li><a href="http://felix.apache.org/site/downloads.cgi" rel="nofollow">downloads</a></li>
+	<li><a href="http://www.apache.org/licenses/" class="external-link" rel="nofollow">license</a></li>
+	<li><a href="http://felix.apache.org/site/downloads.cgi" class="external-link" rel="nofollow">downloads</a></li>
 	<li><a href="http://felix.apache.org/site/documentation.html" title="documentation">documentation</a></li>
 	<li><a href="http://felix.apache.org/site/mailinglists.html" title="mailinglists">mailing lists</a></li>
 	<li><a href="http://felix.apache.org/site/contributing.html" title="Contributing">contributing</a></li>
-	<li><a href="http://www.apache.org/" rel="nofollow">asf</a></li>
-	<li><a href="http://www.apache.org/foundation/sponsorship.html" rel="nofollow">sponsorship</a></li>
-	<li><a href="http://www.apache.org/foundation/thanks.html" rel="nofollow">sponsors</a>
+	<li><a href="http://www.apache.org/" class="external-link" rel="nofollow">asf</a></li>
+	<li><a href="http://www.apache.org/security/" class="external-link" rel="nofollow">security</a></li>
+	<li><a href="http://www.apache.org/foundation/sponsorship.html" class="external-link" rel="nofollow">sponsorship</a></li>
+	<li><a href="http://www.apache.org/foundation/thanks.html" class="external-link" rel="nofollow">sponsors</a>
 <!-- ApacheCon Ad -->
-<iframe src="apache-felix-maven-bundle-plugin-bnd_files/button.html" style="border-width: 0pt; float: left;" scrolling="no" width="135" frameborder="0" height="135"></iframe>
-<p style="height: 100px;">
-<!-- ApacheCon Ad -->
-&lt;
-
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-        
-    
-    </p></li></div>
+<iframe src="apache-felix-maven-bundle-plugin-bnd_files/button.html" style="border-width: 0pt; float: left;" frameborder="0" height="135" scrolling="no" width="135"></iframe>
+<p style="height: 100px">
+<!-- ApacheCon Ad --></p></li>
+</ul>
+    </div>
     <div class="main">
 <h1><a name="ApacheFelixMavenBundlePlugin(BND)-BundlePluginforMaven"></a>Bundle Plugin for Maven</h1>
 
-<p>This plugin for Maven 2 is based on the <a href="http://www.aqute.biz/Code/Bnd" rel="nofollow">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>
+<p>This plugin for Maven 2 is based on the <a href="http://www.aqute.biz/Bnd/Bnd" class="external-link" rel="nofollow">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="panelMacro"><table class="infoMacro"><colgroup><col width="24"><col></colgroup><tbody><tr><td valign="top"><img src="apache-felix-maven-bundle-plugin-bnd_files/information.gif" alt="" align="absmiddle" border="0" width="16" height="16"></td><td>If you have questions about the maven-bundle-plugin please read the <a href="http://felix.apache.org/site/apache-felix-bundle-plugin-faq.html" rel="nofollow">FAQ</a> first. If you still have questions you can ask them on the <a href="http://felix.apache.org/site/mailinglists.html" rel="nofollow">Felix user list</a>.</td></tr></tbody></table></div>
+<div class="panelMacro"><table class="infoMacro"><colgroup><col width="24"><col></colgroup><tbody><tr><td valign="top"><img src="apache-felix-maven-bundle-plugin-bnd_files/information.gif" alt="" align="absmiddle" border="0" height="16" width="16"></td><td>If you have questions about the maven-bundle-plugin please read the <a href="http://felix.apache.org/site/apache-felix-bundle-plugin-faq.html" class="external-link" rel="nofollow">FAQ</a> first. If you still have questions you can ask them on the <a href="http://felix.apache.org/site/mailinglists.html" class="external-link" rel="nofollow">Felix user list</a>.</td></tr></tbody></table></div>
 
 <p><em>NOTE: test scoped dependencies are <b>not</b> included in the classpath seen by BND.</em></p>
 
-<p>Since the 1.4.0 release, this plugin also aims to automate OBR (OSGi
-Bundle Repository) management. It helps manage a local OBR for your
-local Maven repository, and also supports remote OBRs for bundle
-distribution. The plug-in automatically computes bundle capabilities
-and requirements, using a combination of Bindex and Maven metadata.</p>
+<p>Since the 1.4.0 release, this plugin also aims to automate OBR (OSGi 
+Bundle Repository) management. It helps manage a local OBR for your 
+local Maven repository, and also supports remote OBRs for bundle 
+distribution. The plug-in automatically computes bundle capabilities and
+ requirements, using a combination of Bindex and Maven metadata.</p>
+
+<div class="panelMacro"><table class="tipMacro"><colgroup><col width="24"><col></colgroup><tbody><tr><td valign="top"><img src="apache-felix-maven-bundle-plugin-bnd_files/check.gif" alt="" align="absmiddle" border="0" height="16" width="16"></td><td><b><a href="http://svn.apache.org/repos/asf/felix/releases/maven-bundle-plugin-2.3.5/doc/site/index.html" class="external-link" rel="nofollow">Standard Maven Documentation is now available for maven-bundle-plugin 2.3.5</a></b></td></tr></tbody></table></div>
+
+<div class="panelMacro"><table class="tipMacro"><colgroup><col width="24"><col></colgroup><tbody><tr><td valign="top"><img src="apache-felix-maven-bundle-plugin-bnd_files/check.gif" alt="" align="absmiddle" border="0" height="16" width="16"></td><td><b><a href="http://www.aqute.biz/Bnd/Format" class="external-link" rel="nofollow">A complete list of instructions and their format is available from the BND website</a></b></td></tr></tbody></table></div>
 
 <p><a name="ApacheFelixMavenBundlePlugin(BND)-simpleexample"></a></p>
 
 <h1><a name="ApacheFelixMavenBundlePlugin(BND)-SimpleExample"></a>Simple Example</h1>
 
-<p>Rather than going straight to a detailed list of plugin features, we
-will first look at a simple example of how to use the plugin to give an
+<p>Rather than going straight to a detailed list of plugin features, we 
+will first look at a simple example of how to use the plugin to give an 
 immediate flavor. A detailed "<a href="#ApacheFelixMavenBundlePlugin%2528BND%2529-howto">how to</a>" will follow.</p>
 
 <p>Assume that we have a simple bundle project that has a pubic API package an several implementation packages, such as:</p>
@@ -714,34 +91,33 @@
 </div></div>
 
 <p>The <tt>&lt;Export-Package&gt;</tt> and <tt>&lt;Private-Package&gt;</tt> instructions tell the plugin about the contents of the resulting bundle JAR file. The <tt>&lt;Export-Package&gt;</tt> instruction tells the plugin which of the available packages to copy into the bundle <b>and</b> export, while the <tt>&lt;Private-Package&gt;</tt> instruction indicates which of the available packages to copy into the bundle <b>but not</b>
-export. If the two sets overlap, as they do in the case, then the
-export takes precedence. Since we did not specify any values for any
-other bundle manifest headers, they will assume default values which
-are described <a href="#ApacheFelixMavenBundlePlugin%2528BND%2529-defaultbehavior">below</a>. One specific behavior to highlight is that the plugin generates the <tt>Import-Package</tt>
-bundle manifest header based on the contents of the bundle, which means
-that you generally do not ever need to explicitly specify it yourself.
+ export. If the two sets overlap, as they do in the case, then the 
+export takes precedence. Since we did not specify any values for any 
+other bundle manifest headers, they will assume default values which are
+ described <a href="#ApacheFelixMavenBundlePlugin%2528BND%2529-defaultbehavior">below</a>. One specific behavior to highlight is that the plugin generates the <tt>Import-Package</tt>
+ bundle manifest header based on the contents of the bundle, which means
+ that you generally do not ever need to explicitly specify it yourself. 
 That's it.</p>
 
 <h1><a name="ApacheFelixMavenBundlePlugin(BND)-Features"></a>Features</h1>
 
-<p>The BND library underlying the plugin defines instructions to direct
-its behavior. For this Maven plugin, these instructions are issued in
+<p>The BND library underlying the plugin defines instructions to direct 
+its behavior. For this Maven plugin, these instructions are issued in 
 the plugin configuration section of the POM file, as was illustrated <a href="#ApacheFelixMavenBundlePlugin%2528BND%2529-simpleexample">above</a>. BND recognizes three types of instructions:</p>
 
 <ol>
-	<li><em>Manifest headers</em> - Any instruction that starts with
-a capital letter will appear in the resulting bundle's manifest file;
-the value for the header will either be copied, augmented, or generated
-by BND depending on the instruction.</li>
+	<li><em>Manifest headers</em> - Any instruction that starts with a 
+capital letter will appear in the resulting bundle's manifest file; the 
+value for the header will either be copied, augmented, or generated by 
+BND depending on the instruction.</li>
 	<li><em>Variables</em> - Any instruction starting with a lowercase letter is assumed to be a variable in the form of a name-value pair, such as <tt>version=3.0</tt>, that can be used for property substitution, but is not copied to the manifest.</li>
-	<li><em>Directives</em>
-- Any instruction starting with a '-' character is considered to be a
-directive that informs BND to perform some special processing and is
-not copied to the manifest.</li>
+	<li><em>Directives</em> - Any instruction starting with a '-' character
+ is considered to be a directive that informs BND to perform some 
+special processing and is not copied to the manifest.</li>
 </ol>
 
 
-<p>The remainder of this section covers the most important aspects of BND's instructions; for complete details refer to the <a href="http://www.aqute.biz/Code/Bnd" rel="nofollow">BND documentation</a>.</p>
+<p>The remainder of this section covers the most important aspects of BND's instructions; for complete details refer to the <a href="http://www.aqute.biz/Code/Bnd" class="external-link" rel="nofollow">BND documentation</a>.</p>
 
 <p><a name="ApacheFelixMavenBundlePlugin(BND)-instructions"></a></p>
 
@@ -749,37 +125,37 @@
 
 <h3><a name="ApacheFelixMavenBundlePlugin(BND)-{{&lt;ExportPackage&gt;}}"></a><tt>&lt;Export-Package&gt;</tt></h3>
 
-<p>The <tt>&lt;Export-Package&gt;</tt> instruction is a list of
-packages for the bundle to export. These packages are copied into the
-resulting bundle JAR file from the available classes (i.e., project
-classes, dependencies, and class path); thus, it is possible to include
-classes into your bundle that are not associated with source files in
-your project. <tt>&lt;Export-Package&gt;</tt> can be specified with
-package patterns using the '*' wildcard. Also, it is possible to
-exclude packages using negation by starting the package pattern with
-'!'. Thus, non-negated patterns indicate which of the available
-packages to include in the bundle, whereas negated patterns indicate
-which should not be included in the bundle.</p>
+<p>The <tt>&lt;Export-Package&gt;</tt> instruction is a list of packages
+ for the bundle to export. These packages are copied into the resulting 
+bundle JAR file from the available classes (i.e., project classes, 
+dependencies, and class path); thus, it is possible to include classes 
+into your bundle that are not associated with source files in your 
+project. <tt>&lt;Export-Package&gt;</tt> can be specified with package 
+patterns using the '*' wildcard. Also, it is possible to exclude 
+packages using negation by starting the package pattern with '!'. Thus, 
+non-negated patterns indicate which of the available packages to include
+ in the bundle, whereas negated patterns indicate which should not be 
+included in the bundle.</p>
 
 <p>The list of package patterns is ordered and earlier patterns are applied before later patterns. For example, if you specify "<tt>org.foo.*,!org.foo.impl</tt>" the second pattern has no effect since all <tt>org.foo</tt> packages have already been selected by the first pattern. Instead, you should specify "<tt>!org.foo.impl,org.foo.*</tt>", which will export all <tt>org.foo</tt> packages except <tt>org.foo.impl</tt>.</p>
 
-<p>Following standard OSGi R4 syntax, package patterns can include both
-directives and attributes, which will be copied appropriately into the
-generated Export-Package manifest header. Besides explicitly listing
-package version attributes, BND will also determine package versions by
+<p>Following standard OSGi R4 syntax, package patterns can include both 
+directives and attributes, which will be copied appropriately into the 
+generated Export-Package manifest header. Besides explicitly listing 
+package version attributes, BND will also determine package versions by 
 examining the source JAR file or from <tt>packageinfo</tt> files in the package directory.</p>
 
 <h3><a name="ApacheFelixMavenBundlePlugin(BND)-{{&lt;PrivatePackage&gt;}}"></a><tt>&lt;Private-Package&gt;</tt></h3>
 
 <p>The <tt>&lt;Private-Package&gt;</tt> instruction is similar in every way to the <tt>&lt;Export-Package&gt;</tt> instruction, except for the fact that these packages will <b>not</b>
-be exported by the bundle. If a package is selected by both the export
+ be exported by the bundle. If a package is selected by both the export 
 and private package headers, then the export takes precedence.</p>
 
 <h3><a name="ApacheFelixMavenBundlePlugin(BND)-{{&lt;IncludeResource&gt;}}"></a><tt>&lt;Include-Resource&gt;</tt></h3>
 
-<p>The <tt>&lt;Include-Resource&gt;</tt> instruction is a list of
-arbitrary resources that should be copied into the bundle JAR file. The
-specified resources are declared as clauses that can have the following
+<p>The <tt>&lt;Include-Resource&gt;</tt> instruction is a list of 
+arbitrary resources that should be copied into the bundle JAR file. The 
+specified resources are declared as clauses that can have the following 
 forms:</p>
 
 <div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
@@ -791,68 +167,65 @@
 </div></div>
 
 <p>For the <tt>&lt;Include-Resource&gt;</tt> instruction, actual file paths are relative to the <tt>pom.xml</tt>, while file copy destinations are relative to the root of the resulting bundle JAR file. In the case of <tt>assignment</tt> or <tt>simple</tt> forms, the <tt>PATH</tt> parameter can point to a file or directory. The <tt>simple</tt>
-form will place the resource in the bundle JAR with only the file name,
-i.e., without any path component. For example, including <tt>src/main/resources/a/b.c</tt> will result in a resource <tt>b.c</tt> in the root of the bundle JAR. If the <tt>PATH</tt>
-points to a directory, the entire directory hierarchy is copied into
-the resulting bundle JAR file relative to the specified directory. If a
-specific resource must be placed into a subdirectory of the bundle jar,
-then use the <tt>assignment</tt> form, where the first path is the the
-destination path (including file name if the resource is a file) and
-the second path is the resource to copy. The <tt>inline</tt> form requires a ZIP or JAR file, which will be completely expanded in the bundle JAR.</p>
+ form will place the resource in the bundle JAR with only the file name,
+ i.e., without any path component. For example, including <tt>src/main/resources/a/b.c</tt> will result in a resource <tt>b.c</tt> in the root of the bundle JAR. If the <tt>PATH</tt>
+ points to a directory, the entire directory hierarchy is copied into 
+the resulting bundle JAR file relative to the specified directory.  If a
+ specific resource must be placed into a subdirectory of the bundle jar,
+ then use the <tt>assignment</tt> form, where the first path is the the 
+destination path (including file name if the resource is a file) and the
+ second path is the resource to copy. The <tt>inline</tt> form requires a ZIP or JAR file, which will be completely expanded in the bundle JAR.</p>
 
-<p>If a resource clause is specified inside of "{ ... }" brackets, then
-variable substitution will be performed on the resource, where
-variables in the resources are denoted with "${ ... }" syntax.</p>
+<p>If a resource clause is specified inside of "{ ... }" brackets, then 
+variable substitution will be performed on the resource, where variables
+ in the resources are denoted with "${ ... }" syntax.</p>
 
 <p>By default the bundle plugin converts the project's Maven resource directories into a single <tt>&lt;Include-Resource&gt;</tt> instruction. If you specify your own <tt>&lt;Include-Resource&gt;</tt> instruction, this will replace the generated one. To include the generated list of Maven resources in your own <tt>&lt;Include-Resource&gt;</tt> instruction just add {<tt>maven-resources</tt>} to the list and it will be expanded automatically.</p>
 
 <h3><a name="ApacheFelixMavenBundlePlugin(BND)-{{&lt;ImportPackage&gt;}}"></a><tt>&lt;Import-Package&gt;</tt></h3>
 
-<p>The <tt>&lt;Import-Package&gt;</tt> instruction is a list of
-packages that are required by the bundle's contained packages. The
-default for this header is "*", resulting in importing all referred
-packages. This header rarely has to be explicitly specified. However,
-in certain cases when there is an unwanted import, such an import can
-be removed by using a negation package pattern. The package patterns
-work in the same way as for <tt>&lt;Export-Package&gt;</tt>, which means they are ordered. For example, if you wanted to import all packages except <tt>org.foo.impl</tt> you would specify "<tt>!org.foo.impl,*</tt>"</p>
+<p>The <tt>&lt;Import-Package&gt;</tt> instruction is a list of packages
+ that are required by the bundle's contained packages. The default for 
+this header is "*", resulting in importing all referred packages. This 
+header rarely has to be explicitly specified. However, in certain cases 
+when there is an unwanted import, such an import can be removed by using
+ a negation package pattern. The package patterns work in the same way 
+as for <tt>&lt;Export-Package&gt;</tt>, which means they are ordered. For example, if you wanted to import all packages except <tt>org.foo.impl</tt> you would specify "<tt>!org.foo.impl,*</tt>"</p>
 
 <p><a name="ApacheFelixMavenBundlePlugin(BND)-defaultbehavior"></a></p>
 
 <h2><a name="ApacheFelixMavenBundlePlugin(BND)-DefaultBehavior"></a>Default Behavior</h2>
 
-<p>To use this plugin, very little information is required by BND. As
-part of the Maven integration, the plugin tries to set reasonable
+<p>To use this plugin, very little information is required by BND. As 
+part of the Maven integration, the plugin tries to set reasonable 
 defaults for various instructions. For example:</p>
 
 <ul>
-	<li><tt>&lt;Bundle-SymbolicName&gt;</tt> is computed using the shared <a href="http://svn.apache.org/repos/asf/maven/shared/trunk/maven-osgi/src/main/java/org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.java" rel="nofollow">Maven2OsgiConverter</a> component, which uses the following algorithm:<br>
+	<li><tt>&lt;Bundle-SymbolicName&gt;</tt> is computed using the shared <a href="http://svn.apache.org/repos/asf/maven/shared/trunk/maven-osgi/src/main/java/org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.java" class="external-link" rel="nofollow">Maven2OsgiConverter</a> component, which uses the following algorithm:<br>
 Get the symbolic name as groupId + "." + artifactId, with the following exceptions:
 	<ul>
-		<li>if
-artifact.getFile is not null and the jar contains a OSGi Manifest with
-Bundle-SymbolicName property then that value is returned</li>
-		<li>if
-groupId has only one section (no dots) and artifact.getFile is not null
-then the first package name with classes is returned. eg.
+		<li>if artifact.getFile is not null and the jar contains a OSGi 
+Manifest with Bundle-SymbolicName property then that value is returned</li>
+		<li>if groupId has only one section (no dots) and artifact.getFile is 
+not null then the first package name with classes is returned. eg. 
 commons-logging:commons-logging -&gt; org.apache.commons.logging</li>
 		<li>if artifactId is equal to last section of groupId then groupId is returned. eg. org.apache.maven:maven -&gt; org.apache.maven</li>
-		<li>if
-artifactId starts with last section of groupId that portion is removed.
-eg. org.apache.maven:maven-core -&gt; org.apache.maven.core<br>
+		<li>if artifactId starts with last section of groupId that portion is 
+removed. eg. org.apache.maven:maven-core -&gt; org.apache.maven.core<br>
 The computed symbolic name is also stored in the <tt>$(maven-symbolicname)</tt> property in case you want to add attributes or directives to it.</li>
 	</ul>
 	</li>
-	<li><tt>&lt;Export-Package&gt;</tt>
-is now assumed to be the set of packages in your local Java sources,
-excluding the default package '.' and any packages containing 'impl' or
-'internal'.<br>
+	<li><tt>&lt;Export-Package&gt;</tt> is now assumed to be the set of 
+packages in your local Java sources, excluding the default package '.' 
+and any packages containing 'impl' or 'internal'.<br>
 <em>(before version 2 of the bundleplugin it was based on the symbolic name)</em></li>
+	<li>Since 2.2.0 you can also use {<tt>local-packages</tt>} inside <tt>&lt;Export-Package&gt;</tt> and it will be expanded to the set of local packages.</li>
 	<li><tt>&lt;Private-Package&gt;</tt> is now assumed to be the set of packages in your local Java sources (note that any packages in both <tt>&lt;Export-Package&gt;</tt> and <tt>&lt;Private-Package&gt;</tt> will be exported).<br>
 <em>(before version 2 of the bundleplugin it was assumed to be empty by default)</em></li>
 	<li><tt>&lt;Import-Package&gt;</tt> is assumed to be "<tt>*</tt>", which imports everything referred to by the bundle content, but not contained in the bundle.<br>
 <em>Any exported packages are also imported by default, to ensure a consistent class space.</em></li>
 	<li><tt>&lt;Include-Resource&gt;</tt> is generated from the project's Maven resources, typically "<tt>src/main/resources/</tt>",
-which will copy the specified project directory hierarchy into the
+ which will copy the specified project directory hierarchy into the 
 resulting bundle JAR file, mirroring standard Maven behavior.</li>
 	<li><tt>&lt;Bundle-Version&gt;</tt> is assumed to be "<tt>${pom.version</tt>}" but is normalized to the OSGi version format of "<tt>MAJOR.MINOR.MICRO.QUALIFIER</tt>", for example "<tt>2.1-SNAPSHOT</tt>" would become "<tt>2.1.0.SNAPSHOT</tt>".</li>
 	<li><tt>&lt;Bundle-Name&gt;</tt> is assumed to be "<tt>${pom.name</tt>}".</li>
@@ -864,9 +237,9 @@
 
 
 <p>Since the plugin creates bundles for OSGi R4, it hard-codes <tt>Bundle-ManifestVersion</tt>
-to be '2'. Additionally, it generates imports for every export to
-ensure package substitutability, which is very important when working
-with collaborating services. It is possible to override any of these
+ to be '2'. Additionally, it generates imports for every export to 
+ensure package substitutability, which is very important when working 
+with collaborating services. It is possible to override any of these 
 values (except <tt>Bundle-ManifestVersion</tt>) just by specifying the desired value in the plugin configuration section of the POM file.</p>
 
 <p><a name="ApacheFelixMavenBundlePlugin(BND)-howto"></a></p>
@@ -875,15 +248,15 @@
 
 <h2><a name="ApacheFelixMavenBundlePlugin(BND)-GetMaven2"></a>Get Maven2</h2>
 
-<p>The first step in the process of using the plugin is downloading and
-installing the latest version of the Maven2 runtime. The latest Maven2
-release and instuctions for getting started with Maven2 can be found at
-the <a href="http://maven.apache.org/index.html" rel="nofollow">Maven website</a>.</p>
+<p>The first step in the process of using the plugin is downloading and 
+installing the latest version of the Maven2 runtime. The latest Maven2 
+release and instuctions for getting started with Maven2 can be found at 
+the <a href="http://maven.apache.org/index.html" class="external-link" rel="nofollow">Maven website</a>.</p>
 
 <h2><a name="ApacheFelixMavenBundlePlugin(BND)-UsingthePlugin"></a>Using the Plugin</h2>
 
-<p>To use the maven-bundle-plugin, you first need to add the plugin and
-some appropriate plugin configuration to your bundle project's POM.
+<p>To use the maven-bundle-plugin, you first need to add the plugin and 
+some appropriate plugin configuration to your bundle project's POM. 
 Below is an example of a simple OSGi bundle POM for Maven2:</p>
 
 <div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
@@ -922,18 +295,18 @@
 </div></div>
 
 <p>There are two main things to note: (1) the <tt>&lt;packaging&gt;</tt>
-specifier must be "bundle" and (2) the plugin and configuration must be
-specified (the configuration section is where you will issue
+ specifier must be "bundle" and (2) the plugin and configuration must be
+ specified (the configuration section is where you will issue 
 instructions to the plugin).</p>
 
 <h2><a name="ApacheFelixMavenBundlePlugin(BND)-RealWorldExample"></a>Real-World Example</h2>
 
-<p>Consider this more real-world example using Felix' Log Service
-implementation. The Log Service project is comprised of a single
-package: <tt>org.apache.felix.log.impl</tt>. It has a dependency on
-the core OSGi interfaces as well as a dependency on the compendium OSGi
-interfaces for the specific log service interfaces. The following is
-its POM file:</p>
+<p>Consider this more real-world example using Felix' Log Service 
+implementation. The Log Service project is comprised of a single 
+package: <tt>org.apache.felix.log.impl</tt>. It has a dependency on the 
+core OSGi interfaces as well as a dependency on the compendium OSGi 
+interfaces for the specific log service interfaces. The following is its
+ POM file:</p>
 
 <div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
 <pre>&lt;project&gt;
@@ -980,16 +353,15 @@
 </pre>
 </div></div>
 
-<p>Notice that the <tt>&lt;Export-Package&gt;</tt> instruction
-specifies that the bundle exports the Log Service package, even though
-this package is not contained in the bundle project. By declaring this,
-the plugin will copy the Log Service package into the resulting bundle
-JAR file. This is useful in this case because now the bundle can
-resolve without having to download the entire compendium bundle. The
-resulting manifest for the Log Service bundle looks like this (notice
-how the imports/exports automatically have version information
-associated with them, which was obtained from packageinfo files in the
-source packages):</p>
+<p>Notice that the <tt>&lt;Export-Package&gt;</tt> instruction specifies
+ that the bundle exports the Log Service package, even though this 
+package is not contained in the bundle project. By declaring this, the 
+plugin will copy the Log Service package into the resulting bundle JAR 
+file. This is useful in this case because now the bundle can resolve 
+without having to download the entire compendium bundle. The resulting 
+manifest for the Log Service bundle looks like this (notice how the 
+imports/exports automatically have version information associated with 
+them, which was obtained from packageinfo files in the source packages):</p>
 
 <div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
 <pre>Manifest-Version: 1
@@ -1012,7 +384,7 @@
 </pre>
 </div></div>
 
-<p>The resulting bundle JAR file has the following content (notice how
+<p>The resulting bundle JAR file has the following content (notice how 
 the LICENSE and NOTICE files were automatically copied from the <tt>src/main/resources/</tt> directory of the project):</p>
 
 <div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
@@ -1116,9 +488,9 @@
 
 <h2><a name="ApacheFelixMavenBundlePlugin(BND)-BuildingthePlugin"></a>Building the Plugin</h2>
 
-<p>The plugin is hosted at the Apache Felix project. The following
-steps describe how to build and install the plugin into your local
-Maven2 repository.</p>
+<p>The plugin is hosted at the Apache Felix project. The following steps
+ describe how to build and install the plugin into your local Maven2 
+repository.</p>
 
 <p>Using the SVN client of your choice, checkout the maven-bundle-plugin project.</p>
 
@@ -1127,8 +499,8 @@
 </pre>
 </div></div>
 
-<p>Using Maven2, build and install the maven-bundle-plugin by issuing
-the following Maven2 command in the project directory that was created
+<p>Using Maven2, build and install the maven-bundle-plugin by issuing 
+the following Maven2 command in the project directory that was created 
 as a result of the previous step.</p>
 
 <div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
@@ -1138,8 +510,8 @@
 
 <h1><a name="ApacheFelixMavenBundlePlugin(BND)-Goals"></a>Goals</h1>
 
-<p>The maven-bundle-plugin also provides additional functionality via
-some Maven goals. Command-line execution of a goal is performed as
+<p>The maven-bundle-plugin also provides additional functionality via 
+some Maven goals. Command-line execution of a goal is performed as 
 follows:</p>
 
 <div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
@@ -1306,8 +678,8 @@
 </ul>
 
 
-<p>There are also new instructions available from the underlying BND
-tool, which continues to be improved independently; for the latest see <a href="http://aqute.biz/Code/Bnd" rel="nofollow">BND documentation</a>.</p>
+<p>There are also new instructions available from the underlying BND 
+tool, which continues to be improved independently; for the latest see <a href="http://aqute.biz/Code/Bnd" class="external-link" rel="nofollow">BND documentation</a>.</p>
 
 <p>The default goal <b><tt>bundle</tt></b> will be initialized by setting the &lt;packaging&gt; entry to "bundle".</p>
 
@@ -1335,11 +707,11 @@
 </div></div>
 
 <p>The plugin uses the <tt>&lt;Embed-Dependency&gt;</tt> instruction to transform the project dependencies into <tt>&lt;Include-Resource&gt;</tt> and <tt>&lt;Bundle-ClassPath&gt;</tt>
-clauses, which are then appended to the current set of instructions and
-passed onto BND. If you want the embedded dependencies to be at the
+ clauses, which are then appended to the current set of instructions and
+ passed onto BND. If you want the embedded dependencies to be at the 
 start or middle of <tt>&lt;Include-Resource&gt;</tt> or <tt>&lt;Bundle-ClassPath&gt;</tt> then you can use {<tt>maven-dependencies</tt>}, which will automatically expand to the relevant clauses.</p>
 
-<p>The MATCH section accepts alternatives, separated by <b>|</b>, and can be negated by using <b>!</b> at the <em>beginning</em> of the MATCH. Use <b>*</b> to represent zero or more unknown characters and <b>?</b> to represent a single unknown character. There is no need to escape the <b>.</b> character inside MATCH. The first MATCH in a clause will filter against the artifactId.</p>
+<p>The MATCH section accepts alternatives, separated by <b>|</b>, and can be negated by using <b>!</b> at the <em>beginning</em> of the MATCH. Use <b>*</b> to represent zero or more unknown characters and <b>?</b> to represent zero or one character. You can also use standard Java <a href="http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html" class="external-link" rel="nofollow">regexp</a> constructs. There is no need to escape the <b>.</b> character inside MATCH. The first MATCH in a clause will filter against the artifactId.</p>
 
 <p>some examples:</p>
 
@@ -1382,8 +754,8 @@
 </ul>
 
 
-<p>Normally the plugin only checks direct dependencies, but this can be
-changed to include the complete set of transitive dependencies with the
+<p>Normally the plugin only checks direct dependencies, but this can be 
+changed to include the complete set of transitive dependencies with the 
 following option:</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
@@ -1401,17 +773,17 @@
 <h3><a name="ApacheFelixMavenBundlePlugin(BND)-EmbedDependencyandExportPackage"></a>Embed-Dependency and Export-Package</h3>
 
 <p>If you embed a dependency with <tt>&lt;Embed-Dependency&gt;</tt>, and your <tt>&lt;Export-Package&gt;</tt> or <tt>&lt;Private-Package&gt;</tt> instructions match packages inside the embedded jar, you will see some duplication inside the bundle. This is because the <tt>&lt;Export-Package&gt;</tt> and <tt>&lt;Private-Package&gt;</tt>
-instructions will result in classes being inlined in the bundle, even
-though they also exist inside the embedded jar. If you want to export
-packages from an embedded dependency without such duplication then you
+ instructions will result in classes being inlined in the bundle, even 
+though they also exist inside the embedded jar. If you want to export 
+packages from an embedded dependency without such duplication then you 
 can either inline the dependency, or use a new BND instruction called <tt>&lt;_exportcontents&gt;</tt>.</p>
 
 <p><tt>&lt;_exportcontents&gt;</tt> behaves just like Export-Package, except it doesn't change the content of the bundle, just what content should be exported.</p>
 
 <h2><a name="ApacheFelixMavenBundlePlugin(BND)-OBRintegration"></a>OBR integration</h2>
 
-<p>The latest Maven Bundle Plugin automatically updates the local OBR
-repository.xml file during the install phase, using a default location
+<p>The latest Maven Bundle Plugin automatically updates the local OBR 
+repository.xml file during the install phase, using a default location 
 of:</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
@@ -1458,11 +830,11 @@
 
 <h2><a name="ApacheFelixMavenBundlePlugin(BND)-Eclipse/PDEintegration"></a>Eclipse/PDE integration</h2>
 
-<p>It is possible to configure the Maven Bundle Plugin to put the
-bundle manifest where Eclipse/PDE expects it, and use the Maven
-Dependency Plugin to arrange for any embedded dependencies to appear in
-a local directory that matches the Bundle-ClassPath entries. Here is an
-example POM that does this:</p>
+<p>It is possible to configure the Maven Bundle Plugin to put the bundle
+ manifest where Eclipse/PDE expects it, and use the Maven Dependency 
+Plugin to arrange for any embedded dependencies to appear in a local 
+directory that matches the Bundle-ClassPath entries. Here is an example 
+POM that does this:</p>
 
 <div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
 <pre>&lt;project&gt;
@@ -1574,7 +946,7 @@
 
 <p>and you should now be able to import this as an existing Eclipse project.</p>
 
-<p>FYI: the above POM was generated using the <tt>pax-create-bundle</tt> command from <a href="http://www.ops4j.org/projects/pax/construct/index.html" rel="nofollow">Pax-Construct</a> and then tweaked to demonstrate using the Maven Dependency Plugin to handle embedded jars in Eclipse.</p>
+<p>FYI: the above POM was generated using the <tt>pax-create-bundle</tt> command from <a href="http://www.ops4j.org/projects/pax/construct/index.html" class="external-link" rel="nofollow">Pax-Construct</a> and then tweaked to demonstrate using the Maven Dependency Plugin to handle embedded jars in Eclipse.</p>
 
 <p>With the original Pax-Construct generated POM you would simply use:</p>
 
@@ -1583,20 +955,20 @@
 </pre>
 </div></div>
 
-<p>to create the appropriate Eclipse files and manifest, and also
-handle any embedded entries. The pax:eclipse goal extends
-eclipse:eclipse, and supports the same parameters.</p>
+<p>to create the appropriate Eclipse files and manifest, and also handle
+ any embedded entries. The pax:eclipse goal extends eclipse:eclipse, and
+ supports the same parameters.</p>
 
 <h2><a name="ApacheFelixMavenBundlePlugin(BND)-Unpackingbundlecontentsto'target/classes'"></a>Unpacking bundle contents to 'target/classes'</h2>
 
 <p>Once in a while you may create a bundle which contains additional classes to the ones compiled from <tt>src/main/java</tt>,
-for example when you embed the classes from another jar. This can
-sometimes cause unforeseen problems in Maven, as it will use the output
+ for example when you embed the classes from another jar. This can 
+sometimes cause unforeseen problems in Maven, as it will use the output 
 directory (<tt>target/classes</tt>) rather than the final bundle, when compiling against projects in the same reactor (ie. the same build).</p>
 
-<p>The easiest way to get around this Maven 'feature' is to unpack the
-contents of the bundle to the output directory after the packaging
-step, so the additional classes will be found where Maven expects them.
+<p>The easiest way to get around this Maven 'feature' is to unpack the 
+contents of the bundle to the output directory after the packaging step,
+ so the additional classes will be found where Maven expects them. 
 Thankfully there is now an easy option to do this in the bundle-plugin:</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
@@ -1622,9 +994,9 @@
 </pre>
 </div></div>
 
-<p>Bnd will use it when calculating the bundle contents, and will also
+<p>Bnd will use it when calculating the bundle contents, and will also 
 copy across all manifest attributes starting with a capital letter.<br>
-As shown in the above example, you could use this to include a non-OSGi
+As shown in the above example, you could use this to include a non-OSGi 
 manifest which you then customize with extra OSGi attributes.</p>
 
 <h1><a name="ApacheFelixMavenBundlePlugin(BND)-Thefollowingfeaturesareonlyavailablefromversion1.4.0onwards"></a>The following features are only available from version 1.4.0 onwards</h1>
@@ -1633,8 +1005,8 @@
 
 <p>The <b>ant</b> goal creates a customized <tt>build.xml</tt> Ant script along with a collection of BND instructions and properties, taken from the current project and stored in <tt>maven-build.bnd</tt>. You also need to run <b><tt>ant:ant</tt></b> to create the standard Ant support tasks to download Maven dependencies and perform compilation, etc.</p>
 
-<p>The customized Ant script uses the BND tool to rebuild the bundle,
-so any source changes should be reflected in the (re)generated manifest.</p>
+<p>The customized Ant script uses the BND tool to rebuild the bundle, so
+ any source changes should be reflected in the (re)generated manifest.</p>
 
 <p>Example:</p>
 <div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
@@ -1671,9 +1043,9 @@
 
 <h2><a name="ApacheFelixMavenBundlePlugin(BND)-bundle:deploy"></a>bundle:deploy</h2>
 
-<p>The <b>deploy goal</b> updates the remote OBR with the details of
-the deployed bundle from the local Maven repository. The remote OBR is
-found by querying the <tt>&lt;distributionManagement&gt;</tt> section of the project, unless <tt>-DaltDeploymentRepository</tt> is set. See <a href="http://maven.apache.org/plugins/maven-deploy-plugin/deploy-mojo.html" rel="nofollow">http://maven.apache.org/plugins/maven-deploy-plugin/deploy-mojo.html</a> for more details about these particular settings.</p>
+<p>The <b>deploy goal</b> updates the remote OBR with the details of the
+ deployed bundle from the local Maven repository. The remote OBR is 
+found by querying the <tt>&lt;distributionManagement&gt;</tt> section of the project, unless <tt>-DaltDeploymentRepository</tt> is set. See <a href="http://maven.apache.org/plugins/maven-deploy-plugin/deploy-mojo.html" class="external-link" rel="nofollow">http://maven.apache.org/plugins/maven-deploy-plugin/deploy-mojo.html</a> for more details about these particular settings.</p>
 
 <p>(If the project has an <tt>obr.xml</tt> file somewhere in its resources, then it will be automatically detected and applied.)</p>
 
@@ -1690,7 +1062,7 @@
 
 <h2><a name="ApacheFelixMavenBundlePlugin(BND)-bundle:deployfile"></a>bundle:deploy-file</h2>
 
-<p>The <b>deploy-file</b> goal updates the remote OBR with the details of a deployed bundle from the local filesystem. The remote OBR is found using the <tt>-DrepositoryId</tt> and <tt>-Durl</tt> parameters. See <a href="http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html" rel="nofollow">http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html</a> for more details about these particular settings.</p>
+<p>The <b>deploy-file</b> goal updates the remote OBR with the details of a deployed bundle from the local filesystem. The remote OBR is found using the <tt>-DrepositoryId</tt> and <tt>-Durl</tt> parameters. See <a href="http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html" class="external-link" rel="nofollow">http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html</a> for more details about these particular settings.</p>
 
 <p>You can use the <tt>-DbundleUrl</tt> parameter to give the public location of the deployed bundle, which may differ from the remote OBR location.</p>
 
@@ -1732,11 +1104,11 @@
 
 <h2><a name="ApacheFelixMavenBundlePlugin(BND)-bundle:clean"></a>bundle:clean</h2>
 
-<p>Sometimes you would like to clean your local OBR because it contains
-bundles that are no longer in your local Maven repository. This case
-often occurs when artifacts were deleted manually. The
-maven-bundle-plugin provides a simple goal to check for missing
-bundles, and remove them from the local OBR.</p>
+<p>Sometimes you would like to clean your local OBR because it contains 
+bundles that are no longer in your local Maven repository. This case 
+often occurs when artifacts were deleted manually. The 
+maven-bundle-plugin provides a simple goal to check for missing bundles,
+ and remove them from the local OBR.</p>
 
 <p>configuration:</p>
 <ul>
@@ -1750,13 +1122,39 @@
 </pre>
 </div></div>
 
+<h2><a name="ApacheFelixMavenBundlePlugin(BND)-bundle:index"></a>bundle:index</h2>
+
+<p>The <tt>index</tt> goal allows the creation of an OBR repository based on a set of jars in a maven repository.</p>
+
+<p>Configuration:</p>
+<ul>
+	<li><em>obrRepository</em> path to local OBR, defaults to <em>&lt;local-maven-repository&gt;</em><tt>/repository.xml</tt></li>
+	<li><em>urlTemplate</em> template for generating urls for OBR resources</li>
+	<li><em>mavenRepository</em> path to the maven repository, defaults to <em>&lt;local-maven-repository&gt;</em></li>
+</ul>
+
+
+<p>Possible values for the <tt>urlTemplate</tt> are:</p>
+<ul>
+	<li><em>maven</em> this will create a maven based url such as <tt>mvn:groupid/artifactid/version</tt></li>
+	<li>pattern with the following placeholders:
+	<ul>
+		<li><tt>%v</tt> bundle version</li>
+		<li><tt>%s</tt> bundle symbolic name</li>
+		<li><tt>%f</tt> file name</li>
+		<li><tt>%p</tt> file path</li>
+	</ul>
+	</li>
+</ul>
+
+
 <h2><a name="ApacheFelixMavenBundlePlugin(BND)-Concurrentupdates"></a>Concurrent updates</h2>
 
-<p>With a remote OBR, several uploads may occur at the same time.
-However, the remote OBR is centralized in one file, so concurrent
-modification must be avoided. To achieve this, the plug-in implements a
-locking system. Each time the plug-in tries to modify the file it sets
-a file based lock. If it can't take the lock, it will wait and retry.
+<p>With a remote OBR, several uploads may occur at the same time. 
+However, the remote OBR is centralized in one file, so concurrent 
+modification must be avoided. To achieve this, the plug-in implements a 
+locking system. Each time the plug-in tries to modify the file it sets a
+ file based lock. If it can't take the lock, it will wait and retry. 
 After 3 attempts the upload process fails. To bypass this lock add <tt>-DignoreLock</tt> to the command-line (or add <tt>&lt;ignoreLock&gt;true&lt;ignoreLock&gt;</tt> to the configuration section of your Pom).</p>
 
 <h2><a name="ApacheFelixMavenBundlePlugin(BND)-FTPprotocol"></a>FTP protocol</h2>
@@ -1799,14 +1197,24 @@
 <h2><a name="ApacheFelixMavenBundlePlugin(BND)-Knownissues&amp;limitations"></a>Known issues &amp; limitations</h2>
 
 <ol>
-	<li>obr.xml (file given by the user to add properties not found
-by Bindex) must be correct, because the plug-in does not check its
-syntax.</li>
+	<li>obr.xml (file given by the user to add properties not found by 
+Bindex) must be correct, because the plug-in does not check its syntax.</li>
 </ol>
 
 
 <h1><a name="ApacheFelixMavenBundlePlugin(BND)-Feedback"></a>Feedback</h1>
 
-<p>Subscribe to the Felix users mailing list by sending a message to <a href="mailto:users-subscribe@felix.apache.org" rel="nofollow">users-subscribe@felix.apache.org</a>; after subscribing, email questions or feedback to <a href="mailto:users@felix.apache.org" rel="nofollow">users@felix.apache.org</a>.</p>
+<p>Subscribe to the Felix users mailing list by sending a message to <a href="mailto:users-subscribe@felix.apache.org" class="external-link" rel="nofollow">users-subscribe@felix.apache.org</a>; after subscribing, email questions or feedback to <a href="mailto:users@felix.apache.org" class="external-link" rel="nofollow">users@felix.apache.org</a>.</p>
+        <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
+Last modified by mcculls on Fri Nov 18 12:18:15 EST 2011
+        </div>
+        <div class="trademarkFooter">
+Apache Felix, Felix, Apache, the Apache feather logo, and the Apache 
+Felix project logo are trademarks of The Apache Software Foundation. All
+ other marks mentioned may be trademarks or registered trademarks of 
+their respective owners.
+        </div>
     </div>
-  </body></html>
\ No newline at end of file
+  
+
+</body></html>
\ No newline at end of file
diff --git a/bundleplugin/doc/apache-felix-maven-bundle-plugin-bnd_files/button.html b/bundleplugin/doc/apache-felix-maven-bundle-plugin-bnd_files/button.html
index 94b45ce..6cb5991 100644
--- a/bundleplugin/doc/apache-felix-maven-bundle-plugin-bnd_files/button.html
+++ b/bundleplugin/doc/apache-felix-maven-bundle-plugin-bnd_files/button.html
@@ -1,5 +1,5 @@
+<!-- ads start -->
 <html><head>
-<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><!-- ads start -->
-</head><body><a href="http://www.us.apachecon.com/c/acus2009/" target="_blank"><img src="button_data/2009-usa-125x125.png" title="ApacheCon US 2009" border="0" width="125" height="125"></a>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8"></head><body><a href="http://na11.apachecon.com/%22" target="_blank"><img src="button_data/2011-na-125x125.png" title="ApacheCon NA 2011" border="0" height="125" width="125"></a>
 <!-- ads end -->
 </body></html>
\ No newline at end of file
diff --git a/bundleplugin/doc/apache-felix-maven-bundle-plugin-bnd_files/button_data/2011-na-125x125.png b/bundleplugin/doc/apache-felix-maven-bundle-plugin-bnd_files/button_data/2011-na-125x125.png
new file mode 100644
index 0000000..a50281a
--- /dev/null
+++ b/bundleplugin/doc/apache-felix-maven-bundle-plugin-bnd_files/button_data/2011-na-125x125.png
Binary files differ
diff --git a/bundleplugin/doc/apache-felix-maven-bundle-plugin-bnd_files/check.gif b/bundleplugin/doc/apache-felix-maven-bundle-plugin-bnd_files/check.gif
new file mode 100644
index 0000000..28bb999
--- /dev/null
+++ b/bundleplugin/doc/apache-felix-maven-bundle-plugin-bnd_files/check.gif
Binary files differ
diff --git a/bundleplugin/doc/apache-felix-maven-bundle-plugin-bnd_files/site.css b/bundleplugin/doc/apache-felix-maven-bundle-plugin-bnd_files/site.css
index 959ab0a..36314aa 100644
--- a/bundleplugin/doc/apache-felix-maven-bundle-plugin-bnd_files/site.css
+++ b/bundleplugin/doc/apache-felix-maven-bundle-plugin-bnd_files/site.css
@@ -1,13 +1,13 @@
 /* @override http://felix.apache.org/site/media.data/site.css */
 
 body { background-color: #ffffff; color: #3b3b3b; font-family: Tahoma, Arial, sans-serif; font-size: 10pt; line-height: 140% }
-h1, h2, h3, h4, h5, h6 { font-weight: normal; color: #000000; line-height: 100%; margin-top: 0px}
+h1, h2, h3, h4, h5, h6 { font-weight: bold; color: #000000; line-height: 100% }
 h1 { font-size: 200% }
 h2 { font-size: 175% }
 h3 { font-size: 150% }
-h4 { font-size: 140% }
-h5 { font-size: 130% }
-h6 { font-size: 120% }
+h4 { font-size: 140%; font-weight: normal }
+h5 { font-size: 130%; font-weight: normal }
+h6 { font-size: 120%; font-weight: normal }
 a { color: #1980af }
 a:visited { color: #1980af }
 a:hover { color: #1faae9 }
@@ -22,4 +22,22 @@
 .code-keyword { color: #880000 }
 .code-quote { color: #008800 }
 .code-object { color: #0000dd }
-.code-java { margin: 0em }
\ No newline at end of file
+.code-java { margin: 0em }
+.code-xml { margin: 0em }
+table.confluenceTable { border-collapse: collapse; margin: 10px 0 10px 0 }
+td.confluenceTd { border:1px solid #CCCCCC; padding:5px; vertical-align:top; }
+
+/** Last modification information at the botton of each page */
+.timestamp {
+    margin-top: 30px;
+    font-size: 80%;
+    text-align: right;
+}
+
+/** Trademark text at the bottom of each page */
+.trademarkFooter {
+    font-size: 80%;
+    font-style: italic;
+    margin-top: 10px;
+    text-align: left;
+}
