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