diff --git a/bundleplugin/doc/site/xref/allclasses-frame.html b/bundleplugin/doc/site/xref/allclasses-frame.html
index fafb37a..c87d361 100644
--- a/bundleplugin/doc/site/xref/allclasses-frame.html
+++ b/bundleplugin/doc/site/xref/allclasses-frame.html
@@ -96,9 +96,6 @@
 				<a href="org/apache/felix/obrplugin/ObrUtils.html" target="classFrame">ObrUtils</a>
 			</li>
 						<li>
-				<a href="org/apache/felix/bundleplugin/PackageVersionAnalyzer.html" target="classFrame">PackageVersionAnalyzer</a>
-			</li>
-						<li>
 				<a href="org/apache/felix/obrplugin/PomHelper.html" target="classFrame">PomHelper</a>
 			</li>
 						<li>
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundlePlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundlePlugin.html
index 8d92a4c..cd912e6 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundlePlugin.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundlePlugin.html
@@ -50,1479 +50,1496 @@
 <a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
 <a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
 <a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
-<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Attributes;
-<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Manifest;
-<a name="45" href="#45">45</a>  
-<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.ManifestSection;
-<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.MavenArchiveConfiguration;
-<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.MavenArchiver;
-<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
-<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
-<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.execution.MavenSession;
-<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.License;
-<a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Model;
-<a name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Resource;
-<a name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
-<a name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
-<a name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoFailureException;
-<a name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
-<a name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
-<a name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProjectHelper;
-<a name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.DefaultMaven2OsgiConverter;
-<a name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.Maven2OsgiConverter;
-<a name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.archiver.UnArchiver;
-<a name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.archiver.manager.ArchiverManager;
-<a name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.DirectoryScanner;
-<a name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.FileUtils;
-<a name="67" href="#67">67</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.StringUtils;
-<a name="68" href="#68">68</a>  
-<a name="69" href="#69">69</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
-<a name="70" href="#70">70</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Builder;
-<a name="71" href="#71">71</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Constants;
-<a name="72" href="#72">72</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.EmbeddedResource;
-<a name="73" href="#73">73</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.FileResource;
-<a name="74" href="#74">74</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
-<a name="75" href="#75">75</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Processor;
-<a name="76" href="#76">76</a>  <strong class="jxr_keyword">import</strong> aQute.lib.spring.SpringXMLType;
-<a name="77" href="#77">77</a>  
+<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> java.util.TreeSet;
+<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Attributes;
+<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Manifest;
+<a name="46" href="#46">46</a>  
+<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.ManifestSection;
+<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.MavenArchiveConfiguration;
+<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.MavenArchiver;
+<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
+<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.execution.MavenSession;
+<a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.License;
+<a name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Model;
+<a name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Resource;
+<a name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<a name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoFailureException;
+<a name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
+<a name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProjectHelper;
+<a name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.DefaultMaven2OsgiConverter;
+<a name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.Maven2OsgiConverter;
+<a name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.archiver.UnArchiver;
+<a name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.archiver.manager.ArchiverManager;
+<a name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.DirectoryScanner;
+<a name="67" href="#67">67</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.FileUtils;
+<a name="68" href="#68">68</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.StringUtils;
+<a name="69" href="#69">69</a>  
+<a name="70" href="#70">70</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
+<a name="71" href="#71">71</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Builder;
+<a name="72" href="#72">72</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Constants;
+<a name="73" href="#73">73</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.EmbeddedResource;
+<a name="74" href="#74">74</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.FileResource;
+<a name="75" href="#75">75</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
+<a name="76" href="#76">76</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Processor;
+<a name="77" href="#77">77</a>  <strong class="jxr_keyword">import</strong> aQute.lib.spring.SpringXMLType;
 <a name="78" href="#78">78</a>  
-<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">/**</em>
-<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment"> * Create an OSGi bundle from Maven project</em>
-<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment"> *</em>
-<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment"> * @goal bundle</em>
-<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment"> * @phase package</em>
-<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment"> * @requiresDependencyResolution test</em>
-<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment"> * @description build an OSGi bundle jar</em>
-<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment"> * @threadSafe</em>
-<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment"> */</em>
-<a name="88" href="#88">88</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/BundlePlugin.html">BundlePlugin</a> <strong class="jxr_keyword">extends</strong> AbstractMojo
-<a name="89" href="#89">89</a>  {
-<a name="90" href="#90">90</a>      <em class="jxr_javadoccomment">/**</em>
-<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     * Directory where the manifest will be written</em>
-<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     *</em>
-<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     * @parameter expression="${manifestLocation}" default-value="${project.build.outputDirectory}/META-INF"</em>
-<a name="94" href="#94">94</a>  <em class="jxr_javadoccomment">     */</em>
-<a name="95" href="#95">95</a>      <strong class="jxr_keyword">protected</strong> File manifestLocation;
-<a name="96" href="#96">96</a>  
-<a name="97" href="#97">97</a>      <em class="jxr_javadoccomment">/**</em>
-<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     * File where the BND instructions will be dumped</em>
-<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     *</em>
-<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     * @parameter expression="${dumpInstructions}"</em>
-<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     */</em>
-<a name="102" href="#102">102</a>     <strong class="jxr_keyword">protected</strong> File dumpInstructions;
-<a name="103" href="#103">103</a> 
-<a name="104" href="#104">104</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="105" href="#105">105</a> <em class="jxr_javadoccomment">     * File where the BND class-path will be dumped</em>
-<a name="106" href="#106">106</a> <em class="jxr_javadoccomment">     *</em>
-<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     * @parameter expression="${dumpClasspath}"</em>
-<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     */</em>
-<a name="109" href="#109">109</a>     <strong class="jxr_keyword">protected</strong> File dumpClasspath;
-<a name="110" href="#110">110</a> 
-<a name="111" href="#111">111</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     * When true, unpack the bundle contents to the outputDirectory</em>
-<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">     *</em>
-<a name="114" href="#114">114</a> <em class="jxr_javadoccomment">     * @parameter expression="${unpackBundle}"</em>
-<a name="115" href="#115">115</a> <em class="jxr_javadoccomment">     */</em>
-<a name="116" href="#116">116</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> unpackBundle;
-<a name="117" href="#117">117</a> 
-<a name="118" href="#118">118</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">     * Comma separated list of artifactIds to exclude from the dependency classpath passed to BND (use "true" to exclude everything)</em>
-<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     *</em>
-<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     * @parameter expression="${excludeDependencies}"</em>
-<a name="122" href="#122">122</a> <em class="jxr_javadoccomment">     */</em>
-<a name="123" href="#123">123</a>     <strong class="jxr_keyword">protected</strong> String excludeDependencies;
-<a name="124" href="#124">124</a> 
-<a name="125" href="#125">125</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     * Classifier type of the bundle to be installed.  For example, "jdk14".</em>
-<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     * Defaults to none which means this is the project's main bundle.</em>
-<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     *</em>
-<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">     * @parameter</em>
-<a name="130" href="#130">130</a> <em class="jxr_javadoccomment">     */</em>
-<a name="131" href="#131">131</a>     <strong class="jxr_keyword">protected</strong> String classifier;
-<a name="132" href="#132">132</a> 
-<a name="133" href="#133">133</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="134" href="#134">134</a> <em class="jxr_javadoccomment">     * @component</em>
-<a name="135" href="#135">135</a> <em class="jxr_javadoccomment">     */</em>
-<a name="136" href="#136">136</a>     <strong class="jxr_keyword">private</strong> MavenProjectHelper m_projectHelper;
-<a name="137" href="#137">137</a> 
-<a name="138" href="#138">138</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="139" href="#139">139</a> <em class="jxr_javadoccomment">     * @component</em>
-<a name="140" href="#140">140</a> <em class="jxr_javadoccomment">     */</em>
-<a name="141" href="#141">141</a>     <strong class="jxr_keyword">private</strong> ArchiverManager m_archiverManager;
-<a name="142" href="#142">142</a> 
-<a name="143" href="#143">143</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     * @component</em>
-<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     */</em>
-<a name="146" href="#146">146</a>     <strong class="jxr_keyword">private</strong> ArtifactHandlerManager m_artifactHandlerManager;
-<a name="147" href="#147">147</a> 
-<a name="148" href="#148">148</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">     * Project types which this plugin supports.</em>
-<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">     *</em>
-<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">     * @parameter</em>
-<a name="152" href="#152">152</a> <em class="jxr_javadoccomment">     */</em>
-<a name="153" href="#153">153</a>     <strong class="jxr_keyword">protected</strong> List supportedProjectTypes = Arrays.asList( <strong class="jxr_keyword">new</strong> String[]
-<a name="154" href="#154">154</a>         { <span class="jxr_string">"jar"</span>, <span class="jxr_string">"bundle"</span> } );
-<a name="155" href="#155">155</a> 
-<a name="156" href="#156">156</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="157" href="#157">157</a> <em class="jxr_javadoccomment">     * The directory for the generated bundles.</em>
-<a name="158" href="#158">158</a> <em class="jxr_javadoccomment">     *</em>
-<a name="159" href="#159">159</a> <em class="jxr_javadoccomment">     * @parameter expression="${project.build.outputDirectory}"</em>
-<a name="160" href="#160">160</a> <em class="jxr_javadoccomment">     * @required</em>
-<a name="161" href="#161">161</a> <em class="jxr_javadoccomment">     */</em>
-<a name="162" href="#162">162</a>     <strong class="jxr_keyword">private</strong> File outputDirectory;
-<a name="163" href="#163">163</a> 
-<a name="164" href="#164">164</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="165" href="#165">165</a> <em class="jxr_javadoccomment">     * The directory for the generated JAR.</em>
-<a name="166" href="#166">166</a> <em class="jxr_javadoccomment">     *</em>
-<a name="167" href="#167">167</a> <em class="jxr_javadoccomment">     * @parameter expression="${project.build.directory}"</em>
-<a name="168" href="#168">168</a> <em class="jxr_javadoccomment">     * @required</em>
-<a name="169" href="#169">169</a> <em class="jxr_javadoccomment">     */</em>
-<a name="170" href="#170">170</a>     <strong class="jxr_keyword">private</strong> String buildDirectory;
-<a name="171" href="#171">171</a> 
-<a name="172" href="#172">172</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="173" href="#173">173</a> <em class="jxr_javadoccomment">     * The Maven project.</em>
-<a name="174" href="#174">174</a> <em class="jxr_javadoccomment">     *</em>
-<a name="175" href="#175">175</a> <em class="jxr_javadoccomment">     * @parameter expression="${project}"</em>
-<a name="176" href="#176">176</a> <em class="jxr_javadoccomment">     * @required</em>
-<a name="177" href="#177">177</a> <em class="jxr_javadoccomment">     * @readonly</em>
-<a name="178" href="#178">178</a> <em class="jxr_javadoccomment">     */</em>
-<a name="179" href="#179">179</a>     <strong class="jxr_keyword">private</strong> MavenProject project;
-<a name="180" href="#180">180</a> 
-<a name="181" href="#181">181</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="182" href="#182">182</a> <em class="jxr_javadoccomment">     * The BND instructions for the bundle.</em>
-<a name="183" href="#183">183</a> <em class="jxr_javadoccomment">     *</em>
-<a name="184" href="#184">184</a> <em class="jxr_javadoccomment">     * @parameter</em>
-<a name="185" href="#185">185</a> <em class="jxr_javadoccomment">     */</em>
-<a name="186" href="#186">186</a>     <strong class="jxr_keyword">private</strong> Map instructions = <strong class="jxr_keyword">new</strong> LinkedHashMap();
-<a name="187" href="#187">187</a> 
-<a name="188" href="#188">188</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="189" href="#189">189</a> <em class="jxr_javadoccomment">     * Use locally patched version for now.</em>
-<a name="190" href="#190">190</a> <em class="jxr_javadoccomment">     */</em>
-<a name="191" href="#191">191</a>     <strong class="jxr_keyword">private</strong> Maven2OsgiConverter m_maven2OsgiConverter = <strong class="jxr_keyword">new</strong> DefaultMaven2OsgiConverter();
-<a name="192" href="#192">192</a> 
-<a name="193" href="#193">193</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="194" href="#194">194</a> <em class="jxr_javadoccomment">     * The archive configuration to use.</em>
-<a name="195" href="#195">195</a> <em class="jxr_javadoccomment">     *</em>
-<a name="196" href="#196">196</a> <em class="jxr_javadoccomment">     * @parameter</em>
-<a name="197" href="#197">197</a> <em class="jxr_javadoccomment">     */</em>
-<a name="198" href="#198">198</a>     <strong class="jxr_keyword">private</strong> MavenArchiveConfiguration archive; <em class="jxr_comment">// accessed indirectly in JarPluginConfiguration</em>
-<a name="199" href="#199">199</a> 
-<a name="200" href="#200">200</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="201" href="#201">201</a> <em class="jxr_javadoccomment">     * @parameter default-value="${session}"</em>
-<a name="202" href="#202">202</a> <em class="jxr_javadoccomment">     * @required</em>
-<a name="203" href="#203">203</a> <em class="jxr_javadoccomment">     * @readonly</em>
-<a name="204" href="#204">204</a> <em class="jxr_javadoccomment">     */</em>
-<a name="205" href="#205">205</a>     <strong class="jxr_keyword">private</strong> MavenSession m_mavenSession;
-<a name="206" href="#206">206</a> 
-<a name="207" href="#207">207</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_SYMBOLICNAME = <span class="jxr_string">"maven-symbolicname"</span>;
-<a name="208" href="#208">208</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_RESOURCES = <span class="jxr_string">"{maven-resources}"</span>;
-<a name="209" href="#209">209</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LOCAL_PACKAGES = <span class="jxr_string">"{local-packages}"</span>;
-<a name="210" href="#210">210</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_SOURCES = <span class="jxr_string">"{maven-sources}"</span>;
-<a name="211" href="#211">211</a> 
-<a name="212" href="#212">212</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String[] EMPTY_STRING_ARRAY =
-<a name="213" href="#213">213</a>         {};
-<a name="214" href="#214">214</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String[] DEFAULT_INCLUDES =
-<a name="215" href="#215">215</a>         { <span class="jxr_string">"**/**"</span> };
-<a name="216" href="#216">216</a> 
-<a name="217" href="#217">217</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String NL = System.getProperty( <span class="jxr_string">"line.separator"</span> );
-<a name="218" href="#218">218</a> 
+<a name="79" href="#79">79</a>  
+<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment"> * Create an OSGi bundle from Maven project</em>
+<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment"> *</em>
+<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment"> * @goal bundle</em>
+<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment"> * @phase package</em>
+<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment"> * @requiresDependencyResolution test</em>
+<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment"> * @description build an OSGi bundle jar</em>
+<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment"> * @threadSafe</em>
+<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="89" href="#89">89</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/BundlePlugin.html">BundlePlugin</a> <strong class="jxr_keyword">extends</strong> AbstractMojo
+<a name="90" href="#90">90</a>  {
+<a name="91" href="#91">91</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     * Directory where the manifest will be written</em>
+<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="94" href="#94">94</a>  <em class="jxr_javadoccomment">     * @parameter expression="${manifestLocation}" default-value="${project.build.outputDirectory}/META-INF"</em>
+<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="96" href="#96">96</a>      <strong class="jxr_keyword">protected</strong> File manifestLocation;
+<a name="97" href="#97">97</a>  
+<a name="98" href="#98">98</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     * File where the BND instructions will be dumped</em>
+<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     *</em>
+<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     * @parameter expression="${dumpInstructions}"</em>
+<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     */</em>
+<a name="103" href="#103">103</a>     <strong class="jxr_keyword">protected</strong> File dumpInstructions;
+<a name="104" href="#104">104</a> 
+<a name="105" href="#105">105</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="106" href="#106">106</a> <em class="jxr_javadoccomment">     * File where the BND class-path will be dumped</em>
+<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     *</em>
+<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     * @parameter expression="${dumpClasspath}"</em>
+<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     */</em>
+<a name="110" href="#110">110</a>     <strong class="jxr_keyword">protected</strong> File dumpClasspath;
+<a name="111" href="#111">111</a> 
+<a name="112" href="#112">112</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">     * When true, unpack the bundle contents to the outputDirectory</em>
+<a name="114" href="#114">114</a> <em class="jxr_javadoccomment">     *</em>
+<a name="115" href="#115">115</a> <em class="jxr_javadoccomment">     * @parameter expression="${unpackBundle}"</em>
+<a name="116" href="#116">116</a> <em class="jxr_javadoccomment">     */</em>
+<a name="117" href="#117">117</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> unpackBundle;
+<a name="118" href="#118">118</a> 
+<a name="119" href="#119">119</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     * Comma separated list of artifactIds to exclude from the dependency classpath passed to BND (use "true" to exclude everything)</em>
+<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     *</em>
+<a name="122" href="#122">122</a> <em class="jxr_javadoccomment">     * @parameter expression="${excludeDependencies}"</em>
+<a name="123" href="#123">123</a> <em class="jxr_javadoccomment">     */</em>
+<a name="124" href="#124">124</a>     <strong class="jxr_keyword">protected</strong> String excludeDependencies;
+<a name="125" href="#125">125</a> 
+<a name="126" href="#126">126</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     * Classifier type of the bundle to be installed.  For example, "jdk14".</em>
+<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     * Defaults to none which means this is the project's main bundle.</em>
+<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">     *</em>
+<a name="130" href="#130">130</a> <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="131" href="#131">131</a> <em class="jxr_javadoccomment">     */</em>
+<a name="132" href="#132">132</a>     <strong class="jxr_keyword">protected</strong> String classifier;
+<a name="133" href="#133">133</a> 
+<a name="134" href="#134">134</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="135" href="#135">135</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="136" href="#136">136</a> <em class="jxr_javadoccomment">     */</em>
+<a name="137" href="#137">137</a>     <strong class="jxr_keyword">private</strong> MavenProjectHelper m_projectHelper;
+<a name="138" href="#138">138</a> 
+<a name="139" href="#139">139</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="140" href="#140">140</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="141" href="#141">141</a> <em class="jxr_javadoccomment">     */</em>
+<a name="142" href="#142">142</a>     <strong class="jxr_keyword">private</strong> ArchiverManager m_archiverManager;
+<a name="143" href="#143">143</a> 
+<a name="144" href="#144">144</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     */</em>
+<a name="147" href="#147">147</a>     <strong class="jxr_keyword">private</strong> ArtifactHandlerManager m_artifactHandlerManager;
+<a name="148" href="#148">148</a> 
+<a name="149" href="#149">149</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">     * Project types which this plugin supports.</em>
+<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">     *</em>
+<a name="152" href="#152">152</a> <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="153" href="#153">153</a> <em class="jxr_javadoccomment">     */</em>
+<a name="154" href="#154">154</a>     <strong class="jxr_keyword">protected</strong> List supportedProjectTypes = Arrays.asList( <strong class="jxr_keyword">new</strong> String[]
+<a name="155" href="#155">155</a>         { <span class="jxr_string">"jar"</span>, <span class="jxr_string">"bundle"</span> } );
+<a name="156" href="#156">156</a> 
+<a name="157" href="#157">157</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="158" href="#158">158</a> <em class="jxr_javadoccomment">     * The directory for the generated bundles.</em>
+<a name="159" href="#159">159</a> <em class="jxr_javadoccomment">     *</em>
+<a name="160" href="#160">160</a> <em class="jxr_javadoccomment">     * @parameter expression="${project.build.outputDirectory}"</em>
+<a name="161" href="#161">161</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="162" href="#162">162</a> <em class="jxr_javadoccomment">     */</em>
+<a name="163" href="#163">163</a>     <strong class="jxr_keyword">private</strong> File outputDirectory;
+<a name="164" href="#164">164</a> 
+<a name="165" href="#165">165</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="166" href="#166">166</a> <em class="jxr_javadoccomment">     * The directory for the generated JAR.</em>
+<a name="167" href="#167">167</a> <em class="jxr_javadoccomment">     *</em>
+<a name="168" href="#168">168</a> <em class="jxr_javadoccomment">     * @parameter expression="${project.build.directory}"</em>
+<a name="169" href="#169">169</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="170" href="#170">170</a> <em class="jxr_javadoccomment">     */</em>
+<a name="171" href="#171">171</a>     <strong class="jxr_keyword">private</strong> String buildDirectory;
+<a name="172" href="#172">172</a> 
+<a name="173" href="#173">173</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="174" href="#174">174</a> <em class="jxr_javadoccomment">     * The Maven project.</em>
+<a name="175" href="#175">175</a> <em class="jxr_javadoccomment">     *</em>
+<a name="176" href="#176">176</a> <em class="jxr_javadoccomment">     * @parameter expression="${project}"</em>
+<a name="177" href="#177">177</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="178" href="#178">178</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="179" href="#179">179</a> <em class="jxr_javadoccomment">     */</em>
+<a name="180" href="#180">180</a>     <strong class="jxr_keyword">private</strong> MavenProject project;
+<a name="181" href="#181">181</a> 
+<a name="182" href="#182">182</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="183" href="#183">183</a> <em class="jxr_javadoccomment">     * The BND instructions for the bundle.</em>
+<a name="184" href="#184">184</a> <em class="jxr_javadoccomment">     *</em>
+<a name="185" href="#185">185</a> <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="186" href="#186">186</a> <em class="jxr_javadoccomment">     */</em>
+<a name="187" href="#187">187</a>     <strong class="jxr_keyword">private</strong> Map instructions = <strong class="jxr_keyword">new</strong> LinkedHashMap();
+<a name="188" href="#188">188</a> 
+<a name="189" href="#189">189</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="190" href="#190">190</a> <em class="jxr_javadoccomment">     * Use locally patched version for now.</em>
+<a name="191" href="#191">191</a> <em class="jxr_javadoccomment">     */</em>
+<a name="192" href="#192">192</a>     <strong class="jxr_keyword">private</strong> Maven2OsgiConverter m_maven2OsgiConverter = <strong class="jxr_keyword">new</strong> DefaultMaven2OsgiConverter();
+<a name="193" href="#193">193</a> 
+<a name="194" href="#194">194</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="195" href="#195">195</a> <em class="jxr_javadoccomment">     * The archive configuration to use.</em>
+<a name="196" href="#196">196</a> <em class="jxr_javadoccomment">     *</em>
+<a name="197" href="#197">197</a> <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="198" href="#198">198</a> <em class="jxr_javadoccomment">     */</em>
+<a name="199" href="#199">199</a>     <strong class="jxr_keyword">private</strong> MavenArchiveConfiguration archive; <em class="jxr_comment">// accessed indirectly in JarPluginConfiguration</em>
+<a name="200" href="#200">200</a> 
+<a name="201" href="#201">201</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="202" href="#202">202</a> <em class="jxr_javadoccomment">     * @parameter default-value="${session}"</em>
+<a name="203" href="#203">203</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="204" href="#204">204</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="205" href="#205">205</a> <em class="jxr_javadoccomment">     */</em>
+<a name="206" href="#206">206</a>     <strong class="jxr_keyword">private</strong> MavenSession m_mavenSession;
+<a name="207" href="#207">207</a> 
+<a name="208" href="#208">208</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_SYMBOLICNAME = <span class="jxr_string">"maven-symbolicname"</span>;
+<a name="209" href="#209">209</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_RESOURCES = <span class="jxr_string">"{maven-resources}"</span>;
+<a name="210" href="#210">210</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LOCAL_PACKAGES = <span class="jxr_string">"{local-packages}"</span>;
+<a name="211" href="#211">211</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_SOURCES = <span class="jxr_string">"{maven-sources}"</span>;
+<a name="212" href="#212">212</a> 
+<a name="213" href="#213">213</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String[] EMPTY_STRING_ARRAY =
+<a name="214" href="#214">214</a>         {};
+<a name="215" href="#215">215</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String[] DEFAULT_INCLUDES =
+<a name="216" href="#216">216</a>         { <span class="jxr_string">"**/**"</span> };
+<a name="217" href="#217">217</a> 
+<a name="218" href="#218">218</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String NL = System.getProperty( <span class="jxr_string">"line.separator"</span> );
 <a name="219" href="#219">219</a> 
-<a name="220" href="#220">220</a>     <strong class="jxr_keyword">protected</strong> Maven2OsgiConverter getMaven2OsgiConverter()
-<a name="221" href="#221">221</a>     {
-<a name="222" href="#222">222</a>         <strong class="jxr_keyword">return</strong> m_maven2OsgiConverter;
-<a name="223" href="#223">223</a>     }
-<a name="224" href="#224">224</a> 
+<a name="220" href="#220">220</a> 
+<a name="221" href="#221">221</a>     <strong class="jxr_keyword">protected</strong> Maven2OsgiConverter getMaven2OsgiConverter()
+<a name="222" href="#222">222</a>     {
+<a name="223" href="#223">223</a>         <strong class="jxr_keyword">return</strong> m_maven2OsgiConverter;
+<a name="224" href="#224">224</a>     }
 <a name="225" href="#225">225</a> 
-<a name="226" href="#226">226</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setMaven2OsgiConverter( Maven2OsgiConverter maven2OsgiConverter )
-<a name="227" href="#227">227</a>     {
-<a name="228" href="#228">228</a>         m_maven2OsgiConverter = maven2OsgiConverter;
-<a name="229" href="#229">229</a>     }
-<a name="230" href="#230">230</a> 
+<a name="226" href="#226">226</a> 
+<a name="227" href="#227">227</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setMaven2OsgiConverter( Maven2OsgiConverter maven2OsgiConverter )
+<a name="228" href="#228">228</a>     {
+<a name="229" href="#229">229</a>         m_maven2OsgiConverter = maven2OsgiConverter;
+<a name="230" href="#230">230</a>     }
 <a name="231" href="#231">231</a> 
-<a name="232" href="#232">232</a>     <strong class="jxr_keyword">protected</strong> MavenProject getProject()
-<a name="233" href="#233">233</a>     {
-<a name="234" href="#234">234</a>         <strong class="jxr_keyword">return</strong> project;
-<a name="235" href="#235">235</a>     }
-<a name="236" href="#236">236</a> 
+<a name="232" href="#232">232</a> 
+<a name="233" href="#233">233</a>     <strong class="jxr_keyword">protected</strong> MavenProject getProject()
+<a name="234" href="#234">234</a>     {
+<a name="235" href="#235">235</a>         <strong class="jxr_keyword">return</strong> project;
+<a name="236" href="#236">236</a>     }
 <a name="237" href="#237">237</a> 
-<a name="238" href="#238">238</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="239" href="#239">239</a> <em class="jxr_javadoccomment">     * @see org.apache.maven.plugin.AbstractMojo#execute()</em>
-<a name="240" href="#240">240</a> <em class="jxr_javadoccomment">     */</em>
-<a name="241" href="#241">241</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="242" href="#242">242</a>     {
-<a name="243" href="#243">243</a>         Properties properties = <strong class="jxr_keyword">new</strong> Properties();
-<a name="244" href="#244">244</a>         String projectType = getProject().getArtifact().getType();
-<a name="245" href="#245">245</a> 
-<a name="246" href="#246">246</a>         <em class="jxr_comment">// ignore unsupported project types, useful when bundleplugin is configured in parent pom</em>
-<a name="247" href="#247">247</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( projectType ) )
-<a name="248" href="#248">248</a>         {
-<a name="249" href="#249">249</a>             getLog().warn(
-<a name="250" href="#250">250</a>                 <span class="jxr_string">"Ignoring project type "</span> + projectType + <span class="jxr_string">" - supportedProjectTypes = "</span> + supportedProjectTypes );
-<a name="251" href="#251">251</a>             <strong class="jxr_keyword">return</strong>;
-<a name="252" href="#252">252</a>         }
-<a name="253" href="#253">253</a> 
-<a name="254" href="#254">254</a>         execute( getProject(), instructions, properties );
-<a name="255" href="#255">255</a>     }
-<a name="256" href="#256">256</a> 
+<a name="238" href="#238">238</a> 
+<a name="239" href="#239">239</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="240" href="#240">240</a> <em class="jxr_javadoccomment">     * @see org.apache.maven.plugin.AbstractMojo#execute()</em>
+<a name="241" href="#241">241</a> <em class="jxr_javadoccomment">     */</em>
+<a name="242" href="#242">242</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="243" href="#243">243</a>     {
+<a name="244" href="#244">244</a>         Properties properties = <strong class="jxr_keyword">new</strong> Properties();
+<a name="245" href="#245">245</a>         String projectType = getProject().getArtifact().getType();
+<a name="246" href="#246">246</a> 
+<a name="247" href="#247">247</a>         <em class="jxr_comment">// ignore unsupported project types, useful when bundleplugin is configured in parent pom</em>
+<a name="248" href="#248">248</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( projectType ) )
+<a name="249" href="#249">249</a>         {
+<a name="250" href="#250">250</a>             getLog().warn(
+<a name="251" href="#251">251</a>                 <span class="jxr_string">"Ignoring project type "</span> + projectType + <span class="jxr_string">" - supportedProjectTypes = "</span> + supportedProjectTypes );
+<a name="252" href="#252">252</a>             <strong class="jxr_keyword">return</strong>;
+<a name="253" href="#253">253</a>         }
+<a name="254" href="#254">254</a> 
+<a name="255" href="#255">255</a>         execute( getProject(), instructions, properties );
+<a name="256" href="#256">256</a>     }
 <a name="257" href="#257">257</a> 
-<a name="258" href="#258">258</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject currentProject, Map originalInstructions, Properties properties )
-<a name="259" href="#259">259</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="260" href="#260">260</a>     {
-<a name="261" href="#261">261</a>         <strong class="jxr_keyword">try</strong>
-<a name="262" href="#262">262</a>         {
-<a name="263" href="#263">263</a>             execute( currentProject, originalInstructions, properties, getClasspath( currentProject ) );
-<a name="264" href="#264">264</a>         }
-<a name="265" href="#265">265</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="266" href="#266">266</a>         {
-<a name="267" href="#267">267</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error calculating classpath for project "</span> + currentProject, e );
-<a name="268" href="#268">268</a>         }
-<a name="269" href="#269">269</a>     }
-<a name="270" href="#270">270</a> 
+<a name="258" href="#258">258</a> 
+<a name="259" href="#259">259</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject currentProject, Map originalInstructions, Properties properties )
+<a name="260" href="#260">260</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="261" href="#261">261</a>     {
+<a name="262" href="#262">262</a>         <strong class="jxr_keyword">try</strong>
+<a name="263" href="#263">263</a>         {
+<a name="264" href="#264">264</a>             execute( currentProject, originalInstructions, properties, getClasspath( currentProject ) );
+<a name="265" href="#265">265</a>         }
+<a name="266" href="#266">266</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="267" href="#267">267</a>         {
+<a name="268" href="#268">268</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error calculating classpath for project "</span> + currentProject, e );
+<a name="269" href="#269">269</a>         }
+<a name="270" href="#270">270</a>     }
 <a name="271" href="#271">271</a> 
-<a name="272" href="#272">272</a>     <em class="jxr_comment">/*<em class="jxr_comment"> transform directives from their XML form to the expected BND syntax (eg. _include becomes -include) */</em></em>
-<a name="273" href="#273">273</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> Map transformDirectives( Map originalInstructions )
-<a name="274" href="#274">274</a>     {
-<a name="275" href="#275">275</a>         Map transformedInstructions = <strong class="jxr_keyword">new</strong> LinkedHashMap();
-<a name="276" href="#276">276</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = originalInstructions.entrySet().iterator(); i.hasNext(); )
-<a name="277" href="#277">277</a>         {
-<a name="278" href="#278">278</a>             Map.Entry e = ( Map.Entry ) i.next();
-<a name="279" href="#279">279</a> 
-<a name="280" href="#280">280</a>             String key = ( String ) e.getKey();
-<a name="281" href="#281">281</a>             <strong class="jxr_keyword">if</strong> ( key.startsWith( <span class="jxr_string">"_"</span> ) )
-<a name="282" href="#282">282</a>             {
-<a name="283" href="#283">283</a>                 key = <span class="jxr_string">"-"</span> + key.substring( 1 );
-<a name="284" href="#284">284</a>             }
-<a name="285" href="#285">285</a> 
-<a name="286" href="#286">286</a>             String value = ( String ) e.getValue();
-<a name="287" href="#287">287</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == value )
-<a name="288" href="#288">288</a>             {
-<a name="289" href="#289">289</a>                 value = <span class="jxr_string">""</span>;
-<a name="290" href="#290">290</a>             }
-<a name="291" href="#291">291</a>             <strong class="jxr_keyword">else</strong>
-<a name="292" href="#292">292</a>             {
-<a name="293" href="#293">293</a>                 value = value.replaceAll( <span class="jxr_string">"&#92;&#92;p{Blank}*[\r\n]&#92;&#92;p{Blank}*"</span>, <span class="jxr_string">""</span> );
-<a name="294" href="#294">294</a>             }
-<a name="295" href="#295">295</a> 
-<a name="296" href="#296">296</a>             <strong class="jxr_keyword">if</strong> ( Analyzer.WAB.equals( key ) &amp;&amp; value.length() == 0 )
-<a name="297" href="#297">297</a>             {
-<a name="298" href="#298">298</a>                 <em class="jxr_comment">// provide useful default</em>
-<a name="299" href="#299">299</a>                 value = <span class="jxr_string">"src/main/webapp/"</span>;
-<a name="300" href="#300">300</a>             }
-<a name="301" href="#301">301</a> 
-<a name="302" href="#302">302</a>             transformedInstructions.put( key, value );
-<a name="303" href="#303">303</a>         }
-<a name="304" href="#304">304</a>         <strong class="jxr_keyword">return</strong> transformedInstructions;
-<a name="305" href="#305">305</a>     }
-<a name="306" href="#306">306</a> 
+<a name="272" href="#272">272</a> 
+<a name="273" href="#273">273</a>     <em class="jxr_comment">/*<em class="jxr_comment"> transform directives from their XML form to the expected BND syntax (eg. _include becomes -include) */</em></em>
+<a name="274" href="#274">274</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> Map transformDirectives( Map originalInstructions )
+<a name="275" href="#275">275</a>     {
+<a name="276" href="#276">276</a>         Map transformedInstructions = <strong class="jxr_keyword">new</strong> LinkedHashMap();
+<a name="277" href="#277">277</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = originalInstructions.entrySet().iterator(); i.hasNext(); )
+<a name="278" href="#278">278</a>         {
+<a name="279" href="#279">279</a>             Map.Entry e = ( Map.Entry ) i.next();
+<a name="280" href="#280">280</a> 
+<a name="281" href="#281">281</a>             String key = ( String ) e.getKey();
+<a name="282" href="#282">282</a>             <strong class="jxr_keyword">if</strong> ( key.startsWith( <span class="jxr_string">"_"</span> ) )
+<a name="283" href="#283">283</a>             {
+<a name="284" href="#284">284</a>                 key = <span class="jxr_string">"-"</span> + key.substring( 1 );
+<a name="285" href="#285">285</a>             }
+<a name="286" href="#286">286</a> 
+<a name="287" href="#287">287</a>             String value = ( String ) e.getValue();
+<a name="288" href="#288">288</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == value )
+<a name="289" href="#289">289</a>             {
+<a name="290" href="#290">290</a>                 value = <span class="jxr_string">""</span>;
+<a name="291" href="#291">291</a>             }
+<a name="292" href="#292">292</a>             <strong class="jxr_keyword">else</strong>
+<a name="293" href="#293">293</a>             {
+<a name="294" href="#294">294</a>                 value = value.replaceAll( <span class="jxr_string">"&#92;&#92;p{Blank}*[\r\n]&#92;&#92;p{Blank}*"</span>, <span class="jxr_string">""</span> );
+<a name="295" href="#295">295</a>             }
+<a name="296" href="#296">296</a> 
+<a name="297" href="#297">297</a>             <strong class="jxr_keyword">if</strong> ( Analyzer.WAB.equals( key ) &amp;&amp; value.length() == 0 )
+<a name="298" href="#298">298</a>             {
+<a name="299" href="#299">299</a>                 <em class="jxr_comment">// provide useful default</em>
+<a name="300" href="#300">300</a>                 value = <span class="jxr_string">"src/main/webapp/"</span>;
+<a name="301" href="#301">301</a>             }
+<a name="302" href="#302">302</a> 
+<a name="303" href="#303">303</a>             transformedInstructions.put( key, value );
+<a name="304" href="#304">304</a>         }
+<a name="305" href="#305">305</a>         <strong class="jxr_keyword">return</strong> transformedInstructions;
+<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">protected</strong> <strong class="jxr_keyword">boolean</strong> reportErrors( String prefix, Analyzer analyzer )
-<a name="309" href="#309">309</a>     {
-<a name="310" href="#310">310</a>         List errors = analyzer.getErrors();
-<a name="311" href="#311">311</a>         List warnings = analyzer.getWarnings();
-<a name="312" href="#312">312</a> 
-<a name="313" href="#313">313</a>         <strong class="jxr_keyword">for</strong> ( Iterator w = warnings.iterator(); w.hasNext(); )
-<a name="314" href="#314">314</a>         {
-<a name="315" href="#315">315</a>             String msg = ( String ) w.next();
-<a name="316" href="#316">316</a>             getLog().warn( prefix + <span class="jxr_string">" : "</span> + msg );
-<a name="317" href="#317">317</a>         }
-<a name="318" href="#318">318</a> 
-<a name="319" href="#319">319</a>         <strong class="jxr_keyword">boolean</strong> hasErrors = false;
-<a name="320" href="#320">320</a>         String fileNotFound = <span class="jxr_string">"Input file does not exist: "</span>;
-<a name="321" href="#321">321</a>         <strong class="jxr_keyword">for</strong> ( Iterator e = errors.iterator(); e.hasNext(); )
-<a name="322" href="#322">322</a>         {
-<a name="323" href="#323">323</a>             String msg = ( String ) e.next();
-<a name="324" href="#324">324</a>             <strong class="jxr_keyword">if</strong> ( msg.startsWith( fileNotFound ) &amp;&amp; msg.endsWith( <span class="jxr_string">"~"</span> ) )
-<a name="325" href="#325">325</a>             {
-<a name="326" href="#326">326</a>                 <em class="jxr_comment">// treat as warning; this error happens when you have duplicate entries in Include-Resource</em>
-<a name="327" href="#327">327</a>                 String duplicate = Processor.removeDuplicateMarker( msg.substring( fileNotFound.length() ) );
-<a name="328" href="#328">328</a>                 getLog().warn( prefix + <span class="jxr_string">" : Duplicate path '"</span> + duplicate + <span class="jxr_string">"' in Include-Resource"</span> );
-<a name="329" href="#329">329</a>             }
-<a name="330" href="#330">330</a>             <strong class="jxr_keyword">else</strong>
-<a name="331" href="#331">331</a>             {
-<a name="332" href="#332">332</a>                 getLog().error( prefix + <span class="jxr_string">" : "</span> + msg );
-<a name="333" href="#333">333</a>                 hasErrors = <strong class="jxr_keyword">true</strong>;
-<a name="334" href="#334">334</a>             }
-<a name="335" href="#335">335</a>         }
-<a name="336" href="#336">336</a>         <strong class="jxr_keyword">return</strong> hasErrors;
-<a name="337" href="#337">337</a>     }
-<a name="338" href="#338">338</a> 
+<a name="308" href="#308">308</a> 
+<a name="309" href="#309">309</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> reportErrors( String prefix, Analyzer analyzer )
+<a name="310" href="#310">310</a>     {
+<a name="311" href="#311">311</a>         List errors = analyzer.getErrors();
+<a name="312" href="#312">312</a>         List warnings = analyzer.getWarnings();
+<a name="313" href="#313">313</a> 
+<a name="314" href="#314">314</a>         <strong class="jxr_keyword">for</strong> ( Iterator w = warnings.iterator(); w.hasNext(); )
+<a name="315" href="#315">315</a>         {
+<a name="316" href="#316">316</a>             String msg = ( String ) w.next();
+<a name="317" href="#317">317</a>             getLog().warn( prefix + <span class="jxr_string">" : "</span> + msg );
+<a name="318" href="#318">318</a>         }
+<a name="319" href="#319">319</a> 
+<a name="320" href="#320">320</a>         <strong class="jxr_keyword">boolean</strong> hasErrors = false;
+<a name="321" href="#321">321</a>         String fileNotFound = <span class="jxr_string">"Input file does not exist: "</span>;
+<a name="322" href="#322">322</a>         <strong class="jxr_keyword">for</strong> ( Iterator e = errors.iterator(); e.hasNext(); )
+<a name="323" href="#323">323</a>         {
+<a name="324" href="#324">324</a>             String msg = ( String ) e.next();
+<a name="325" href="#325">325</a>             <strong class="jxr_keyword">if</strong> ( msg.startsWith( fileNotFound ) &amp;&amp; msg.endsWith( <span class="jxr_string">"~"</span> ) )
+<a name="326" href="#326">326</a>             {
+<a name="327" href="#327">327</a>                 <em class="jxr_comment">// treat as warning; this error happens when you have duplicate entries in Include-Resource</em>
+<a name="328" href="#328">328</a>                 String duplicate = Processor.removeDuplicateMarker( msg.substring( fileNotFound.length() ) );
+<a name="329" href="#329">329</a>                 getLog().warn( prefix + <span class="jxr_string">" : Duplicate path '"</span> + duplicate + <span class="jxr_string">"' in Include-Resource"</span> );
+<a name="330" href="#330">330</a>             }
+<a name="331" href="#331">331</a>             <strong class="jxr_keyword">else</strong>
+<a name="332" href="#332">332</a>             {
+<a name="333" href="#333">333</a>                 getLog().error( prefix + <span class="jxr_string">" : "</span> + msg );
+<a name="334" href="#334">334</a>                 hasErrors = <strong class="jxr_keyword">true</strong>;
+<a name="335" href="#335">335</a>             }
+<a name="336" href="#336">336</a>         }
+<a name="337" href="#337">337</a>         <strong class="jxr_keyword">return</strong> hasErrors;
+<a name="338" href="#338">338</a>     }
 <a name="339" href="#339">339</a> 
-<a name="340" href="#340">340</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject currentProject, Map originalInstructions, Properties properties,
-<a name="341" href="#341">341</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="342" href="#342">342</a>     {
-<a name="343" href="#343">343</a>         <strong class="jxr_keyword">try</strong>
-<a name="344" href="#344">344</a>         {
-<a name="345" href="#345">345</a>             File jarFile = <strong class="jxr_keyword">new</strong> File( getBuildDirectory(), getBundleName( currentProject ) );
-<a name="346" href="#346">346</a>             Builder builder = buildOSGiBundle( currentProject, originalInstructions, properties, classpath );
-<a name="347" href="#347">347</a>             <strong class="jxr_keyword">boolean</strong> hasErrors = reportErrors( <span class="jxr_string">"Bundle "</span> + currentProject.getArtifact(), builder );
-<a name="348" href="#348">348</a>             <strong class="jxr_keyword">if</strong> ( hasErrors )
-<a name="349" href="#349">349</a>             {
-<a name="350" href="#350">350</a>                 String failok = builder.getProperty( <span class="jxr_string">"-failok"</span> );
-<a name="351" href="#351">351</a>                 <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == failok || <span class="jxr_string">"false"</span>.equalsIgnoreCase( failok ) )
-<a name="352" href="#352">352</a>                 {
-<a name="353" href="#353">353</a>                     jarFile.delete();
-<a name="354" href="#354">354</a> 
-<a name="355" href="#355">355</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoFailureException( <span class="jxr_string">"Error(s) found in bundle configuration"</span> );
-<a name="356" href="#356">356</a>                 }
-<a name="357" href="#357">357</a>             }
-<a name="358" href="#358">358</a> 
-<a name="359" href="#359">359</a>             <em class="jxr_comment">// attach bundle to maven project</em>
-<a name="360" href="#360">360</a>             jarFile.getParentFile().mkdirs();
-<a name="361" href="#361">361</a>             builder.getJar().write( jarFile );
-<a name="362" href="#362">362</a> 
-<a name="363" href="#363">363</a>             Artifact mainArtifact = currentProject.getArtifact();
-<a name="364" href="#364">364</a> 
-<a name="365" href="#365">365</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"bundle"</span>.equals( mainArtifact.getType() ) )
-<a name="366" href="#366">366</a>             {
-<a name="367" href="#367">367</a>                 <em class="jxr_comment">// workaround for MNG-1682: force maven to install artifact using the "jar" handler</em>
-<a name="368" href="#368">368</a>                 mainArtifact.setArtifactHandler( m_artifactHandlerManager.getArtifactHandler( <span class="jxr_string">"jar"</span> ) );
-<a name="369" href="#369">369</a>             }
-<a name="370" href="#370">370</a> 
-<a name="371" href="#371">371</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == classifier || classifier.trim().length() == 0 )
-<a name="372" href="#372">372</a>             {
-<a name="373" href="#373">373</a>                 mainArtifact.setFile( jarFile );
-<a name="374" href="#374">374</a>             }
-<a name="375" href="#375">375</a>             <strong class="jxr_keyword">else</strong>
-<a name="376" href="#376">376</a>             {
-<a name="377" href="#377">377</a>                 m_projectHelper.attachArtifact( currentProject, jarFile, classifier );
-<a name="378" href="#378">378</a>             }
-<a name="379" href="#379">379</a> 
-<a name="380" href="#380">380</a>             <strong class="jxr_keyword">if</strong> ( unpackBundle )
-<a name="381" href="#381">381</a>             {
-<a name="382" href="#382">382</a>                 unpackBundle( jarFile );
-<a name="383" href="#383">383</a>             }
-<a name="384" href="#384">384</a> 
-<a name="385" href="#385">385</a>             <strong class="jxr_keyword">if</strong> ( manifestLocation != <strong class="jxr_keyword">null</strong> )
-<a name="386" href="#386">386</a>             {
-<a name="387" href="#387">387</a>                 File outputFile = <strong class="jxr_keyword">new</strong> File( manifestLocation, <span class="jxr_string">"MANIFEST.MF"</span> );
-<a name="388" href="#388">388</a> 
-<a name="389" href="#389">389</a>                 <strong class="jxr_keyword">try</strong>
-<a name="390" href="#390">390</a>                 {
-<a name="391" href="#391">391</a>                     Manifest manifest = builder.getJar().getManifest();
-<a name="392" href="#392">392</a>                     ManifestPlugin.writeManifest( manifest, outputFile );
-<a name="393" href="#393">393</a>                 }
-<a name="394" href="#394">394</a>                 <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="395" href="#395">395</a>                 {
-<a name="396" href="#396">396</a>                     getLog().error( <span class="jxr_string">"Error trying to write Manifest to file "</span> + outputFile, e );
-<a name="397" href="#397">397</a>                 }
-<a name="398" href="#398">398</a>             }
-<a name="399" href="#399">399</a> 
-<a name="400" href="#400">400</a>             <em class="jxr_comment">// cleanup...</em>
-<a name="401" href="#401">401</a>             builder.close();
-<a name="402" href="#402">402</a>         }
-<a name="403" href="#403">403</a>         <strong class="jxr_keyword">catch</strong> ( MojoFailureException e )
-<a name="404" href="#404">404</a>         {
-<a name="405" href="#405">405</a>             getLog().error( e.getLocalizedMessage() );
-<a name="406" href="#406">406</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error(s) found in bundle configuration"</span>, e );
-<a name="407" href="#407">407</a>         }
-<a name="408" href="#408">408</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="409" href="#409">409</a>         {
-<a name="410" href="#410">410</a>             getLog().error( <span class="jxr_string">"An internal error occurred"</span>, e );
-<a name="411" href="#411">411</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Internal error in maven-bundle-plugin"</span>, e );
-<a name="412" href="#412">412</a>         }
-<a name="413" href="#413">413</a>     }
-<a name="414" href="#414">414</a> 
+<a name="340" href="#340">340</a> 
+<a name="341" href="#341">341</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject currentProject, Map originalInstructions, Properties properties,
+<a name="342" href="#342">342</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="343" href="#343">343</a>     {
+<a name="344" href="#344">344</a>         <strong class="jxr_keyword">try</strong>
+<a name="345" href="#345">345</a>         {
+<a name="346" href="#346">346</a>             File jarFile = <strong class="jxr_keyword">new</strong> File( getBuildDirectory(), getBundleName( currentProject ) );
+<a name="347" href="#347">347</a>             Builder builder = buildOSGiBundle( currentProject, originalInstructions, properties, classpath );
+<a name="348" href="#348">348</a>             <strong class="jxr_keyword">boolean</strong> hasErrors = reportErrors( <span class="jxr_string">"Bundle "</span> + currentProject.getArtifact(), builder );
+<a name="349" href="#349">349</a>             <strong class="jxr_keyword">if</strong> ( hasErrors )
+<a name="350" href="#350">350</a>             {
+<a name="351" href="#351">351</a>                 String failok = builder.getProperty( <span class="jxr_string">"-failok"</span> );
+<a name="352" href="#352">352</a>                 <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == failok || <span class="jxr_string">"false"</span>.equalsIgnoreCase( failok ) )
+<a name="353" href="#353">353</a>                 {
+<a name="354" href="#354">354</a>                     jarFile.delete();
+<a name="355" href="#355">355</a> 
+<a name="356" href="#356">356</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoFailureException( <span class="jxr_string">"Error(s) found in bundle configuration"</span> );
+<a name="357" href="#357">357</a>                 }
+<a name="358" href="#358">358</a>             }
+<a name="359" href="#359">359</a> 
+<a name="360" href="#360">360</a>             <em class="jxr_comment">// attach bundle to maven project</em>
+<a name="361" href="#361">361</a>             jarFile.getParentFile().mkdirs();
+<a name="362" href="#362">362</a>             builder.getJar().write( jarFile );
+<a name="363" href="#363">363</a> 
+<a name="364" href="#364">364</a>             Artifact mainArtifact = currentProject.getArtifact();
+<a name="365" href="#365">365</a> 
+<a name="366" href="#366">366</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"bundle"</span>.equals( mainArtifact.getType() ) )
+<a name="367" href="#367">367</a>             {
+<a name="368" href="#368">368</a>                 <em class="jxr_comment">// workaround for MNG-1682: force maven to install artifact using the "jar" handler</em>
+<a name="369" href="#369">369</a>                 mainArtifact.setArtifactHandler( m_artifactHandlerManager.getArtifactHandler( <span class="jxr_string">"jar"</span> ) );
+<a name="370" href="#370">370</a>             }
+<a name="371" href="#371">371</a> 
+<a name="372" href="#372">372</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == classifier || classifier.trim().length() == 0 )
+<a name="373" href="#373">373</a>             {
+<a name="374" href="#374">374</a>                 mainArtifact.setFile( jarFile );
+<a name="375" href="#375">375</a>             }
+<a name="376" href="#376">376</a>             <strong class="jxr_keyword">else</strong>
+<a name="377" href="#377">377</a>             {
+<a name="378" href="#378">378</a>                 m_projectHelper.attachArtifact( currentProject, jarFile, classifier );
+<a name="379" href="#379">379</a>             }
+<a name="380" href="#380">380</a> 
+<a name="381" href="#381">381</a>             <strong class="jxr_keyword">if</strong> ( unpackBundle )
+<a name="382" href="#382">382</a>             {
+<a name="383" href="#383">383</a>                 unpackBundle( jarFile );
+<a name="384" href="#384">384</a>             }
+<a name="385" href="#385">385</a> 
+<a name="386" href="#386">386</a>             <strong class="jxr_keyword">if</strong> ( manifestLocation != <strong class="jxr_keyword">null</strong> )
+<a name="387" href="#387">387</a>             {
+<a name="388" href="#388">388</a>                 File outputFile = <strong class="jxr_keyword">new</strong> File( manifestLocation, <span class="jxr_string">"MANIFEST.MF"</span> );
+<a name="389" href="#389">389</a> 
+<a name="390" href="#390">390</a>                 <strong class="jxr_keyword">try</strong>
+<a name="391" href="#391">391</a>                 {
+<a name="392" href="#392">392</a>                     Manifest manifest = builder.getJar().getManifest();
+<a name="393" href="#393">393</a>                     ManifestPlugin.writeManifest( manifest, outputFile );
+<a name="394" href="#394">394</a>                 }
+<a name="395" href="#395">395</a>                 <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="396" href="#396">396</a>                 {
+<a name="397" href="#397">397</a>                     getLog().error( <span class="jxr_string">"Error trying to write Manifest to file "</span> + outputFile, e );
+<a name="398" href="#398">398</a>                 }
+<a name="399" href="#399">399</a>             }
+<a name="400" href="#400">400</a> 
+<a name="401" href="#401">401</a>             <em class="jxr_comment">// cleanup...</em>
+<a name="402" href="#402">402</a>             builder.close();
+<a name="403" href="#403">403</a>         }
+<a name="404" href="#404">404</a>         <strong class="jxr_keyword">catch</strong> ( MojoFailureException e )
+<a name="405" href="#405">405</a>         {
+<a name="406" href="#406">406</a>             getLog().error( e.getLocalizedMessage() );
+<a name="407" href="#407">407</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error(s) found in bundle configuration"</span>, e );
+<a name="408" href="#408">408</a>         }
+<a name="409" href="#409">409</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="410" href="#410">410</a>         {
+<a name="411" href="#411">411</a>             getLog().error( <span class="jxr_string">"An internal error occurred"</span>, e );
+<a name="412" href="#412">412</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Internal error in maven-bundle-plugin"</span>, e );
+<a name="413" href="#413">413</a>         }
+<a name="414" href="#414">414</a>     }
 <a name="415" href="#415">415</a> 
-<a name="416" href="#416">416</a>     <strong class="jxr_keyword">protected</strong> Builder getOSGiBuilder( MavenProject currentProject, Map originalInstructions, Properties properties,
-<a name="417" href="#417">417</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> Exception
-<a name="418" href="#418">418</a>     {
-<a name="419" href="#419">419</a>         properties.putAll( getDefaultProperties( currentProject ) );
-<a name="420" href="#420">420</a>         properties.putAll( transformDirectives( originalInstructions ) );
-<a name="421" href="#421">421</a> 
-<a name="422" href="#422">422</a>         Builder builder = <strong class="jxr_keyword">new</strong> Builder();
-<a name="423" href="#423">423</a>         builder.setBase( getBase( currentProject ) );
-<a name="424" href="#424">424</a>         builder.setProperties( sanitize( properties ) );
-<a name="425" href="#425">425</a>         <strong class="jxr_keyword">if</strong> ( classpath != <strong class="jxr_keyword">null</strong> )
-<a name="426" href="#426">426</a>         {
-<a name="427" href="#427">427</a>             builder.setClasspath( classpath );
-<a name="428" href="#428">428</a>         }
-<a name="429" href="#429">429</a> 
-<a name="430" href="#430">430</a>         <strong class="jxr_keyword">return</strong> builder;
-<a name="431" href="#431">431</a>     }
-<a name="432" href="#432">432</a> 
+<a name="416" href="#416">416</a> 
+<a name="417" href="#417">417</a>     <strong class="jxr_keyword">protected</strong> Builder getOSGiBuilder( MavenProject currentProject, Map originalInstructions, Properties properties,
+<a name="418" href="#418">418</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="419" href="#419">419</a>     {
+<a name="420" href="#420">420</a>         properties.putAll( getDefaultProperties( currentProject ) );
+<a name="421" href="#421">421</a>         properties.putAll( transformDirectives( originalInstructions ) );
+<a name="422" href="#422">422</a> 
+<a name="423" href="#423">423</a>         Builder builder = <strong class="jxr_keyword">new</strong> Builder();
+<a name="424" href="#424">424</a>         builder.setBase( getBase( currentProject ) );
+<a name="425" href="#425">425</a>         builder.setProperties( sanitize( properties ) );
+<a name="426" href="#426">426</a>         <strong class="jxr_keyword">if</strong> ( classpath != <strong class="jxr_keyword">null</strong> )
+<a name="427" href="#427">427</a>         {
+<a name="428" href="#428">428</a>             builder.setClasspath( classpath );
+<a name="429" href="#429">429</a>         }
+<a name="430" href="#430">430</a> 
+<a name="431" href="#431">431</a>         <strong class="jxr_keyword">return</strong> builder;
+<a name="432" href="#432">432</a>     }
 <a name="433" href="#433">433</a> 
-<a name="434" href="#434">434</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> Properties sanitize( Properties properties )
-<a name="435" href="#435">435</a>     {
-<a name="436" href="#436">436</a>         <em class="jxr_comment">// convert any non-String keys/values to Strings</em>
-<a name="437" href="#437">437</a>         Properties sanitizedEntries = <strong class="jxr_keyword">new</strong> Properties();
-<a name="438" href="#438">438</a>         <strong class="jxr_keyword">for</strong> ( Iterator itr = properties.entrySet().iterator(); itr.hasNext(); )
-<a name="439" href="#439">439</a>         {
-<a name="440" href="#440">440</a>             Map.Entry entry = ( Map.Entry ) itr.next();
-<a name="441" href="#441">441</a>             <strong class="jxr_keyword">if</strong> ( entry.getKey() instanceof String == false )
-<a name="442" href="#442">442</a>             {
-<a name="443" href="#443">443</a>                 String key = sanitize( entry.getKey() );
-<a name="444" href="#444">444</a>                 <strong class="jxr_keyword">if</strong> ( !properties.containsKey( key ) )
-<a name="445" href="#445">445</a>                 {
-<a name="446" href="#446">446</a>                     sanitizedEntries.setProperty( key, sanitize( entry.getValue() ) );
-<a name="447" href="#447">447</a>                 }
-<a name="448" href="#448">448</a>                 itr.remove();
-<a name="449" href="#449">449</a>             }
-<a name="450" href="#450">450</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( entry.getValue() instanceof String == false )
-<a name="451" href="#451">451</a>             {
-<a name="452" href="#452">452</a>                 entry.setValue( sanitize( entry.getValue() ) );
-<a name="453" href="#453">453</a>             }
-<a name="454" href="#454">454</a>         }
-<a name="455" href="#455">455</a>         properties.putAll( sanitizedEntries );
-<a name="456" href="#456">456</a>         <strong class="jxr_keyword">return</strong> properties;
-<a name="457" href="#457">457</a>     }
-<a name="458" href="#458">458</a> 
+<a name="434" href="#434">434</a> 
+<a name="435" href="#435">435</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> Properties sanitize( Properties properties )
+<a name="436" href="#436">436</a>     {
+<a name="437" href="#437">437</a>         <em class="jxr_comment">// convert any non-String keys/values to Strings</em>
+<a name="438" href="#438">438</a>         Properties sanitizedEntries = <strong class="jxr_keyword">new</strong> Properties();
+<a name="439" href="#439">439</a>         <strong class="jxr_keyword">for</strong> ( Iterator itr = properties.entrySet().iterator(); itr.hasNext(); )
+<a name="440" href="#440">440</a>         {
+<a name="441" href="#441">441</a>             Map.Entry entry = ( Map.Entry ) itr.next();
+<a name="442" href="#442">442</a>             <strong class="jxr_keyword">if</strong> ( entry.getKey() instanceof String == false )
+<a name="443" href="#443">443</a>             {
+<a name="444" href="#444">444</a>                 String key = sanitize( entry.getKey() );
+<a name="445" href="#445">445</a>                 <strong class="jxr_keyword">if</strong> ( !properties.containsKey( key ) )
+<a name="446" href="#446">446</a>                 {
+<a name="447" href="#447">447</a>                     sanitizedEntries.setProperty( key, sanitize( entry.getValue() ) );
+<a name="448" href="#448">448</a>                 }
+<a name="449" href="#449">449</a>                 itr.remove();
+<a name="450" href="#450">450</a>             }
+<a name="451" href="#451">451</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( entry.getValue() instanceof String == false )
+<a name="452" href="#452">452</a>             {
+<a name="453" href="#453">453</a>                 entry.setValue( sanitize( entry.getValue() ) );
+<a name="454" href="#454">454</a>             }
+<a name="455" href="#455">455</a>         }
+<a name="456" href="#456">456</a>         properties.putAll( sanitizedEntries );
+<a name="457" href="#457">457</a>         <strong class="jxr_keyword">return</strong> properties;
+<a name="458" href="#458">458</a>     }
 <a name="459" href="#459">459</a> 
-<a name="460" href="#460">460</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String sanitize( Object value )
-<a name="461" href="#461">461</a>     {
-<a name="462" href="#462">462</a>         <strong class="jxr_keyword">if</strong> ( value instanceof String )
-<a name="463" href="#463">463</a>         {
-<a name="464" href="#464">464</a>             <strong class="jxr_keyword">return</strong> ( String ) value;
-<a name="465" href="#465">465</a>         }
-<a name="466" href="#466">466</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( value instanceof Iterable )
-<a name="467" href="#467">467</a>         {
-<a name="468" href="#468">468</a>             String delim = <span class="jxr_string">""</span>;
-<a name="469" href="#469">469</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
-<a name="470" href="#470">470</a>             <strong class="jxr_keyword">for</strong> ( Object i : ( Iterable&lt;?&gt; ) value )
-<a name="471" href="#471">471</a>             {
-<a name="472" href="#472">472</a>                 buf.append( delim ).append( i );
-<a name="473" href="#473">473</a>                 delim = <span class="jxr_string">", "</span>;
-<a name="474" href="#474">474</a>             }
-<a name="475" href="#475">475</a>             <strong class="jxr_keyword">return</strong> buf.toString();
-<a name="476" href="#476">476</a>         }
-<a name="477" href="#477">477</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( value.getClass().isArray() )
-<a name="478" href="#478">478</a>         {
-<a name="479" href="#479">479</a>             String delim = <span class="jxr_string">""</span>;
-<a name="480" href="#480">480</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
-<a name="481" href="#481">481</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0, len = Array.getLength( value ); i &lt; len; i++ )
-<a name="482" href="#482">482</a>             {
-<a name="483" href="#483">483</a>                 buf.append( delim ).append( Array.get( value, i ) );
-<a name="484" href="#484">484</a>                 delim = <span class="jxr_string">", "</span>;
-<a name="485" href="#485">485</a>             }
-<a name="486" href="#486">486</a>             <strong class="jxr_keyword">return</strong> buf.toString();
-<a name="487" href="#487">487</a>         }
-<a name="488" href="#488">488</a>         <strong class="jxr_keyword">else</strong>
-<a name="489" href="#489">489</a>         {
-<a name="490" href="#490">490</a>             <strong class="jxr_keyword">return</strong> String.valueOf( value );
-<a name="491" href="#491">491</a>         }
-<a name="492" href="#492">492</a>     }
-<a name="493" href="#493">493</a> 
+<a name="460" href="#460">460</a> 
+<a name="461" href="#461">461</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String sanitize( Object value )
+<a name="462" href="#462">462</a>     {
+<a name="463" href="#463">463</a>         <strong class="jxr_keyword">if</strong> ( value instanceof String )
+<a name="464" href="#464">464</a>         {
+<a name="465" href="#465">465</a>             <strong class="jxr_keyword">return</strong> ( String ) value;
+<a name="466" href="#466">466</a>         }
+<a name="467" href="#467">467</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( value instanceof Iterable )
+<a name="468" href="#468">468</a>         {
+<a name="469" href="#469">469</a>             String delim = <span class="jxr_string">""</span>;
+<a name="470" href="#470">470</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a name="471" href="#471">471</a>             <strong class="jxr_keyword">for</strong> ( Object i : ( Iterable&lt;?&gt; ) value )
+<a name="472" href="#472">472</a>             {
+<a name="473" href="#473">473</a>                 buf.append( delim ).append( i );
+<a name="474" href="#474">474</a>                 delim = <span class="jxr_string">", "</span>;
+<a name="475" href="#475">475</a>             }
+<a name="476" href="#476">476</a>             <strong class="jxr_keyword">return</strong> buf.toString();
+<a name="477" href="#477">477</a>         }
+<a name="478" href="#478">478</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( value.getClass().isArray() )
+<a name="479" href="#479">479</a>         {
+<a name="480" href="#480">480</a>             String delim = <span class="jxr_string">""</span>;
+<a name="481" href="#481">481</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a name="482" href="#482">482</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0, len = Array.getLength( value ); i &lt; len; i++ )
+<a name="483" href="#483">483</a>             {
+<a name="484" href="#484">484</a>                 buf.append( delim ).append( Array.get( value, i ) );
+<a name="485" href="#485">485</a>                 delim = <span class="jxr_string">", "</span>;
+<a name="486" href="#486">486</a>             }
+<a name="487" href="#487">487</a>             <strong class="jxr_keyword">return</strong> buf.toString();
+<a name="488" href="#488">488</a>         }
+<a name="489" href="#489">489</a>         <strong class="jxr_keyword">else</strong>
+<a name="490" href="#490">490</a>         {
+<a name="491" href="#491">491</a>             <strong class="jxr_keyword">return</strong> String.valueOf( value );
+<a name="492" href="#492">492</a>         }
+<a name="493" href="#493">493</a>     }
 <a name="494" href="#494">494</a> 
-<a name="495" href="#495">495</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addMavenInstructions( MavenProject currentProject, Builder builder ) <strong class="jxr_keyword">throws</strong> Exception
-<a name="496" href="#496">496</a>     {
-<a name="497" href="#497">497</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getBasedir() != <strong class="jxr_keyword">null</strong> )
-<a name="498" href="#498">498</a>         {
-<a name="499" href="#499">499</a>             <em class="jxr_comment">// update BND instructions to add included Maven resources</em>
-<a name="500" href="#500">500</a>             includeMavenResources( currentProject, builder, getLog() );
-<a name="501" href="#501">501</a> 
-<a name="502" href="#502">502</a>             <em class="jxr_comment">// calculate default export/private settings based on sources</em>
-<a name="503" href="#503">503</a>             addLocalPackages( outputDirectory, builder );
-<a name="504" href="#504">504</a> 
-<a name="505" href="#505">505</a>             <em class="jxr_comment">// tell BND where the current project source resides</em>
-<a name="506" href="#506">506</a>             addMavenSourcePath( currentProject, builder, getLog() );
-<a name="507" href="#507">507</a>         }
-<a name="508" href="#508">508</a> 
-<a name="509" href="#509">509</a>         <em class="jxr_comment">// update BND instructions to embed selected Maven dependencies</em>
-<a name="510" href="#510">510</a>         Collection embeddableArtifacts = getEmbeddableArtifacts( currentProject, builder );
-<a name="511" href="#511">511</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyEmbedder.html">DependencyEmbedder</a>( getLog(), embeddableArtifacts ).processHeaders( builder );
-<a name="512" href="#512">512</a> 
-<a name="513" href="#513">513</a>         <strong class="jxr_keyword">if</strong> ( dumpInstructions != <strong class="jxr_keyword">null</strong> || getLog().isDebugEnabled() )
-<a name="514" href="#514">514</a>         {
-<a name="515" href="#515">515</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
-<a name="516" href="#516">516</a>             getLog().debug( <span class="jxr_string">"BND Instructions:"</span> + NL + dumpInstructions( builder.getProperties(), buf ) );
-<a name="517" href="#517">517</a>             <strong class="jxr_keyword">if</strong> ( dumpInstructions != <strong class="jxr_keyword">null</strong> )
-<a name="518" href="#518">518</a>             {
-<a name="519" href="#519">519</a>                 getLog().info( <span class="jxr_string">"Writing BND instructions to "</span> + dumpInstructions );
-<a name="520" href="#520">520</a>                 dumpInstructions.getParentFile().mkdirs();
-<a name="521" href="#521">521</a>                 FileUtils.fileWrite( dumpInstructions, <span class="jxr_string">"# BND instructions"</span> + NL + buf );
-<a name="522" href="#522">522</a>             }
-<a name="523" href="#523">523</a>         }
-<a name="524" href="#524">524</a> 
-<a name="525" href="#525">525</a>         <strong class="jxr_keyword">if</strong> ( dumpClasspath != <strong class="jxr_keyword">null</strong> || getLog().isDebugEnabled() )
-<a name="526" href="#526">526</a>         {
-<a name="527" href="#527">527</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
-<a name="528" href="#528">528</a>             getLog().debug( <span class="jxr_string">"BND Classpath:"</span> + NL + dumpClasspath( builder.getClasspath(), buf ) );
-<a name="529" href="#529">529</a>             <strong class="jxr_keyword">if</strong> ( dumpClasspath != <strong class="jxr_keyword">null</strong> )
-<a name="530" href="#530">530</a>             {
-<a name="531" href="#531">531</a>                 getLog().info( <span class="jxr_string">"Writing BND classpath to "</span> + dumpClasspath );
-<a name="532" href="#532">532</a>                 dumpClasspath.getParentFile().mkdirs();
-<a name="533" href="#533">533</a>                 FileUtils.fileWrite( dumpClasspath, <span class="jxr_string">"# BND classpath"</span> + NL + buf );
-<a name="534" href="#534">534</a>             }
-<a name="535" href="#535">535</a>         }
-<a name="536" href="#536">536</a>     }
-<a name="537" href="#537">537</a> 
+<a name="495" href="#495">495</a> 
+<a name="496" href="#496">496</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addMavenInstructions( MavenProject currentProject, Builder builder ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="497" href="#497">497</a>     {
+<a name="498" href="#498">498</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getBasedir() != <strong class="jxr_keyword">null</strong> )
+<a name="499" href="#499">499</a>         {
+<a name="500" href="#500">500</a>             <em class="jxr_comment">// update BND instructions to add included Maven resources</em>
+<a name="501" href="#501">501</a>             includeMavenResources( currentProject, builder, getLog() );
+<a name="502" href="#502">502</a> 
+<a name="503" href="#503">503</a>             <em class="jxr_comment">// calculate default export/private settings based on sources</em>
+<a name="504" href="#504">504</a>             addLocalPackages( outputDirectory, builder );
+<a name="505" href="#505">505</a> 
+<a name="506" href="#506">506</a>             <em class="jxr_comment">// tell BND where the current project source resides</em>
+<a name="507" href="#507">507</a>             addMavenSourcePath( currentProject, builder, getLog() );
+<a name="508" href="#508">508</a>         }
+<a name="509" href="#509">509</a> 
+<a name="510" href="#510">510</a>         <em class="jxr_comment">// update BND instructions to embed selected Maven dependencies</em>
+<a name="511" href="#511">511</a>         Collection embeddableArtifacts = getEmbeddableArtifacts( currentProject, builder );
+<a name="512" href="#512">512</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyEmbedder.html">DependencyEmbedder</a>( getLog(), embeddableArtifacts ).processHeaders( builder );
+<a name="513" href="#513">513</a> 
+<a name="514" href="#514">514</a>         <strong class="jxr_keyword">if</strong> ( dumpInstructions != <strong class="jxr_keyword">null</strong> || getLog().isDebugEnabled() )
+<a name="515" href="#515">515</a>         {
+<a name="516" href="#516">516</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a name="517" href="#517">517</a>             getLog().debug( <span class="jxr_string">"BND Instructions:"</span> + NL + dumpInstructions( builder.getProperties(), buf ) );
+<a name="518" href="#518">518</a>             <strong class="jxr_keyword">if</strong> ( dumpInstructions != <strong class="jxr_keyword">null</strong> )
+<a name="519" href="#519">519</a>             {
+<a name="520" href="#520">520</a>                 getLog().info( <span class="jxr_string">"Writing BND instructions to "</span> + dumpInstructions );
+<a name="521" href="#521">521</a>                 dumpInstructions.getParentFile().mkdirs();
+<a name="522" href="#522">522</a>                 FileUtils.fileWrite( dumpInstructions, <span class="jxr_string">"# BND instructions"</span> + NL + buf );
+<a name="523" href="#523">523</a>             }
+<a name="524" href="#524">524</a>         }
+<a name="525" href="#525">525</a> 
+<a name="526" href="#526">526</a>         <strong class="jxr_keyword">if</strong> ( dumpClasspath != <strong class="jxr_keyword">null</strong> || getLog().isDebugEnabled() )
+<a name="527" href="#527">527</a>         {
+<a name="528" href="#528">528</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a name="529" href="#529">529</a>             getLog().debug( <span class="jxr_string">"BND Classpath:"</span> + NL + dumpClasspath( builder.getClasspath(), buf ) );
+<a name="530" href="#530">530</a>             <strong class="jxr_keyword">if</strong> ( dumpClasspath != <strong class="jxr_keyword">null</strong> )
+<a name="531" href="#531">531</a>             {
+<a name="532" href="#532">532</a>                 getLog().info( <span class="jxr_string">"Writing BND classpath to "</span> + dumpClasspath );
+<a name="533" href="#533">533</a>                 dumpClasspath.getParentFile().mkdirs();
+<a name="534" href="#534">534</a>                 FileUtils.fileWrite( dumpClasspath, <span class="jxr_string">"# BND classpath"</span> + NL + buf );
+<a name="535" href="#535">535</a>             }
+<a name="536" href="#536">536</a>         }
+<a name="537" href="#537">537</a>     }
 <a name="538" href="#538">538</a> 
-<a name="539" href="#539">539</a>     <strong class="jxr_keyword">protected</strong> Builder buildOSGiBundle( MavenProject currentProject, Map originalInstructions, Properties properties,
-<a name="540" href="#540">540</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> Exception
-<a name="541" href="#541">541</a>     {
-<a name="542" href="#542">542</a>         Builder builder = getOSGiBuilder( currentProject, originalInstructions, properties, classpath );
-<a name="543" href="#543">543</a> 
-<a name="544" href="#544">544</a>         addMavenInstructions( currentProject, builder );
-<a name="545" href="#545">545</a> 
-<a name="546" href="#546">546</a>         builder.build();
-<a name="547" href="#547">547</a> 
-<a name="548" href="#548">548</a>         mergeMavenManifest( currentProject, builder );
-<a name="549" href="#549">549</a> 
-<a name="550" href="#550">550</a>         <strong class="jxr_keyword">return</strong> builder;
-<a name="551" href="#551">551</a>     }
-<a name="552" href="#552">552</a> 
+<a name="539" href="#539">539</a> 
+<a name="540" href="#540">540</a>     <strong class="jxr_keyword">protected</strong> Builder buildOSGiBundle( MavenProject currentProject, Map originalInstructions, Properties properties,
+<a name="541" href="#541">541</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="542" href="#542">542</a>     {
+<a name="543" href="#543">543</a>         Builder builder = getOSGiBuilder( currentProject, originalInstructions, properties, classpath );
+<a name="544" href="#544">544</a> 
+<a name="545" href="#545">545</a>         addMavenInstructions( currentProject, builder );
+<a name="546" href="#546">546</a> 
+<a name="547" href="#547">547</a>         builder.build();
+<a name="548" href="#548">548</a> 
+<a name="549" href="#549">549</a>         mergeMavenManifest( currentProject, builder );
+<a name="550" href="#550">550</a> 
+<a name="551" href="#551">551</a>         <strong class="jxr_keyword">return</strong> builder;
+<a name="552" href="#552">552</a>     }
 <a name="553" href="#553">553</a> 
-<a name="554" href="#554">554</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpInstructions( Properties properties, StringBuilder buf )
-<a name="555" href="#555">555</a>     {
-<a name="556" href="#556">556</a>         <strong class="jxr_keyword">try</strong>
-<a name="557" href="#557">557</a>         {
-<a name="558" href="#558">558</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
-<a name="559" href="#559">559</a>             Properties stringProperties = <strong class="jxr_keyword">new</strong> Properties();
-<a name="560" href="#560">560</a>             <strong class="jxr_keyword">for</strong> ( Enumeration e = properties.propertyNames(); e.hasMoreElements(); )
-<a name="561" href="#561">561</a>             {
-<a name="562" href="#562">562</a>                 <em class="jxr_comment">// we can only store String properties</em>
-<a name="563" href="#563">563</a>                 String key = ( String ) e.nextElement();
-<a name="564" href="#564">564</a>                 String value = properties.getProperty( key );
-<a name="565" href="#565">565</a>                 <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
-<a name="566" href="#566">566</a>                 {
-<a name="567" href="#567">567</a>                     stringProperties.setProperty( key, value );
-<a name="568" href="#568">568</a>                 }
-<a name="569" href="#569">569</a>             }
-<a name="570" href="#570">570</a>             ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
-<a name="571" href="#571">571</a>             stringProperties.store( out, <strong class="jxr_keyword">null</strong> ); <em class="jxr_comment">// properties encoding is 8859_1</em>
-<a name="572" href="#572">572</a>             buf.append( out.toString( <span class="jxr_string">"8859_1"</span> ) );
-<a name="573" href="#573">573</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
-<a name="574" href="#574">574</a>         }
-<a name="575" href="#575">575</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
-<a name="576" href="#576">576</a>         {
-<a name="577" href="#577">577</a>             <em class="jxr_comment">// ignore...</em>
-<a name="578" href="#578">578</a>         }
-<a name="579" href="#579">579</a>         <strong class="jxr_keyword">return</strong> buf;
-<a name="580" href="#580">580</a>     }
-<a name="581" href="#581">581</a> 
+<a name="554" href="#554">554</a> 
+<a name="555" href="#555">555</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpInstructions( Properties properties, StringBuilder buf )
+<a name="556" href="#556">556</a>     {
+<a name="557" href="#557">557</a>         <strong class="jxr_keyword">try</strong>
+<a name="558" href="#558">558</a>         {
+<a name="559" href="#559">559</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
+<a name="560" href="#560">560</a>             Properties stringProperties = <strong class="jxr_keyword">new</strong> Properties();
+<a name="561" href="#561">561</a>             <strong class="jxr_keyword">for</strong> ( Enumeration e = properties.propertyNames(); e.hasMoreElements(); )
+<a name="562" href="#562">562</a>             {
+<a name="563" href="#563">563</a>                 <em class="jxr_comment">// we can only store String properties</em>
+<a name="564" href="#564">564</a>                 String key = ( String ) e.nextElement();
+<a name="565" href="#565">565</a>                 String value = properties.getProperty( key );
+<a name="566" href="#566">566</a>                 <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
+<a name="567" href="#567">567</a>                 {
+<a name="568" href="#568">568</a>                     stringProperties.setProperty( key, value );
+<a name="569" href="#569">569</a>                 }
+<a name="570" href="#570">570</a>             }
+<a name="571" href="#571">571</a>             ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
+<a name="572" href="#572">572</a>             stringProperties.store( out, <strong class="jxr_keyword">null</strong> ); <em class="jxr_comment">// properties encoding is 8859_1</em>
+<a name="573" href="#573">573</a>             buf.append( out.toString( <span class="jxr_string">"8859_1"</span> ) );
+<a name="574" href="#574">574</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
+<a name="575" href="#575">575</a>         }
+<a name="576" href="#576">576</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
+<a name="577" href="#577">577</a>         {
+<a name="578" href="#578">578</a>             <em class="jxr_comment">// ignore...</em>
+<a name="579" href="#579">579</a>         }
+<a name="580" href="#580">580</a>         <strong class="jxr_keyword">return</strong> buf;
+<a name="581" href="#581">581</a>     }
 <a name="582" href="#582">582</a> 
-<a name="583" href="#583">583</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpClasspath( List classpath, StringBuilder buf )
-<a name="584" href="#584">584</a>     {
-<a name="585" href="#585">585</a>         <strong class="jxr_keyword">try</strong>
-<a name="586" href="#586">586</a>         {
-<a name="587" href="#587">587</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
-<a name="588" href="#588">588</a>             buf.append( <span class="jxr_string">"-classpath:&#92;&#92;"</span> + NL );
-<a name="589" href="#589">589</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = classpath.iterator(); i.hasNext(); )
-<a name="590" href="#590">590</a>             {
-<a name="591" href="#591">591</a>                 File path = ( ( Jar ) i.next() ).getSource();
-<a name="592" href="#592">592</a>                 <strong class="jxr_keyword">if</strong> ( path != <strong class="jxr_keyword">null</strong> )
-<a name="593" href="#593">593</a>                 {
-<a name="594" href="#594">594</a>                     buf.append( ' ' + path.toString() + ( i.hasNext() ? <span class="jxr_string">",&#92;&#92;"</span> : <span class="jxr_string">""</span> ) + NL );
-<a name="595" href="#595">595</a>                 }
-<a name="596" href="#596">596</a>             }
-<a name="597" href="#597">597</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
-<a name="598" href="#598">598</a>         }
-<a name="599" href="#599">599</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
-<a name="600" href="#600">600</a>         {
-<a name="601" href="#601">601</a>             <em class="jxr_comment">// ignore...</em>
-<a name="602" href="#602">602</a>         }
-<a name="603" href="#603">603</a>         <strong class="jxr_keyword">return</strong> buf;
-<a name="604" href="#604">604</a>     }
-<a name="605" href="#605">605</a> 
+<a name="583" href="#583">583</a> 
+<a name="584" href="#584">584</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpClasspath( List classpath, StringBuilder buf )
+<a name="585" href="#585">585</a>     {
+<a name="586" href="#586">586</a>         <strong class="jxr_keyword">try</strong>
+<a name="587" href="#587">587</a>         {
+<a name="588" href="#588">588</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
+<a name="589" href="#589">589</a>             buf.append( <span class="jxr_string">"-classpath:&#92;&#92;"</span> + NL );
+<a name="590" href="#590">590</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = classpath.iterator(); i.hasNext(); )
+<a name="591" href="#591">591</a>             {
+<a name="592" href="#592">592</a>                 File path = ( ( Jar ) i.next() ).getSource();
+<a name="593" href="#593">593</a>                 <strong class="jxr_keyword">if</strong> ( path != <strong class="jxr_keyword">null</strong> )
+<a name="594" href="#594">594</a>                 {
+<a name="595" href="#595">595</a>                     buf.append( ' ' + path.toString() + ( i.hasNext() ? <span class="jxr_string">",&#92;&#92;"</span> : <span class="jxr_string">""</span> ) + NL );
+<a name="596" href="#596">596</a>                 }
+<a name="597" href="#597">597</a>             }
+<a name="598" href="#598">598</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
+<a name="599" href="#599">599</a>         }
+<a name="600" href="#600">600</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
+<a name="601" href="#601">601</a>         {
+<a name="602" href="#602">602</a>             <em class="jxr_comment">// ignore...</em>
+<a name="603" href="#603">603</a>         }
+<a name="604" href="#604">604</a>         <strong class="jxr_keyword">return</strong> buf;
+<a name="605" href="#605">605</a>     }
 <a name="606" href="#606">606</a> 
-<a name="607" href="#607">607</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpManifest( Manifest manifest, StringBuilder buf )
-<a name="608" href="#608">608</a>     {
-<a name="609" href="#609">609</a>         <strong class="jxr_keyword">try</strong>
-<a name="610" href="#610">610</a>         {
-<a name="611" href="#611">611</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
-<a name="612" href="#612">612</a>             ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
-<a name="613" href="#613">613</a>             Jar.writeManifest( manifest, out ); <em class="jxr_comment">// manifest encoding is UTF8</em>
-<a name="614" href="#614">614</a>             buf.append( out.toString( <span class="jxr_string">"UTF8"</span> ) );
-<a name="615" href="#615">615</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
-<a name="616" href="#616">616</a>         }
-<a name="617" href="#617">617</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
-<a name="618" href="#618">618</a>         {
-<a name="619" href="#619">619</a>             <em class="jxr_comment">// ignore...</em>
-<a name="620" href="#620">620</a>         }
-<a name="621" href="#621">621</a>         <strong class="jxr_keyword">return</strong> buf;
-<a name="622" href="#622">622</a>     }
-<a name="623" href="#623">623</a> 
+<a name="607" href="#607">607</a> 
+<a name="608" href="#608">608</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpManifest( Manifest manifest, StringBuilder buf )
+<a name="609" href="#609">609</a>     {
+<a name="610" href="#610">610</a>         <strong class="jxr_keyword">try</strong>
+<a name="611" href="#611">611</a>         {
+<a name="612" href="#612">612</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
+<a name="613" href="#613">613</a>             ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
+<a name="614" href="#614">614</a>             Jar.writeManifest( manifest, out ); <em class="jxr_comment">// manifest encoding is UTF8</em>
+<a name="615" href="#615">615</a>             buf.append( out.toString( <span class="jxr_string">"UTF8"</span> ) );
+<a name="616" href="#616">616</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
+<a name="617" href="#617">617</a>         }
+<a name="618" href="#618">618</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
+<a name="619" href="#619">619</a>         {
+<a name="620" href="#620">620</a>             <em class="jxr_comment">// ignore...</em>
+<a name="621" href="#621">621</a>         }
+<a name="622" href="#622">622</a>         <strong class="jxr_keyword">return</strong> buf;
+<a name="623" href="#623">623</a>     }
 <a name="624" href="#624">624</a> 
-<a name="625" href="#625">625</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> includeMavenResources( MavenProject currentProject, Analyzer analyzer, Log log )
-<a name="626" href="#626">626</a>     {
-<a name="627" href="#627">627</a>         <em class="jxr_comment">// pass maven resource paths onto BND analyzer</em>
-<a name="628" href="#628">628</a>         <strong class="jxr_keyword">final</strong> String mavenResourcePaths = getMavenResourcePaths( currentProject );
-<a name="629" href="#629">629</a>         <strong class="jxr_keyword">final</strong> String includeResource = ( String ) analyzer.getProperty( Analyzer.INCLUDE_RESOURCE );
-<a name="630" href="#630">630</a>         <strong class="jxr_keyword">if</strong> ( includeResource != <strong class="jxr_keyword">null</strong> )
-<a name="631" href="#631">631</a>         {
-<a name="632" href="#632">632</a>             <strong class="jxr_keyword">if</strong> ( includeResource.indexOf( MAVEN_RESOURCES ) &gt;= 0 )
-<a name="633" href="#633">633</a>             {
-<a name="634" href="#634">634</a>                 <em class="jxr_comment">// if there is no maven resource path, we do a special treatment and replace</em>
-<a name="635" href="#635">635</a>                 <em class="jxr_comment">// every occurance of MAVEN_RESOURCES and a following comma with an empty string</em>
-<a name="636" href="#636">636</a>                 <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() == 0 )
-<a name="637" href="#637">637</a>                 {
-<a name="638" href="#638">638</a>                     String cleanedResource = removeTagFromInstruction( includeResource, MAVEN_RESOURCES );
-<a name="639" href="#639">639</a>                     <strong class="jxr_keyword">if</strong> ( cleanedResource.length() &gt; 0 )
-<a name="640" href="#640">640</a>                     {
-<a name="641" href="#641">641</a>                         analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, cleanedResource );
-<a name="642" href="#642">642</a>                     }
-<a name="643" href="#643">643</a>                     <strong class="jxr_keyword">else</strong>
-<a name="644" href="#644">644</a>                     {
-<a name="645" href="#645">645</a>                         analyzer.unsetProperty( Analyzer.INCLUDE_RESOURCE );
-<a name="646" href="#646">646</a>                     }
-<a name="647" href="#647">647</a>                 }
-<a name="648" href="#648">648</a>                 <strong class="jxr_keyword">else</strong>
-<a name="649" href="#649">649</a>                 {
-<a name="650" href="#650">650</a>                     String combinedResource = StringUtils
-<a name="651" href="#651">651</a>                         .replace( includeResource, MAVEN_RESOURCES, mavenResourcePaths );
-<a name="652" href="#652">652</a>                     analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, combinedResource );
-<a name="653" href="#653">653</a>                 }
-<a name="654" href="#654">654</a>             }
-<a name="655" href="#655">655</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() &gt; 0 )
-<a name="656" href="#656">656</a>             {
-<a name="657" href="#657">657</a>                 log.warn( Analyzer.INCLUDE_RESOURCE + <span class="jxr_string">": overriding "</span> + mavenResourcePaths + <span class="jxr_string">" with "</span> + includeResource
-<a name="658" href="#658">658</a>                     + <span class="jxr_string">" (add "</span> + MAVEN_RESOURCES + <span class="jxr_string">" if you want to include the maven resources)"</span> );
-<a name="659" href="#659">659</a>             }
-<a name="660" href="#660">660</a>         }
-<a name="661" href="#661">661</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() &gt; 0 )
-<a name="662" href="#662">662</a>         {
-<a name="663" href="#663">663</a>             analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, mavenResourcePaths );
-<a name="664" href="#664">664</a>         }
-<a name="665" href="#665">665</a>     }
-<a name="666" href="#666">666</a> 
+<a name="625" href="#625">625</a> 
+<a name="626" href="#626">626</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> includeMavenResources( MavenProject currentProject, Analyzer analyzer, Log log )
+<a name="627" href="#627">627</a>     {
+<a name="628" href="#628">628</a>         <em class="jxr_comment">// pass maven resource paths onto BND analyzer</em>
+<a name="629" href="#629">629</a>         <strong class="jxr_keyword">final</strong> String mavenResourcePaths = getMavenResourcePaths( currentProject );
+<a name="630" href="#630">630</a>         <strong class="jxr_keyword">final</strong> String includeResource = ( String ) analyzer.getProperty( Analyzer.INCLUDE_RESOURCE );
+<a name="631" href="#631">631</a>         <strong class="jxr_keyword">if</strong> ( includeResource != <strong class="jxr_keyword">null</strong> )
+<a name="632" href="#632">632</a>         {
+<a name="633" href="#633">633</a>             <strong class="jxr_keyword">if</strong> ( includeResource.indexOf( MAVEN_RESOURCES ) &gt;= 0 )
+<a name="634" href="#634">634</a>             {
+<a name="635" href="#635">635</a>                 <em class="jxr_comment">// if there is no maven resource path, we do a special treatment and replace</em>
+<a name="636" href="#636">636</a>                 <em class="jxr_comment">// every occurance of MAVEN_RESOURCES and a following comma with an empty string</em>
+<a name="637" href="#637">637</a>                 <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() == 0 )
+<a name="638" href="#638">638</a>                 {
+<a name="639" href="#639">639</a>                     String cleanedResource = removeTagFromInstruction( includeResource, MAVEN_RESOURCES );
+<a name="640" href="#640">640</a>                     <strong class="jxr_keyword">if</strong> ( cleanedResource.length() &gt; 0 )
+<a name="641" href="#641">641</a>                     {
+<a name="642" href="#642">642</a>                         analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, cleanedResource );
+<a name="643" href="#643">643</a>                     }
+<a name="644" href="#644">644</a>                     <strong class="jxr_keyword">else</strong>
+<a name="645" href="#645">645</a>                     {
+<a name="646" href="#646">646</a>                         analyzer.unsetProperty( Analyzer.INCLUDE_RESOURCE );
+<a name="647" href="#647">647</a>                     }
+<a name="648" href="#648">648</a>                 }
+<a name="649" href="#649">649</a>                 <strong class="jxr_keyword">else</strong>
+<a name="650" href="#650">650</a>                 {
+<a name="651" href="#651">651</a>                     String combinedResource = StringUtils
+<a name="652" href="#652">652</a>                         .replace( includeResource, MAVEN_RESOURCES, mavenResourcePaths );
+<a name="653" href="#653">653</a>                     analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, combinedResource );
+<a name="654" href="#654">654</a>                 }
+<a name="655" href="#655">655</a>             }
+<a name="656" href="#656">656</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() &gt; 0 )
+<a name="657" href="#657">657</a>             {
+<a name="658" href="#658">658</a>                 log.warn( Analyzer.INCLUDE_RESOURCE + <span class="jxr_string">": overriding "</span> + mavenResourcePaths + <span class="jxr_string">" with "</span> + includeResource
+<a name="659" href="#659">659</a>                     + <span class="jxr_string">" (add "</span> + MAVEN_RESOURCES + <span class="jxr_string">" if you want to include the maven resources)"</span> );
+<a name="660" href="#660">660</a>             }
+<a name="661" href="#661">661</a>         }
+<a name="662" href="#662">662</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() &gt; 0 )
+<a name="663" href="#663">663</a>         {
+<a name="664" href="#664">664</a>             analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, mavenResourcePaths );
+<a name="665" href="#665">665</a>         }
+<a name="666" href="#666">666</a>     }
 <a name="667" href="#667">667</a> 
-<a name="668" href="#668">668</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> mergeMavenManifest( MavenProject currentProject, Builder builder ) <strong class="jxr_keyword">throws</strong> Exception
-<a name="669" href="#669">669</a>     {
-<a name="670" href="#670">670</a>         Jar jar = builder.getJar();
-<a name="671" href="#671">671</a> 
-<a name="672" href="#672">672</a>         <strong class="jxr_keyword">if</strong> ( getLog().isDebugEnabled() )
-<a name="673" href="#673">673</a>         {
-<a name="674" href="#674">674</a>             getLog().debug( <span class="jxr_string">"BND Manifest:"</span> + NL + dumpManifest( jar.getManifest(), <strong class="jxr_keyword">new</strong> StringBuilder() ) );
-<a name="675" href="#675">675</a>         }
-<a name="676" href="#676">676</a> 
-<a name="677" href="#677">677</a>         <strong class="jxr_keyword">boolean</strong> addMavenDescriptor = currentProject.getBasedir() != <strong class="jxr_keyword">null</strong>;
-<a name="678" href="#678">678</a> 
-<a name="679" href="#679">679</a>         <strong class="jxr_keyword">try</strong>
-<a name="680" href="#680">680</a>         {
-<a name="681" href="#681">681</a>             <em class="jxr_comment">/*</em>
-<a name="682" href="#682">682</a> <em class="jxr_comment">             * Grab customized manifest entries from the maven-jar-plugin configuration</em>
-<a name="683" href="#683">683</a> <em class="jxr_comment">             */</em>
-<a name="684" href="#684">684</a>             MavenArchiveConfiguration archiveConfig = JarPluginConfiguration.getArchiveConfiguration( currentProject );
-<a name="685" href="#685">685</a>             String mavenManifestText = <strong class="jxr_keyword">new</strong> MavenArchiver().getManifest( currentProject, archiveConfig ).toString();
-<a name="686" href="#686">686</a>             addMavenDescriptor = addMavenDescriptor &amp;&amp; archiveConfig.isAddMavenDescriptor();
-<a name="687" href="#687">687</a> 
-<a name="688" href="#688">688</a>             Manifest mavenManifest = <strong class="jxr_keyword">new</strong> Manifest();
-<a name="689" href="#689">689</a> 
-<a name="690" href="#690">690</a>             <em class="jxr_comment">// First grab the external manifest file (if specified and different to target location)</em>
-<a name="691" href="#691">691</a>             File externalManifestFile = archiveConfig.getManifestFile();
-<a name="692" href="#692">692</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != externalManifestFile &amp;&amp; externalManifestFile.exists()
-<a name="693" href="#693">693</a>                 &amp;&amp; !externalManifestFile.equals( <strong class="jxr_keyword">new</strong> File( manifestLocation, <span class="jxr_string">"MANIFEST.MF"</span> ) ) )
-<a name="694" href="#694">694</a>             {
-<a name="695" href="#695">695</a>                 InputStream mis = <strong class="jxr_keyword">new</strong> FileInputStream( externalManifestFile );
-<a name="696" href="#696">696</a>                 mavenManifest.read( mis );
-<a name="697" href="#697">697</a>                 mis.close();
-<a name="698" href="#698">698</a>             }
-<a name="699" href="#699">699</a> 
-<a name="700" href="#700">700</a>             <em class="jxr_comment">// Then apply customized entries from the jar plugin; note: manifest encoding is UTF8</em>
-<a name="701" href="#701">701</a>             mavenManifest.read( <strong class="jxr_keyword">new</strong> ByteArrayInputStream( mavenManifestText.getBytes( <span class="jxr_string">"UTF8"</span> ) ) );
-<a name="702" href="#702">702</a> 
-<a name="703" href="#703">703</a>             <strong class="jxr_keyword">if</strong> ( !archiveConfig.isManifestSectionsEmpty() )
-<a name="704" href="#704">704</a>             {
-<a name="705" href="#705">705</a>                 <em class="jxr_comment">/*</em>
-<a name="706" href="#706">706</a> <em class="jxr_comment">                 * Add customized manifest sections (for some reason MavenArchiver doesn't do this for us)</em>
-<a name="707" href="#707">707</a> <em class="jxr_comment">                 */</em>
-<a name="708" href="#708">708</a>                 List sections = archiveConfig.getManifestSections();
-<a name="709" href="#709">709</a>                 <strong class="jxr_keyword">for</strong> ( Iterator i = sections.iterator(); i.hasNext(); )
-<a name="710" href="#710">710</a>                 {
-<a name="711" href="#711">711</a>                     ManifestSection section = ( ManifestSection ) i.next();
-<a name="712" href="#712">712</a>                     Attributes attributes = <strong class="jxr_keyword">new</strong> Attributes();
-<a name="713" href="#713">713</a> 
-<a name="714" href="#714">714</a>                     <strong class="jxr_keyword">if</strong> ( !section.isManifestEntriesEmpty() )
-<a name="715" href="#715">715</a>                     {
-<a name="716" href="#716">716</a>                         Map entries = section.getManifestEntries();
-<a name="717" href="#717">717</a>                         <strong class="jxr_keyword">for</strong> ( Iterator j = entries.entrySet().iterator(); j.hasNext(); )
-<a name="718" href="#718">718</a>                         {
-<a name="719" href="#719">719</a>                             Map.Entry entry = ( Map.Entry ) j.next();
-<a name="720" href="#720">720</a>                             attributes.putValue( ( String ) entry.getKey(), ( String ) entry.getValue() );
-<a name="721" href="#721">721</a>                         }
-<a name="722" href="#722">722</a>                     }
-<a name="723" href="#723">723</a> 
-<a name="724" href="#724">724</a>                     mavenManifest.getEntries().put( section.getName(), attributes );
-<a name="725" href="#725">725</a>                 }
-<a name="726" href="#726">726</a>             }
-<a name="727" href="#727">727</a> 
-<a name="728" href="#728">728</a>             Attributes mainMavenAttributes = mavenManifest.getMainAttributes();
-<a name="729" href="#729">729</a>             mainMavenAttributes.putValue( <span class="jxr_string">"Created-By"</span>, <span class="jxr_string">"Apache Maven Bundle Plugin"</span> );
-<a name="730" href="#730">730</a> 
-<a name="731" href="#731">731</a>             String[] removeHeaders = builder.getProperty( Constants.REMOVEHEADERS, <span class="jxr_string">""</span> ).split( <span class="jxr_string">","</span> );
-<a name="732" href="#732">732</a> 
-<a name="733" href="#733">733</a>             <em class="jxr_comment">// apply -removeheaders to the custom manifest</em>
-<a name="734" href="#734">734</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; removeHeaders.length; i++ )
-<a name="735" href="#735">735</a>             {
-<a name="736" href="#736">736</a>                 <strong class="jxr_keyword">for</strong> ( Iterator j = mainMavenAttributes.keySet().iterator(); j.hasNext(); )
-<a name="737" href="#737">737</a>                 {
-<a name="738" href="#738">738</a>                     <strong class="jxr_keyword">if</strong> ( j.next().toString().matches( removeHeaders[i].trim() ) )
-<a name="739" href="#739">739</a>                     {
-<a name="740" href="#740">740</a>                         j.remove();
-<a name="741" href="#741">741</a>                     }
-<a name="742" href="#742">742</a>                 }
-<a name="743" href="#743">743</a>             }
-<a name="744" href="#744">744</a> 
-<a name="745" href="#745">745</a>             <em class="jxr_comment">/*</em>
-<a name="746" href="#746">746</a> <em class="jxr_comment">             * Overlay generated bundle manifest with customized entries</em>
-<a name="747" href="#747">747</a> <em class="jxr_comment">             */</em>
-<a name="748" href="#748">748</a>             Manifest bundleManifest = jar.getManifest();
-<a name="749" href="#749">749</a>             bundleManifest.getMainAttributes().putAll( mainMavenAttributes );
-<a name="750" href="#750">750</a>             bundleManifest.getEntries().putAll( mavenManifest.getEntries() );
-<a name="751" href="#751">751</a> 
-<a name="752" href="#752">752</a>             <em class="jxr_comment">// adjust the import package attributes so that optional dependencies use</em>
-<a name="753" href="#753">753</a>             <em class="jxr_comment">// optional resolution.</em>
-<a name="754" href="#754">754</a>             String importPackages = bundleManifest.getMainAttributes().getValue( <span class="jxr_string">"Import-Package"</span> );
-<a name="755" href="#755">755</a>             <strong class="jxr_keyword">if</strong> ( importPackages != <strong class="jxr_keyword">null</strong> )
-<a name="756" href="#756">756</a>             {
-<a name="757" href="#757">757</a>                 Set optionalPackages = getOptionalPackages( currentProject );
-<a name="758" href="#758">758</a> 
-<a name="759" href="#759">759</a>                 Map&lt;String, Map&lt;String, String&gt;&gt; values = <strong class="jxr_keyword">new</strong> Analyzer().parseHeader( importPackages );
-<a name="760" href="#760">760</a>                 <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, Map&lt;String, String&gt;&gt; entry : values.entrySet() )
-<a name="761" href="#761">761</a>                 {
-<a name="762" href="#762">762</a>                     String pkg = entry.getKey();
-<a name="763" href="#763">763</a>                     Map&lt;String, String&gt; options = entry.getValue();
-<a name="764" href="#764">764</a>                     <strong class="jxr_keyword">if</strong> ( !options.containsKey( <span class="jxr_string">"resolution:"</span> ) &amp;&amp; optionalPackages.contains( pkg ) )
-<a name="765" href="#765">765</a>                     {
-<a name="766" href="#766">766</a>                         options.put( <span class="jxr_string">"resolution:"</span>, <span class="jxr_string">"optional"</span> );
-<a name="767" href="#767">767</a>                     }
-<a name="768" href="#768">768</a>                 }
-<a name="769" href="#769">769</a>                 String result = Processor.printClauses( values );
-<a name="770" href="#770">770</a>                 bundleManifest.getMainAttributes().putValue( <span class="jxr_string">"Import-Package"</span>, result );
-<a name="771" href="#771">771</a>             }
-<a name="772" href="#772">772</a> 
-<a name="773" href="#773">773</a>             jar.setManifest( bundleManifest );
-<a name="774" href="#774">774</a>         }
-<a name="775" href="#775">775</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="776" href="#776">776</a>         {
-<a name="777" href="#777">777</a>             getLog().warn( <span class="jxr_string">"Unable to merge Maven manifest: "</span> + e.getLocalizedMessage() );
-<a name="778" href="#778">778</a>         }
-<a name="779" href="#779">779</a> 
-<a name="780" href="#780">780</a>         <strong class="jxr_keyword">if</strong> ( addMavenDescriptor )
-<a name="781" href="#781">781</a>         {
-<a name="782" href="#782">782</a>             doMavenMetadata( currentProject, jar );
-<a name="783" href="#783">783</a>         }
-<a name="784" href="#784">784</a> 
-<a name="785" href="#785">785</a>         <strong class="jxr_keyword">if</strong> ( getLog().isDebugEnabled() )
-<a name="786" href="#786">786</a>         {
-<a name="787" href="#787">787</a>             getLog().debug( <span class="jxr_string">"Final Manifest:"</span> + NL + dumpManifest( jar.getManifest(), <strong class="jxr_keyword">new</strong> StringBuilder() ) );
-<a name="788" href="#788">788</a>         }
-<a name="789" href="#789">789</a> 
-<a name="790" href="#790">790</a>         builder.setJar( jar );
-<a name="791" href="#791">791</a>     }
-<a name="792" href="#792">792</a> 
+<a name="668" href="#668">668</a> 
+<a name="669" href="#669">669</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> mergeMavenManifest( MavenProject currentProject, Builder builder ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="670" href="#670">670</a>     {
+<a name="671" href="#671">671</a>         Jar jar = builder.getJar();
+<a name="672" href="#672">672</a> 
+<a name="673" href="#673">673</a>         <strong class="jxr_keyword">if</strong> ( getLog().isDebugEnabled() )
+<a name="674" href="#674">674</a>         {
+<a name="675" href="#675">675</a>             getLog().debug( <span class="jxr_string">"BND Manifest:"</span> + NL + dumpManifest( jar.getManifest(), <strong class="jxr_keyword">new</strong> StringBuilder() ) );
+<a name="676" href="#676">676</a>         }
+<a name="677" href="#677">677</a> 
+<a name="678" href="#678">678</a>         <strong class="jxr_keyword">boolean</strong> addMavenDescriptor = currentProject.getBasedir() != <strong class="jxr_keyword">null</strong>;
+<a name="679" href="#679">679</a> 
+<a name="680" href="#680">680</a>         <strong class="jxr_keyword">try</strong>
+<a name="681" href="#681">681</a>         {
+<a name="682" href="#682">682</a>             <em class="jxr_comment">/*</em>
+<a name="683" href="#683">683</a> <em class="jxr_comment">             * Grab customized manifest entries from the maven-jar-plugin configuration</em>
+<a name="684" href="#684">684</a> <em class="jxr_comment">             */</em>
+<a name="685" href="#685">685</a>             MavenArchiveConfiguration archiveConfig = JarPluginConfiguration.getArchiveConfiguration( currentProject );
+<a name="686" href="#686">686</a>             String mavenManifestText = <strong class="jxr_keyword">new</strong> MavenArchiver().getManifest( currentProject, archiveConfig ).toString();
+<a name="687" href="#687">687</a>             addMavenDescriptor = addMavenDescriptor &amp;&amp; archiveConfig.isAddMavenDescriptor();
+<a name="688" href="#688">688</a> 
+<a name="689" href="#689">689</a>             Manifest mavenManifest = <strong class="jxr_keyword">new</strong> Manifest();
+<a name="690" href="#690">690</a> 
+<a name="691" href="#691">691</a>             <em class="jxr_comment">// First grab the external manifest file (if specified and different to target location)</em>
+<a name="692" href="#692">692</a>             File externalManifestFile = archiveConfig.getManifestFile();
+<a name="693" href="#693">693</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != externalManifestFile &amp;&amp; externalManifestFile.exists()
+<a name="694" href="#694">694</a>                 &amp;&amp; !externalManifestFile.equals( <strong class="jxr_keyword">new</strong> File( manifestLocation, <span class="jxr_string">"MANIFEST.MF"</span> ) ) )
+<a name="695" href="#695">695</a>             {
+<a name="696" href="#696">696</a>                 InputStream mis = <strong class="jxr_keyword">new</strong> FileInputStream( externalManifestFile );
+<a name="697" href="#697">697</a>                 mavenManifest.read( mis );
+<a name="698" href="#698">698</a>                 mis.close();
+<a name="699" href="#699">699</a>             }
+<a name="700" href="#700">700</a> 
+<a name="701" href="#701">701</a>             <em class="jxr_comment">// Then apply customized entries from the jar plugin; note: manifest encoding is UTF8</em>
+<a name="702" href="#702">702</a>             mavenManifest.read( <strong class="jxr_keyword">new</strong> ByteArrayInputStream( mavenManifestText.getBytes( <span class="jxr_string">"UTF8"</span> ) ) );
+<a name="703" href="#703">703</a> 
+<a name="704" href="#704">704</a>             <strong class="jxr_keyword">if</strong> ( !archiveConfig.isManifestSectionsEmpty() )
+<a name="705" href="#705">705</a>             {
+<a name="706" href="#706">706</a>                 <em class="jxr_comment">/*</em>
+<a name="707" href="#707">707</a> <em class="jxr_comment">                 * Add customized manifest sections (for some reason MavenArchiver doesn't do this for us)</em>
+<a name="708" href="#708">708</a> <em class="jxr_comment">                 */</em>
+<a name="709" href="#709">709</a>                 List sections = archiveConfig.getManifestSections();
+<a name="710" href="#710">710</a>                 <strong class="jxr_keyword">for</strong> ( Iterator i = sections.iterator(); i.hasNext(); )
+<a name="711" href="#711">711</a>                 {
+<a name="712" href="#712">712</a>                     ManifestSection section = ( ManifestSection ) i.next();
+<a name="713" href="#713">713</a>                     Attributes attributes = <strong class="jxr_keyword">new</strong> Attributes();
+<a name="714" href="#714">714</a> 
+<a name="715" href="#715">715</a>                     <strong class="jxr_keyword">if</strong> ( !section.isManifestEntriesEmpty() )
+<a name="716" href="#716">716</a>                     {
+<a name="717" href="#717">717</a>                         Map entries = section.getManifestEntries();
+<a name="718" href="#718">718</a>                         <strong class="jxr_keyword">for</strong> ( Iterator j = entries.entrySet().iterator(); j.hasNext(); )
+<a name="719" href="#719">719</a>                         {
+<a name="720" href="#720">720</a>                             Map.Entry entry = ( Map.Entry ) j.next();
+<a name="721" href="#721">721</a>                             attributes.putValue( ( String ) entry.getKey(), ( String ) entry.getValue() );
+<a name="722" href="#722">722</a>                         }
+<a name="723" href="#723">723</a>                     }
+<a name="724" href="#724">724</a> 
+<a name="725" href="#725">725</a>                     mavenManifest.getEntries().put( section.getName(), attributes );
+<a name="726" href="#726">726</a>                 }
+<a name="727" href="#727">727</a>             }
+<a name="728" href="#728">728</a> 
+<a name="729" href="#729">729</a>             Attributes mainMavenAttributes = mavenManifest.getMainAttributes();
+<a name="730" href="#730">730</a>             mainMavenAttributes.putValue( <span class="jxr_string">"Created-By"</span>, <span class="jxr_string">"Apache Maven Bundle Plugin"</span> );
+<a name="731" href="#731">731</a> 
+<a name="732" href="#732">732</a>             String[] removeHeaders = builder.getProperty( Constants.REMOVEHEADERS, <span class="jxr_string">""</span> ).split( <span class="jxr_string">","</span> );
+<a name="733" href="#733">733</a> 
+<a name="734" href="#734">734</a>             <em class="jxr_comment">// apply -removeheaders to the custom manifest</em>
+<a name="735" href="#735">735</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; removeHeaders.length; i++ )
+<a name="736" href="#736">736</a>             {
+<a name="737" href="#737">737</a>                 <strong class="jxr_keyword">for</strong> ( Iterator j = mainMavenAttributes.keySet().iterator(); j.hasNext(); )
+<a name="738" href="#738">738</a>                 {
+<a name="739" href="#739">739</a>                     <strong class="jxr_keyword">if</strong> ( j.next().toString().matches( removeHeaders[i].trim() ) )
+<a name="740" href="#740">740</a>                     {
+<a name="741" href="#741">741</a>                         j.remove();
+<a name="742" href="#742">742</a>                     }
+<a name="743" href="#743">743</a>                 }
+<a name="744" href="#744">744</a>             }
+<a name="745" href="#745">745</a> 
+<a name="746" href="#746">746</a>             <em class="jxr_comment">/*</em>
+<a name="747" href="#747">747</a> <em class="jxr_comment">             * Overlay generated bundle manifest with customized entries</em>
+<a name="748" href="#748">748</a> <em class="jxr_comment">             */</em>
+<a name="749" href="#749">749</a>             Manifest bundleManifest = jar.getManifest();
+<a name="750" href="#750">750</a>             bundleManifest.getMainAttributes().putAll( mainMavenAttributes );
+<a name="751" href="#751">751</a>             bundleManifest.getEntries().putAll( mavenManifest.getEntries() );
+<a name="752" href="#752">752</a> 
+<a name="753" href="#753">753</a>             <em class="jxr_comment">// adjust the import package attributes so that optional dependencies use</em>
+<a name="754" href="#754">754</a>             <em class="jxr_comment">// optional resolution.</em>
+<a name="755" href="#755">755</a>             String importPackages = bundleManifest.getMainAttributes().getValue( <span class="jxr_string">"Import-Package"</span> );
+<a name="756" href="#756">756</a>             <strong class="jxr_keyword">if</strong> ( importPackages != <strong class="jxr_keyword">null</strong> )
+<a name="757" href="#757">757</a>             {
+<a name="758" href="#758">758</a>                 Set optionalPackages = getOptionalPackages( currentProject );
+<a name="759" href="#759">759</a> 
+<a name="760" href="#760">760</a>                 Map&lt;String, Map&lt;String, String&gt;&gt; values = <strong class="jxr_keyword">new</strong> Analyzer().parseHeader( importPackages );
+<a name="761" href="#761">761</a>                 <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, Map&lt;String, String&gt;&gt; entry : values.entrySet() )
+<a name="762" href="#762">762</a>                 {
+<a name="763" href="#763">763</a>                     String pkg = entry.getKey();
+<a name="764" href="#764">764</a>                     Map&lt;String, String&gt; options = entry.getValue();
+<a name="765" href="#765">765</a>                     <strong class="jxr_keyword">if</strong> ( !options.containsKey( <span class="jxr_string">"resolution:"</span> ) &amp;&amp; optionalPackages.contains( pkg ) )
+<a name="766" href="#766">766</a>                     {
+<a name="767" href="#767">767</a>                         options.put( <span class="jxr_string">"resolution:"</span>, <span class="jxr_string">"optional"</span> );
+<a name="768" href="#768">768</a>                     }
+<a name="769" href="#769">769</a>                 }
+<a name="770" href="#770">770</a>                 String result = Processor.printClauses( values );
+<a name="771" href="#771">771</a>                 bundleManifest.getMainAttributes().putValue( <span class="jxr_string">"Import-Package"</span>, result );
+<a name="772" href="#772">772</a>             }
+<a name="773" href="#773">773</a> 
+<a name="774" href="#774">774</a>             jar.setManifest( bundleManifest );
+<a name="775" href="#775">775</a>         }
+<a name="776" href="#776">776</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="777" href="#777">777</a>         {
+<a name="778" href="#778">778</a>             getLog().warn( <span class="jxr_string">"Unable to merge Maven manifest: "</span> + e.getLocalizedMessage() );
+<a name="779" href="#779">779</a>         }
+<a name="780" href="#780">780</a> 
+<a name="781" href="#781">781</a>         <strong class="jxr_keyword">if</strong> ( addMavenDescriptor )
+<a name="782" href="#782">782</a>         {
+<a name="783" href="#783">783</a>             doMavenMetadata( currentProject, jar );
+<a name="784" href="#784">784</a>         }
+<a name="785" href="#785">785</a> 
+<a name="786" href="#786">786</a>         <strong class="jxr_keyword">if</strong> ( getLog().isDebugEnabled() )
+<a name="787" href="#787">787</a>         {
+<a name="788" href="#788">788</a>             getLog().debug( <span class="jxr_string">"Final Manifest:"</span> + NL + dumpManifest( jar.getManifest(), <strong class="jxr_keyword">new</strong> StringBuilder() ) );
+<a name="789" href="#789">789</a>         }
+<a name="790" href="#790">790</a> 
+<a name="791" href="#791">791</a>         builder.setJar( jar );
+<a name="792" href="#792">792</a>     }
 <a name="793" href="#793">793</a> 
-<a name="794" href="#794">794</a>     <strong class="jxr_keyword">protected</strong> Set getOptionalPackages( MavenProject currentProject ) <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException
-<a name="795" href="#795">795</a>     {
-<a name="796" href="#796">796</a>         ArrayList inscope = <strong class="jxr_keyword">new</strong> ArrayList();
-<a name="797" href="#797">797</a>         <strong class="jxr_keyword">final</strong> Collection artifacts = getSelectedDependencies( currentProject.getArtifacts() );
-<a name="798" href="#798">798</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = artifacts.iterator(); it.hasNext(); )
-<a name="799" href="#799">799</a>         {
-<a name="800" href="#800">800</a>             Artifact artifact = ( Artifact ) it.next();
-<a name="801" href="#801">801</a>             <strong class="jxr_keyword">if</strong> ( artifact.getArtifactHandler().isAddedToClasspath() )
-<a name="802" href="#802">802</a>             {
-<a name="803" href="#803">803</a>                 <strong class="jxr_keyword">if</strong> ( !Artifact.SCOPE_TEST.equals( artifact.getScope() ) )
-<a name="804" href="#804">804</a>                 {
-<a name="805" href="#805">805</a>                     inscope.add( artifact );
-<a name="806" href="#806">806</a>                 }
-<a name="807" href="#807">807</a>             }
-<a name="808" href="#808">808</a>         }
-<a name="809" href="#809">809</a> 
-<a name="810" href="#810">810</a>         HashSet optionalArtifactIds = <strong class="jxr_keyword">new</strong> HashSet();
-<a name="811" href="#811">811</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = inscope.iterator(); it.hasNext(); )
-<a name="812" href="#812">812</a>         {
-<a name="813" href="#813">813</a>             Artifact artifact = ( Artifact ) it.next();
-<a name="814" href="#814">814</a>             <strong class="jxr_keyword">if</strong> ( artifact.isOptional() )
-<a name="815" href="#815">815</a>             {
-<a name="816" href="#816">816</a>                 String id = artifact.toString();
-<a name="817" href="#817">817</a>                 <strong class="jxr_keyword">if</strong> ( artifact.getScope() != <strong class="jxr_keyword">null</strong> )
-<a name="818" href="#818">818</a>                 {
-<a name="819" href="#819">819</a>                     <em class="jxr_comment">// strip the scope...</em>
-<a name="820" href="#820">820</a>                     id = id.replaceFirst( <span class="jxr_string">":[^:]*$"</span>, <span class="jxr_string">""</span> );
-<a name="821" href="#821">821</a>                 }
-<a name="822" href="#822">822</a>                 optionalArtifactIds.add( id );
-<a name="823" href="#823">823</a>             }
-<a name="824" href="#824">824</a> 
-<a name="825" href="#825">825</a>         }
-<a name="826" href="#826">826</a> 
-<a name="827" href="#827">827</a>         HashSet required = <strong class="jxr_keyword">new</strong> HashSet();
-<a name="828" href="#828">828</a>         HashSet optional = <strong class="jxr_keyword">new</strong> HashSet();
-<a name="829" href="#829">829</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = inscope.iterator(); it.hasNext(); )
-<a name="830" href="#830">830</a>         {
-<a name="831" href="#831">831</a>             Artifact artifact = ( Artifact ) it.next();
-<a name="832" href="#832">832</a>             File file = getFile( artifact );
-<a name="833" href="#833">833</a>             <strong class="jxr_keyword">if</strong> ( file == <strong class="jxr_keyword">null</strong> )
-<a name="834" href="#834">834</a>             {
-<a name="835" href="#835">835</a>                 <strong class="jxr_keyword">continue</strong>;
-<a name="836" href="#836">836</a>             }
-<a name="837" href="#837">837</a> 
-<a name="838" href="#838">838</a>             Jar jar = <strong class="jxr_keyword">new</strong> Jar( artifact.getArtifactId(), file );
-<a name="839" href="#839">839</a>             <strong class="jxr_keyword">if</strong> ( isTransitivelyOptional( optionalArtifactIds, artifact ) )
-<a name="840" href="#840">840</a>             {
-<a name="841" href="#841">841</a>                 optional.addAll( jar.getPackages() );
-<a name="842" href="#842">842</a>             }
-<a name="843" href="#843">843</a>             <strong class="jxr_keyword">else</strong>
-<a name="844" href="#844">844</a>             {
-<a name="845" href="#845">845</a>                 required.addAll( jar.getPackages() );
-<a name="846" href="#846">846</a>             }
-<a name="847" href="#847">847</a>             jar.close();
-<a name="848" href="#848">848</a>         }
-<a name="849" href="#849">849</a> 
-<a name="850" href="#850">850</a>         optional.removeAll( required );
-<a name="851" href="#851">851</a>         <strong class="jxr_keyword">return</strong> optional;
-<a name="852" href="#852">852</a>     }
-<a name="853" href="#853">853</a> 
+<a name="794" href="#794">794</a> 
+<a name="795" href="#795">795</a>     <strong class="jxr_keyword">protected</strong> Set getOptionalPackages( MavenProject currentProject ) <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException
+<a name="796" href="#796">796</a>     {
+<a name="797" href="#797">797</a>         ArrayList inscope = <strong class="jxr_keyword">new</strong> ArrayList();
+<a name="798" href="#798">798</a>         <strong class="jxr_keyword">final</strong> Collection artifacts = getSelectedDependencies( currentProject.getArtifacts() );
+<a name="799" href="#799">799</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = artifacts.iterator(); it.hasNext(); )
+<a name="800" href="#800">800</a>         {
+<a name="801" href="#801">801</a>             Artifact artifact = ( Artifact ) it.next();
+<a name="802" href="#802">802</a>             <strong class="jxr_keyword">if</strong> ( artifact.getArtifactHandler().isAddedToClasspath() )
+<a name="803" href="#803">803</a>             {
+<a name="804" href="#804">804</a>                 <strong class="jxr_keyword">if</strong> ( !Artifact.SCOPE_TEST.equals( artifact.getScope() ) )
+<a name="805" href="#805">805</a>                 {
+<a name="806" href="#806">806</a>                     inscope.add( artifact );
+<a name="807" href="#807">807</a>                 }
+<a name="808" href="#808">808</a>             }
+<a name="809" href="#809">809</a>         }
+<a name="810" href="#810">810</a> 
+<a name="811" href="#811">811</a>         HashSet optionalArtifactIds = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="812" href="#812">812</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = inscope.iterator(); it.hasNext(); )
+<a name="813" href="#813">813</a>         {
+<a name="814" href="#814">814</a>             Artifact artifact = ( Artifact ) it.next();
+<a name="815" href="#815">815</a>             <strong class="jxr_keyword">if</strong> ( artifact.isOptional() )
+<a name="816" href="#816">816</a>             {
+<a name="817" href="#817">817</a>                 String id = artifact.toString();
+<a name="818" href="#818">818</a>                 <strong class="jxr_keyword">if</strong> ( artifact.getScope() != <strong class="jxr_keyword">null</strong> )
+<a name="819" href="#819">819</a>                 {
+<a name="820" href="#820">820</a>                     <em class="jxr_comment">// strip the scope...</em>
+<a name="821" href="#821">821</a>                     id = id.replaceFirst( <span class="jxr_string">":[^:]*$"</span>, <span class="jxr_string">""</span> );
+<a name="822" href="#822">822</a>                 }
+<a name="823" href="#823">823</a>                 optionalArtifactIds.add( id );
+<a name="824" href="#824">824</a>             }
+<a name="825" href="#825">825</a> 
+<a name="826" href="#826">826</a>         }
+<a name="827" href="#827">827</a> 
+<a name="828" href="#828">828</a>         HashSet required = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="829" href="#829">829</a>         HashSet optional = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="830" href="#830">830</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = inscope.iterator(); it.hasNext(); )
+<a name="831" href="#831">831</a>         {
+<a name="832" href="#832">832</a>             Artifact artifact = ( Artifact ) it.next();
+<a name="833" href="#833">833</a>             File file = getFile( artifact );
+<a name="834" href="#834">834</a>             <strong class="jxr_keyword">if</strong> ( file == <strong class="jxr_keyword">null</strong> )
+<a name="835" href="#835">835</a>             {
+<a name="836" href="#836">836</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="837" href="#837">837</a>             }
+<a name="838" href="#838">838</a> 
+<a name="839" href="#839">839</a>             Jar jar = <strong class="jxr_keyword">new</strong> Jar( artifact.getArtifactId(), file );
+<a name="840" href="#840">840</a>             <strong class="jxr_keyword">if</strong> ( isTransitivelyOptional( optionalArtifactIds, artifact ) )
+<a name="841" href="#841">841</a>             {
+<a name="842" href="#842">842</a>                 optional.addAll( jar.getPackages() );
+<a name="843" href="#843">843</a>             }
+<a name="844" href="#844">844</a>             <strong class="jxr_keyword">else</strong>
+<a name="845" href="#845">845</a>             {
+<a name="846" href="#846">846</a>                 required.addAll( jar.getPackages() );
+<a name="847" href="#847">847</a>             }
+<a name="848" href="#848">848</a>             jar.close();
+<a name="849" href="#849">849</a>         }
+<a name="850" href="#850">850</a> 
+<a name="851" href="#851">851</a>         optional.removeAll( required );
+<a name="852" href="#852">852</a>         <strong class="jxr_keyword">return</strong> optional;
+<a name="853" href="#853">853</a>     }
 <a name="854" href="#854">854</a> 
-<a name="855" href="#855">855</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="856" href="#856">856</a> <em class="jxr_javadoccomment">     * Check to see if any dependency along the dependency trail of</em>
-<a name="857" href="#857">857</a> <em class="jxr_javadoccomment">     * the artifact is optional.</em>
-<a name="858" href="#858">858</a> <em class="jxr_javadoccomment">     *</em>
-<a name="859" href="#859">859</a> <em class="jxr_javadoccomment">     * @param artifact</em>
-<a name="860" href="#860">860</a> <em class="jxr_javadoccomment">     */</em>
-<a name="861" href="#861">861</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isTransitivelyOptional( HashSet optionalArtifactIds, Artifact artifact )
-<a name="862" href="#862">862</a>     {
-<a name="863" href="#863">863</a>         List trail = artifact.getDependencyTrail();
-<a name="864" href="#864">864</a>         <strong class="jxr_keyword">for</strong> ( Iterator iterator = trail.iterator(); iterator.hasNext(); )
-<a name="865" href="#865">865</a>         {
-<a name="866" href="#866">866</a>             String next = ( String ) iterator.next();
-<a name="867" href="#867">867</a>             <strong class="jxr_keyword">if</strong> ( optionalArtifactIds.contains( next ) )
-<a name="868" href="#868">868</a>             {
-<a name="869" href="#869">869</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
-<a name="870" href="#870">870</a>             }
-<a name="871" href="#871">871</a>         }
-<a name="872" href="#872">872</a>         <strong class="jxr_keyword">return</strong> false;
-<a name="873" href="#873">873</a>     }
-<a name="874" href="#874">874</a> 
+<a name="855" href="#855">855</a> 
+<a name="856" href="#856">856</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="857" href="#857">857</a> <em class="jxr_javadoccomment">     * Check to see if any dependency along the dependency trail of</em>
+<a name="858" href="#858">858</a> <em class="jxr_javadoccomment">     * the artifact is optional.</em>
+<a name="859" href="#859">859</a> <em class="jxr_javadoccomment">     *</em>
+<a name="860" href="#860">860</a> <em class="jxr_javadoccomment">     * @param artifact</em>
+<a name="861" href="#861">861</a> <em class="jxr_javadoccomment">     */</em>
+<a name="862" href="#862">862</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isTransitivelyOptional( HashSet optionalArtifactIds, Artifact artifact )
+<a name="863" href="#863">863</a>     {
+<a name="864" href="#864">864</a>         List trail = artifact.getDependencyTrail();
+<a name="865" href="#865">865</a>         <strong class="jxr_keyword">for</strong> ( Iterator iterator = trail.iterator(); iterator.hasNext(); )
+<a name="866" href="#866">866</a>         {
+<a name="867" href="#867">867</a>             String next = ( String ) iterator.next();
+<a name="868" href="#868">868</a>             <strong class="jxr_keyword">if</strong> ( optionalArtifactIds.contains( next ) )
+<a name="869" href="#869">869</a>             {
+<a name="870" href="#870">870</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
+<a name="871" href="#871">871</a>             }
+<a name="872" href="#872">872</a>         }
+<a name="873" href="#873">873</a>         <strong class="jxr_keyword">return</strong> false;
+<a name="874" href="#874">874</a>     }
 <a name="875" href="#875">875</a> 
-<a name="876" href="#876">876</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> unpackBundle( File jarFile )
-<a name="877" href="#877">877</a>     {
-<a name="878" href="#878">878</a>         File outputDir = getOutputDirectory();
-<a name="879" href="#879">879</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == outputDir )
-<a name="880" href="#880">880</a>         {
-<a name="881" href="#881">881</a>             outputDir = <strong class="jxr_keyword">new</strong> File( getBuildDirectory(), <span class="jxr_string">"classes"</span> );
-<a name="882" href="#882">882</a>         }
-<a name="883" href="#883">883</a> 
-<a name="884" href="#884">884</a>         <strong class="jxr_keyword">try</strong>
-<a name="885" href="#885">885</a>         {
-<a name="886" href="#886">886</a>             <em class="jxr_comment">/*</em>
-<a name="887" href="#887">887</a> <em class="jxr_comment">             * this directory must exist before unpacking, otherwise the plexus</em>
-<a name="888" href="#888">888</a> <em class="jxr_comment">             * unarchiver decides to use the current working directory instead!</em>
-<a name="889" href="#889">889</a> <em class="jxr_comment">             */</em>
-<a name="890" href="#890">890</a>             <strong class="jxr_keyword">if</strong> ( !outputDir.exists() )
-<a name="891" href="#891">891</a>             {
-<a name="892" href="#892">892</a>                 outputDir.mkdirs();
-<a name="893" href="#893">893</a>             }
-<a name="894" href="#894">894</a> 
-<a name="895" href="#895">895</a>             UnArchiver unArchiver = m_archiverManager.getUnArchiver( <span class="jxr_string">"jar"</span> );
-<a name="896" href="#896">896</a>             unArchiver.setDestDirectory( outputDir );
-<a name="897" href="#897">897</a>             unArchiver.setSourceFile( jarFile );
-<a name="898" href="#898">898</a>             unArchiver.extract();
-<a name="899" href="#899">899</a>         }
-<a name="900" href="#900">900</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="901" href="#901">901</a>         {
-<a name="902" href="#902">902</a>             getLog().error( <span class="jxr_string">"Problem unpacking "</span> + jarFile + <span class="jxr_string">" to "</span> + outputDir, e );
-<a name="903" href="#903">903</a>         }
-<a name="904" href="#904">904</a>     }
-<a name="905" href="#905">905</a> 
+<a name="876" href="#876">876</a> 
+<a name="877" href="#877">877</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> unpackBundle( File jarFile )
+<a name="878" href="#878">878</a>     {
+<a name="879" href="#879">879</a>         File outputDir = getOutputDirectory();
+<a name="880" href="#880">880</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == outputDir )
+<a name="881" href="#881">881</a>         {
+<a name="882" href="#882">882</a>             outputDir = <strong class="jxr_keyword">new</strong> File( getBuildDirectory(), <span class="jxr_string">"classes"</span> );
+<a name="883" href="#883">883</a>         }
+<a name="884" href="#884">884</a> 
+<a name="885" href="#885">885</a>         <strong class="jxr_keyword">try</strong>
+<a name="886" href="#886">886</a>         {
+<a name="887" href="#887">887</a>             <em class="jxr_comment">/*</em>
+<a name="888" href="#888">888</a> <em class="jxr_comment">             * this directory must exist before unpacking, otherwise the plexus</em>
+<a name="889" href="#889">889</a> <em class="jxr_comment">             * unarchiver decides to use the current working directory instead!</em>
+<a name="890" href="#890">890</a> <em class="jxr_comment">             */</em>
+<a name="891" href="#891">891</a>             <strong class="jxr_keyword">if</strong> ( !outputDir.exists() )
+<a name="892" href="#892">892</a>             {
+<a name="893" href="#893">893</a>                 outputDir.mkdirs();
+<a name="894" href="#894">894</a>             }
+<a name="895" href="#895">895</a> 
+<a name="896" href="#896">896</a>             UnArchiver unArchiver = m_archiverManager.getUnArchiver( <span class="jxr_string">"jar"</span> );
+<a name="897" href="#897">897</a>             unArchiver.setDestDirectory( outputDir );
+<a name="898" href="#898">898</a>             unArchiver.setSourceFile( jarFile );
+<a name="899" href="#899">899</a>             unArchiver.extract();
+<a name="900" href="#900">900</a>         }
+<a name="901" href="#901">901</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="902" href="#902">902</a>         {
+<a name="903" href="#903">903</a>             getLog().error( <span class="jxr_string">"Problem unpacking "</span> + jarFile + <span class="jxr_string">" to "</span> + outputDir, e );
+<a name="904" href="#904">904</a>         }
+<a name="905" href="#905">905</a>     }
 <a name="906" href="#906">906</a> 
-<a name="907" href="#907">907</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String removeTagFromInstruction( String instruction, String tag )
-<a name="908" href="#908">908</a>     {
-<a name="909" href="#909">909</a>         StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer();
-<a name="910" href="#910">910</a> 
-<a name="911" href="#911">911</a>         String[] clauses = instruction.split( <span class="jxr_string">","</span> );
-<a name="912" href="#912">912</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; clauses.length; i++ )
-<a name="913" href="#913">913</a>         {
-<a name="914" href="#914">914</a>             String clause = clauses[i].trim();
-<a name="915" href="#915">915</a>             <strong class="jxr_keyword">if</strong> ( !tag.equals( clause ) )
-<a name="916" href="#916">916</a>             {
-<a name="917" href="#917">917</a>                 <strong class="jxr_keyword">if</strong> ( buf.length() &gt; 0 )
-<a name="918" href="#918">918</a>                 {
-<a name="919" href="#919">919</a>                     buf.append( ',' );
-<a name="920" href="#920">920</a>                 }
-<a name="921" href="#921">921</a>                 buf.append( clause );
-<a name="922" href="#922">922</a>             }
-<a name="923" href="#923">923</a>         }
-<a name="924" href="#924">924</a> 
-<a name="925" href="#925">925</a>         <strong class="jxr_keyword">return</strong> buf.toString();
-<a name="926" href="#926">926</a>     }
-<a name="927" href="#927">927</a> 
+<a name="907" href="#907">907</a> 
+<a name="908" href="#908">908</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String removeTagFromInstruction( String instruction, String tag )
+<a name="909" href="#909">909</a>     {
+<a name="910" href="#910">910</a>         StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="911" href="#911">911</a> 
+<a name="912" href="#912">912</a>         String[] clauses = instruction.split( <span class="jxr_string">","</span> );
+<a name="913" href="#913">913</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; clauses.length; i++ )
+<a name="914" href="#914">914</a>         {
+<a name="915" href="#915">915</a>             String clause = clauses[i].trim();
+<a name="916" href="#916">916</a>             <strong class="jxr_keyword">if</strong> ( !tag.equals( clause ) )
+<a name="917" href="#917">917</a>             {
+<a name="918" href="#918">918</a>                 <strong class="jxr_keyword">if</strong> ( buf.length() &gt; 0 )
+<a name="919" href="#919">919</a>                 {
+<a name="920" href="#920">920</a>                     buf.append( ',' );
+<a name="921" href="#921">921</a>                 }
+<a name="922" href="#922">922</a>                 buf.append( clause );
+<a name="923" href="#923">923</a>             }
+<a name="924" href="#924">924</a>         }
+<a name="925" href="#925">925</a> 
+<a name="926" href="#926">926</a>         <strong class="jxr_keyword">return</strong> buf.toString();
+<a name="927" href="#927">927</a>     }
 <a name="928" href="#928">928</a> 
-<a name="929" href="#929">929</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Map getProperties( Model projectModel, String prefix )
-<a name="930" href="#930">930</a>     {
-<a name="931" href="#931">931</a>         Map properties = <strong class="jxr_keyword">new</strong> LinkedHashMap();
-<a name="932" href="#932">932</a>         Method methods[] = Model.<strong class="jxr_keyword">class</strong>.getDeclaredMethods();
-<a name="933" href="#933">933</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; methods.length; i++ )
-<a name="934" href="#934">934</a>         {
-<a name="935" href="#935">935</a>             String name = methods[i].getName();
-<a name="936" href="#936">936</a>             <strong class="jxr_keyword">if</strong> ( name.startsWith( <span class="jxr_string">"get"</span> ) )
-<a name="937" href="#937">937</a>             {
-<a name="938" href="#938">938</a>                 <strong class="jxr_keyword">try</strong>
-<a name="939" href="#939">939</a>                 {
-<a name="940" href="#940">940</a>                     Object v = methods[i].invoke( projectModel, <strong class="jxr_keyword">null</strong> );
-<a name="941" href="#941">941</a>                     <strong class="jxr_keyword">if</strong> ( v != <strong class="jxr_keyword">null</strong> )
-<a name="942" href="#942">942</a>                     {
-<a name="943" href="#943">943</a>                         name = prefix + Character.toLowerCase( name.charAt( 3 ) ) + name.substring( 4 );
-<a name="944" href="#944">944</a>                         <strong class="jxr_keyword">if</strong> ( v.getClass().isArray() )
-<a name="945" href="#945">945</a>                             properties.put( name, Arrays.asList( ( Object[] ) v ).toString() );
-<a name="946" href="#946">946</a>                         <strong class="jxr_keyword">else</strong>
-<a name="947" href="#947">947</a>                             properties.put( name, v );
-<a name="948" href="#948">948</a> 
-<a name="949" href="#949">949</a>                     }
-<a name="950" href="#950">950</a>                 }
-<a name="951" href="#951">951</a>                 <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="952" href="#952">952</a>                 {
-<a name="953" href="#953">953</a>                     <em class="jxr_comment">// too bad</em>
-<a name="954" href="#954">954</a>                 }
-<a name="955" href="#955">955</a>             }
-<a name="956" href="#956">956</a>         }
-<a name="957" href="#957">957</a>         <strong class="jxr_keyword">return</strong> properties;
-<a name="958" href="#958">958</a>     }
-<a name="959" href="#959">959</a> 
+<a name="929" href="#929">929</a> 
+<a name="930" href="#930">930</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Map getProperties( Model projectModel, String prefix )
+<a name="931" href="#931">931</a>     {
+<a name="932" href="#932">932</a>         Map properties = <strong class="jxr_keyword">new</strong> LinkedHashMap();
+<a name="933" href="#933">933</a>         Method methods[] = Model.<strong class="jxr_keyword">class</strong>.getDeclaredMethods();
+<a name="934" href="#934">934</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; methods.length; i++ )
+<a name="935" href="#935">935</a>         {
+<a name="936" href="#936">936</a>             String name = methods[i].getName();
+<a name="937" href="#937">937</a>             <strong class="jxr_keyword">if</strong> ( name.startsWith( <span class="jxr_string">"get"</span> ) )
+<a name="938" href="#938">938</a>             {
+<a name="939" href="#939">939</a>                 <strong class="jxr_keyword">try</strong>
+<a name="940" href="#940">940</a>                 {
+<a name="941" href="#941">941</a>                     Object v = methods[i].invoke( projectModel, <strong class="jxr_keyword">null</strong> );
+<a name="942" href="#942">942</a>                     <strong class="jxr_keyword">if</strong> ( v != <strong class="jxr_keyword">null</strong> )
+<a name="943" href="#943">943</a>                     {
+<a name="944" href="#944">944</a>                         name = prefix + Character.toLowerCase( name.charAt( 3 ) ) + name.substring( 4 );
+<a name="945" href="#945">945</a>                         <strong class="jxr_keyword">if</strong> ( v.getClass().isArray() )
+<a name="946" href="#946">946</a>                             properties.put( name, Arrays.asList( ( Object[] ) v ).toString() );
+<a name="947" href="#947">947</a>                         <strong class="jxr_keyword">else</strong>
+<a name="948" href="#948">948</a>                             properties.put( name, v );
+<a name="949" href="#949">949</a> 
+<a name="950" href="#950">950</a>                     }
+<a name="951" href="#951">951</a>                 }
+<a name="952" href="#952">952</a>                 <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="953" href="#953">953</a>                 {
+<a name="954" href="#954">954</a>                     <em class="jxr_comment">// too bad</em>
+<a name="955" href="#955">955</a>                 }
+<a name="956" href="#956">956</a>             }
+<a name="957" href="#957">957</a>         }
+<a name="958" href="#958">958</a>         <strong class="jxr_keyword">return</strong> properties;
+<a name="959" href="#959">959</a>     }
 <a name="960" href="#960">960</a> 
-<a name="961" href="#961">961</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> StringBuffer printLicenses( List licenses )
-<a name="962" href="#962">962</a>     {
-<a name="963" href="#963">963</a>         <strong class="jxr_keyword">if</strong> ( licenses == <strong class="jxr_keyword">null</strong> || licenses.size() == 0 )
-<a name="964" href="#964">964</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a name="965" href="#965">965</a>         StringBuffer sb = <strong class="jxr_keyword">new</strong> StringBuffer();
-<a name="966" href="#966">966</a>         String del = <span class="jxr_string">""</span>;
-<a name="967" href="#967">967</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = licenses.iterator(); i.hasNext(); )
-<a name="968" href="#968">968</a>         {
-<a name="969" href="#969">969</a>             License l = ( License ) i.next();
-<a name="970" href="#970">970</a>             String url = l.getUrl();
-<a name="971" href="#971">971</a>             <strong class="jxr_keyword">if</strong> ( url == <strong class="jxr_keyword">null</strong> )
-<a name="972" href="#972">972</a>                 <strong class="jxr_keyword">continue</strong>;
-<a name="973" href="#973">973</a>             sb.append( del );
-<a name="974" href="#974">974</a>             sb.append( url );
-<a name="975" href="#975">975</a>             del = <span class="jxr_string">", "</span>;
-<a name="976" href="#976">976</a>         }
-<a name="977" href="#977">977</a>         <strong class="jxr_keyword">if</strong> ( sb.length() == 0 )
-<a name="978" href="#978">978</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a name="979" href="#979">979</a>         <strong class="jxr_keyword">return</strong> sb;
-<a name="980" href="#980">980</a>     }
-<a name="981" href="#981">981</a> 
+<a name="961" href="#961">961</a> 
+<a name="962" href="#962">962</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> StringBuffer printLicenses( List licenses )
+<a name="963" href="#963">963</a>     {
+<a name="964" href="#964">964</a>         <strong class="jxr_keyword">if</strong> ( licenses == <strong class="jxr_keyword">null</strong> || licenses.size() == 0 )
+<a name="965" href="#965">965</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="966" href="#966">966</a>         StringBuffer sb = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="967" href="#967">967</a>         String del = <span class="jxr_string">""</span>;
+<a name="968" href="#968">968</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = licenses.iterator(); i.hasNext(); )
+<a name="969" href="#969">969</a>         {
+<a name="970" href="#970">970</a>             License l = ( License ) i.next();
+<a name="971" href="#971">971</a>             String url = l.getUrl();
+<a name="972" href="#972">972</a>             <strong class="jxr_keyword">if</strong> ( url == <strong class="jxr_keyword">null</strong> )
+<a name="973" href="#973">973</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="974" href="#974">974</a>             sb.append( del );
+<a name="975" href="#975">975</a>             sb.append( url );
+<a name="976" href="#976">976</a>             del = <span class="jxr_string">", "</span>;
+<a name="977" href="#977">977</a>         }
+<a name="978" href="#978">978</a>         <strong class="jxr_keyword">if</strong> ( sb.length() == 0 )
+<a name="979" href="#979">979</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="980" href="#980">980</a>         <strong class="jxr_keyword">return</strong> sb;
+<a name="981" href="#981">981</a>     }
 <a name="982" href="#982">982</a> 
-<a name="983" href="#983">983</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="984" href="#984">984</a> <em class="jxr_javadoccomment">     * @param jar</em>
-<a name="985" href="#985">985</a> <em class="jxr_javadoccomment">     * @throws IOException</em>
-<a name="986" href="#986">986</a> <em class="jxr_javadoccomment">     */</em>
-<a name="987" href="#987">987</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> doMavenMetadata( MavenProject currentProject, Jar jar ) <strong class="jxr_keyword">throws</strong> IOException
-<a name="988" href="#988">988</a>     {
-<a name="989" href="#989">989</a>         String path = <span class="jxr_string">"META-INF/maven/"</span> + currentProject.getGroupId() + <span class="jxr_string">"/"</span> + currentProject.getArtifactId();
-<a name="990" href="#990">990</a>         File pomFile = <strong class="jxr_keyword">new</strong> File( currentProject.getBasedir(), <span class="jxr_string">"pom.xml"</span> );
-<a name="991" href="#991">991</a>         jar.putResource( path + <span class="jxr_string">"/pom.xml"</span>, <strong class="jxr_keyword">new</strong> FileResource( pomFile ) );
-<a name="992" href="#992">992</a> 
-<a name="993" href="#993">993</a>         Properties p = <strong class="jxr_keyword">new</strong> Properties();
-<a name="994" href="#994">994</a>         p.put( <span class="jxr_string">"version"</span>, currentProject.getVersion() );
-<a name="995" href="#995">995</a>         p.put( <span class="jxr_string">"groupId"</span>, currentProject.getGroupId() );
-<a name="996" href="#996">996</a>         p.put( <span class="jxr_string">"artifactId"</span>, currentProject.getArtifactId() );
-<a name="997" href="#997">997</a>         ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
-<a name="998" href="#998">998</a>         p.store( out, <span class="jxr_string">"Generated by org.apache.felix.bundleplugin"</span> );
-<a name="999" href="#999">999</a>         jar.putResource( path + <span class="jxr_string">"/pom.properties"</span>, <strong class="jxr_keyword">new</strong> EmbeddedResource( out.toByteArray(), System.currentTimeMillis() ) );
-<a name="1000" href="#1000">1000</a>     }
-<a name="1001" href="#1001">1001</a> 
+<a name="983" href="#983">983</a> 
+<a name="984" href="#984">984</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="985" href="#985">985</a> <em class="jxr_javadoccomment">     * @param jar</em>
+<a name="986" href="#986">986</a> <em class="jxr_javadoccomment">     * @throws IOException</em>
+<a name="987" href="#987">987</a> <em class="jxr_javadoccomment">     */</em>
+<a name="988" href="#988">988</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> doMavenMetadata( MavenProject currentProject, Jar jar ) <strong class="jxr_keyword">throws</strong> IOException
+<a name="989" href="#989">989</a>     {
+<a name="990" href="#990">990</a>         String path = <span class="jxr_string">"META-INF/maven/"</span> + currentProject.getGroupId() + <span class="jxr_string">"/"</span> + currentProject.getArtifactId();
+<a name="991" href="#991">991</a>         File pomFile = <strong class="jxr_keyword">new</strong> File( currentProject.getBasedir(), <span class="jxr_string">"pom.xml"</span> );
+<a name="992" href="#992">992</a>         jar.putResource( path + <span class="jxr_string">"/pom.xml"</span>, <strong class="jxr_keyword">new</strong> FileResource( pomFile ) );
+<a name="993" href="#993">993</a> 
+<a name="994" href="#994">994</a>         Properties p = <strong class="jxr_keyword">new</strong> Properties();
+<a name="995" href="#995">995</a>         p.put( <span class="jxr_string">"version"</span>, currentProject.getVersion() );
+<a name="996" href="#996">996</a>         p.put( <span class="jxr_string">"groupId"</span>, currentProject.getGroupId() );
+<a name="997" href="#997">997</a>         p.put( <span class="jxr_string">"artifactId"</span>, currentProject.getArtifactId() );
+<a name="998" href="#998">998</a>         ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
+<a name="999" href="#999">999</a>         p.store( out, <span class="jxr_string">"Generated by org.apache.felix.bundleplugin"</span> );
+<a name="1000" href="#1000">1000</a>         jar.putResource( path + <span class="jxr_string">"/pom.properties"</span>, <strong class="jxr_keyword">new</strong> EmbeddedResource( out.toByteArray(), System.currentTimeMillis() ) );
+<a name="1001" href="#1001">1001</a>     }
 <a name="1002" href="#1002">1002</a> 
-<a name="1003" href="#1003">1003</a>     <strong class="jxr_keyword">protected</strong> Jar[] getClasspath( MavenProject currentProject ) <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException
-<a name="1004" href="#1004">1004</a>     {
-<a name="1005" href="#1005">1005</a>         List list = <strong class="jxr_keyword">new</strong> ArrayList();
-<a name="1006" href="#1006">1006</a> 
-<a name="1007" href="#1007">1007</a>         <strong class="jxr_keyword">if</strong> ( getOutputDirectory() != <strong class="jxr_keyword">null</strong> &amp;&amp; getOutputDirectory().exists() )
-<a name="1008" href="#1008">1008</a>         {
-<a name="1009" href="#1009">1009</a>             list.add( <strong class="jxr_keyword">new</strong> Jar( <span class="jxr_string">"."</span>, getOutputDirectory() ) );
-<a name="1010" href="#1010">1010</a>         }
-<a name="1011" href="#1011">1011</a> 
-<a name="1012" href="#1012">1012</a>         <strong class="jxr_keyword">final</strong> Collection artifacts = getSelectedDependencies( currentProject.getArtifacts() );
-<a name="1013" href="#1013">1013</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = artifacts.iterator(); it.hasNext(); )
-<a name="1014" href="#1014">1014</a>         {
-<a name="1015" href="#1015">1015</a>             Artifact artifact = ( Artifact ) it.next();
-<a name="1016" href="#1016">1016</a>             <strong class="jxr_keyword">if</strong> ( artifact.getArtifactHandler().isAddedToClasspath() )
-<a name="1017" href="#1017">1017</a>             {
-<a name="1018" href="#1018">1018</a>                 <strong class="jxr_keyword">if</strong> ( !Artifact.SCOPE_TEST.equals( artifact.getScope() ) )
-<a name="1019" href="#1019">1019</a>                 {
-<a name="1020" href="#1020">1020</a>                     File file = getFile( artifact );
-<a name="1021" href="#1021">1021</a>                     <strong class="jxr_keyword">if</strong> ( file == <strong class="jxr_keyword">null</strong> )
-<a name="1022" href="#1022">1022</a>                     {
-<a name="1023" href="#1023">1023</a>                         getLog().warn(
-<a name="1024" href="#1024">1024</a>                             <span class="jxr_string">"File is not available for artifact "</span> + artifact + <span class="jxr_string">" in project "</span>
-<a name="1025" href="#1025">1025</a>                                 + currentProject.getArtifact() );
-<a name="1026" href="#1026">1026</a>                         <strong class="jxr_keyword">continue</strong>;
-<a name="1027" href="#1027">1027</a>                     }
-<a name="1028" href="#1028">1028</a>                     Jar jar = <strong class="jxr_keyword">new</strong> Jar( artifact.getArtifactId(), file );
-<a name="1029" href="#1029">1029</a>                     list.add( jar );
-<a name="1030" href="#1030">1030</a>                 }
-<a name="1031" href="#1031">1031</a>             }
-<a name="1032" href="#1032">1032</a>         }
-<a name="1033" href="#1033">1033</a>         Jar[] cp = <strong class="jxr_keyword">new</strong> Jar[list.size()];
-<a name="1034" href="#1034">1034</a>         list.toArray( cp );
-<a name="1035" href="#1035">1035</a>         <strong class="jxr_keyword">return</strong> cp;
-<a name="1036" href="#1036">1036</a>     }
-<a name="1037" href="#1037">1037</a> 
+<a name="1003" href="#1003">1003</a> 
+<a name="1004" href="#1004">1004</a>     <strong class="jxr_keyword">protected</strong> Jar[] getClasspath( MavenProject currentProject ) <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException
+<a name="1005" href="#1005">1005</a>     {
+<a name="1006" href="#1006">1006</a>         List list = <strong class="jxr_keyword">new</strong> ArrayList();
+<a name="1007" href="#1007">1007</a> 
+<a name="1008" href="#1008">1008</a>         <strong class="jxr_keyword">if</strong> ( getOutputDirectory() != <strong class="jxr_keyword">null</strong> &amp;&amp; getOutputDirectory().exists() )
+<a name="1009" href="#1009">1009</a>         {
+<a name="1010" href="#1010">1010</a>             list.add( <strong class="jxr_keyword">new</strong> Jar( <span class="jxr_string">"."</span>, getOutputDirectory() ) );
+<a name="1011" href="#1011">1011</a>         }
+<a name="1012" href="#1012">1012</a> 
+<a name="1013" href="#1013">1013</a>         <strong class="jxr_keyword">final</strong> Collection artifacts = getSelectedDependencies( currentProject.getArtifacts() );
+<a name="1014" href="#1014">1014</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = artifacts.iterator(); it.hasNext(); )
+<a name="1015" href="#1015">1015</a>         {
+<a name="1016" href="#1016">1016</a>             Artifact artifact = ( Artifact ) it.next();
+<a name="1017" href="#1017">1017</a>             <strong class="jxr_keyword">if</strong> ( artifact.getArtifactHandler().isAddedToClasspath() )
+<a name="1018" href="#1018">1018</a>             {
+<a name="1019" href="#1019">1019</a>                 <strong class="jxr_keyword">if</strong> ( !Artifact.SCOPE_TEST.equals( artifact.getScope() ) )
+<a name="1020" href="#1020">1020</a>                 {
+<a name="1021" href="#1021">1021</a>                     File file = getFile( artifact );
+<a name="1022" href="#1022">1022</a>                     <strong class="jxr_keyword">if</strong> ( file == <strong class="jxr_keyword">null</strong> )
+<a name="1023" href="#1023">1023</a>                     {
+<a name="1024" href="#1024">1024</a>                         getLog().warn(
+<a name="1025" href="#1025">1025</a>                             <span class="jxr_string">"File is not available for artifact "</span> + artifact + <span class="jxr_string">" in project "</span>
+<a name="1026" href="#1026">1026</a>                                 + currentProject.getArtifact() );
+<a name="1027" href="#1027">1027</a>                         <strong class="jxr_keyword">continue</strong>;
+<a name="1028" href="#1028">1028</a>                     }
+<a name="1029" href="#1029">1029</a>                     Jar jar = <strong class="jxr_keyword">new</strong> Jar( artifact.getArtifactId(), file );
+<a name="1030" href="#1030">1030</a>                     list.add( jar );
+<a name="1031" href="#1031">1031</a>                 }
+<a name="1032" href="#1032">1032</a>             }
+<a name="1033" href="#1033">1033</a>         }
+<a name="1034" href="#1034">1034</a>         Jar[] cp = <strong class="jxr_keyword">new</strong> Jar[list.size()];
+<a name="1035" href="#1035">1035</a>         list.toArray( cp );
+<a name="1036" href="#1036">1036</a>         <strong class="jxr_keyword">return</strong> cp;
+<a name="1037" href="#1037">1037</a>     }
 <a name="1038" href="#1038">1038</a> 
-<a name="1039" href="#1039">1039</a>     <strong class="jxr_keyword">private</strong> Collection getSelectedDependencies( Collection artifacts ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="1040" href="#1040">1040</a>     {
-<a name="1041" href="#1041">1041</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == excludeDependencies || excludeDependencies.length() == 0 )
-<a name="1042" href="#1042">1042</a>         {
-<a name="1043" href="#1043">1043</a>             <strong class="jxr_keyword">return</strong> artifacts;
-<a name="1044" href="#1044">1044</a>         }
-<a name="1045" href="#1045">1045</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"true"</span>.equalsIgnoreCase( excludeDependencies ) )
-<a name="1046" href="#1046">1046</a>         {
-<a name="1047" href="#1047">1047</a>             <strong class="jxr_keyword">return</strong> Collections.EMPTY_LIST;
-<a name="1048" href="#1048">1048</a>         }
-<a name="1049" href="#1049">1049</a> 
-<a name="1050" href="#1050">1050</a>         Collection selectedDependencies = <strong class="jxr_keyword">new</strong> LinkedHashSet( artifacts );
-<a name="1051" href="#1051">1051</a>         <a href="../../../../org/apache/felix/bundleplugin/DependencyExcluder.html">DependencyExcluder</a> excluder = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyExcluder.html">DependencyExcluder</a>( artifacts );
-<a name="1052" href="#1052">1052</a>         excluder.processHeaders( excludeDependencies );
-<a name="1053" href="#1053">1053</a>         selectedDependencies.removeAll( excluder.getExcludedArtifacts() );
-<a name="1054" href="#1054">1054</a> 
-<a name="1055" href="#1055">1055</a>         <strong class="jxr_keyword">return</strong> selectedDependencies;
-<a name="1056" href="#1056">1056</a>     }
-<a name="1057" href="#1057">1057</a> 
+<a name="1039" href="#1039">1039</a> 
+<a name="1040" href="#1040">1040</a>     <strong class="jxr_keyword">private</strong> Collection getSelectedDependencies( Collection artifacts ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="1041" href="#1041">1041</a>     {
+<a name="1042" href="#1042">1042</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == excludeDependencies || excludeDependencies.length() == 0 )
+<a name="1043" href="#1043">1043</a>         {
+<a name="1044" href="#1044">1044</a>             <strong class="jxr_keyword">return</strong> artifacts;
+<a name="1045" href="#1045">1045</a>         }
+<a name="1046" href="#1046">1046</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"true"</span>.equalsIgnoreCase( excludeDependencies ) )
+<a name="1047" href="#1047">1047</a>         {
+<a name="1048" href="#1048">1048</a>             <strong class="jxr_keyword">return</strong> Collections.EMPTY_LIST;
+<a name="1049" href="#1049">1049</a>         }
+<a name="1050" href="#1050">1050</a> 
+<a name="1051" href="#1051">1051</a>         Collection selectedDependencies = <strong class="jxr_keyword">new</strong> LinkedHashSet( artifacts );
+<a name="1052" href="#1052">1052</a>         <a href="../../../../org/apache/felix/bundleplugin/DependencyExcluder.html">DependencyExcluder</a> excluder = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyExcluder.html">DependencyExcluder</a>( artifacts );
+<a name="1053" href="#1053">1053</a>         excluder.processHeaders( excludeDependencies );
+<a name="1054" href="#1054">1054</a>         selectedDependencies.removeAll( excluder.getExcludedArtifacts() );
+<a name="1055" href="#1055">1055</a> 
+<a name="1056" href="#1056">1056</a>         <strong class="jxr_keyword">return</strong> selectedDependencies;
+<a name="1057" href="#1057">1057</a>     }
 <a name="1058" href="#1058">1058</a> 
-<a name="1059" href="#1059">1059</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="1060" href="#1060">1060</a> <em class="jxr_javadoccomment">     * Get the file for an Artifact</em>
-<a name="1061" href="#1061">1061</a> <em class="jxr_javadoccomment">     *</em>
-<a name="1062" href="#1062">1062</a> <em class="jxr_javadoccomment">     * @param artifact</em>
-<a name="1063" href="#1063">1063</a> <em class="jxr_javadoccomment">     */</em>
-<a name="1064" href="#1064">1064</a>     <strong class="jxr_keyword">protected</strong> File getFile( Artifact artifact )
-<a name="1065" href="#1065">1065</a>     {
-<a name="1066" href="#1066">1066</a>         <strong class="jxr_keyword">return</strong> artifact.getFile();
-<a name="1067" href="#1067">1067</a>     }
-<a name="1068" href="#1068">1068</a> 
+<a name="1059" href="#1059">1059</a> 
+<a name="1060" href="#1060">1060</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="1061" href="#1061">1061</a> <em class="jxr_javadoccomment">     * Get the file for an Artifact</em>
+<a name="1062" href="#1062">1062</a> <em class="jxr_javadoccomment">     *</em>
+<a name="1063" href="#1063">1063</a> <em class="jxr_javadoccomment">     * @param artifact</em>
+<a name="1064" href="#1064">1064</a> <em class="jxr_javadoccomment">     */</em>
+<a name="1065" href="#1065">1065</a>     <strong class="jxr_keyword">protected</strong> File getFile( Artifact artifact )
+<a name="1066" href="#1066">1066</a>     {
+<a name="1067" href="#1067">1067</a>         <strong class="jxr_keyword">return</strong> artifact.getFile();
+<a name="1068" href="#1068">1068</a>     }
 <a name="1069" href="#1069">1069</a> 
-<a name="1070" href="#1070">1070</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> header( Properties properties, String key, Object value )
-<a name="1071" href="#1071">1071</a>     {
-<a name="1072" href="#1072">1072</a>         <strong class="jxr_keyword">if</strong> ( value == <strong class="jxr_keyword">null</strong> )
-<a name="1073" href="#1073">1073</a>             <strong class="jxr_keyword">return</strong>;
-<a name="1074" href="#1074">1074</a> 
-<a name="1075" href="#1075">1075</a>         <strong class="jxr_keyword">if</strong> ( value instanceof Collection &amp;&amp; ( ( Collection ) value ).isEmpty() )
-<a name="1076" href="#1076">1076</a>             <strong class="jxr_keyword">return</strong>;
-<a name="1077" href="#1077">1077</a> 
-<a name="1078" href="#1078">1078</a>         properties.put( key, value.toString().replaceAll( <span class="jxr_string">"[\r\n]"</span>, <span class="jxr_string">""</span> ) );
-<a name="1079" href="#1079">1079</a>     }
-<a name="1080" href="#1080">1080</a> 
+<a name="1070" href="#1070">1070</a> 
+<a name="1071" href="#1071">1071</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> header( Properties properties, String key, Object value )
+<a name="1072" href="#1072">1072</a>     {
+<a name="1073" href="#1073">1073</a>         <strong class="jxr_keyword">if</strong> ( value == <strong class="jxr_keyword">null</strong> )
+<a name="1074" href="#1074">1074</a>             <strong class="jxr_keyword">return</strong>;
+<a name="1075" href="#1075">1075</a> 
+<a name="1076" href="#1076">1076</a>         <strong class="jxr_keyword">if</strong> ( value instanceof Collection &amp;&amp; ( ( Collection ) value ).isEmpty() )
+<a name="1077" href="#1077">1077</a>             <strong class="jxr_keyword">return</strong>;
+<a name="1078" href="#1078">1078</a> 
+<a name="1079" href="#1079">1079</a>         properties.put( key, value.toString().replaceAll( <span class="jxr_string">"[\r\n]"</span>, <span class="jxr_string">""</span> ) );
+<a name="1080" href="#1080">1080</a>     }
 <a name="1081" href="#1081">1081</a> 
-<a name="1082" href="#1082">1082</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="1083" href="#1083">1083</a> <em class="jxr_javadoccomment">     * Convert a Maven version into an OSGi compliant version</em>
-<a name="1084" href="#1084">1084</a> <em class="jxr_javadoccomment">     *</em>
-<a name="1085" href="#1085">1085</a> <em class="jxr_javadoccomment">     * @param version Maven version</em>
-<a name="1086" href="#1086">1086</a> <em class="jxr_javadoccomment">     * @return the OSGi version</em>
-<a name="1087" href="#1087">1087</a> <em class="jxr_javadoccomment">     */</em>
-<a name="1088" href="#1088">1088</a>     <strong class="jxr_keyword">protected</strong> String convertVersionToOsgi( String version )
-<a name="1089" href="#1089">1089</a>     {
-<a name="1090" href="#1090">1090</a>         <strong class="jxr_keyword">return</strong> getMaven2OsgiConverter().getVersion( version );
-<a name="1091" href="#1091">1091</a>     }
-<a name="1092" href="#1092">1092</a> 
+<a name="1082" href="#1082">1082</a> 
+<a name="1083" href="#1083">1083</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="1084" href="#1084">1084</a> <em class="jxr_javadoccomment">     * Convert a Maven version into an OSGi compliant version</em>
+<a name="1085" href="#1085">1085</a> <em class="jxr_javadoccomment">     *</em>
+<a name="1086" href="#1086">1086</a> <em class="jxr_javadoccomment">     * @param version Maven version</em>
+<a name="1087" href="#1087">1087</a> <em class="jxr_javadoccomment">     * @return the OSGi version</em>
+<a name="1088" href="#1088">1088</a> <em class="jxr_javadoccomment">     */</em>
+<a name="1089" href="#1089">1089</a>     <strong class="jxr_keyword">protected</strong> String convertVersionToOsgi( String version )
+<a name="1090" href="#1090">1090</a>     {
+<a name="1091" href="#1091">1091</a>         <strong class="jxr_keyword">return</strong> getMaven2OsgiConverter().getVersion( version );
+<a name="1092" href="#1092">1092</a>     }
 <a name="1093" href="#1093">1093</a> 
-<a name="1094" href="#1094">1094</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="1095" href="#1095">1095</a> <em class="jxr_javadoccomment">     * TODO this should return getMaven2Osgi().getBundleFileName( project.getArtifact() )</em>
-<a name="1096" href="#1096">1096</a> <em class="jxr_javadoccomment">     */</em>
-<a name="1097" href="#1097">1097</a>     <strong class="jxr_keyword">protected</strong> String getBundleName( MavenProject currentProject )
-<a name="1098" href="#1098">1098</a>     {
-<a name="1099" href="#1099">1099</a>         String extension;
-<a name="1100" href="#1100">1100</a>         <strong class="jxr_keyword">try</strong>
-<a name="1101" href="#1101">1101</a>         {
-<a name="1102" href="#1102">1102</a>             extension = currentProject.getArtifact().getArtifactHandler().getExtension();
-<a name="1103" href="#1103">1103</a>         }
-<a name="1104" href="#1104">1104</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
-<a name="1105" href="#1105">1105</a>         {
-<a name="1106" href="#1106">1106</a>             extension = currentProject.getArtifact().getType();
-<a name="1107" href="#1107">1107</a>         }
-<a name="1108" href="#1108">1108</a>         <strong class="jxr_keyword">if</strong> ( StringUtils.isEmpty( extension ) || <span class="jxr_string">"bundle"</span>.equals( extension ) || <span class="jxr_string">"pom"</span>.equals( extension ) )
-<a name="1109" href="#1109">1109</a>         {
-<a name="1110" href="#1110">1110</a>             extension = <span class="jxr_string">"jar"</span>; <em class="jxr_comment">// just in case maven gets confused</em>
-<a name="1111" href="#1111">1111</a>         }
-<a name="1112" href="#1112">1112</a>         String finalName = currentProject.getBuild().getFinalName();
-<a name="1113" href="#1113">1113</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != classifier &amp;&amp; classifier.trim().length() &gt; 0 )
-<a name="1114" href="#1114">1114</a>         {
-<a name="1115" href="#1115">1115</a>             <strong class="jxr_keyword">return</strong> finalName + '-' + classifier + '.' + extension;
-<a name="1116" href="#1116">1116</a>         }
-<a name="1117" href="#1117">1117</a>         <strong class="jxr_keyword">return</strong> finalName + '.' + extension;
-<a name="1118" href="#1118">1118</a>     }
-<a name="1119" href="#1119">1119</a> 
+<a name="1094" href="#1094">1094</a> 
+<a name="1095" href="#1095">1095</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="1096" href="#1096">1096</a> <em class="jxr_javadoccomment">     * TODO this should return getMaven2Osgi().getBundleFileName( project.getArtifact() )</em>
+<a name="1097" href="#1097">1097</a> <em class="jxr_javadoccomment">     */</em>
+<a name="1098" href="#1098">1098</a>     <strong class="jxr_keyword">protected</strong> String getBundleName( MavenProject currentProject )
+<a name="1099" href="#1099">1099</a>     {
+<a name="1100" href="#1100">1100</a>         String extension;
+<a name="1101" href="#1101">1101</a>         <strong class="jxr_keyword">try</strong>
+<a name="1102" href="#1102">1102</a>         {
+<a name="1103" href="#1103">1103</a>             extension = currentProject.getArtifact().getArtifactHandler().getExtension();
+<a name="1104" href="#1104">1104</a>         }
+<a name="1105" href="#1105">1105</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
+<a name="1106" href="#1106">1106</a>         {
+<a name="1107" href="#1107">1107</a>             extension = currentProject.getArtifact().getType();
+<a name="1108" href="#1108">1108</a>         }
+<a name="1109" href="#1109">1109</a>         <strong class="jxr_keyword">if</strong> ( StringUtils.isEmpty( extension ) || <span class="jxr_string">"bundle"</span>.equals( extension ) || <span class="jxr_string">"pom"</span>.equals( extension ) )
+<a name="1110" href="#1110">1110</a>         {
+<a name="1111" href="#1111">1111</a>             extension = <span class="jxr_string">"jar"</span>; <em class="jxr_comment">// just in case maven gets confused</em>
+<a name="1112" href="#1112">1112</a>         }
+<a name="1113" href="#1113">1113</a>         String finalName = currentProject.getBuild().getFinalName();
+<a name="1114" href="#1114">1114</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != classifier &amp;&amp; classifier.trim().length() &gt; 0 )
+<a name="1115" href="#1115">1115</a>         {
+<a name="1116" href="#1116">1116</a>             <strong class="jxr_keyword">return</strong> finalName + '-' + classifier + '.' + extension;
+<a name="1117" href="#1117">1117</a>         }
+<a name="1118" href="#1118">1118</a>         <strong class="jxr_keyword">return</strong> finalName + '.' + extension;
+<a name="1119" href="#1119">1119</a>     }
 <a name="1120" href="#1120">1120</a> 
-<a name="1121" href="#1121">1121</a>     <strong class="jxr_keyword">protected</strong> String getBuildDirectory()
-<a name="1122" href="#1122">1122</a>     {
-<a name="1123" href="#1123">1123</a>         <strong class="jxr_keyword">return</strong> buildDirectory;
-<a name="1124" href="#1124">1124</a>     }
-<a name="1125" href="#1125">1125</a> 
+<a name="1121" href="#1121">1121</a> 
+<a name="1122" href="#1122">1122</a>     <strong class="jxr_keyword">protected</strong> String getBuildDirectory()
+<a name="1123" href="#1123">1123</a>     {
+<a name="1124" href="#1124">1124</a>         <strong class="jxr_keyword">return</strong> buildDirectory;
+<a name="1125" href="#1125">1125</a>     }
 <a name="1126" href="#1126">1126</a> 
-<a name="1127" href="#1127">1127</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setBuildDirectory( String _buildirectory )
-<a name="1128" href="#1128">1128</a>     {
-<a name="1129" href="#1129">1129</a>         buildDirectory = _buildirectory;
-<a name="1130" href="#1130">1130</a>     }
-<a name="1131" href="#1131">1131</a> 
+<a name="1127" href="#1127">1127</a> 
+<a name="1128" href="#1128">1128</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setBuildDirectory( String _buildirectory )
+<a name="1129" href="#1129">1129</a>     {
+<a name="1130" href="#1130">1130</a>         buildDirectory = _buildirectory;
+<a name="1131" href="#1131">1131</a>     }
 <a name="1132" href="#1132">1132</a> 
-<a name="1133" href="#1133">1133</a>     <strong class="jxr_keyword">protected</strong> Properties getDefaultProperties( MavenProject currentProject )
-<a name="1134" href="#1134">1134</a>     {
-<a name="1135" href="#1135">1135</a>         Properties properties = <strong class="jxr_keyword">new</strong> Properties();
-<a name="1136" href="#1136">1136</a> 
-<a name="1137" href="#1137">1137</a>         String bsn;
-<a name="1138" href="#1138">1138</a>         <strong class="jxr_keyword">try</strong>
-<a name="1139" href="#1139">1139</a>         {
-<a name="1140" href="#1140">1140</a>             bsn = getMaven2OsgiConverter().getBundleSymbolicName( currentProject.getArtifact() );
-<a name="1141" href="#1141">1141</a>         }
-<a name="1142" href="#1142">1142</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="1143" href="#1143">1143</a>         {
-<a name="1144" href="#1144">1144</a>             bsn = currentProject.getGroupId() + <span class="jxr_string">"."</span> + currentProject.getArtifactId();
-<a name="1145" href="#1145">1145</a>         }
-<a name="1146" href="#1146">1146</a> 
-<a name="1147" href="#1147">1147</a>         <em class="jxr_comment">// Setup defaults</em>
-<a name="1148" href="#1148">1148</a>         properties.put( MAVEN_SYMBOLICNAME, bsn );
-<a name="1149" href="#1149">1149</a>         properties.put( Analyzer.BUNDLE_SYMBOLICNAME, bsn );
-<a name="1150" href="#1150">1150</a>         properties.put( Analyzer.IMPORT_PACKAGE, <span class="jxr_string">"*"</span> );
-<a name="1151" href="#1151">1151</a>         properties.put( Analyzer.BUNDLE_VERSION, getMaven2OsgiConverter().getVersion( currentProject.getVersion() ) );
-<a name="1152" href="#1152">1152</a> 
-<a name="1153" href="#1153">1153</a>         <em class="jxr_comment">// remove the extraneous Include-Resource and Private-Package entries from generated manifest</em>
-<a name="1154" href="#1154">1154</a>         properties.put( Constants.REMOVEHEADERS, Analyzer.INCLUDE_RESOURCE + ',' + Analyzer.PRIVATE_PACKAGE );
-<a name="1155" href="#1155">1155</a> 
-<a name="1156" href="#1156">1156</a>         header( properties, Analyzer.BUNDLE_DESCRIPTION, currentProject.getDescription() );
-<a name="1157" href="#1157">1157</a>         StringBuffer licenseText = printLicenses( currentProject.getLicenses() );
-<a name="1158" href="#1158">1158</a>         <strong class="jxr_keyword">if</strong> ( licenseText != <strong class="jxr_keyword">null</strong> )
-<a name="1159" href="#1159">1159</a>         {
-<a name="1160" href="#1160">1160</a>             header( properties, Analyzer.BUNDLE_LICENSE, licenseText );
-<a name="1161" href="#1161">1161</a>         }
-<a name="1162" href="#1162">1162</a>         header( properties, Analyzer.BUNDLE_NAME, currentProject.getName() );
-<a name="1163" href="#1163">1163</a> 
-<a name="1164" href="#1164">1164</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization() != <strong class="jxr_keyword">null</strong> )
-<a name="1165" href="#1165">1165</a>         {
-<a name="1166" href="#1166">1166</a>             <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization().getName() != <strong class="jxr_keyword">null</strong> )
-<a name="1167" href="#1167">1167</a>             {
-<a name="1168" href="#1168">1168</a>                 String organizationName = currentProject.getOrganization().getName();
-<a name="1169" href="#1169">1169</a>                 header( properties, Analyzer.BUNDLE_VENDOR, organizationName );
-<a name="1170" href="#1170">1170</a>                 properties.put( <span class="jxr_string">"project.organization.name"</span>, organizationName );
-<a name="1171" href="#1171">1171</a>                 properties.put( <span class="jxr_string">"pom.organization.name"</span>, organizationName );
-<a name="1172" href="#1172">1172</a>             }
-<a name="1173" href="#1173">1173</a>             <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization().getUrl() != <strong class="jxr_keyword">null</strong> )
-<a name="1174" href="#1174">1174</a>             {
-<a name="1175" href="#1175">1175</a>                 String organizationUrl = currentProject.getOrganization().getUrl();
-<a name="1176" href="#1176">1176</a>                 header( properties, Analyzer.BUNDLE_DOCURL, organizationUrl );
-<a name="1177" href="#1177">1177</a>                 properties.put( <span class="jxr_string">"project.organization.url"</span>, organizationUrl );
-<a name="1178" href="#1178">1178</a>                 properties.put( <span class="jxr_string">"pom.organization.url"</span>, organizationUrl );
-<a name="1179" href="#1179">1179</a>             }
-<a name="1180" href="#1180">1180</a>         }
-<a name="1181" href="#1181">1181</a> 
-<a name="1182" href="#1182">1182</a>         properties.putAll( currentProject.getProperties() );
-<a name="1183" href="#1183">1183</a>         properties.putAll( currentProject.getModel().getProperties() );
-<a name="1184" href="#1184">1184</a>         <strong class="jxr_keyword">if</strong> ( m_mavenSession != <strong class="jxr_keyword">null</strong> )
-<a name="1185" href="#1185">1185</a>         {
-<a name="1186" href="#1186">1186</a>             properties.putAll( m_mavenSession.getExecutionProperties() );
-<a name="1187" href="#1187">1187</a>         }
-<a name="1188" href="#1188">1188</a> 
-<a name="1189" href="#1189">1189</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"project.build."</span> ) );
-<a name="1190" href="#1190">1190</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"pom."</span> ) );
-<a name="1191" href="#1191">1191</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"project."</span> ) );
-<a name="1192" href="#1192">1192</a> 
-<a name="1193" href="#1193">1193</a>         properties.put( <span class="jxr_string">"project.baseDir"</span>, getBase( currentProject ) );
-<a name="1194" href="#1194">1194</a>         properties.put( <span class="jxr_string">"project.build.directory"</span>, getBuildDirectory() );
-<a name="1195" href="#1195">1195</a>         properties.put( <span class="jxr_string">"project.build.outputdirectory"</span>, getOutputDirectory() );
-<a name="1196" href="#1196">1196</a> 
-<a name="1197" href="#1197">1197</a>         properties.put( <span class="jxr_string">"classifier"</span>, classifier == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">""</span> : classifier );
-<a name="1198" href="#1198">1198</a> 
-<a name="1199" href="#1199">1199</a>         <em class="jxr_comment">// Add default plugins</em>
-<a name="1200" href="#1200">1200</a>         header( properties, Analyzer.PLUGIN, BlueprintPlugin.<strong class="jxr_keyword">class</strong>.getName() + <span class="jxr_string">","</span> + SpringXMLType.<strong class="jxr_keyword">class</strong>.getName() );
-<a name="1201" href="#1201">1201</a> 
-<a name="1202" href="#1202">1202</a>         <strong class="jxr_keyword">return</strong> properties;
-<a name="1203" href="#1203">1203</a>     }
-<a name="1204" href="#1204">1204</a> 
+<a name="1133" href="#1133">1133</a> 
+<a name="1134" href="#1134">1134</a>     <strong class="jxr_keyword">protected</strong> Properties getDefaultProperties( MavenProject currentProject )
+<a name="1135" href="#1135">1135</a>     {
+<a name="1136" href="#1136">1136</a>         Properties properties = <strong class="jxr_keyword">new</strong> Properties();
+<a name="1137" href="#1137">1137</a> 
+<a name="1138" href="#1138">1138</a>         String bsn;
+<a name="1139" href="#1139">1139</a>         <strong class="jxr_keyword">try</strong>
+<a name="1140" href="#1140">1140</a>         {
+<a name="1141" href="#1141">1141</a>             bsn = getMaven2OsgiConverter().getBundleSymbolicName( currentProject.getArtifact() );
+<a name="1142" href="#1142">1142</a>         }
+<a name="1143" href="#1143">1143</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="1144" href="#1144">1144</a>         {
+<a name="1145" href="#1145">1145</a>             bsn = currentProject.getGroupId() + <span class="jxr_string">"."</span> + currentProject.getArtifactId();
+<a name="1146" href="#1146">1146</a>         }
+<a name="1147" href="#1147">1147</a> 
+<a name="1148" href="#1148">1148</a>         <em class="jxr_comment">// Setup defaults</em>
+<a name="1149" href="#1149">1149</a>         properties.put( MAVEN_SYMBOLICNAME, bsn );
+<a name="1150" href="#1150">1150</a>         properties.put( Analyzer.BUNDLE_SYMBOLICNAME, bsn );
+<a name="1151" href="#1151">1151</a>         properties.put( Analyzer.IMPORT_PACKAGE, <span class="jxr_string">"*"</span> );
+<a name="1152" href="#1152">1152</a>         properties.put( Analyzer.BUNDLE_VERSION, getMaven2OsgiConverter().getVersion( currentProject.getVersion() ) );
+<a name="1153" href="#1153">1153</a> 
+<a name="1154" href="#1154">1154</a>         <em class="jxr_comment">// remove the extraneous Include-Resource and Private-Package entries from generated manifest</em>
+<a name="1155" href="#1155">1155</a>         properties.put( Constants.REMOVEHEADERS, Analyzer.INCLUDE_RESOURCE + ',' + Analyzer.PRIVATE_PACKAGE );
+<a name="1156" href="#1156">1156</a> 
+<a name="1157" href="#1157">1157</a>         header( properties, Analyzer.BUNDLE_DESCRIPTION, currentProject.getDescription() );
+<a name="1158" href="#1158">1158</a>         StringBuffer licenseText = printLicenses( currentProject.getLicenses() );
+<a name="1159" href="#1159">1159</a>         <strong class="jxr_keyword">if</strong> ( licenseText != <strong class="jxr_keyword">null</strong> )
+<a name="1160" href="#1160">1160</a>         {
+<a name="1161" href="#1161">1161</a>             header( properties, Analyzer.BUNDLE_LICENSE, licenseText );
+<a name="1162" href="#1162">1162</a>         }
+<a name="1163" href="#1163">1163</a>         header( properties, Analyzer.BUNDLE_NAME, currentProject.getName() );
+<a name="1164" href="#1164">1164</a> 
+<a name="1165" href="#1165">1165</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization() != <strong class="jxr_keyword">null</strong> )
+<a name="1166" href="#1166">1166</a>         {
+<a name="1167" href="#1167">1167</a>             <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization().getName() != <strong class="jxr_keyword">null</strong> )
+<a name="1168" href="#1168">1168</a>             {
+<a name="1169" href="#1169">1169</a>                 String organizationName = currentProject.getOrganization().getName();
+<a name="1170" href="#1170">1170</a>                 header( properties, Analyzer.BUNDLE_VENDOR, organizationName );
+<a name="1171" href="#1171">1171</a>                 properties.put( <span class="jxr_string">"project.organization.name"</span>, organizationName );
+<a name="1172" href="#1172">1172</a>                 properties.put( <span class="jxr_string">"pom.organization.name"</span>, organizationName );
+<a name="1173" href="#1173">1173</a>             }
+<a name="1174" href="#1174">1174</a>             <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization().getUrl() != <strong class="jxr_keyword">null</strong> )
+<a name="1175" href="#1175">1175</a>             {
+<a name="1176" href="#1176">1176</a>                 String organizationUrl = currentProject.getOrganization().getUrl();
+<a name="1177" href="#1177">1177</a>                 header( properties, Analyzer.BUNDLE_DOCURL, organizationUrl );
+<a name="1178" href="#1178">1178</a>                 properties.put( <span class="jxr_string">"project.organization.url"</span>, organizationUrl );
+<a name="1179" href="#1179">1179</a>                 properties.put( <span class="jxr_string">"pom.organization.url"</span>, organizationUrl );
+<a name="1180" href="#1180">1180</a>             }
+<a name="1181" href="#1181">1181</a>         }
+<a name="1182" href="#1182">1182</a> 
+<a name="1183" href="#1183">1183</a>         properties.putAll( currentProject.getProperties() );
+<a name="1184" href="#1184">1184</a>         properties.putAll( currentProject.getModel().getProperties() );
+<a name="1185" href="#1185">1185</a>         <strong class="jxr_keyword">if</strong> ( m_mavenSession != <strong class="jxr_keyword">null</strong> )
+<a name="1186" href="#1186">1186</a>         {
+<a name="1187" href="#1187">1187</a>             <strong class="jxr_keyword">try</strong>
+<a name="1188" href="#1188">1188</a>             {
+<a name="1189" href="#1189">1189</a>                 <em class="jxr_comment">// don't pass upper-case session settings to bnd as they end up in the manifest</em>
+<a name="1190" href="#1190">1190</a>                 Properties sessionProperties = m_mavenSession.getExecutionProperties();
+<a name="1191" href="#1191">1191</a>                 <strong class="jxr_keyword">for</strong> ( Enumeration e = sessionProperties.propertyNames(); e.hasMoreElements(); )
+<a name="1192" href="#1192">1192</a>                 {
+<a name="1193" href="#1193">1193</a>                     String key = ( String ) e.nextElement();
+<a name="1194" href="#1194">1194</a>                     <strong class="jxr_keyword">if</strong> ( key.length() &gt; 0 &amp;&amp; !Character.isUpperCase( key.charAt( 0 ) ) )
+<a name="1195" href="#1195">1195</a>                     {
+<a name="1196" href="#1196">1196</a>                         properties.put( key, sessionProperties.getProperty( key ) );
+<a name="1197" href="#1197">1197</a>                     }
+<a name="1198" href="#1198">1198</a>                 }
+<a name="1199" href="#1199">1199</a>             }
+<a name="1200" href="#1200">1200</a>             <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="1201" href="#1201">1201</a>             {
+<a name="1202" href="#1202">1202</a>                 getLog().warn( <span class="jxr_string">"Problem with Maven session properties: "</span> + e.getLocalizedMessage() );
+<a name="1203" href="#1203">1203</a>             }
+<a name="1204" href="#1204">1204</a>         }
 <a name="1205" href="#1205">1205</a> 
-<a name="1206" href="#1206">1206</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> File getBase( MavenProject currentProject )
-<a name="1207" href="#1207">1207</a>     {
-<a name="1208" href="#1208">1208</a>         <strong class="jxr_keyword">return</strong> currentProject.getBasedir() != <strong class="jxr_keyword">null</strong> ? currentProject.getBasedir() : <strong class="jxr_keyword">new</strong> File( <span class="jxr_string">""</span> );
-<a name="1209" href="#1209">1209</a>     }
-<a name="1210" href="#1210">1210</a> 
-<a name="1211" href="#1211">1211</a> 
-<a name="1212" href="#1212">1212</a>     <strong class="jxr_keyword">protected</strong> File getOutputDirectory()
-<a name="1213" href="#1213">1213</a>     {
-<a name="1214" href="#1214">1214</a>         <strong class="jxr_keyword">return</strong> outputDirectory;
-<a name="1215" href="#1215">1215</a>     }
-<a name="1216" href="#1216">1216</a> 
-<a name="1217" href="#1217">1217</a> 
-<a name="1218" href="#1218">1218</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setOutputDirectory( File _outputDirectory )
-<a name="1219" href="#1219">1219</a>     {
-<a name="1220" href="#1220">1220</a>         outputDirectory = _outputDirectory;
-<a name="1221" href="#1221">1221</a>     }
+<a name="1206" href="#1206">1206</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"project.build."</span> ) );
+<a name="1207" href="#1207">1207</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"pom."</span> ) );
+<a name="1208" href="#1208">1208</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"project."</span> ) );
+<a name="1209" href="#1209">1209</a> 
+<a name="1210" href="#1210">1210</a>         properties.put( <span class="jxr_string">"project.baseDir"</span>, getBase( currentProject ) );
+<a name="1211" href="#1211">1211</a>         properties.put( <span class="jxr_string">"project.build.directory"</span>, getBuildDirectory() );
+<a name="1212" href="#1212">1212</a>         properties.put( <span class="jxr_string">"project.build.outputdirectory"</span>, getOutputDirectory() );
+<a name="1213" href="#1213">1213</a> 
+<a name="1214" href="#1214">1214</a>         properties.put( <span class="jxr_string">"classifier"</span>, classifier == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">""</span> : classifier );
+<a name="1215" href="#1215">1215</a> 
+<a name="1216" href="#1216">1216</a>         <em class="jxr_comment">// Add default plugins</em>
+<a name="1217" href="#1217">1217</a>         header( properties, Analyzer.PLUGIN, BlueprintPlugin.<strong class="jxr_keyword">class</strong>.getName() + <span class="jxr_string">","</span> + SpringXMLType.<strong class="jxr_keyword">class</strong>.getName() );
+<a name="1218" href="#1218">1218</a> 
+<a name="1219" href="#1219">1219</a>         <strong class="jxr_keyword">return</strong> properties;
+<a name="1220" href="#1220">1220</a>     }
+<a name="1221" href="#1221">1221</a> 
 <a name="1222" href="#1222">1222</a> 
-<a name="1223" href="#1223">1223</a> 
-<a name="1224" href="#1224">1224</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> addLocalPackages( File outputDirectory, Analyzer analyzer )
-<a name="1225" href="#1225">1225</a>     {
-<a name="1226" href="#1226">1226</a>         Collection packages = <strong class="jxr_keyword">new</strong> LinkedHashSet();
+<a name="1223" href="#1223">1223</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> File getBase( MavenProject currentProject )
+<a name="1224" href="#1224">1224</a>     {
+<a name="1225" href="#1225">1225</a>         <strong class="jxr_keyword">return</strong> currentProject.getBasedir() != <strong class="jxr_keyword">null</strong> ? currentProject.getBasedir() : <strong class="jxr_keyword">new</strong> File( <span class="jxr_string">""</span> );
+<a name="1226" href="#1226">1226</a>     }
 <a name="1227" href="#1227">1227</a> 
-<a name="1228" href="#1228">1228</a>         <strong class="jxr_keyword">if</strong> ( outputDirectory != <strong class="jxr_keyword">null</strong> &amp;&amp; outputDirectory.isDirectory() )
-<a name="1229" href="#1229">1229</a>         {
-<a name="1230" href="#1230">1230</a>             <em class="jxr_comment">// scan classes directory for potential packages</em>
-<a name="1231" href="#1231">1231</a>             DirectoryScanner scanner = <strong class="jxr_keyword">new</strong> DirectoryScanner();
-<a name="1232" href="#1232">1232</a>             scanner.setBasedir( outputDirectory );
-<a name="1233" href="#1233">1233</a>             scanner.setIncludes( <strong class="jxr_keyword">new</strong> String[]
-<a name="1234" href="#1234">1234</a>                 { <span class="jxr_string">"**/*.class"</span> } );
-<a name="1235" href="#1235">1235</a> 
-<a name="1236" href="#1236">1236</a>             scanner.addDefaultExcludes();
-<a name="1237" href="#1237">1237</a>             scanner.scan();
-<a name="1238" href="#1238">1238</a> 
-<a name="1239" href="#1239">1239</a>             String[] paths = scanner.getIncludedFiles();
-<a name="1240" href="#1240">1240</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; paths.length; i++ )
-<a name="1241" href="#1241">1241</a>             {
-<a name="1242" href="#1242">1242</a>                 packages.add( getPackageName( paths[i] ) );
-<a name="1243" href="#1243">1243</a>             }
-<a name="1244" href="#1244">1244</a>         }
-<a name="1245" href="#1245">1245</a> 
-<a name="1246" href="#1246">1246</a>         StringBuffer exportedPkgs = <strong class="jxr_keyword">new</strong> StringBuffer();
-<a name="1247" href="#1247">1247</a>         StringBuffer privatePkgs = <strong class="jxr_keyword">new</strong> StringBuffer();
-<a name="1248" href="#1248">1248</a> 
-<a name="1249" href="#1249">1249</a>         <strong class="jxr_keyword">boolean</strong> noprivatePackages = <span class="jxr_string">"!*"</span>.equals( analyzer.getProperty( Analyzer.PRIVATE_PACKAGE ) );
-<a name="1250" href="#1250">1250</a> 
-<a name="1251" href="#1251">1251</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = packages.iterator(); i.hasNext(); )
-<a name="1252" href="#1252">1252</a>         {
-<a name="1253" href="#1253">1253</a>             String pkg = ( String ) i.next();
-<a name="1254" href="#1254">1254</a> 
-<a name="1255" href="#1255">1255</a>             <em class="jxr_comment">// mark all source packages as private by default (can be overridden by export list)</em>
-<a name="1256" href="#1256">1256</a>             <strong class="jxr_keyword">if</strong> ( privatePkgs.length() &gt; 0 )
-<a name="1257" href="#1257">1257</a>             {
-<a name="1258" href="#1258">1258</a>                 privatePkgs.append( ';' );
-<a name="1259" href="#1259">1259</a>             }
-<a name="1260" href="#1260">1260</a>             privatePkgs.append( pkg );
-<a name="1261" href="#1261">1261</a> 
-<a name="1262" href="#1262">1262</a>             <em class="jxr_comment">// we can't export the default package (".") and we shouldn't export internal packages </em>
-<a name="1263" href="#1263">1263</a>             <strong class="jxr_keyword">if</strong> ( noprivatePackages || !( <span class="jxr_string">"."</span>.equals( pkg ) || pkg.contains( <span class="jxr_string">".internal"</span> ) || pkg.contains( <span class="jxr_string">".impl"</span> ) ) )
-<a name="1264" href="#1264">1264</a>             {
-<a name="1265" href="#1265">1265</a>                 <strong class="jxr_keyword">if</strong> ( exportedPkgs.length() &gt; 0 )
-<a name="1266" href="#1266">1266</a>                 {
-<a name="1267" href="#1267">1267</a>                     exportedPkgs.append( ';' );
-<a name="1268" href="#1268">1268</a>                 }
-<a name="1269" href="#1269">1269</a>                 exportedPkgs.append( pkg );
-<a name="1270" href="#1270">1270</a>             }
-<a name="1271" href="#1271">1271</a>         }
-<a name="1272" href="#1272">1272</a> 
-<a name="1273" href="#1273">1273</a>         <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.EXPORT_PACKAGE ) == <strong class="jxr_keyword">null</strong> )
-<a name="1274" href="#1274">1274</a>         {
-<a name="1275" href="#1275">1275</a>             <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.EXPORT_CONTENTS ) == <strong class="jxr_keyword">null</strong> )
-<a name="1276" href="#1276">1276</a>             {
-<a name="1277" href="#1277">1277</a>                 <em class="jxr_comment">// no -exportcontents overriding the exports, so use our computed list</em>
-<a name="1278" href="#1278">1278</a>                 analyzer.setProperty( Analyzer.EXPORT_PACKAGE, exportedPkgs + <span class="jxr_string">";-split-package:=merge-first"</span> );
-<a name="1279" href="#1279">1279</a>             }
-<a name="1280" href="#1280">1280</a>             <strong class="jxr_keyword">else</strong>
+<a name="1228" href="#1228">1228</a> 
+<a name="1229" href="#1229">1229</a>     <strong class="jxr_keyword">protected</strong> File getOutputDirectory()
+<a name="1230" href="#1230">1230</a>     {
+<a name="1231" href="#1231">1231</a>         <strong class="jxr_keyword">return</strong> outputDirectory;
+<a name="1232" href="#1232">1232</a>     }
+<a name="1233" href="#1233">1233</a> 
+<a name="1234" href="#1234">1234</a> 
+<a name="1235" href="#1235">1235</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setOutputDirectory( File _outputDirectory )
+<a name="1236" href="#1236">1236</a>     {
+<a name="1237" href="#1237">1237</a>         outputDirectory = _outputDirectory;
+<a name="1238" href="#1238">1238</a>     }
+<a name="1239" href="#1239">1239</a> 
+<a name="1240" href="#1240">1240</a> 
+<a name="1241" href="#1241">1241</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> addLocalPackages( File outputDirectory, Analyzer analyzer )
+<a name="1242" href="#1242">1242</a>     {
+<a name="1243" href="#1243">1243</a>         Collection packages = <strong class="jxr_keyword">new</strong> TreeSet();
+<a name="1244" href="#1244">1244</a> 
+<a name="1245" href="#1245">1245</a>         <strong class="jxr_keyword">if</strong> ( outputDirectory != <strong class="jxr_keyword">null</strong> &amp;&amp; outputDirectory.isDirectory() )
+<a name="1246" href="#1246">1246</a>         {
+<a name="1247" href="#1247">1247</a>             <em class="jxr_comment">// scan classes directory for potential packages</em>
+<a name="1248" href="#1248">1248</a>             DirectoryScanner scanner = <strong class="jxr_keyword">new</strong> DirectoryScanner();
+<a name="1249" href="#1249">1249</a>             scanner.setBasedir( outputDirectory );
+<a name="1250" href="#1250">1250</a>             scanner.setIncludes( <strong class="jxr_keyword">new</strong> String[]
+<a name="1251" href="#1251">1251</a>                 { <span class="jxr_string">"**/*.class"</span> } );
+<a name="1252" href="#1252">1252</a> 
+<a name="1253" href="#1253">1253</a>             scanner.addDefaultExcludes();
+<a name="1254" href="#1254">1254</a>             scanner.scan();
+<a name="1255" href="#1255">1255</a> 
+<a name="1256" href="#1256">1256</a>             String[] paths = scanner.getIncludedFiles();
+<a name="1257" href="#1257">1257</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; paths.length; i++ )
+<a name="1258" href="#1258">1258</a>             {
+<a name="1259" href="#1259">1259</a>                 packages.add( getPackageName( paths[i] ) );
+<a name="1260" href="#1260">1260</a>             }
+<a name="1261" href="#1261">1261</a>         }
+<a name="1262" href="#1262">1262</a> 
+<a name="1263" href="#1263">1263</a>         StringBuffer exportedPkgs = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="1264" href="#1264">1264</a>         StringBuffer privatePkgs = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="1265" href="#1265">1265</a> 
+<a name="1266" href="#1266">1266</a>         <strong class="jxr_keyword">boolean</strong> noprivatePackages = <span class="jxr_string">"!*"</span>.equals( analyzer.getProperty( Analyzer.PRIVATE_PACKAGE ) );
+<a name="1267" href="#1267">1267</a> 
+<a name="1268" href="#1268">1268</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = packages.iterator(); i.hasNext(); )
+<a name="1269" href="#1269">1269</a>         {
+<a name="1270" href="#1270">1270</a>             String pkg = ( String ) i.next();
+<a name="1271" href="#1271">1271</a> 
+<a name="1272" href="#1272">1272</a>             <em class="jxr_comment">// mark all source packages as private by default (can be overridden by export list)</em>
+<a name="1273" href="#1273">1273</a>             <strong class="jxr_keyword">if</strong> ( privatePkgs.length() &gt; 0 )
+<a name="1274" href="#1274">1274</a>             {
+<a name="1275" href="#1275">1275</a>                 privatePkgs.append( ';' );
+<a name="1276" href="#1276">1276</a>             }
+<a name="1277" href="#1277">1277</a>             privatePkgs.append( pkg );
+<a name="1278" href="#1278">1278</a> 
+<a name="1279" href="#1279">1279</a>             <em class="jxr_comment">// we can't export the default package (".") and we shouldn't export internal packages </em>
+<a name="1280" href="#1280">1280</a>             <strong class="jxr_keyword">if</strong> ( noprivatePackages || !( <span class="jxr_string">"."</span>.equals( pkg ) || pkg.contains( <span class="jxr_string">".internal"</span> ) || pkg.contains( <span class="jxr_string">".impl"</span> ) ) )
 <a name="1281" href="#1281">1281</a>             {
-<a name="1282" href="#1282">1282</a>                 <em class="jxr_comment">// leave Export-Package empty (but non-null) as we have -exportcontents</em>
-<a name="1283" href="#1283">1283</a>                 analyzer.setProperty( Analyzer.EXPORT_PACKAGE, <span class="jxr_string">""</span> );
-<a name="1284" href="#1284">1284</a>             }
-<a name="1285" href="#1285">1285</a>         }
-<a name="1286" href="#1286">1286</a>         <strong class="jxr_keyword">else</strong>
-<a name="1287" href="#1287">1287</a>         {
-<a name="1288" href="#1288">1288</a>             String exported = analyzer.getProperty( Analyzer.EXPORT_PACKAGE );
-<a name="1289" href="#1289">1289</a>             <strong class="jxr_keyword">if</strong> ( exported.indexOf( LOCAL_PACKAGES ) &gt;= 0 )
-<a name="1290" href="#1290">1290</a>             {
-<a name="1291" href="#1291">1291</a>                 String newExported = StringUtils.replace( exported, LOCAL_PACKAGES, exportedPkgs.toString() );
-<a name="1292" href="#1292">1292</a>                 analyzer.setProperty( Analyzer.EXPORT_PACKAGE, newExported );
-<a name="1293" href="#1293">1293</a> 
-<a name="1294" href="#1294">1294</a>             }
-<a name="1295" href="#1295">1295</a>         }
-<a name="1296" href="#1296">1296</a> 
-<a name="1297" href="#1297">1297</a>         String internal = analyzer.getProperty( Analyzer.PRIVATE_PACKAGE );
-<a name="1298" href="#1298">1298</a>         <strong class="jxr_keyword">if</strong> ( internal == <strong class="jxr_keyword">null</strong> )
-<a name="1299" href="#1299">1299</a>         {
-<a name="1300" href="#1300">1300</a>             <strong class="jxr_keyword">if</strong> ( privatePkgs.length() &gt; 0 )
-<a name="1301" href="#1301">1301</a>             {
-<a name="1302" href="#1302">1302</a>                 analyzer.setProperty( Analyzer.PRIVATE_PACKAGE, privatePkgs + <span class="jxr_string">";-split-package:=merge-first"</span> );
-<a name="1303" href="#1303">1303</a>             }
-<a name="1304" href="#1304">1304</a>             <strong class="jxr_keyword">else</strong>
-<a name="1305" href="#1305">1305</a>             {
-<a name="1306" href="#1306">1306</a>                 <em class="jxr_comment">// if there are really no private packages then use "!*" as this will keep the Bnd Tool happy</em>
-<a name="1307" href="#1307">1307</a>                 analyzer.setProperty( Analyzer.PRIVATE_PACKAGE, <span class="jxr_string">"!*"</span> );
-<a name="1308" href="#1308">1308</a>             }
-<a name="1309" href="#1309">1309</a>         }
-<a name="1310" href="#1310">1310</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( internal.indexOf( LOCAL_PACKAGES ) &gt;= 0 )
-<a name="1311" href="#1311">1311</a>         {
-<a name="1312" href="#1312">1312</a>             String newInternal = StringUtils.replace( internal, LOCAL_PACKAGES, privatePkgs.toString() );
-<a name="1313" href="#1313">1313</a>             analyzer.setProperty( Analyzer.PRIVATE_PACKAGE, newInternal );
-<a name="1314" href="#1314">1314</a>         }
-<a name="1315" href="#1315">1315</a>     }
-<a name="1316" href="#1316">1316</a> 
-<a name="1317" href="#1317">1317</a> 
-<a name="1318" href="#1318">1318</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getPackageName( String filename )
-<a name="1319" href="#1319">1319</a>     {
-<a name="1320" href="#1320">1320</a>         <strong class="jxr_keyword">int</strong> n = filename.lastIndexOf( File.separatorChar );
-<a name="1321" href="#1321">1321</a>         <strong class="jxr_keyword">return</strong> n &lt; 0 ? <span class="jxr_string">"."</span> : filename.substring( 0, n ).replace( File.separatorChar, '.' );
-<a name="1322" href="#1322">1322</a>     }
-<a name="1323" href="#1323">1323</a> 
-<a name="1324" href="#1324">1324</a> 
-<a name="1325" href="#1325">1325</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List getMavenResources( MavenProject currentProject )
-<a name="1326" href="#1326">1326</a>     {
-<a name="1327" href="#1327">1327</a>         List resources = <strong class="jxr_keyword">new</strong> ArrayList( currentProject.getResources() );
-<a name="1328" href="#1328">1328</a> 
-<a name="1329" href="#1329">1329</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getCompileSourceRoots() != <strong class="jxr_keyword">null</strong> )
-<a name="1330" href="#1330">1330</a>         {
-<a name="1331" href="#1331">1331</a>             <em class="jxr_comment">// also scan for any "packageinfo" files lurking in the source folders</em>
-<a name="1332" href="#1332">1332</a>             List packageInfoIncludes = Collections.singletonList( <span class="jxr_string">"**/packageinfo"</span> );
-<a name="1333" href="#1333">1333</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = currentProject.getCompileSourceRoots().iterator(); i.hasNext(); )
-<a name="1334" href="#1334">1334</a>             {
-<a name="1335" href="#1335">1335</a>                 String sourceRoot = ( String ) i.next();
-<a name="1336" href="#1336">1336</a>                 Resource packageInfoResource = <strong class="jxr_keyword">new</strong> Resource();
-<a name="1337" href="#1337">1337</a>                 packageInfoResource.setDirectory( sourceRoot );
-<a name="1338" href="#1338">1338</a>                 packageInfoResource.setIncludes( packageInfoIncludes );
-<a name="1339" href="#1339">1339</a>                 resources.add( packageInfoResource );
-<a name="1340" href="#1340">1340</a>             }
-<a name="1341" href="#1341">1341</a>         }
-<a name="1342" href="#1342">1342</a> 
-<a name="1343" href="#1343">1343</a>         <strong class="jxr_keyword">return</strong> resources;
-<a name="1344" href="#1344">1344</a>     }
+<a name="1282" href="#1282">1282</a>                 <strong class="jxr_keyword">if</strong> ( exportedPkgs.length() &gt; 0 )
+<a name="1283" href="#1283">1283</a>                 {
+<a name="1284" href="#1284">1284</a>                     exportedPkgs.append( ';' );
+<a name="1285" href="#1285">1285</a>                 }
+<a name="1286" href="#1286">1286</a>                 exportedPkgs.append( pkg );
+<a name="1287" href="#1287">1287</a>             }
+<a name="1288" href="#1288">1288</a>         }
+<a name="1289" href="#1289">1289</a> 
+<a name="1290" href="#1290">1290</a>         <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.EXPORT_PACKAGE ) == <strong class="jxr_keyword">null</strong> )
+<a name="1291" href="#1291">1291</a>         {
+<a name="1292" href="#1292">1292</a>             <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.EXPORT_CONTENTS ) == <strong class="jxr_keyword">null</strong> )
+<a name="1293" href="#1293">1293</a>             {
+<a name="1294" href="#1294">1294</a>                 <em class="jxr_comment">// no -exportcontents overriding the exports, so use our computed list</em>
+<a name="1295" href="#1295">1295</a>                 analyzer.setProperty( Analyzer.EXPORT_PACKAGE, exportedPkgs + <span class="jxr_string">";-split-package:=merge-first"</span> );
+<a name="1296" href="#1296">1296</a>             }
+<a name="1297" href="#1297">1297</a>             <strong class="jxr_keyword">else</strong>
+<a name="1298" href="#1298">1298</a>             {
+<a name="1299" href="#1299">1299</a>                 <em class="jxr_comment">// leave Export-Package empty (but non-null) as we have -exportcontents</em>
+<a name="1300" href="#1300">1300</a>                 analyzer.setProperty( Analyzer.EXPORT_PACKAGE, <span class="jxr_string">""</span> );
+<a name="1301" href="#1301">1301</a>             }
+<a name="1302" href="#1302">1302</a>         }
+<a name="1303" href="#1303">1303</a>         <strong class="jxr_keyword">else</strong>
+<a name="1304" href="#1304">1304</a>         {
+<a name="1305" href="#1305">1305</a>             String exported = analyzer.getProperty( Analyzer.EXPORT_PACKAGE );
+<a name="1306" href="#1306">1306</a>             <strong class="jxr_keyword">if</strong> ( exported.indexOf( LOCAL_PACKAGES ) &gt;= 0 )
+<a name="1307" href="#1307">1307</a>             {
+<a name="1308" href="#1308">1308</a>                 String newExported = StringUtils.replace( exported, LOCAL_PACKAGES, exportedPkgs.toString() );
+<a name="1309" href="#1309">1309</a>                 analyzer.setProperty( Analyzer.EXPORT_PACKAGE, newExported );
+<a name="1310" href="#1310">1310</a> 
+<a name="1311" href="#1311">1311</a>             }
+<a name="1312" href="#1312">1312</a>         }
+<a name="1313" href="#1313">1313</a> 
+<a name="1314" href="#1314">1314</a>         String internal = analyzer.getProperty( Analyzer.PRIVATE_PACKAGE );
+<a name="1315" href="#1315">1315</a>         <strong class="jxr_keyword">if</strong> ( internal == <strong class="jxr_keyword">null</strong> )
+<a name="1316" href="#1316">1316</a>         {
+<a name="1317" href="#1317">1317</a>             <strong class="jxr_keyword">if</strong> ( privatePkgs.length() &gt; 0 )
+<a name="1318" href="#1318">1318</a>             {
+<a name="1319" href="#1319">1319</a>                 analyzer.setProperty( Analyzer.PRIVATE_PACKAGE, privatePkgs + <span class="jxr_string">";-split-package:=merge-first"</span> );
+<a name="1320" href="#1320">1320</a>             }
+<a name="1321" href="#1321">1321</a>             <strong class="jxr_keyword">else</strong>
+<a name="1322" href="#1322">1322</a>             {
+<a name="1323" href="#1323">1323</a>                 <em class="jxr_comment">// if there are really no private packages then use "!*" as this will keep the Bnd Tool happy</em>
+<a name="1324" href="#1324">1324</a>                 analyzer.setProperty( Analyzer.PRIVATE_PACKAGE, <span class="jxr_string">"!*"</span> );
+<a name="1325" href="#1325">1325</a>             }
+<a name="1326" href="#1326">1326</a>         }
+<a name="1327" href="#1327">1327</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( internal.indexOf( LOCAL_PACKAGES ) &gt;= 0 )
+<a name="1328" href="#1328">1328</a>         {
+<a name="1329" href="#1329">1329</a>             String newInternal = StringUtils.replace( internal, LOCAL_PACKAGES, privatePkgs.toString() );
+<a name="1330" href="#1330">1330</a>             analyzer.setProperty( Analyzer.PRIVATE_PACKAGE, newInternal );
+<a name="1331" href="#1331">1331</a>         }
+<a name="1332" href="#1332">1332</a>     }
+<a name="1333" href="#1333">1333</a> 
+<a name="1334" href="#1334">1334</a> 
+<a name="1335" href="#1335">1335</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getPackageName( String filename )
+<a name="1336" href="#1336">1336</a>     {
+<a name="1337" href="#1337">1337</a>         <strong class="jxr_keyword">int</strong> n = filename.lastIndexOf( File.separatorChar );
+<a name="1338" href="#1338">1338</a>         <strong class="jxr_keyword">return</strong> n &lt; 0 ? <span class="jxr_string">"."</span> : filename.substring( 0, n ).replace( File.separatorChar, '.' );
+<a name="1339" href="#1339">1339</a>     }
+<a name="1340" href="#1340">1340</a> 
+<a name="1341" href="#1341">1341</a> 
+<a name="1342" href="#1342">1342</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List getMavenResources( MavenProject currentProject )
+<a name="1343" href="#1343">1343</a>     {
+<a name="1344" href="#1344">1344</a>         List resources = <strong class="jxr_keyword">new</strong> ArrayList( currentProject.getResources() );
 <a name="1345" href="#1345">1345</a> 
-<a name="1346" href="#1346">1346</a> 
-<a name="1347" href="#1347">1347</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String getMavenResourcePaths( MavenProject currentProject )
-<a name="1348" href="#1348">1348</a>     {
-<a name="1349" href="#1349">1349</a>         <strong class="jxr_keyword">final</strong> String basePath = currentProject.getBasedir().getAbsolutePath();
-<a name="1350" href="#1350">1350</a> 
-<a name="1351" href="#1351">1351</a>         Set pathSet = <strong class="jxr_keyword">new</strong> LinkedHashSet();
-<a name="1352" href="#1352">1352</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = getMavenResources( currentProject ).iterator(); i.hasNext(); )
-<a name="1353" href="#1353">1353</a>         {
-<a name="1354" href="#1354">1354</a>             Resource resource = ( Resource ) i.next();
-<a name="1355" href="#1355">1355</a> 
-<a name="1356" href="#1356">1356</a>             <strong class="jxr_keyword">final</strong> String sourcePath = resource.getDirectory();
-<a name="1357" href="#1357">1357</a>             <strong class="jxr_keyword">final</strong> String targetPath = resource.getTargetPath();
-<a name="1358" href="#1358">1358</a> 
-<a name="1359" href="#1359">1359</a>             <em class="jxr_comment">// ignore empty or non-local resources</em>
-<a name="1360" href="#1360">1360</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">new</strong> File( sourcePath ).exists() &amp;&amp; ( ( targetPath == <strong class="jxr_keyword">null</strong> ) || ( targetPath.indexOf( <span class="jxr_string">".."</span> ) &lt; 0 ) ) )
-<a name="1361" href="#1361">1361</a>             {
-<a name="1362" href="#1362">1362</a>                 DirectoryScanner scanner = <strong class="jxr_keyword">new</strong> DirectoryScanner();
+<a name="1346" href="#1346">1346</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getCompileSourceRoots() != <strong class="jxr_keyword">null</strong> )
+<a name="1347" href="#1347">1347</a>         {
+<a name="1348" href="#1348">1348</a>             <em class="jxr_comment">// also scan for any "packageinfo" files lurking in the source folders</em>
+<a name="1349" href="#1349">1349</a>             List packageInfoIncludes = Collections.singletonList( <span class="jxr_string">"**/packageinfo"</span> );
+<a name="1350" href="#1350">1350</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = currentProject.getCompileSourceRoots().iterator(); i.hasNext(); )
+<a name="1351" href="#1351">1351</a>             {
+<a name="1352" href="#1352">1352</a>                 String sourceRoot = ( String ) i.next();
+<a name="1353" href="#1353">1353</a>                 Resource packageInfoResource = <strong class="jxr_keyword">new</strong> Resource();
+<a name="1354" href="#1354">1354</a>                 packageInfoResource.setDirectory( sourceRoot );
+<a name="1355" href="#1355">1355</a>                 packageInfoResource.setIncludes( packageInfoIncludes );
+<a name="1356" href="#1356">1356</a>                 resources.add( packageInfoResource );
+<a name="1357" href="#1357">1357</a>             }
+<a name="1358" href="#1358">1358</a>         }
+<a name="1359" href="#1359">1359</a> 
+<a name="1360" href="#1360">1360</a>         <strong class="jxr_keyword">return</strong> resources;
+<a name="1361" href="#1361">1361</a>     }
+<a name="1362" href="#1362">1362</a> 
 <a name="1363" href="#1363">1363</a> 
-<a name="1364" href="#1364">1364</a>                 scanner.setBasedir( sourcePath );
-<a name="1365" href="#1365">1365</a>                 <strong class="jxr_keyword">if</strong> ( resource.getIncludes() != <strong class="jxr_keyword">null</strong> &amp;&amp; !resource.getIncludes().isEmpty() )
-<a name="1366" href="#1366">1366</a>                 {
-<a name="1367" href="#1367">1367</a>                     scanner.setIncludes( ( String[] ) resource.getIncludes().toArray( EMPTY_STRING_ARRAY ) );
-<a name="1368" href="#1368">1368</a>                 }
-<a name="1369" href="#1369">1369</a>                 <strong class="jxr_keyword">else</strong>
-<a name="1370" href="#1370">1370</a>                 {
-<a name="1371" href="#1371">1371</a>                     scanner.setIncludes( DEFAULT_INCLUDES );
-<a name="1372" href="#1372">1372</a>                 }
-<a name="1373" href="#1373">1373</a> 
-<a name="1374" href="#1374">1374</a>                 <strong class="jxr_keyword">if</strong> ( resource.getExcludes() != <strong class="jxr_keyword">null</strong> &amp;&amp; !resource.getExcludes().isEmpty() )
-<a name="1375" href="#1375">1375</a>                 {
-<a name="1376" href="#1376">1376</a>                     scanner.setExcludes( ( String[] ) resource.getExcludes().toArray( EMPTY_STRING_ARRAY ) );
-<a name="1377" href="#1377">1377</a>                 }
-<a name="1378" href="#1378">1378</a> 
-<a name="1379" href="#1379">1379</a>                 scanner.addDefaultExcludes();
-<a name="1380" href="#1380">1380</a>                 scanner.scan();
-<a name="1381" href="#1381">1381</a> 
-<a name="1382" href="#1382">1382</a>                 List includedFiles = Arrays.asList( scanner.getIncludedFiles() );
-<a name="1383" href="#1383">1383</a> 
-<a name="1384" href="#1384">1384</a>                 <strong class="jxr_keyword">for</strong> ( Iterator j = includedFiles.iterator(); j.hasNext(); )
-<a name="1385" href="#1385">1385</a>                 {
-<a name="1386" href="#1386">1386</a>                     String name = ( String ) j.next();
-<a name="1387" href="#1387">1387</a>                     String path = sourcePath + '/' + name;
-<a name="1388" href="#1388">1388</a> 
-<a name="1389" href="#1389">1389</a>                     <em class="jxr_comment">// make relative to project</em>
-<a name="1390" href="#1390">1390</a>                     <strong class="jxr_keyword">if</strong> ( path.startsWith( basePath ) )
-<a name="1391" href="#1391">1391</a>                     {
-<a name="1392" href="#1392">1392</a>                         <strong class="jxr_keyword">if</strong> ( path.length() == basePath.length() )
-<a name="1393" href="#1393">1393</a>                         {
-<a name="1394" href="#1394">1394</a>                             path = <span class="jxr_string">"."</span>;
-<a name="1395" href="#1395">1395</a>                         }
-<a name="1396" href="#1396">1396</a>                         <strong class="jxr_keyword">else</strong>
-<a name="1397" href="#1397">1397</a>                         {
-<a name="1398" href="#1398">1398</a>                             path = path.substring( basePath.length() + 1 );
-<a name="1399" href="#1399">1399</a>                         }
-<a name="1400" href="#1400">1400</a>                     }
-<a name="1401" href="#1401">1401</a> 
-<a name="1402" href="#1402">1402</a>                     <em class="jxr_comment">// replace windows backslash with a slash</em>
-<a name="1403" href="#1403">1403</a>                     <em class="jxr_comment">// this is a workaround for a problem with bnd 0.0.189</em>
-<a name="1404" href="#1404">1404</a>                     <strong class="jxr_keyword">if</strong> ( File.separatorChar != '/' )
-<a name="1405" href="#1405">1405</a>                     {
-<a name="1406" href="#1406">1406</a>                         name = name.replace( File.separatorChar, '/' );
-<a name="1407" href="#1407">1407</a>                         path = path.replace( File.separatorChar, '/' );
-<a name="1408" href="#1408">1408</a>                     }
-<a name="1409" href="#1409">1409</a> 
-<a name="1410" href="#1410">1410</a>                     <em class="jxr_comment">// copy to correct place</em>
-<a name="1411" href="#1411">1411</a>                     path = name + '=' + path;
-<a name="1412" href="#1412">1412</a>                     <strong class="jxr_keyword">if</strong> ( targetPath != <strong class="jxr_keyword">null</strong> )
-<a name="1413" href="#1413">1413</a>                     {
-<a name="1414" href="#1414">1414</a>                         path = targetPath + '/' + path;
-<a name="1415" href="#1415">1415</a>                     }
-<a name="1416" href="#1416">1416</a> 
-<a name="1417" href="#1417">1417</a>                     <em class="jxr_comment">// use Bnd filtering?</em>
-<a name="1418" href="#1418">1418</a>                     <strong class="jxr_keyword">if</strong> ( resource.isFiltering() )
-<a name="1419" href="#1419">1419</a>                     {
-<a name="1420" href="#1420">1420</a>                         path = '{' + path + '}';
-<a name="1421" href="#1421">1421</a>                     }
-<a name="1422" href="#1422">1422</a> 
-<a name="1423" href="#1423">1423</a>                     pathSet.add( path );
-<a name="1424" href="#1424">1424</a>                 }
-<a name="1425" href="#1425">1425</a>             }
-<a name="1426" href="#1426">1426</a>         }
-<a name="1427" href="#1427">1427</a> 
-<a name="1428" href="#1428">1428</a>         StringBuffer resourcePaths = <strong class="jxr_keyword">new</strong> StringBuffer();
-<a name="1429" href="#1429">1429</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = pathSet.iterator(); i.hasNext(); )
-<a name="1430" href="#1430">1430</a>         {
-<a name="1431" href="#1431">1431</a>             resourcePaths.append( i.next() );
-<a name="1432" href="#1432">1432</a>             <strong class="jxr_keyword">if</strong> ( i.hasNext() )
-<a name="1433" href="#1433">1433</a>             {
-<a name="1434" href="#1434">1434</a>                 resourcePaths.append( ',' );
-<a name="1435" href="#1435">1435</a>             }
-<a name="1436" href="#1436">1436</a>         }
-<a name="1437" href="#1437">1437</a> 
-<a name="1438" href="#1438">1438</a>         <strong class="jxr_keyword">return</strong> resourcePaths.toString();
-<a name="1439" href="#1439">1439</a>     }
-<a name="1440" href="#1440">1440</a> 
-<a name="1441" href="#1441">1441</a> 
-<a name="1442" href="#1442">1442</a>     <strong class="jxr_keyword">protected</strong> Collection getEmbeddableArtifacts( MavenProject currentProject, Analyzer analyzer )
-<a name="1443" href="#1443">1443</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="1444" href="#1444">1444</a>     {
-<a name="1445" href="#1445">1445</a>         <strong class="jxr_keyword">final</strong> Collection artifacts;
-<a name="1446" href="#1446">1446</a> 
-<a name="1447" href="#1447">1447</a>         String embedTransitive = analyzer.getProperty( DependencyEmbedder.EMBED_TRANSITIVE );
-<a name="1448" href="#1448">1448</a>         <strong class="jxr_keyword">if</strong> ( Boolean.valueOf( embedTransitive ).booleanValue() )
-<a name="1449" href="#1449">1449</a>         {
-<a name="1450" href="#1450">1450</a>             <em class="jxr_comment">// includes transitive dependencies</em>
-<a name="1451" href="#1451">1451</a>             artifacts = currentProject.getArtifacts();
-<a name="1452" href="#1452">1452</a>         }
-<a name="1453" href="#1453">1453</a>         <strong class="jxr_keyword">else</strong>
-<a name="1454" href="#1454">1454</a>         {
-<a name="1455" href="#1455">1455</a>             <em class="jxr_comment">// only includes direct dependencies</em>
-<a name="1456" href="#1456">1456</a>             artifacts = currentProject.getDependencyArtifacts();
-<a name="1457" href="#1457">1457</a>         }
+<a name="1364" href="#1364">1364</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String getMavenResourcePaths( MavenProject currentProject )
+<a name="1365" href="#1365">1365</a>     {
+<a name="1366" href="#1366">1366</a>         <strong class="jxr_keyword">final</strong> String basePath = currentProject.getBasedir().getAbsolutePath();
+<a name="1367" href="#1367">1367</a> 
+<a name="1368" href="#1368">1368</a>         Set pathSet = <strong class="jxr_keyword">new</strong> LinkedHashSet();
+<a name="1369" href="#1369">1369</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = getMavenResources( currentProject ).iterator(); i.hasNext(); )
+<a name="1370" href="#1370">1370</a>         {
+<a name="1371" href="#1371">1371</a>             Resource resource = ( Resource ) i.next();
+<a name="1372" href="#1372">1372</a> 
+<a name="1373" href="#1373">1373</a>             <strong class="jxr_keyword">final</strong> String sourcePath = resource.getDirectory();
+<a name="1374" href="#1374">1374</a>             <strong class="jxr_keyword">final</strong> String targetPath = resource.getTargetPath();
+<a name="1375" href="#1375">1375</a> 
+<a name="1376" href="#1376">1376</a>             <em class="jxr_comment">// ignore empty or non-local resources</em>
+<a name="1377" href="#1377">1377</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">new</strong> File( sourcePath ).exists() &amp;&amp; ( ( targetPath == <strong class="jxr_keyword">null</strong> ) || ( targetPath.indexOf( <span class="jxr_string">".."</span> ) &lt; 0 ) ) )
+<a name="1378" href="#1378">1378</a>             {
+<a name="1379" href="#1379">1379</a>                 DirectoryScanner scanner = <strong class="jxr_keyword">new</strong> DirectoryScanner();
+<a name="1380" href="#1380">1380</a> 
+<a name="1381" href="#1381">1381</a>                 scanner.setBasedir( sourcePath );
+<a name="1382" href="#1382">1382</a>                 <strong class="jxr_keyword">if</strong> ( resource.getIncludes() != <strong class="jxr_keyword">null</strong> &amp;&amp; !resource.getIncludes().isEmpty() )
+<a name="1383" href="#1383">1383</a>                 {
+<a name="1384" href="#1384">1384</a>                     scanner.setIncludes( ( String[] ) resource.getIncludes().toArray( EMPTY_STRING_ARRAY ) );
+<a name="1385" href="#1385">1385</a>                 }
+<a name="1386" href="#1386">1386</a>                 <strong class="jxr_keyword">else</strong>
+<a name="1387" href="#1387">1387</a>                 {
+<a name="1388" href="#1388">1388</a>                     scanner.setIncludes( DEFAULT_INCLUDES );
+<a name="1389" href="#1389">1389</a>                 }
+<a name="1390" href="#1390">1390</a> 
+<a name="1391" href="#1391">1391</a>                 <strong class="jxr_keyword">if</strong> ( resource.getExcludes() != <strong class="jxr_keyword">null</strong> &amp;&amp; !resource.getExcludes().isEmpty() )
+<a name="1392" href="#1392">1392</a>                 {
+<a name="1393" href="#1393">1393</a>                     scanner.setExcludes( ( String[] ) resource.getExcludes().toArray( EMPTY_STRING_ARRAY ) );
+<a name="1394" href="#1394">1394</a>                 }
+<a name="1395" href="#1395">1395</a> 
+<a name="1396" href="#1396">1396</a>                 scanner.addDefaultExcludes();
+<a name="1397" href="#1397">1397</a>                 scanner.scan();
+<a name="1398" href="#1398">1398</a> 
+<a name="1399" href="#1399">1399</a>                 List includedFiles = Arrays.asList( scanner.getIncludedFiles() );
+<a name="1400" href="#1400">1400</a> 
+<a name="1401" href="#1401">1401</a>                 <strong class="jxr_keyword">for</strong> ( Iterator j = includedFiles.iterator(); j.hasNext(); )
+<a name="1402" href="#1402">1402</a>                 {
+<a name="1403" href="#1403">1403</a>                     String name = ( String ) j.next();
+<a name="1404" href="#1404">1404</a>                     String path = sourcePath + '/' + name;
+<a name="1405" href="#1405">1405</a> 
+<a name="1406" href="#1406">1406</a>                     <em class="jxr_comment">// make relative to project</em>
+<a name="1407" href="#1407">1407</a>                     <strong class="jxr_keyword">if</strong> ( path.startsWith( basePath ) )
+<a name="1408" href="#1408">1408</a>                     {
+<a name="1409" href="#1409">1409</a>                         <strong class="jxr_keyword">if</strong> ( path.length() == basePath.length() )
+<a name="1410" href="#1410">1410</a>                         {
+<a name="1411" href="#1411">1411</a>                             path = <span class="jxr_string">"."</span>;
+<a name="1412" href="#1412">1412</a>                         }
+<a name="1413" href="#1413">1413</a>                         <strong class="jxr_keyword">else</strong>
+<a name="1414" href="#1414">1414</a>                         {
+<a name="1415" href="#1415">1415</a>                             path = path.substring( basePath.length() + 1 );
+<a name="1416" href="#1416">1416</a>                         }
+<a name="1417" href="#1417">1417</a>                     }
+<a name="1418" href="#1418">1418</a> 
+<a name="1419" href="#1419">1419</a>                     <em class="jxr_comment">// replace windows backslash with a slash</em>
+<a name="1420" href="#1420">1420</a>                     <em class="jxr_comment">// this is a workaround for a problem with bnd 0.0.189</em>
+<a name="1421" href="#1421">1421</a>                     <strong class="jxr_keyword">if</strong> ( File.separatorChar != '/' )
+<a name="1422" href="#1422">1422</a>                     {
+<a name="1423" href="#1423">1423</a>                         name = name.replace( File.separatorChar, '/' );
+<a name="1424" href="#1424">1424</a>                         path = path.replace( File.separatorChar, '/' );
+<a name="1425" href="#1425">1425</a>                     }
+<a name="1426" href="#1426">1426</a> 
+<a name="1427" href="#1427">1427</a>                     <em class="jxr_comment">// copy to correct place</em>
+<a name="1428" href="#1428">1428</a>                     path = name + '=' + path;
+<a name="1429" href="#1429">1429</a>                     <strong class="jxr_keyword">if</strong> ( targetPath != <strong class="jxr_keyword">null</strong> )
+<a name="1430" href="#1430">1430</a>                     {
+<a name="1431" href="#1431">1431</a>                         path = targetPath + '/' + path;
+<a name="1432" href="#1432">1432</a>                     }
+<a name="1433" href="#1433">1433</a> 
+<a name="1434" href="#1434">1434</a>                     <em class="jxr_comment">// use Bnd filtering?</em>
+<a name="1435" href="#1435">1435</a>                     <strong class="jxr_keyword">if</strong> ( resource.isFiltering() )
+<a name="1436" href="#1436">1436</a>                     {
+<a name="1437" href="#1437">1437</a>                         path = '{' + path + '}';
+<a name="1438" href="#1438">1438</a>                     }
+<a name="1439" href="#1439">1439</a> 
+<a name="1440" href="#1440">1440</a>                     pathSet.add( path );
+<a name="1441" href="#1441">1441</a>                 }
+<a name="1442" href="#1442">1442</a>             }
+<a name="1443" href="#1443">1443</a>         }
+<a name="1444" href="#1444">1444</a> 
+<a name="1445" href="#1445">1445</a>         StringBuffer resourcePaths = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="1446" href="#1446">1446</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = pathSet.iterator(); i.hasNext(); )
+<a name="1447" href="#1447">1447</a>         {
+<a name="1448" href="#1448">1448</a>             resourcePaths.append( i.next() );
+<a name="1449" href="#1449">1449</a>             <strong class="jxr_keyword">if</strong> ( i.hasNext() )
+<a name="1450" href="#1450">1450</a>             {
+<a name="1451" href="#1451">1451</a>                 resourcePaths.append( ',' );
+<a name="1452" href="#1452">1452</a>             }
+<a name="1453" href="#1453">1453</a>         }
+<a name="1454" href="#1454">1454</a> 
+<a name="1455" href="#1455">1455</a>         <strong class="jxr_keyword">return</strong> resourcePaths.toString();
+<a name="1456" href="#1456">1456</a>     }
+<a name="1457" href="#1457">1457</a> 
 <a name="1458" href="#1458">1458</a> 
-<a name="1459" href="#1459">1459</a>         <strong class="jxr_keyword">return</strong> getSelectedDependencies( artifacts );
-<a name="1460" href="#1460">1460</a>     }
-<a name="1461" href="#1461">1461</a> 
-<a name="1462" href="#1462">1462</a> 
-<a name="1463" href="#1463">1463</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> addMavenSourcePath( MavenProject currentProject, Analyzer analyzer, Log log )
-<a name="1464" href="#1464">1464</a>     {
-<a name="1465" href="#1465">1465</a>         <em class="jxr_comment">// pass maven source paths onto BND analyzer</em>
-<a name="1466" href="#1466">1466</a>         StringBuilder mavenSourcePaths = <strong class="jxr_keyword">new</strong> StringBuilder();
-<a name="1467" href="#1467">1467</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getCompileSourceRoots() != <strong class="jxr_keyword">null</strong> )
-<a name="1468" href="#1468">1468</a>         {
-<a name="1469" href="#1469">1469</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = currentProject.getCompileSourceRoots().iterator(); i.hasNext(); )
-<a name="1470" href="#1470">1470</a>             {
-<a name="1471" href="#1471">1471</a>                 <strong class="jxr_keyword">if</strong> ( mavenSourcePaths.length() &gt; 0 )
-<a name="1472" href="#1472">1472</a>                 {
-<a name="1473" href="#1473">1473</a>                     mavenSourcePaths.append( ',' );
-<a name="1474" href="#1474">1474</a>                 }
-<a name="1475" href="#1475">1475</a>                 mavenSourcePaths.append( ( String ) i.next() );
-<a name="1476" href="#1476">1476</a>             }
-<a name="1477" href="#1477">1477</a>         }
-<a name="1478" href="#1478">1478</a>         <strong class="jxr_keyword">final</strong> String sourcePath = ( String ) analyzer.getProperty( Analyzer.SOURCEPATH );
-<a name="1479" href="#1479">1479</a>         <strong class="jxr_keyword">if</strong> ( sourcePath != <strong class="jxr_keyword">null</strong> )
-<a name="1480" href="#1480">1480</a>         {
-<a name="1481" href="#1481">1481</a>             <strong class="jxr_keyword">if</strong> ( sourcePath.indexOf( MAVEN_SOURCES ) &gt;= 0 )
-<a name="1482" href="#1482">1482</a>             {
-<a name="1483" href="#1483">1483</a>                 <em class="jxr_comment">// if there is no maven source path, we do a special treatment and replace</em>
-<a name="1484" href="#1484">1484</a>                 <em class="jxr_comment">// every occurance of MAVEN_SOURCES and a following comma with an empty string</em>
-<a name="1485" href="#1485">1485</a>                 <strong class="jxr_keyword">if</strong> ( mavenSourcePaths.length() == 0 )
-<a name="1486" href="#1486">1486</a>                 {
-<a name="1487" href="#1487">1487</a>                     String cleanedSource = removeTagFromInstruction( sourcePath, MAVEN_SOURCES );
-<a name="1488" href="#1488">1488</a>                     <strong class="jxr_keyword">if</strong> ( cleanedSource.length() &gt; 0 )
-<a name="1489" href="#1489">1489</a>                     {
-<a name="1490" href="#1490">1490</a>                         analyzer.setProperty( Analyzer.SOURCEPATH, cleanedSource );
-<a name="1491" href="#1491">1491</a>                     }
-<a name="1492" href="#1492">1492</a>                     <strong class="jxr_keyword">else</strong>
-<a name="1493" href="#1493">1493</a>                     {
-<a name="1494" href="#1494">1494</a>                         analyzer.unsetProperty( Analyzer.SOURCEPATH );
-<a name="1495" href="#1495">1495</a>                     }
-<a name="1496" href="#1496">1496</a>                 }
-<a name="1497" href="#1497">1497</a>                 <strong class="jxr_keyword">else</strong>
-<a name="1498" href="#1498">1498</a>                 {
-<a name="1499" href="#1499">1499</a>                     String combinedSource = StringUtils
-<a name="1500" href="#1500">1500</a>                         .replace( sourcePath, MAVEN_SOURCES, mavenSourcePaths.toString() );
-<a name="1501" href="#1501">1501</a>                     analyzer.setProperty( Analyzer.SOURCEPATH, combinedSource );
-<a name="1502" href="#1502">1502</a>                 }
-<a name="1503" href="#1503">1503</a>             }
-<a name="1504" href="#1504">1504</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenSourcePaths.length() &gt; 0 )
-<a name="1505" href="#1505">1505</a>             {
-<a name="1506" href="#1506">1506</a>                 log.warn( Analyzer.SOURCEPATH + <span class="jxr_string">": overriding "</span> + mavenSourcePaths + <span class="jxr_string">" with "</span> + sourcePath + <span class="jxr_string">" (add "</span>
-<a name="1507" href="#1507">1507</a>                     + MAVEN_SOURCES + <span class="jxr_string">" if you want to include the maven sources)"</span> );
-<a name="1508" href="#1508">1508</a>             }
-<a name="1509" href="#1509">1509</a>         }
-<a name="1510" href="#1510">1510</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenSourcePaths.length() &gt; 0 )
-<a name="1511" href="#1511">1511</a>         {
-<a name="1512" href="#1512">1512</a>             analyzer.setProperty( Analyzer.SOURCEPATH, mavenSourcePaths.toString() );
-<a name="1513" href="#1513">1513</a>         }
-<a name="1514" href="#1514">1514</a>     }
-<a name="1515" href="#1515">1515</a> }
+<a name="1459" href="#1459">1459</a>     <strong class="jxr_keyword">protected</strong> Collection getEmbeddableArtifacts( MavenProject currentProject, Analyzer analyzer )
+<a name="1460" href="#1460">1460</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="1461" href="#1461">1461</a>     {
+<a name="1462" href="#1462">1462</a>         <strong class="jxr_keyword">final</strong> Collection artifacts;
+<a name="1463" href="#1463">1463</a> 
+<a name="1464" href="#1464">1464</a>         String embedTransitive = analyzer.getProperty( DependencyEmbedder.EMBED_TRANSITIVE );
+<a name="1465" href="#1465">1465</a>         <strong class="jxr_keyword">if</strong> ( Boolean.valueOf( embedTransitive ).booleanValue() )
+<a name="1466" href="#1466">1466</a>         {
+<a name="1467" href="#1467">1467</a>             <em class="jxr_comment">// includes transitive dependencies</em>
+<a name="1468" href="#1468">1468</a>             artifacts = currentProject.getArtifacts();
+<a name="1469" href="#1469">1469</a>         }
+<a name="1470" href="#1470">1470</a>         <strong class="jxr_keyword">else</strong>
+<a name="1471" href="#1471">1471</a>         {
+<a name="1472" href="#1472">1472</a>             <em class="jxr_comment">// only includes direct dependencies</em>
+<a name="1473" href="#1473">1473</a>             artifacts = currentProject.getDependencyArtifacts();
+<a name="1474" href="#1474">1474</a>         }
+<a name="1475" href="#1475">1475</a> 
+<a name="1476" href="#1476">1476</a>         <strong class="jxr_keyword">return</strong> getSelectedDependencies( artifacts );
+<a name="1477" href="#1477">1477</a>     }
+<a name="1478" href="#1478">1478</a> 
+<a name="1479" href="#1479">1479</a> 
+<a name="1480" href="#1480">1480</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> addMavenSourcePath( MavenProject currentProject, Analyzer analyzer, Log log )
+<a name="1481" href="#1481">1481</a>     {
+<a name="1482" href="#1482">1482</a>         <em class="jxr_comment">// pass maven source paths onto BND analyzer</em>
+<a name="1483" href="#1483">1483</a>         StringBuilder mavenSourcePaths = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a name="1484" href="#1484">1484</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getCompileSourceRoots() != <strong class="jxr_keyword">null</strong> )
+<a name="1485" href="#1485">1485</a>         {
+<a name="1486" href="#1486">1486</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = currentProject.getCompileSourceRoots().iterator(); i.hasNext(); )
+<a name="1487" href="#1487">1487</a>             {
+<a name="1488" href="#1488">1488</a>                 <strong class="jxr_keyword">if</strong> ( mavenSourcePaths.length() &gt; 0 )
+<a name="1489" href="#1489">1489</a>                 {
+<a name="1490" href="#1490">1490</a>                     mavenSourcePaths.append( ',' );
+<a name="1491" href="#1491">1491</a>                 }
+<a name="1492" href="#1492">1492</a>                 mavenSourcePaths.append( ( String ) i.next() );
+<a name="1493" href="#1493">1493</a>             }
+<a name="1494" href="#1494">1494</a>         }
+<a name="1495" href="#1495">1495</a>         <strong class="jxr_keyword">final</strong> String sourcePath = ( String ) analyzer.getProperty( Analyzer.SOURCEPATH );
+<a name="1496" href="#1496">1496</a>         <strong class="jxr_keyword">if</strong> ( sourcePath != <strong class="jxr_keyword">null</strong> )
+<a name="1497" href="#1497">1497</a>         {
+<a name="1498" href="#1498">1498</a>             <strong class="jxr_keyword">if</strong> ( sourcePath.indexOf( MAVEN_SOURCES ) &gt;= 0 )
+<a name="1499" href="#1499">1499</a>             {
+<a name="1500" href="#1500">1500</a>                 <em class="jxr_comment">// if there is no maven source path, we do a special treatment and replace</em>
+<a name="1501" href="#1501">1501</a>                 <em class="jxr_comment">// every occurance of MAVEN_SOURCES and a following comma with an empty string</em>
+<a name="1502" href="#1502">1502</a>                 <strong class="jxr_keyword">if</strong> ( mavenSourcePaths.length() == 0 )
+<a name="1503" href="#1503">1503</a>                 {
+<a name="1504" href="#1504">1504</a>                     String cleanedSource = removeTagFromInstruction( sourcePath, MAVEN_SOURCES );
+<a name="1505" href="#1505">1505</a>                     <strong class="jxr_keyword">if</strong> ( cleanedSource.length() &gt; 0 )
+<a name="1506" href="#1506">1506</a>                     {
+<a name="1507" href="#1507">1507</a>                         analyzer.setProperty( Analyzer.SOURCEPATH, cleanedSource );
+<a name="1508" href="#1508">1508</a>                     }
+<a name="1509" href="#1509">1509</a>                     <strong class="jxr_keyword">else</strong>
+<a name="1510" href="#1510">1510</a>                     {
+<a name="1511" href="#1511">1511</a>                         analyzer.unsetProperty( Analyzer.SOURCEPATH );
+<a name="1512" href="#1512">1512</a>                     }
+<a name="1513" href="#1513">1513</a>                 }
+<a name="1514" href="#1514">1514</a>                 <strong class="jxr_keyword">else</strong>
+<a name="1515" href="#1515">1515</a>                 {
+<a name="1516" href="#1516">1516</a>                     String combinedSource = StringUtils
+<a name="1517" href="#1517">1517</a>                         .replace( sourcePath, MAVEN_SOURCES, mavenSourcePaths.toString() );
+<a name="1518" href="#1518">1518</a>                     analyzer.setProperty( Analyzer.SOURCEPATH, combinedSource );
+<a name="1519" href="#1519">1519</a>                 }
+<a name="1520" href="#1520">1520</a>             }
+<a name="1521" href="#1521">1521</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenSourcePaths.length() &gt; 0 )
+<a name="1522" href="#1522">1522</a>             {
+<a name="1523" href="#1523">1523</a>                 log.warn( Analyzer.SOURCEPATH + <span class="jxr_string">": overriding "</span> + mavenSourcePaths + <span class="jxr_string">" with "</span> + sourcePath + <span class="jxr_string">" (add "</span>
+<a name="1524" href="#1524">1524</a>                     + MAVEN_SOURCES + <span class="jxr_string">" if you want to include the maven sources)"</span> );
+<a name="1525" href="#1525">1525</a>             }
+<a name="1526" href="#1526">1526</a>         }
+<a name="1527" href="#1527">1527</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenSourcePaths.length() &gt; 0 )
+<a name="1528" href="#1528">1528</a>         {
+<a name="1529" href="#1529">1529</a>             analyzer.setProperty( Analyzer.SOURCEPATH, mavenSourcePaths.toString() );
+<a name="1530" href="#1530">1530</a>         }
+<a name="1531" href="#1531">1531</a>     }
+<a name="1532" href="#1532">1532</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/org/apache/felix/bundleplugin/ManifestPlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/ManifestPlugin.html
index 889091e..42eb4d2 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/ManifestPlugin.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/ManifestPlugin.html
@@ -34,202 +34,254 @@
 <a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.FileOutputStream;
 <a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
 <a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.io.OutputStream;
-<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
-<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
-<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.Map.Entry;
-<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
-<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Manifest;
-<a name="32" href="#32">32</a>  
-<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
-<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoFailureException;
-<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
-<a name="36" href="#36">36</a>  
-<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
-<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Builder;
-<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
-<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Resource;
-<a name="41" href="#41">41</a>  
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Map.Entry;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
+<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.plugin.MojoExecutionException;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoFailureException;
+<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>  
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
+<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Builder;
+<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
+<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Resource;
 <a name="42" href="#42">42</a>  
-<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment">/**</em>
-<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> * Generate an OSGi manifest for this project</em>
-<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> * </em>
-<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * @goal manifest</em>
-<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * @phase process-classes</em>
-<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * @requiresDependencyResolution test</em>
-<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * @threadSafe</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/ManifestPlugin.html">ManifestPlugin</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/BundlePlugin.html">BundlePlugin</a>
-<a name="52" href="#52">52</a>  {
-<a name="53" href="#53">53</a>      <em class="jxr_javadoccomment">/**</em>
-<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     * When true, generate the manifest by rebuilding the full bundle in memory </em>
-<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment">     *</em>
-<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     * @parameter expression="${rebuildBundle}"</em>
-<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     */</em>
-<a name="58" href="#58">58</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> rebuildBundle;
-<a name="59" href="#59">59</a>  
+<a name="43" href="#43">43</a>  
+<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> * Generate an OSGi manifest for this project</em>
+<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * @goal manifest</em>
+<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * @phase process-classes</em>
+<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * @requiresDependencyResolution test</em>
+<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> * @threadSafe</em>
+<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="52" href="#52">52</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/ManifestPlugin.html">ManifestPlugin</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/BundlePlugin.html">BundlePlugin</a>
+<a name="53" href="#53">53</a>  {
+<a name="54" href="#54">54</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment">     * When true, generate the manifest by rebuilding the full bundle in memory </em>
+<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * @parameter expression="${rebuildBundle}"</em>
+<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="59" href="#59">59</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> rebuildBundle;
 <a name="60" href="#60">60</a>  
-<a name="61" href="#61">61</a>      @Override
-<a name="62" href="#62">62</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject project, Map instructions, Properties properties, Jar[] classpath )
-<a name="63" href="#63">63</a>          <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="64" href="#64">64</a>      {
-<a name="65" href="#65">65</a>          Manifest manifest;
-<a name="66" href="#66">66</a>          <strong class="jxr_keyword">try</strong>
-<a name="67" href="#67">67</a>          {
-<a name="68" href="#68">68</a>              manifest = getManifest( project, instructions, properties, classpath );
-<a name="69" href="#69">69</a>          }
-<a name="70" href="#70">70</a>          <strong class="jxr_keyword">catch</strong> ( FileNotFoundException e )
-<a name="71" href="#71">71</a>          {
-<a name="72" href="#72">72</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Cannot find "</span> + e.getMessage()
-<a name="73" href="#73">73</a>                  + <span class="jxr_string">" (manifest goal must be run after compile phase)"</span>, e );
-<a name="74" href="#74">74</a>          }
-<a name="75" href="#75">75</a>          <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="76" href="#76">76</a>          {
-<a name="77" href="#77">77</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error trying to generate Manifest"</span>, e );
-<a name="78" href="#78">78</a>          }
-<a name="79" href="#79">79</a>          <strong class="jxr_keyword">catch</strong> ( MojoFailureException e )
-<a name="80" href="#80">80</a>          {
-<a name="81" href="#81">81</a>              getLog().error( e.getLocalizedMessage() );
-<a name="82" href="#82">82</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error(s) found in manifest configuration"</span>, e );
-<a name="83" href="#83">83</a>          }
-<a name="84" href="#84">84</a>          <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="85" href="#85">85</a>          {
-<a name="86" href="#86">86</a>              getLog().error( <span class="jxr_string">"An internal error occurred"</span>, e );
-<a name="87" href="#87">87</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Internal error in maven-bundle-plugin"</span>, e );
-<a name="88" href="#88">88</a>          }
-<a name="89" href="#89">89</a>  
-<a name="90" href="#90">90</a>          File outputFile = <strong class="jxr_keyword">new</strong> File( manifestLocation, <span class="jxr_string">"MANIFEST.MF"</span> );
-<a name="91" href="#91">91</a>  
-<a name="92" href="#92">92</a>          <strong class="jxr_keyword">try</strong>
-<a name="93" href="#93">93</a>          {
-<a name="94" href="#94">94</a>              writeManifest( manifest, outputFile );
-<a name="95" href="#95">95</a>          }
-<a name="96" href="#96">96</a>          <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="97" href="#97">97</a>          {
-<a name="98" href="#98">98</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error trying to write Manifest to file "</span> + outputFile, e );
-<a name="99" href="#99">99</a>          }
-<a name="100" href="#100">100</a>     }
-<a name="101" href="#101">101</a> 
+<a name="61" href="#61">61</a>  
+<a name="62" href="#62">62</a>      @Override
+<a name="63" href="#63">63</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject project, Map instructions, Properties properties, Jar[] classpath )
+<a name="64" href="#64">64</a>          <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="65" href="#65">65</a>      {
+<a name="66" href="#66">66</a>          Manifest manifest;
+<a name="67" href="#67">67</a>          <strong class="jxr_keyword">try</strong>
+<a name="68" href="#68">68</a>          {
+<a name="69" href="#69">69</a>              manifest = getManifest( project, instructions, properties, classpath );
+<a name="70" href="#70">70</a>          }
+<a name="71" href="#71">71</a>          <strong class="jxr_keyword">catch</strong> ( FileNotFoundException e )
+<a name="72" href="#72">72</a>          {
+<a name="73" href="#73">73</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Cannot find "</span> + e.getMessage()
+<a name="74" href="#74">74</a>                  + <span class="jxr_string">" (manifest goal must be run after compile phase)"</span>, e );
+<a name="75" href="#75">75</a>          }
+<a name="76" href="#76">76</a>          <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="77" href="#77">77</a>          {
+<a name="78" href="#78">78</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error trying to generate Manifest"</span>, e );
+<a name="79" href="#79">79</a>          }
+<a name="80" href="#80">80</a>          <strong class="jxr_keyword">catch</strong> ( MojoFailureException e )
+<a name="81" href="#81">81</a>          {
+<a name="82" href="#82">82</a>              getLog().error( e.getLocalizedMessage() );
+<a name="83" href="#83">83</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error(s) found in manifest configuration"</span>, e );
+<a name="84" href="#84">84</a>          }
+<a name="85" href="#85">85</a>          <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="86" href="#86">86</a>          {
+<a name="87" href="#87">87</a>              getLog().error( <span class="jxr_string">"An internal error occurred"</span>, e );
+<a name="88" href="#88">88</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Internal error in maven-bundle-plugin"</span>, e );
+<a name="89" href="#89">89</a>          }
+<a name="90" href="#90">90</a>  
+<a name="91" href="#91">91</a>          File outputFile = <strong class="jxr_keyword">new</strong> File( manifestLocation, <span class="jxr_string">"MANIFEST.MF"</span> );
+<a name="92" href="#92">92</a>  
+<a name="93" href="#93">93</a>          <strong class="jxr_keyword">try</strong>
+<a name="94" href="#94">94</a>          {
+<a name="95" href="#95">95</a>              writeManifest( manifest, outputFile );
+<a name="96" href="#96">96</a>          }
+<a name="97" href="#97">97</a>          <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="98" href="#98">98</a>          {
+<a name="99" href="#99">99</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error trying to write Manifest to file "</span> + outputFile, e );
+<a name="100" href="#100">100</a>         }
+<a name="101" href="#101">101</a>     }
 <a name="102" href="#102">102</a> 
-<a name="103" href="#103">103</a>     <strong class="jxr_keyword">public</strong> Manifest getManifest( MavenProject project, Jar[] classpath ) <strong class="jxr_keyword">throws</strong> IOException, MojoFailureException,
-<a name="104" href="#104">104</a>         MojoExecutionException, Exception
-<a name="105" href="#105">105</a>     {
-<a name="106" href="#106">106</a>         <strong class="jxr_keyword">return</strong> getManifest( project, <strong class="jxr_keyword">new</strong> LinkedHashMap(), <strong class="jxr_keyword">new</strong> Properties(), classpath );
-<a name="107" href="#107">107</a>     }
-<a name="108" href="#108">108</a> 
+<a name="103" href="#103">103</a> 
+<a name="104" href="#104">104</a>     <strong class="jxr_keyword">public</strong> Manifest getManifest( MavenProject project, Jar[] classpath ) <strong class="jxr_keyword">throws</strong> IOException, MojoFailureException,
+<a name="105" href="#105">105</a>         MojoExecutionException, Exception
+<a name="106" href="#106">106</a>     {
+<a name="107" href="#107">107</a>         <strong class="jxr_keyword">return</strong> getManifest( project, <strong class="jxr_keyword">new</strong> LinkedHashMap(), <strong class="jxr_keyword">new</strong> Properties(), classpath );
+<a name="108" href="#108">108</a>     }
 <a name="109" href="#109">109</a> 
-<a name="110" href="#110">110</a>     <strong class="jxr_keyword">public</strong> Manifest getManifest( MavenProject project, Map instructions, Properties properties, Jar[] classpath )
-<a name="111" href="#111">111</a>         <strong class="jxr_keyword">throws</strong> IOException, MojoFailureException, MojoExecutionException, Exception
-<a name="112" href="#112">112</a>     {
-<a name="113" href="#113">113</a>         Analyzer analyzer = getAnalyzer( project, instructions, properties, classpath );
-<a name="114" href="#114">114</a>         <strong class="jxr_keyword">boolean</strong> hasErrors = reportErrors( <span class="jxr_string">"Manifest "</span> + project.getArtifact(), analyzer );
-<a name="115" href="#115">115</a>         <strong class="jxr_keyword">if</strong> ( hasErrors )
-<a name="116" href="#116">116</a>         {
-<a name="117" href="#117">117</a>             String failok = analyzer.getProperty( <span class="jxr_string">"-failok"</span> );
-<a name="118" href="#118">118</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == failok || <span class="jxr_string">"false"</span>.equalsIgnoreCase( failok ) )
-<a name="119" href="#119">119</a>             {
-<a name="120" href="#120">120</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoFailureException( <span class="jxr_string">"Error(s) found in manifest configuration"</span> );
-<a name="121" href="#121">121</a>             }
-<a name="122" href="#122">122</a>         }
-<a name="123" href="#123">123</a> 
-<a name="124" href="#124">124</a>         Jar jar = analyzer.getJar();
-<a name="125" href="#125">125</a> 
-<a name="126" href="#126">126</a>         <strong class="jxr_keyword">if</strong> ( unpackBundle )
-<a name="127" href="#127">127</a>         {
-<a name="128" href="#128">128</a>             File outputFile = getOutputDirectory();
-<a name="129" href="#129">129</a>             <strong class="jxr_keyword">for</strong> ( Entry&lt;String, Resource&gt; entry : jar.getResources().entrySet() )
-<a name="130" href="#130">130</a>             {
-<a name="131" href="#131">131</a>                 File entryFile = <strong class="jxr_keyword">new</strong> File( outputFile, entry.getKey() );
-<a name="132" href="#132">132</a>                 <strong class="jxr_keyword">if</strong> ( !entryFile.exists() || entry.getValue().lastModified() == 0 )
-<a name="133" href="#133">133</a>                 {
-<a name="134" href="#134">134</a>                     entryFile.getParentFile().mkdirs();
-<a name="135" href="#135">135</a>                     OutputStream os = <strong class="jxr_keyword">new</strong> FileOutputStream( entryFile );
-<a name="136" href="#136">136</a>                     entry.getValue().write( os );
-<a name="137" href="#137">137</a>                     os.close();
-<a name="138" href="#138">138</a>                 }
-<a name="139" href="#139">139</a>             }
-<a name="140" href="#140">140</a>         }
-<a name="141" href="#141">141</a> 
-<a name="142" href="#142">142</a>         Manifest manifest = jar.getManifest();
-<a name="143" href="#143">143</a> 
-<a name="144" href="#144">144</a>         <em class="jxr_comment">// cleanup...</em>
-<a name="145" href="#145">145</a>         analyzer.close();
-<a name="146" href="#146">146</a> 
-<a name="147" href="#147">147</a>         <strong class="jxr_keyword">return</strong> manifest;
-<a name="148" href="#148">148</a>     }
-<a name="149" href="#149">149</a> 
+<a name="110" href="#110">110</a> 
+<a name="111" href="#111">111</a>     <strong class="jxr_keyword">public</strong> Manifest getManifest( MavenProject project, Map instructions, Properties properties, Jar[] classpath )
+<a name="112" href="#112">112</a>         <strong class="jxr_keyword">throws</strong> IOException, MojoFailureException, MojoExecutionException, Exception
+<a name="113" href="#113">113</a>     {
+<a name="114" href="#114">114</a>         Analyzer analyzer = getAnalyzer( project, instructions, properties, classpath );
+<a name="115" href="#115">115</a>         <strong class="jxr_keyword">boolean</strong> hasErrors = reportErrors( <span class="jxr_string">"Manifest "</span> + project.getArtifact(), analyzer );
+<a name="116" href="#116">116</a>         <strong class="jxr_keyword">if</strong> ( hasErrors )
+<a name="117" href="#117">117</a>         {
+<a name="118" href="#118">118</a>             String failok = analyzer.getProperty( <span class="jxr_string">"-failok"</span> );
+<a name="119" href="#119">119</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == failok || <span class="jxr_string">"false"</span>.equalsIgnoreCase( failok ) )
+<a name="120" href="#120">120</a>             {
+<a name="121" href="#121">121</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoFailureException( <span class="jxr_string">"Error(s) found in manifest configuration"</span> );
+<a name="122" href="#122">122</a>             }
+<a name="123" href="#123">123</a>         }
+<a name="124" href="#124">124</a> 
+<a name="125" href="#125">125</a>         Jar jar = analyzer.getJar();
+<a name="126" href="#126">126</a> 
+<a name="127" href="#127">127</a>         <strong class="jxr_keyword">if</strong> ( unpackBundle )
+<a name="128" href="#128">128</a>         {
+<a name="129" href="#129">129</a>             File outputFile = getOutputDirectory();
+<a name="130" href="#130">130</a>             <strong class="jxr_keyword">for</strong> ( Entry&lt;String, Resource&gt; entry : jar.getResources().entrySet() )
+<a name="131" href="#131">131</a>             {
+<a name="132" href="#132">132</a>                 File entryFile = <strong class="jxr_keyword">new</strong> File( outputFile, entry.getKey() );
+<a name="133" href="#133">133</a>                 <strong class="jxr_keyword">if</strong> ( !entryFile.exists() || entry.getValue().lastModified() == 0 )
+<a name="134" href="#134">134</a>                 {
+<a name="135" href="#135">135</a>                     entryFile.getParentFile().mkdirs();
+<a name="136" href="#136">136</a>                     OutputStream os = <strong class="jxr_keyword">new</strong> FileOutputStream( entryFile );
+<a name="137" href="#137">137</a>                     entry.getValue().write( os );
+<a name="138" href="#138">138</a>                     os.close();
+<a name="139" href="#139">139</a>                 }
+<a name="140" href="#140">140</a>             }
+<a name="141" href="#141">141</a>         }
+<a name="142" href="#142">142</a> 
+<a name="143" href="#143">143</a>         Manifest manifest = jar.getManifest();
+<a name="144" href="#144">144</a> 
+<a name="145" href="#145">145</a>         <em class="jxr_comment">// cleanup...</em>
+<a name="146" href="#146">146</a>         analyzer.close();
+<a name="147" href="#147">147</a> 
+<a name="148" href="#148">148</a>         <strong class="jxr_keyword">return</strong> manifest;
+<a name="149" href="#149">149</a>     }
 <a name="150" href="#150">150</a> 
-<a name="151" href="#151">151</a>     <strong class="jxr_keyword">protected</strong> Analyzer getAnalyzer( MavenProject project, Jar[] classpath ) <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException,
-<a name="152" href="#152">152</a>         Exception
-<a name="153" href="#153">153</a>     {
-<a name="154" href="#154">154</a>         <strong class="jxr_keyword">return</strong> getAnalyzer( project, <strong class="jxr_keyword">new</strong> LinkedHashMap(), <strong class="jxr_keyword">new</strong> Properties(), classpath );
-<a name="155" href="#155">155</a>     }
-<a name="156" href="#156">156</a> 
+<a name="151" href="#151">151</a> 
+<a name="152" href="#152">152</a>     <strong class="jxr_keyword">protected</strong> Analyzer getAnalyzer( MavenProject project, Jar[] classpath ) <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException,
+<a name="153" href="#153">153</a>         Exception
+<a name="154" href="#154">154</a>     {
+<a name="155" href="#155">155</a>         <strong class="jxr_keyword">return</strong> getAnalyzer( project, <strong class="jxr_keyword">new</strong> LinkedHashMap(), <strong class="jxr_keyword">new</strong> Properties(), classpath );
+<a name="156" href="#156">156</a>     }
 <a name="157" href="#157">157</a> 
-<a name="158" href="#158">158</a>     <strong class="jxr_keyword">protected</strong> Analyzer getAnalyzer( MavenProject project, Map instructions, Properties properties, Jar[] classpath )
-<a name="159" href="#159">159</a>         <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException, Exception
-<a name="160" href="#160">160</a>     {
-<a name="161" href="#161">161</a>         <strong class="jxr_keyword">if</strong> ( rebuildBundle &amp;&amp; supportedProjectTypes.contains( project.getArtifact().getType() ) )
-<a name="162" href="#162">162</a>         {
-<a name="163" href="#163">163</a>             <strong class="jxr_keyword">return</strong> buildOSGiBundle( project, instructions, properties, classpath );
-<a name="164" href="#164">164</a>         }
-<a name="165" href="#165">165</a> 
-<a name="166" href="#166">166</a>         File file = project.getArtifact().getFile();
-<a name="167" href="#167">167</a>         <strong class="jxr_keyword">if</strong> ( file == <strong class="jxr_keyword">null</strong> )
-<a name="168" href="#168">168</a>         {
-<a name="169" href="#169">169</a>             file = getOutputDirectory();
-<a name="170" href="#170">170</a>         }
-<a name="171" href="#171">171</a> 
-<a name="172" href="#172">172</a>         <strong class="jxr_keyword">if</strong> ( !file.exists() )
-<a name="173" href="#173">173</a>         {
-<a name="174" href="#174">174</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> FileNotFoundException( file.getPath() );
-<a name="175" href="#175">175</a>         }
-<a name="176" href="#176">176</a> 
-<a name="177" href="#177">177</a>         Builder analyzer = getOSGiBuilder( project, instructions, properties, classpath );
-<a name="178" href="#178">178</a> 
-<a name="179" href="#179">179</a>         analyzer.setJar( file );
-<a name="180" href="#180">180</a> 
-<a name="181" href="#181">181</a>         <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.EXPORT_PACKAGE ) == <strong class="jxr_keyword">null</strong>
-<a name="182" href="#182">182</a>             &amp;&amp; analyzer.getProperty( Analyzer.EXPORT_CONTENTS ) == <strong class="jxr_keyword">null</strong>
-<a name="183" href="#183">183</a>             &amp;&amp; analyzer.getProperty( Analyzer.PRIVATE_PACKAGE ) == <strong class="jxr_keyword">null</strong> )
-<a name="184" href="#184">184</a>         {
-<a name="185" href="#185">185</a>             String export = analyzer.calculateExportsFromContents( analyzer.getJar() );
-<a name="186" href="#186">186</a>             analyzer.setProperty( Analyzer.EXPORT_PACKAGE, export );
-<a name="187" href="#187">187</a>         }
-<a name="188" href="#188">188</a> 
-<a name="189" href="#189">189</a>         addMavenInstructions( project, analyzer );
-<a name="190" href="#190">190</a> 
-<a name="191" href="#191">191</a>         analyzer.mergeManifest( analyzer.getJar().getManifest() );
-<a name="192" href="#192">192</a>         analyzer.calcManifest();
-<a name="193" href="#193">193</a> 
-<a name="194" href="#194">194</a>         mergeMavenManifest( project, analyzer );
+<a name="158" href="#158">158</a> 
+<a name="159" href="#159">159</a>     <strong class="jxr_keyword">protected</strong> Analyzer getAnalyzer( MavenProject project, Map instructions, Properties properties, Jar[] classpath )
+<a name="160" href="#160">160</a>         <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException, Exception
+<a name="161" href="#161">161</a>     {
+<a name="162" href="#162">162</a>         <strong class="jxr_keyword">if</strong> ( rebuildBundle &amp;&amp; supportedProjectTypes.contains( project.getArtifact().getType() ) )
+<a name="163" href="#163">163</a>         {
+<a name="164" href="#164">164</a>             <strong class="jxr_keyword">return</strong> buildOSGiBundle( project, instructions, properties, classpath );
+<a name="165" href="#165">165</a>         }
+<a name="166" href="#166">166</a> 
+<a name="167" href="#167">167</a>         File file = project.getArtifact().getFile();
+<a name="168" href="#168">168</a>         <strong class="jxr_keyword">if</strong> ( file == <strong class="jxr_keyword">null</strong> )
+<a name="169" href="#169">169</a>         {
+<a name="170" href="#170">170</a>             file = getOutputDirectory();
+<a name="171" href="#171">171</a>         }
+<a name="172" href="#172">172</a> 
+<a name="173" href="#173">173</a>         <strong class="jxr_keyword">if</strong> ( !file.exists() )
+<a name="174" href="#174">174</a>         {
+<a name="175" href="#175">175</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> FileNotFoundException( file.getPath() );
+<a name="176" href="#176">176</a>         }
+<a name="177" href="#177">177</a> 
+<a name="178" href="#178">178</a>         Builder analyzer = getOSGiBuilder( project, instructions, properties, classpath );
+<a name="179" href="#179">179</a> 
+<a name="180" href="#180">180</a>         analyzer.setJar( file );
+<a name="181" href="#181">181</a> 
+<a name="182" href="#182">182</a>         <em class="jxr_comment">// calculateExportsFromContents when we have no explicit instructions defining</em>
+<a name="183" href="#183">183</a>         <em class="jxr_comment">// the contents of the bundle *and* we are not analyzing the output directory,</em>
+<a name="184" href="#184">184</a>         <em class="jxr_comment">// otherwise fall-back to addMavenInstructions approach</em>
+<a name="185" href="#185">185</a> 
+<a name="186" href="#186">186</a>         <strong class="jxr_keyword">boolean</strong> isOutputDirectory = file.equals( getOutputDirectory() );
+<a name="187" href="#187">187</a> 
+<a name="188" href="#188">188</a>         <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.EXPORT_PACKAGE ) == <strong class="jxr_keyword">null</strong>
+<a name="189" href="#189">189</a>             &amp;&amp; analyzer.getProperty( Analyzer.EXPORT_CONTENTS ) == <strong class="jxr_keyword">null</strong>
+<a name="190" href="#190">190</a>             &amp;&amp; analyzer.getProperty( Analyzer.PRIVATE_PACKAGE ) == <strong class="jxr_keyword">null</strong> &amp;&amp; !isOutputDirectory )
+<a name="191" href="#191">191</a>         {
+<a name="192" href="#192">192</a>             String export = calculateExportsFromContents( analyzer.getJar() );
+<a name="193" href="#193">193</a>             analyzer.setProperty( Analyzer.EXPORT_PACKAGE, export );
+<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">return</strong> analyzer;
-<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>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeManifest( Manifest manifest, File outputFile ) <strong class="jxr_keyword">throws</strong> IOException
-<a name="201" href="#201">201</a>     {
-<a name="202" href="#202">202</a>         outputFile.getParentFile().mkdirs();
-<a name="203" href="#203">203</a> 
-<a name="204" href="#204">204</a>         FileOutputStream os;
-<a name="205" href="#205">205</a>         os = <strong class="jxr_keyword">new</strong> FileOutputStream( outputFile );
-<a name="206" href="#206">206</a>         <strong class="jxr_keyword">try</strong>
-<a name="207" href="#207">207</a>         {
-<a name="208" href="#208">208</a>             Jar.writeManifest( manifest, os );
-<a name="209" href="#209">209</a>         }
-<a name="210" href="#210">210</a>         <strong class="jxr_keyword">finally</strong>
-<a name="211" href="#211">211</a>         {
-<a name="212" href="#212">212</a>             <strong class="jxr_keyword">try</strong>
-<a name="213" href="#213">213</a>             {
-<a name="214" href="#214">214</a>                 os.close();
-<a name="215" href="#215">215</a>             }
-<a name="216" href="#216">216</a>             <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="217" href="#217">217</a>             {
-<a name="218" href="#218">218</a>                 <em class="jxr_comment">// nothing we can do here</em>
-<a name="219" href="#219">219</a>             }
-<a name="220" href="#220">220</a>         }
-<a name="221" href="#221">221</a>     }
-<a name="222" href="#222">222</a> }
+<a name="196" href="#196">196</a>         addMavenInstructions( project, analyzer );
+<a name="197" href="#197">197</a> 
+<a name="198" href="#198">198</a>         <em class="jxr_comment">// if we spot Embed-Dependency and the bundle is "target/classes", assume we need to rebuild</em>
+<a name="199" href="#199">199</a>         <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( DependencyEmbedder.EMBED_DEPENDENCY ) != <strong class="jxr_keyword">null</strong> &amp;&amp; isOutputDirectory )
+<a name="200" href="#200">200</a>         {
+<a name="201" href="#201">201</a>             analyzer.build();
+<a name="202" href="#202">202</a>         }
+<a name="203" href="#203">203</a>         <strong class="jxr_keyword">else</strong>
+<a name="204" href="#204">204</a>         {
+<a name="205" href="#205">205</a>             analyzer.mergeManifest( analyzer.getJar().getManifest() );
+<a name="206" href="#206">206</a>             analyzer.calcManifest();
+<a name="207" href="#207">207</a>         }
+<a name="208" href="#208">208</a> 
+<a name="209" href="#209">209</a>         mergeMavenManifest( project, analyzer );
+<a name="210" href="#210">210</a> 
+<a name="211" href="#211">211</a>         <strong class="jxr_keyword">return</strong> analyzer;
+<a name="212" href="#212">212</a>     }
+<a name="213" href="#213">213</a> 
+<a name="214" href="#214">214</a> 
+<a name="215" href="#215">215</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeManifest( Manifest manifest, File outputFile ) <strong class="jxr_keyword">throws</strong> IOException
+<a name="216" href="#216">216</a>     {
+<a name="217" href="#217">217</a>         outputFile.getParentFile().mkdirs();
+<a name="218" href="#218">218</a> 
+<a name="219" href="#219">219</a>         FileOutputStream os;
+<a name="220" href="#220">220</a>         os = <strong class="jxr_keyword">new</strong> FileOutputStream( outputFile );
+<a name="221" href="#221">221</a>         <strong class="jxr_keyword">try</strong>
+<a name="222" href="#222">222</a>         {
+<a name="223" href="#223">223</a>             Jar.writeManifest( manifest, os );
+<a name="224" href="#224">224</a>         }
+<a name="225" href="#225">225</a>         <strong class="jxr_keyword">finally</strong>
+<a name="226" href="#226">226</a>         {
+<a name="227" href="#227">227</a>             <strong class="jxr_keyword">try</strong>
+<a name="228" href="#228">228</a>             {
+<a name="229" href="#229">229</a>                 os.close();
+<a name="230" href="#230">230</a>             }
+<a name="231" href="#231">231</a>             <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="232" href="#232">232</a>             {
+<a name="233" href="#233">233</a>                 <em class="jxr_comment">// nothing we can do here</em>
+<a name="234" href="#234">234</a>             }
+<a name="235" href="#235">235</a>         }
+<a name="236" href="#236">236</a>     }
+<a name="237" href="#237">237</a> 
+<a name="238" href="#238">238</a> 
+<a name="239" href="#239">239</a>     <em class="jxr_comment">/*</em>
+<a name="240" href="#240">240</a> <em class="jxr_comment">     * Patched version of bnd's Analyzer.calculateExportsFromContents</em>
+<a name="241" href="#241">241</a> <em class="jxr_comment">     */</em>
+<a name="242" href="#242">242</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String calculateExportsFromContents( Jar bundle )
+<a name="243" href="#243">243</a>     {
+<a name="244" href="#244">244</a>         String ddel = <span class="jxr_string">""</span>;
+<a name="245" href="#245">245</a>         StringBuffer sb = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="246" href="#246">246</a>         Map&lt;String, Map&lt;String, Resource&gt;&gt; map = bundle.getDirectories();
+<a name="247" href="#247">247</a>         <strong class="jxr_keyword">for</strong> ( Iterator&lt;Entry&lt;String, Map&lt;String, Resource&gt;&gt;&gt; i = map.entrySet().iterator(); i.hasNext(); )
+<a name="248" href="#248">248</a>         {
+<a name="249" href="#249">249</a>             <em class="jxr_comment">//----------------------------------------------------</em>
+<a name="250" href="#250">250</a>             <em class="jxr_comment">// should also ignore directories with no resources</em>
+<a name="251" href="#251">251</a>             <em class="jxr_comment">//----------------------------------------------------</em>
+<a name="252" href="#252">252</a>             Entry&lt;String, Map&lt;String, Resource&gt;&gt; entry = i.next();
+<a name="253" href="#253">253</a>             <strong class="jxr_keyword">if</strong> ( entry.getValue() == <strong class="jxr_keyword">null</strong> || entry.getValue().isEmpty() )
+<a name="254" href="#254">254</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="255" href="#255">255</a>             <em class="jxr_comment">//----------------------------------------------------</em>
+<a name="256" href="#256">256</a>             String directory = entry.getKey();
+<a name="257" href="#257">257</a>             <strong class="jxr_keyword">if</strong> ( directory.equals( <span class="jxr_string">"META-INF"</span> ) || directory.startsWith( <span class="jxr_string">"META-INF/"</span> ) )
+<a name="258" href="#258">258</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="259" href="#259">259</a>             <strong class="jxr_keyword">if</strong> ( directory.equals( <span class="jxr_string">"OSGI-OPT"</span> ) || directory.startsWith( <span class="jxr_string">"OSGI-OPT/"</span> ) )
+<a name="260" href="#260">260</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="261" href="#261">261</a>             <strong class="jxr_keyword">if</strong> ( directory.equals( <span class="jxr_string">"/"</span> ) )
+<a name="262" href="#262">262</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="263" href="#263">263</a> 
+<a name="264" href="#264">264</a>             <strong class="jxr_keyword">if</strong> ( directory.endsWith( <span class="jxr_string">"/"</span> ) )
+<a name="265" href="#265">265</a>                 directory = directory.substring( 0, directory.length() - 1 );
+<a name="266" href="#266">266</a> 
+<a name="267" href="#267">267</a>             directory = directory.replace( '/', '.' );
+<a name="268" href="#268">268</a>             sb.append( ddel );
+<a name="269" href="#269">269</a>             sb.append( directory );
+<a name="270" href="#270">270</a>             ddel = <span class="jxr_string">","</span>;
+<a name="271" href="#271">271</a>         }
+<a name="272" href="#272">272</a>         <strong class="jxr_keyword">return</strong> sb.toString();
+<a name="273" href="#273">273</a>     }
+<a name="274" href="#274">274</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/org/apache/felix/bundleplugin/PackageVersionAnalyzer.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/PackageVersionAnalyzer.html
deleted file mode 100644
index ca4d2b3..0000000
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/PackageVersionAnalyzer.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!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>PackageVersionAnalyzer 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> aQute.lib.osgi.Builder;
-<a name="23" href="#23">23</a>  
-<a name="24" href="#24">24</a>  
-<a name="25" href="#25">25</a>  <em class="jxr_javadoccomment">/**</em>
-<a name="26" href="#26">26</a>  <em class="jxr_javadoccomment"> * Extension of {@link aQute.lib.osgi.Builder} to handle package versions</em>
-<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment"> * </em>
-<a name="28" href="#28">28</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="29" href="#29">29</a>  <em class="jxr_javadoccomment"> */</em>
-<a name="30" href="#30">30</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/PackageVersionAnalyzer.html">PackageVersionAnalyzer</a> <strong class="jxr_keyword">extends</strong> Builder
-<a name="31" href="#31">31</a>  {
-<a name="32" href="#32">32</a>      <em class="jxr_comment">/*</em>
-<a name="33" href="#33">33</a>  <em class="jxr_comment">     * Remove META-INF subfolders from exports and set package versions to bundle version.</em>
-<a name="34" href="#34">34</a>  <em class="jxr_comment">     */</em>
-<a name="35" href="#35">35</a>      <em class="jxr_comment">/*</em>
-<a name="36" href="#36">36</a>  <em class="jxr_comment">        public Map analyzeBundleClasspath( Jar dot, Map bundleClasspath, Map contained, Map referred, Map uses )</em>
-<a name="37" href="#37">37</a>  <em class="jxr_comment">            throws IOException</em>
-<a name="38" href="#38">38</a>  <em class="jxr_comment">        {</em>
-<a name="39" href="#39">39</a>  <em class="jxr_comment">            Map classSpace = super.analyzeBundleClasspath( dot, bundleClasspath, contained, referred, uses );</em>
-<a name="40" href="#40">40</a>  <em class="jxr_comment">            String bundleVersion = getProperty( BUNDLE_VERSION );</em>
-<a name="41" href="#41">41</a>  <em class="jxr_comment">            for ( Iterator it = contained.entrySet().iterator(); it.hasNext(); )</em>
-<a name="42" href="#42">42</a>  <em class="jxr_comment">            {</em>
-<a name="43" href="#43">43</a>  <em class="jxr_comment">                Map.Entry entry = ( Map.Entry ) it.next();</em>
-<a name="44" href="#44">44</a>  
-<a name="45" href="#45">45</a>  <em class="jxr_comment">                // remove packages under META-INF</em>
-<a name="46" href="#46">46</a>  <em class="jxr_comment">                String packageName = ( String ) entry.getKey();</em>
-<a name="47" href="#47">47</a>  <em class="jxr_comment">                if ( packageName.startsWith( "META-INF." ) )</em>
-<a name="48" href="#48">48</a>  <em class="jxr_comment">                {</em>
-<a name="49" href="#49">49</a>  <em class="jxr_comment">                    it.remove();</em>
-<a name="50" href="#50">50</a>  <em class="jxr_comment">                }</em>
-<a name="51" href="#51">51</a>  
-<a name="52" href="#52">52</a>  <em class="jxr_comment">                // set package versions to bundle version values</em>
-<a name="53" href="#53">53</a>  <em class="jxr_comment">                if ( bundleVersion != null )</em>
-<a name="54" href="#54">54</a>  <em class="jxr_comment">                {</em>
-<a name="55" href="#55">55</a>  <em class="jxr_comment">                    Map values = ( Map ) entry.getValue();</em>
-<a name="56" href="#56">56</a>  <em class="jxr_comment">                    if ( values.get( "version" ) == null )</em>
-<a name="57" href="#57">57</a>  <em class="jxr_comment">                    {</em>
-<a name="58" href="#58">58</a>  <em class="jxr_comment">                        values.put( "version", bundleVersion );</em>
-<a name="59" href="#59">59</a>  <em class="jxr_comment">                    }</em>
-<a name="60" href="#60">60</a>  <em class="jxr_comment">                }</em>
-<a name="61" href="#61">61</a>  <em class="jxr_comment">            }</em>
-<a name="62" href="#62">62</a>  <em class="jxr_comment">            return classSpace;</em>
-<a name="63" href="#63">63</a>  <em class="jxr_comment">        }</em>
-<a name="64" href="#64">64</a>  <em class="jxr_comment">    */</em>
-<a name="65" href="#65">65</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/org/apache/felix/bundleplugin/package-frame.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/package-frame.html
index 8da2172..61bac60 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/package-frame.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/package-frame.html
@@ -55,9 +55,6 @@
             	<a href="ManifestPlugin.html" target="classFrame">ManifestPlugin</a>
           	</li>
           	          	<li>
-            	<a href="PackageVersionAnalyzer.html" target="classFrame">PackageVersionAnalyzer</a>
-          	</li>
-          	          	<li>
             	<a href="VersionCleanerPlugin.html" target="classFrame">VersionCleanerPlugin</a>
           	</li>
           	          	<li>
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/package-summary.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/package-summary.html
index accbbaf..53f7a33 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/package-summary.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/package-summary.html
@@ -102,11 +102,6 @@
             	</tr>
 				            	<tr>
               		<td>
-                		<a href="PackageVersionAnalyzer.html" target="classFrame">PackageVersionAnalyzer</a>
-              		</td>
-            	</tr>
-				            	<tr>
-              		<td>
                 		<a href="VersionCleanerPlugin.html" target="classFrame">VersionCleanerPlugin</a>
               		</td>
             	</tr>
@@ -137,6 +132,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/org/apache/felix/obrplugin/package-summary.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/package-summary.html
index ee11860..7a3519a 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/package-summary.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/package-summary.html
@@ -127,6 +127,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/org/apache/maven/shared/dependency/tree/DependencyTreeResolutionListener.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/DependencyTreeResolutionListener.html
index 644471f..b4d19d7 100644
--- a/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/DependencyTreeResolutionListener.html
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/DependencyTreeResolutionListener.html
@@ -585,7 +585,13 @@
 <a name="575" href="#575">575</a>     {
 <a name="576" href="#576">576</a>         <strong class="jxr_keyword">return</strong> artifact.getDependencyConflictId() + <span class="jxr_string">":"</span> + artifact.getVersionRange();
 <a name="577" href="#577">577</a>     }
-<a name="578" href="#578">578</a> }
+<a name="578" href="#578">578</a> 
+<a name="579" href="#579">579</a> 
+<a name="580" href="#580">580</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> manageArtifactSystemPath( Artifact artifact, Artifact replacement )
+<a name="581" href="#581">581</a>     {
+<a name="582" href="#582">582</a>         <em class="jxr_comment">// NO-OP</em>
+<a name="583" href="#583">583</a>     }
+<a name="584" href="#584">584</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/org/apache/maven/shared/dependency/tree/package-summary.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/package-summary.html
index ed8a9da..c191293 100644
--- a/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/package-summary.html
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/package-summary.html
@@ -62,6 +62,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/org/apache/maven/shared/osgi/package-summary.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-summary.html
index 776c4bc..91c03a2 100644
--- a/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-summary.html
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-summary.html
@@ -72,6 +72,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/overview-summary.html b/bundleplugin/doc/site/xref/overview-summary.html
index e23604d..e2b532b 100644
--- a/bundleplugin/doc/site/xref/overview-summary.html
+++ b/bundleplugin/doc/site/xref/overview-summary.html
@@ -74,6 +74,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
