diff --git a/bundleplugin/doc/site/xref-test/allclasses-frame.html b/bundleplugin/doc/site/xref-test/allclasses-frame.html
index adfeab3..db677f1 100644
--- a/bundleplugin/doc/site/xref-test/allclasses-frame.html
+++ b/bundleplugin/doc/site/xref-test/allclasses-frame.html
@@ -15,6 +15,9 @@
 				<a href="org/apache/felix/bundleplugin/AbstractBundlePluginTest.html" target="classFrame">AbstractBundlePluginTest</a>
 			</li>
 						<li>
+				<a href="org/apache/felix/bundleplugin/ArtifactStubFactory.html" target="classFrame">ArtifactStubFactory</a>
+			</li>
+						<li>
 				<a href="org/apache/felix/bundleplugin/BlueprintComponentTest.html" target="classFrame">BlueprintComponentTest</a>
 			</li>
 						<li>
diff --git a/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/ArtifactStubFactory.html b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/ArtifactStubFactory.html
new file mode 100644
index 0000000..97e9535
--- /dev/null
+++ b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/ArtifactStubFactory.html
@@ -0,0 +1,90 @@
+<!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>ArtifactStubFactory 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>   <em class="jxr_comment">/*</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</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="13" href="#13">13</a>  <em class="jxr_comment"> *</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="19" href="#19">19</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="20" href="#20">20</a>  <em class="jxr_comment"> */</em>
+<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.io.IOException;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashSet;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
+<a name="26" href="#26">26</a>  
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<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"> * Fixed version of class that uses stable set ordering for reliable testing.</em>
+<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="32" href="#32">32</a>  @SuppressWarnings( { <span class="jxr_string">"rawtypes"</span>, <span class="jxr_string">"unchecked"</span> } )
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/ArtifactStubFactory.html">ArtifactStubFactory</a> <strong class="jxr_keyword">extends</strong> org.apache.maven.plugin.testing.ArtifactStubFactory
+<a name="34" href="#34">34</a>  {
+<a name="35" href="#35">35</a>  
+<a name="36" href="#36">36</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/ArtifactStubFactory.html">ArtifactStubFactory</a>( File workingDir, <strong class="jxr_keyword">boolean</strong> createFiles )
+<a name="37" href="#37">37</a>      {
+<a name="38" href="#38">38</a>          <strong class="jxr_keyword">super</strong>( workingDir, createFiles );
+<a name="39" href="#39">39</a>      }
+<a name="40" href="#40">40</a>  
+<a name="41" href="#41">41</a>      @Override
+<a name="42" href="#42">42</a>      <strong class="jxr_keyword">public</strong> Set getClassifiedArtifacts() <strong class="jxr_keyword">throws</strong> IOException
+<a name="43" href="#43">43</a>      {
+<a name="44" href="#44">44</a>          Set set = <strong class="jxr_keyword">new</strong> LinkedHashSet();
+<a name="45" href="#45">45</a>          set.add( createArtifact( <span class="jxr_string">"g"</span>, <span class="jxr_string">"a"</span>, <span class="jxr_string">"1.0"</span>, Artifact.SCOPE_COMPILE, <span class="jxr_string">"jar"</span>, <span class="jxr_string">"one"</span> ) );
+<a name="46" href="#46">46</a>          set.add( createArtifact( <span class="jxr_string">"g"</span>, <span class="jxr_string">"b"</span>, <span class="jxr_string">"1.0"</span>, Artifact.SCOPE_COMPILE, <span class="jxr_string">"jar"</span>, <span class="jxr_string">"two"</span> ) );
+<a name="47" href="#47">47</a>          set.add( createArtifact( <span class="jxr_string">"g"</span>, <span class="jxr_string">"c"</span>, <span class="jxr_string">"1.0"</span>, Artifact.SCOPE_COMPILE, <span class="jxr_string">"jar"</span>, <span class="jxr_string">"three"</span> ) );
+<a name="48" href="#48">48</a>          set.add( createArtifact( <span class="jxr_string">"g"</span>, <span class="jxr_string">"d"</span>, <span class="jxr_string">"1.0"</span>, Artifact.SCOPE_COMPILE, <span class="jxr_string">"jar"</span>, <span class="jxr_string">"four"</span> ) );
+<a name="49" href="#49">49</a>          <strong class="jxr_keyword">return</strong> set;
+<a name="50" href="#50">50</a>      }
+<a name="51" href="#51">51</a>  
+<a name="52" href="#52">52</a>      @Override
+<a name="53" href="#53">53</a>      <strong class="jxr_keyword">public</strong> Set getScopedArtifacts() <strong class="jxr_keyword">throws</strong> IOException
+<a name="54" href="#54">54</a>      {
+<a name="55" href="#55">55</a>          Set set = <strong class="jxr_keyword">new</strong> LinkedHashSet();
+<a name="56" href="#56">56</a>          set.add( createArtifact( <span class="jxr_string">"g"</span>, <span class="jxr_string">"compile"</span>, <span class="jxr_string">"1.0"</span>, Artifact.SCOPE_COMPILE ) );
+<a name="57" href="#57">57</a>          set.add( createArtifact( <span class="jxr_string">"g"</span>, <span class="jxr_string">"provided"</span>, <span class="jxr_string">"1.0"</span>, Artifact.SCOPE_PROVIDED ) );
+<a name="58" href="#58">58</a>          set.add( createArtifact( <span class="jxr_string">"g"</span>, <span class="jxr_string">"test"</span>, <span class="jxr_string">"1.0"</span>, Artifact.SCOPE_TEST ) );
+<a name="59" href="#59">59</a>          set.add( createArtifact( <span class="jxr_string">"g"</span>, <span class="jxr_string">"runtime"</span>, <span class="jxr_string">"1.0"</span>, Artifact.SCOPE_RUNTIME ) );
+<a name="60" href="#60">60</a>          set.add( createArtifact( <span class="jxr_string">"g"</span>, <span class="jxr_string">"system"</span>, <span class="jxr_string">"1.0"</span>, Artifact.SCOPE_SYSTEM ) );
+<a name="61" href="#61">61</a>          <strong class="jxr_keyword">return</strong> set;
+<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> Set getTypedArtifacts() <strong class="jxr_keyword">throws</strong> IOException
+<a name="66" href="#66">66</a>      {
+<a name="67" href="#67">67</a>          Set set = <strong class="jxr_keyword">new</strong> LinkedHashSet();
+<a name="68" href="#68">68</a>          set.add( createArtifact( <span class="jxr_string">"g"</span>, <span class="jxr_string">"a"</span>, <span class="jxr_string">"1.0"</span>, Artifact.SCOPE_COMPILE, <span class="jxr_string">"war"</span>, <strong class="jxr_keyword">null</strong> ) );
+<a name="69" href="#69">69</a>          set.add( createArtifact( <span class="jxr_string">"g"</span>, <span class="jxr_string">"b"</span>, <span class="jxr_string">"1.0"</span>, Artifact.SCOPE_COMPILE, <span class="jxr_string">"jar"</span>, <strong class="jxr_keyword">null</strong> ) );
+<a name="70" href="#70">70</a>          set.add( createArtifact( <span class="jxr_string">"g"</span>, <span class="jxr_string">"c"</span>, <span class="jxr_string">"1.0"</span>, Artifact.SCOPE_COMPILE, <span class="jxr_string">"sources"</span>, <strong class="jxr_keyword">null</strong> ) );
+<a name="71" href="#71">71</a>          set.add( createArtifact( <span class="jxr_string">"g"</span>, <span class="jxr_string">"d"</span>, <span class="jxr_string">"1.0"</span>, Artifact.SCOPE_COMPILE, <span class="jxr_string">"zip"</span>, <strong class="jxr_keyword">null</strong> ) );
+<a name="72" href="#72">72</a>          set.add( createArtifact( <span class="jxr_string">"g"</span>, <span class="jxr_string">"e"</span>, <span class="jxr_string">"1.0"</span>, Artifact.SCOPE_COMPILE, <span class="jxr_string">"rar"</span>, <strong class="jxr_keyword">null</strong> ) );
+<a name="73" href="#73">73</a>          <strong class="jxr_keyword">return</strong> set;
+<a name="74" href="#74">74</a>      }
+<a name="75" href="#75">75</a>  
+<a name="76" href="#76">76</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
index 4e778ee..777f5cf 100644
--- a/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/BundlePluginTest.html
+++ b/bundleplugin/doc/site/xref-test/org/apache/felix/bundleplugin/BundlePluginTest.html
@@ -42,369 +42,368 @@
 <a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Manifest;
 <a name="33" href="#33">33</a>  
 <a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Organization;
-<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.testing.ArtifactStubFactory;
-<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
-<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.DefaultMaven2OsgiConverter;
-<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.osgi.framework.Constants;
-<a name="40" href="#40">40</a>  
-<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
-<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Builder;
-<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.testing.stubs.MavenProjectStub;
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.DefaultMaven2OsgiConverter;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.osgi.framework.Constants;
+<a name="39" href="#39">39</a>  
+<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
+<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Builder;
+<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
+<a name="43" href="#43">43</a>  
 <a name="44" href="#44">44</a>  
-<a name="45" href="#45">45</a>  
-<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment">/**</em>
-<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * Test for {@link BundlePlugin}.</em>
-<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * </em>
-<a name="49" href="#49">49</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="50" href="#50">50</a>  <em class="jxr_javadoccomment"> */</em>
-<a name="51" href="#51">51</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="52" href="#52">52</a>  {
-<a name="53" href="#53">53</a>  
-<a name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> BundlePlugin plugin;
+<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * Test for {@link BundlePlugin}.</em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="48" href="#48">48</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="49" href="#49">49</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="50" href="#50">50</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="51" href="#51">51</a>  {
+<a name="52" href="#52">52</a>  
+<a name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> BundlePlugin plugin;
+<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>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setUp() <strong class="jxr_keyword">throws</strong> Exception
-<a name="58" href="#58">58</a>      {
-<a name="59" href="#59">59</a>          <strong class="jxr_keyword">super</strong>.setUp();
-<a name="60" href="#60">60</a>          plugin = <strong class="jxr_keyword">new</strong> BundlePlugin();
-<a name="61" href="#61">61</a>          plugin.setMaven2OsgiConverter( <strong class="jxr_keyword">new</strong> DefaultMaven2OsgiConverter() );
-<a name="62" href="#62">62</a>          plugin.setBuildDirectory( <span class="jxr_string">"."</span> );
-<a name="63" href="#63">63</a>          plugin.setOutputDirectory( <strong class="jxr_keyword">new</strong> File( getBasedir(), <span class="jxr_string">"target"</span> + File.separatorChar + <span class="jxr_string">"scratch"</span> ) );
-<a name="64" href="#64">64</a>      }
+<a name="56" href="#56">56</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setUp() <strong class="jxr_keyword">throws</strong> Exception
+<a name="57" href="#57">57</a>      {
+<a name="58" href="#58">58</a>          <strong class="jxr_keyword">super</strong>.setUp();
+<a name="59" href="#59">59</a>          plugin = <strong class="jxr_keyword">new</strong> BundlePlugin();
+<a name="60" href="#60">60</a>          plugin.setMaven2OsgiConverter( <strong class="jxr_keyword">new</strong> DefaultMaven2OsgiConverter() );
+<a name="61" href="#61">61</a>          plugin.setBuildDirectory( <span class="jxr_string">"."</span> );
+<a name="62" href="#62">62</a>          plugin.setOutputDirectory( <strong class="jxr_keyword">new</strong> File( getBasedir(), <span class="jxr_string">"target"</span> + File.separatorChar + <span class="jxr_string">"scratch"</span> ) );
+<a name="63" href="#63">63</a>      }
+<a name="64" href="#64">64</a>  
 <a name="65" href="#65">65</a>  
-<a name="66" href="#66">66</a>  
-<a name="67" href="#67">67</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testConvertVersionToOsgi()
-<a name="68" href="#68">68</a>      {
-<a name="69" href="#69">69</a>          String osgiVersion;
-<a name="70" href="#70">70</a>  
-<a name="71" href="#71">71</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2.1.0-SNAPSHOT"</span> );
-<a name="72" href="#72">72</a>          assertEquals( <span class="jxr_string">"2.1.0.SNAPSHOT"</span>, osgiVersion );
-<a name="73" href="#73">73</a>  
-<a name="74" href="#74">74</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2.1-SNAPSHOT"</span> );
-<a name="75" href="#75">75</a>          assertEquals( <span class="jxr_string">"2.1.0.SNAPSHOT"</span>, osgiVersion );
-<a name="76" href="#76">76</a>  
-<a name="77" href="#77">77</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2-SNAPSHOT"</span> );
-<a name="78" href="#78">78</a>          assertEquals( <span class="jxr_string">"2.0.0.SNAPSHOT"</span>, osgiVersion );
-<a name="79" href="#79">79</a>  
-<a name="80" href="#80">80</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2"</span> );
-<a name="81" href="#81">81</a>          assertEquals( <span class="jxr_string">"2.0.0"</span>, osgiVersion );
-<a name="82" href="#82">82</a>  
-<a name="83" href="#83">83</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2.1"</span> );
-<a name="84" href="#84">84</a>          assertEquals( <span class="jxr_string">"2.1.0"</span>, osgiVersion );
-<a name="85" href="#85">85</a>  
-<a name="86" href="#86">86</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2.1.3"</span> );
-<a name="87" href="#87">87</a>          assertEquals( <span class="jxr_string">"2.1.3"</span>, osgiVersion );
-<a name="88" href="#88">88</a>  
-<a name="89" href="#89">89</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2.1.3.4"</span> );
-<a name="90" href="#90">90</a>          assertEquals( <span class="jxr_string">"2.1.3.4"</span>, osgiVersion );
-<a name="91" href="#91">91</a>  
-<a name="92" href="#92">92</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"4aug2000r7-dev"</span> );
-<a name="93" href="#93">93</a>          assertEquals( <span class="jxr_string">"0.0.0.4aug2000r7-dev"</span>, osgiVersion );
-<a name="94" href="#94">94</a>  
-<a name="95" href="#95">95</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"1.1-alpha-2"</span> );
-<a name="96" href="#96">96</a>          assertEquals( <span class="jxr_string">"1.1.0.alpha-2"</span>, osgiVersion );
-<a name="97" href="#97">97</a>  
-<a name="98" href="#98">98</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"1.0-alpha-16-20070122.203121-13"</span> );
-<a name="99" href="#99">99</a>          assertEquals( <span class="jxr_string">"1.0.0.alpha-16-20070122_203121-13"</span>, osgiVersion );
-<a name="100" href="#100">100</a> 
-<a name="101" href="#101">101</a>         osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"1.0-20070119.021432-1"</span> );
-<a name="102" href="#102">102</a>         assertEquals( <span class="jxr_string">"1.0.0.20070119_021432-1"</span>, osgiVersion );
-<a name="103" href="#103">103</a> 
-<a name="104" href="#104">104</a>         osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"1-20070119.021432-1"</span> );
-<a name="105" href="#105">105</a>         assertEquals( <span class="jxr_string">"1.0.0.20070119_021432-1"</span>, osgiVersion );
-<a name="106" href="#106">106</a> 
-<a name="107" href="#107">107</a>         osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"1.4.1-20070217.082013-7"</span> );
-<a name="108" href="#108">108</a>         assertEquals( <span class="jxr_string">"1.4.1.20070217_082013-7"</span>, osgiVersion );
-<a name="109" href="#109">109</a>     }
+<a name="66" href="#66">66</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testConvertVersionToOsgi()
+<a name="67" href="#67">67</a>      {
+<a name="68" href="#68">68</a>          String osgiVersion;
+<a name="69" href="#69">69</a>  
+<a name="70" href="#70">70</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2.1.0-SNAPSHOT"</span> );
+<a name="71" href="#71">71</a>          assertEquals( <span class="jxr_string">"2.1.0.SNAPSHOT"</span>, osgiVersion );
+<a name="72" href="#72">72</a>  
+<a name="73" href="#73">73</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2.1-SNAPSHOT"</span> );
+<a name="74" href="#74">74</a>          assertEquals( <span class="jxr_string">"2.1.0.SNAPSHOT"</span>, osgiVersion );
+<a name="75" href="#75">75</a>  
+<a name="76" href="#76">76</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2-SNAPSHOT"</span> );
+<a name="77" href="#77">77</a>          assertEquals( <span class="jxr_string">"2.0.0.SNAPSHOT"</span>, osgiVersion );
+<a name="78" href="#78">78</a>  
+<a name="79" href="#79">79</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2"</span> );
+<a name="80" href="#80">80</a>          assertEquals( <span class="jxr_string">"2.0.0"</span>, osgiVersion );
+<a name="81" href="#81">81</a>  
+<a name="82" href="#82">82</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2.1"</span> );
+<a name="83" href="#83">83</a>          assertEquals( <span class="jxr_string">"2.1.0"</span>, osgiVersion );
+<a name="84" href="#84">84</a>  
+<a name="85" href="#85">85</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2.1.3"</span> );
+<a name="86" href="#86">86</a>          assertEquals( <span class="jxr_string">"2.1.3"</span>, osgiVersion );
+<a name="87" href="#87">87</a>  
+<a name="88" href="#88">88</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"2.1.3.4"</span> );
+<a name="89" href="#89">89</a>          assertEquals( <span class="jxr_string">"2.1.3.4"</span>, osgiVersion );
+<a name="90" href="#90">90</a>  
+<a name="91" href="#91">91</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"4aug2000r7-dev"</span> );
+<a name="92" href="#92">92</a>          assertEquals( <span class="jxr_string">"0.0.0.4aug2000r7-dev"</span>, osgiVersion );
+<a name="93" href="#93">93</a>  
+<a name="94" href="#94">94</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"1.1-alpha-2"</span> );
+<a name="95" href="#95">95</a>          assertEquals( <span class="jxr_string">"1.1.0.alpha-2"</span>, osgiVersion );
+<a name="96" href="#96">96</a>  
+<a name="97" href="#97">97</a>          osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"1.0-alpha-16-20070122.203121-13"</span> );
+<a name="98" href="#98">98</a>          assertEquals( <span class="jxr_string">"1.0.0.alpha-16-20070122_203121-13"</span>, osgiVersion );
+<a name="99" href="#99">99</a>  
+<a name="100" href="#100">100</a>         osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"1.0-20070119.021432-1"</span> );
+<a name="101" href="#101">101</a>         assertEquals( <span class="jxr_string">"1.0.0.20070119_021432-1"</span>, osgiVersion );
+<a name="102" href="#102">102</a> 
+<a name="103" href="#103">103</a>         osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"1-20070119.021432-1"</span> );
+<a name="104" href="#104">104</a>         assertEquals( <span class="jxr_string">"1.0.0.20070119_021432-1"</span>, osgiVersion );
+<a name="105" href="#105">105</a> 
+<a name="106" href="#106">106</a>         osgiVersion = plugin.convertVersionToOsgi( <span class="jxr_string">"1.4.1-20070217.082013-7"</span> );
+<a name="107" href="#107">107</a>         assertEquals( <span class="jxr_string">"1.4.1.20070217_082013-7"</span>, osgiVersion );
+<a name="108" href="#108">108</a>     }
+<a name="109" href="#109">109</a> 
 <a name="110" href="#110">110</a> 
-<a name="111" href="#111">111</a> 
-<a name="112" href="#112">112</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testReadExportedModules() <strong class="jxr_keyword">throws</strong> Exception
-<a name="113" href="#113">113</a>     {
-<a name="114" href="#114">114</a>         File osgiBundleFile = getTestBundle();
-<a name="115" href="#115">115</a> 
-<a name="116" href="#116">116</a>         assertTrue( osgiBundleFile.exists() );
-<a name="117" href="#117">117</a> 
-<a name="118" href="#118">118</a>         MavenProject project = getMavenProjectStub();
-<a name="119" href="#119">119</a> 
-<a name="120" href="#120">120</a>         <em class="jxr_comment">//        PackageVersionAnalyzer analyzer = new PackageVersionAnalyzer();</em>
-<a name="121" href="#121">121</a>         Builder analyzer = <strong class="jxr_keyword">new</strong> Builder();
-<a name="122" href="#122">122</a>         Jar jar = <strong class="jxr_keyword">new</strong> Jar( <span class="jxr_string">"name"</span>, osgiBundleFile );
-<a name="123" href="#123">123</a>         analyzer.setJar( jar );
-<a name="124" href="#124">124</a>         analyzer.setClasspath( <strong class="jxr_keyword">new</strong> Jar[]
-<a name="125" href="#125">125</a>             { jar } );
-<a name="126" href="#126">126</a> 
-<a name="127" href="#127">127</a>         analyzer.setProperty( Analyzer.EXPORT_PACKAGE, <span class="jxr_string">"*"</span> );
-<a name="128" href="#128">128</a>         analyzer.calcManifest();
-<a name="129" href="#129">129</a> 
-<a name="130" href="#130">130</a>         assertEquals( 3, analyzer.getExports().size() );
-<a name="131" href="#131">131</a> 
-<a name="132" href="#132">132</a>         analyzer.close();
-<a name="133" href="#133">133</a>     }
+<a name="111" href="#111">111</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testReadExportedModules() <strong class="jxr_keyword">throws</strong> Exception
+<a name="112" href="#112">112</a>     {
+<a name="113" href="#113">113</a>         File osgiBundleFile = getTestBundle();
+<a name="114" href="#114">114</a> 
+<a name="115" href="#115">115</a>         assertTrue( osgiBundleFile.exists() );
+<a name="116" href="#116">116</a> 
+<a name="117" href="#117">117</a>         MavenProject project = getMavenProjectStub();
+<a name="118" href="#118">118</a> 
+<a name="119" href="#119">119</a>         <em class="jxr_comment">//        PackageVersionAnalyzer analyzer = new PackageVersionAnalyzer();</em>
+<a name="120" href="#120">120</a>         Builder analyzer = <strong class="jxr_keyword">new</strong> Builder();
+<a name="121" href="#121">121</a>         Jar jar = <strong class="jxr_keyword">new</strong> Jar( <span class="jxr_string">"name"</span>, osgiBundleFile );
+<a name="122" href="#122">122</a>         analyzer.setJar( jar );
+<a name="123" href="#123">123</a>         analyzer.setClasspath( <strong class="jxr_keyword">new</strong> Jar[]
+<a name="124" href="#124">124</a>             { jar } );
+<a name="125" href="#125">125</a> 
+<a name="126" href="#126">126</a>         analyzer.setProperty( Analyzer.EXPORT_PACKAGE, <span class="jxr_string">"*"</span> );
+<a name="127" href="#127">127</a>         analyzer.calcManifest();
+<a name="128" href="#128">128</a> 
+<a name="129" href="#129">129</a>         assertEquals( 3, analyzer.getExports().size() );
+<a name="130" href="#130">130</a> 
+<a name="131" href="#131">131</a>         analyzer.close();
+<a name="132" href="#132">132</a>     }
+<a name="133" href="#133">133</a> 
 <a name="134" href="#134">134</a> 
-<a name="135" href="#135">135</a> 
-<a name="136" href="#136">136</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTransformDirectives() <strong class="jxr_keyword">throws</strong> Exception
-<a name="137" href="#137">137</a>     {
-<a name="138" href="#138">138</a>         Map instructions = <strong class="jxr_keyword">new</strong> TreeMap();
-<a name="139" href="#139">139</a> 
-<a name="140" href="#140">140</a>         instructions.put( <span class="jxr_string">"a"</span>, <span class="jxr_string">"1"</span> );
-<a name="141" href="#141">141</a>         instructions.put( <span class="jxr_string">"-a"</span>, <span class="jxr_string">"2"</span> );
-<a name="142" href="#142">142</a>         instructions.put( <span class="jxr_string">"_a"</span>, <span class="jxr_string">"3"</span> );
-<a name="143" href="#143">143</a>         instructions.put( <span class="jxr_string">"A"</span>, <span class="jxr_string">"3"</span> );
-<a name="144" href="#144">144</a>         instructions.put( <span class="jxr_string">"_A"</span>, <span class="jxr_string">"1"</span> );
-<a name="145" href="#145">145</a>         instructions.put( <span class="jxr_string">"_b"</span>, <span class="jxr_string">"4"</span> );
-<a name="146" href="#146">146</a>         instructions.put( <span class="jxr_string">"b"</span>, <span class="jxr_string">"6"</span> );
-<a name="147" href="#147">147</a>         instructions.put( <span class="jxr_string">"_B"</span>, <span class="jxr_string">"6"</span> );
-<a name="148" href="#148">148</a>         instructions.put( <span class="jxr_string">"-B"</span>, <span class="jxr_string">"5"</span> );
-<a name="149" href="#149">149</a>         instructions.put( <span class="jxr_string">"B"</span>, <span class="jxr_string">"4"</span> );
-<a name="150" href="#150">150</a> 
-<a name="151" href="#151">151</a>         instructions.put( <span class="jxr_string">"z"</span>, <strong class="jxr_keyword">null</strong> );
-<a name="152" href="#152">152</a>         instructions.put( <span class="jxr_string">"_z"</span>, <strong class="jxr_keyword">null</strong> );
-<a name="153" href="#153">153</a> 
-<a name="154" href="#154">154</a>         Map transformedInstructions = BundlePlugin.transformDirectives( instructions );
-<a name="155" href="#155">155</a> 
-<a name="156" href="#156">156</a>         assertEquals( <span class="jxr_string">"1"</span>, transformedInstructions.get( <span class="jxr_string">"a"</span> ) );
-<a name="157" href="#157">157</a>         assertEquals( <span class="jxr_string">"3"</span>, transformedInstructions.get( <span class="jxr_string">"-a"</span> ) );
-<a name="158" href="#158">158</a>         assertEquals( <strong class="jxr_keyword">null</strong>, transformedInstructions.get( <span class="jxr_string">"_a"</span> ) );
-<a name="159" href="#159">159</a>         assertEquals( <span class="jxr_string">"3"</span>, transformedInstructions.get( <span class="jxr_string">"A"</span> ) );
-<a name="160" href="#160">160</a>         assertEquals( <span class="jxr_string">"1"</span>, transformedInstructions.get( <span class="jxr_string">"-A"</span> ) );
-<a name="161" href="#161">161</a>         assertEquals( <strong class="jxr_keyword">null</strong>, transformedInstructions.get( <span class="jxr_string">"_A"</span> ) );
-<a name="162" href="#162">162</a>         assertEquals( <strong class="jxr_keyword">null</strong>, transformedInstructions.get( <span class="jxr_string">"_b"</span> ) );
-<a name="163" href="#163">163</a>         assertEquals( <span class="jxr_string">"4"</span>, transformedInstructions.get( <span class="jxr_string">"-b"</span> ) );
-<a name="164" href="#164">164</a>         assertEquals( <span class="jxr_string">"6"</span>, transformedInstructions.get( <span class="jxr_string">"b"</span> ) );
-<a name="165" href="#165">165</a>         assertEquals( <strong class="jxr_keyword">null</strong>, transformedInstructions.get( <span class="jxr_string">"_B"</span> ) );
-<a name="166" href="#166">166</a>         assertEquals( <span class="jxr_string">"6"</span>, transformedInstructions.get( <span class="jxr_string">"-B"</span> ) );
-<a name="167" href="#167">167</a>         assertEquals( <span class="jxr_string">"4"</span>, transformedInstructions.get( <span class="jxr_string">"B"</span> ) );
-<a name="168" href="#168">168</a> 
-<a name="169" href="#169">169</a>         assertEquals( <span class="jxr_string">""</span>, transformedInstructions.get( <span class="jxr_string">"z"</span> ) );
-<a name="170" href="#170">170</a>         assertEquals( <span class="jxr_string">""</span>, transformedInstructions.get( <span class="jxr_string">"-z"</span> ) );
-<a name="171" href="#171">171</a>     }
+<a name="135" href="#135">135</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testTransformDirectives() <strong class="jxr_keyword">throws</strong> Exception
+<a name="136" href="#136">136</a>     {
+<a name="137" href="#137">137</a>         Map instructions = <strong class="jxr_keyword">new</strong> TreeMap();
+<a name="138" href="#138">138</a> 
+<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">"-a"</span>, <span class="jxr_string">"2"</span> );
+<a name="141" href="#141">141</a>         instructions.put( <span class="jxr_string">"_a"</span>, <span class="jxr_string">"3"</span> );
+<a name="142" href="#142">142</a>         instructions.put( <span class="jxr_string">"A"</span>, <span class="jxr_string">"3"</span> );
+<a name="143" href="#143">143</a>         instructions.put( <span class="jxr_string">"_A"</span>, <span class="jxr_string">"1"</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>         instructions.put( <span class="jxr_string">"b"</span>, <span class="jxr_string">"6"</span> );
+<a name="146" href="#146">146</a>         instructions.put( <span class="jxr_string">"_B"</span>, <span class="jxr_string">"6"</span> );
+<a name="147" href="#147">147</a>         instructions.put( <span class="jxr_string">"-B"</span>, <span class="jxr_string">"5"</span> );
+<a name="148" href="#148">148</a>         instructions.put( <span class="jxr_string">"B"</span>, <span class="jxr_string">"4"</span> );
+<a name="149" href="#149">149</a> 
+<a name="150" href="#150">150</a>         instructions.put( <span class="jxr_string">"z"</span>, <strong class="jxr_keyword">null</strong> );
+<a name="151" href="#151">151</a>         instructions.put( <span class="jxr_string">"_z"</span>, <strong class="jxr_keyword">null</strong> );
+<a name="152" href="#152">152</a> 
+<a name="153" href="#153">153</a>         Map transformedInstructions = BundlePlugin.transformDirectives( instructions );
+<a name="154" href="#154">154</a> 
+<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( <span class="jxr_string">"3"</span>, 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">"_a"</span> ) );
+<a name="158" href="#158">158</a>         assertEquals( <span class="jxr_string">"3"</span>, transformedInstructions.get( <span class="jxr_string">"A"</span> ) );
+<a name="159" href="#159">159</a>         assertEquals( <span class="jxr_string">"1"</span>, transformedInstructions.get( <span class="jxr_string">"-A"</span> ) );
+<a name="160" href="#160">160</a>         assertEquals( <strong class="jxr_keyword">null</strong>, transformedInstructions.get( <span class="jxr_string">"_A"</span> ) );
+<a name="161" href="#161">161</a>         assertEquals( <strong class="jxr_keyword">null</strong>, 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>         assertEquals( <span class="jxr_string">"6"</span>, transformedInstructions.get( <span class="jxr_string">"b"</span> ) );
+<a name="164" href="#164">164</a>         assertEquals( <strong class="jxr_keyword">null</strong>, transformedInstructions.get( <span class="jxr_string">"_B"</span> ) );
+<a name="165" href="#165">165</a>         assertEquals( <span class="jxr_string">"6"</span>, transformedInstructions.get( <span class="jxr_string">"-B"</span> ) );
+<a name="166" href="#166">166</a>         assertEquals( <span class="jxr_string">"4"</span>, transformedInstructions.get( <span class="jxr_string">"B"</span> ) );
+<a name="167" href="#167">167</a> 
+<a name="168" href="#168">168</a>         assertEquals( <span class="jxr_string">""</span>, transformedInstructions.get( <span class="jxr_string">"z"</span> ) );
+<a name="169" href="#169">169</a>         assertEquals( <span class="jxr_string">""</span>, transformedInstructions.get( <span class="jxr_string">"-z"</span> ) );
+<a name="170" href="#170">170</a>     }
+<a name="171" href="#171">171</a> 
 <a name="172" href="#172">172</a> 
-<a name="173" href="#173">173</a> 
-<a name="174" href="#174">174</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDefaultPropertiesIncludeOrganization()
-<a name="175" href="#175">175</a>     {
-<a name="176" href="#176">176</a>         <strong class="jxr_keyword">final</strong> Organization organization = <strong class="jxr_keyword">new</strong> Organization();
-<a name="177" href="#177">177</a>         organization.setName( <span class="jxr_string">"Example Organization"</span> );
-<a name="178" href="#178">178</a>         organization.setUrl( <span class="jxr_string">"http://example.org"</span> );
-<a name="179" href="#179">179</a> 
-<a name="180" href="#180">180</a>         <em class="jxr_comment">// MavenProjectStub.setOrganization(Organization) doesn't do anything, so we have to make it work this way</em>
-<a name="181" href="#181">181</a>         MavenProject project = <strong class="jxr_keyword">new</strong> MavenProjectStub()
-<a name="182" href="#182">182</a>         {
-<a name="183" href="#183">183</a>             @Override
-<a name="184" href="#184">184</a>             <strong class="jxr_keyword">public</strong> Organization getOrganization()
-<a name="185" href="#185">185</a>             {
-<a name="186" href="#186">186</a>                 <strong class="jxr_keyword">return</strong> organization;
-<a name="187" href="#187">187</a>             }
-<a name="188" href="#188">188</a>         };
-<a name="189" href="#189">189</a>         project.setGroupId( <span class="jxr_string">"group"</span> );
-<a name="190" href="#190">190</a>         project.setArtifactId( <span class="jxr_string">"project"</span> );
-<a name="191" href="#191">191</a>         project.setVersion( <span class="jxr_string">"1.2.3.4"</span> );
-<a name="192" href="#192">192</a> 
-<a name="193" href="#193">193</a>         Properties properties = plugin.getDefaultProperties( project );
-<a name="194" href="#194">194</a>         assertEquals( organization.getName(), properties.getProperty( <span class="jxr_string">"project.organization.name"</span> ) );
-<a name="195" href="#195">195</a>         assertEquals( organization.getName(), properties.getProperty( <span class="jxr_string">"pom.organization.name"</span> ) );
-<a name="196" href="#196">196</a>         assertEquals( organization.getUrl(), properties.getProperty( <span class="jxr_string">"project.organization.url"</span> ) );
-<a name="197" href="#197">197</a>         assertEquals( organization.getUrl(), properties.getProperty( <span class="jxr_string">"pom.organization.url"</span> ) );
-<a name="198" href="#198">198</a>     }
+<a name="173" href="#173">173</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testDefaultPropertiesIncludeOrganization()
+<a name="174" href="#174">174</a>     {
+<a name="175" href="#175">175</a>         <strong class="jxr_keyword">final</strong> Organization organization = <strong class="jxr_keyword">new</strong> Organization();
+<a name="176" href="#176">176</a>         organization.setName( <span class="jxr_string">"Example Organization"</span> );
+<a name="177" href="#177">177</a>         organization.setUrl( <span class="jxr_string">"http://example.org"</span> );
+<a name="178" href="#178">178</a> 
+<a name="179" href="#179">179</a>         <em class="jxr_comment">// MavenProjectStub.setOrganization(Organization) doesn't do anything, so we have to make it work this way</em>
+<a name="180" href="#180">180</a>         MavenProject project = <strong class="jxr_keyword">new</strong> MavenProjectStub()
+<a name="181" href="#181">181</a>         {
+<a name="182" href="#182">182</a>             @Override
+<a name="183" href="#183">183</a>             <strong class="jxr_keyword">public</strong> Organization getOrganization()
+<a name="184" href="#184">184</a>             {
+<a name="185" href="#185">185</a>                 <strong class="jxr_keyword">return</strong> organization;
+<a name="186" href="#186">186</a>             }
+<a name="187" href="#187">187</a>         };
+<a name="188" href="#188">188</a>         project.setGroupId( <span class="jxr_string">"group"</span> );
+<a name="189" href="#189">189</a>         project.setArtifactId( <span class="jxr_string">"project"</span> );
+<a name="190" href="#190">190</a>         project.setVersion( <span class="jxr_string">"1.2.3.4"</span> );
+<a name="191" href="#191">191</a> 
+<a name="192" href="#192">192</a>         Properties properties = plugin.getDefaultProperties( project );
+<a name="193" href="#193">193</a>         assertEquals( organization.getName(), properties.getProperty( <span class="jxr_string">"project.organization.name"</span> ) );
+<a name="194" href="#194">194</a>         assertEquals( organization.getName(), properties.getProperty( <span class="jxr_string">"pom.organization.name"</span> ) );
+<a name="195" href="#195">195</a>         assertEquals( organization.getUrl(), properties.getProperty( <span class="jxr_string">"project.organization.url"</span> ) );
+<a name="196" href="#196">196</a>         assertEquals( organization.getUrl(), properties.getProperty( <span class="jxr_string">"pom.organization.url"</span> ) );
+<a name="197" href="#197">197</a>     }
+<a name="198" href="#198">198</a> 
 <a name="199" href="#199">199</a> 
-<a name="200" href="#200">200</a> 
-<a name="201" href="#201">201</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testVersion() <strong class="jxr_keyword">throws</strong> Exception
-<a name="202" href="#202">202</a>     {
-<a name="203" href="#203">203</a>         String cleanupVersion = Builder.cleanupVersion( <span class="jxr_string">"0.0.0.4aug2000r7-dev"</span> );
-<a name="204" href="#204">204</a>         assertEquals( <span class="jxr_string">"0.0.0.4aug2000r7-dev"</span>, cleanupVersion );
-<a name="205" href="#205">205</a>     }
+<a name="200" href="#200">200</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testVersion() <strong class="jxr_keyword">throws</strong> Exception
+<a name="201" href="#201">201</a>     {
+<a name="202" href="#202">202</a>         String cleanupVersion = Builder.cleanupVersion( <span class="jxr_string">"0.0.0.4aug2000r7-dev"</span> );
+<a name="203" href="#203">203</a>         assertEquals( <span class="jxr_string">"0.0.0.4aug2000r7-dev"</span>, cleanupVersion );
+<a name="204" href="#204">204</a>     }
+<a name="205" href="#205">205</a> 
 <a name="206" href="#206">206</a> 
-<a name="207" href="#207">207</a> 
-<a name="208" href="#208">208</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testPackageInfoDetection() <strong class="jxr_keyword">throws</strong> Exception
-<a name="209" href="#209">209</a>     {
-<a name="210" href="#210">210</a>         MavenProject project = getMavenProjectStub();
-<a name="211" href="#211">211</a>         project.addCompileSourceRoot( getBasedir() + <span class="jxr_string">"/src/test/java"</span> );
-<a name="212" href="#212">212</a> 
-<a name="213" href="#213">213</a>         String resourcePaths = plugin.getMavenResourcePaths( project );
-<a name="214" href="#214">214</a> 
-<a name="215" href="#215">215</a>         assertEquals( <span class="jxr_string">"org/apache/felix/bundleplugin/packageinfo="</span>
-<a name="216" href="#216">216</a>             + <span class="jxr_string">"src/test/java/org/apache/felix/bundleplugin/packageinfo"</span>, resourcePaths );
-<a name="217" href="#217">217</a>     }
+<a name="207" href="#207">207</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testPackageInfoDetection() <strong class="jxr_keyword">throws</strong> Exception
+<a name="208" href="#208">208</a>     {
+<a name="209" href="#209">209</a>         MavenProject project = getMavenProjectStub();
+<a name="210" href="#210">210</a>         project.addCompileSourceRoot( getBasedir() + <span class="jxr_string">"/src/test/java"</span> );
+<a name="211" href="#211">211</a> 
+<a name="212" href="#212">212</a>         String resourcePaths = plugin.getMavenResourcePaths( project );
+<a name="213" href="#213">213</a> 
+<a name="214" href="#214">214</a>         assertEquals( <span class="jxr_string">"org/apache/felix/bundleplugin/packageinfo="</span>
+<a name="215" href="#215">215</a>             + <span class="jxr_string">"src/test/java/org/apache/felix/bundleplugin/packageinfo"</span>, resourcePaths );
+<a name="216" href="#216">216</a>     }
+<a name="217" href="#217">217</a> 
 <a name="218" href="#218">218</a> 
-<a name="219" href="#219">219</a> 
-<a name="220" href="#220">220</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testEmbedDependencyPositiveClauses() <strong class="jxr_keyword">throws</strong> Exception
-<a name="221" href="#221">221</a>     {
-<a name="222" href="#222">222</a>         ArtifactStubFactory artifactFactory = <strong class="jxr_keyword">new</strong> ArtifactStubFactory( plugin.getOutputDirectory(), <strong class="jxr_keyword">true</strong> );
-<a name="223" href="#223">223</a> 
-<a name="224" href="#224">224</a>         Set artifacts = <strong class="jxr_keyword">new</strong> LinkedHashSet();
-<a name="225" href="#225">225</a> 
-<a name="226" href="#226">226</a>         artifacts.addAll( artifactFactory.getClassifiedArtifacts() );
-<a name="227" href="#227">227</a>         artifacts.addAll( artifactFactory.getScopedArtifacts() );
-<a name="228" href="#228">228</a>         artifacts.addAll( artifactFactory.getTypedArtifacts() );
-<a name="229" href="#229">229</a> 
-<a name="230" href="#230">230</a>         MavenProject project = getMavenProjectStub();
-<a name="231" href="#231">231</a>         project.setDependencyArtifacts( artifacts );
-<a name="232" href="#232">232</a> 
-<a name="233" href="#233">233</a>         Map instructions = <strong class="jxr_keyword">new</strong> HashMap();
-<a name="234" href="#234">234</a>         instructions.put( DependencyEmbedder.EMBED_DEPENDENCY, <span class="jxr_string">"*;classifier=;type=jar;scope=compile,"</span>
-<a name="235" href="#235">235</a>             + <span class="jxr_string">"*;classifier=;type=jar;scope=runtime"</span> );
-<a name="236" href="#236">236</a>         Properties props = <strong class="jxr_keyword">new</strong> Properties();
-<a name="237" href="#237">237</a> 
-<a name="238" href="#238">238</a>         Builder builder = plugin.buildOSGiBundle( project, instructions, props, plugin.getClasspath( project ) );
-<a name="239" href="#239">239</a>         Manifest manifest = builder.getJar().getManifest();
-<a name="240" href="#240">240</a> 
-<a name="241" href="#241">241</a>         String bcp = manifest.getMainAttributes().getValue( Constants.BUNDLE_CLASSPATH );
-<a name="242" href="#242">242</a>         assertEquals( <span class="jxr_string">".,"</span> + <span class="jxr_string">"compile-1.0.jar,b-1.0.jar,runtime-1.0.jar"</span>, bcp );
-<a name="243" href="#243">243</a> 
-<a name="244" href="#244">244</a>         String eas = manifest.getMainAttributes().getValue( <span class="jxr_string">"Embedded-Artifacts"</span> );
-<a name="245" href="#245">245</a>         assertEquals( <span class="jxr_string">"compile-1.0.jar;g=\&quot;g\&quot;;a=\&quot;compile\&quot;;v=\&quot;1.0\&quot;,"</span> + <span class="jxr_string">"b-1.0.jar;g=\&quot;g\&quot;;a=\&quot;b\&quot;;v=\&quot;1.0\&quot;,"</span>
-<a name="246" href="#246">246</a>             + <span class="jxr_string">"runtime-1.0.jar;g=\&quot;g\&quot;;a=\&quot;runtime\&quot;;v=\&quot;1.0\&quot;"</span>, eas );
-<a name="247" href="#247">247</a>     }
+<a name="219" href="#219">219</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testEmbedDependencyPositiveClauses() <strong class="jxr_keyword">throws</strong> Exception
+<a name="220" href="#220">220</a>     {
+<a name="221" href="#221">221</a>         <a href="../../../../org/apache/felix/bundleplugin/ArtifactStubFactory.html">ArtifactStubFactory</a> artifactFactory = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/ArtifactStubFactory.html">ArtifactStubFactory</a>( plugin.getOutputDirectory(), <strong class="jxr_keyword">true</strong> );
+<a name="222" href="#222">222</a> 
+<a name="223" href="#223">223</a>         Set artifacts = <strong class="jxr_keyword">new</strong> LinkedHashSet();
+<a name="224" href="#224">224</a> 
+<a name="225" href="#225">225</a>         artifacts.addAll( artifactFactory.getClassifiedArtifacts() );
+<a name="226" href="#226">226</a>         artifacts.addAll( artifactFactory.getScopedArtifacts() );
+<a name="227" href="#227">227</a>         artifacts.addAll( artifactFactory.getTypedArtifacts() );
+<a name="228" href="#228">228</a> 
+<a name="229" href="#229">229</a>         MavenProject project = getMavenProjectStub();
+<a name="230" href="#230">230</a>         project.setDependencyArtifacts( artifacts );
+<a name="231" href="#231">231</a> 
+<a name="232" href="#232">232</a>         Map instructions = <strong class="jxr_keyword">new</strong> HashMap();
+<a name="233" href="#233">233</a>         instructions.put( DependencyEmbedder.EMBED_DEPENDENCY, <span class="jxr_string">"*;classifier=;type=jar;scope=compile,"</span>
+<a name="234" href="#234">234</a>             + <span class="jxr_string">"*;classifier=;type=jar;scope=runtime"</span> );
+<a name="235" href="#235">235</a>         Properties props = <strong class="jxr_keyword">new</strong> Properties();
+<a name="236" href="#236">236</a> 
+<a name="237" href="#237">237</a>         Builder builder = plugin.buildOSGiBundle( project, instructions, props, plugin.getClasspath( project ) );
+<a name="238" href="#238">238</a>         Manifest manifest = builder.getJar().getManifest();
+<a name="239" href="#239">239</a> 
+<a name="240" href="#240">240</a>         String bcp = manifest.getMainAttributes().getValue( Constants.BUNDLE_CLASSPATH );
+<a name="241" href="#241">241</a>         assertEquals( <span class="jxr_string">".,"</span> + <span class="jxr_string">"compile-1.0.jar,b-1.0.jar,runtime-1.0.jar"</span>, bcp );
+<a name="242" href="#242">242</a> 
+<a name="243" href="#243">243</a>         String eas = manifest.getMainAttributes().getValue( <span class="jxr_string">"Embedded-Artifacts"</span> );
+<a name="244" href="#244">244</a>         assertEquals( <span class="jxr_string">"compile-1.0.jar;g=\&quot;g\&quot;;a=\&quot;compile\&quot;;v=\&quot;1.0\&quot;,"</span> + <span class="jxr_string">"b-1.0.jar;g=\&quot;g\&quot;;a=\&quot;b\&quot;;v=\&quot;1.0\&quot;,"</span>
+<a name="245" href="#245">245</a>             + <span class="jxr_string">"runtime-1.0.jar;g=\&quot;g\&quot;;a=\&quot;runtime\&quot;;v=\&quot;1.0\&quot;"</span>, eas );
+<a name="246" href="#246">246</a>     }
+<a name="247" href="#247">247</a> 
 <a name="248" href="#248">248</a> 
-<a name="249" href="#249">249</a> 
-<a name="250" href="#250">250</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testEmbedDependencyNegativeClauses() <strong class="jxr_keyword">throws</strong> Exception
-<a name="251" href="#251">251</a>     {
-<a name="252" href="#252">252</a>         ArtifactStubFactory artifactFactory = <strong class="jxr_keyword">new</strong> ArtifactStubFactory( plugin.getOutputDirectory(), <strong class="jxr_keyword">true</strong> );
-<a name="253" href="#253">253</a> 
-<a name="254" href="#254">254</a>         Set artifacts = <strong class="jxr_keyword">new</strong> LinkedHashSet();
-<a name="255" href="#255">255</a> 
-<a name="256" href="#256">256</a>         artifacts.addAll( artifactFactory.getClassifiedArtifacts() );
-<a name="257" href="#257">257</a>         artifacts.addAll( artifactFactory.getScopedArtifacts() );
-<a name="258" href="#258">258</a>         artifacts.addAll( artifactFactory.getTypedArtifacts() );
-<a name="259" href="#259">259</a> 
-<a name="260" href="#260">260</a>         MavenProject project = getMavenProjectStub();
-<a name="261" href="#261">261</a>         project.setDependencyArtifacts( artifacts );
-<a name="262" href="#262">262</a> 
-<a name="263" href="#263">263</a>         Map instructions = <strong class="jxr_keyword">new</strong> HashMap();
-<a name="264" href="#264">264</a>         instructions.put( DependencyEmbedder.EMBED_DEPENDENCY, <span class="jxr_string">"!type=jar, !artifactId=c"</span> );
-<a name="265" href="#265">265</a>         Properties props = <strong class="jxr_keyword">new</strong> Properties();
-<a name="266" href="#266">266</a> 
-<a name="267" href="#267">267</a>         Builder builder = plugin.buildOSGiBundle( project, instructions, props, plugin.getClasspath( project ) );
-<a name="268" href="#268">268</a>         Manifest manifest = builder.getJar().getManifest();
-<a name="269" href="#269">269</a> 
-<a name="270" href="#270">270</a>         String bcp = manifest.getMainAttributes().getValue( Constants.BUNDLE_CLASSPATH );
-<a name="271" href="#271">271</a>         assertEquals( <span class="jxr_string">".,"</span> + <span class="jxr_string">"e-1.0.rar,"</span> + <span class="jxr_string">"a-1.0.war,"</span> + <span class="jxr_string">"d-1.0.zip"</span>, bcp );
-<a name="272" href="#272">272</a> 
-<a name="273" href="#273">273</a>         String eas = manifest.getMainAttributes().getValue( <span class="jxr_string">"Embedded-Artifacts"</span> );
-<a name="274" href="#274">274</a>         assertEquals( <span class="jxr_string">"e-1.0.rar;g=\&quot;g\&quot;;a=\&quot;e\&quot;;v=\&quot;1.0\&quot;,"</span> + <span class="jxr_string">"a-1.0.war;g=\&quot;g\&quot;;a=\&quot;a\&quot;;v=\&quot;1.0\&quot;,"</span>
-<a name="275" href="#275">275</a>             + <span class="jxr_string">"d-1.0.zip;g=\&quot;g\&quot;;a=\&quot;d\&quot;;v=\&quot;1.0\&quot;"</span>, eas );
-<a name="276" href="#276">276</a>     }
+<a name="249" href="#249">249</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testEmbedDependencyNegativeClauses() <strong class="jxr_keyword">throws</strong> Exception
+<a name="250" href="#250">250</a>     {
+<a name="251" href="#251">251</a>         <a href="../../../../org/apache/felix/bundleplugin/ArtifactStubFactory.html">ArtifactStubFactory</a> artifactFactory = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/ArtifactStubFactory.html">ArtifactStubFactory</a>( plugin.getOutputDirectory(), <strong class="jxr_keyword">true</strong> );
+<a name="252" href="#252">252</a> 
+<a name="253" href="#253">253</a>         Set artifacts = <strong class="jxr_keyword">new</strong> LinkedHashSet();
+<a name="254" href="#254">254</a> 
+<a name="255" href="#255">255</a>         artifacts.addAll( artifactFactory.getClassifiedArtifacts() );
+<a name="256" href="#256">256</a>         artifacts.addAll( artifactFactory.getScopedArtifacts() );
+<a name="257" href="#257">257</a>         artifacts.addAll( artifactFactory.getTypedArtifacts() );
+<a name="258" href="#258">258</a> 
+<a name="259" href="#259">259</a>         MavenProject project = getMavenProjectStub();
+<a name="260" href="#260">260</a>         project.setDependencyArtifacts( artifacts );
+<a name="261" href="#261">261</a> 
+<a name="262" href="#262">262</a>         Map instructions = <strong class="jxr_keyword">new</strong> HashMap();
+<a name="263" href="#263">263</a>         instructions.put( DependencyEmbedder.EMBED_DEPENDENCY, <span class="jxr_string">"!type=jar, !artifactId=c"</span> );
+<a name="264" href="#264">264</a>         Properties props = <strong class="jxr_keyword">new</strong> Properties();
+<a name="265" href="#265">265</a> 
+<a name="266" href="#266">266</a>         Builder builder = plugin.buildOSGiBundle( project, instructions, props, plugin.getClasspath( project ) );
+<a name="267" href="#267">267</a>         Manifest manifest = builder.getJar().getManifest();
+<a name="268" href="#268">268</a> 
+<a name="269" href="#269">269</a>         String bcp = manifest.getMainAttributes().getValue( Constants.BUNDLE_CLASSPATH );
+<a name="270" href="#270">270</a>         assertEquals( <span class="jxr_string">".,"</span> + <span class="jxr_string">"a-1.0.war,"</span> + <span class="jxr_string">"d-1.0.zip,"</span> + <span class="jxr_string">"e-1.0.rar"</span>, bcp );
+<a name="271" href="#271">271</a> 
+<a name="272" href="#272">272</a>         String eas = manifest.getMainAttributes().getValue( <span class="jxr_string">"Embedded-Artifacts"</span> );
+<a name="273" href="#273">273</a>         assertEquals( <span class="jxr_string">"a-1.0.war;g=\&quot;g\&quot;;a=\&quot;a\&quot;;v=\&quot;1.0\&quot;,"</span> + <span class="jxr_string">"d-1.0.zip;g=\&quot;g\&quot;;a=\&quot;d\&quot;;v=\&quot;1.0\&quot;,"</span>
+<a name="274" href="#274">274</a>             + <span class="jxr_string">"e-1.0.rar;g=\&quot;g\&quot;;a=\&quot;e\&quot;;v=\&quot;1.0\&quot;"</span>, eas );
+<a name="275" href="#275">275</a>     }
+<a name="276" href="#276">276</a> 
 <a name="277" href="#277">277</a> 
-<a name="278" href="#278">278</a> 
-<a name="279" href="#279">279</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testEmbedDependencyDuplicateKeys() <strong class="jxr_keyword">throws</strong> Exception
-<a name="280" href="#280">280</a>     {
-<a name="281" href="#281">281</a>         ArtifactStubFactory artifactFactory = <strong class="jxr_keyword">new</strong> ArtifactStubFactory( plugin.getOutputDirectory(), <strong class="jxr_keyword">true</strong> );
-<a name="282" href="#282">282</a> 
-<a name="283" href="#283">283</a>         Set artifacts = <strong class="jxr_keyword">new</strong> LinkedHashSet();
-<a name="284" href="#284">284</a> 
-<a name="285" href="#285">285</a>         artifacts.addAll( artifactFactory.getClassifiedArtifacts() );
-<a name="286" href="#286">286</a>         artifacts.addAll( artifactFactory.getScopedArtifacts() );
-<a name="287" href="#287">287</a>         artifacts.addAll( artifactFactory.getTypedArtifacts() );
-<a name="288" href="#288">288</a> 
-<a name="289" href="#289">289</a>         MavenProject project = getMavenProjectStub();
-<a name="290" href="#290">290</a>         project.setDependencyArtifacts( artifacts );
-<a name="291" href="#291">291</a> 
-<a name="292" href="#292">292</a>         Map instructions = <strong class="jxr_keyword">new</strong> HashMap();
-<a name="293" href="#293">293</a>         instructions.put( DependencyEmbedder.EMBED_DEPENDENCY, <span class="jxr_string">"c;type=jar,c;type=sources"</span> );
-<a name="294" href="#294">294</a>         Properties props = <strong class="jxr_keyword">new</strong> Properties();
-<a name="295" href="#295">295</a> 
-<a name="296" href="#296">296</a>         Builder builder = plugin.buildOSGiBundle( project, instructions, props, plugin.getClasspath( project ) );
-<a name="297" href="#297">297</a>         Manifest manifest = builder.getJar().getManifest();
-<a name="298" href="#298">298</a> 
-<a name="299" href="#299">299</a>         String bcp = manifest.getMainAttributes().getValue( Constants.BUNDLE_CLASSPATH );
-<a name="300" href="#300">300</a>         assertEquals( <span class="jxr_string">".,"</span> + <span class="jxr_string">"c-1.0-three.jar,"</span> + <span class="jxr_string">"c-1.0.sources"</span>, bcp );
-<a name="301" href="#301">301</a> 
-<a name="302" href="#302">302</a>         String eas = manifest.getMainAttributes().getValue( <span class="jxr_string">"Embedded-Artifacts"</span> );
-<a name="303" href="#303">303</a>         assertEquals( <span class="jxr_string">"c-1.0-three.jar;g=\&quot;g\&quot;;a=\&quot;c\&quot;;v=\&quot;1.0\&quot;;c=\&quot;three\&quot;,"</span>
-<a name="304" href="#304">304</a>             + <span class="jxr_string">"c-1.0.sources;g=\&quot;g\&quot;;a=\&quot;c\&quot;;v=\&quot;1.0\&quot;"</span>, eas );
-<a name="305" href="#305">305</a>     }
+<a name="278" href="#278">278</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testEmbedDependencyDuplicateKeys() <strong class="jxr_keyword">throws</strong> Exception
+<a name="279" href="#279">279</a>     {
+<a name="280" href="#280">280</a>         <a href="../../../../org/apache/felix/bundleplugin/ArtifactStubFactory.html">ArtifactStubFactory</a> artifactFactory = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/ArtifactStubFactory.html">ArtifactStubFactory</a>( plugin.getOutputDirectory(), <strong class="jxr_keyword">true</strong> );
+<a name="281" href="#281">281</a> 
+<a name="282" href="#282">282</a>         Set artifacts = <strong class="jxr_keyword">new</strong> LinkedHashSet();
+<a name="283" href="#283">283</a> 
+<a name="284" href="#284">284</a>         artifacts.addAll( artifactFactory.getClassifiedArtifacts() );
+<a name="285" href="#285">285</a>         artifacts.addAll( artifactFactory.getScopedArtifacts() );
+<a name="286" href="#286">286</a>         artifacts.addAll( artifactFactory.getTypedArtifacts() );
+<a name="287" href="#287">287</a> 
+<a name="288" href="#288">288</a>         MavenProject project = getMavenProjectStub();
+<a name="289" href="#289">289</a>         project.setDependencyArtifacts( artifacts );
+<a name="290" href="#290">290</a> 
+<a name="291" href="#291">291</a>         Map instructions = <strong class="jxr_keyword">new</strong> HashMap();
+<a name="292" href="#292">292</a>         instructions.put( DependencyEmbedder.EMBED_DEPENDENCY, <span class="jxr_string">"c;type=jar,c;type=sources"</span> );
+<a name="293" href="#293">293</a>         Properties props = <strong class="jxr_keyword">new</strong> Properties();
+<a name="294" href="#294">294</a> 
+<a name="295" href="#295">295</a>         Builder builder = plugin.buildOSGiBundle( project, instructions, props, plugin.getClasspath( project ) );
+<a name="296" href="#296">296</a>         Manifest manifest = builder.getJar().getManifest();
+<a name="297" href="#297">297</a> 
+<a name="298" href="#298">298</a>         String bcp = manifest.getMainAttributes().getValue( Constants.BUNDLE_CLASSPATH );
+<a name="299" href="#299">299</a>         assertEquals( <span class="jxr_string">".,"</span> + <span class="jxr_string">"c-1.0-three.jar,"</span> + <span class="jxr_string">"c-1.0.sources"</span>, bcp );
+<a name="300" href="#300">300</a> 
+<a name="301" href="#301">301</a>         String eas = manifest.getMainAttributes().getValue( <span class="jxr_string">"Embedded-Artifacts"</span> );
+<a name="302" href="#302">302</a>         assertEquals( <span class="jxr_string">"c-1.0-three.jar;g=\&quot;g\&quot;;a=\&quot;c\&quot;;v=\&quot;1.0\&quot;;c=\&quot;three\&quot;,"</span>
+<a name="303" href="#303">303</a>             + <span class="jxr_string">"c-1.0.sources;g=\&quot;g\&quot;;a=\&quot;c\&quot;;v=\&quot;1.0\&quot;"</span>, eas );
+<a name="304" href="#304">304</a>     }
+<a name="305" href="#305">305</a> 
 <a name="306" href="#306">306</a> 
-<a name="307" href="#307">307</a> 
-<a name="308" href="#308">308</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testEmbedDependencyMissingPositiveKey() <strong class="jxr_keyword">throws</strong> Exception
-<a name="309" href="#309">309</a>     {
-<a name="310" href="#310">310</a>         ArtifactStubFactory artifactFactory = <strong class="jxr_keyword">new</strong> ArtifactStubFactory( plugin.getOutputDirectory(), <strong class="jxr_keyword">true</strong> );
-<a name="311" href="#311">311</a> 
-<a name="312" href="#312">312</a>         Set artifacts = <strong class="jxr_keyword">new</strong> LinkedHashSet();
-<a name="313" href="#313">313</a> 
-<a name="314" href="#314">314</a>         artifacts.addAll( artifactFactory.getClassifiedArtifacts() );
-<a name="315" href="#315">315</a>         artifacts.addAll( artifactFactory.getScopedArtifacts() );
-<a name="316" href="#316">316</a>         artifacts.addAll( artifactFactory.getTypedArtifacts() );
-<a name="317" href="#317">317</a> 
-<a name="318" href="#318">318</a>         MavenProject project = getMavenProjectStub();
-<a name="319" href="#319">319</a>         project.setDependencyArtifacts( artifacts );
-<a name="320" href="#320">320</a> 
-<a name="321" href="#321">321</a>         Map instructions = <strong class="jxr_keyword">new</strong> HashMap();
-<a name="322" href="#322">322</a>         instructions.put( DependencyEmbedder.EMBED_DEPENDENCY, <span class="jxr_string">"artifactId=a|b"</span> );
-<a name="323" href="#323">323</a>         Properties props = <strong class="jxr_keyword">new</strong> Properties();
-<a name="324" href="#324">324</a> 
-<a name="325" href="#325">325</a>         Builder builder = plugin.buildOSGiBundle( project, instructions, props, plugin.getClasspath( project ) );
-<a name="326" href="#326">326</a>         Manifest manifest = builder.getJar().getManifest();
-<a name="327" href="#327">327</a> 
-<a name="328" href="#328">328</a>         String bcp = manifest.getMainAttributes().getValue( Constants.BUNDLE_CLASSPATH );
-<a name="329" href="#329">329</a>         assertEquals( <span class="jxr_string">".,"</span> + <span class="jxr_string">"a-1.0-one.jar,"</span> + <span class="jxr_string">"b-1.0-two.jar,"</span> + <span class="jxr_string">"a-1.0.war,"</span> + <span class="jxr_string">"b-1.0.jar"</span>, bcp );
-<a name="330" href="#330">330</a> 
-<a name="331" href="#331">331</a>         String eas = manifest.getMainAttributes().getValue( <span class="jxr_string">"Embedded-Artifacts"</span> );
-<a name="332" href="#332">332</a>         assertEquals( <span class="jxr_string">"a-1.0-one.jar;g=\&quot;g\&quot;;a=\&quot;a\&quot;;v=\&quot;1.0\&quot;;c=\&quot;one\&quot;,"</span>
-<a name="333" href="#333">333</a>             + <span class="jxr_string">"b-1.0-two.jar;g=\&quot;g\&quot;;a=\&quot;b\&quot;;v=\&quot;1.0\&quot;;c=\&quot;two\&quot;,"</span> + <span class="jxr_string">"a-1.0.war;g=\&quot;g\&quot;;a=\&quot;a\&quot;;v=\&quot;1.0\&quot;,"</span>
-<a name="334" href="#334">334</a>             + <span class="jxr_string">"b-1.0.jar;g=\&quot;g\&quot;;a=\&quot;b\&quot;;v=\&quot;1.0\&quot;"</span>, eas );
-<a name="335" href="#335">335</a>     }
+<a name="307" href="#307">307</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testEmbedDependencyMissingPositiveKey() <strong class="jxr_keyword">throws</strong> Exception
+<a name="308" href="#308">308</a>     {
+<a name="309" href="#309">309</a>         <a href="../../../../org/apache/felix/bundleplugin/ArtifactStubFactory.html">ArtifactStubFactory</a> artifactFactory = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/ArtifactStubFactory.html">ArtifactStubFactory</a>( plugin.getOutputDirectory(), <strong class="jxr_keyword">true</strong> );
+<a name="310" href="#310">310</a> 
+<a name="311" href="#311">311</a>         Set artifacts = <strong class="jxr_keyword">new</strong> LinkedHashSet();
+<a name="312" href="#312">312</a> 
+<a name="313" href="#313">313</a>         artifacts.addAll( artifactFactory.getClassifiedArtifacts() );
+<a name="314" href="#314">314</a>         artifacts.addAll( artifactFactory.getScopedArtifacts() );
+<a name="315" href="#315">315</a>         artifacts.addAll( artifactFactory.getTypedArtifacts() );
+<a name="316" href="#316">316</a> 
+<a name="317" href="#317">317</a>         MavenProject project = getMavenProjectStub();
+<a name="318" href="#318">318</a>         project.setDependencyArtifacts( artifacts );
+<a name="319" href="#319">319</a> 
+<a name="320" href="#320">320</a>         Map instructions = <strong class="jxr_keyword">new</strong> HashMap();
+<a name="321" href="#321">321</a>         instructions.put( DependencyEmbedder.EMBED_DEPENDENCY, <span class="jxr_string">"artifactId=a|b"</span> );
+<a name="322" href="#322">322</a>         Properties props = <strong class="jxr_keyword">new</strong> Properties();
+<a name="323" href="#323">323</a> 
+<a name="324" href="#324">324</a>         Builder builder = plugin.buildOSGiBundle( project, instructions, props, plugin.getClasspath( project ) );
+<a name="325" href="#325">325</a>         Manifest manifest = builder.getJar().getManifest();
+<a name="326" href="#326">326</a> 
+<a name="327" href="#327">327</a>         String bcp = manifest.getMainAttributes().getValue( Constants.BUNDLE_CLASSPATH );
+<a name="328" href="#328">328</a>         assertEquals( <span class="jxr_string">".,"</span> + <span class="jxr_string">"a-1.0-one.jar,"</span> + <span class="jxr_string">"b-1.0-two.jar,"</span> + <span class="jxr_string">"a-1.0.war,"</span> + <span class="jxr_string">"b-1.0.jar"</span>, bcp );
+<a name="329" href="#329">329</a> 
+<a name="330" href="#330">330</a>         String eas = manifest.getMainAttributes().getValue( <span class="jxr_string">"Embedded-Artifacts"</span> );
+<a name="331" href="#331">331</a>         assertEquals( <span class="jxr_string">"a-1.0-one.jar;g=\&quot;g\&quot;;a=\&quot;a\&quot;;v=\&quot;1.0\&quot;;c=\&quot;one\&quot;,"</span>
+<a name="332" href="#332">332</a>             + <span class="jxr_string">"b-1.0-two.jar;g=\&quot;g\&quot;;a=\&quot;b\&quot;;v=\&quot;1.0\&quot;;c=\&quot;two\&quot;,"</span> + <span class="jxr_string">"a-1.0.war;g=\&quot;g\&quot;;a=\&quot;a\&quot;;v=\&quot;1.0\&quot;,"</span>
+<a name="333" href="#333">333</a>             + <span class="jxr_string">"b-1.0.jar;g=\&quot;g\&quot;;a=\&quot;b\&quot;;v=\&quot;1.0\&quot;"</span>, eas );
+<a name="334" href="#334">334</a>     }
+<a name="335" href="#335">335</a> 
 <a name="336" href="#336">336</a> 
-<a name="337" href="#337">337</a> 
-<a name="338" href="#338">338</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testEmbedDependencyMissingNegativeKey() <strong class="jxr_keyword">throws</strong> Exception
-<a name="339" href="#339">339</a>     {
-<a name="340" href="#340">340</a>         ArtifactStubFactory artifactFactory = <strong class="jxr_keyword">new</strong> ArtifactStubFactory( plugin.getOutputDirectory(), <strong class="jxr_keyword">true</strong> );
-<a name="341" href="#341">341</a> 
-<a name="342" href="#342">342</a>         Set artifacts = <strong class="jxr_keyword">new</strong> LinkedHashSet();
-<a name="343" href="#343">343</a> 
-<a name="344" href="#344">344</a>         artifacts.addAll( artifactFactory.getClassifiedArtifacts() );
-<a name="345" href="#345">345</a>         artifacts.addAll( artifactFactory.getScopedArtifacts() );
-<a name="346" href="#346">346</a>         artifacts.addAll( artifactFactory.getTypedArtifacts() );
-<a name="347" href="#347">347</a> 
-<a name="348" href="#348">348</a>         MavenProject project = getMavenProjectStub();
-<a name="349" href="#349">349</a>         project.setDependencyArtifacts( artifacts );
-<a name="350" href="#350">350</a>         Properties props = <strong class="jxr_keyword">new</strong> Properties();
-<a name="351" href="#351">351</a> 
-<a name="352" href="#352">352</a>         Map instructions1 = <strong class="jxr_keyword">new</strong> HashMap();
-<a name="353" href="#353">353</a>         instructions1.put( DependencyEmbedder.EMBED_DEPENDENCY, <span class="jxr_string">"!scope=compile"</span> );
-<a name="354" href="#354">354</a>         Builder builder1 = plugin.buildOSGiBundle( project, instructions1, props, plugin.getClasspath( project ) );
-<a name="355" href="#355">355</a>         Manifest manifest1 = builder1.getJar().getManifest();
-<a name="356" href="#356">356</a> 
-<a name="357" href="#357">357</a>         Map instructions2 = <strong class="jxr_keyword">new</strong> HashMap();
-<a name="358" href="#358">358</a>         instructions2.put( DependencyEmbedder.EMBED_DEPENDENCY, <span class="jxr_string">"scope=!compile"</span> );
-<a name="359" href="#359">359</a>         Builder builder2 = plugin.buildOSGiBundle( project, instructions2, props, plugin.getClasspath( project ) );
-<a name="360" href="#360">360</a>         Manifest manifest2 = builder2.getJar().getManifest();
-<a name="361" href="#361">361</a> 
-<a name="362" href="#362">362</a>         String bcp1 = manifest1.getMainAttributes().getValue( Constants.BUNDLE_CLASSPATH );
-<a name="363" href="#363">363</a>         assertEquals( <span class="jxr_string">".,"</span> + <span class="jxr_string">"test-1.0.jar,"</span> + <span class="jxr_string">"provided-1.0.jar,"</span> + <span class="jxr_string">"runtime-1.0.jar,"</span> + <span class="jxr_string">"system-1.0.jar"</span>, bcp1 );
-<a name="364" href="#364">364</a> 
-<a name="365" href="#365">365</a>         String eas1 = manifest1.getMainAttributes().getValue( <span class="jxr_string">"Embedded-Artifacts"</span> );
-<a name="366" href="#366">366</a>         assertEquals( <span class="jxr_string">"test-1.0.jar;g=\&quot;g\&quot;;a=\&quot;test\&quot;;v=\&quot;1.0\&quot;,"</span>
-<a name="367" href="#367">367</a>             + <span class="jxr_string">"provided-1.0.jar;g=\&quot;g\&quot;;a=\&quot;provided\&quot;;v=\&quot;1.0\&quot;,"</span> + <span class="jxr_string">"runtime-1.0.jar;g=\&quot;g\&quot;;a=\&quot;runtime\&quot;;v=\&quot;1.0\&quot;,"</span>
-<a name="368" href="#368">368</a>             + <span class="jxr_string">"system-1.0.jar;g=\&quot;g\&quot;;a=\&quot;system\&quot;;v=\&quot;1.0\&quot;"</span>, eas1 );
-<a name="369" href="#369">369</a> 
-<a name="370" href="#370">370</a>         String bcp2 = manifest2.getMainAttributes().getValue( Constants.BUNDLE_CLASSPATH );
-<a name="371" href="#371">371</a>         assertEquals( bcp1, bcp2 );
-<a name="372" href="#372">372</a> 
-<a name="373" href="#373">373</a>         String eas2 = manifest2.getMainAttributes().getValue( <span class="jxr_string">"Embedded-Artifacts"</span> );
-<a name="374" href="#374">374</a>         assertEquals( eas1, eas2 );
-<a name="375" href="#375">375</a>     }
+<a name="337" href="#337">337</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testEmbedDependencyMissingNegativeKey() <strong class="jxr_keyword">throws</strong> Exception
+<a name="338" href="#338">338</a>     {
+<a name="339" href="#339">339</a>         <a href="../../../../org/apache/felix/bundleplugin/ArtifactStubFactory.html">ArtifactStubFactory</a> artifactFactory = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/ArtifactStubFactory.html">ArtifactStubFactory</a>( plugin.getOutputDirectory(), <strong class="jxr_keyword">true</strong> );
+<a name="340" href="#340">340</a> 
+<a name="341" href="#341">341</a>         Set artifacts = <strong class="jxr_keyword">new</strong> LinkedHashSet();
+<a name="342" href="#342">342</a> 
+<a name="343" href="#343">343</a>         artifacts.addAll( artifactFactory.getClassifiedArtifacts() );
+<a name="344" href="#344">344</a>         artifacts.addAll( artifactFactory.getScopedArtifacts() );
+<a name="345" href="#345">345</a>         artifacts.addAll( artifactFactory.getTypedArtifacts() );
+<a name="346" href="#346">346</a> 
+<a name="347" href="#347">347</a>         MavenProject project = getMavenProjectStub();
+<a name="348" href="#348">348</a>         project.setDependencyArtifacts( artifacts );
+<a name="349" href="#349">349</a>         Properties props = <strong class="jxr_keyword">new</strong> Properties();
+<a name="350" href="#350">350</a> 
+<a name="351" href="#351">351</a>         Map instructions1 = <strong class="jxr_keyword">new</strong> HashMap();
+<a name="352" href="#352">352</a>         instructions1.put( DependencyEmbedder.EMBED_DEPENDENCY, <span class="jxr_string">"!scope=compile"</span> );
+<a name="353" href="#353">353</a>         Builder builder1 = plugin.buildOSGiBundle( project, instructions1, props, plugin.getClasspath( project ) );
+<a name="354" href="#354">354</a>         Manifest manifest1 = builder1.getJar().getManifest();
+<a name="355" href="#355">355</a> 
+<a name="356" href="#356">356</a>         Map instructions2 = <strong class="jxr_keyword">new</strong> HashMap();
+<a name="357" href="#357">357</a>         instructions2.put( DependencyEmbedder.EMBED_DEPENDENCY, <span class="jxr_string">"scope=!compile"</span> );
+<a name="358" href="#358">358</a>         Builder builder2 = plugin.buildOSGiBundle( project, instructions2, props, plugin.getClasspath( project ) );
+<a name="359" href="#359">359</a>         Manifest manifest2 = builder2.getJar().getManifest();
+<a name="360" href="#360">360</a> 
+<a name="361" href="#361">361</a>         String bcp1 = manifest1.getMainAttributes().getValue( Constants.BUNDLE_CLASSPATH );
+<a name="362" href="#362">362</a>         assertEquals( <span class="jxr_string">".,"</span> + <span class="jxr_string">"provided-1.0.jar,"</span> + <span class="jxr_string">"test-1.0.jar,"</span> + <span class="jxr_string">"runtime-1.0.jar,"</span> + <span class="jxr_string">"system-1.0.jar"</span>, bcp1 );
+<a name="363" href="#363">363</a> 
+<a name="364" href="#364">364</a>         String eas1 = manifest1.getMainAttributes().getValue( <span class="jxr_string">"Embedded-Artifacts"</span> );
+<a name="365" href="#365">365</a>         assertEquals( <span class="jxr_string">"provided-1.0.jar;g=\&quot;g\&quot;;a=\&quot;provided\&quot;;v=\&quot;1.0\&quot;,"</span>
+<a name="366" href="#366">366</a>             + <span class="jxr_string">"test-1.0.jar;g=\&quot;g\&quot;;a=\&quot;test\&quot;;v=\&quot;1.0\&quot;,"</span> + <span class="jxr_string">"runtime-1.0.jar;g=\&quot;g\&quot;;a=\&quot;runtime\&quot;;v=\&quot;1.0\&quot;,"</span>
+<a name="367" href="#367">367</a>             + <span class="jxr_string">"system-1.0.jar;g=\&quot;g\&quot;;a=\&quot;system\&quot;;v=\&quot;1.0\&quot;"</span>, eas1 );
+<a name="368" href="#368">368</a> 
+<a name="369" href="#369">369</a>         String bcp2 = manifest2.getMainAttributes().getValue( Constants.BUNDLE_CLASSPATH );
+<a name="370" href="#370">370</a>         assertEquals( bcp1, bcp2 );
+<a name="371" href="#371">371</a> 
+<a name="372" href="#372">372</a>         String eas2 = manifest2.getMainAttributes().getValue( <span class="jxr_string">"Embedded-Artifacts"</span> );
+<a name="373" href="#373">373</a>         assertEquals( eas1, eas2 );
+<a name="374" href="#374">374</a>     }
+<a name="375" href="#375">375</a> 
 <a name="376" href="#376">376</a> 
-<a name="377" href="#377">377</a> 
-<a name="378" href="#378">378</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testPropertySanitizing() <strong class="jxr_keyword">throws</strong> Exception
-<a name="379" href="#379">379</a>     {
-<a name="380" href="#380">380</a>         MavenProject project = getMavenProjectStub();
-<a name="381" href="#381">381</a> 
-<a name="382" href="#382">382</a>         Properties props = <strong class="jxr_keyword">new</strong> Properties();
-<a name="383" href="#383">383</a> 
-<a name="384" href="#384">384</a>         props.put( <strong class="jxr_keyword">new</strong> File( <span class="jxr_string">"A"</span> ), <strong class="jxr_keyword">new</strong> File( <span class="jxr_string">"B"</span> ) );
-<a name="385" href="#385">385</a>         props.put( <strong class="jxr_keyword">new</strong> <strong class="jxr_keyword">int</strong>[4], <strong class="jxr_keyword">new</strong> HashMap( 2 ) );
-<a name="386" href="#386">386</a>         props.put( Arrays.asList( 1, <span class="jxr_string">"two"</span>, 3.0 ), <strong class="jxr_keyword">new</strong> <strong class="jxr_keyword">float</strong>[5] );
-<a name="387" href="#387">387</a> 
-<a name="388" href="#388">388</a>         props.put( <span class="jxr_string">"A"</span>, <strong class="jxr_keyword">new</strong> File( <span class="jxr_string">"B"</span> ) );
-<a name="389" href="#389">389</a>         props.put( <span class="jxr_string">"4"</span>, <strong class="jxr_keyword">new</strong> HashMap( 2 ) );
-<a name="390" href="#390">390</a>         props.put( <span class="jxr_string">"1, two, 3.0"</span>, <strong class="jxr_keyword">new</strong> <strong class="jxr_keyword">char</strong>[5] );
-<a name="391" href="#391">391</a> 
-<a name="392" href="#392">392</a>         Builder builder = plugin.getOSGiBuilder( project, <strong class="jxr_keyword">new</strong> HashMap(), props, plugin.getClasspath( project ) );
-<a name="393" href="#393">393</a> 
-<a name="394" href="#394">394</a>         File file = <strong class="jxr_keyword">new</strong> File( getBasedir(), <span class="jxr_string">"target"</span> + File.separatorChar + <span class="jxr_string">"test.props"</span> );
-<a name="395" href="#395">395</a>         builder.getProperties().store( <strong class="jxr_keyword">new</strong> FileOutputStream( file ), <span class="jxr_string">"TEST"</span> );
-<a name="396" href="#396">396</a>     }
-<a name="397" href="#397">397</a> }
+<a name="377" href="#377">377</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testPropertySanitizing() <strong class="jxr_keyword">throws</strong> Exception
+<a name="378" href="#378">378</a>     {
+<a name="379" href="#379">379</a>         MavenProject project = getMavenProjectStub();
+<a name="380" href="#380">380</a> 
+<a name="381" href="#381">381</a>         Properties props = <strong class="jxr_keyword">new</strong> Properties();
+<a name="382" href="#382">382</a> 
+<a name="383" href="#383">383</a>         props.put( <strong class="jxr_keyword">new</strong> File( <span class="jxr_string">"A"</span> ), <strong class="jxr_keyword">new</strong> File( <span class="jxr_string">"B"</span> ) );
+<a name="384" href="#384">384</a>         props.put( <strong class="jxr_keyword">new</strong> <strong class="jxr_keyword">int</strong>[4], <strong class="jxr_keyword">new</strong> HashMap( 2 ) );
+<a name="385" href="#385">385</a>         props.put( Arrays.asList( 1, <span class="jxr_string">"two"</span>, 3.0 ), <strong class="jxr_keyword">new</strong> <strong class="jxr_keyword">float</strong>[5] );
+<a name="386" href="#386">386</a> 
+<a name="387" href="#387">387</a>         props.put( <span class="jxr_string">"A"</span>, <strong class="jxr_keyword">new</strong> File( <span class="jxr_string">"B"</span> ) );
+<a name="388" href="#388">388</a>         props.put( <span class="jxr_string">"4"</span>, <strong class="jxr_keyword">new</strong> HashMap( 2 ) );
+<a name="389" href="#389">389</a>         props.put( <span class="jxr_string">"1, two, 3.0"</span>, <strong class="jxr_keyword">new</strong> <strong class="jxr_keyword">char</strong>[5] );
+<a name="390" href="#390">390</a> 
+<a name="391" href="#391">391</a>         Builder builder = plugin.getOSGiBuilder( project, <strong class="jxr_keyword">new</strong> HashMap(), props, plugin.getClasspath( project ) );
+<a name="392" href="#392">392</a> 
+<a name="393" href="#393">393</a>         File file = <strong class="jxr_keyword">new</strong> File( getBasedir(), <span class="jxr_string">"target"</span> + File.separatorChar + <span class="jxr_string">"test.props"</span> );
+<a name="394" href="#394">394</a>         builder.getProperties().store( <strong class="jxr_keyword">new</strong> FileOutputStream( file ), <span class="jxr_string">"TEST"</span> );
+<a name="395" href="#395">395</a>     }
+<a name="396" href="#396">396</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
index 63119ee..8475f76 100644
--- 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
@@ -19,6 +19,9 @@
             	<a href="AbstractBundlePluginTest.html" target="classFrame">AbstractBundlePluginTest</a>
           	</li>
           	          	<li>
+            	<a href="ArtifactStubFactory.html" target="classFrame">ArtifactStubFactory</a>
+          	</li>
+          	          	<li>
             	<a href="BlueprintComponentTest.html" target="classFrame">BlueprintComponentTest</a>
           	</li>
           	          	<li>
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
index 8d80e15..b63d8da 100644
--- 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
@@ -42,6 +42,11 @@
             	</tr>
 				            	<tr>
               		<td>
+                		<a href="ArtifactStubFactory.html" target="classFrame">ArtifactStubFactory</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
                 		<a href="BlueprintComponentTest.html" target="classFrame">BlueprintComponentTest</a>
               		</td>
             	</tr>
@@ -77,6 +82,6 @@
         	</ul>
       	</div>
 				<hr />
-		Copyright &copy; 2006-2011 The Apache Software Foundation. All Rights Reserved.
+		Copyright &copy; 2006-2012 The Apache Software Foundation. All Rights Reserved.
 	</body>
 </html>
\ No newline at end of file
diff --git a/bundleplugin/doc/site/xref-test/overview-summary.html b/bundleplugin/doc/site/xref-test/overview-summary.html
index 7f24bf5..fca74f2 100644
--- a/bundleplugin/doc/site/xref-test/overview-summary.html
+++ b/bundleplugin/doc/site/xref-test/overview-summary.html
@@ -59,6 +59,6 @@
       	</div>
 		
 		<hr />
-		Copyright &copy; 2006-2011 The Apache Software Foundation. All Rights Reserved.
+		Copyright &copy; 2006-2012 The Apache Software Foundation. All Rights Reserved.
 	</body>
 </html>
\ No newline at end of file
