diff --git a/bundleplugin/doc/site/xref/index.html b/bundleplugin/doc/site/xref/index.html
index b66913a..a3c1140 100644
--- a/bundleplugin/doc/site/xref/index.html
+++ b/bundleplugin/doc/site/xref/index.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
-		<title>Maven Bundle Plugin 2.3.5 Reference</title>
+		<title>Maven Bundle Plugin 2.4.0-SNAPSHOT Reference</title>
 	</head>
     <frameset cols="20%,80%">
 		<frameset rows="30%,70%">
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AbstractDependencyFilter.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AbstractDependencyFilter.html
index 552f2f9..d8961e8 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AbstractDependencyFilter.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AbstractDependencyFilter.html
@@ -30,219 +30,243 @@
 <a name="20" href="#20">20</a>  
 <a name="21" href="#21">21</a>  
 <a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
-<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
-<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashSet;
 <a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
-<a name="26" href="#26">26</a>  
-<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
-<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
-<a name="29" href="#29">29</a>  
-<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Instruction;
-<a name="31" href="#31">31</a>  
-<a name="32" href="#32">32</a>  
-<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment">/**</em>
-<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * Apply clause-based filter over given dependencies</em>
-<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * </em>
-<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
-<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> */</em>
-<a name="38" href="#38">38</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">AbstractDependencyFilter</a>
-<a name="39" href="#39">39</a>  {
-<a name="40" href="#40">40</a>      <em class="jxr_javadoccomment">/**</em>
-<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment">     * Dependency artifacts.</em>
-<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment">     */</em>
-<a name="43" href="#43">43</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Collection m_dependencyArtifacts;
-<a name="44" href="#44">44</a>  
-<a name="45" href="#45">45</a>  
-<a name="46" href="#46">46</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">AbstractDependencyFilter</a>( Collection dependencyArtifacts )
-<a name="47" href="#47">47</a>      {
-<a name="48" href="#48">48</a>          m_dependencyArtifacts = dependencyArtifacts;
-<a name="49" href="#49">49</a>      }
-<a name="50" href="#50">50</a>  
-<a name="51" href="#51">51</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>
-<a name="52" href="#52">52</a>      {
-<a name="53" href="#53">53</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Instruction m_instruction;
-<a name="54" href="#54">54</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String m_defaultValue;
-<a name="55" href="#55">55</a>  
-<a name="56" href="#56">56</a>  
-<a name="57" href="#57">57</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( String expression )
-<a name="58" href="#58">58</a>          {
-<a name="59" href="#59">59</a>              <strong class="jxr_keyword">this</strong>( expression, <span class="jxr_string">""</span> );
-<a name="60" href="#60">60</a>          }
-<a name="61" href="#61">61</a>  
-<a name="62" href="#62">62</a>  
-<a name="63" href="#63">63</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( String expression, String defaultValue )
-<a name="64" href="#64">64</a>          {
-<a name="65" href="#65">65</a>              m_instruction = Instruction.getPattern( expression );
-<a name="66" href="#66">66</a>              m_defaultValue = defaultValue;
-<a name="67" href="#67">67</a>          }
-<a name="68" href="#68">68</a>  
-<a name="69" href="#69">69</a>  
-<a name="70" href="#70">70</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> filter( Collection dependencies )
-<a name="71" href="#71">71</a>          {
-<a name="72" href="#72">72</a>              <strong class="jxr_keyword">for</strong> ( Iterator i = dependencies.iterator(); i.hasNext(); )
-<a name="73" href="#73">73</a>              {
-<a name="74" href="#74">74</a>                  <strong class="jxr_keyword">if</strong> ( false == matches( ( Artifact ) i.next() ) )
-<a name="75" href="#75">75</a>                  {
-<a name="76" href="#76">76</a>                      i.remove();
-<a name="77" href="#77">77</a>                  }
-<a name="78" href="#78">78</a>              }
-<a name="79" href="#79">79</a>          }
-<a name="80" href="#80">80</a>  
-<a name="81" href="#81">81</a>  
-<a name="82" href="#82">82</a>          <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency );
-<a name="83" href="#83">83</a>  
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Pattern;
+<a name="27" href="#27">27</a>  
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="30" href="#30">30</a>  
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Instruction;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> aQute.libg.header.OSGiHeader;
+<a name="33" href="#33">33</a>  
+<a name="34" href="#34">34</a>  
+<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * Apply clause-based filter over given dependencies</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="38" href="#38">38</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="39" href="#39">39</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="40" href="#40">40</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">AbstractDependencyFilter</a>
+<a name="41" href="#41">41</a>  {
+<a name="42" href="#42">42</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Pattern MISSING_KEY_PATTERN = Pattern.compile( <span class="jxr_string">"(^|,)&#92;&#92;p{Blank}*(!)?&#92;&#92;p{Blank}*([a-zA-Z]+=)"</span> );
+<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">     * Dependency artifacts.</em>
+<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="47" href="#47">47</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Collection m_dependencyArtifacts;
+<a name="48" href="#48">48</a>  
+<a name="49" href="#49">49</a>  
+<a name="50" href="#50">50</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">AbstractDependencyFilter</a>( Collection dependencyArtifacts )
+<a name="51" href="#51">51</a>      {
+<a name="52" href="#52">52</a>          m_dependencyArtifacts = dependencyArtifacts;
+<a name="53" href="#53">53</a>      }
+<a name="54" href="#54">54</a>  
+<a name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>
+<a name="56" href="#56">56</a>      {
+<a name="57" href="#57">57</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Instruction m_instruction;
+<a name="58" href="#58">58</a>          <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String m_defaultValue;
+<a name="59" href="#59">59</a>  
+<a name="60" href="#60">60</a>  
+<a name="61" href="#61">61</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( String expression )
+<a name="62" href="#62">62</a>          {
+<a name="63" href="#63">63</a>              <strong class="jxr_keyword">this</strong>( expression, <span class="jxr_string">""</span> );
+<a name="64" href="#64">64</a>          }
+<a name="65" href="#65">65</a>  
+<a name="66" href="#66">66</a>  
+<a name="67" href="#67">67</a>          <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( String expression, String defaultValue )
+<a name="68" href="#68">68</a>          {
+<a name="69" href="#69">69</a>              m_instruction = Instruction.getPattern( expression );
+<a name="70" href="#70">70</a>              m_defaultValue = defaultValue;
+<a name="71" href="#71">71</a>          }
+<a name="72" href="#72">72</a>  
+<a name="73" href="#73">73</a>  
+<a name="74" href="#74">74</a>          <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> filter( Collection dependencies )
+<a name="75" href="#75">75</a>          {
+<a name="76" href="#76">76</a>              <strong class="jxr_keyword">for</strong> ( Iterator i = dependencies.iterator(); i.hasNext(); )
+<a name="77" href="#77">77</a>              {
+<a name="78" href="#78">78</a>                  <strong class="jxr_keyword">if</strong> ( false == matches( ( Artifact ) i.next() ) )
+<a name="79" href="#79">79</a>                  {
+<a name="80" href="#80">80</a>                      i.remove();
+<a name="81" href="#81">81</a>                  }
+<a name="82" href="#82">82</a>              }
+<a name="83" href="#83">83</a>          }
 <a name="84" href="#84">84</a>  
-<a name="85" href="#85">85</a>          <strong class="jxr_keyword">boolean</strong> matches( String text )
-<a name="86" href="#86">86</a>          {
-<a name="87" href="#87">87</a>              <strong class="jxr_keyword">boolean</strong> result;
+<a name="85" href="#85">85</a>  
+<a name="86" href="#86">86</a>          <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency );
+<a name="87" href="#87">87</a>  
 <a name="88" href="#88">88</a>  
-<a name="89" href="#89">89</a>              <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == text )
-<a name="90" href="#90">90</a>              {
-<a name="91" href="#91">91</a>                  result = m_instruction.matches( m_defaultValue );
-<a name="92" href="#92">92</a>              }
-<a name="93" href="#93">93</a>              <strong class="jxr_keyword">else</strong>
+<a name="89" href="#89">89</a>          <strong class="jxr_keyword">boolean</strong> matches( String text )
+<a name="90" href="#90">90</a>          {
+<a name="91" href="#91">91</a>              <strong class="jxr_keyword">boolean</strong> result;
+<a name="92" href="#92">92</a>  
+<a name="93" href="#93">93</a>              <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == text )
 <a name="94" href="#94">94</a>              {
-<a name="95" href="#95">95</a>                  result = m_instruction.matches( text );
+<a name="95" href="#95">95</a>                  result = m_instruction.matches( m_defaultValue );
 <a name="96" href="#96">96</a>              }
-<a name="97" href="#97">97</a>  
-<a name="98" href="#98">98</a>              <strong class="jxr_keyword">return</strong> m_instruction.isNegated() ? !result : result;
-<a name="99" href="#99">99</a>          }
-<a name="100" href="#100">100</a>     }
+<a name="97" href="#97">97</a>              <strong class="jxr_keyword">else</strong>
+<a name="98" href="#98">98</a>              {
+<a name="99" href="#99">99</a>                  result = m_instruction.matches( text );
+<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">protected</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> processInstructions( Map instructions ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="104" href="#104">104</a>     {
-<a name="105" href="#105">105</a>         <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a> filter;
-<a name="106" href="#106">106</a>         <strong class="jxr_keyword">for</strong> ( Iterator clauseIterator = instructions.entrySet().iterator(); clauseIterator.hasNext(); )
-<a name="107" href="#107">107</a>         {
-<a name="108" href="#108">108</a>             String inline = <span class="jxr_string">"false"</span>;
-<a name="109" href="#109">109</a> 
-<a name="110" href="#110">110</a>             <em class="jxr_comment">// must use a fresh *modifiable* collection for each unique clause</em>
-<a name="111" href="#111">111</a>             Collection filteredDependencies = <strong class="jxr_keyword">new</strong> HashSet( m_dependencyArtifacts );
+<a name="102" href="#102">102</a>             <strong class="jxr_keyword">return</strong> m_instruction.isNegated() ? !result : result;
+<a name="103" href="#103">103</a>         }
+<a name="104" href="#104">104</a>     }
+<a name="105" href="#105">105</a> 
+<a name="106" href="#106">106</a> 
+<a name="107" href="#107">107</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> processInstructions( String header ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="108" href="#108">108</a>     {
+<a name="109" href="#109">109</a>         Map instructions = OSGiHeader.parseHeader( MISSING_KEY_PATTERN.matcher( header ).replaceAll( <span class="jxr_string">"$1$2*;$3"</span> ) );
+<a name="110" href="#110">110</a> 
+<a name="111" href="#111">111</a>         Collection availableDependencies = <strong class="jxr_keyword">new</strong> LinkedHashSet( m_dependencyArtifacts );
 <a name="112" href="#112">112</a> 
-<a name="113" href="#113">113</a>             <em class="jxr_comment">// CLAUSE: REGEXP --&gt; { ATTRIBUTE MAP }</em>
-<a name="114" href="#114">114</a>             Map.Entry clause = ( Map.Entry ) clauseIterator.next();
-<a name="115" href="#115">115</a>             StringBuilder tag = <strong class="jxr_keyword">new</strong> StringBuilder();
-<a name="116" href="#116">116</a>             tag.append( clause.getKey() );
+<a name="113" href="#113">113</a>         <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a> filter;
+<a name="114" href="#114">114</a>         <strong class="jxr_keyword">for</strong> ( Iterator clauseIterator = instructions.entrySet().iterator(); clauseIterator.hasNext(); )
+<a name="115" href="#115">115</a>         {
+<a name="116" href="#116">116</a>             String inline = <span class="jxr_string">"false"</span>;
 <a name="117" href="#117">117</a> 
-<a name="118" href="#118">118</a>             <strong class="jxr_keyword">if</strong> ( !( ( String ) clause.getKey() ).matches( <span class="jxr_string">"&#92;&#92;*~*"</span> ) )
-<a name="119" href="#119">119</a>             {
-<a name="120" href="#120">120</a>                 filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) clause.getKey() )
-<a name="121" href="#121">121</a>                 {
-<a name="122" href="#122">122</a>                     <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency )
-<a name="123" href="#123">123</a>                     {
-<a name="124" href="#124">124</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getArtifactId() );
-<a name="125" href="#125">125</a>                     }
-<a name="126" href="#126">126</a>                 };
-<a name="127" href="#127">127</a>                 <em class="jxr_comment">// FILTER ON MAIN CLAUSE</em>
-<a name="128" href="#128">128</a>                 filter.filter( filteredDependencies );
-<a name="129" href="#129">129</a>             }
-<a name="130" href="#130">130</a> 
-<a name="131" href="#131">131</a>             <strong class="jxr_keyword">for</strong> ( Iterator attrIterator = ( ( Map ) clause.getValue() ).entrySet().iterator(); attrIterator.hasNext(); )
-<a name="132" href="#132">132</a>             {
-<a name="133" href="#133">133</a>                 <em class="jxr_comment">// ATTRIBUTE: KEY --&gt; REGEXP</em>
-<a name="134" href="#134">134</a>                 Map.Entry attr = ( Map.Entry ) attrIterator.next();
-<a name="135" href="#135">135</a>                 tag.append( ';' ).append( attr );
-<a name="136" href="#136">136</a> 
-<a name="137" href="#137">137</a>                 <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"groupId"</span>.equals( attr.getKey() ) )
-<a name="138" href="#138">138</a>                 {
-<a name="139" href="#139">139</a>                     filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) attr.getValue() )
-<a name="140" href="#140">140</a>                     {
-<a name="141" href="#141">141</a>                         <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency )
-<a name="142" href="#142">142</a>                         {
-<a name="143" href="#143">143</a>                             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getGroupId() );
-<a name="144" href="#144">144</a>                         }
-<a name="145" href="#145">145</a>                     };
-<a name="146" href="#146">146</a>                 }
-<a name="147" href="#147">147</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"artifactId"</span>.equals( attr.getKey() ) )
+<a name="118" href="#118">118</a>             <em class="jxr_comment">// always start with a fresh *modifiable* collection for each unique clause</em>
+<a name="119" href="#119">119</a>             Collection filteredDependencies = <strong class="jxr_keyword">new</strong> LinkedHashSet( availableDependencies );
+<a name="120" href="#120">120</a> 
+<a name="121" href="#121">121</a>             <em class="jxr_comment">// CLAUSE: REGEXP --&gt; { ATTRIBUTE MAP }</em>
+<a name="122" href="#122">122</a>             Map.Entry clause = ( Map.Entry ) clauseIterator.next();
+<a name="123" href="#123">123</a>             String primaryKey = ( ( String ) clause.getKey() ).replaceFirst( <span class="jxr_string">"~+$"</span>, <span class="jxr_string">""</span> );
+<a name="124" href="#124">124</a>             <strong class="jxr_keyword">boolean</strong> isNegative = primaryKey.startsWith( <span class="jxr_string">"!"</span> );
+<a name="125" href="#125">125</a>             <strong class="jxr_keyword">if</strong> ( isNegative )
+<a name="126" href="#126">126</a>             {
+<a name="127" href="#127">127</a>                 primaryKey = primaryKey.substring( 1 );
+<a name="128" href="#128">128</a>             }
+<a name="129" href="#129">129</a> 
+<a name="130" href="#130">130</a>             <strong class="jxr_keyword">if</strong> ( !<span class="jxr_string">"*"</span>.equals( primaryKey ) )
+<a name="131" href="#131">131</a>             {
+<a name="132" href="#132">132</a>                 filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( primaryKey )
+<a name="133" href="#133">133</a>                 {
+<a name="134" href="#134">134</a>                     <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency )
+<a name="135" href="#135">135</a>                     {
+<a name="136" href="#136">136</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getArtifactId() );
+<a name="137" href="#137">137</a>                     }
+<a name="138" href="#138">138</a>                 };
+<a name="139" href="#139">139</a>                 <em class="jxr_comment">// FILTER ON MAIN CLAUSE</em>
+<a name="140" href="#140">140</a>                 filter.filter( filteredDependencies );
+<a name="141" href="#141">141</a>             }
+<a name="142" href="#142">142</a> 
+<a name="143" href="#143">143</a>             <strong class="jxr_keyword">for</strong> ( Iterator attrIterator = ( ( Map ) clause.getValue() ).entrySet().iterator(); attrIterator.hasNext(); )
+<a name="144" href="#144">144</a>             {
+<a name="145" href="#145">145</a>                 <em class="jxr_comment">// ATTRIBUTE: KEY --&gt; REGEXP</em>
+<a name="146" href="#146">146</a>                 Map.Entry attr = ( Map.Entry ) attrIterator.next();
+<a name="147" href="#147">147</a>                 <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"groupId"</span>.equals( attr.getKey() ) )
 <a name="148" href="#148">148</a>                 {
 <a name="149" href="#149">149</a>                     filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) attr.getValue() )
 <a name="150" href="#150">150</a>                     {
 <a name="151" href="#151">151</a>                         <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency )
 <a name="152" href="#152">152</a>                         {
-<a name="153" href="#153">153</a>                             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getArtifactId() );
+<a name="153" href="#153">153</a>                             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getGroupId() );
 <a name="154" href="#154">154</a>                         }
 <a name="155" href="#155">155</a>                     };
 <a name="156" href="#156">156</a>                 }
-<a name="157" href="#157">157</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"version"</span>.equals( attr.getKey() ) )
+<a name="157" href="#157">157</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"artifactId"</span>.equals( attr.getKey() ) )
 <a name="158" href="#158">158</a>                 {
 <a name="159" href="#159">159</a>                     filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) attr.getValue() )
 <a name="160" href="#160">160</a>                     {
 <a name="161" href="#161">161</a>                         <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency )
 <a name="162" href="#162">162</a>                         {
-<a name="163" href="#163">163</a>                             <strong class="jxr_keyword">try</strong>
-<a name="164" href="#164">164</a>                             {
-<a name="165" href="#165">165</a>                                 <em class="jxr_comment">// use the symbolic version if available (ie. 1.0.0-SNAPSHOT)</em>
-<a name="166" href="#166">166</a>                                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getSelectedVersion().toString() );
-<a name="167" href="#167">167</a>                             }
-<a name="168" href="#168">168</a>                             <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="169" href="#169">169</a>                             {
-<a name="170" href="#170">170</a>                                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getVersion() );
-<a name="171" href="#171">171</a>                             }
-<a name="172" href="#172">172</a>                         }
-<a name="173" href="#173">173</a>                     };
-<a name="174" href="#174">174</a>                 }
-<a name="175" href="#175">175</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"scope"</span>.equals( attr.getKey() ) )
-<a name="176" href="#176">176</a>                 {
-<a name="177" href="#177">177</a>                     filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) attr.getValue(), <span class="jxr_string">"compile"</span> )
-<a name="178" href="#178">178</a>                     {
-<a name="179" href="#179">179</a>                         <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency )
-<a name="180" href="#180">180</a>                         {
-<a name="181" href="#181">181</a>                             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getScope() );
+<a name="163" href="#163">163</a>                             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getArtifactId() );
+<a name="164" href="#164">164</a>                         }
+<a name="165" href="#165">165</a>                     };
+<a name="166" href="#166">166</a>                 }
+<a name="167" href="#167">167</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"version"</span>.equals( attr.getKey() ) )
+<a name="168" href="#168">168</a>                 {
+<a name="169" href="#169">169</a>                     filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) attr.getValue() )
+<a name="170" href="#170">170</a>                     {
+<a name="171" href="#171">171</a>                         <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency )
+<a name="172" href="#172">172</a>                         {
+<a name="173" href="#173">173</a>                             <strong class="jxr_keyword">try</strong>
+<a name="174" href="#174">174</a>                             {
+<a name="175" href="#175">175</a>                                 <em class="jxr_comment">// use the symbolic version if available (ie. 1.0.0-SNAPSHOT)</em>
+<a name="176" href="#176">176</a>                                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getSelectedVersion().toString() );
+<a name="177" href="#177">177</a>                             }
+<a name="178" href="#178">178</a>                             <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="179" href="#179">179</a>                             {
+<a name="180" href="#180">180</a>                                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getVersion() );
+<a name="181" href="#181">181</a>                             }
 <a name="182" href="#182">182</a>                         }
 <a name="183" href="#183">183</a>                     };
 <a name="184" href="#184">184</a>                 }
-<a name="185" href="#185">185</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"type"</span>.equals( attr.getKey() ) )
+<a name="185" href="#185">185</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"scope"</span>.equals( attr.getKey() ) )
 <a name="186" href="#186">186</a>                 {
-<a name="187" href="#187">187</a>                     filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) attr.getValue(), <span class="jxr_string">"jar"</span> )
+<a name="187" href="#187">187</a>                     filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) attr.getValue(), <span class="jxr_string">"compile"</span> )
 <a name="188" href="#188">188</a>                     {
 <a name="189" href="#189">189</a>                         <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency )
 <a name="190" href="#190">190</a>                         {
-<a name="191" href="#191">191</a>                             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getType() );
+<a name="191" href="#191">191</a>                             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getScope() );
 <a name="192" href="#192">192</a>                         }
 <a name="193" href="#193">193</a>                     };
 <a name="194" href="#194">194</a>                 }
-<a name="195" href="#195">195</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"classifier"</span>.equals( attr.getKey() ) )
+<a name="195" href="#195">195</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"type"</span>.equals( attr.getKey() ) )
 <a name="196" href="#196">196</a>                 {
-<a name="197" href="#197">197</a>                     filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) attr.getValue() )
+<a name="197" href="#197">197</a>                     filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) attr.getValue(), <span class="jxr_string">"jar"</span> )
 <a name="198" href="#198">198</a>                     {
 <a name="199" href="#199">199</a>                         <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency )
 <a name="200" href="#200">200</a>                         {
-<a name="201" href="#201">201</a>                             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getClassifier() );
+<a name="201" href="#201">201</a>                             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getType() );
 <a name="202" href="#202">202</a>                         }
 <a name="203" href="#203">203</a>                     };
 <a name="204" href="#204">204</a>                 }
-<a name="205" href="#205">205</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"optional"</span>.equals( attr.getKey() ) )
+<a name="205" href="#205">205</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"classifier"</span>.equals( attr.getKey() ) )
 <a name="206" href="#206">206</a>                 {
-<a name="207" href="#207">207</a>                     filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) attr.getValue(), <span class="jxr_string">"false"</span> )
+<a name="207" href="#207">207</a>                     filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) attr.getValue() )
 <a name="208" href="#208">208</a>                     {
 <a name="209" href="#209">209</a>                         <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency )
 <a name="210" href="#210">210</a>                         {
-<a name="211" href="#211">211</a>                             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( <span class="jxr_string">""</span> + dependency.isOptional() );
+<a name="211" href="#211">211</a>                             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( dependency.getClassifier() );
 <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">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"inline"</span>.equals( attr.getKey() ) )
+<a name="215" href="#215">215</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"optional"</span>.equals( attr.getKey() ) )
 <a name="216" href="#216">216</a>                 {
-<a name="217" href="#217">217</a>                     inline = ( String ) attr.getValue();
-<a name="218" href="#218">218</a>                     <strong class="jxr_keyword">continue</strong>;
-<a name="219" href="#219">219</a>                 }
-<a name="220" href="#220">220</a>                 <strong class="jxr_keyword">else</strong>
-<a name="221" href="#221">221</a>                 {
-<a name="222" href="#222">222</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unexpected attribute "</span> + attr.getKey() );
-<a name="223" href="#223">223</a>                 }
-<a name="224" href="#224">224</a> 
-<a name="225" href="#225">225</a>                 <em class="jxr_comment">// FILTER ON EACH ATTRIBUTE</em>
-<a name="226" href="#226">226</a>                 filter.filter( filteredDependencies );
-<a name="227" href="#227">227</a>             }
-<a name="228" href="#228">228</a> 
-<a name="229" href="#229">229</a>             processDependencies( tag.toString(), inline, filteredDependencies );
-<a name="230" href="#230">230</a>         }
-<a name="231" href="#231">231</a>     }
-<a name="232" href="#232">232</a> 
-<a name="233" href="#233">233</a> 
-<a name="234" href="#234">234</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">void</strong> processDependencies( String clause, String inline, Collection dependencies );
-<a name="235" href="#235">235</a> }
+<a name="217" href="#217">217</a>                     filter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">DependencyFilter</a>( ( String ) attr.getValue(), <span class="jxr_string">"false"</span> )
+<a name="218" href="#218">218</a>                     {
+<a name="219" href="#219">219</a>                         <strong class="jxr_keyword">boolean</strong> matches( Artifact dependency )
+<a name="220" href="#220">220</a>                         {
+<a name="221" href="#221">221</a>                             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.matches( <span class="jxr_string">""</span> + dependency.isOptional() );
+<a name="222" href="#222">222</a>                         }
+<a name="223" href="#223">223</a>                     };
+<a name="224" href="#224">224</a>                 }
+<a name="225" href="#225">225</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"inline"</span>.equals( attr.getKey() ) )
+<a name="226" href="#226">226</a>                 {
+<a name="227" href="#227">227</a>                     inline = ( String ) attr.getValue();
+<a name="228" href="#228">228</a>                     <strong class="jxr_keyword">continue</strong>;
+<a name="229" href="#229">229</a>                 }
+<a name="230" href="#230">230</a>                 <strong class="jxr_keyword">else</strong>
+<a name="231" href="#231">231</a>                 {
+<a name="232" href="#232">232</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unexpected attribute "</span> + attr.getKey() );
+<a name="233" href="#233">233</a>                 }
+<a name="234" href="#234">234</a> 
+<a name="235" href="#235">235</a>                 <em class="jxr_comment">// FILTER ON EACH ATTRIBUTE</em>
+<a name="236" href="#236">236</a>                 filter.filter( filteredDependencies );
+<a name="237" href="#237">237</a>             }
+<a name="238" href="#238">238</a> 
+<a name="239" href="#239">239</a>             <strong class="jxr_keyword">if</strong> ( isNegative )
+<a name="240" href="#240">240</a>             {
+<a name="241" href="#241">241</a>                 <em class="jxr_comment">// negative clauses reduce the set of available artifacts</em>
+<a name="242" href="#242">242</a>                 availableDependencies.removeAll( filteredDependencies );
+<a name="243" href="#243">243</a>                 <strong class="jxr_keyword">if</strong> ( !clauseIterator.hasNext() )
+<a name="244" href="#244">244</a>                 {
+<a name="245" href="#245">245</a>                     <em class="jxr_comment">// assume there's an implicit * missing at the end</em>
+<a name="246" href="#246">246</a>                     processDependencies( availableDependencies, inline );
+<a name="247" href="#247">247</a>                 }
+<a name="248" href="#248">248</a>             }
+<a name="249" href="#249">249</a>             <strong class="jxr_keyword">else</strong>
+<a name="250" href="#250">250</a>             {
+<a name="251" href="#251">251</a>                 <em class="jxr_comment">// positive clause; doesn't alter the available artifacts</em>
+<a name="252" href="#252">252</a>                 processDependencies( filteredDependencies, inline );
+<a name="253" href="#253">253</a>             }
+<a name="254" href="#254">254</a>         }
+<a name="255" href="#255">255</a>     }
+<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">abstract</strong> <strong class="jxr_keyword">void</strong> processDependencies( Collection dependencies, String inline );
+<a name="259" href="#259">259</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/BundleAllPlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundleAllPlugin.html
index 4133b19..196ee0d 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundleAllPlugin.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundleAllPlugin.html
@@ -281,13 +281,13 @@
 <a name="271" href="#271">271</a>                     childProject.setDependencyArtifacts( childProject.createArtifacts( m_factory, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> ) );
 <a name="272" href="#272">272</a>                 }
 <a name="273" href="#273">273</a>             }
-<a name="274" href="#274">274</a>             <strong class="jxr_keyword">catch</strong> ( ProjectBuildingException e )
+<a name="274" href="#274">274</a>             <strong class="jxr_keyword">catch</strong> ( InvalidDependencyVersionException e )
 <a name="275" href="#275">275</a>             {
-<a name="276" href="#276">276</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to build project object for artifact "</span> + artifact, e );
+<a name="276" href="#276">276</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Invalid dependency version for artifact "</span> + artifact );
 <a name="277" href="#277">277</a>             }
-<a name="278" href="#278">278</a>             <strong class="jxr_keyword">catch</strong> ( InvalidDependencyVersionException e )
+<a name="278" href="#278">278</a>             <strong class="jxr_keyword">catch</strong> ( ProjectBuildingException e )
 <a name="279" href="#279">279</a>             {
-<a name="280" href="#280">280</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Invalid dependency version for artifact "</span> + artifact );
+<a name="280" href="#280">280</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to build project object for artifact "</span> + artifact, e );
 <a name="281" href="#281">281</a>             }
 <a name="282" href="#282">282</a> 
 <a name="283" href="#283">283</a>             childProject.setArtifact( artifact );
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 f067875..8d92a4c 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundlePlugin.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundlePlugin.html
@@ -35,1356 +35,1494 @@
 <a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.FileInputStream;
 <a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
 <a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
-<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Method;
-<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
-<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
-<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
-<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
-<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.Enumeration;
-<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
-<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
-<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
-<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashSet;
-<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> java.util.List;
-<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
-<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
-<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
-<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Attributes;
-<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Manifest;
-<a name="44" href="#44">44</a>  
-<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.ManifestSection;
-<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.MavenArchiveConfiguration;
-<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.MavenArchiver;
-<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
-<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
-<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.execution.MavenSession;
-<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.License;
-<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Model;
-<a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Resource;
-<a name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
-<a name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
-<a name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoFailureException;
-<a name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
-<a name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
-<a name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProjectHelper;
-<a name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.DefaultMaven2OsgiConverter;
-<a name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.Maven2OsgiConverter;
-<a name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.archiver.UnArchiver;
-<a name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.archiver.manager.ArchiverManager;
-<a name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.DirectoryScanner;
-<a name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.FileUtils;
-<a name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.StringUtils;
-<a name="67" href="#67">67</a>  
-<a name="68" href="#68">68</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
-<a name="69" href="#69">69</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Builder;
-<a name="70" href="#70">70</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Constants;
-<a name="71" href="#71">71</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.EmbeddedResource;
-<a name="72" href="#72">72</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.FileResource;
-<a name="73" href="#73">73</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
-<a name="74" href="#74">74</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Processor;
-<a name="75" href="#75">75</a>  <strong class="jxr_keyword">import</strong> aQute.lib.spring.SpringXMLType;
-<a name="76" href="#76">76</a>  
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Array;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Method;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.Enumeration;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashSet;
+<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<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="78" href="#78">78</a>  <em class="jxr_javadoccomment">/**</em>
-<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment"> * Create an OSGi bundle from Maven project</em>
-<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment"> *</em>
-<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment"> * @goal bundle</em>
-<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment"> * @phase package</em>
-<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment"> * @requiresDependencyResolution test</em>
-<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment"> * @description build an OSGi bundle jar</em>
-<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment"> * @threadSafe</em>
-<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment"> */</em>
-<a name="87" href="#87">87</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="88" href="#88">88</a>  {
-<a name="89" href="#89">89</a>      <em class="jxr_javadoccomment">/**</em>
-<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * Directory where the manifest will be written</em>
-<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     *</em>
-<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     * @parameter expression="${manifestLocation}" default-value="${project.build.outputDirectory}/META-INF"</em>
-<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     */</em>
-<a name="94" href="#94">94</a>      <strong class="jxr_keyword">protected</strong> File manifestLocation;
-<a name="95" href="#95">95</a>  
-<a name="96" href="#96">96</a>      <em class="jxr_javadoccomment">/**</em>
-<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     * File where the BND instructions will be dumped</em>
-<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     *</em>
-<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     * @parameter expression="${dumpInstructions}"</em>
-<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     */</em>
-<a name="101" href="#101">101</a>     <strong class="jxr_keyword">protected</strong> File dumpInstructions;
-<a name="102" href="#102">102</a> 
-<a name="103" href="#103">103</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     * File where the BND class-path will be dumped</em>
-<a name="105" href="#105">105</a> <em class="jxr_javadoccomment">     *</em>
-<a name="106" href="#106">106</a> <em class="jxr_javadoccomment">     * @parameter expression="${dumpClasspath}"</em>
-<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     */</em>
-<a name="108" href="#108">108</a>     <strong class="jxr_keyword">protected</strong> File dumpClasspath;
-<a name="109" href="#109">109</a> 
-<a name="110" href="#110">110</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     * When true, unpack the bundle contents to the outputDirectory</em>
-<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     *</em>
-<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">     * @parameter expression="${unpackBundle}"</em>
-<a name="114" href="#114">114</a> <em class="jxr_javadoccomment">     */</em>
-<a name="115" href="#115">115</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> unpackBundle;
-<a name="116" href="#116">116</a> 
-<a name="117" href="#117">117</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="118" href="#118">118</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="119" href="#119">119</a> <em class="jxr_javadoccomment">     *</em>
-<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     * @parameter expression="${excludeDependencies}"</em>
-<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     */</em>
-<a name="122" href="#122">122</a>     <strong class="jxr_keyword">protected</strong> String excludeDependencies;
-<a name="123" href="#123">123</a> 
-<a name="124" href="#124">124</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">     * Classifier type of the bundle to be installed.  For example, "jdk14".</em>
-<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     * Defaults to none which means this is the project's main bundle.</em>
-<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     *</em>
-<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     * @parameter</em>
-<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">     */</em>
-<a name="130" href="#130">130</a>     <strong class="jxr_keyword">protected</strong> String classifier;
-<a name="131" href="#131">131</a> 
-<a name="132" href="#132">132</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="133" href="#133">133</a> <em class="jxr_javadoccomment">     * @component</em>
-<a name="134" href="#134">134</a> <em class="jxr_javadoccomment">     */</em>
-<a name="135" href="#135">135</a>     <strong class="jxr_keyword">private</strong> MavenProjectHelper m_projectHelper;
-<a name="136" href="#136">136</a> 
-<a name="137" href="#137">137</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="138" href="#138">138</a> <em class="jxr_javadoccomment">     * @component</em>
-<a name="139" href="#139">139</a> <em class="jxr_javadoccomment">     */</em>
-<a name="140" href="#140">140</a>     <strong class="jxr_keyword">private</strong> ArchiverManager m_archiverManager;
-<a name="141" href="#141">141</a> 
-<a name="142" href="#142">142</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="143" href="#143">143</a> <em class="jxr_javadoccomment">     * @component</em>
-<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     */</em>
-<a name="145" href="#145">145</a>     <strong class="jxr_keyword">private</strong> ArtifactHandlerManager m_artifactHandlerManager;
-<a name="146" href="#146">146</a> 
-<a name="147" href="#147">147</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">     * Project types which this plugin supports.</em>
-<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">     *</em>
-<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">     * @parameter</em>
-<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">     */</em>
-<a name="152" href="#152">152</a>     <strong class="jxr_keyword">protected</strong> List supportedProjectTypes = Arrays.asList( <strong class="jxr_keyword">new</strong> String[]
-<a name="153" href="#153">153</a>         { <span class="jxr_string">"jar"</span>, <span class="jxr_string">"bundle"</span> } );
-<a name="154" href="#154">154</a> 
-<a name="155" href="#155">155</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="156" href="#156">156</a> <em class="jxr_javadoccomment">     * The directory for the generated bundles.</em>
-<a name="157" href="#157">157</a> <em class="jxr_javadoccomment">     *</em>
-<a name="158" href="#158">158</a> <em class="jxr_javadoccomment">     * @parameter expression="${project.build.outputDirectory}"</em>
-<a name="159" href="#159">159</a> <em class="jxr_javadoccomment">     * @required</em>
-<a name="160" href="#160">160</a> <em class="jxr_javadoccomment">     */</em>
-<a name="161" href="#161">161</a>     <strong class="jxr_keyword">private</strong> File outputDirectory;
-<a name="162" href="#162">162</a> 
-<a name="163" href="#163">163</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="164" href="#164">164</a> <em class="jxr_javadoccomment">     * The directory for the generated JAR.</em>
-<a name="165" href="#165">165</a> <em class="jxr_javadoccomment">     *</em>
-<a name="166" href="#166">166</a> <em class="jxr_javadoccomment">     * @parameter expression="${project.build.directory}"</em>
-<a name="167" href="#167">167</a> <em class="jxr_javadoccomment">     * @required</em>
-<a name="168" href="#168">168</a> <em class="jxr_javadoccomment">     */</em>
-<a name="169" href="#169">169</a>     <strong class="jxr_keyword">private</strong> String buildDirectory;
-<a name="170" href="#170">170</a> 
-<a name="171" href="#171">171</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="172" href="#172">172</a> <em class="jxr_javadoccomment">     * The Maven project.</em>
-<a name="173" href="#173">173</a> <em class="jxr_javadoccomment">     *</em>
-<a name="174" href="#174">174</a> <em class="jxr_javadoccomment">     * @parameter expression="${project}"</em>
-<a name="175" href="#175">175</a> <em class="jxr_javadoccomment">     * @required</em>
-<a name="176" href="#176">176</a> <em class="jxr_javadoccomment">     * @readonly</em>
-<a name="177" href="#177">177</a> <em class="jxr_javadoccomment">     */</em>
-<a name="178" href="#178">178</a>     <strong class="jxr_keyword">private</strong> MavenProject project;
-<a name="179" href="#179">179</a> 
-<a name="180" href="#180">180</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="181" href="#181">181</a> <em class="jxr_javadoccomment">     * The BND instructions for the bundle.</em>
-<a name="182" href="#182">182</a> <em class="jxr_javadoccomment">     *</em>
-<a name="183" href="#183">183</a> <em class="jxr_javadoccomment">     * @parameter</em>
-<a name="184" href="#184">184</a> <em class="jxr_javadoccomment">     */</em>
-<a name="185" href="#185">185</a>     <strong class="jxr_keyword">private</strong> Map instructions = <strong class="jxr_keyword">new</strong> LinkedHashMap();
-<a name="186" href="#186">186</a> 
-<a name="187" href="#187">187</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="188" href="#188">188</a> <em class="jxr_javadoccomment">     * Use locally patched version for now.</em>
-<a name="189" href="#189">189</a> <em class="jxr_javadoccomment">     */</em>
-<a name="190" href="#190">190</a>     <strong class="jxr_keyword">private</strong> Maven2OsgiConverter m_maven2OsgiConverter = <strong class="jxr_keyword">new</strong> DefaultMaven2OsgiConverter();
-<a name="191" href="#191">191</a> 
-<a name="192" href="#192">192</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="193" href="#193">193</a> <em class="jxr_javadoccomment">     * The archive configuration to use.</em>
-<a name="194" href="#194">194</a> <em class="jxr_javadoccomment">     *</em>
-<a name="195" href="#195">195</a> <em class="jxr_javadoccomment">     * @parameter</em>
-<a name="196" href="#196">196</a> <em class="jxr_javadoccomment">     */</em>
-<a name="197" href="#197">197</a>     <strong class="jxr_keyword">private</strong> MavenArchiveConfiguration archive; <em class="jxr_comment">// accessed indirectly in JarPluginConfiguration</em>
-<a name="198" href="#198">198</a> 
-<a name="199" href="#199">199</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="200" href="#200">200</a> <em class="jxr_javadoccomment">     * @parameter default-value="${session}"</em>
-<a name="201" href="#201">201</a> <em class="jxr_javadoccomment">     * @required</em>
-<a name="202" href="#202">202</a> <em class="jxr_javadoccomment">     * @readonly</em>
-<a name="203" href="#203">203</a> <em class="jxr_javadoccomment">     */</em>
-<a name="204" href="#204">204</a>     <strong class="jxr_keyword">private</strong> MavenSession m_mavenSession;
-<a name="205" href="#205">205</a> 
-<a name="206" href="#206">206</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="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_RESOURCES = <span class="jxr_string">"{maven-resources}"</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 LOCAL_PACKAGES = <span class="jxr_string">"{local-packages}"</span>;
-<a name="209" href="#209">209</a> 
-<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[] EMPTY_STRING_ARRAY =
-<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[] DEFAULT_INCLUDES =
-<a name="213" href="#213">213</a>         { <span class="jxr_string">"**/**"</span> };
-<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 NL = System.getProperty( <span class="jxr_string">"line.separator"</span> );
+<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> 
-<a name="218" href="#218">218</a>     <strong class="jxr_keyword">protected</strong> Maven2OsgiConverter getMaven2OsgiConverter()
-<a name="219" href="#219">219</a>     {
-<a name="220" href="#220">220</a>         <strong class="jxr_keyword">return</strong> m_maven2OsgiConverter;
-<a name="221" href="#221">221</a>     }
-<a name="222" href="#222">222</a> 
-<a name="223" href="#223">223</a> 
-<a name="224" href="#224">224</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setMaven2OsgiConverter( Maven2OsgiConverter maven2OsgiConverter )
-<a name="225" href="#225">225</a>     {
-<a name="226" href="#226">226</a>         m_maven2OsgiConverter = maven2OsgiConverter;
-<a name="227" href="#227">227</a>     }
-<a name="228" href="#228">228</a> 
-<a name="229" href="#229">229</a> 
-<a name="230" href="#230">230</a>     <strong class="jxr_keyword">protected</strong> MavenProject getProject()
-<a name="231" href="#231">231</a>     {
-<a name="232" href="#232">232</a>         <strong class="jxr_keyword">return</strong> project;
-<a name="233" href="#233">233</a>     }
-<a name="234" href="#234">234</a> 
-<a name="235" href="#235">235</a> 
-<a name="236" href="#236">236</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="237" href="#237">237</a> <em class="jxr_javadoccomment">     * @see org.apache.maven.plugin.AbstractMojo#execute()</em>
-<a name="238" href="#238">238</a> <em class="jxr_javadoccomment">     */</em>
-<a name="239" href="#239">239</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="240" href="#240">240</a>     {
-<a name="241" href="#241">241</a>         Properties properties = <strong class="jxr_keyword">new</strong> Properties();
-<a name="242" href="#242">242</a>         String projectType = getProject().getArtifact().getType();
-<a name="243" href="#243">243</a> 
-<a name="244" href="#244">244</a>         <em class="jxr_comment">// ignore unsupported project types, useful when bundleplugin is configured in parent pom</em>
-<a name="245" href="#245">245</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( projectType ) )
-<a name="246" href="#246">246</a>         {
-<a name="247" href="#247">247</a>             getLog().warn(
-<a name="248" href="#248">248</a>                 <span class="jxr_string">"Ignoring project type "</span> + projectType + <span class="jxr_string">" - supportedProjectTypes = "</span> + supportedProjectTypes );
-<a name="249" href="#249">249</a>             <strong class="jxr_keyword">return</strong>;
-<a name="250" href="#250">250</a>         }
-<a name="251" href="#251">251</a> 
-<a name="252" href="#252">252</a>         execute( getProject(), instructions, properties );
-<a name="253" href="#253">253</a>     }
-<a name="254" href="#254">254</a> 
-<a name="255" href="#255">255</a> 
-<a name="256" href="#256">256</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject currentProject, Map originalInstructions, Properties properties )
-<a name="257" href="#257">257</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="258" href="#258">258</a>     {
-<a name="259" href="#259">259</a>         <strong class="jxr_keyword">try</strong>
-<a name="260" href="#260">260</a>         {
-<a name="261" href="#261">261</a>             execute( currentProject, originalInstructions, properties, getClasspath( currentProject ) );
-<a name="262" href="#262">262</a>         }
-<a name="263" href="#263">263</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="264" href="#264">264</a>         {
-<a name="265" href="#265">265</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="266" href="#266">266</a>         }
-<a name="267" href="#267">267</a>     }
-<a name="268" href="#268">268</a> 
-<a name="269" href="#269">269</a> 
-<a name="270" href="#270">270</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="271" href="#271">271</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> Map transformDirectives( Map originalInstructions )
-<a name="272" href="#272">272</a>     {
-<a name="273" href="#273">273</a>         Map transformedInstructions = <strong class="jxr_keyword">new</strong> LinkedHashMap();
-<a name="274" href="#274">274</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = originalInstructions.entrySet().iterator(); i.hasNext(); )
-<a name="275" href="#275">275</a>         {
-<a name="276" href="#276">276</a>             Map.Entry e = ( Map.Entry ) i.next();
-<a name="277" href="#277">277</a> 
-<a name="278" href="#278">278</a>             String key = ( String ) e.getKey();
-<a name="279" href="#279">279</a>             <strong class="jxr_keyword">if</strong> ( key.startsWith( <span class="jxr_string">"_"</span> ) )
-<a name="280" href="#280">280</a>             {
-<a name="281" href="#281">281</a>                 key = <span class="jxr_string">"-"</span> + key.substring( 1 );
-<a name="282" href="#282">282</a>             }
-<a name="283" href="#283">283</a> 
-<a name="284" href="#284">284</a>             String value = ( String ) e.getValue();
-<a name="285" href="#285">285</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == value )
-<a name="286" href="#286">286</a>             {
-<a name="287" href="#287">287</a>                 value = <span class="jxr_string">""</span>;
-<a name="288" href="#288">288</a>             }
-<a name="289" href="#289">289</a>             <strong class="jxr_keyword">else</strong>
-<a name="290" href="#290">290</a>             {
-<a name="291" href="#291">291</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="292" href="#292">292</a>             }
-<a name="293" href="#293">293</a> 
-<a name="294" href="#294">294</a>             <strong class="jxr_keyword">if</strong> ( Analyzer.WAB.equals( key ) &amp;&amp; value.length() == 0 )
-<a name="295" href="#295">295</a>             {
-<a name="296" href="#296">296</a>                 <em class="jxr_comment">// provide useful default</em>
-<a name="297" href="#297">297</a>                 value = <span class="jxr_string">"src/main/webapp/"</span>;
-<a name="298" href="#298">298</a>             }
-<a name="299" href="#299">299</a> 
-<a name="300" href="#300">300</a>             transformedInstructions.put( key, value );
-<a name="301" href="#301">301</a>         }
-<a name="302" href="#302">302</a>         <strong class="jxr_keyword">return</strong> transformedInstructions;
-<a name="303" href="#303">303</a>     }
-<a name="304" href="#304">304</a> 
-<a name="305" href="#305">305</a> 
-<a name="306" href="#306">306</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> reportErrors( String prefix, Analyzer analyzer )
-<a name="307" href="#307">307</a>     {
-<a name="308" href="#308">308</a>         List errors = analyzer.getErrors();
-<a name="309" href="#309">309</a>         List warnings = analyzer.getWarnings();
-<a name="310" href="#310">310</a> 
-<a name="311" href="#311">311</a>         <strong class="jxr_keyword">for</strong> ( Iterator w = warnings.iterator(); w.hasNext(); )
-<a name="312" href="#312">312</a>         {
-<a name="313" href="#313">313</a>             String msg = ( String ) w.next();
-<a name="314" href="#314">314</a>             getLog().warn( prefix + <span class="jxr_string">" : "</span> + msg );
-<a name="315" href="#315">315</a>         }
-<a name="316" href="#316">316</a> 
-<a name="317" href="#317">317</a>         <strong class="jxr_keyword">boolean</strong> hasErrors = false;
-<a name="318" href="#318">318</a>         String fileNotFound = <span class="jxr_string">"Input file does not exist: "</span>;
-<a name="319" href="#319">319</a>         <strong class="jxr_keyword">for</strong> ( Iterator e = errors.iterator(); e.hasNext(); )
-<a name="320" href="#320">320</a>         {
-<a name="321" href="#321">321</a>             String msg = ( String ) e.next();
-<a name="322" href="#322">322</a>             <strong class="jxr_keyword">if</strong> ( msg.startsWith( fileNotFound ) &amp;&amp; msg.endsWith( <span class="jxr_string">"~"</span> ) )
-<a name="323" href="#323">323</a>             {
-<a name="324" href="#324">324</a>                 <em class="jxr_comment">// treat as warning; this error happens when you have duplicate entries in Include-Resource</em>
-<a name="325" href="#325">325</a>                 String duplicate = Processor.removeDuplicateMarker( msg.substring( fileNotFound.length() ) );
-<a name="326" href="#326">326</a>                 getLog().warn( prefix + <span class="jxr_string">" : Duplicate path '"</span> + duplicate + <span class="jxr_string">"' in Include-Resource"</span> );
-<a name="327" href="#327">327</a>             }
-<a name="328" href="#328">328</a>             <strong class="jxr_keyword">else</strong>
-<a name="329" href="#329">329</a>             {
-<a name="330" href="#330">330</a>                 getLog().error( prefix + <span class="jxr_string">" : "</span> + msg );
-<a name="331" href="#331">331</a>                 hasErrors = <strong class="jxr_keyword">true</strong>;
-<a name="332" href="#332">332</a>             }
-<a name="333" href="#333">333</a>         }
-<a name="334" href="#334">334</a>         <strong class="jxr_keyword">return</strong> hasErrors;
-<a name="335" href="#335">335</a>     }
-<a name="336" href="#336">336</a> 
-<a name="337" href="#337">337</a> 
-<a name="338" href="#338">338</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject currentProject, Map originalInstructions, Properties properties,
-<a name="339" href="#339">339</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="340" href="#340">340</a>     {
-<a name="341" href="#341">341</a>         <strong class="jxr_keyword">try</strong>
-<a name="342" href="#342">342</a>         {
-<a name="343" href="#343">343</a>             File jarFile = <strong class="jxr_keyword">new</strong> File( getBuildDirectory(), getBundleName( currentProject ) );
-<a name="344" href="#344">344</a>             Builder builder = buildOSGiBundle( currentProject, originalInstructions, properties, classpath );
-<a name="345" href="#345">345</a>             <strong class="jxr_keyword">boolean</strong> hasErrors = reportErrors( <span class="jxr_string">"Bundle "</span> + currentProject.getArtifact(), builder );
-<a name="346" href="#346">346</a>             <strong class="jxr_keyword">if</strong> ( hasErrors )
-<a name="347" href="#347">347</a>             {
-<a name="348" href="#348">348</a>                 String failok = builder.getProperty( <span class="jxr_string">"-failok"</span> );
-<a name="349" href="#349">349</a>                 <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == failok || <span class="jxr_string">"false"</span>.equalsIgnoreCase( failok ) )
-<a name="350" href="#350">350</a>                 {
-<a name="351" href="#351">351</a>                     jarFile.delete();
-<a name="352" href="#352">352</a> 
-<a name="353" href="#353">353</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="354" href="#354">354</a>                 }
-<a name="355" href="#355">355</a>             }
-<a name="356" href="#356">356</a> 
-<a name="357" href="#357">357</a>             <em class="jxr_comment">// attach bundle to maven project</em>
-<a name="358" href="#358">358</a>             jarFile.getParentFile().mkdirs();
-<a name="359" href="#359">359</a>             builder.getJar().write( jarFile );
-<a name="360" href="#360">360</a> 
-<a name="361" href="#361">361</a>             Artifact mainArtifact = currentProject.getArtifact();
+<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="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="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="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="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="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="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="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="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>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"bundle"</span>.equals( mainArtifact.getType() ) )
-<a name="364" href="#364">364</a>             {
-<a name="365" href="#365">365</a>                 <em class="jxr_comment">// workaround for MNG-1682: force maven to install artifact using the "jar" handler</em>
-<a name="366" href="#366">366</a>                 mainArtifact.setArtifactHandler( m_artifactHandlerManager.getArtifactHandler( <span class="jxr_string">"jar"</span> ) );
-<a name="367" href="#367">367</a>             }
-<a name="368" href="#368">368</a> 
-<a name="369" href="#369">369</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == classifier || classifier.trim().length() == 0 )
-<a name="370" href="#370">370</a>             {
-<a name="371" href="#371">371</a>                 mainArtifact.setFile( jarFile );
-<a name="372" href="#372">372</a>             }
-<a name="373" href="#373">373</a>             <strong class="jxr_keyword">else</strong>
-<a name="374" href="#374">374</a>             {
-<a name="375" href="#375">375</a>                 m_projectHelper.attachArtifact( currentProject, jarFile, classifier );
-<a name="376" href="#376">376</a>             }
-<a name="377" href="#377">377</a> 
-<a name="378" href="#378">378</a>             <strong class="jxr_keyword">if</strong> ( unpackBundle )
-<a name="379" href="#379">379</a>             {
-<a name="380" href="#380">380</a>                 unpackBundle( jarFile );
-<a name="381" href="#381">381</a>             }
-<a name="382" href="#382">382</a> 
-<a name="383" href="#383">383</a>             <strong class="jxr_keyword">if</strong> ( manifestLocation != <strong class="jxr_keyword">null</strong> )
-<a name="384" href="#384">384</a>             {
-<a name="385" href="#385">385</a>                 File outputFile = <strong class="jxr_keyword">new</strong> File( manifestLocation, <span class="jxr_string">"MANIFEST.MF"</span> );
-<a name="386" href="#386">386</a> 
-<a name="387" href="#387">387</a>                 <strong class="jxr_keyword">try</strong>
-<a name="388" href="#388">388</a>                 {
-<a name="389" href="#389">389</a>                     Manifest manifest = builder.getJar().getManifest();
-<a name="390" href="#390">390</a>                     ManifestPlugin.writeManifest( manifest, outputFile );
-<a name="391" href="#391">391</a>                 }
-<a name="392" href="#392">392</a>                 <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="393" href="#393">393</a>                 {
-<a name="394" href="#394">394</a>                     getLog().error( <span class="jxr_string">"Error trying to write Manifest to file "</span> + outputFile, e );
-<a name="395" href="#395">395</a>                 }
-<a name="396" href="#396">396</a>             }
-<a name="397" href="#397">397</a> 
-<a name="398" href="#398">398</a>             <em class="jxr_comment">// cleanup...</em>
-<a name="399" href="#399">399</a>             builder.close();
-<a name="400" href="#400">400</a>         }
-<a name="401" href="#401">401</a>         <strong class="jxr_keyword">catch</strong> ( MojoFailureException e )
-<a name="402" href="#402">402</a>         {
-<a name="403" href="#403">403</a>             getLog().error( e.getLocalizedMessage() );
-<a name="404" href="#404">404</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="405" href="#405">405</a>         }
-<a name="406" href="#406">406</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="407" href="#407">407</a>         {
-<a name="408" href="#408">408</a>             getLog().error( <span class="jxr_string">"An internal error occurred"</span>, e );
-<a name="409" href="#409">409</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="410" href="#410">410</a>         }
-<a name="411" href="#411">411</a>     }
-<a name="412" href="#412">412</a> 
-<a name="413" href="#413">413</a> 
-<a name="414" href="#414">414</a>     <strong class="jxr_keyword">protected</strong> Builder getOSGiBuilder( MavenProject currentProject, Map originalInstructions, Properties properties,
-<a name="415" href="#415">415</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> Exception
-<a name="416" href="#416">416</a>     {
-<a name="417" href="#417">417</a>         properties.putAll( getDefaultProperties( currentProject ) );
-<a name="418" href="#418">418</a>         properties.putAll( transformDirectives( originalInstructions ) );
-<a name="419" href="#419">419</a> 
-<a name="420" href="#420">420</a>         Builder builder = <strong class="jxr_keyword">new</strong> Builder();
-<a name="421" href="#421">421</a>         builder.setBase( getBase( currentProject ) );
-<a name="422" href="#422">422</a>         builder.setProperties( properties );
-<a name="423" href="#423">423</a>         <strong class="jxr_keyword">if</strong> ( classpath != <strong class="jxr_keyword">null</strong> )
-<a name="424" href="#424">424</a>         {
-<a name="425" href="#425">425</a>             builder.setClasspath( classpath );
-<a name="426" href="#426">426</a>         }
-<a name="427" href="#427">427</a> 
-<a name="428" href="#428">428</a>         <strong class="jxr_keyword">return</strong> builder;
-<a name="429" href="#429">429</a>     }
-<a name="430" href="#430">430</a> 
-<a name="431" href="#431">431</a> 
-<a name="432" href="#432">432</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="433" href="#433">433</a>     {
-<a name="434" href="#434">434</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getBasedir() != <strong class="jxr_keyword">null</strong> )
-<a name="435" href="#435">435</a>         {
-<a name="436" href="#436">436</a>             <em class="jxr_comment">// update BND instructions to add included Maven resources</em>
-<a name="437" href="#437">437</a>             includeMavenResources( currentProject, builder, getLog() );
-<a name="438" href="#438">438</a> 
-<a name="439" href="#439">439</a>             <em class="jxr_comment">// calculate default export/private settings based on sources</em>
-<a name="440" href="#440">440</a>             addLocalPackages( outputDirectory, builder );
-<a name="441" href="#441">441</a>         }
-<a name="442" href="#442">442</a> 
-<a name="443" href="#443">443</a>         <em class="jxr_comment">// update BND instructions to embed selected Maven dependencies</em>
-<a name="444" href="#444">444</a>         Collection embeddableArtifacts = getEmbeddableArtifacts( currentProject, builder );
-<a name="445" href="#445">445</a>         <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyEmbedder.html">DependencyEmbedder</a>( getLog(), embeddableArtifacts ).processHeaders( builder );
-<a name="446" href="#446">446</a> 
-<a name="447" href="#447">447</a>         <strong class="jxr_keyword">if</strong> ( dumpInstructions != <strong class="jxr_keyword">null</strong> || getLog().isDebugEnabled() )
-<a name="448" href="#448">448</a>         {
-<a name="449" href="#449">449</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
-<a name="450" href="#450">450</a>             getLog().debug( <span class="jxr_string">"BND Instructions:"</span> + NL + dumpInstructions( builder.getProperties(), buf ) );
-<a name="451" href="#451">451</a>             <strong class="jxr_keyword">if</strong> ( dumpInstructions != <strong class="jxr_keyword">null</strong> )
-<a name="452" href="#452">452</a>             {
-<a name="453" href="#453">453</a>                 getLog().info( <span class="jxr_string">"Writing BND instructions to "</span> + dumpInstructions );
-<a name="454" href="#454">454</a>                 dumpInstructions.getParentFile().mkdirs();
-<a name="455" href="#455">455</a>                 FileUtils.fileWrite( dumpInstructions, <span class="jxr_string">"# BND instructions"</span> + NL + buf );
-<a name="456" href="#456">456</a>             }
-<a name="457" href="#457">457</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="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="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="459" href="#459">459</a>         <strong class="jxr_keyword">if</strong> ( dumpClasspath != <strong class="jxr_keyword">null</strong> || getLog().isDebugEnabled() )
-<a name="460" href="#460">460</a>         {
-<a name="461" href="#461">461</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
-<a name="462" href="#462">462</a>             getLog().debug( <span class="jxr_string">"BND Classpath:"</span> + NL + dumpClasspath( builder.getClasspath(), buf ) );
-<a name="463" href="#463">463</a>             <strong class="jxr_keyword">if</strong> ( dumpClasspath != <strong class="jxr_keyword">null</strong> )
-<a name="464" href="#464">464</a>             {
-<a name="465" href="#465">465</a>                 getLog().info( <span class="jxr_string">"Writing BND classpath to "</span> + dumpClasspath );
-<a name="466" href="#466">466</a>                 dumpClasspath.getParentFile().mkdirs();
-<a name="467" href="#467">467</a>                 FileUtils.fileWrite( dumpClasspath, <span class="jxr_string">"# BND classpath"</span> + NL + buf );
-<a name="468" href="#468">468</a>             }
-<a name="469" href="#469">469</a>         }
-<a name="470" href="#470">470</a>     }
-<a name="471" href="#471">471</a> 
-<a name="472" href="#472">472</a> 
-<a name="473" href="#473">473</a>     <strong class="jxr_keyword">protected</strong> Builder buildOSGiBundle( MavenProject currentProject, Map originalInstructions, Properties properties,
-<a name="474" href="#474">474</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> Exception
-<a name="475" href="#475">475</a>     {
-<a name="476" href="#476">476</a>         Builder builder = getOSGiBuilder( currentProject, originalInstructions, properties, classpath );
-<a name="477" href="#477">477</a> 
-<a name="478" href="#478">478</a>         addMavenInstructions( currentProject, builder );
-<a name="479" href="#479">479</a> 
-<a name="480" href="#480">480</a>         builder.build();
-<a name="481" href="#481">481</a> 
-<a name="482" href="#482">482</a>         mergeMavenManifest( currentProject, builder );
-<a name="483" href="#483">483</a> 
-<a name="484" href="#484">484</a>         <strong class="jxr_keyword">return</strong> builder;
-<a name="485" href="#485">485</a>     }
-<a name="486" href="#486">486</a> 
-<a name="487" href="#487">487</a> 
-<a name="488" href="#488">488</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpInstructions( Properties properties, StringBuilder buf )
-<a name="489" href="#489">489</a>     {
-<a name="490" href="#490">490</a>         <strong class="jxr_keyword">try</strong>
-<a name="491" href="#491">491</a>         {
-<a name="492" href="#492">492</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
-<a name="493" href="#493">493</a>             Properties stringProperties = <strong class="jxr_keyword">new</strong> Properties();
-<a name="494" href="#494">494</a>             <strong class="jxr_keyword">for</strong> ( Enumeration e = properties.propertyNames(); e.hasMoreElements(); )
-<a name="495" href="#495">495</a>             {
-<a name="496" href="#496">496</a>                 <em class="jxr_comment">// we can only store String properties</em>
-<a name="497" href="#497">497</a>                 String key = ( String ) e.nextElement();
-<a name="498" href="#498">498</a>                 String value = properties.getProperty( key );
-<a name="499" href="#499">499</a>                 <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
-<a name="500" href="#500">500</a>                 {
-<a name="501" href="#501">501</a>                     stringProperties.setProperty( key, value );
-<a name="502" href="#502">502</a>                 }
-<a name="503" href="#503">503</a>             }
-<a name="504" href="#504">504</a>             ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
-<a name="505" href="#505">505</a>             stringProperties.store( out, <strong class="jxr_keyword">null</strong> ); <em class="jxr_comment">// properties encoding is 8859_1</em>
-<a name="506" href="#506">506</a>             buf.append( out.toString( <span class="jxr_string">"8859_1"</span> ) );
-<a name="507" href="#507">507</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
-<a name="508" href="#508">508</a>         }
-<a name="509" href="#509">509</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
-<a name="510" href="#510">510</a>         {
-<a name="511" href="#511">511</a>             <em class="jxr_comment">// ignore...</em>
-<a name="512" href="#512">512</a>         }
-<a name="513" href="#513">513</a>         <strong class="jxr_keyword">return</strong> buf;
-<a name="514" href="#514">514</a>     }
-<a name="515" href="#515">515</a> 
-<a name="516" href="#516">516</a> 
-<a name="517" href="#517">517</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpClasspath( List classpath, StringBuilder buf )
-<a name="518" href="#518">518</a>     {
-<a name="519" href="#519">519</a>         <strong class="jxr_keyword">try</strong>
-<a name="520" href="#520">520</a>         {
-<a name="521" href="#521">521</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
-<a name="522" href="#522">522</a>             buf.append( <span class="jxr_string">"-classpath:&#92;&#92;"</span> + NL );
-<a name="523" href="#523">523</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = classpath.iterator(); i.hasNext(); )
-<a name="524" href="#524">524</a>             {
-<a name="525" href="#525">525</a>                 File path = ( ( Jar ) i.next() ).getSource();
-<a name="526" href="#526">526</a>                 <strong class="jxr_keyword">if</strong> ( path != <strong class="jxr_keyword">null</strong> )
-<a name="527" href="#527">527</a>                 {
-<a name="528" href="#528">528</a>                     buf.append( ' ' + path.toString() + ( i.hasNext() ? <span class="jxr_string">",&#92;&#92;"</span> : <span class="jxr_string">""</span> ) + NL );
-<a name="529" href="#529">529</a>                 }
-<a name="530" href="#530">530</a>             }
-<a name="531" href="#531">531</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
-<a name="532" href="#532">532</a>         }
-<a name="533" href="#533">533</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
-<a name="534" href="#534">534</a>         {
-<a name="535" href="#535">535</a>             <em class="jxr_comment">// ignore...</em>
-<a name="536" href="#536">536</a>         }
-<a name="537" href="#537">537</a>         <strong class="jxr_keyword">return</strong> buf;
-<a name="538" href="#538">538</a>     }
-<a name="539" href="#539">539</a> 
-<a name="540" href="#540">540</a> 
-<a name="541" href="#541">541</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpManifest( Manifest manifest, StringBuilder buf )
-<a name="542" href="#542">542</a>     {
-<a name="543" href="#543">543</a>         <strong class="jxr_keyword">try</strong>
-<a name="544" href="#544">544</a>         {
-<a name="545" href="#545">545</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
-<a name="546" href="#546">546</a>             ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
-<a name="547" href="#547">547</a>             manifest.write( out ); <em class="jxr_comment">// manifest encoding is UTF8</em>
-<a name="548" href="#548">548</a>             buf.append( out.toString( <span class="jxr_string">"UTF8"</span> ) );
-<a name="549" href="#549">549</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
-<a name="550" href="#550">550</a>         }
-<a name="551" href="#551">551</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
-<a name="552" href="#552">552</a>         {
-<a name="553" href="#553">553</a>             <em class="jxr_comment">// ignore...</em>
-<a name="554" href="#554">554</a>         }
-<a name="555" href="#555">555</a>         <strong class="jxr_keyword">return</strong> buf;
-<a name="556" href="#556">556</a>     }
-<a name="557" href="#557">557</a> 
-<a name="558" href="#558">558</a> 
-<a name="559" href="#559">559</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="560" href="#560">560</a>     {
-<a name="561" href="#561">561</a>         <em class="jxr_comment">// pass maven resource paths onto BND analyzer</em>
-<a name="562" href="#562">562</a>         <strong class="jxr_keyword">final</strong> String mavenResourcePaths = getMavenResourcePaths( currentProject );
-<a name="563" href="#563">563</a>         <strong class="jxr_keyword">final</strong> String includeResource = ( String ) analyzer.getProperty( Analyzer.INCLUDE_RESOURCE );
-<a name="564" href="#564">564</a>         <strong class="jxr_keyword">if</strong> ( includeResource != <strong class="jxr_keyword">null</strong> )
-<a name="565" href="#565">565</a>         {
-<a name="566" href="#566">566</a>             <strong class="jxr_keyword">if</strong> ( includeResource.indexOf( MAVEN_RESOURCES ) &gt;= 0 )
-<a name="567" href="#567">567</a>             {
-<a name="568" href="#568">568</a>                 <em class="jxr_comment">// if there is no maven resource path, we do a special treatment and replace</em>
-<a name="569" href="#569">569</a>                 <em class="jxr_comment">// every occurance of MAVEN_RESOURCES and a following comma with an empty string</em>
-<a name="570" href="#570">570</a>                 <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() == 0 )
-<a name="571" href="#571">571</a>                 {
-<a name="572" href="#572">572</a>                     String cleanedResource = removeTagFromInstruction( includeResource, MAVEN_RESOURCES );
-<a name="573" href="#573">573</a>                     <strong class="jxr_keyword">if</strong> ( cleanedResource.length() &gt; 0 )
-<a name="574" href="#574">574</a>                     {
-<a name="575" href="#575">575</a>                         analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, cleanedResource );
-<a name="576" href="#576">576</a>                     }
-<a name="577" href="#577">577</a>                     <strong class="jxr_keyword">else</strong>
-<a name="578" href="#578">578</a>                     {
-<a name="579" href="#579">579</a>                         analyzer.unsetProperty( Analyzer.INCLUDE_RESOURCE );
-<a name="580" href="#580">580</a>                     }
-<a name="581" href="#581">581</a>                 }
-<a name="582" href="#582">582</a>                 <strong class="jxr_keyword">else</strong>
-<a name="583" href="#583">583</a>                 {
-<a name="584" href="#584">584</a>                     String combinedResource = StringUtils
-<a name="585" href="#585">585</a>                         .replace( includeResource, MAVEN_RESOURCES, mavenResourcePaths );
-<a name="586" href="#586">586</a>                     analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, combinedResource );
-<a name="587" href="#587">587</a>                 }
-<a name="588" href="#588">588</a>             }
-<a name="589" href="#589">589</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() &gt; 0 )
+<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="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="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="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="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>                 log.warn( Analyzer.INCLUDE_RESOURCE + <span class="jxr_string">": overriding "</span> + mavenResourcePaths + <span class="jxr_string">" with "</span> + includeResource
-<a name="592" href="#592">592</a>                     + <span class="jxr_string">" (add "</span> + MAVEN_RESOURCES + <span class="jxr_string">" if you want to include the maven resources)"</span> );
-<a name="593" href="#593">593</a>             }
-<a name="594" href="#594">594</a>         }
-<a name="595" href="#595">595</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() &gt; 0 )
-<a name="596" href="#596">596</a>         {
-<a name="597" href="#597">597</a>             analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, mavenResourcePaths );
+<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>     }
-<a name="600" href="#600">600</a> 
-<a name="601" href="#601">601</a> 
-<a name="602" href="#602">602</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="603" href="#603">603</a>     {
-<a name="604" href="#604">604</a>         Jar jar = builder.getJar();
+<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="606" href="#606">606</a>         <strong class="jxr_keyword">if</strong> ( getLog().isDebugEnabled() )
-<a name="607" href="#607">607</a>         {
-<a name="608" href="#608">608</a>             getLog().debug( <span class="jxr_string">"BND Manifest:"</span> + NL + dumpManifest( jar.getManifest(), <strong class="jxr_keyword">new</strong> StringBuilder() ) );
-<a name="609" href="#609">609</a>         }
-<a name="610" href="#610">610</a> 
-<a name="611" href="#611">611</a>         <strong class="jxr_keyword">boolean</strong> addMavenDescriptor = currentProject.getBasedir() != <strong class="jxr_keyword">null</strong>;
-<a name="612" href="#612">612</a> 
-<a name="613" href="#613">613</a>         <strong class="jxr_keyword">try</strong>
-<a name="614" href="#614">614</a>         {
-<a name="615" href="#615">615</a>             <em class="jxr_comment">/*</em>
-<a name="616" href="#616">616</a> <em class="jxr_comment">             * Grab customized manifest entries from the maven-jar-plugin configuration</em>
-<a name="617" href="#617">617</a> <em class="jxr_comment">             */</em>
-<a name="618" href="#618">618</a>             MavenArchiveConfiguration archiveConfig = JarPluginConfiguration.getArchiveConfiguration( currentProject );
-<a name="619" href="#619">619</a>             String mavenManifestText = <strong class="jxr_keyword">new</strong> MavenArchiver().getManifest( currentProject, archiveConfig ).toString();
-<a name="620" href="#620">620</a>             addMavenDescriptor = addMavenDescriptor &amp;&amp; archiveConfig.isAddMavenDescriptor();
-<a name="621" href="#621">621</a> 
-<a name="622" href="#622">622</a>             Manifest mavenManifest = <strong class="jxr_keyword">new</strong> Manifest();
+<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="624" href="#624">624</a>             <em class="jxr_comment">// First grab the external manifest file (if specified)</em>
-<a name="625" href="#625">625</a>             File externalManifestFile = archiveConfig.getManifestFile();
-<a name="626" href="#626">626</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != externalManifestFile &amp;&amp; externalManifestFile.exists() )
-<a name="627" href="#627">627</a>             {
-<a name="628" href="#628">628</a>                 InputStream mis = <strong class="jxr_keyword">new</strong> FileInputStream( externalManifestFile );
-<a name="629" href="#629">629</a>                 mavenManifest.read( mis );
-<a name="630" href="#630">630</a>                 mis.close();
-<a name="631" href="#631">631</a>             }
-<a name="632" href="#632">632</a> 
-<a name="633" href="#633">633</a>             <em class="jxr_comment">// Then apply customized entries from the jar plugin; note: manifest encoding is UTF8</em>
-<a name="634" href="#634">634</a>             mavenManifest.read( <strong class="jxr_keyword">new</strong> ByteArrayInputStream( mavenManifestText.getBytes( <span class="jxr_string">"UTF8"</span> ) ) );
-<a name="635" href="#635">635</a> 
-<a name="636" href="#636">636</a>             <strong class="jxr_keyword">if</strong> ( !archiveConfig.isManifestSectionsEmpty() )
-<a name="637" href="#637">637</a>             {
-<a name="638" href="#638">638</a>                 <em class="jxr_comment">/*</em>
-<a name="639" href="#639">639</a> <em class="jxr_comment">                 * Add customized manifest sections (for some reason MavenArchiver doesn't do this for us)</em>
-<a name="640" href="#640">640</a> <em class="jxr_comment">                 */</em>
-<a name="641" href="#641">641</a>                 List sections = archiveConfig.getManifestSections();
-<a name="642" href="#642">642</a>                 <strong class="jxr_keyword">for</strong> ( Iterator i = sections.iterator(); i.hasNext(); )
-<a name="643" href="#643">643</a>                 {
-<a name="644" href="#644">644</a>                     ManifestSection section = ( ManifestSection ) i.next();
-<a name="645" href="#645">645</a>                     Attributes attributes = <strong class="jxr_keyword">new</strong> Attributes();
-<a name="646" href="#646">646</a> 
-<a name="647" href="#647">647</a>                     <strong class="jxr_keyword">if</strong> ( !section.isManifestEntriesEmpty() )
-<a name="648" href="#648">648</a>                     {
-<a name="649" href="#649">649</a>                         Map entries = section.getManifestEntries();
-<a name="650" href="#650">650</a>                         <strong class="jxr_keyword">for</strong> ( Iterator j = entries.entrySet().iterator(); j.hasNext(); )
-<a name="651" href="#651">651</a>                         {
-<a name="652" href="#652">652</a>                             Map.Entry entry = ( Map.Entry ) j.next();
-<a name="653" href="#653">653</a>                             attributes.putValue( ( String ) entry.getKey(), ( String ) entry.getValue() );
-<a name="654" href="#654">654</a>                         }
-<a name="655" href="#655">655</a>                     }
-<a name="656" href="#656">656</a> 
-<a name="657" href="#657">657</a>                     mavenManifest.getEntries().put( section.getName(), attributes );
-<a name="658" href="#658">658</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>             Attributes mainMavenAttributes = mavenManifest.getMainAttributes();
-<a name="662" href="#662">662</a>             mainMavenAttributes.putValue( <span class="jxr_string">"Created-By"</span>, <span class="jxr_string">"Apache Maven Bundle Plugin"</span> );
-<a name="663" href="#663">663</a> 
-<a name="664" href="#664">664</a>             String[] removeHeaders = builder.getProperty( Constants.REMOVEHEADERS, <span class="jxr_string">""</span> ).split( <span class="jxr_string">","</span> );
-<a name="665" href="#665">665</a> 
-<a name="666" href="#666">666</a>             <em class="jxr_comment">// apply -removeheaders to the custom manifest</em>
-<a name="667" href="#667">667</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; removeHeaders.length; i++ )
-<a name="668" href="#668">668</a>             {
-<a name="669" href="#669">669</a>                 <strong class="jxr_keyword">for</strong> ( Iterator j = mainMavenAttributes.keySet().iterator(); j.hasNext(); )
-<a name="670" href="#670">670</a>                 {
-<a name="671" href="#671">671</a>                     <strong class="jxr_keyword">if</strong> ( j.next().toString().matches( removeHeaders[i].trim() ) )
-<a name="672" href="#672">672</a>                     {
-<a name="673" href="#673">673</a>                         j.remove();
-<a name="674" href="#674">674</a>                     }
-<a name="675" href="#675">675</a>                 }
-<a name="676" href="#676">676</a>             }
-<a name="677" href="#677">677</a> 
-<a name="678" href="#678">678</a>             <em class="jxr_comment">/*</em>
-<a name="679" href="#679">679</a> <em class="jxr_comment">             * Overlay generated bundle manifest with customized entries</em>
-<a name="680" href="#680">680</a> <em class="jxr_comment">             */</em>
-<a name="681" href="#681">681</a>             Manifest bundleManifest = jar.getManifest();
-<a name="682" href="#682">682</a>             bundleManifest.getMainAttributes().putAll( mainMavenAttributes );
-<a name="683" href="#683">683</a>             bundleManifest.getEntries().putAll( mavenManifest.getEntries() );
-<a name="684" href="#684">684</a> 
-<a name="685" href="#685">685</a>             <em class="jxr_comment">// adjust the import package attributes so that optional dependencies use</em>
-<a name="686" href="#686">686</a>             <em class="jxr_comment">// optional resolution.</em>
-<a name="687" href="#687">687</a>             String importPackages = bundleManifest.getMainAttributes().getValue( <span class="jxr_string">"Import-Package"</span> );
-<a name="688" href="#688">688</a>             <strong class="jxr_keyword">if</strong> ( importPackages != <strong class="jxr_keyword">null</strong> )
-<a name="689" href="#689">689</a>             {
-<a name="690" href="#690">690</a>                 Set optionalPackages = getOptionalPackages( currentProject );
-<a name="691" href="#691">691</a> 
-<a name="692" href="#692">692</a>                 Map&lt;String, Map&lt;String, String&gt;&gt; values = <strong class="jxr_keyword">new</strong> Analyzer().parseHeader( importPackages );
-<a name="693" href="#693">693</a>                 <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, Map&lt;String, String&gt;&gt; entry : values.entrySet() )
-<a name="694" href="#694">694</a>                 {
-<a name="695" href="#695">695</a>                     String pkg = entry.getKey();
-<a name="696" href="#696">696</a>                     Map&lt;String, String&gt; options = entry.getValue();
-<a name="697" href="#697">697</a>                     <strong class="jxr_keyword">if</strong> ( !options.containsKey( <span class="jxr_string">"resolution:"</span> ) &amp;&amp; optionalPackages.contains( pkg ) )
-<a name="698" href="#698">698</a>                     {
-<a name="699" href="#699">699</a>                         options.put( <span class="jxr_string">"resolution:"</span>, <span class="jxr_string">"optional"</span> );
-<a name="700" href="#700">700</a>                     }
-<a name="701" href="#701">701</a>                 }
-<a name="702" href="#702">702</a>                 String result = Processor.printClauses( values, <span class="jxr_string">"resolution:"</span> );
-<a name="703" href="#703">703</a>                 bundleManifest.getMainAttributes().putValue( <span class="jxr_string">"Import-Package"</span>, result );
-<a name="704" href="#704">704</a>             }
-<a name="705" href="#705">705</a> 
-<a name="706" href="#706">706</a>             jar.setManifest( bundleManifest );
-<a name="707" href="#707">707</a>         }
-<a name="708" href="#708">708</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="709" href="#709">709</a>         {
-<a name="710" href="#710">710</a>             getLog().warn( <span class="jxr_string">"Unable to merge Maven manifest: "</span> + e.getLocalizedMessage() );
-<a name="711" href="#711">711</a>         }
-<a name="712" href="#712">712</a> 
-<a name="713" href="#713">713</a>         <strong class="jxr_keyword">if</strong> ( addMavenDescriptor )
-<a name="714" href="#714">714</a>         {
-<a name="715" href="#715">715</a>             doMavenMetadata( currentProject, jar );
-<a name="716" href="#716">716</a>         }
-<a name="717" href="#717">717</a> 
-<a name="718" href="#718">718</a>         <strong class="jxr_keyword">if</strong> ( getLog().isDebugEnabled() )
-<a name="719" href="#719">719</a>         {
-<a name="720" href="#720">720</a>             getLog().debug( <span class="jxr_string">"Final Manifest:"</span> + NL + dumpManifest( jar.getManifest(), <strong class="jxr_keyword">new</strong> StringBuilder() ) );
-<a name="721" href="#721">721</a>         }
-<a name="722" href="#722">722</a> 
-<a name="723" href="#723">723</a>         builder.setJar( jar );
-<a name="724" href="#724">724</a>     }
-<a name="725" href="#725">725</a> 
-<a name="726" href="#726">726</a> 
-<a name="727" href="#727">727</a>     <strong class="jxr_keyword">protected</strong> Set getOptionalPackages( MavenProject currentProject ) <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException
-<a name="728" href="#728">728</a>     {
-<a name="729" href="#729">729</a>         ArrayList inscope = <strong class="jxr_keyword">new</strong> ArrayList();
-<a name="730" href="#730">730</a>         <strong class="jxr_keyword">final</strong> Collection artifacts = getSelectedDependencies( currentProject.getArtifacts() );
-<a name="731" href="#731">731</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = artifacts.iterator(); it.hasNext(); )
-<a name="732" href="#732">732</a>         {
-<a name="733" href="#733">733</a>             Artifact artifact = ( Artifact ) it.next();
-<a name="734" href="#734">734</a>             <strong class="jxr_keyword">if</strong> ( artifact.getArtifactHandler().isAddedToClasspath() )
+<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="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">if</strong> ( !Artifact.SCOPE_TEST.equals( artifact.getScope() ) )
+<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>                     inscope.add( artifact );
-<a name="739" href="#739">739</a>                 }
-<a name="740" href="#740">740</a>             }
-<a name="741" href="#741">741</a>         }
-<a name="742" href="#742">742</a> 
-<a name="743" href="#743">743</a>         HashSet optionalArtifactIds = <strong class="jxr_keyword">new</strong> HashSet();
-<a name="744" href="#744">744</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = inscope.iterator(); it.hasNext(); )
-<a name="745" href="#745">745</a>         {
-<a name="746" href="#746">746</a>             Artifact artifact = ( Artifact ) it.next();
-<a name="747" href="#747">747</a>             <strong class="jxr_keyword">if</strong> ( artifact.isOptional() )
-<a name="748" href="#748">748</a>             {
-<a name="749" href="#749">749</a>                 String id = artifact.toString();
-<a name="750" href="#750">750</a>                 <strong class="jxr_keyword">if</strong> ( artifact.getScope() != <strong class="jxr_keyword">null</strong> )
-<a name="751" href="#751">751</a>                 {
-<a name="752" href="#752">752</a>                     <em class="jxr_comment">// strip the scope...</em>
-<a name="753" href="#753">753</a>                     id = id.replaceFirst( <span class="jxr_string">":[^:]*$"</span>, <span class="jxr_string">""</span> );
-<a name="754" href="#754">754</a>                 }
-<a name="755" href="#755">755</a>                 optionalArtifactIds.add( id );
-<a name="756" href="#756">756</a>             }
-<a name="757" href="#757">757</a> 
-<a name="758" href="#758">758</a>         }
-<a name="759" href="#759">759</a> 
-<a name="760" href="#760">760</a>         HashSet required = <strong class="jxr_keyword">new</strong> HashSet();
-<a name="761" href="#761">761</a>         HashSet optional = <strong class="jxr_keyword">new</strong> HashSet();
-<a name="762" href="#762">762</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = inscope.iterator(); it.hasNext(); )
-<a name="763" href="#763">763</a>         {
-<a name="764" href="#764">764</a>             Artifact artifact = ( Artifact ) it.next();
-<a name="765" href="#765">765</a>             File file = getFile( artifact );
-<a name="766" href="#766">766</a>             <strong class="jxr_keyword">if</strong> ( file == <strong class="jxr_keyword">null</strong> )
-<a name="767" href="#767">767</a>             {
-<a name="768" href="#768">768</a>                 <strong class="jxr_keyword">continue</strong>;
-<a name="769" href="#769">769</a>             }
-<a name="770" href="#770">770</a> 
-<a name="771" href="#771">771</a>             Jar jar = <strong class="jxr_keyword">new</strong> Jar( artifact.getArtifactId(), file );
-<a name="772" href="#772">772</a>             <strong class="jxr_keyword">if</strong> ( isTransitivelyOptional( optionalArtifactIds, artifact ) )
-<a name="773" href="#773">773</a>             {
-<a name="774" href="#774">774</a>                 optional.addAll( jar.getPackages() );
-<a name="775" href="#775">775</a>             }
-<a name="776" href="#776">776</a>             <strong class="jxr_keyword">else</strong>
-<a name="777" href="#777">777</a>             {
-<a name="778" href="#778">778</a>                 required.addAll( jar.getPackages() );
-<a name="779" href="#779">779</a>             }
-<a name="780" href="#780">780</a>             jar.close();
-<a name="781" href="#781">781</a>         }
-<a name="782" href="#782">782</a> 
-<a name="783" href="#783">783</a>         optional.removeAll( required );
-<a name="784" href="#784">784</a>         <strong class="jxr_keyword">return</strong> optional;
-<a name="785" href="#785">785</a>     }
-<a name="786" href="#786">786</a> 
-<a name="787" href="#787">787</a> 
-<a name="788" href="#788">788</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="789" href="#789">789</a> <em class="jxr_javadoccomment">     * Check to see if any dependency along the dependency trail of</em>
-<a name="790" href="#790">790</a> <em class="jxr_javadoccomment">     * the artifact is optional.</em>
-<a name="791" href="#791">791</a> <em class="jxr_javadoccomment">     *</em>
-<a name="792" href="#792">792</a> <em class="jxr_javadoccomment">     * @param artifact</em>
-<a name="793" href="#793">793</a> <em class="jxr_javadoccomment">     */</em>
-<a name="794" href="#794">794</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isTransitivelyOptional( HashSet optionalArtifactIds, Artifact artifact )
+<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="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>         List trail = artifact.getDependencyTrail();
-<a name="797" href="#797">797</a>         <strong class="jxr_keyword">for</strong> ( Iterator iterator = trail.iterator(); iterator.hasNext(); )
-<a name="798" href="#798">798</a>         {
-<a name="799" href="#799">799</a>             String next = ( String ) iterator.next();
-<a name="800" href="#800">800</a>             <strong class="jxr_keyword">if</strong> ( optionalArtifactIds.contains( next ) )
-<a name="801" href="#801">801</a>             {
-<a name="802" href="#802">802</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
-<a name="803" href="#803">803</a>             }
-<a name="804" href="#804">804</a>         }
-<a name="805" href="#805">805</a>         <strong class="jxr_keyword">return</strong> false;
-<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>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> unpackBundle( File jarFile )
-<a name="810" href="#810">810</a>     {
-<a name="811" href="#811">811</a>         File outputDir = getOutputDirectory();
-<a name="812" href="#812">812</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == outputDir )
-<a name="813" href="#813">813</a>         {
-<a name="814" href="#814">814</a>             outputDir = <strong class="jxr_keyword">new</strong> File( getBuildDirectory(), <span class="jxr_string">"classes"</span> );
-<a name="815" href="#815">815</a>         }
-<a name="816" href="#816">816</a> 
-<a name="817" href="#817">817</a>         <strong class="jxr_keyword">try</strong>
-<a name="818" href="#818">818</a>         {
-<a name="819" href="#819">819</a>             <em class="jxr_comment">/*</em>
-<a name="820" href="#820">820</a> <em class="jxr_comment">             * this directory must exist before unpacking, otherwise the plexus</em>
-<a name="821" href="#821">821</a> <em class="jxr_comment">             * unarchiver decides to use the current working directory instead!</em>
-<a name="822" href="#822">822</a> <em class="jxr_comment">             */</em>
-<a name="823" href="#823">823</a>             <strong class="jxr_keyword">if</strong> ( !outputDir.exists() )
-<a name="824" href="#824">824</a>             {
-<a name="825" href="#825">825</a>                 outputDir.mkdirs();
-<a name="826" href="#826">826</a>             }
-<a name="827" href="#827">827</a> 
-<a name="828" href="#828">828</a>             UnArchiver unArchiver = m_archiverManager.getUnArchiver( <span class="jxr_string">"jar"</span> );
-<a name="829" href="#829">829</a>             unArchiver.setDestDirectory( outputDir );
-<a name="830" href="#830">830</a>             unArchiver.setSourceFile( jarFile );
-<a name="831" href="#831">831</a>             unArchiver.extract();
-<a name="832" href="#832">832</a>         }
-<a name="833" href="#833">833</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="834" href="#834">834</a>         {
-<a name="835" href="#835">835</a>             getLog().error( <span class="jxr_string">"Problem unpacking "</span> + jarFile + <span class="jxr_string">" to "</span> + outputDir, e );
-<a name="836" href="#836">836</a>         }
-<a name="837" href="#837">837</a>     }
-<a name="838" href="#838">838</a> 
-<a name="839" href="#839">839</a> 
-<a name="840" href="#840">840</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String removeTagFromInstruction( String instruction, String tag )
-<a name="841" href="#841">841</a>     {
-<a name="842" href="#842">842</a>         StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer();
-<a name="843" href="#843">843</a> 
-<a name="844" href="#844">844</a>         String[] clauses = instruction.split( <span class="jxr_string">","</span> );
-<a name="845" href="#845">845</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; clauses.length; i++ )
-<a name="846" href="#846">846</a>         {
-<a name="847" href="#847">847</a>             String clause = clauses[i].trim();
-<a name="848" href="#848">848</a>             <strong class="jxr_keyword">if</strong> ( !tag.equals( clause ) )
-<a name="849" href="#849">849</a>             {
-<a name="850" href="#850">850</a>                 <strong class="jxr_keyword">if</strong> ( buf.length() &gt; 0 )
-<a name="851" href="#851">851</a>                 {
-<a name="852" href="#852">852</a>                     buf.append( ',' );
-<a name="853" href="#853">853</a>                 }
-<a name="854" href="#854">854</a>                 buf.append( clause );
-<a name="855" href="#855">855</a>             }
-<a name="856" href="#856">856</a>         }
-<a name="857" href="#857">857</a> 
-<a name="858" href="#858">858</a>         <strong class="jxr_keyword">return</strong> buf.toString();
-<a name="859" href="#859">859</a>     }
-<a name="860" href="#860">860</a> 
-<a name="861" href="#861">861</a> 
-<a name="862" href="#862">862</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Map getProperties( Model projectModel, String prefix )
-<a name="863" href="#863">863</a>     {
-<a name="864" href="#864">864</a>         Map properties = <strong class="jxr_keyword">new</strong> LinkedHashMap();
-<a name="865" href="#865">865</a>         Method methods[] = Model.<strong class="jxr_keyword">class</strong>.getDeclaredMethods();
-<a name="866" href="#866">866</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; methods.length; i++ )
-<a name="867" href="#867">867</a>         {
-<a name="868" href="#868">868</a>             String name = methods[i].getName();
-<a name="869" href="#869">869</a>             <strong class="jxr_keyword">if</strong> ( name.startsWith( <span class="jxr_string">"get"</span> ) )
-<a name="870" href="#870">870</a>             {
-<a name="871" href="#871">871</a>                 <strong class="jxr_keyword">try</strong>
-<a name="872" href="#872">872</a>                 {
-<a name="873" href="#873">873</a>                     Object v = methods[i].invoke( projectModel, <strong class="jxr_keyword">null</strong> );
-<a name="874" href="#874">874</a>                     <strong class="jxr_keyword">if</strong> ( v != <strong class="jxr_keyword">null</strong> )
-<a name="875" href="#875">875</a>                     {
-<a name="876" href="#876">876</a>                         name = prefix + Character.toLowerCase( name.charAt( 3 ) ) + name.substring( 4 );
-<a name="877" href="#877">877</a>                         <strong class="jxr_keyword">if</strong> ( v.getClass().isArray() )
-<a name="878" href="#878">878</a>                             properties.put( name, Arrays.asList( ( Object[] ) v ).toString() );
-<a name="879" href="#879">879</a>                         <strong class="jxr_keyword">else</strong>
-<a name="880" href="#880">880</a>                             properties.put( name, v );
-<a name="881" href="#881">881</a> 
-<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">catch</strong> ( Exception e )
-<a name="885" href="#885">885</a>                 {
-<a name="886" href="#886">886</a>                     <em class="jxr_comment">// too bad</em>
-<a name="887" href="#887">887</a>                 }
-<a name="888" href="#888">888</a>             }
-<a name="889" href="#889">889</a>         }
-<a name="890" href="#890">890</a>         <strong class="jxr_keyword">return</strong> properties;
-<a name="891" href="#891">891</a>     }
-<a name="892" href="#892">892</a> 
-<a name="893" href="#893">893</a> 
-<a name="894" href="#894">894</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> StringBuffer printLicenses( List licenses )
-<a name="895" href="#895">895</a>     {
-<a name="896" href="#896">896</a>         <strong class="jxr_keyword">if</strong> ( licenses == <strong class="jxr_keyword">null</strong> || licenses.size() == 0 )
-<a name="897" href="#897">897</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a name="898" href="#898">898</a>         StringBuffer sb = <strong class="jxr_keyword">new</strong> StringBuffer();
-<a name="899" href="#899">899</a>         String del = <span class="jxr_string">""</span>;
-<a name="900" href="#900">900</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = licenses.iterator(); i.hasNext(); )
+<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="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="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>             License l = ( License ) i.next();
-<a name="903" href="#903">903</a>             String url = l.getUrl();
-<a name="904" href="#904">904</a>             <strong class="jxr_keyword">if</strong> ( url == <strong class="jxr_keyword">null</strong> )
-<a name="905" href="#905">905</a>                 <strong class="jxr_keyword">continue</strong>;
-<a name="906" href="#906">906</a>             sb.append( del );
-<a name="907" href="#907">907</a>             sb.append( url );
-<a name="908" href="#908">908</a>             del = <span class="jxr_string">", "</span>;
-<a name="909" href="#909">909</a>         }
-<a name="910" href="#910">910</a>         <strong class="jxr_keyword">if</strong> ( sb.length() == 0 )
-<a name="911" href="#911">911</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a name="912" href="#912">912</a>         <strong class="jxr_keyword">return</strong> sb;
-<a name="913" href="#913">913</a>     }
-<a name="914" href="#914">914</a> 
-<a name="915" href="#915">915</a> 
-<a name="916" href="#916">916</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="917" href="#917">917</a> <em class="jxr_javadoccomment">     * @param jar</em>
-<a name="918" href="#918">918</a> <em class="jxr_javadoccomment">     * @throws IOException</em>
-<a name="919" href="#919">919</a> <em class="jxr_javadoccomment">     */</em>
-<a name="920" href="#920">920</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="921" href="#921">921</a>     {
-<a name="922" href="#922">922</a>         String path = <span class="jxr_string">"META-INF/maven/"</span> + currentProject.getGroupId() + <span class="jxr_string">"/"</span> + currentProject.getArtifactId();
-<a name="923" href="#923">923</a>         File pomFile = <strong class="jxr_keyword">new</strong> File( currentProject.getBasedir(), <span class="jxr_string">"pom.xml"</span> );
-<a name="924" href="#924">924</a>         jar.putResource( path + <span class="jxr_string">"/pom.xml"</span>, <strong class="jxr_keyword">new</strong> FileResource( pomFile ) );
-<a name="925" href="#925">925</a> 
-<a name="926" href="#926">926</a>         Properties p = <strong class="jxr_keyword">new</strong> Properties();
-<a name="927" href="#927">927</a>         p.put( <span class="jxr_string">"version"</span>, currentProject.getVersion() );
-<a name="928" href="#928">928</a>         p.put( <span class="jxr_string">"groupId"</span>, currentProject.getGroupId() );
-<a name="929" href="#929">929</a>         p.put( <span class="jxr_string">"artifactId"</span>, currentProject.getArtifactId() );
-<a name="930" href="#930">930</a>         ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
-<a name="931" href="#931">931</a>         p.store( out, <span class="jxr_string">"Generated by org.apache.felix.bundleplugin"</span> );
-<a name="932" href="#932">932</a>         jar.putResource( path + <span class="jxr_string">"/pom.properties"</span>, <strong class="jxr_keyword">new</strong> EmbeddedResource( out.toByteArray(), System.currentTimeMillis() ) );
-<a name="933" href="#933">933</a>     }
-<a name="934" href="#934">934</a> 
-<a name="935" href="#935">935</a> 
-<a name="936" href="#936">936</a>     <strong class="jxr_keyword">protected</strong> Jar[] getClasspath( MavenProject currentProject ) <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException
-<a name="937" href="#937">937</a>     {
-<a name="938" href="#938">938</a>         List list = <strong class="jxr_keyword">new</strong> ArrayList();
-<a name="939" href="#939">939</a> 
-<a name="940" href="#940">940</a>         <strong class="jxr_keyword">if</strong> ( getOutputDirectory() != <strong class="jxr_keyword">null</strong> &amp;&amp; getOutputDirectory().exists() )
-<a name="941" href="#941">941</a>         {
-<a name="942" href="#942">942</a>             list.add( <strong class="jxr_keyword">new</strong> Jar( <span class="jxr_string">"."</span>, getOutputDirectory() ) );
-<a name="943" href="#943">943</a>         }
-<a name="944" href="#944">944</a> 
-<a name="945" href="#945">945</a>         <strong class="jxr_keyword">final</strong> Collection artifacts = getSelectedDependencies( currentProject.getArtifacts() );
-<a name="946" href="#946">946</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = artifacts.iterator(); it.hasNext(); )
-<a name="947" href="#947">947</a>         {
-<a name="948" href="#948">948</a>             Artifact artifact = ( Artifact ) it.next();
-<a name="949" href="#949">949</a>             <strong class="jxr_keyword">if</strong> ( artifact.getArtifactHandler().isAddedToClasspath() )
-<a name="950" href="#950">950</a>             {
-<a name="951" href="#951">951</a>                 <strong class="jxr_keyword">if</strong> ( !Artifact.SCOPE_TEST.equals( artifact.getScope() ) )
+<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="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="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>                     File file = getFile( artifact );
-<a name="954" href="#954">954</a>                     <strong class="jxr_keyword">if</strong> ( file == <strong class="jxr_keyword">null</strong> )
-<a name="955" href="#955">955</a>                     {
-<a name="956" href="#956">956</a>                         getLog().warn(
-<a name="957" href="#957">957</a>                             <span class="jxr_string">"File is not available for artifact "</span> + artifact + <span class="jxr_string">" in project "</span>
-<a name="958" href="#958">958</a>                                 + currentProject.getArtifact() );
-<a name="959" href="#959">959</a>                         <strong class="jxr_keyword">continue</strong>;
-<a name="960" href="#960">960</a>                     }
-<a name="961" href="#961">961</a>                     Jar jar = <strong class="jxr_keyword">new</strong> Jar( artifact.getArtifactId(), file );
-<a name="962" href="#962">962</a>                     list.add( jar );
-<a name="963" href="#963">963</a>                 }
-<a name="964" href="#964">964</a>             }
-<a name="965" href="#965">965</a>         }
-<a name="966" href="#966">966</a>         Jar[] cp = <strong class="jxr_keyword">new</strong> Jar[list.size()];
-<a name="967" href="#967">967</a>         list.toArray( cp );
-<a name="968" href="#968">968</a>         <strong class="jxr_keyword">return</strong> cp;
-<a name="969" href="#969">969</a>     }
-<a name="970" href="#970">970</a> 
-<a name="971" href="#971">971</a> 
-<a name="972" href="#972">972</a>     <strong class="jxr_keyword">private</strong> Collection getSelectedDependencies( Collection artifacts ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="973" href="#973">973</a>     {
-<a name="974" href="#974">974</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == excludeDependencies || excludeDependencies.length() == 0 )
-<a name="975" href="#975">975</a>         {
-<a name="976" href="#976">976</a>             <strong class="jxr_keyword">return</strong> artifacts;
-<a name="977" href="#977">977</a>         }
-<a name="978" href="#978">978</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"true"</span>.equalsIgnoreCase( excludeDependencies ) )
-<a name="979" href="#979">979</a>         {
-<a name="980" href="#980">980</a>             <strong class="jxr_keyword">return</strong> Collections.EMPTY_LIST;
-<a name="981" href="#981">981</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="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="982" href="#982">982</a> 
-<a name="983" href="#983">983</a>         Collection selectedDependencies = <strong class="jxr_keyword">new</strong> LinkedHashSet( artifacts );
-<a name="984" href="#984">984</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="985" href="#985">985</a>         excluder.processHeaders( excludeDependencies );
-<a name="986" href="#986">986</a>         selectedDependencies.removeAll( excluder.getExcludedArtifacts() );
-<a name="987" href="#987">987</a> 
-<a name="988" href="#988">988</a>         <strong class="jxr_keyword">return</strong> selectedDependencies;
-<a name="989" href="#989">989</a>     }
-<a name="990" href="#990">990</a> 
-<a name="991" href="#991">991</a> 
-<a name="992" href="#992">992</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="993" href="#993">993</a> <em class="jxr_javadoccomment">     * Get the file for an Artifact</em>
-<a name="994" href="#994">994</a> <em class="jxr_javadoccomment">     *</em>
-<a name="995" href="#995">995</a> <em class="jxr_javadoccomment">     * @param artifact</em>
-<a name="996" href="#996">996</a> <em class="jxr_javadoccomment">     */</em>
-<a name="997" href="#997">997</a>     <strong class="jxr_keyword">protected</strong> File getFile( Artifact artifact )
-<a name="998" href="#998">998</a>     {
-<a name="999" href="#999">999</a>         <strong class="jxr_keyword">return</strong> artifact.getFile();
+<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="1002" href="#1002">1002</a> 
-<a name="1003" href="#1003">1003</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="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>         <strong class="jxr_keyword">if</strong> ( value == <strong class="jxr_keyword">null</strong> )
-<a name="1006" href="#1006">1006</a>             <strong class="jxr_keyword">return</strong>;
-<a name="1007" href="#1007">1007</a> 
-<a name="1008" href="#1008">1008</a>         <strong class="jxr_keyword">if</strong> ( value instanceof Collection &amp;&amp; ( ( Collection ) value ).isEmpty() )
-<a name="1009" href="#1009">1009</a>             <strong class="jxr_keyword">return</strong>;
-<a name="1010" href="#1010">1010</a> 
-<a name="1011" href="#1011">1011</a>         properties.put( key, value.toString().replaceAll( <span class="jxr_string">"[\r\n]"</span>, <span class="jxr_string">""</span> ) );
-<a name="1012" href="#1012">1012</a>     }
-<a name="1013" href="#1013">1013</a> 
-<a name="1014" href="#1014">1014</a> 
-<a name="1015" href="#1015">1015</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="1016" href="#1016">1016</a> <em class="jxr_javadoccomment">     * Convert a Maven version into an OSGi compliant version</em>
-<a name="1017" href="#1017">1017</a> <em class="jxr_javadoccomment">     *</em>
-<a name="1018" href="#1018">1018</a> <em class="jxr_javadoccomment">     * @param version Maven version</em>
-<a name="1019" href="#1019">1019</a> <em class="jxr_javadoccomment">     * @return the OSGi version</em>
-<a name="1020" href="#1020">1020</a> <em class="jxr_javadoccomment">     */</em>
-<a name="1021" href="#1021">1021</a>     <strong class="jxr_keyword">protected</strong> String convertVersionToOsgi( String version )
-<a name="1022" href="#1022">1022</a>     {
-<a name="1023" href="#1023">1023</a>         <strong class="jxr_keyword">return</strong> getMaven2OsgiConverter().getVersion( version );
-<a name="1024" href="#1024">1024</a>     }
-<a name="1025" href="#1025">1025</a> 
-<a name="1026" href="#1026">1026</a> 
-<a name="1027" href="#1027">1027</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="1028" href="#1028">1028</a> <em class="jxr_javadoccomment">     * TODO this should return getMaven2Osgi().getBundleFileName( project.getArtifact() )</em>
-<a name="1029" href="#1029">1029</a> <em class="jxr_javadoccomment">     */</em>
-<a name="1030" href="#1030">1030</a>     <strong class="jxr_keyword">protected</strong> String getBundleName( MavenProject currentProject )
-<a name="1031" href="#1031">1031</a>     {
-<a name="1032" href="#1032">1032</a>         String extension;
-<a name="1033" href="#1033">1033</a>         <strong class="jxr_keyword">try</strong>
-<a name="1034" href="#1034">1034</a>         {
-<a name="1035" href="#1035">1035</a>             extension = currentProject.getArtifact().getArtifactHandler().getExtension();
-<a name="1036" href="#1036">1036</a>         }
-<a name="1037" href="#1037">1037</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
-<a name="1038" href="#1038">1038</a>         {
-<a name="1039" href="#1039">1039</a>             extension = currentProject.getArtifact().getType();
-<a name="1040" href="#1040">1040</a>         }
-<a name="1041" href="#1041">1041</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="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="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>             extension = <span class="jxr_string">"jar"</span>; <em class="jxr_comment">// just in case maven gets confused</em>
+<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>         String finalName = currentProject.getBuild().getFinalName();
-<a name="1046" href="#1046">1046</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != classifier &amp;&amp; classifier.trim().length() &gt; 0 )
-<a name="1047" href="#1047">1047</a>         {
-<a name="1048" href="#1048">1048</a>             <strong class="jxr_keyword">return</strong> finalName + '-' + classifier + '.' + extension;
-<a name="1049" href="#1049">1049</a>         }
-<a name="1050" href="#1050">1050</a>         <strong class="jxr_keyword">return</strong> finalName + '.' + extension;
-<a name="1051" href="#1051">1051</a>     }
-<a name="1052" href="#1052">1052</a> 
-<a name="1053" href="#1053">1053</a> 
-<a name="1054" href="#1054">1054</a>     <strong class="jxr_keyword">protected</strong> String getBuildDirectory()
-<a name="1055" href="#1055">1055</a>     {
-<a name="1056" href="#1056">1056</a>         <strong class="jxr_keyword">return</strong> buildDirectory;
-<a name="1057" href="#1057">1057</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="1058" href="#1058">1058</a> 
-<a name="1059" href="#1059">1059</a> 
-<a name="1060" href="#1060">1060</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setBuildDirectory( String _buildirectory )
-<a name="1061" href="#1061">1061</a>     {
-<a name="1062" href="#1062">1062</a>         buildDirectory = _buildirectory;
-<a name="1063" href="#1063">1063</a>     }
-<a name="1064" href="#1064">1064</a> 
-<a name="1065" href="#1065">1065</a> 
-<a name="1066" href="#1066">1066</a>     <strong class="jxr_keyword">protected</strong> Properties getDefaultProperties( MavenProject currentProject )
-<a name="1067" href="#1067">1067</a>     {
-<a name="1068" href="#1068">1068</a>         Properties properties = <strong class="jxr_keyword">new</strong> Properties();
+<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="1069" href="#1069">1069</a> 
-<a name="1070" href="#1070">1070</a>         String bsn;
-<a name="1071" href="#1071">1071</a>         <strong class="jxr_keyword">try</strong>
-<a name="1072" href="#1072">1072</a>         {
-<a name="1073" href="#1073">1073</a>             bsn = getMaven2OsgiConverter().getBundleSymbolicName( currentProject.getArtifact() );
-<a name="1074" href="#1074">1074</a>         }
-<a name="1075" href="#1075">1075</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="1076" href="#1076">1076</a>         {
-<a name="1077" href="#1077">1077</a>             bsn = currentProject.getGroupId() + <span class="jxr_string">"."</span> + currentProject.getArtifactId();
-<a name="1078" href="#1078">1078</a>         }
-<a name="1079" href="#1079">1079</a> 
-<a name="1080" href="#1080">1080</a>         <em class="jxr_comment">// Setup defaults</em>
-<a name="1081" href="#1081">1081</a>         properties.put( MAVEN_SYMBOLICNAME, bsn );
-<a name="1082" href="#1082">1082</a>         properties.put( Analyzer.BUNDLE_SYMBOLICNAME, bsn );
-<a name="1083" href="#1083">1083</a>         properties.put( Analyzer.IMPORT_PACKAGE, <span class="jxr_string">"*"</span> );
-<a name="1084" href="#1084">1084</a>         properties.put( Analyzer.BUNDLE_VERSION, getMaven2OsgiConverter().getVersion( currentProject.getVersion() ) );
-<a name="1085" href="#1085">1085</a> 
-<a name="1086" href="#1086">1086</a>         <em class="jxr_comment">// remove the extraneous Include-Resource and Private-Package entries from generated manifest</em>
-<a name="1087" href="#1087">1087</a>         properties.put( Constants.REMOVEHEADERS, Analyzer.INCLUDE_RESOURCE + ',' + Analyzer.PRIVATE_PACKAGE );
-<a name="1088" href="#1088">1088</a> 
-<a name="1089" href="#1089">1089</a>         header( properties, Analyzer.BUNDLE_DESCRIPTION, currentProject.getDescription() );
-<a name="1090" href="#1090">1090</a>         StringBuffer licenseText = printLicenses( currentProject.getLicenses() );
-<a name="1091" href="#1091">1091</a>         <strong class="jxr_keyword">if</strong> ( licenseText != <strong class="jxr_keyword">null</strong> )
-<a name="1092" href="#1092">1092</a>         {
-<a name="1093" href="#1093">1093</a>             header( properties, Analyzer.BUNDLE_LICENSE, licenseText );
-<a name="1094" href="#1094">1094</a>         }
-<a name="1095" href="#1095">1095</a>         header( properties, Analyzer.BUNDLE_NAME, currentProject.getName() );
-<a name="1096" href="#1096">1096</a> 
-<a name="1097" href="#1097">1097</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization() != <strong class="jxr_keyword">null</strong> )
-<a name="1098" href="#1098">1098</a>         {
-<a name="1099" href="#1099">1099</a>             <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization().getName() != <strong class="jxr_keyword">null</strong> )
-<a name="1100" href="#1100">1100</a>             {
-<a name="1101" href="#1101">1101</a>                 String organizationName = currentProject.getOrganization().getName();
-<a name="1102" href="#1102">1102</a>                 header( properties, Analyzer.BUNDLE_VENDOR, organizationName );
-<a name="1103" href="#1103">1103</a>                 properties.put( <span class="jxr_string">"project.organization.name"</span>, organizationName );
-<a name="1104" href="#1104">1104</a>                 properties.put( <span class="jxr_string">"pom.organization.name"</span>, organizationName );
-<a name="1105" href="#1105">1105</a>             }
-<a name="1106" href="#1106">1106</a>             <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization().getUrl() != <strong class="jxr_keyword">null</strong> )
-<a name="1107" href="#1107">1107</a>             {
-<a name="1108" href="#1108">1108</a>                 String organizationUrl = currentProject.getOrganization().getUrl();
-<a name="1109" href="#1109">1109</a>                 header( properties, Analyzer.BUNDLE_DOCURL, organizationUrl );
-<a name="1110" href="#1110">1110</a>                 properties.put( <span class="jxr_string">"project.organization.url"</span>, organizationUrl );
-<a name="1111" href="#1111">1111</a>                 properties.put( <span class="jxr_string">"pom.organization.url"</span>, organizationUrl );
-<a name="1112" href="#1112">1112</a>             }
-<a name="1113" href="#1113">1113</a>         }
-<a name="1114" href="#1114">1114</a> 
-<a name="1115" href="#1115">1115</a>         properties.putAll( currentProject.getProperties() );
-<a name="1116" href="#1116">1116</a>         properties.putAll( currentProject.getModel().getProperties() );
-<a name="1117" href="#1117">1117</a>         <strong class="jxr_keyword">if</strong> ( m_mavenSession != <strong class="jxr_keyword">null</strong> )
-<a name="1118" href="#1118">1118</a>         {
-<a name="1119" href="#1119">1119</a>             properties.putAll( m_mavenSession.getExecutionProperties() );
-<a name="1120" href="#1120">1120</a>         }
-<a name="1121" href="#1121">1121</a> 
-<a name="1122" href="#1122">1122</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"project.build."</span> ) );
-<a name="1123" href="#1123">1123</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"pom."</span> ) );
-<a name="1124" href="#1124">1124</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"project."</span> ) );
+<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="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="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="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="1126" href="#1126">1126</a>         properties.put( <span class="jxr_string">"project.baseDir"</span>, getBase( currentProject ) );
-<a name="1127" href="#1127">1127</a>         properties.put( <span class="jxr_string">"project.build.directory"</span>, getBuildDirectory() );
-<a name="1128" href="#1128">1128</a>         properties.put( <span class="jxr_string">"project.build.outputdirectory"</span>, getOutputDirectory() );
-<a name="1129" href="#1129">1129</a> 
-<a name="1130" href="#1130">1130</a>         properties.put( <span class="jxr_string">"classifier"</span>, classifier == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">""</span> : classifier );
+<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="1132" href="#1132">1132</a>         <em class="jxr_comment">// Add default plugins</em>
-<a name="1133" href="#1133">1133</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="1134" href="#1134">1134</a> 
-<a name="1135" href="#1135">1135</a>         <strong class="jxr_keyword">return</strong> properties;
-<a name="1136" href="#1136">1136</a>     }
-<a name="1137" href="#1137">1137</a> 
-<a name="1138" href="#1138">1138</a> 
-<a name="1139" href="#1139">1139</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> File getBase( MavenProject currentProject )
-<a name="1140" href="#1140">1140</a>     {
-<a name="1141" href="#1141">1141</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="1142" href="#1142">1142</a>     }
-<a name="1143" href="#1143">1143</a> 
-<a name="1144" href="#1144">1144</a> 
-<a name="1145" href="#1145">1145</a>     <strong class="jxr_keyword">protected</strong> File getOutputDirectory()
-<a name="1146" href="#1146">1146</a>     {
-<a name="1147" href="#1147">1147</a>         <strong class="jxr_keyword">return</strong> outputDirectory;
-<a name="1148" href="#1148">1148</a>     }
-<a name="1149" href="#1149">1149</a> 
-<a name="1150" href="#1150">1150</a> 
-<a name="1151" href="#1151">1151</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setOutputDirectory( File _outputDirectory )
-<a name="1152" href="#1152">1152</a>     {
-<a name="1153" href="#1153">1153</a>         outputDirectory = _outputDirectory;
-<a name="1154" href="#1154">1154</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> 
-<a name="1157" href="#1157">1157</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="1158" href="#1158">1158</a>     {
-<a name="1159" href="#1159">1159</a>         Collection packages = <strong class="jxr_keyword">new</strong> LinkedHashSet();
-<a name="1160" href="#1160">1160</a> 
-<a name="1161" href="#1161">1161</a>         <strong class="jxr_keyword">if</strong> ( outputDirectory != <strong class="jxr_keyword">null</strong> &amp;&amp; outputDirectory.isDirectory() )
-<a name="1162" href="#1162">1162</a>         {
-<a name="1163" href="#1163">1163</a>             <em class="jxr_comment">// scan classes directory for potential packages</em>
-<a name="1164" href="#1164">1164</a>             DirectoryScanner scanner = <strong class="jxr_keyword">new</strong> DirectoryScanner();
-<a name="1165" href="#1165">1165</a>             scanner.setBasedir( outputDirectory );
-<a name="1166" href="#1166">1166</a>             scanner.setIncludes( <strong class="jxr_keyword">new</strong> String[]
-<a name="1167" href="#1167">1167</a>                 { <span class="jxr_string">"**/*.class"</span> } );
-<a name="1168" href="#1168">1168</a> 
-<a name="1169" href="#1169">1169</a>             scanner.addDefaultExcludes();
-<a name="1170" href="#1170">1170</a>             scanner.scan();
-<a name="1171" href="#1171">1171</a> 
-<a name="1172" href="#1172">1172</a>             String[] paths = scanner.getIncludedFiles();
-<a name="1173" href="#1173">1173</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; paths.length; i++ )
+<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>                 packages.add( getPackageName( paths[i] ) );
-<a name="1176" href="#1176">1176</a>             }
-<a name="1177" href="#1177">1177</a>         }
-<a name="1178" href="#1178">1178</a> 
-<a name="1179" href="#1179">1179</a>         StringBuffer exportedPkgs = <strong class="jxr_keyword">new</strong> StringBuffer();
-<a name="1180" href="#1180">1180</a>         StringBuffer privatePkgs = <strong class="jxr_keyword">new</strong> StringBuffer();
+<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>         <strong class="jxr_keyword">boolean</strong> noprivatePackages = <span class="jxr_string">"!*"</span>.equals( analyzer.getProperty( Analyzer.PRIVATE_PACKAGE ) );
-<a name="1183" href="#1183">1183</a> 
-<a name="1184" href="#1184">1184</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = packages.iterator(); i.hasNext(); )
+<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>             String pkg = ( String ) i.next();
-<a name="1187" href="#1187">1187</a> 
-<a name="1188" href="#1188">1188</a>             <em class="jxr_comment">// mark all source packages as private by default (can be overridden by export list)</em>
-<a name="1189" href="#1189">1189</a>             privatePkgs.append( pkg ).append( <span class="jxr_string">";-split-package:=merge-first,"</span> );
-<a name="1190" href="#1190">1190</a> 
-<a name="1191" href="#1191">1191</a>             <em class="jxr_comment">// we can't export the default package (".") and we shouldn't export internal packages </em>
-<a name="1192" href="#1192">1192</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="1193" href="#1193">1193</a>             {
-<a name="1194" href="#1194">1194</a>                 <strong class="jxr_keyword">if</strong> ( exportedPkgs.length() &gt; 0 )
-<a name="1195" href="#1195">1195</a>                 {
-<a name="1196" href="#1196">1196</a>                     exportedPkgs.append( ';' );
-<a name="1197" href="#1197">1197</a>                 }
-<a name="1198" href="#1198">1198</a>                 exportedPkgs.append( pkg );
-<a name="1199" href="#1199">1199</a>             }
-<a name="1200" href="#1200">1200</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">if</strong> ( analyzer.getProperty( Analyzer.EXPORT_PACKAGE ) == <strong class="jxr_keyword">null</strong> )
-<a name="1203" href="#1203">1203</a>         {
-<a name="1204" href="#1204">1204</a>             <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.EXPORT_CONTENTS ) == <strong class="jxr_keyword">null</strong> )
-<a name="1205" href="#1205">1205</a>             {
-<a name="1206" href="#1206">1206</a>                 <em class="jxr_comment">// no -exportcontents overriding the exports, so use our computed list</em>
-<a name="1207" href="#1207">1207</a>                 analyzer.setProperty( Analyzer.EXPORT_PACKAGE, exportedPkgs.toString() );
-<a name="1208" href="#1208">1208</a>             }
-<a name="1209" href="#1209">1209</a>             <strong class="jxr_keyword">else</strong>
-<a name="1210" href="#1210">1210</a>             {
-<a name="1211" href="#1211">1211</a>                 <em class="jxr_comment">// leave Export-Package empty (but non-null) as we have -exportcontents</em>
-<a name="1212" href="#1212">1212</a>                 analyzer.setProperty( Analyzer.EXPORT_PACKAGE, <span class="jxr_string">""</span> );
-<a name="1213" href="#1213">1213</a>             }
-<a name="1214" href="#1214">1214</a>         }
-<a name="1215" href="#1215">1215</a>         <strong class="jxr_keyword">else</strong>
-<a name="1216" href="#1216">1216</a>         {
-<a name="1217" href="#1217">1217</a>             String exported = analyzer.getProperty( Analyzer.EXPORT_PACKAGE );
-<a name="1218" href="#1218">1218</a>             <strong class="jxr_keyword">if</strong> ( exported.indexOf( LOCAL_PACKAGES ) &gt;= 0 )
-<a name="1219" href="#1219">1219</a>             {
-<a name="1220" href="#1220">1220</a>                 String newExported = StringUtils.replace( exported, LOCAL_PACKAGES, exportedPkgs.toString() );
-<a name="1221" href="#1221">1221</a>                 analyzer.setProperty( Analyzer.EXPORT_PACKAGE, newExported );
+<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="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="1222" href="#1222">1222</a> 
-<a name="1223" href="#1223">1223</a>             }
-<a name="1224" href="#1224">1224</a>         }
-<a name="1225" href="#1225">1225</a> 
-<a name="1226" href="#1226">1226</a>         <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.PRIVATE_PACKAGE ) == <strong class="jxr_keyword">null</strong> )
-<a name="1227" href="#1227">1227</a>         {
-<a name="1228" href="#1228">1228</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="1229" href="#1229">1229</a>             analyzer.setProperty( Analyzer.PRIVATE_PACKAGE, privatePkgs.length() == 0 ? <span class="jxr_string">"!*"</span> : privatePkgs.toString() );
-<a name="1230" href="#1230">1230</a>         }
-<a name="1231" href="#1231">1231</a>     }
-<a name="1232" href="#1232">1232</a> 
-<a name="1233" href="#1233">1233</a> 
-<a name="1234" href="#1234">1234</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getPackageName( String filename )
-<a name="1235" href="#1235">1235</a>     {
-<a name="1236" href="#1236">1236</a>         <strong class="jxr_keyword">int</strong> n = filename.lastIndexOf( File.separatorChar );
-<a name="1237" href="#1237">1237</a>         <strong class="jxr_keyword">return</strong> n &lt; 0 ? <span class="jxr_string">"."</span> : filename.substring( 0, n ).replace( File.separatorChar, '.' );
-<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> List getMavenResources( MavenProject currentProject )
-<a name="1242" href="#1242">1242</a>     {
-<a name="1243" href="#1243">1243</a>         List resources = <strong class="jxr_keyword">new</strong> ArrayList( currentProject.getResources() );
-<a name="1244" href="#1244">1244</a> 
-<a name="1245" href="#1245">1245</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getCompileSourceRoots() != <strong class="jxr_keyword">null</strong> )
-<a name="1246" href="#1246">1246</a>         {
-<a name="1247" href="#1247">1247</a>             <em class="jxr_comment">// also scan for any "packageinfo" files lurking in the source folders</em>
-<a name="1248" href="#1248">1248</a>             List packageInfoIncludes = Collections.singletonList( <span class="jxr_string">"**/packageinfo"</span> );
-<a name="1249" href="#1249">1249</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = currentProject.getCompileSourceRoots().iterator(); i.hasNext(); )
-<a name="1250" href="#1250">1250</a>             {
-<a name="1251" href="#1251">1251</a>                 String sourceRoot = ( String ) i.next();
-<a name="1252" href="#1252">1252</a>                 Resource packageInfoResource = <strong class="jxr_keyword">new</strong> Resource();
-<a name="1253" href="#1253">1253</a>                 packageInfoResource.setDirectory( sourceRoot );
-<a name="1254" href="#1254">1254</a>                 packageInfoResource.setIncludes( packageInfoIncludes );
-<a name="1255" href="#1255">1255</a>                 resources.add( packageInfoResource );
-<a name="1256" href="#1256">1256</a>             }
-<a name="1257" href="#1257">1257</a>         }
-<a name="1258" href="#1258">1258</a> 
-<a name="1259" href="#1259">1259</a>         <strong class="jxr_keyword">return</strong> resources;
-<a name="1260" href="#1260">1260</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="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> 
-<a name="1263" href="#1263">1263</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String getMavenResourcePaths( MavenProject currentProject )
-<a name="1264" href="#1264">1264</a>     {
-<a name="1265" href="#1265">1265</a>         <strong class="jxr_keyword">final</strong> String basePath = currentProject.getBasedir().getAbsolutePath();
-<a name="1266" href="#1266">1266</a> 
-<a name="1267" href="#1267">1267</a>         Set pathSet = <strong class="jxr_keyword">new</strong> LinkedHashSet();
-<a name="1268" href="#1268">1268</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = getMavenResources( currentProject ).iterator(); i.hasNext(); )
-<a name="1269" href="#1269">1269</a>         {
-<a name="1270" href="#1270">1270</a>             Resource resource = ( Resource ) i.next();
-<a name="1271" href="#1271">1271</a> 
-<a name="1272" href="#1272">1272</a>             <strong class="jxr_keyword">final</strong> String sourcePath = resource.getDirectory();
-<a name="1273" href="#1273">1273</a>             <strong class="jxr_keyword">final</strong> String targetPath = resource.getTargetPath();
-<a name="1274" href="#1274">1274</a> 
-<a name="1275" href="#1275">1275</a>             <em class="jxr_comment">// ignore empty or non-local resources</em>
-<a name="1276" href="#1276">1276</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="1277" href="#1277">1277</a>             {
-<a name="1278" href="#1278">1278</a>                 DirectoryScanner scanner = <strong class="jxr_keyword">new</strong> DirectoryScanner();
-<a name="1279" href="#1279">1279</a> 
-<a name="1280" href="#1280">1280</a>                 scanner.setBasedir( sourcePath );
-<a name="1281" href="#1281">1281</a>                 <strong class="jxr_keyword">if</strong> ( resource.getIncludes() != <strong class="jxr_keyword">null</strong> &amp;&amp; !resource.getIncludes().isEmpty() )
-<a name="1282" href="#1282">1282</a>                 {
-<a name="1283" href="#1283">1283</a>                     scanner.setIncludes( ( String[] ) resource.getIncludes().toArray( EMPTY_STRING_ARRAY ) );
-<a name="1284" href="#1284">1284</a>                 }
-<a name="1285" href="#1285">1285</a>                 <strong class="jxr_keyword">else</strong>
-<a name="1286" href="#1286">1286</a>                 {
-<a name="1287" href="#1287">1287</a>                     scanner.setIncludes( DEFAULT_INCLUDES );
-<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> ( resource.getExcludes() != <strong class="jxr_keyword">null</strong> &amp;&amp; !resource.getExcludes().isEmpty() )
-<a name="1291" href="#1291">1291</a>                 {
-<a name="1292" href="#1292">1292</a>                     scanner.setExcludes( ( String[] ) resource.getExcludes().toArray( EMPTY_STRING_ARRAY ) );
-<a name="1293" href="#1293">1293</a>                 }
-<a name="1294" href="#1294">1294</a> 
-<a name="1295" href="#1295">1295</a>                 scanner.addDefaultExcludes();
-<a name="1296" href="#1296">1296</a>                 scanner.scan();
-<a name="1297" href="#1297">1297</a> 
-<a name="1298" href="#1298">1298</a>                 List includedFiles = Arrays.asList( scanner.getIncludedFiles() );
-<a name="1299" href="#1299">1299</a> 
-<a name="1300" href="#1300">1300</a>                 <strong class="jxr_keyword">for</strong> ( Iterator j = includedFiles.iterator(); j.hasNext(); )
-<a name="1301" href="#1301">1301</a>                 {
-<a name="1302" href="#1302">1302</a>                     String name = ( String ) j.next();
-<a name="1303" href="#1303">1303</a>                     String path = sourcePath + '/' + name;
-<a name="1304" href="#1304">1304</a> 
-<a name="1305" href="#1305">1305</a>                     <em class="jxr_comment">// make relative to project</em>
-<a name="1306" href="#1306">1306</a>                     <strong class="jxr_keyword">if</strong> ( path.startsWith( basePath ) )
-<a name="1307" href="#1307">1307</a>                     {
-<a name="1308" href="#1308">1308</a>                         <strong class="jxr_keyword">if</strong> ( path.length() == basePath.length() )
-<a name="1309" href="#1309">1309</a>                         {
-<a name="1310" href="#1310">1310</a>                             path = <span class="jxr_string">"."</span>;
-<a name="1311" href="#1311">1311</a>                         }
-<a name="1312" href="#1312">1312</a>                         <strong class="jxr_keyword">else</strong>
-<a name="1313" href="#1313">1313</a>                         {
-<a name="1314" href="#1314">1314</a>                             path = path.substring( basePath.length() + 1 );
-<a name="1315" href="#1315">1315</a>                         }
-<a name="1316" href="#1316">1316</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="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>                     <em class="jxr_comment">// replace windows backslash with a slash</em>
-<a name="1319" href="#1319">1319</a>                     <em class="jxr_comment">// this is a workaround for a problem with bnd 0.0.189</em>
-<a name="1320" href="#1320">1320</a>                     <strong class="jxr_keyword">if</strong> ( File.separatorChar != '/' )
-<a name="1321" href="#1321">1321</a>                     {
-<a name="1322" href="#1322">1322</a>                         name = name.replace( File.separatorChar, '/' );
-<a name="1323" href="#1323">1323</a>                         path = path.replace( File.separatorChar, '/' );
-<a name="1324" href="#1324">1324</a>                     }
-<a name="1325" href="#1325">1325</a> 
-<a name="1326" href="#1326">1326</a>                     <em class="jxr_comment">// copy to correct place</em>
-<a name="1327" href="#1327">1327</a>                     path = name + '=' + path;
-<a name="1328" href="#1328">1328</a>                     <strong class="jxr_keyword">if</strong> ( targetPath != <strong class="jxr_keyword">null</strong> )
-<a name="1329" href="#1329">1329</a>                     {
-<a name="1330" href="#1330">1330</a>                         path = targetPath + '/' + path;
-<a name="1331" href="#1331">1331</a>                     }
-<a name="1332" href="#1332">1332</a> 
-<a name="1333" href="#1333">1333</a>                     <em class="jxr_comment">// use Bnd filtering?</em>
-<a name="1334" href="#1334">1334</a>                     <strong class="jxr_keyword">if</strong> ( resource.isFiltering() )
-<a name="1335" href="#1335">1335</a>                     {
-<a name="1336" href="#1336">1336</a>                         path = '{' + path + '}';
-<a name="1337" href="#1337">1337</a>                     }
-<a name="1338" href="#1338">1338</a> 
-<a name="1339" href="#1339">1339</a>                     pathSet.add( path );
-<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> 
-<a name="1344" href="#1344">1344</a>         StringBuffer resourcePaths = <strong class="jxr_keyword">new</strong> StringBuffer();
-<a name="1345" href="#1345">1345</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = pathSet.iterator(); i.hasNext(); )
-<a name="1346" href="#1346">1346</a>         {
-<a name="1347" href="#1347">1347</a>             resourcePaths.append( i.next() );
-<a name="1348" href="#1348">1348</a>             <strong class="jxr_keyword">if</strong> ( i.hasNext() )
-<a name="1349" href="#1349">1349</a>             {
-<a name="1350" href="#1350">1350</a>                 resourcePaths.append( ',' );
-<a name="1351" href="#1351">1351</a>             }
-<a name="1352" href="#1352">1352</a>         }
-<a name="1353" href="#1353">1353</a> 
-<a name="1354" href="#1354">1354</a>         <strong class="jxr_keyword">return</strong> resourcePaths.toString();
-<a name="1355" href="#1355">1355</a>     }
-<a name="1356" href="#1356">1356</a> 
-<a name="1357" href="#1357">1357</a> 
-<a name="1358" href="#1358">1358</a>     <strong class="jxr_keyword">protected</strong> Collection getEmbeddableArtifacts( MavenProject currentProject, Analyzer analyzer )
-<a name="1359" href="#1359">1359</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="1360" href="#1360">1360</a>     {
-<a name="1361" href="#1361">1361</a>         <strong class="jxr_keyword">final</strong> Collection artifacts;
-<a name="1362" href="#1362">1362</a> 
-<a name="1363" href="#1363">1363</a>         String embedTransitive = analyzer.getProperty( DependencyEmbedder.EMBED_TRANSITIVE );
-<a name="1364" href="#1364">1364</a>         <strong class="jxr_keyword">if</strong> ( Boolean.valueOf( embedTransitive ).booleanValue() )
-<a name="1365" href="#1365">1365</a>         {
-<a name="1366" href="#1366">1366</a>             <em class="jxr_comment">// includes transitive dependencies</em>
-<a name="1367" href="#1367">1367</a>             artifacts = currentProject.getArtifacts();
-<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>             <em class="jxr_comment">// only includes direct dependencies</em>
-<a name="1372" href="#1372">1372</a>             artifacts = currentProject.getDependencyArtifacts();
-<a name="1373" href="#1373">1373</a>         }
-<a name="1374" href="#1374">1374</a> 
-<a name="1375" href="#1375">1375</a>         <strong class="jxr_keyword">return</strong> getSelectedDependencies( artifacts );
-<a name="1376" href="#1376">1376</a>     }
-<a name="1377" href="#1377">1377</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="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="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="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> }
 </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/DependencyEmbedder.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/DependencyEmbedder.html
index e7d4b46..1ce3613 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/DependencyEmbedder.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/DependencyEmbedder.html
@@ -33,29 +33,29 @@
 <a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
 <a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
 <a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashSet;
-<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
-<a name="27" href="#27">27</a>  
-<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
-<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
-<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
-<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.StringUtils;
-<a name="32" href="#32">32</a>  
-<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
-<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> aQute.libg.header.OSGiHeader;
-<a name="35" href="#35">35</a>  
-<a name="36" href="#36">36</a>  
-<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment">/**</em>
-<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * Add BND directives to embed selected dependencies inside a bundle</em>
-<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * </em>
-<a name="40" href="#40">40</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="41" href="#41">41</a>  <em class="jxr_javadoccomment"> */</em>
-<a name="42" href="#42">42</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/DependencyEmbedder.html">DependencyEmbedder</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">AbstractDependencyFilter</a>
-<a name="43" href="#43">43</a>  {
-<a name="44" href="#44">44</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMBED_DEPENDENCY = <span class="jxr_string">"Embed-Dependency"</span>;
-<a name="45" href="#45">45</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMBED_DIRECTORY = <span class="jxr_string">"Embed-Directory"</span>;
-<a name="46" href="#46">46</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMBED_STRIP_GROUP = <span class="jxr_string">"Embed-StripGroup"</span>;
-<a name="47" href="#47">47</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMBED_STRIP_VERSION = <span class="jxr_string">"Embed-StripVersion"</span>;
-<a name="48" href="#48">48</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMBED_TRANSITIVE = <span class="jxr_string">"Embed-Transitive"</span>;
+<a name="26" href="#26">26</a>  
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.StringUtils;
+<a name="31" href="#31">31</a>  
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
+<a name="33" href="#33">33</a>  
+<a name="34" href="#34">34</a>  
+<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * Add BND directives to embed selected dependencies inside a bundle</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="38" href="#38">38</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="39" href="#39">39</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="40" href="#40">40</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/DependencyEmbedder.html">DependencyEmbedder</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">AbstractDependencyFilter</a>
+<a name="41" href="#41">41</a>  {
+<a name="42" href="#42">42</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMBED_DEPENDENCY = <span class="jxr_string">"Embed-Dependency"</span>;
+<a name="43" href="#43">43</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMBED_DIRECTORY = <span class="jxr_string">"Embed-Directory"</span>;
+<a name="44" href="#44">44</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMBED_STRIP_GROUP = <span class="jxr_string">"Embed-StripGroup"</span>;
+<a name="45" href="#45">45</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMBED_STRIP_VERSION = <span class="jxr_string">"Embed-StripVersion"</span>;
+<a name="46" href="#46">46</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMBED_TRANSITIVE = <span class="jxr_string">"Embed-Transitive"</span>;
+<a name="47" href="#47">47</a>  
+<a name="48" href="#48">48</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMBEDDED_ARTIFACTS = <span class="jxr_string">"Embedded-Artifacts"</span>;
 <a name="49" href="#49">49</a>  
 <a name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_DEPENDENCIES = <span class="jxr_string">"{maven-dependencies}"</span>;
 <a name="51" href="#51">51</a>  
@@ -94,19 +94,19 @@
 <a name="84" href="#84">84</a>      {
 <a name="85" href="#85">85</a>          StringBuffer includeResource = <strong class="jxr_keyword">new</strong> StringBuffer();
 <a name="86" href="#86">86</a>          StringBuffer bundleClassPath = <strong class="jxr_keyword">new</strong> StringBuffer();
-<a name="87" href="#87">87</a>  
-<a name="88" href="#88">88</a>          m_inlinedPaths.clear();
-<a name="89" href="#89">89</a>          m_embeddedArtifacts.clear();
-<a name="90" href="#90">90</a>  
-<a name="91" href="#91">91</a>          String embedDependencyHeader = analyzer.getProperty( EMBED_DEPENDENCY );
-<a name="92" href="#92">92</a>          <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != embedDependencyHeader &amp;&amp; embedDependencyHeader.length() &gt; 0 )
-<a name="93" href="#93">93</a>          {
-<a name="94" href="#94">94</a>              m_embedDirectory = analyzer.getProperty( EMBED_DIRECTORY );
-<a name="95" href="#95">95</a>              m_embedStripGroup = analyzer.getProperty( EMBED_STRIP_GROUP, <span class="jxr_string">"true"</span> );
-<a name="96" href="#96">96</a>              m_embedStripVersion = analyzer.getProperty( EMBED_STRIP_VERSION );
-<a name="97" href="#97">97</a>  
-<a name="98" href="#98">98</a>              Map embedInstructions = OSGiHeader.parseHeader( embedDependencyHeader );
-<a name="99" href="#99">99</a>              processInstructions( embedInstructions );
+<a name="87" href="#87">87</a>          StringBuffer embeddedArtifacts = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="88" href="#88">88</a>  
+<a name="89" href="#89">89</a>          m_inlinedPaths.clear();
+<a name="90" href="#90">90</a>          m_embeddedArtifacts.clear();
+<a name="91" href="#91">91</a>  
+<a name="92" href="#92">92</a>          String embedDependencyHeader = analyzer.getProperty( EMBED_DEPENDENCY );
+<a name="93" href="#93">93</a>          <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( embedDependencyHeader ) )
+<a name="94" href="#94">94</a>          {
+<a name="95" href="#95">95</a>              m_embedDirectory = analyzer.getProperty( EMBED_DIRECTORY );
+<a name="96" href="#96">96</a>              m_embedStripGroup = analyzer.getProperty( EMBED_STRIP_GROUP, <span class="jxr_string">"true"</span> );
+<a name="97" href="#97">97</a>              m_embedStripVersion = analyzer.getProperty( EMBED_STRIP_VERSION );
+<a name="98" href="#98">98</a>  
+<a name="99" href="#99">99</a>              processInstructions( embedDependencyHeader );
 <a name="100" href="#100">100</a> 
 <a name="101" href="#101">101</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = m_inlinedPaths.iterator(); i.hasNext(); )
 <a name="102" href="#102">102</a>             {
@@ -114,7 +114,7 @@
 <a name="104" href="#104">104</a>             }
 <a name="105" href="#105">105</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = m_embeddedArtifacts.iterator(); i.hasNext(); )
 <a name="106" href="#106">106</a>             {
-<a name="107" href="#107">107</a>                 embedDependency( ( Artifact ) i.next(), includeResource, bundleClassPath );
+<a name="107" href="#107">107</a>                 embedDependency( ( Artifact ) i.next(), includeResource, bundleClassPath, embeddedArtifacts );
 <a name="108" href="#108">108</a>             }
 <a name="109" href="#109">109</a>         }
 <a name="110" href="#110">110</a> 
@@ -129,186 +129,197 @@
 <a name="119" href="#119">119</a> 
 <a name="120" href="#120">120</a>         appendDependencies( analyzer, Analyzer.INCLUDE_RESOURCE, includeResource.toString() );
 <a name="121" href="#121">121</a>         appendDependencies( analyzer, Analyzer.BUNDLE_CLASSPATH, bundleClassPath.toString() );
-<a name="122" href="#122">122</a>     }
-<a name="123" href="#123">123</a> 
+<a name="122" href="#122">122</a>         appendDependencies( analyzer, EMBEDDED_ARTIFACTS, embeddedArtifacts.toString() );
+<a name="123" href="#123">123</a>     }
 <a name="124" href="#124">124</a> 
-<a name="125" href="#125">125</a>     @Override
-<a name="126" href="#126">126</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> processDependencies( String tag, String inline, Collection dependencies )
-<a name="127" href="#127">127</a>     {
-<a name="128" href="#128">128</a>         <strong class="jxr_keyword">if</strong> ( dependencies.isEmpty() )
-<a name="129" href="#129">129</a>         {
-<a name="130" href="#130">130</a>             m_log.warn( EMBED_DEPENDENCY + <span class="jxr_string">": clause \&quot;"</span> + tag + <span class="jxr_string">"\&quot; did not match any dependencies"</span> );
-<a name="131" href="#131">131</a>         }
-<a name="132" href="#132">132</a> 
-<a name="133" href="#133">133</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == inline || <span class="jxr_string">"false"</span>.equalsIgnoreCase( inline ) )
+<a name="125" href="#125">125</a> 
+<a name="126" href="#126">126</a>     @Override
+<a name="127" href="#127">127</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> processDependencies( Collection dependencies, String inline )
+<a name="128" href="#128">128</a>     {
+<a name="129" href="#129">129</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == inline || <span class="jxr_string">"false"</span>.equalsIgnoreCase( inline ) )
+<a name="130" href="#130">130</a>         {
+<a name="131" href="#131">131</a>             m_embeddedArtifacts.addAll( dependencies );
+<a name="132" href="#132">132</a>         }
+<a name="133" href="#133">133</a>         <strong class="jxr_keyword">else</strong>
 <a name="134" href="#134">134</a>         {
-<a name="135" href="#135">135</a>             m_embeddedArtifacts.addAll( dependencies );
-<a name="136" href="#136">136</a>         }
-<a name="137" href="#137">137</a>         <strong class="jxr_keyword">else</strong>
-<a name="138" href="#138">138</a>         {
-<a name="139" href="#139">139</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = dependencies.iterator(); i.hasNext(); )
-<a name="140" href="#140">140</a>             {
-<a name="141" href="#141">141</a>                 addInlinedPaths( ( Artifact ) i.next(), inline, m_inlinedPaths );
-<a name="142" href="#142">142</a>             }
-<a name="143" href="#143">143</a>         }
-<a name="144" href="#144">144</a>     }
-<a name="145" href="#145">145</a> 
-<a name="146" href="#146">146</a> 
-<a name="147" href="#147">147</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> addInlinedPaths( Artifact dependency, String inline, Collection inlinedPaths )
-<a name="148" href="#148">148</a>     {
-<a name="149" href="#149">149</a>         File path = dependency.getFile();
-<a name="150" href="#150">150</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != path &amp;&amp; path.exists() )
-<a name="151" href="#151">151</a>         {
-<a name="152" href="#152">152</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"true"</span>.equalsIgnoreCase( inline ) || inline.length() == 0 )
+<a name="135" href="#135">135</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = dependencies.iterator(); i.hasNext(); )
+<a name="136" href="#136">136</a>             {
+<a name="137" href="#137">137</a>                 addInlinedPaths( ( Artifact ) i.next(), inline, m_inlinedPaths );
+<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> 
+<a name="143" href="#143">143</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> addInlinedPaths( Artifact dependency, String inline, Collection inlinedPaths )
+<a name="144" href="#144">144</a>     {
+<a name="145" href="#145">145</a>         File path = dependency.getFile();
+<a name="146" href="#146">146</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != path &amp;&amp; path.exists() )
+<a name="147" href="#147">147</a>         {
+<a name="148" href="#148">148</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"true"</span>.equalsIgnoreCase( inline ) || inline.length() == 0 )
+<a name="149" href="#149">149</a>             {
+<a name="150" href="#150">150</a>                 inlinedPaths.add( path.getPath() );
+<a name="151" href="#151">151</a>             }
+<a name="152" href="#152">152</a>             <strong class="jxr_keyword">else</strong>
 <a name="153" href="#153">153</a>             {
-<a name="154" href="#154">154</a>                 inlinedPaths.add( path.getPath() );
-<a name="155" href="#155">155</a>             }
-<a name="156" href="#156">156</a>             <strong class="jxr_keyword">else</strong>
-<a name="157" href="#157">157</a>             {
-<a name="158" href="#158">158</a>                 String[] filters = inline.split( <span class="jxr_string">"&#92;&#92;|"</span> );
-<a name="159" href="#159">159</a>                 <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; filters.length; i++ )
-<a name="160" href="#160">160</a>                 {
-<a name="161" href="#161">161</a>                     <strong class="jxr_keyword">if</strong> ( filters[i].length() &gt; 0 )
-<a name="162" href="#162">162</a>                     {
-<a name="163" href="#163">163</a>                         inlinedPaths.add( path + <span class="jxr_string">"!/"</span> + filters[i] );
-<a name="164" href="#164">164</a>                     }
-<a name="165" href="#165">165</a>                 }
-<a name="166" href="#166">166</a>             }
-<a name="167" href="#167">167</a>         }
-<a name="168" href="#168">168</a>     }
-<a name="169" href="#169">169</a> 
-<a name="170" href="#170">170</a> 
-<a name="171" href="#171">171</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> embedDependency( Artifact dependency, StringBuffer includeResource, StringBuffer bundleClassPath )
-<a name="172" href="#172">172</a>     {
-<a name="173" href="#173">173</a>         File sourceFile = dependency.getFile();
-<a name="174" href="#174">174</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != sourceFile &amp;&amp; sourceFile.exists() )
-<a name="175" href="#175">175</a>         {
-<a name="176" href="#176">176</a>             String embedDirectory = m_embedDirectory;
-<a name="177" href="#177">177</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">""</span>.equals( embedDirectory ) || <span class="jxr_string">"."</span>.equals( embedDirectory ) )
-<a name="178" href="#178">178</a>             {
-<a name="179" href="#179">179</a>                 embedDirectory = <strong class="jxr_keyword">null</strong>;
-<a name="180" href="#180">180</a>             }
-<a name="181" href="#181">181</a> 
-<a name="182" href="#182">182</a>             <strong class="jxr_keyword">if</strong> ( false == Boolean.valueOf( m_embedStripGroup ).booleanValue() )
-<a name="183" href="#183">183</a>             {
-<a name="184" href="#184">184</a>                 embedDirectory = <strong class="jxr_keyword">new</strong> File( embedDirectory, dependency.getGroupId() ).getPath();
-<a name="185" href="#185">185</a>             }
-<a name="186" href="#186">186</a> 
-<a name="187" href="#187">187</a>             File targetFile;
-<a name="188" href="#188">188</a>             <strong class="jxr_keyword">if</strong> ( Boolean.valueOf( m_embedStripVersion ).booleanValue() )
-<a name="189" href="#189">189</a>             {
-<a name="190" href="#190">190</a>                 String extension = dependency.getArtifactHandler().getExtension();
-<a name="191" href="#191">191</a>                 <strong class="jxr_keyword">if</strong> ( extension != <strong class="jxr_keyword">null</strong> )
-<a name="192" href="#192">192</a>                 {
-<a name="193" href="#193">193</a>                     targetFile = <strong class="jxr_keyword">new</strong> File( embedDirectory, dependency.getArtifactId() + <span class="jxr_string">"."</span> + extension );
-<a name="194" href="#194">194</a>                 }
-<a name="195" href="#195">195</a>                 <strong class="jxr_keyword">else</strong>
-<a name="196" href="#196">196</a>                 {
-<a name="197" href="#197">197</a>                     targetFile = <strong class="jxr_keyword">new</strong> File( embedDirectory, dependency.getArtifactId() );
-<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">else</strong>
-<a name="201" href="#201">201</a>             {
-<a name="202" href="#202">202</a>                 targetFile = <strong class="jxr_keyword">new</strong> File( embedDirectory, sourceFile.getName() );
-<a name="203" href="#203">203</a>             }
-<a name="204" href="#204">204</a> 
-<a name="205" href="#205">205</a>             String targetFilePath = targetFile.getPath();
-<a name="206" href="#206">206</a> 
-<a name="207" href="#207">207</a>             <em class="jxr_comment">// replace windows backslash with a slash</em>
-<a name="208" href="#208">208</a>             <strong class="jxr_keyword">if</strong> ( File.separatorChar != '/' )
-<a name="209" href="#209">209</a>             {
-<a name="210" href="#210">210</a>                 targetFilePath = targetFilePath.replace( File.separatorChar, '/' );
-<a name="211" href="#211">211</a>             }
-<a name="212" href="#212">212</a> 
-<a name="213" href="#213">213</a>             <strong class="jxr_keyword">if</strong> ( includeResource.length() &gt; 0 )
-<a name="214" href="#214">214</a>             {
-<a name="215" href="#215">215</a>                 includeResource.append( ',' );
-<a name="216" href="#216">216</a>             }
-<a name="217" href="#217">217</a> 
-<a name="218" href="#218">218</a>             includeResource.append( targetFilePath );
-<a name="219" href="#219">219</a>             includeResource.append( '=' );
-<a name="220" href="#220">220</a>             includeResource.append( sourceFile );
-<a name="221" href="#221">221</a> 
-<a name="222" href="#222">222</a>             <strong class="jxr_keyword">if</strong> ( bundleClassPath.length() &gt; 0 )
-<a name="223" href="#223">223</a>             {
-<a name="224" href="#224">224</a>                 bundleClassPath.append( ',' );
-<a name="225" href="#225">225</a>             }
-<a name="226" href="#226">226</a> 
-<a name="227" href="#227">227</a>             bundleClassPath.append( targetFilePath );
-<a name="228" href="#228">228</a>         }
-<a name="229" href="#229">229</a>     }
+<a name="154" href="#154">154</a>                 String[] filters = inline.split( <span class="jxr_string">"&#92;&#92;|"</span> );
+<a name="155" href="#155">155</a>                 <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; filters.length; i++ )
+<a name="156" href="#156">156</a>                 {
+<a name="157" href="#157">157</a>                     <strong class="jxr_keyword">if</strong> ( filters[i].length() &gt; 0 )
+<a name="158" href="#158">158</a>                     {
+<a name="159" href="#159">159</a>                         inlinedPaths.add( path + <span class="jxr_string">"!/"</span> + filters[i] );
+<a name="160" href="#160">160</a>                     }
+<a name="161" href="#161">161</a>                 }
+<a name="162" href="#162">162</a>             }
+<a name="163" href="#163">163</a>         }
+<a name="164" href="#164">164</a>     }
+<a name="165" href="#165">165</a> 
+<a name="166" href="#166">166</a> 
+<a name="167" href="#167">167</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> embedDependency( Artifact dependency, StringBuffer includeResource, StringBuffer bundleClassPath,
+<a name="168" href="#168">168</a>         StringBuffer embeddedArtifacts )
+<a name="169" href="#169">169</a>     {
+<a name="170" href="#170">170</a>         File sourceFile = dependency.getFile();
+<a name="171" href="#171">171</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != sourceFile &amp;&amp; sourceFile.exists() )
+<a name="172" href="#172">172</a>         {
+<a name="173" href="#173">173</a>             String embedDirectory = m_embedDirectory;
+<a name="174" href="#174">174</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">""</span>.equals( embedDirectory ) || <span class="jxr_string">"."</span>.equals( embedDirectory ) )
+<a name="175" href="#175">175</a>             {
+<a name="176" href="#176">176</a>                 embedDirectory = <strong class="jxr_keyword">null</strong>;
+<a name="177" href="#177">177</a>             }
+<a name="178" href="#178">178</a> 
+<a name="179" href="#179">179</a>             <strong class="jxr_keyword">if</strong> ( false == Boolean.valueOf( m_embedStripGroup ).booleanValue() )
+<a name="180" href="#180">180</a>             {
+<a name="181" href="#181">181</a>                 embedDirectory = <strong class="jxr_keyword">new</strong> File( embedDirectory, dependency.getGroupId() ).getPath();
+<a name="182" href="#182">182</a>             }
+<a name="183" href="#183">183</a> 
+<a name="184" href="#184">184</a>             StringBuffer targetFileName = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="185" href="#185">185</a>             targetFileName.append( dependency.getArtifactId() );
+<a name="186" href="#186">186</a>             <strong class="jxr_keyword">if</strong> ( false == Boolean.valueOf( m_embedStripVersion ).booleanValue() )
+<a name="187" href="#187">187</a>             {
+<a name="188" href="#188">188</a>                 targetFileName.append( '-' ).append( dependency.getVersion() );
+<a name="189" href="#189">189</a>                 <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( dependency.getClassifier() ) )
+<a name="190" href="#190">190</a>                 {
+<a name="191" href="#191">191</a>                     targetFileName.append( '-' ).append( dependency.getClassifier() );
+<a name="192" href="#192">192</a>                 }
+<a name="193" href="#193">193</a>             }
+<a name="194" href="#194">194</a>             String extension = dependency.getArtifactHandler().getExtension();
+<a name="195" href="#195">195</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( extension ) )
+<a name="196" href="#196">196</a>             {
+<a name="197" href="#197">197</a>                 targetFileName.append( '.' ).append( extension );
+<a name="198" href="#198">198</a>             }
+<a name="199" href="#199">199</a> 
+<a name="200" href="#200">200</a>             File targetFile = <strong class="jxr_keyword">new</strong> File( embedDirectory, targetFileName.toString() );
+<a name="201" href="#201">201</a> 
+<a name="202" href="#202">202</a>             String targetFilePath = targetFile.getPath();
+<a name="203" href="#203">203</a> 
+<a name="204" href="#204">204</a>             <em class="jxr_comment">// replace windows backslash with a slash</em>
+<a name="205" href="#205">205</a>             <strong class="jxr_keyword">if</strong> ( File.separatorChar != '/' )
+<a name="206" href="#206">206</a>             {
+<a name="207" href="#207">207</a>                 targetFilePath = targetFilePath.replace( File.separatorChar, '/' );
+<a name="208" href="#208">208</a>             }
+<a name="209" href="#209">209</a> 
+<a name="210" href="#210">210</a>             <strong class="jxr_keyword">if</strong> ( includeResource.length() &gt; 0 )
+<a name="211" href="#211">211</a>             {
+<a name="212" href="#212">212</a>                 includeResource.append( ',' );
+<a name="213" href="#213">213</a>             }
+<a name="214" href="#214">214</a> 
+<a name="215" href="#215">215</a>             includeResource.append( targetFilePath );
+<a name="216" href="#216">216</a>             includeResource.append( '=' );
+<a name="217" href="#217">217</a>             includeResource.append( sourceFile );
+<a name="218" href="#218">218</a> 
+<a name="219" href="#219">219</a>             <strong class="jxr_keyword">if</strong> ( bundleClassPath.length() &gt; 0 )
+<a name="220" href="#220">220</a>             {
+<a name="221" href="#221">221</a>                 bundleClassPath.append( ',' );
+<a name="222" href="#222">222</a>             }
+<a name="223" href="#223">223</a> 
+<a name="224" href="#224">224</a>             bundleClassPath.append( targetFilePath );
+<a name="225" href="#225">225</a> 
+<a name="226" href="#226">226</a>             <strong class="jxr_keyword">if</strong> ( embeddedArtifacts.length() &gt; 0 )
+<a name="227" href="#227">227</a>             {
+<a name="228" href="#228">228</a>                 embeddedArtifacts.append( ',' );
+<a name="229" href="#229">229</a>             }
 <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">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> inlineDependency( String path, StringBuffer includeResource )
-<a name="233" href="#233">233</a>     {
-<a name="234" href="#234">234</a>         <strong class="jxr_keyword">if</strong> ( includeResource.length() &gt; 0 )
-<a name="235" href="#235">235</a>         {
-<a name="236" href="#236">236</a>             includeResource.append( ',' );
-<a name="237" href="#237">237</a>         }
-<a name="238" href="#238">238</a> 
-<a name="239" href="#239">239</a>         includeResource.append( '@' );
-<a name="240" href="#240">240</a>         includeResource.append( path );
-<a name="241" href="#241">241</a>     }
+<a name="231" href="#231">231</a>             embeddedArtifacts.append( targetFilePath ).append( ';' );
+<a name="232" href="#232">232</a>             embeddedArtifacts.append( <span class="jxr_string">"g=\&quot;"</span> ).append( dependency.getGroupId() ).append( '&quot;' );
+<a name="233" href="#233">233</a>             embeddedArtifacts.append( <span class="jxr_string">";a=\&quot;"</span> ).append( dependency.getArtifactId() ).append( '&quot;' );
+<a name="234" href="#234">234</a>             embeddedArtifacts.append( <span class="jxr_string">";v=\&quot;"</span> ).append( dependency.getBaseVersion() ).append( '&quot;' );
+<a name="235" href="#235">235</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( dependency.getClassifier() ) )
+<a name="236" href="#236">236</a>             {
+<a name="237" href="#237">237</a>                 embeddedArtifacts.append( <span class="jxr_string">";c=\&quot;"</span> ).append( dependency.getClassifier() ).append( '&quot;' );
+<a name="238" href="#238">238</a>             }
+<a name="239" href="#239">239</a>         }
+<a name="240" href="#240">240</a>     }
+<a name="241" href="#241">241</a> 
 <a name="242" href="#242">242</a> 
-<a name="243" href="#243">243</a> 
-<a name="244" href="#244">244</a>     <strong class="jxr_keyword">public</strong> Collection getInlinedPaths()
-<a name="245" href="#245">245</a>     {
-<a name="246" href="#246">246</a>         <strong class="jxr_keyword">return</strong> m_inlinedPaths;
-<a name="247" href="#247">247</a>     }
-<a name="248" href="#248">248</a> 
+<a name="243" href="#243">243</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> inlineDependency( String path, StringBuffer includeResource )
+<a name="244" href="#244">244</a>     {
+<a name="245" href="#245">245</a>         <strong class="jxr_keyword">if</strong> ( includeResource.length() &gt; 0 )
+<a name="246" href="#246">246</a>         {
+<a name="247" href="#247">247</a>             includeResource.append( ',' );
+<a name="248" href="#248">248</a>         }
 <a name="249" href="#249">249</a> 
-<a name="250" href="#250">250</a>     <strong class="jxr_keyword">public</strong> Collection getEmbeddedArtifacts()
-<a name="251" href="#251">251</a>     {
-<a name="252" href="#252">252</a>         <strong class="jxr_keyword">return</strong> m_embeddedArtifacts;
-<a name="253" href="#253">253</a>     }
+<a name="250" href="#250">250</a>         includeResource.append( '@' );
+<a name="251" href="#251">251</a>         includeResource.append( path );
+<a name="252" href="#252">252</a>     }
+<a name="253" href="#253">253</a> 
 <a name="254" href="#254">254</a> 
-<a name="255" href="#255">255</a> 
-<a name="256" href="#256">256</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> appendDependencies( Analyzer analyzer, String directiveName, String mavenDependencies )
-<a name="257" href="#257">257</a>     {
-<a name="258" href="#258">258</a>         <em class="jxr_comment">/*</em>
-<a name="259" href="#259">259</a> <em class="jxr_comment">         * similar algorithm to {maven-resources} but default behaviour here is to append rather than override</em>
-<a name="260" href="#260">260</a> <em class="jxr_comment">         */</em>
-<a name="261" href="#261">261</a>         <strong class="jxr_keyword">final</strong> String instruction = analyzer.getProperty( directiveName );
-<a name="262" href="#262">262</a>         <strong class="jxr_keyword">if</strong> ( instruction != <strong class="jxr_keyword">null</strong> &amp;&amp; instruction.length() &gt; 0 )
-<a name="263" href="#263">263</a>         {
-<a name="264" href="#264">264</a>             <strong class="jxr_keyword">if</strong> ( instruction.indexOf( MAVEN_DEPENDENCIES ) &gt;= 0 )
-<a name="265" href="#265">265</a>             {
-<a name="266" href="#266">266</a>                 <em class="jxr_comment">// if there are no embeddded dependencies, we do a special treatment and replace</em>
-<a name="267" href="#267">267</a>                 <em class="jxr_comment">// every occurance of MAVEN_DEPENDENCIES and a following comma with an empty string</em>
-<a name="268" href="#268">268</a>                 <strong class="jxr_keyword">if</strong> ( mavenDependencies.length() == 0 )
-<a name="269" href="#269">269</a>                 {
-<a name="270" href="#270">270</a>                     String cleanInstruction = BundlePlugin.removeTagFromInstruction( instruction, MAVEN_DEPENDENCIES );
-<a name="271" href="#271">271</a>                     analyzer.setProperty( directiveName, cleanInstruction );
-<a name="272" href="#272">272</a>                 }
-<a name="273" href="#273">273</a>                 <strong class="jxr_keyword">else</strong>
-<a name="274" href="#274">274</a>                 {
-<a name="275" href="#275">275</a>                     String mergedInstruction = StringUtils.replace( instruction, MAVEN_DEPENDENCIES, mavenDependencies );
-<a name="276" href="#276">276</a>                     analyzer.setProperty( directiveName, mergedInstruction );
-<a name="277" href="#277">277</a>                 }
-<a name="278" href="#278">278</a>             }
-<a name="279" href="#279">279</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenDependencies.length() &gt; 0 )
-<a name="280" href="#280">280</a>             {
-<a name="281" href="#281">281</a>                 <strong class="jxr_keyword">if</strong> ( Analyzer.INCLUDE_RESOURCE.equalsIgnoreCase( directiveName ) )
-<a name="282" href="#282">282</a>                 {
-<a name="283" href="#283">283</a>                     <em class="jxr_comment">// dependencies should be prepended so they can be overwritten by local resources</em>
-<a name="284" href="#284">284</a>                     analyzer.setProperty( directiveName, mavenDependencies + ',' + instruction );
-<a name="285" href="#285">285</a>                 }
-<a name="286" href="#286">286</a>                 <strong class="jxr_keyword">else</strong>
-<a name="287" href="#287">287</a>                 <em class="jxr_comment">// Analyzer.BUNDLE_CLASSPATH</em>
-<a name="288" href="#288">288</a>                 {
-<a name="289" href="#289">289</a>                     <em class="jxr_comment">// for the classpath we want dependencies to be appended after local entries</em>
-<a name="290" href="#290">290</a>                     analyzer.setProperty( directiveName, instruction + ',' + mavenDependencies );
-<a name="291" href="#291">291</a>                 }
-<a name="292" href="#292">292</a>             }
-<a name="293" href="#293">293</a>             <em class="jxr_comment">// otherwise leave instruction unchanged</em>
-<a name="294" href="#294">294</a>         }
-<a name="295" href="#295">295</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenDependencies.length() &gt; 0 )
-<a name="296" href="#296">296</a>         {
-<a name="297" href="#297">297</a>             analyzer.setProperty( directiveName, mavenDependencies );
-<a name="298" href="#298">298</a>         }
-<a name="299" href="#299">299</a>         <em class="jxr_comment">// otherwise leave instruction unchanged</em>
-<a name="300" href="#300">300</a>     }
-<a name="301" href="#301">301</a> }
+<a name="255" href="#255">255</a>     <strong class="jxr_keyword">public</strong> Collection getInlinedPaths()
+<a name="256" href="#256">256</a>     {
+<a name="257" href="#257">257</a>         <strong class="jxr_keyword">return</strong> m_inlinedPaths;
+<a name="258" href="#258">258</a>     }
+<a name="259" href="#259">259</a> 
+<a name="260" href="#260">260</a> 
+<a name="261" href="#261">261</a>     <strong class="jxr_keyword">public</strong> Collection getEmbeddedArtifacts()
+<a name="262" href="#262">262</a>     {
+<a name="263" href="#263">263</a>         <strong class="jxr_keyword">return</strong> m_embeddedArtifacts;
+<a name="264" href="#264">264</a>     }
+<a name="265" href="#265">265</a> 
+<a name="266" href="#266">266</a> 
+<a name="267" href="#267">267</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> appendDependencies( Analyzer analyzer, String directiveName, String mavenDependencies )
+<a name="268" href="#268">268</a>     {
+<a name="269" href="#269">269</a>         <em class="jxr_comment">/*</em>
+<a name="270" href="#270">270</a> <em class="jxr_comment">         * similar algorithm to {maven-resources} but default behaviour here is to append rather than override</em>
+<a name="271" href="#271">271</a> <em class="jxr_comment">         */</em>
+<a name="272" href="#272">272</a>         <strong class="jxr_keyword">final</strong> String instruction = analyzer.getProperty( directiveName );
+<a name="273" href="#273">273</a>         <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( instruction ) )
+<a name="274" href="#274">274</a>         {
+<a name="275" href="#275">275</a>             <strong class="jxr_keyword">if</strong> ( instruction.indexOf( MAVEN_DEPENDENCIES ) &gt;= 0 )
+<a name="276" href="#276">276</a>             {
+<a name="277" href="#277">277</a>                 <em class="jxr_comment">// if there are no embeddded dependencies, we do a special treatment and replace</em>
+<a name="278" href="#278">278</a>                 <em class="jxr_comment">// every occurance of MAVEN_DEPENDENCIES and a following comma with an empty string</em>
+<a name="279" href="#279">279</a>                 <strong class="jxr_keyword">if</strong> ( mavenDependencies.length() == 0 )
+<a name="280" href="#280">280</a>                 {
+<a name="281" href="#281">281</a>                     String cleanInstruction = BundlePlugin.removeTagFromInstruction( instruction, MAVEN_DEPENDENCIES );
+<a name="282" href="#282">282</a>                     analyzer.setProperty( directiveName, cleanInstruction );
+<a name="283" href="#283">283</a>                 }
+<a name="284" href="#284">284</a>                 <strong class="jxr_keyword">else</strong>
+<a name="285" href="#285">285</a>                 {
+<a name="286" href="#286">286</a>                     String mergedInstruction = StringUtils.replace( instruction, MAVEN_DEPENDENCIES, mavenDependencies );
+<a name="287" href="#287">287</a>                     analyzer.setProperty( directiveName, mergedInstruction );
+<a name="288" href="#288">288</a>                 }
+<a name="289" href="#289">289</a>             }
+<a name="290" href="#290">290</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenDependencies.length() &gt; 0 )
+<a name="291" href="#291">291</a>             {
+<a name="292" href="#292">292</a>                 <strong class="jxr_keyword">if</strong> ( Analyzer.INCLUDE_RESOURCE.equalsIgnoreCase( directiveName ) )
+<a name="293" href="#293">293</a>                 {
+<a name="294" href="#294">294</a>                     <em class="jxr_comment">// dependencies should be prepended so they can be overwritten by local resources</em>
+<a name="295" href="#295">295</a>                     analyzer.setProperty( directiveName, mavenDependencies + ',' + instruction );
+<a name="296" href="#296">296</a>                 }
+<a name="297" href="#297">297</a>                 <strong class="jxr_keyword">else</strong>
+<a name="298" href="#298">298</a>                 <em class="jxr_comment">// Analyzer.BUNDLE_CLASSPATH</em>
+<a name="299" href="#299">299</a>                 {
+<a name="300" href="#300">300</a>                     <em class="jxr_comment">// for the classpath we want dependencies to be appended after local entries</em>
+<a name="301" href="#301">301</a>                     analyzer.setProperty( directiveName, instruction + ',' + mavenDependencies );
+<a name="302" href="#302">302</a>                 }
+<a name="303" href="#303">303</a>             }
+<a name="304" href="#304">304</a>             <em class="jxr_comment">// otherwise leave instruction unchanged</em>
+<a name="305" href="#305">305</a>         }
+<a name="306" href="#306">306</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenDependencies.length() &gt; 0 )
+<a name="307" href="#307">307</a>         {
+<a name="308" href="#308">308</a>             analyzer.setProperty( directiveName, mavenDependencies );
+<a name="309" href="#309">309</a>         }
+<a name="310" href="#310">310</a>         <em class="jxr_comment">// otherwise leave instruction unchanged</em>
+<a name="311" href="#311">311</a>     }
+<a name="312" href="#312">312</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/DependencyExcluder.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/DependencyExcluder.html
index 36e6668..63472d1 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/DependencyExcluder.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/DependencyExcluder.html
@@ -34,53 +34,51 @@
 <a name="24" href="#24">24</a>  
 <a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
 <a name="26" href="#26">26</a>  
-<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> aQute.libg.header.OSGiHeader;
-<a name="28" href="#28">28</a>  
-<a name="29" href="#29">29</a>  
-<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment">/**</em>
-<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> * Exclude selected dependencies from the classpath passed to BND.</em>
-<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> * </em>
-<a name="33" href="#33">33</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="34" href="#34">34</a>  <em class="jxr_javadoccomment"> */</em>
-<a name="35" href="#35">35</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyExcluder.html">DependencyExcluder</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">AbstractDependencyFilter</a>
-<a name="36" href="#36">36</a>  {
-<a name="37" href="#37">37</a>      <em class="jxr_javadoccomment">/**</em>
-<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment">     * Excluded artifacts.</em>
-<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment">     */</em>
-<a name="40" href="#40">40</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Collection m_excludedArtifacts;
-<a name="41" href="#41">41</a>  
-<a name="42" href="#42">42</a>  
-<a name="43" href="#43">43</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyExcluder.html">DependencyExcluder</a>( Collection dependencyArtifacts )
-<a name="44" href="#44">44</a>      {
-<a name="45" href="#45">45</a>          <strong class="jxr_keyword">super</strong>( dependencyArtifacts );
-<a name="46" href="#46">46</a>  
-<a name="47" href="#47">47</a>          m_excludedArtifacts = <strong class="jxr_keyword">new</strong> HashSet();
-<a name="48" href="#48">48</a>      }
-<a name="49" href="#49">49</a>  
-<a name="50" href="#50">50</a>  
-<a name="51" href="#51">51</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> processHeaders( String excludeDependencies ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="52" href="#52">52</a>      {
-<a name="53" href="#53">53</a>          m_excludedArtifacts.clear();
-<a name="54" href="#54">54</a>  
-<a name="55" href="#55">55</a>          <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != excludeDependencies &amp;&amp; excludeDependencies.length() &gt; 0 )
-<a name="56" href="#56">56</a>          {
-<a name="57" href="#57">57</a>              processInstructions( OSGiHeader.parseHeader( excludeDependencies ) );
-<a name="58" href="#58">58</a>          }
-<a name="59" href="#59">59</a>      }
-<a name="60" href="#60">60</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> processDependencies( String tag, String inline, Collection dependencies )
-<a name="64" href="#64">64</a>      {
-<a name="65" href="#65">65</a>          m_excludedArtifacts.addAll( dependencies );
-<a name="66" href="#66">66</a>      }
-<a name="67" href="#67">67</a>  
-<a name="68" href="#68">68</a>  
-<a name="69" href="#69">69</a>      <strong class="jxr_keyword">public</strong> Collection getExcludedArtifacts()
-<a name="70" href="#70">70</a>      {
-<a name="71" href="#71">71</a>          <strong class="jxr_keyword">return</strong> m_excludedArtifacts;
-<a name="72" href="#72">72</a>      }
-<a name="73" href="#73">73</a>  }
+<a name="27" href="#27">27</a>  
+<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * Exclude selected dependencies from the classpath passed to BND.</em>
+<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="31" href="#31">31</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="32" href="#32">32</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="33" href="#33">33</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/DependencyExcluder.html">DependencyExcluder</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">AbstractDependencyFilter</a>
+<a name="34" href="#34">34</a>  {
+<a name="35" href="#35">35</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment">     * Excluded artifacts.</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="38" href="#38">38</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Collection m_excludedArtifacts;
+<a name="39" href="#39">39</a>  
+<a name="40" href="#40">40</a>  
+<a name="41" href="#41">41</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyExcluder.html">DependencyExcluder</a>( Collection dependencyArtifacts )
+<a name="42" href="#42">42</a>      {
+<a name="43" href="#43">43</a>          <strong class="jxr_keyword">super</strong>( dependencyArtifacts );
+<a name="44" href="#44">44</a>  
+<a name="45" href="#45">45</a>          m_excludedArtifacts = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="46" href="#46">46</a>      }
+<a name="47" href="#47">47</a>  
+<a name="48" href="#48">48</a>  
+<a name="49" href="#49">49</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> processHeaders( String excludeDependencies ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="50" href="#50">50</a>      {
+<a name="51" href="#51">51</a>          m_excludedArtifacts.clear();
+<a name="52" href="#52">52</a>  
+<a name="53" href="#53">53</a>          <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != excludeDependencies &amp;&amp; excludeDependencies.length() &gt; 0 )
+<a name="54" href="#54">54</a>          {
+<a name="55" href="#55">55</a>              processInstructions( excludeDependencies );
+<a name="56" href="#56">56</a>          }
+<a name="57" href="#57">57</a>      }
+<a name="58" href="#58">58</a>  
+<a name="59" href="#59">59</a>  
+<a name="60" href="#60">60</a>      @Override
+<a name="61" href="#61">61</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> processDependencies( Collection dependencies, String inline )
+<a name="62" href="#62">62</a>      {
+<a name="63" href="#63">63</a>          m_excludedArtifacts.addAll( dependencies );
+<a name="64" href="#64">64</a>      }
+<a name="65" href="#65">65</a>  
+<a name="66" href="#66">66</a>  
+<a name="67" href="#67">67</a>      <strong class="jxr_keyword">public</strong> Collection getExcludedArtifacts()
+<a name="68" href="#68">68</a>      {
+<a name="69" href="#69">69</a>          <strong class="jxr_keyword">return</strong> m_excludedArtifacts;
+<a name="70" href="#70">70</a>      }
+<a name="71" href="#71">71</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 9c08abe..889091e 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/ManifestPlugin.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/ManifestPlugin.html
@@ -33,177 +33,203 @@
 <a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.FileNotFoundException;
 <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.util.LinkedHashMap;
-<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
-<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
-<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Manifest;
-<a name="30" href="#30">30</a>  
-<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
-<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoFailureException;
-<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
-<a name="34" href="#34">34</a>  
-<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
-<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Builder;
-<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
-<a name="38" href="#38">38</a>  
-<a name="39" href="#39">39</a>  
-<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment">/**</em>
-<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * Generate an OSGi manifest for this project</em>
-<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * </em>
-<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * @goal manifest</em>
-<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> * @phase process-classes</em>
-<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> * @requiresDependencyResolution test</em>
-<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * @threadSafe</em>
-<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> */</em>
-<a name="48" href="#48">48</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="49" href="#49">49</a>  {
-<a name="50" href="#50">50</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject project, Map instructions, Properties properties, Jar[] classpath )
-<a name="51" href="#51">51</a>          <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="52" href="#52">52</a>      {
-<a name="53" href="#53">53</a>          Manifest manifest;
-<a name="54" href="#54">54</a>          <strong class="jxr_keyword">try</strong>
-<a name="55" href="#55">55</a>          {
-<a name="56" href="#56">56</a>              <strong class="jxr_keyword">if</strong> ( supportedProjectTypes.contains( getProject().getArtifact().getType() ) )
-<a name="57" href="#57">57</a>              {
-<a name="58" href="#58">58</a>                  Builder builder = buildOSGiBundle( project, instructions, properties, classpath );
-<a name="59" href="#59">59</a>                  manifest = builder.getJar().getManifest();
-<a name="60" href="#60">60</a>                  builder.close();
-<a name="61" href="#61">61</a>              }
-<a name="62" href="#62">62</a>              <strong class="jxr_keyword">else</strong>
-<a name="63" href="#63">63</a>              {
-<a name="64" href="#64">64</a>                  manifest = getManifest( project, instructions, properties, classpath );
-<a name="65" href="#65">65</a>              }
-<a name="66" href="#66">66</a>          }
-<a name="67" href="#67">67</a>          <strong class="jxr_keyword">catch</strong> ( FileNotFoundException e )
-<a name="68" href="#68">68</a>          {
-<a name="69" href="#69">69</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="70" href="#70">70</a>                  + <span class="jxr_string">" (manifest goal must be run after compile phase)"</span>, e );
-<a name="71" href="#71">71</a>          }
-<a name="72" href="#72">72</a>          <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="73" href="#73">73</a>          {
-<a name="74" href="#74">74</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="75" href="#75">75</a>          }
-<a name="76" href="#76">76</a>          <strong class="jxr_keyword">catch</strong> ( MojoFailureException e )
-<a name="77" href="#77">77</a>          {
-<a name="78" href="#78">78</a>              getLog().error( e.getLocalizedMessage() );
-<a name="79" href="#79">79</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="80" href="#80">80</a>          }
-<a name="81" href="#81">81</a>          <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="82" href="#82">82</a>          {
-<a name="83" href="#83">83</a>              getLog().error( <span class="jxr_string">"An internal error occurred"</span>, e );
-<a name="84" href="#84">84</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="85" href="#85">85</a>          }
-<a name="86" href="#86">86</a>  
-<a name="87" href="#87">87</a>          File outputFile = <strong class="jxr_keyword">new</strong> File( manifestLocation, <span class="jxr_string">"MANIFEST.MF"</span> );
-<a name="88" href="#88">88</a>  
-<a name="89" href="#89">89</a>          <strong class="jxr_keyword">try</strong>
-<a name="90" href="#90">90</a>          {
-<a name="91" href="#91">91</a>              writeManifest( manifest, outputFile );
-<a name="92" href="#92">92</a>          }
-<a name="93" href="#93">93</a>          <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="94" href="#94">94</a>          {
-<a name="95" href="#95">95</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="96" href="#96">96</a>          }
-<a name="97" href="#97">97</a>      }
-<a name="98" href="#98">98</a>  
-<a name="99" href="#99">99</a>  
-<a name="100" href="#100">100</a>     <strong class="jxr_keyword">public</strong> Manifest getManifest( MavenProject project, Jar[] classpath ) <strong class="jxr_keyword">throws</strong> IOException, MojoFailureException,
-<a name="101" href="#101">101</a>         MojoExecutionException, Exception
-<a name="102" href="#102">102</a>     {
-<a name="103" href="#103">103</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="104" href="#104">104</a>     }
-<a name="105" href="#105">105</a> 
-<a name="106" href="#106">106</a> 
-<a name="107" href="#107">107</a>     <strong class="jxr_keyword">public</strong> Manifest getManifest( MavenProject project, Map instructions, Properties properties, Jar[] classpath )
-<a name="108" href="#108">108</a>         <strong class="jxr_keyword">throws</strong> IOException, MojoFailureException, MojoExecutionException, Exception
-<a name="109" href="#109">109</a>     {
-<a name="110" href="#110">110</a>         Analyzer analyzer = getAnalyzer( project, instructions, properties, classpath );
-<a name="111" href="#111">111</a>         <strong class="jxr_keyword">boolean</strong> hasErrors = reportErrors( <span class="jxr_string">"Manifest "</span> + project.getArtifact(), analyzer );
-<a name="112" href="#112">112</a>         <strong class="jxr_keyword">if</strong> ( hasErrors )
-<a name="113" href="#113">113</a>         {
-<a name="114" href="#114">114</a>             String failok = analyzer.getProperty( <span class="jxr_string">"-failok"</span> );
-<a name="115" href="#115">115</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == failok || <span class="jxr_string">"false"</span>.equalsIgnoreCase( failok ) )
-<a name="116" href="#116">116</a>             {
-<a name="117" href="#117">117</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="118" href="#118">118</a>             }
-<a name="119" href="#119">119</a>         }
-<a name="120" href="#120">120</a> 
-<a name="121" href="#121">121</a>         Manifest manifest = analyzer.getJar().getManifest();
-<a name="122" href="#122">122</a> 
-<a name="123" href="#123">123</a>         <em class="jxr_comment">// cleanup...</em>
-<a name="124" href="#124">124</a>         analyzer.close();
+<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="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="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="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="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">return</strong> manifest;
-<a name="127" href="#127">127</a>     }
-<a name="128" href="#128">128</a> 
-<a name="129" href="#129">129</a> 
-<a name="130" href="#130">130</a>     <strong class="jxr_keyword">protected</strong> Analyzer getAnalyzer( MavenProject project, Jar[] classpath ) <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException,
-<a name="131" href="#131">131</a>         Exception
-<a name="132" href="#132">132</a>     {
-<a name="133" href="#133">133</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="134" href="#134">134</a>     }
-<a name="135" href="#135">135</a> 
-<a name="136" href="#136">136</a> 
-<a name="137" href="#137">137</a>     <strong class="jxr_keyword">protected</strong> Analyzer getAnalyzer( MavenProject project, Map instructions, Properties properties, Jar[] classpath )
-<a name="138" href="#138">138</a>         <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException, Exception
-<a name="139" href="#139">139</a>     {
-<a name="140" href="#140">140</a>         File file = project.getArtifact().getFile();
-<a name="141" href="#141">141</a>         <strong class="jxr_keyword">if</strong> ( file == <strong class="jxr_keyword">null</strong> )
-<a name="142" href="#142">142</a>         {
-<a name="143" href="#143">143</a>             file = getOutputDirectory();
-<a name="144" href="#144">144</a>         }
-<a name="145" href="#145">145</a> 
-<a name="146" href="#146">146</a>         <strong class="jxr_keyword">if</strong> ( !file.exists() )
-<a name="147" href="#147">147</a>         {
-<a name="148" href="#148">148</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> FileNotFoundException( file.getPath() );
-<a name="149" href="#149">149</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="150" href="#150">150</a> 
-<a name="151" href="#151">151</a>         Builder analyzer = getOSGiBuilder( project, instructions, properties, classpath );
-<a name="152" href="#152">152</a> 
-<a name="153" href="#153">153</a>         analyzer.setJar( file );
-<a name="154" href="#154">154</a> 
-<a name="155" href="#155">155</a>         <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.EXPORT_PACKAGE ) == <strong class="jxr_keyword">null</strong>
-<a name="156" href="#156">156</a>             &amp;&amp; analyzer.getProperty( Analyzer.EXPORT_CONTENTS ) == <strong class="jxr_keyword">null</strong>
-<a name="157" href="#157">157</a>             &amp;&amp; analyzer.getProperty( Analyzer.PRIVATE_PACKAGE ) == <strong class="jxr_keyword">null</strong> )
-<a name="158" href="#158">158</a>         {
-<a name="159" href="#159">159</a>             String export = analyzer.calculateExportsFromContents( analyzer.getJar() );
-<a name="160" href="#160">160</a>             analyzer.setProperty( Analyzer.EXPORT_PACKAGE, export );
-<a name="161" href="#161">161</a>         }
-<a name="162" href="#162">162</a> 
-<a name="163" href="#163">163</a>         addMavenInstructions( project, analyzer );
-<a name="164" href="#164">164</a> 
-<a name="165" href="#165">165</a>         analyzer.mergeManifest( analyzer.getJar().getManifest() );
-<a name="166" href="#166">166</a>         analyzer.calcManifest();
-<a name="167" href="#167">167</a> 
-<a name="168" href="#168">168</a>         mergeMavenManifest( project, analyzer );
-<a name="169" href="#169">169</a> 
-<a name="170" href="#170">170</a>         <strong class="jxr_keyword">return</strong> analyzer;
-<a name="171" href="#171">171</a>     }
-<a name="172" href="#172">172</a> 
-<a name="173" href="#173">173</a> 
-<a name="174" href="#174">174</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> writeManifest( Manifest manifest, File outputFile ) <strong class="jxr_keyword">throws</strong> IOException
-<a name="175" href="#175">175</a>     {
-<a name="176" href="#176">176</a>         outputFile.getParentFile().mkdirs();
-<a name="177" href="#177">177</a> 
-<a name="178" href="#178">178</a>         FileOutputStream os;
-<a name="179" href="#179">179</a>         os = <strong class="jxr_keyword">new</strong> FileOutputStream( outputFile );
-<a name="180" href="#180">180</a>         <strong class="jxr_keyword">try</strong>
-<a name="181" href="#181">181</a>         {
-<a name="182" href="#182">182</a>             manifest.write( os );
-<a name="183" href="#183">183</a>         }
-<a name="184" href="#184">184</a>         <strong class="jxr_keyword">finally</strong>
-<a name="185" href="#185">185</a>         {
-<a name="186" href="#186">186</a>             <strong class="jxr_keyword">try</strong>
-<a name="187" href="#187">187</a>             {
-<a name="188" href="#188">188</a>                 os.close();
-<a name="189" href="#189">189</a>             }
-<a name="190" href="#190">190</a>             <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="191" href="#191">191</a>             {
-<a name="192" href="#192">192</a>                 <em class="jxr_comment">// nothing we can do here</em>
-<a name="193" href="#193">193</a>             }
-<a name="194" href="#194">194</a>         }
-<a name="195" href="#195">195</a>     }
-<a name="196" href="#196">196</a> }
+<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="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="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> }
 </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 023285b..8da2172 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
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
-		<title>Maven Bundle Plugin 2.3.5 Reference Package org.apache.felix.bundleplugin</title>
+		<title>Maven Bundle Plugin 2.4.0-SNAPSHOT Reference Package org.apache.felix.bundleplugin</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
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 dba2169..accbbaf 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
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
-		<title>Maven Bundle Plugin 2.3.5 Reference Package org.apache.felix.bundleplugin</title>
+		<title>Maven Bundle Plugin 2.4.0-SNAPSHOT Reference Package org.apache.felix.bundleplugin</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrIndex.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrIndex.html
index 5b330ad..c7ecf4a 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrIndex.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrIndex.html
@@ -219,58 +219,69 @@
 <a name="209" href="#209">209</a>         }
 <a name="210" href="#210">210</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( urlTemplate != <strong class="jxr_keyword">null</strong> )
 <a name="211" href="#211">211</a>         {
-<a name="212" href="#212">212</a>             String dir = path.getParentFile().toURI().toURL().toString();
-<a name="213" href="#213">213</a>             <strong class="jxr_keyword">if</strong> ( dir.endsWith( <span class="jxr_string">"/"</span> ) )
-<a name="214" href="#214">214</a>                 dir = dir.substring( 0, dir.length() - 1 );
-<a name="215" href="#215">215</a> 
-<a name="216" href="#216">216</a>             <strong class="jxr_keyword">if</strong> ( dir.startsWith( root.toString() ) )
-<a name="217" href="#217">217</a>                 dir = dir.substring( root.toString().length() );
-<a name="218" href="#218">218</a> 
-<a name="219" href="#219">219</a>             String url = urlTemplate.replaceAll( <span class="jxr_string">"%v"</span>, <span class="jxr_string">""</span> + resource.getVersion() );
-<a name="220" href="#220">220</a>             url = url.replaceAll( <span class="jxr_string">"%s"</span>, resource.getSymbolicName() );
-<a name="221" href="#221">221</a>             url = url.replaceAll( <span class="jxr_string">"%f"</span>, path.getName() );
-<a name="222" href="#222">222</a>             url = url.replaceAll( <span class="jxr_string">"%p"</span>, dir );
-<a name="223" href="#223">223</a>             finalUri = url;
-<a name="224" href="#224">224</a>         }
-<a name="225" href="#225">225</a>         resource.put( Resource.URI, finalUri, Property.URI );
-<a name="226" href="#226">226</a>     }
+<a name="212" href="#212">212</a>             URI parentDir = path.getParentFile().toURI();
+<a name="213" href="#213">213</a> 
+<a name="214" href="#214">214</a>             String absoluteDir = trim( root.toString(), parentDir.toURL().toString() );
+<a name="215" href="#215">215</a>             String relativeDir = trim( root.toString(), root.relativize( parentDir ).toString() );
+<a name="216" href="#216">216</a> 
+<a name="217" href="#217">217</a>             String url = urlTemplate.replaceAll( <span class="jxr_string">"%v"</span>, <span class="jxr_string">""</span> + resource.getVersion() );
+<a name="218" href="#218">218</a>             url = url.replaceAll( <span class="jxr_string">"%s"</span>, resource.getSymbolicName() );
+<a name="219" href="#219">219</a>             url = url.replaceAll( <span class="jxr_string">"%f"</span>, path.getName() );
+<a name="220" href="#220">220</a>             url = url.replaceAll( <span class="jxr_string">"%p"</span>, absoluteDir );
+<a name="221" href="#221">221</a>             url = url.replaceAll( <span class="jxr_string">"%rp"</span>, relativeDir );
+<a name="222" href="#222">222</a>             finalUri = url;
+<a name="223" href="#223">223</a>         }
+<a name="224" href="#224">224</a>         resource.put( Resource.URI, finalUri, Property.URI );
+<a name="225" href="#225">225</a>     }
+<a name="226" href="#226">226</a> 
 <a name="227" href="#227">227</a> 
-<a name="228" href="#228">228</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> FileFilter filter = <strong class="jxr_keyword">new</strong> FileFilter()
+<a name="228" href="#228">228</a>     <strong class="jxr_keyword">private</strong> String trim( String prefix, String path )
 <a name="229" href="#229">229</a>     {
-<a name="230" href="#230">230</a> 
-<a name="231" href="#231">231</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> accept( File pathname )
-<a name="232" href="#232">232</a>         {
-<a name="233" href="#233">233</a>             <strong class="jxr_keyword">return</strong> pathname.getName().endsWith( <span class="jxr_string">"ar"</span> );
-<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>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> findAllJars( File mainRoot, List&lt;File&gt; files )
-<a name="239" href="#239">239</a>     {
-<a name="240" href="#240">240</a>         List&lt;File&gt; roots = <strong class="jxr_keyword">new</strong> ArrayList&lt;File&gt;();
-<a name="241" href="#241">241</a>         roots.add( mainRoot );
-<a name="242" href="#242">242</a>         <strong class="jxr_keyword">while</strong> ( !roots.isEmpty() )
+<a name="230" href="#230">230</a>         <strong class="jxr_keyword">if</strong> ( path.endsWith( <span class="jxr_string">"/"</span> ) )
+<a name="231" href="#231">231</a>             path = path.substring( 0, path.length() - 1 );
+<a name="232" href="#232">232</a> 
+<a name="233" href="#233">233</a>         <strong class="jxr_keyword">if</strong> ( path.startsWith( prefix ) )
+<a name="234" href="#234">234</a>             path = path.substring( prefix.length() );
+<a name="235" href="#235">235</a> 
+<a name="236" href="#236">236</a>         <strong class="jxr_keyword">return</strong> path;
+<a name="237" href="#237">237</a>     }
+<a name="238" href="#238">238</a> 
+<a name="239" href="#239">239</a> 
+<a name="240" href="#240">240</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> FileFilter filter = <strong class="jxr_keyword">new</strong> FileFilter()
+<a name="241" href="#241">241</a>     {
+<a name="242" href="#242">242</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> accept( File pathname )
 <a name="243" href="#243">243</a>         {
-<a name="244" href="#244">244</a>             File root = roots.remove( 0 );
-<a name="245" href="#245">245</a>             File[] children = root.listFiles();
-<a name="246" href="#246">246</a>             <strong class="jxr_keyword">if</strong> ( children != <strong class="jxr_keyword">null</strong> )
-<a name="247" href="#247">247</a>             {
-<a name="248" href="#248">248</a>                 <strong class="jxr_keyword">for</strong> ( File child : children )
-<a name="249" href="#249">249</a>                 {
-<a name="250" href="#250">250</a>                     <strong class="jxr_keyword">if</strong> ( child.isFile() &amp;&amp; filter.accept( child ) )
-<a name="251" href="#251">251</a>                     {
-<a name="252" href="#252">252</a>                         files.add( child );
-<a name="253" href="#253">253</a>                     }
-<a name="254" href="#254">254</a>                     <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( child.isDirectory() )
-<a name="255" href="#255">255</a>                     {
-<a name="256" href="#256">256</a>                         roots.add( child );
-<a name="257" href="#257">257</a>                     }
-<a name="258" href="#258">258</a>                 }
-<a name="259" href="#259">259</a>             }
-<a name="260" href="#260">260</a>         }
-<a name="261" href="#261">261</a>     }
-<a name="262" href="#262">262</a> 
-<a name="263" href="#263">263</a> }
+<a name="244" href="#244">244</a>             <strong class="jxr_keyword">return</strong> pathname.getName().endsWith( <span class="jxr_string">"ar"</span> );
+<a name="245" href="#245">245</a>         }
+<a name="246" href="#246">246</a>     };
+<a name="247" href="#247">247</a> 
+<a name="248" href="#248">248</a> 
+<a name="249" href="#249">249</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> findAllJars( File mainRoot, List&lt;File&gt; files )
+<a name="250" href="#250">250</a>     {
+<a name="251" href="#251">251</a>         List&lt;File&gt; roots = <strong class="jxr_keyword">new</strong> ArrayList&lt;File&gt;();
+<a name="252" href="#252">252</a>         roots.add( mainRoot );
+<a name="253" href="#253">253</a>         <strong class="jxr_keyword">while</strong> ( !roots.isEmpty() )
+<a name="254" href="#254">254</a>         {
+<a name="255" href="#255">255</a>             File root = roots.remove( 0 );
+<a name="256" href="#256">256</a>             File[] children = root.listFiles();
+<a name="257" href="#257">257</a>             <strong class="jxr_keyword">if</strong> ( children != <strong class="jxr_keyword">null</strong> )
+<a name="258" href="#258">258</a>             {
+<a name="259" href="#259">259</a>                 <strong class="jxr_keyword">for</strong> ( File child : children )
+<a name="260" href="#260">260</a>                 {
+<a name="261" href="#261">261</a>                     <strong class="jxr_keyword">if</strong> ( child.isFile() &amp;&amp; filter.accept( child ) )
+<a name="262" href="#262">262</a>                     {
+<a name="263" href="#263">263</a>                         files.add( child );
+<a name="264" href="#264">264</a>                     }
+<a name="265" href="#265">265</a>                     <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( child.isDirectory() )
+<a name="266" href="#266">266</a>                     {
+<a name="267" href="#267">267</a>                         roots.add( child );
+<a name="268" href="#268">268</a>                     }
+<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>     }
+<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/obrplugin/ObrRemoteClean.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrRemoteClean.html
index cdbd2db..a74ca09 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrRemoteClean.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrRemoteClean.html
@@ -141,363 +141,372 @@
 <a name="131" href="#131">131</a>     <strong class="jxr_keyword">private</strong> String obrDeploymentRepository;
 <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">     * The Maven project.</em>
-<a name="135" href="#135">135</a> <em class="jxr_javadoccomment">     * </em>
-<a name="136" href="#136">136</a> <em class="jxr_javadoccomment">     * @parameter expression="${project}"</em>
-<a name="137" href="#137">137</a> <em class="jxr_javadoccomment">     * @required</em>
-<a name="138" href="#138">138</a> <em class="jxr_javadoccomment">     * @readonly</em>
-<a name="139" href="#139">139</a> <em class="jxr_javadoccomment">     */</em>
-<a name="140" href="#140">140</a>     <strong class="jxr_keyword">private</strong> MavenProject project;
-<a name="141" href="#141">141</a> 
-<a name="142" href="#142">142</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="143" href="#143">143</a> <em class="jxr_javadoccomment">     * Local Maven settings.</em>
-<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     * </em>
-<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * @parameter expression="${settings}"</em>
-<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     * @required</em>
-<a name="147" href="#147">147</a> <em class="jxr_javadoccomment">     * @readonly</em>
-<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">     */</em>
-<a name="149" href="#149">149</a>     <strong class="jxr_keyword">private</strong> Settings settings;
-<a name="150" href="#150">150</a> 
-<a name="151" href="#151">151</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="152" href="#152">152</a> <em class="jxr_javadoccomment">     * The Wagon manager.</em>
-<a name="153" href="#153">153</a> <em class="jxr_javadoccomment">     * </em>
-<a name="154" href="#154">154</a> <em class="jxr_javadoccomment">     * @component</em>
-<a name="155" href="#155">155</a> <em class="jxr_javadoccomment">     */</em>
-<a name="156" href="#156">156</a>     <strong class="jxr_keyword">private</strong> WagonManager m_wagonManager;
-<a name="157" href="#157">157</a> 
-<a name="158" href="#158">158</a> 
-<a name="159" href="#159">159</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="160" href="#160">160</a>     {
-<a name="161" href="#161">161</a>         String projectType = project.getPackaging();
-<a name="162" href="#162">162</a> 
-<a name="163" href="#163">163</a>         <em class="jxr_comment">// ignore unsupported project types, useful when bundleplugin is configured in parent pom</em>
-<a name="164" href="#164">164</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( projectType ) )
-<a name="165" href="#165">165</a>         {
-<a name="166" href="#166">166</a>             getLog().warn(
-<a name="167" href="#167">167</a>                 <span class="jxr_string">"Ignoring project type "</span> + projectType + <span class="jxr_string">" - supportedProjectTypes = "</span> + supportedProjectTypes );
-<a name="168" href="#168">168</a>             <strong class="jxr_keyword">return</strong>;
-<a name="169" href="#169">169</a>         }
-<a name="170" href="#170">170</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"NONE"</span>.equalsIgnoreCase( remoteOBR ) || <span class="jxr_string">"false"</span>.equalsIgnoreCase( remoteOBR ) )
+<a name="134" href="#134">134</a> <em class="jxr_javadoccomment">     * @parameter default-value="${settings.interactiveMode}"</em>
+<a name="135" href="#135">135</a> <em class="jxr_javadoccomment">     * @readonly</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> <strong class="jxr_keyword">boolean</strong> interactive;
+<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">     * The Maven project.</em>
+<a name="141" href="#141">141</a> <em class="jxr_javadoccomment">     * </em>
+<a name="142" href="#142">142</a> <em class="jxr_javadoccomment">     * @parameter expression="${project}"</em>
+<a name="143" href="#143">143</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     * @readonly</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> MavenProject project;
+<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">     * Local Maven settings.</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 expression="${settings}"</em>
+<a name="152" href="#152">152</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="153" href="#153">153</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="154" href="#154">154</a> <em class="jxr_javadoccomment">     */</em>
+<a name="155" href="#155">155</a>     <strong class="jxr_keyword">private</strong> Settings settings;
+<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 Wagon manager.</em>
+<a name="159" href="#159">159</a> <em class="jxr_javadoccomment">     * </em>
+<a name="160" href="#160">160</a> <em class="jxr_javadoccomment">     * @component</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> WagonManager m_wagonManager;
+<a name="163" href="#163">163</a> 
+<a name="164" href="#164">164</a> 
+<a name="165" href="#165">165</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="166" href="#166">166</a>     {
+<a name="167" href="#167">167</a>         String projectType = project.getPackaging();
+<a name="168" href="#168">168</a> 
+<a name="169" href="#169">169</a>         <em class="jxr_comment">// ignore unsupported project types, useful when bundleplugin is configured in parent pom</em>
+<a name="170" href="#170">170</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( projectType ) )
 <a name="171" href="#171">171</a>         {
-<a name="172" href="#172">172</a>             getLog().info( <span class="jxr_string">"Remote OBR update disabled (enable with -DremoteOBR)"</span> );
-<a name="173" href="#173">173</a>             <strong class="jxr_keyword">return</strong>;
-<a name="174" href="#174">174</a>         }
-<a name="175" href="#175">175</a> 
-<a name="176" href="#176">176</a>         <em class="jxr_comment">// if the user doesn't supply an explicit name for the remote OBR file, use the local name instead</em>
-<a name="177" href="#177">177</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == remoteOBR || remoteOBR.trim().length() == 0 || <span class="jxr_string">"true"</span>.equalsIgnoreCase( remoteOBR ) )
-<a name="178" href="#178">178</a>         {
-<a name="179" href="#179">179</a>             remoteOBR = obrRepository;
+<a name="172" href="#172">172</a>             getLog().warn(
+<a name="173" href="#173">173</a>                 <span class="jxr_string">"Ignoring project type "</span> + projectType + <span class="jxr_string">" - supportedProjectTypes = "</span> + supportedProjectTypes );
+<a name="174" href="#174">174</a>             <strong class="jxr_keyword">return</strong>;
+<a name="175" href="#175">175</a>         }
+<a name="176" href="#176">176</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"NONE"</span>.equalsIgnoreCase( remoteOBR ) || <span class="jxr_string">"false"</span>.equalsIgnoreCase( remoteOBR ) )
+<a name="177" href="#177">177</a>         {
+<a name="178" href="#178">178</a>             getLog().info( <span class="jxr_string">"Remote OBR update disabled (enable with -DremoteOBR)"</span> );
+<a name="179" href="#179">179</a>             <strong class="jxr_keyword">return</strong>;
 <a name="180" href="#180">180</a>         }
 <a name="181" href="#181">181</a> 
-<a name="182" href="#182">182</a>         URI tempURI = ObrUtils.findRepositoryXml( <span class="jxr_string">""</span>, remoteOBR );
-<a name="183" href="#183">183</a>         String repositoryName = <strong class="jxr_keyword">new</strong> File( tempURI.getSchemeSpecificPart() ).getName();
-<a name="184" href="#184">184</a> 
-<a name="185" href="#185">185</a>         Log log = getLog();
-<a name="186" href="#186">186</a> 
-<a name="187" href="#187">187</a>         <a href="../../../../org/apache/felix/obrplugin/RemoteFileManager.html">RemoteFileManager</a> remoteFile = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/obrplugin/RemoteFileManager.html">RemoteFileManager</a>( m_wagonManager, settings, log );
-<a name="188" href="#188">188</a>         openRepositoryConnection( remoteFile );
-<a name="189" href="#189">189</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == prefixUrl )
-<a name="190" href="#190">190</a>         {
-<a name="191" href="#191">191</a>             prefixUrl = remoteFile.toString();
-<a name="192" href="#192">192</a>         }
-<a name="193" href="#193">193</a> 
-<a name="194" href="#194">194</a>         <em class="jxr_comment">// ======== LOCK REMOTE OBR ========</em>
-<a name="195" href="#195">195</a>         log.info( <span class="jxr_string">"LOCK "</span> + remoteFile + '/' + repositoryName );
-<a name="196" href="#196">196</a>         remoteFile.lockFile( repositoryName, ignoreLock );
-<a name="197" href="#197">197</a>         File downloadedRepositoryXml = <strong class="jxr_keyword">null</strong>;
-<a name="198" href="#198">198</a> 
-<a name="199" href="#199">199</a>         <strong class="jxr_keyword">try</strong>
-<a name="200" href="#200">200</a>         {
-<a name="201" href="#201">201</a>             <em class="jxr_comment">// ======== DOWNLOAD REMOTE OBR ========</em>
-<a name="202" href="#202">202</a>             log.info( <span class="jxr_string">"Downloading "</span> + repositoryName );
-<a name="203" href="#203">203</a>             downloadedRepositoryXml = remoteFile.get( repositoryName, <span class="jxr_string">".xml"</span> );
+<a name="182" href="#182">182</a>         <em class="jxr_comment">// if the user doesn't supply an explicit name for the remote OBR file, use the local name instead</em>
+<a name="183" href="#183">183</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == remoteOBR || remoteOBR.trim().length() == 0 || <span class="jxr_string">"true"</span>.equalsIgnoreCase( remoteOBR ) )
+<a name="184" href="#184">184</a>         {
+<a name="185" href="#185">185</a>             remoteOBR = obrRepository;
+<a name="186" href="#186">186</a>         }
+<a name="187" href="#187">187</a> 
+<a name="188" href="#188">188</a>         URI tempURI = ObrUtils.findRepositoryXml( <span class="jxr_string">""</span>, remoteOBR );
+<a name="189" href="#189">189</a>         String repositoryName = <strong class="jxr_keyword">new</strong> File( tempURI.getSchemeSpecificPart() ).getName();
+<a name="190" href="#190">190</a> 
+<a name="191" href="#191">191</a>         Log log = getLog();
+<a name="192" href="#192">192</a> 
+<a name="193" href="#193">193</a>         <a href="../../../../org/apache/felix/obrplugin/RemoteFileManager.html">RemoteFileManager</a> remoteFile = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/obrplugin/RemoteFileManager.html">RemoteFileManager</a>( m_wagonManager, settings, log );
+<a name="194" href="#194">194</a>         openRepositoryConnection( remoteFile );
+<a name="195" href="#195">195</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == prefixUrl )
+<a name="196" href="#196">196</a>         {
+<a name="197" href="#197">197</a>             prefixUrl = remoteFile.toString();
+<a name="198" href="#198">198</a>         }
+<a name="199" href="#199">199</a> 
+<a name="200" href="#200">200</a>         <em class="jxr_comment">// ======== LOCK REMOTE OBR ========</em>
+<a name="201" href="#201">201</a>         log.info( <span class="jxr_string">"LOCK "</span> + remoteFile + '/' + repositoryName );
+<a name="202" href="#202">202</a>         remoteFile.lockFile( repositoryName, ignoreLock );
+<a name="203" href="#203">203</a>         File downloadedRepositoryXml = <strong class="jxr_keyword">null</strong>;
 <a name="204" href="#204">204</a> 
-<a name="205" href="#205">205</a>             URI repositoryXml = downloadedRepositoryXml.toURI();
-<a name="206" href="#206">206</a> 
-<a name="207" href="#207">207</a>             <a href="../../../../org/apache/felix/obrplugin/Config.html">Config</a> userConfig = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/obrplugin/Config.html">Config</a>();
-<a name="208" href="#208">208</a>             userConfig.setRemoteFile( <strong class="jxr_keyword">true</strong> );
-<a name="209" href="#209">209</a> 
-<a name="210" href="#210">210</a>             <em class="jxr_comment">// Clean the downloaded file.</em>
-<a name="211" href="#211">211</a>             Document doc = parseFile( <strong class="jxr_keyword">new</strong> File( repositoryXml ), initConstructor() );
-<a name="212" href="#212">212</a>             Node finalDocument = cleanDocument( doc.getDocumentElement() );
-<a name="213" href="#213">213</a> 
-<a name="214" href="#214">214</a>             <strong class="jxr_keyword">if</strong> ( finalDocument == <strong class="jxr_keyword">null</strong> )
-<a name="215" href="#215">215</a>             {
-<a name="216" href="#216">216</a>                 getLog().info( <span class="jxr_string">"Nothing to clean in "</span> + repositoryName );
-<a name="217" href="#217">217</a>             }
-<a name="218" href="#218">218</a>             <strong class="jxr_keyword">else</strong>
-<a name="219" href="#219">219</a>             {
-<a name="220" href="#220">220</a>                 writeToFile( repositoryXml, finalDocument ); <em class="jxr_comment">// Write the new file</em>
-<a name="221" href="#221">221</a>                 getLog().info( <span class="jxr_string">"Repository "</span> + repositoryName + <span class="jxr_string">" cleaned"</span> );
-<a name="222" href="#222">222</a>                 <em class="jxr_comment">// ======== UPLOAD MODIFIED OBR ========</em>
-<a name="223" href="#223">223</a>                 log.info( <span class="jxr_string">"Uploading "</span> + repositoryName );
-<a name="224" href="#224">224</a>                 remoteFile.put( downloadedRepositoryXml, repositoryName );
-<a name="225" href="#225">225</a>             }
-<a name="226" href="#226">226</a>         }
-<a name="227" href="#227">227</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="228" href="#228">228</a>         {
-<a name="229" href="#229">229</a>             log.warn( <span class="jxr_string">"Exception while updating remote OBR: "</span> + e.getLocalizedMessage(), e );
-<a name="230" href="#230">230</a>         }
-<a name="231" href="#231">231</a>         <strong class="jxr_keyword">finally</strong>
-<a name="232" href="#232">232</a>         {
-<a name="233" href="#233">233</a>             <em class="jxr_comment">// ======== UNLOCK REMOTE OBR ========</em>
-<a name="234" href="#234">234</a>             log.info( <span class="jxr_string">"UNLOCK "</span> + remoteFile + '/' + repositoryName );
-<a name="235" href="#235">235</a>             remoteFile.unlockFile( repositoryName );
-<a name="236" href="#236">236</a>             remoteFile.disconnect();
-<a name="237" href="#237">237</a> 
-<a name="238" href="#238">238</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != downloadedRepositoryXml )
-<a name="239" href="#239">239</a>             {
-<a name="240" href="#240">240</a>                 downloadedRepositoryXml.delete();
-<a name="241" href="#241">241</a>             }
-<a name="242" href="#242">242</a>         }
-<a name="243" href="#243">243</a>     }
-<a name="244" href="#244">244</a> 
-<a name="245" href="#245">245</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Pattern ALT_REPO_SYNTAX_PATTERN = Pattern.compile( <span class="jxr_string">"(.+)::(.+)::(.+)"</span> );
-<a name="246" href="#246">246</a> 
-<a name="247" href="#247">247</a> 
-<a name="248" href="#248">248</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> openRepositoryConnection( RemoteFileManager remoteFile ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="249" href="#249">249</a>     {
-<a name="250" href="#250">250</a>         <em class="jxr_comment">// use OBR specific deployment location?</em>
-<a name="251" href="#251">251</a>         <strong class="jxr_keyword">if</strong> ( obrDeploymentRepository != <strong class="jxr_keyword">null</strong> )
-<a name="252" href="#252">252</a>         {
-<a name="253" href="#253">253</a>             altDeploymentRepository = obrDeploymentRepository;
-<a name="254" href="#254">254</a>         }
-<a name="255" href="#255">255</a> 
-<a name="256" href="#256">256</a>         <strong class="jxr_keyword">if</strong> ( deploymentRepository == <strong class="jxr_keyword">null</strong> &amp;&amp; altDeploymentRepository == <strong class="jxr_keyword">null</strong> )
-<a name="257" href="#257">257</a>         {
-<a name="258" href="#258">258</a>             String msg = <span class="jxr_string">"Deployment failed: repository element was not specified in the pom inside"</span>
-<a name="259" href="#259">259</a>                 + <span class="jxr_string">" distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter"</span>;
-<a name="260" href="#260">260</a> 
-<a name="261" href="#261">261</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( msg );
-<a name="262" href="#262">262</a>         }
-<a name="263" href="#263">263</a> 
-<a name="264" href="#264">264</a>         <strong class="jxr_keyword">if</strong> ( altDeploymentRepository != <strong class="jxr_keyword">null</strong> )
-<a name="265" href="#265">265</a>         {
-<a name="266" href="#266">266</a>             getLog().info( <span class="jxr_string">"Using alternate deployment repository "</span> + altDeploymentRepository );
-<a name="267" href="#267">267</a> 
-<a name="268" href="#268">268</a>             Matcher matcher = ALT_REPO_SYNTAX_PATTERN.matcher( altDeploymentRepository );
-<a name="269" href="#269">269</a>             <strong class="jxr_keyword">if</strong> ( !matcher.matches() )
-<a name="270" href="#270">270</a>             {
-<a name="271" href="#271">271</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Invalid syntax for alternative repository \&quot;"</span>
-<a name="272" href="#272">272</a>                     + altDeploymentRepository + <span class="jxr_string">"\&quot;. Use \&quot;id::layout::url\&quot;."</span> );
-<a name="273" href="#273">273</a>             }
-<a name="274" href="#274">274</a> 
-<a name="275" href="#275">275</a>             remoteFile.connect( matcher.group( 1 ).trim(), matcher.group( 3 ).trim() );
-<a name="276" href="#276">276</a>         }
-<a name="277" href="#277">277</a>         <strong class="jxr_keyword">else</strong>
-<a name="278" href="#278">278</a>         {
-<a name="279" href="#279">279</a>             remoteFile.connect( deploymentRepository.getId(), deploymentRepository.getUrl() );
-<a name="280" href="#280">280</a>         }
-<a name="281" href="#281">281</a>     }
-<a name="282" href="#282">282</a> 
-<a name="283" href="#283">283</a> 
-<a name="284" href="#284">284</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="285" href="#285">285</a> <em class="jxr_javadoccomment">     * Analyze the given XML tree (DOM of the repository file) and remove missing resources.</em>
-<a name="286" href="#286">286</a> <em class="jxr_javadoccomment">     * This method ask the user before deleting the resources from the repository.</em>
-<a name="287" href="#287">287</a> <em class="jxr_javadoccomment">     * @param elem : the input XML tree</em>
-<a name="288" href="#288">288</a> <em class="jxr_javadoccomment">     * @return the cleaned XML tree</em>
-<a name="289" href="#289">289</a> <em class="jxr_javadoccomment">     */</em>
-<a name="290" href="#290">290</a>     <strong class="jxr_keyword">private</strong> Element cleanDocument( Element elem )
-<a name="291" href="#291">291</a>     {
-<a name="292" href="#292">292</a>         NodeList nodes = elem.getElementsByTagName( <span class="jxr_string">"resource"</span> );
-<a name="293" href="#293">293</a>         List toRemove = <strong class="jxr_keyword">new</strong> ArrayList();
-<a name="294" href="#294">294</a> 
-<a name="295" href="#295">295</a>         <em class="jxr_comment">// First, look for missing resources</em>
-<a name="296" href="#296">296</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; nodes.getLength(); i++ )
-<a name="297" href="#297">297</a>         {
-<a name="298" href="#298">298</a>             Element n = ( Element ) nodes.item( i );
-<a name="299" href="#299">299</a>             String value = n.getAttribute( <span class="jxr_string">"uri"</span> );
+<a name="205" href="#205">205</a>         <strong class="jxr_keyword">try</strong>
+<a name="206" href="#206">206</a>         {
+<a name="207" href="#207">207</a>             <em class="jxr_comment">// ======== DOWNLOAD REMOTE OBR ========</em>
+<a name="208" href="#208">208</a>             log.info( <span class="jxr_string">"Downloading "</span> + repositoryName );
+<a name="209" href="#209">209</a>             downloadedRepositoryXml = remoteFile.get( repositoryName, <span class="jxr_string">".xml"</span> );
+<a name="210" href="#210">210</a> 
+<a name="211" href="#211">211</a>             URI repositoryXml = downloadedRepositoryXml.toURI();
+<a name="212" href="#212">212</a> 
+<a name="213" href="#213">213</a>             <a href="../../../../org/apache/felix/obrplugin/Config.html">Config</a> userConfig = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/obrplugin/Config.html">Config</a>();
+<a name="214" href="#214">214</a>             userConfig.setRemoteFile( <strong class="jxr_keyword">true</strong> );
+<a name="215" href="#215">215</a> 
+<a name="216" href="#216">216</a>             <em class="jxr_comment">// Clean the downloaded file.</em>
+<a name="217" href="#217">217</a>             Document doc = parseFile( <strong class="jxr_keyword">new</strong> File( repositoryXml ), initConstructor() );
+<a name="218" href="#218">218</a>             Node finalDocument = cleanDocument( doc.getDocumentElement() );
+<a name="219" href="#219">219</a> 
+<a name="220" href="#220">220</a>             <strong class="jxr_keyword">if</strong> ( finalDocument == <strong class="jxr_keyword">null</strong> )
+<a name="221" href="#221">221</a>             {
+<a name="222" href="#222">222</a>                 getLog().info( <span class="jxr_string">"Nothing to clean in "</span> + repositoryName );
+<a name="223" href="#223">223</a>             }
+<a name="224" href="#224">224</a>             <strong class="jxr_keyword">else</strong>
+<a name="225" href="#225">225</a>             {
+<a name="226" href="#226">226</a>                 writeToFile( repositoryXml, finalDocument ); <em class="jxr_comment">// Write the new file</em>
+<a name="227" href="#227">227</a>                 getLog().info( <span class="jxr_string">"Repository "</span> + repositoryName + <span class="jxr_string">" cleaned"</span> );
+<a name="228" href="#228">228</a>                 <em class="jxr_comment">// ======== UPLOAD MODIFIED OBR ========</em>
+<a name="229" href="#229">229</a>                 log.info( <span class="jxr_string">"Uploading "</span> + repositoryName );
+<a name="230" href="#230">230</a>                 remoteFile.put( downloadedRepositoryXml, repositoryName );
+<a name="231" href="#231">231</a>             }
+<a name="232" href="#232">232</a>         }
+<a name="233" href="#233">233</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="234" href="#234">234</a>         {
+<a name="235" href="#235">235</a>             log.warn( <span class="jxr_string">"Exception while updating remote OBR: "</span> + e.getLocalizedMessage(), e );
+<a name="236" href="#236">236</a>         }
+<a name="237" href="#237">237</a>         <strong class="jxr_keyword">finally</strong>
+<a name="238" href="#238">238</a>         {
+<a name="239" href="#239">239</a>             <em class="jxr_comment">// ======== UNLOCK REMOTE OBR ========</em>
+<a name="240" href="#240">240</a>             log.info( <span class="jxr_string">"UNLOCK "</span> + remoteFile + '/' + repositoryName );
+<a name="241" href="#241">241</a>             remoteFile.unlockFile( repositoryName );
+<a name="242" href="#242">242</a>             remoteFile.disconnect();
+<a name="243" href="#243">243</a> 
+<a name="244" href="#244">244</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != downloadedRepositoryXml )
+<a name="245" href="#245">245</a>             {
+<a name="246" href="#246">246</a>                 downloadedRepositoryXml.delete();
+<a name="247" href="#247">247</a>             }
+<a name="248" href="#248">248</a>         }
+<a name="249" href="#249">249</a>     }
+<a name="250" href="#250">250</a> 
+<a name="251" href="#251">251</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Pattern ALT_REPO_SYNTAX_PATTERN = Pattern.compile( <span class="jxr_string">"(.+)::(.+)::(.+)"</span> );
+<a name="252" href="#252">252</a> 
+<a name="253" href="#253">253</a> 
+<a name="254" href="#254">254</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> openRepositoryConnection( RemoteFileManager remoteFile ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="255" href="#255">255</a>     {
+<a name="256" href="#256">256</a>         <em class="jxr_comment">// use OBR specific deployment location?</em>
+<a name="257" href="#257">257</a>         <strong class="jxr_keyword">if</strong> ( obrDeploymentRepository != <strong class="jxr_keyword">null</strong> )
+<a name="258" href="#258">258</a>         {
+<a name="259" href="#259">259</a>             altDeploymentRepository = obrDeploymentRepository;
+<a name="260" href="#260">260</a>         }
+<a name="261" href="#261">261</a> 
+<a name="262" href="#262">262</a>         <strong class="jxr_keyword">if</strong> ( deploymentRepository == <strong class="jxr_keyword">null</strong> &amp;&amp; altDeploymentRepository == <strong class="jxr_keyword">null</strong> )
+<a name="263" href="#263">263</a>         {
+<a name="264" href="#264">264</a>             String msg = <span class="jxr_string">"Deployment failed: repository element was not specified in the pom inside"</span>
+<a name="265" href="#265">265</a>                 + <span class="jxr_string">" distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter"</span>;
+<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( msg );
+<a name="268" href="#268">268</a>         }
+<a name="269" href="#269">269</a> 
+<a name="270" href="#270">270</a>         <strong class="jxr_keyword">if</strong> ( altDeploymentRepository != <strong class="jxr_keyword">null</strong> )
+<a name="271" href="#271">271</a>         {
+<a name="272" href="#272">272</a>             getLog().info( <span class="jxr_string">"Using alternate deployment repository "</span> + altDeploymentRepository );
+<a name="273" href="#273">273</a> 
+<a name="274" href="#274">274</a>             Matcher matcher = ALT_REPO_SYNTAX_PATTERN.matcher( altDeploymentRepository );
+<a name="275" href="#275">275</a>             <strong class="jxr_keyword">if</strong> ( !matcher.matches() )
+<a name="276" href="#276">276</a>             {
+<a name="277" href="#277">277</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Invalid syntax for alternative repository \&quot;"</span>
+<a name="278" href="#278">278</a>                     + altDeploymentRepository + <span class="jxr_string">"\&quot;. Use \&quot;id::layout::url\&quot;."</span> );
+<a name="279" href="#279">279</a>             }
+<a name="280" href="#280">280</a> 
+<a name="281" href="#281">281</a>             remoteFile.connect( matcher.group( 1 ).trim(), matcher.group( 3 ).trim() );
+<a name="282" href="#282">282</a>         }
+<a name="283" href="#283">283</a>         <strong class="jxr_keyword">else</strong>
+<a name="284" href="#284">284</a>         {
+<a name="285" href="#285">285</a>             remoteFile.connect( deploymentRepository.getId(), deploymentRepository.getUrl() );
+<a name="286" href="#286">286</a>         }
+<a name="287" href="#287">287</a>     }
+<a name="288" href="#288">288</a> 
+<a name="289" href="#289">289</a> 
+<a name="290" href="#290">290</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="291" href="#291">291</a> <em class="jxr_javadoccomment">     * Analyze the given XML tree (DOM of the repository file) and remove missing resources.</em>
+<a name="292" href="#292">292</a> <em class="jxr_javadoccomment">     * This method ask the user before deleting the resources from the repository.</em>
+<a name="293" href="#293">293</a> <em class="jxr_javadoccomment">     * @param elem : the input XML tree</em>
+<a name="294" href="#294">294</a> <em class="jxr_javadoccomment">     * @return the cleaned XML tree</em>
+<a name="295" href="#295">295</a> <em class="jxr_javadoccomment">     */</em>
+<a name="296" href="#296">296</a>     <strong class="jxr_keyword">private</strong> Element cleanDocument( Element elem )
+<a name="297" href="#297">297</a>     {
+<a name="298" href="#298">298</a>         NodeList nodes = elem.getElementsByTagName( <span class="jxr_string">"resource"</span> );
+<a name="299" href="#299">299</a>         List toRemove = <strong class="jxr_keyword">new</strong> ArrayList();
 <a name="300" href="#300">300</a> 
-<a name="301" href="#301">301</a>             URL url;
-<a name="302" href="#302">302</a>             <strong class="jxr_keyword">try</strong>
-<a name="303" href="#303">303</a>             {
-<a name="304" href="#304">304</a>                 url = <strong class="jxr_keyword">new</strong> URL( <strong class="jxr_keyword">new</strong> URL( prefixUrl + '/' ), value );
-<a name="305" href="#305">305</a>             }
-<a name="306" href="#306">306</a>             <strong class="jxr_keyword">catch</strong> ( MalformedURLException e )
-<a name="307" href="#307">307</a>             {
-<a name="308" href="#308">308</a>                 getLog().error( <span class="jxr_string">"Malformed URL when creating the resource absolute URI : "</span> + e.getMessage() );
-<a name="309" href="#309">309</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a name="310" href="#310">310</a>             }
-<a name="311" href="#311">311</a> 
-<a name="312" href="#312">312</a>             <strong class="jxr_keyword">try</strong>
+<a name="301" href="#301">301</a>         <em class="jxr_comment">// First, look for missing resources</em>
+<a name="302" href="#302">302</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; nodes.getLength(); i++ )
+<a name="303" href="#303">303</a>         {
+<a name="304" href="#304">304</a>             Element n = ( Element ) nodes.item( i );
+<a name="305" href="#305">305</a>             String value = n.getAttribute( <span class="jxr_string">"uri"</span> );
+<a name="306" href="#306">306</a> 
+<a name="307" href="#307">307</a>             URL url;
+<a name="308" href="#308">308</a>             <strong class="jxr_keyword">try</strong>
+<a name="309" href="#309">309</a>             {
+<a name="310" href="#310">310</a>                 url = <strong class="jxr_keyword">new</strong> URL( <strong class="jxr_keyword">new</strong> URL( prefixUrl + '/' ), value );
+<a name="311" href="#311">311</a>             }
+<a name="312" href="#312">312</a>             <strong class="jxr_keyword">catch</strong> ( MalformedURLException e )
 <a name="313" href="#313">313</a>             {
-<a name="314" href="#314">314</a>                 url.openConnection().getContent();
-<a name="315" href="#315">315</a>             }
-<a name="316" href="#316">316</a>             <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="317" href="#317">317</a>             {
-<a name="318" href="#318">318</a>                 getLog().info(
-<a name="319" href="#319">319</a>                     <span class="jxr_string">"The bundle "</span> + n.getAttribute( <span class="jxr_string">"presentationname"</span> ) + <span class="jxr_string">" - "</span> + n.getAttribute( <span class="jxr_string">"version"</span> )
-<a name="320" href="#320">320</a>                         + <span class="jxr_string">" will be removed : "</span> + e.getMessage() );
-<a name="321" href="#321">321</a>                 toRemove.add( n );
-<a name="322" href="#322">322</a>             }
-<a name="323" href="#323">323</a>         }
-<a name="324" href="#324">324</a> 
-<a name="325" href="#325">325</a>         Date d = <strong class="jxr_keyword">new</strong> Date();
-<a name="326" href="#326">326</a>         <strong class="jxr_keyword">if</strong> ( toRemove.size() &gt; 0 )
-<a name="327" href="#327">327</a>         {
-<a name="328" href="#328">328</a>             System.out.println( <span class="jxr_string">"Do you want to remove these bundles from the repository file [y/N]:"</span> );
-<a name="329" href="#329">329</a>             BufferedReader br = <strong class="jxr_keyword">new</strong> BufferedReader( <strong class="jxr_keyword">new</strong> InputStreamReader( System.in ) );
-<a name="330" href="#330">330</a>             String answer = <strong class="jxr_keyword">null</strong>;
-<a name="331" href="#331">331</a> 
-<a name="332" href="#332">332</a>             <strong class="jxr_keyword">try</strong>
-<a name="333" href="#333">333</a>             {
-<a name="334" href="#334">334</a>                 answer = br.readLine();
-<a name="335" href="#335">335</a>             }
-<a name="336" href="#336">336</a>             <strong class="jxr_keyword">catch</strong> ( IOException ioe )
-<a name="337" href="#337">337</a>             {
-<a name="338" href="#338">338</a>                 getLog().error( <span class="jxr_string">"IO error trying to read the user confirmation"</span> );
-<a name="339" href="#339">339</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a name="340" href="#340">340</a>             }
-<a name="341" href="#341">341</a> 
-<a name="342" href="#342">342</a>             <strong class="jxr_keyword">if</strong> ( answer != <strong class="jxr_keyword">null</strong> &amp;&amp; answer.trim().equalsIgnoreCase( <span class="jxr_string">"y"</span> ) )
-<a name="343" href="#343">343</a>             {
-<a name="344" href="#344">344</a>                 <em class="jxr_comment">// Then remove missing resources.</em>
-<a name="345" href="#345">345</a>                 <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; toRemove.size(); i++ )
-<a name="346" href="#346">346</a>                 {
-<a name="347" href="#347">347</a>                     elem.removeChild( ( Node ) toRemove.get( i ) );
+<a name="314" href="#314">314</a>                 getLog().error( <span class="jxr_string">"Malformed URL when creating the resource absolute URI : "</span> + e.getMessage() );
+<a name="315" href="#315">315</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="316" href="#316">316</a>             }
+<a name="317" href="#317">317</a> 
+<a name="318" href="#318">318</a>             <strong class="jxr_keyword">try</strong>
+<a name="319" href="#319">319</a>             {
+<a name="320" href="#320">320</a>                 url.openConnection().getContent();
+<a name="321" href="#321">321</a>             }
+<a name="322" href="#322">322</a>             <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="323" href="#323">323</a>             {
+<a name="324" href="#324">324</a>                 getLog().info(
+<a name="325" href="#325">325</a>                     <span class="jxr_string">"The bundle "</span> + n.getAttribute( <span class="jxr_string">"presentationname"</span> ) + <span class="jxr_string">" - "</span> + n.getAttribute( <span class="jxr_string">"version"</span> )
+<a name="326" href="#326">326</a>                         + <span class="jxr_string">" will be removed : "</span> + e.getMessage() );
+<a name="327" href="#327">327</a>                 toRemove.add( n );
+<a name="328" href="#328">328</a>             }
+<a name="329" href="#329">329</a>         }
+<a name="330" href="#330">330</a> 
+<a name="331" href="#331">331</a>         Date d = <strong class="jxr_keyword">new</strong> Date();
+<a name="332" href="#332">332</a>         <strong class="jxr_keyword">if</strong> ( toRemove.size() &gt; 0 )
+<a name="333" href="#333">333</a>         {
+<a name="334" href="#334">334</a>             String answer = <span class="jxr_string">"y"</span>;
+<a name="335" href="#335">335</a>             <strong class="jxr_keyword">if</strong> ( interactive )
+<a name="336" href="#336">336</a>             {
+<a name="337" href="#337">337</a>                 System.out.println( <span class="jxr_string">"Do you want to remove these bundles from the repository file [y/N]:"</span> );
+<a name="338" href="#338">338</a>                 BufferedReader br = <strong class="jxr_keyword">new</strong> BufferedReader( <strong class="jxr_keyword">new</strong> InputStreamReader( System.in ) );
+<a name="339" href="#339">339</a> 
+<a name="340" href="#340">340</a>                 <strong class="jxr_keyword">try</strong>
+<a name="341" href="#341">341</a>                 {
+<a name="342" href="#342">342</a>                     answer = br.readLine();
+<a name="343" href="#343">343</a>                 }
+<a name="344" href="#344">344</a>                 <strong class="jxr_keyword">catch</strong> ( IOException ioe )
+<a name="345" href="#345">345</a>                 {
+<a name="346" href="#346">346</a>                     getLog().error( <span class="jxr_string">"IO error trying to read the user confirmation"</span> );
+<a name="347" href="#347">347</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
 <a name="348" href="#348">348</a>                 }
-<a name="349" href="#349">349</a> 
-<a name="350" href="#350">350</a>                 <em class="jxr_comment">// If we have to remove resources, we need to update 'lastmodified' attribute</em>
-<a name="351" href="#351">351</a>                 SimpleDateFormat format = <strong class="jxr_keyword">new</strong> SimpleDateFormat( <span class="jxr_string">"yyyyMMddHHmmss.SSS"</span> );
-<a name="352" href="#352">352</a>                 d.setTime( System.currentTimeMillis() );
-<a name="353" href="#353">353</a>                 elem.setAttribute( <span class="jxr_string">"lastmodified"</span>, format.format( d ) );
-<a name="354" href="#354">354</a>                 <strong class="jxr_keyword">return</strong> elem;
-<a name="355" href="#355">355</a>             }
-<a name="356" href="#356">356</a>             <strong class="jxr_keyword">else</strong>
-<a name="357" href="#357">357</a>             {
-<a name="358" href="#358">358</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a name="359" href="#359">359</a>             }
-<a name="360" href="#360">360</a>         }
-<a name="361" href="#361">361</a> 
-<a name="362" href="#362">362</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a name="363" href="#363">363</a>     }
-<a name="364" href="#364">364</a> 
-<a name="365" href="#365">365</a> 
-<a name="366" href="#366">366</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="367" href="#367">367</a> <em class="jxr_javadoccomment">     * Initialize the document builder from Xerces.</em>
-<a name="368" href="#368">368</a> <em class="jxr_javadoccomment">     * </em>
-<a name="369" href="#369">369</a> <em class="jxr_javadoccomment">     * @return DocumentBuilder ready to create new document</em>
-<a name="370" href="#370">370</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException : occurs when the instantiation of the document builder fails</em>
-<a name="371" href="#371">371</a> <em class="jxr_javadoccomment">     */</em>
-<a name="372" href="#372">372</a>     <strong class="jxr_keyword">private</strong> DocumentBuilder initConstructor() <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="373" href="#373">373</a>     {
-<a name="374" href="#374">374</a>         DocumentBuilder constructor = <strong class="jxr_keyword">null</strong>;
-<a name="375" href="#375">375</a>         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-<a name="376" href="#376">376</a>         <strong class="jxr_keyword">try</strong>
-<a name="377" href="#377">377</a>         {
-<a name="378" href="#378">378</a>             constructor = factory.newDocumentBuilder();
-<a name="379" href="#379">379</a>         }
-<a name="380" href="#380">380</a>         <strong class="jxr_keyword">catch</strong> ( ParserConfigurationException e )
-<a name="381" href="#381">381</a>         {
-<a name="382" href="#382">382</a>             getLog().error( <span class="jxr_string">"Unable to create a new xml document"</span> );
-<a name="383" href="#383">383</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Cannot create the Document Builder : "</span> + e.getMessage() );
-<a name="384" href="#384">384</a>         }
-<a name="385" href="#385">385</a>         <strong class="jxr_keyword">return</strong> constructor;
-<a name="386" href="#386">386</a>     }
-<a name="387" href="#387">387</a> 
-<a name="388" href="#388">388</a> 
-<a name="389" href="#389">389</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="390" href="#390">390</a> <em class="jxr_javadoccomment">     * Open an XML file.</em>
-<a name="391" href="#391">391</a> <em class="jxr_javadoccomment">     * </em>
-<a name="392" href="#392">392</a> <em class="jxr_javadoccomment">     * @param file : XML file</em>
-<a name="393" href="#393">393</a> <em class="jxr_javadoccomment">     * @param constructor DocumentBuilder get from xerces</em>
-<a name="394" href="#394">394</a> <em class="jxr_javadoccomment">     * @return Document which describes this file</em>
-<a name="395" href="#395">395</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException occurs when the given file cannot be opened or is a valid XML file.</em>
-<a name="396" href="#396">396</a> <em class="jxr_javadoccomment">     */</em>
-<a name="397" href="#397">397</a>     <strong class="jxr_keyword">private</strong> Document parseFile( File file, DocumentBuilder constructor ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="398" href="#398">398</a>     {
-<a name="399" href="#399">399</a>         <strong class="jxr_keyword">if</strong> ( constructor == <strong class="jxr_keyword">null</strong> )
-<a name="400" href="#400">400</a>         {
-<a name="401" href="#401">401</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a name="402" href="#402">402</a>         }
-<a name="403" href="#403">403</a>         <em class="jxr_comment">// The document is the root of the DOM tree.</em>
-<a name="404" href="#404">404</a>         File targetFile = file.getAbsoluteFile();
-<a name="405" href="#405">405</a>         getLog().info( <span class="jxr_string">"Parsing "</span> + targetFile );
-<a name="406" href="#406">406</a>         Document doc = <strong class="jxr_keyword">null</strong>;
-<a name="407" href="#407">407</a>         <strong class="jxr_keyword">try</strong>
-<a name="408" href="#408">408</a>         {
-<a name="409" href="#409">409</a>             doc = constructor.parse( targetFile );
-<a name="410" href="#410">410</a>         }
-<a name="411" href="#411">411</a>         <strong class="jxr_keyword">catch</strong> ( SAXException e )
-<a name="412" href="#412">412</a>         {
-<a name="413" href="#413">413</a>             getLog().error( <span class="jxr_string">"Cannot parse "</span> + targetFile + <span class="jxr_string">" : "</span> + e.getMessage() );
-<a name="414" href="#414">414</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Cannot parse "</span> + targetFile + <span class="jxr_string">" : "</span> + e.getMessage() );
-<a name="415" href="#415">415</a>         }
-<a name="416" href="#416">416</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="349" href="#349">349</a>             }
+<a name="350" href="#350">350</a> 
+<a name="351" href="#351">351</a>             <strong class="jxr_keyword">if</strong> ( answer != <strong class="jxr_keyword">null</strong> &amp;&amp; answer.trim().equalsIgnoreCase( <span class="jxr_string">"y"</span> ) )
+<a name="352" href="#352">352</a>             {
+<a name="353" href="#353">353</a>                 <em class="jxr_comment">// Then remove missing resources.</em>
+<a name="354" href="#354">354</a>                 <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; toRemove.size(); i++ )
+<a name="355" href="#355">355</a>                 {
+<a name="356" href="#356">356</a>                     elem.removeChild( ( Node ) toRemove.get( i ) );
+<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">// If we have to remove resources, we need to update 'lastmodified' attribute</em>
+<a name="360" href="#360">360</a>                 SimpleDateFormat format = <strong class="jxr_keyword">new</strong> SimpleDateFormat( <span class="jxr_string">"yyyyMMddHHmmss.SSS"</span> );
+<a name="361" href="#361">361</a>                 d.setTime( System.currentTimeMillis() );
+<a name="362" href="#362">362</a>                 elem.setAttribute( <span class="jxr_string">"lastmodified"</span>, format.format( d ) );
+<a name="363" href="#363">363</a>                 <strong class="jxr_keyword">return</strong> elem;
+<a name="364" href="#364">364</a>             }
+<a name="365" href="#365">365</a>             <strong class="jxr_keyword">else</strong>
+<a name="366" href="#366">366</a>             {
+<a name="367" href="#367">367</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="368" href="#368">368</a>             }
+<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">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="372" href="#372">372</a>     }
+<a name="373" href="#373">373</a> 
+<a name="374" href="#374">374</a> 
+<a name="375" href="#375">375</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="376" href="#376">376</a> <em class="jxr_javadoccomment">     * Initialize the document builder from Xerces.</em>
+<a name="377" href="#377">377</a> <em class="jxr_javadoccomment">     * </em>
+<a name="378" href="#378">378</a> <em class="jxr_javadoccomment">     * @return DocumentBuilder ready to create new document</em>
+<a name="379" href="#379">379</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException : occurs when the instantiation of the document builder fails</em>
+<a name="380" href="#380">380</a> <em class="jxr_javadoccomment">     */</em>
+<a name="381" href="#381">381</a>     <strong class="jxr_keyword">private</strong> DocumentBuilder initConstructor() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="382" href="#382">382</a>     {
+<a name="383" href="#383">383</a>         DocumentBuilder constructor = <strong class="jxr_keyword">null</strong>;
+<a name="384" href="#384">384</a>         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+<a name="385" href="#385">385</a>         <strong class="jxr_keyword">try</strong>
+<a name="386" href="#386">386</a>         {
+<a name="387" href="#387">387</a>             constructor = factory.newDocumentBuilder();
+<a name="388" href="#388">388</a>         }
+<a name="389" href="#389">389</a>         <strong class="jxr_keyword">catch</strong> ( ParserConfigurationException e )
+<a name="390" href="#390">390</a>         {
+<a name="391" href="#391">391</a>             getLog().error( <span class="jxr_string">"Unable to create a new xml document"</span> );
+<a name="392" href="#392">392</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Cannot create the Document Builder : "</span> + e.getMessage() );
+<a name="393" href="#393">393</a>         }
+<a name="394" href="#394">394</a>         <strong class="jxr_keyword">return</strong> constructor;
+<a name="395" href="#395">395</a>     }
+<a name="396" href="#396">396</a> 
+<a name="397" href="#397">397</a> 
+<a name="398" href="#398">398</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="399" href="#399">399</a> <em class="jxr_javadoccomment">     * Open an XML file.</em>
+<a name="400" href="#400">400</a> <em class="jxr_javadoccomment">     * </em>
+<a name="401" href="#401">401</a> <em class="jxr_javadoccomment">     * @param file : XML file</em>
+<a name="402" href="#402">402</a> <em class="jxr_javadoccomment">     * @param constructor DocumentBuilder get from xerces</em>
+<a name="403" href="#403">403</a> <em class="jxr_javadoccomment">     * @return Document which describes this file</em>
+<a name="404" href="#404">404</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException occurs when the given file cannot be opened or is a valid XML file.</em>
+<a name="405" href="#405">405</a> <em class="jxr_javadoccomment">     */</em>
+<a name="406" href="#406">406</a>     <strong class="jxr_keyword">private</strong> Document parseFile( File file, DocumentBuilder constructor ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="407" href="#407">407</a>     {
+<a name="408" href="#408">408</a>         <strong class="jxr_keyword">if</strong> ( constructor == <strong class="jxr_keyword">null</strong> )
+<a name="409" href="#409">409</a>         {
+<a name="410" href="#410">410</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="411" href="#411">411</a>         }
+<a name="412" href="#412">412</a>         <em class="jxr_comment">// The document is the root of the DOM tree.</em>
+<a name="413" href="#413">413</a>         File targetFile = file.getAbsoluteFile();
+<a name="414" href="#414">414</a>         getLog().info( <span class="jxr_string">"Parsing "</span> + targetFile );
+<a name="415" href="#415">415</a>         Document doc = <strong class="jxr_keyword">null</strong>;
+<a name="416" href="#416">416</a>         <strong class="jxr_keyword">try</strong>
 <a name="417" href="#417">417</a>         {
-<a name="418" href="#418">418</a>             getLog().error( <span class="jxr_string">"Cannot open "</span> + targetFile + <span class="jxr_string">" : "</span> + e.getMessage() );
-<a name="419" href="#419">419</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Cannot open "</span> + targetFile + <span class="jxr_string">" : "</span> + e.getMessage() );
-<a name="420" href="#420">420</a>         }
-<a name="421" href="#421">421</a>         <strong class="jxr_keyword">return</strong> doc;
-<a name="422" href="#422">422</a>     }
-<a name="423" href="#423">423</a> 
-<a name="424" href="#424">424</a> 
-<a name="425" href="#425">425</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="426" href="#426">426</a> <em class="jxr_javadoccomment">     * write a Node in a xml file.</em>
-<a name="427" href="#427">427</a> <em class="jxr_javadoccomment">     * </em>
-<a name="428" href="#428">428</a> <em class="jxr_javadoccomment">     * @param outputFilename URI to the output file</em>
-<a name="429" href="#429">429</a> <em class="jxr_javadoccomment">     * @param treeToBeWrite Node root of the tree to be write in file</em>
-<a name="430" href="#430">430</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException if the plugin failed</em>
-<a name="431" href="#431">431</a> <em class="jxr_javadoccomment">     */</em>
-<a name="432" href="#432">432</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeToFile( URI outputFilename, Node treeToBeWrite ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="433" href="#433">433</a>     {
-<a name="434" href="#434">434</a>         <em class="jxr_comment">// init the transformer</em>
-<a name="435" href="#435">435</a>         Transformer transformer = <strong class="jxr_keyword">null</strong>;
-<a name="436" href="#436">436</a>         TransformerFactory tfabrique = TransformerFactory.newInstance();
-<a name="437" href="#437">437</a>         <strong class="jxr_keyword">try</strong>
-<a name="438" href="#438">438</a>         {
-<a name="439" href="#439">439</a>             transformer = tfabrique.newTransformer();
-<a name="440" href="#440">440</a>         }
-<a name="441" href="#441">441</a>         <strong class="jxr_keyword">catch</strong> ( TransformerConfigurationException e )
-<a name="442" href="#442">442</a>         {
-<a name="443" href="#443">443</a>             getLog().error( <span class="jxr_string">"Unable to write to file: "</span> + outputFilename.toString() );
-<a name="444" href="#444">444</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to write to file: "</span> + outputFilename.toString() + <span class="jxr_string">" : "</span>
-<a name="445" href="#445">445</a>                 + e.getMessage() );
-<a name="446" href="#446">446</a>         }
-<a name="447" href="#447">447</a>         Properties proprietes = <strong class="jxr_keyword">new</strong> Properties();
-<a name="448" href="#448">448</a>         proprietes.put( <span class="jxr_string">"method"</span>, <span class="jxr_string">"xml"</span> );
-<a name="449" href="#449">449</a>         proprietes.put( <span class="jxr_string">"version"</span>, <span class="jxr_string">"1.0"</span> );
-<a name="450" href="#450">450</a>         proprietes.put( <span class="jxr_string">"encoding"</span>, <span class="jxr_string">"ISO-8859-1"</span> );
-<a name="451" href="#451">451</a>         proprietes.put( <span class="jxr_string">"standalone"</span>, <span class="jxr_string">"yes"</span> );
-<a name="452" href="#452">452</a>         proprietes.put( <span class="jxr_string">"indent"</span>, <span class="jxr_string">"yes"</span> );
-<a name="453" href="#453">453</a>         proprietes.put( <span class="jxr_string">"omit-xml-declaration"</span>, <span class="jxr_string">"no"</span> );
-<a name="454" href="#454">454</a>         transformer.setOutputProperties( proprietes );
-<a name="455" href="#455">455</a> 
-<a name="456" href="#456">456</a>         DOMSource input = <strong class="jxr_keyword">new</strong> DOMSource( treeToBeWrite );
-<a name="457" href="#457">457</a> 
-<a name="458" href="#458">458</a>         File fichier = <strong class="jxr_keyword">new</strong> File( outputFilename );
-<a name="459" href="#459">459</a>         FileOutputStream flux = <strong class="jxr_keyword">null</strong>;
-<a name="460" href="#460">460</a>         <strong class="jxr_keyword">try</strong>
-<a name="461" href="#461">461</a>         {
-<a name="462" href="#462">462</a>             flux = <strong class="jxr_keyword">new</strong> FileOutputStream( fichier );
-<a name="463" href="#463">463</a>         }
-<a name="464" href="#464">464</a>         <strong class="jxr_keyword">catch</strong> ( FileNotFoundException e )
-<a name="465" href="#465">465</a>         {
-<a name="466" href="#466">466</a>             getLog().error( <span class="jxr_string">"Unable to write to file: "</span> + fichier.getName() );
-<a name="467" href="#467">467</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to write to file: "</span> + fichier.getName() + <span class="jxr_string">" : "</span> + e.getMessage() );
-<a name="468" href="#468">468</a>         }
-<a name="469" href="#469">469</a>         Result output = <strong class="jxr_keyword">new</strong> StreamResult( flux );
-<a name="470" href="#470">470</a>         <strong class="jxr_keyword">try</strong>
-<a name="471" href="#471">471</a>         {
-<a name="472" href="#472">472</a>             transformer.transform( input, output );
-<a name="473" href="#473">473</a>         }
-<a name="474" href="#474">474</a>         <strong class="jxr_keyword">catch</strong> ( TransformerException e )
-<a name="475" href="#475">475</a>         {
-<a name="476" href="#476">476</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to write to file: "</span> + outputFilename.toString() + <span class="jxr_string">" : "</span>
-<a name="477" href="#477">477</a>                 + e.getMessage() );
-<a name="478" href="#478">478</a>         }
-<a name="479" href="#479">479</a> 
-<a name="480" href="#480">480</a>         <strong class="jxr_keyword">try</strong>
-<a name="481" href="#481">481</a>         {
-<a name="482" href="#482">482</a>             flux.flush();
-<a name="483" href="#483">483</a>             flux.close();
-<a name="484" href="#484">484</a>         }
-<a name="485" href="#485">485</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="486" href="#486">486</a>         {
-<a name="487" href="#487">487</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"IOException when closing file : "</span> + e.getMessage() );
-<a name="488" href="#488">488</a>         }
-<a name="489" href="#489">489</a>     }
-<a name="490" href="#490">490</a> }
+<a name="418" href="#418">418</a>             doc = constructor.parse( targetFile );
+<a name="419" href="#419">419</a>         }
+<a name="420" href="#420">420</a>         <strong class="jxr_keyword">catch</strong> ( SAXException e )
+<a name="421" href="#421">421</a>         {
+<a name="422" href="#422">422</a>             getLog().error( <span class="jxr_string">"Cannot parse "</span> + targetFile + <span class="jxr_string">" : "</span> + e.getMessage() );
+<a name="423" href="#423">423</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Cannot parse "</span> + targetFile + <span class="jxr_string">" : "</span> + e.getMessage() );
+<a name="424" href="#424">424</a>         }
+<a name="425" href="#425">425</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="426" href="#426">426</a>         {
+<a name="427" href="#427">427</a>             getLog().error( <span class="jxr_string">"Cannot open "</span> + targetFile + <span class="jxr_string">" : "</span> + e.getMessage() );
+<a name="428" href="#428">428</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Cannot open "</span> + targetFile + <span class="jxr_string">" : "</span> + e.getMessage() );
+<a name="429" href="#429">429</a>         }
+<a name="430" href="#430">430</a>         <strong class="jxr_keyword">return</strong> doc;
+<a name="431" href="#431">431</a>     }
+<a name="432" href="#432">432</a> 
+<a name="433" href="#433">433</a> 
+<a name="434" href="#434">434</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="435" href="#435">435</a> <em class="jxr_javadoccomment">     * write a Node in a xml file.</em>
+<a name="436" href="#436">436</a> <em class="jxr_javadoccomment">     * </em>
+<a name="437" href="#437">437</a> <em class="jxr_javadoccomment">     * @param outputFilename URI to the output file</em>
+<a name="438" href="#438">438</a> <em class="jxr_javadoccomment">     * @param treeToBeWrite Node root of the tree to be write in file</em>
+<a name="439" href="#439">439</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException if the plugin failed</em>
+<a name="440" href="#440">440</a> <em class="jxr_javadoccomment">     */</em>
+<a name="441" href="#441">441</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeToFile( URI outputFilename, Node treeToBeWrite ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="442" href="#442">442</a>     {
+<a name="443" href="#443">443</a>         <em class="jxr_comment">// init the transformer</em>
+<a name="444" href="#444">444</a>         Transformer transformer = <strong class="jxr_keyword">null</strong>;
+<a name="445" href="#445">445</a>         TransformerFactory tfabrique = TransformerFactory.newInstance();
+<a name="446" href="#446">446</a>         <strong class="jxr_keyword">try</strong>
+<a name="447" href="#447">447</a>         {
+<a name="448" href="#448">448</a>             transformer = tfabrique.newTransformer();
+<a name="449" href="#449">449</a>         }
+<a name="450" href="#450">450</a>         <strong class="jxr_keyword">catch</strong> ( TransformerConfigurationException e )
+<a name="451" href="#451">451</a>         {
+<a name="452" href="#452">452</a>             getLog().error( <span class="jxr_string">"Unable to write to file: "</span> + outputFilename.toString() );
+<a name="453" href="#453">453</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to write to file: "</span> + outputFilename.toString() + <span class="jxr_string">" : "</span>
+<a name="454" href="#454">454</a>                 + e.getMessage() );
+<a name="455" href="#455">455</a>         }
+<a name="456" href="#456">456</a>         Properties proprietes = <strong class="jxr_keyword">new</strong> Properties();
+<a name="457" href="#457">457</a>         proprietes.put( <span class="jxr_string">"method"</span>, <span class="jxr_string">"xml"</span> );
+<a name="458" href="#458">458</a>         proprietes.put( <span class="jxr_string">"version"</span>, <span class="jxr_string">"1.0"</span> );
+<a name="459" href="#459">459</a>         proprietes.put( <span class="jxr_string">"encoding"</span>, <span class="jxr_string">"ISO-8859-1"</span> );
+<a name="460" href="#460">460</a>         proprietes.put( <span class="jxr_string">"standalone"</span>, <span class="jxr_string">"yes"</span> );
+<a name="461" href="#461">461</a>         proprietes.put( <span class="jxr_string">"indent"</span>, <span class="jxr_string">"yes"</span> );
+<a name="462" href="#462">462</a>         proprietes.put( <span class="jxr_string">"omit-xml-declaration"</span>, <span class="jxr_string">"no"</span> );
+<a name="463" href="#463">463</a>         transformer.setOutputProperties( proprietes );
+<a name="464" href="#464">464</a> 
+<a name="465" href="#465">465</a>         DOMSource input = <strong class="jxr_keyword">new</strong> DOMSource( treeToBeWrite );
+<a name="466" href="#466">466</a> 
+<a name="467" href="#467">467</a>         File fichier = <strong class="jxr_keyword">new</strong> File( outputFilename );
+<a name="468" href="#468">468</a>         FileOutputStream flux = <strong class="jxr_keyword">null</strong>;
+<a name="469" href="#469">469</a>         <strong class="jxr_keyword">try</strong>
+<a name="470" href="#470">470</a>         {
+<a name="471" href="#471">471</a>             flux = <strong class="jxr_keyword">new</strong> FileOutputStream( fichier );
+<a name="472" href="#472">472</a>         }
+<a name="473" href="#473">473</a>         <strong class="jxr_keyword">catch</strong> ( FileNotFoundException e )
+<a name="474" href="#474">474</a>         {
+<a name="475" href="#475">475</a>             getLog().error( <span class="jxr_string">"Unable to write to file: "</span> + fichier.getName() );
+<a name="476" href="#476">476</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to write to file: "</span> + fichier.getName() + <span class="jxr_string">" : "</span> + e.getMessage() );
+<a name="477" href="#477">477</a>         }
+<a name="478" href="#478">478</a>         Result output = <strong class="jxr_keyword">new</strong> StreamResult( flux );
+<a name="479" href="#479">479</a>         <strong class="jxr_keyword">try</strong>
+<a name="480" href="#480">480</a>         {
+<a name="481" href="#481">481</a>             transformer.transform( input, output );
+<a name="482" href="#482">482</a>         }
+<a name="483" href="#483">483</a>         <strong class="jxr_keyword">catch</strong> ( TransformerException e )
+<a name="484" href="#484">484</a>         {
+<a name="485" href="#485">485</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to write to file: "</span> + outputFilename.toString() + <span class="jxr_string">" : "</span>
+<a name="486" href="#486">486</a>                 + e.getMessage() );
+<a name="487" href="#487">487</a>         }
+<a name="488" href="#488">488</a> 
+<a name="489" href="#489">489</a>         <strong class="jxr_keyword">try</strong>
+<a name="490" href="#490">490</a>         {
+<a name="491" href="#491">491</a>             flux.flush();
+<a name="492" href="#492">492</a>             flux.close();
+<a name="493" href="#493">493</a>         }
+<a name="494" href="#494">494</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="495" href="#495">495</a>         {
+<a name="496" href="#496">496</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"IOException when closing file : "</span> + e.getMessage() );
+<a name="497" href="#497">497</a>         }
+<a name="498" href="#498">498</a>     }
+<a name="499" href="#499">499</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/obrplugin/ObrUpdate.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrUpdate.html
index 4c52dee..80c7f1e 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrUpdate.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrUpdate.html
@@ -36,333 +36,362 @@
 <a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
 <a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.io.OutputStreamWriter;
 <a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.io.Writer;
-<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.net.URI;
-<a name="30" href="#30">30</a>  
-<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.Resource;
-<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.impl.DataModelHelperImpl;
-<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.impl.PullParser;
-<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.impl.RepositoryImpl;
-<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.impl.RepositoryParser;
-<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.impl.ResourceImpl;
-<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
-<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
-<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
-<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.FileUtils;
-<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.kxml2.io.KXmlParser;
-<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.xmlpull.v1.XmlPullParser;
-<a name="43" href="#43">43</a>  
-<a name="44" href="#44">44</a>  
-<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">/**</em>
-<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * this class parse the old repository.xml file build the bundle resource description and update the repository.</em>
-<a name="47" href="#47">47</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="48" href="#48">48</a>  <em class="jxr_javadoccomment"> */</em>
-<a name="49" href="#49">49</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/ObrUpdate.html">ObrUpdate</a>
-<a name="50" href="#50">50</a>  {
-<a name="51" href="#51">51</a>      <em class="jxr_javadoccomment">/**</em>
-<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment">     * logger for this plugin.</em>
-<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">     */</em>
-<a name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> Log m_logger;
-<a name="55" href="#55">55</a>  
-<a name="56" href="#56">56</a>      <em class="jxr_javadoccomment">/**</em>
-<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * name and path to the repository descriptor file.</em>
-<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     */</em>
-<a name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> URI m_repositoryXml;
-<a name="60" href="#60">60</a>  
-<a name="61" href="#61">61</a>      <em class="jxr_javadoccomment">/**</em>
-<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * name and path to the obr.xml file.</em>
-<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     */</em>
-<a name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> URI m_obrXml;
-<a name="65" href="#65">65</a>  
-<a name="66" href="#66">66</a>      <em class="jxr_javadoccomment">/**</em>
-<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     * maven project description.</em>
-<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     */</em>
-<a name="69" href="#69">69</a>      <strong class="jxr_keyword">private</strong> MavenProject m_project;
-<a name="70" href="#70">70</a>  
-<a name="71" href="#71">71</a>      <em class="jxr_javadoccomment">/**</em>
-<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     * user configuration information.</em>
-<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     */</em>
-<a name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/felix/obrplugin/Config.html">Config</a> m_userConfig;
-<a name="75" href="#75">75</a>  
-<a name="76" href="#76">76</a>      <em class="jxr_javadoccomment">/**</em>
-<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     * root on parent document.</em>
-<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     */</em>
-<a name="79" href="#79">79</a>      <strong class="jxr_keyword">private</strong> RepositoryImpl m_repository;
-<a name="80" href="#80">80</a>  
-<a name="81" href="#81">81</a>      <em class="jxr_javadoccomment">/**</em>
-<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     * used to store bundle information.</em>
-<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment">     */</em>
-<a name="84" href="#84">84</a>      <strong class="jxr_keyword">private</strong> ResourceImpl m_resourceBundle;
-<a name="85" href="#85">85</a>  
-<a name="86" href="#86">86</a>      <em class="jxr_javadoccomment">/**</em>
-<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * base URI used to relativize bundle URIs.</em>
-<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     */</em>
-<a name="89" href="#89">89</a>      <strong class="jxr_keyword">private</strong> URI m_baseURI;
-<a name="90" href="#90">90</a>  
-<a name="91" href="#91">91</a>  
-<a name="92" href="#92">92</a>      <em class="jxr_javadoccomment">/**</em>
-<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     * initialize information.</em>
-<a name="94" href="#94">94</a>  <em class="jxr_javadoccomment">     * @param repositoryXml path to the repository descriptor file</em>
-<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     * @param obrXml path and filename to the obr.xml file</em>
-<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     * @param project maven project description</em>
-<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     * @param mavenRepositoryPath path to the local maven repository</em>
-<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     * @param userConfig user information</em>
-<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     * @param logger plugin logger</em>
-<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     */</em>
-<a name="101" href="#101">101</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/obrplugin/ObrUpdate.html">ObrUpdate</a>( URI repositoryXml, URI obrXml, MavenProject project, String mavenRepositoryPath,
-<a name="102" href="#102">102</a>         <a href="../../../../org/apache/felix/obrplugin/Config.html">Config</a> userConfig, Log logger )
-<a name="103" href="#103">103</a>     {
-<a name="104" href="#104">104</a>         m_repositoryXml = repositoryXml;
-<a name="105" href="#105">105</a>         m_obrXml = obrXml;
-<a name="106" href="#106">106</a>         m_project = project;
-<a name="107" href="#107">107</a>         m_logger = logger;
-<a name="108" href="#108">108</a> 
-<a name="109" href="#109">109</a>         m_userConfig = userConfig;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Method;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.net.URI;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Pattern;
+<a name="32" href="#32">32</a>  
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.Resource;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.impl.DataModelHelperImpl;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.impl.PullParser;
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.impl.RepositoryImpl;
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.impl.RepositoryParser;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.impl.ResourceImpl;
+<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
+<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.FileUtils;
+<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.kxml2.io.KXmlParser;
+<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.xmlpull.v1.XmlPullParser;
+<a name="45" href="#45">45</a>  
+<a name="46" href="#46">46</a>  
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * this class parse the old repository.xml file build the bundle resource description and update the repository.</em>
+<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="51" href="#51">51</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/ObrUpdate.html">ObrUpdate</a>
+<a name="52" href="#52">52</a>  {
+<a name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Pattern TIMESTAMP = Pattern.compile( <span class="jxr_string">"-[0-9]{8}&#92;&#92;.[0-9]{6}-[0-9]+"</span> );
+<a name="54" href="#54">54</a>  
+<a name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Method setURI;
+<a name="56" href="#56">56</a>  
+<a name="57" href="#57">57</a>      <strong class="jxr_keyword">static</strong>
+<a name="58" href="#58">58</a>      {
+<a name="59" href="#59">59</a>          <strong class="jxr_keyword">try</strong>
+<a name="60" href="#60">60</a>          {
+<a name="61" href="#61">61</a>              setURI = RepositoryImpl.<strong class="jxr_keyword">class</strong>.getDeclaredMethod( <span class="jxr_string">"setURI"</span>, String.<strong class="jxr_keyword">class</strong> );
+<a name="62" href="#62">62</a>              setURI.setAccessible( <strong class="jxr_keyword">true</strong> );
+<a name="63" href="#63">63</a>          }
+<a name="64" href="#64">64</a>          <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="65" href="#65">65</a>          {
+<a name="66" href="#66">66</a>              setURI = <strong class="jxr_keyword">null</strong>;
+<a name="67" href="#67">67</a>          }
+<a name="68" href="#68">68</a>      }
+<a name="69" href="#69">69</a>  
+<a name="70" href="#70">70</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     * logger for this plugin.</em>
+<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="73" href="#73">73</a>      <strong class="jxr_keyword">private</strong> Log m_logger;
+<a name="74" href="#74">74</a>  
+<a name="75" href="#75">75</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * name and path to the repository descriptor file.</em>
+<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="78" href="#78">78</a>      <strong class="jxr_keyword">private</strong> URI m_repositoryXml;
+<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">     * name and path to the obr.xml file.</em>
+<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="83" href="#83">83</a>      <strong class="jxr_keyword">private</strong> URI m_obrXml;
+<a name="84" href="#84">84</a>  
+<a name="85" href="#85">85</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     * maven project description.</em>
+<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="88" href="#88">88</a>      <strong class="jxr_keyword">private</strong> MavenProject m_project;
+<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">     * user configuration information.</em>
+<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="93" href="#93">93</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/felix/obrplugin/Config.html">Config</a> m_userConfig;
+<a name="94" href="#94">94</a>  
+<a name="95" href="#95">95</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     * root on parent document.</em>
+<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="98" href="#98">98</a>      <strong class="jxr_keyword">private</strong> RepositoryImpl m_repository;
+<a name="99" href="#99">99</a>  
+<a name="100" href="#100">100</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     * used to store bundle information.</em>
+<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     */</em>
+<a name="103" href="#103">103</a>     <strong class="jxr_keyword">private</strong> ResourceImpl m_resourceBundle;
+<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">     * base URI used to relativize bundle URIs.</em>
+<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     */</em>
+<a name="108" href="#108">108</a>     <strong class="jxr_keyword">private</strong> URI m_baseURI;
+<a name="109" href="#109">109</a> 
 <a name="110" href="#110">110</a> 
-<a name="111" href="#111">111</a>         <strong class="jxr_keyword">if</strong> ( userConfig.isRemoteFile() )
-<a name="112" href="#112">112</a>         {
-<a name="113" href="#113">113</a>             m_baseURI = ObrUtils.toFileURI( mavenRepositoryPath );
-<a name="114" href="#114">114</a>         }
-<a name="115" href="#115">115</a>         <strong class="jxr_keyword">else</strong>
-<a name="116" href="#116">116</a>         {
-<a name="117" href="#117">117</a>             m_baseURI = m_repositoryXml;
-<a name="118" href="#118">118</a>         }
-<a name="119" href="#119">119</a>     }
-<a name="120" href="#120">120</a> 
-<a name="121" href="#121">121</a> 
-<a name="122" href="#122">122</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="123" href="#123">123</a> <em class="jxr_javadoccomment">     * update the repository descriptor file. parse the old repository descriptor file,</em>
-<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">     * get the old reference of the bundle or determine the id for a new bundle, extract</em>
-<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">     * information from bindex set the new information in descriptor file and save it.</em>
-<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     * </em>
-<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     * @param bundleJar path to the bundle jar file</em>
-<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     * @param sourceJar path to the source jar file</em>
-<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">     * @param docJar path to the docs jar file</em>
-<a name="130" href="#130">130</a> <em class="jxr_javadoccomment">     * </em>
-<a name="131" href="#131">131</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException if the plugin failed</em>
-<a name="132" href="#132">132</a> <em class="jxr_javadoccomment">     */</em>
-<a name="133" href="#133">133</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateRepository( URI bundleJar, URI sourceJar, URI docJar ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="134" href="#134">134</a>     {
-<a name="135" href="#135">135</a>         m_logger.debug( <span class="jxr_string">" (f) repositoryXml = "</span> + m_repositoryXml );
-<a name="136" href="#136">136</a>         m_logger.debug( <span class="jxr_string">" (f) bundleJar = "</span> + bundleJar );
-<a name="137" href="#137">137</a>         m_logger.debug( <span class="jxr_string">" (f) sourceJar = "</span> + sourceJar );
-<a name="138" href="#138">138</a>         m_logger.debug( <span class="jxr_string">" (f) obrXml = "</span> + m_obrXml );
+<a name="111" href="#111">111</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     * initialize information.</em>
+<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">     * @param repositoryXml path to the repository descriptor file</em>
+<a name="114" href="#114">114</a> <em class="jxr_javadoccomment">     * @param obrXml path and filename to the obr.xml file</em>
+<a name="115" href="#115">115</a> <em class="jxr_javadoccomment">     * @param project maven project description</em>
+<a name="116" href="#116">116</a> <em class="jxr_javadoccomment">     * @param mavenRepositoryPath path to the local maven repository</em>
+<a name="117" href="#117">117</a> <em class="jxr_javadoccomment">     * @param userConfig user information</em>
+<a name="118" href="#118">118</a> <em class="jxr_javadoccomment">     * @param logger plugin logger</em>
+<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">     */</em>
+<a name="120" href="#120">120</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/obrplugin/ObrUpdate.html">ObrUpdate</a>( URI repositoryXml, URI obrXml, MavenProject project, String mavenRepositoryPath,
+<a name="121" href="#121">121</a>         <a href="../../../../org/apache/felix/obrplugin/Config.html">Config</a> userConfig, Log logger )
+<a name="122" href="#122">122</a>     {
+<a name="123" href="#123">123</a>         m_repositoryXml = repositoryXml;
+<a name="124" href="#124">124</a>         m_obrXml = obrXml;
+<a name="125" href="#125">125</a>         m_project = project;
+<a name="126" href="#126">126</a>         m_logger = logger;
+<a name="127" href="#127">127</a> 
+<a name="128" href="#128">128</a>         m_userConfig = userConfig;
+<a name="129" href="#129">129</a> 
+<a name="130" href="#130">130</a>         <strong class="jxr_keyword">if</strong> ( userConfig.isRemoteFile() )
+<a name="131" href="#131">131</a>         {
+<a name="132" href="#132">132</a>             m_baseURI = ObrUtils.toFileURI( mavenRepositoryPath );
+<a name="133" href="#133">133</a>         }
+<a name="134" href="#134">134</a>         <strong class="jxr_keyword">else</strong>
+<a name="135" href="#135">135</a>         {
+<a name="136" href="#136">136</a>             m_baseURI = m_repositoryXml;
+<a name="137" href="#137">137</a>         }
+<a name="138" href="#138">138</a>     }
 <a name="139" href="#139">139</a> 
-<a name="140" href="#140">140</a>         <strong class="jxr_keyword">if</strong> ( m_repository == <strong class="jxr_keyword">null</strong> )
-<a name="141" href="#141">141</a>         {
-<a name="142" href="#142">142</a>             <strong class="jxr_keyword">return</strong>;
-<a name="143" href="#143">143</a>         }
-<a name="144" href="#144">144</a> 
-<a name="145" href="#145">145</a>         <em class="jxr_comment">// get the file size</em>
-<a name="146" href="#146">146</a>         File bundleFile = <strong class="jxr_keyword">new</strong> File( bundleJar );
-<a name="147" href="#147">147</a>         <strong class="jxr_keyword">if</strong> ( bundleFile.exists() )
-<a name="148" href="#148">148</a>         {
-<a name="149" href="#149">149</a>             URI resourceURI = m_userConfig.getRemoteBundle();
-<a name="150" href="#150">150</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == resourceURI )
-<a name="151" href="#151">151</a>             {
-<a name="152" href="#152">152</a>                 resourceURI = bundleJar;
-<a name="153" href="#153">153</a>                 <strong class="jxr_keyword">if</strong> ( m_userConfig.isPathRelative() )
-<a name="154" href="#154">154</a>                 {
-<a name="155" href="#155">155</a>                     resourceURI = ObrUtils.getRelativeURI( m_baseURI, resourceURI );
-<a name="156" href="#156">156</a>                 }
-<a name="157" href="#157">157</a>             }
-<a name="158" href="#158">158</a> 
-<a name="159" href="#159">159</a>             <strong class="jxr_keyword">if</strong> ( m_userConfig.isRemoteFile() )
-<a name="160" href="#160">160</a>             {
-<a name="161" href="#161">161</a>                 m_logger.info( <span class="jxr_string">"Deploying "</span> + resourceURI );
-<a name="162" href="#162">162</a>             }
-<a name="163" href="#163">163</a>             <strong class="jxr_keyword">else</strong>
-<a name="164" href="#164">164</a>             {
-<a name="165" href="#165">165</a>                 m_logger.info( <span class="jxr_string">"Installing "</span> + resourceURI );
-<a name="166" href="#166">166</a>             }
-<a name="167" href="#167">167</a> 
-<a name="168" href="#168">168</a>             <strong class="jxr_keyword">try</strong>
-<a name="169" href="#169">169</a>             {
-<a name="170" href="#170">170</a>                 m_resourceBundle = ( ResourceImpl ) <strong class="jxr_keyword">new</strong> DataModelHelperImpl().createResource( bundleJar.toURL() );
-<a name="171" href="#171">171</a>                 <strong class="jxr_keyword">if</strong> ( m_resourceBundle == <strong class="jxr_keyword">null</strong> )
-<a name="172" href="#172">172</a>                 {
-<a name="173" href="#173">173</a>                     <strong class="jxr_keyword">return</strong>;
-<a name="174" href="#174">174</a>                 }
-<a name="175" href="#175">175</a>             }
-<a name="176" href="#176">176</a>             <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="177" href="#177">177</a>             {
-<a name="178" href="#178">178</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to load resource information"</span>, e );
-<a name="179" href="#179">179</a>             }
-<a name="180" href="#180">180</a> 
-<a name="181" href="#181">181</a>             m_resourceBundle.put( Resource.SIZE, String.valueOf( bundleFile.length() ) );
-<a name="182" href="#182">182</a>             m_resourceBundle.put( Resource.URI, resourceURI.toASCIIString() );
-<a name="183" href="#183">183</a>         }
-<a name="184" href="#184">184</a>         <strong class="jxr_keyword">else</strong>
-<a name="185" href="#185">185</a>         {
-<a name="186" href="#186">186</a>             m_logger.error( <span class="jxr_string">"file doesn't exist: "</span> + bundleJar );
-<a name="187" href="#187">187</a>             <strong class="jxr_keyword">return</strong>;
-<a name="188" href="#188">188</a>         }
-<a name="189" href="#189">189</a> 
-<a name="190" href="#190">190</a>         <em class="jxr_comment">// parse the obr.xml file</em>
-<a name="191" href="#191">191</a>         <strong class="jxr_keyword">if</strong> ( m_obrXml != <strong class="jxr_keyword">null</strong> )
-<a name="192" href="#192">192</a>         {
-<a name="193" href="#193">193</a>             m_logger.info( <span class="jxr_string">"Adding "</span> + m_obrXml );
-<a name="194" href="#194">194</a> 
-<a name="195" href="#195">195</a>             <em class="jxr_comment">// URL url = getClass().getResource("/SchemaObr.xsd");</em>
-<a name="196" href="#196">196</a>             <em class="jxr_comment">// TODO validate obr.xml file</em>
-<a name="197" href="#197">197</a> 
-<a name="198" href="#198">198</a>             <em class="jxr_comment">// add contents to resource bundle</em>
-<a name="199" href="#199">199</a>             parseObrXml();
-<a name="200" href="#200">200</a>         }
-<a name="201" href="#201">201</a> 
-<a name="202" href="#202">202</a>         String sourcePath = relativisePath( sourceJar );
-<a name="203" href="#203">203</a>         String docPath = relativisePath( docJar );
-<a name="204" href="#204">204</a> 
-<a name="205" href="#205">205</a>         <em class="jxr_comment">//        m_resourceBundle.construct( m_project, bindexExtractor, sourcePath, docPath );</em>
-<a name="206" href="#206">206</a>         <em class="jxr_comment">//         TODO: rebuild wrt m_project</em>
-<a name="207" href="#207">207</a> 
-<a name="208" href="#208">208</a>         m_repository.addResource( m_resourceBundle );
-<a name="209" href="#209">209</a>         m_repository.setLastModified( System.currentTimeMillis() );
-<a name="210" href="#210">210</a>     }
-<a name="211" href="#211">211</a> 
-<a name="212" href="#212">212</a> 
-<a name="213" href="#213">213</a>     <strong class="jxr_keyword">private</strong> String relativisePath( URI uri )
-<a name="214" href="#214">214</a>     {
-<a name="215" href="#215">215</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != uri )
-<a name="216" href="#216">216</a>         {
-<a name="217" href="#217">217</a>             <strong class="jxr_keyword">if</strong> ( m_userConfig.isPathRelative() )
-<a name="218" href="#218">218</a>             {
-<a name="219" href="#219">219</a>                 <strong class="jxr_keyword">return</strong> ObrUtils.getRelativeURI( m_baseURI, uri ).toASCIIString();
-<a name="220" href="#220">220</a>             }
-<a name="221" href="#221">221</a> 
-<a name="222" href="#222">222</a>             <strong class="jxr_keyword">return</strong> uri.toASCIIString();
-<a name="223" href="#223">223</a>         }
-<a name="224" href="#224">224</a> 
-<a name="225" href="#225">225</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
-<a name="226" href="#226">226</a>     }
-<a name="227" href="#227">227</a> 
-<a name="228" href="#228">228</a> 
-<a name="229" href="#229">229</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> writeRepositoryXml() <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="230" href="#230">230</a>     {
-<a name="231" href="#231">231</a>         m_logger.info( <span class="jxr_string">"Writing OBR metadata"</span> );
+<a name="140" href="#140">140</a> 
+<a name="141" href="#141">141</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="142" href="#142">142</a> <em class="jxr_javadoccomment">     * update the repository descriptor file. parse the old repository descriptor file,</em>
+<a name="143" href="#143">143</a> <em class="jxr_javadoccomment">     * get the old reference of the bundle or determine the id for a new bundle, extract</em>
+<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     * information from bindex set the new information in descriptor file and save it.</em>
+<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * </em>
+<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     * @param bundleJar path to the bundle jar file</em>
+<a name="147" href="#147">147</a> <em class="jxr_javadoccomment">     * @param sourceJar path to the source jar file</em>
+<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">     * @param docJar path to the docs jar file</em>
+<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">     * </em>
+<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException if the plugin failed</em>
+<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">     */</em>
+<a name="152" href="#152">152</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateRepository( URI bundleJar, URI sourceJar, URI docJar ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="153" href="#153">153</a>     {
+<a name="154" href="#154">154</a>         m_logger.debug( <span class="jxr_string">" (f) repositoryXml = "</span> + m_repositoryXml );
+<a name="155" href="#155">155</a>         m_logger.debug( <span class="jxr_string">" (f) bundleJar = "</span> + bundleJar );
+<a name="156" href="#156">156</a>         m_logger.debug( <span class="jxr_string">" (f) sourceJar = "</span> + sourceJar );
+<a name="157" href="#157">157</a>         m_logger.debug( <span class="jxr_string">" (f) docJar = "</span> + docJar );
+<a name="158" href="#158">158</a>         m_logger.debug( <span class="jxr_string">" (f) obrXml = "</span> + m_obrXml );
+<a name="159" href="#159">159</a> 
+<a name="160" href="#160">160</a>         <strong class="jxr_keyword">if</strong> ( m_repository == <strong class="jxr_keyword">null</strong> )
+<a name="161" href="#161">161</a>         {
+<a name="162" href="#162">162</a>             <strong class="jxr_keyword">return</strong>;
+<a name="163" href="#163">163</a>         }
+<a name="164" href="#164">164</a> 
+<a name="165" href="#165">165</a>         <em class="jxr_comment">// get the file size</em>
+<a name="166" href="#166">166</a>         File bundleFile = <strong class="jxr_keyword">new</strong> File( bundleJar );
+<a name="167" href="#167">167</a>         <strong class="jxr_keyword">if</strong> ( !bundleFile.exists() )
+<a name="168" href="#168">168</a>         {
+<a name="169" href="#169">169</a>             String snapshot = TIMESTAMP.matcher( bundleFile.getName() ).replaceFirst( <span class="jxr_string">"-SNAPSHOT"</span> );
+<a name="170" href="#170">170</a>             bundleFile = <strong class="jxr_keyword">new</strong> File( bundleFile.getParentFile(), snapshot );
+<a name="171" href="#171">171</a>         }
+<a name="172" href="#172">172</a>         <strong class="jxr_keyword">if</strong> ( bundleFile.exists() )
+<a name="173" href="#173">173</a>         {
+<a name="174" href="#174">174</a>             URI resourceURI = m_userConfig.getRemoteBundle();
+<a name="175" href="#175">175</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == resourceURI )
+<a name="176" href="#176">176</a>             {
+<a name="177" href="#177">177</a>                 resourceURI = bundleJar;
+<a name="178" href="#178">178</a>                 <strong class="jxr_keyword">if</strong> ( m_userConfig.isPathRelative() )
+<a name="179" href="#179">179</a>                 {
+<a name="180" href="#180">180</a>                     resourceURI = ObrUtils.getRelativeURI( m_baseURI, resourceURI );
+<a name="181" href="#181">181</a>                 }
+<a name="182" href="#182">182</a>             }
+<a name="183" href="#183">183</a> 
+<a name="184" href="#184">184</a>             <strong class="jxr_keyword">if</strong> ( m_userConfig.isRemoteFile() )
+<a name="185" href="#185">185</a>             {
+<a name="186" href="#186">186</a>                 m_logger.info( <span class="jxr_string">"Deploying "</span> + resourceURI );
+<a name="187" href="#187">187</a>             }
+<a name="188" href="#188">188</a>             <strong class="jxr_keyword">else</strong>
+<a name="189" href="#189">189</a>             {
+<a name="190" href="#190">190</a>                 m_logger.info( <span class="jxr_string">"Installing "</span> + resourceURI );
+<a name="191" href="#191">191</a>             }
+<a name="192" href="#192">192</a> 
+<a name="193" href="#193">193</a>             <strong class="jxr_keyword">try</strong>
+<a name="194" href="#194">194</a>             {
+<a name="195" href="#195">195</a>                 m_resourceBundle = ( ResourceImpl ) <strong class="jxr_keyword">new</strong> DataModelHelperImpl().createResource( bundleFile.toURI().toURL() );
+<a name="196" href="#196">196</a>                 <strong class="jxr_keyword">if</strong> ( m_resourceBundle == <strong class="jxr_keyword">null</strong> )
+<a name="197" href="#197">197</a>                 {
+<a name="198" href="#198">198</a>                     <strong class="jxr_keyword">return</strong>;
+<a name="199" href="#199">199</a>                 }
+<a name="200" href="#200">200</a>             }
+<a name="201" href="#201">201</a>             <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="202" href="#202">202</a>             {
+<a name="203" href="#203">203</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to load resource information"</span>, e );
+<a name="204" href="#204">204</a>             }
+<a name="205" href="#205">205</a> 
+<a name="206" href="#206">206</a>             m_resourceBundle.put( Resource.SIZE, String.valueOf( bundleFile.length() ) );
+<a name="207" href="#207">207</a>             m_resourceBundle.put( Resource.URI, resourceURI.toASCIIString() );
+<a name="208" href="#208">208</a>         }
+<a name="209" href="#209">209</a>         <strong class="jxr_keyword">else</strong>
+<a name="210" href="#210">210</a>         {
+<a name="211" href="#211">211</a>             m_logger.error( <span class="jxr_string">"file doesn't exist: "</span> + bundleJar );
+<a name="212" href="#212">212</a>             <strong class="jxr_keyword">return</strong>;
+<a name="213" href="#213">213</a>         }
+<a name="214" href="#214">214</a> 
+<a name="215" href="#215">215</a>         <em class="jxr_comment">// parse the obr.xml file</em>
+<a name="216" href="#216">216</a>         <strong class="jxr_keyword">if</strong> ( m_obrXml != <strong class="jxr_keyword">null</strong> )
+<a name="217" href="#217">217</a>         {
+<a name="218" href="#218">218</a>             m_logger.info( <span class="jxr_string">"Adding "</span> + m_obrXml );
+<a name="219" href="#219">219</a> 
+<a name="220" href="#220">220</a>             <em class="jxr_comment">// URL url = getClass().getResource("/SchemaObr.xsd");</em>
+<a name="221" href="#221">221</a>             <em class="jxr_comment">// TODO validate obr.xml file</em>
+<a name="222" href="#222">222</a> 
+<a name="223" href="#223">223</a>             <em class="jxr_comment">// add contents to resource bundle</em>
+<a name="224" href="#224">224</a>             parseObrXml();
+<a name="225" href="#225">225</a>         }
+<a name="226" href="#226">226</a> 
+<a name="227" href="#227">227</a>         String sourcePath = relativisePath( sourceJar );
+<a name="228" href="#228">228</a>         String docPath = relativisePath( docJar );
+<a name="229" href="#229">229</a> 
+<a name="230" href="#230">230</a>         <em class="jxr_comment">//        m_resourceBundle.construct( m_project, bindexExtractor, sourcePath, docPath );</em>
+<a name="231" href="#231">231</a>         <em class="jxr_comment">//         TODO: rebuild wrt m_project</em>
 <a name="232" href="#232">232</a> 
-<a name="233" href="#233">233</a>         File file = <strong class="jxr_keyword">null</strong>;
-<a name="234" href="#234">234</a>         Writer writer;
-<a name="235" href="#235">235</a>         <strong class="jxr_keyword">try</strong>
-<a name="236" href="#236">236</a>         {
-<a name="237" href="#237">237</a>             file = File.createTempFile( <span class="jxr_string">"repository"</span>, <span class="jxr_string">".xml"</span> );
-<a name="238" href="#238">238</a>             writer = <strong class="jxr_keyword">new</strong> OutputStreamWriter( <strong class="jxr_keyword">new</strong> FileOutputStream( file ) );
-<a name="239" href="#239">239</a>         }
-<a name="240" href="#240">240</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="233" href="#233">233</a>         m_repository.addResource( m_resourceBundle );
+<a name="234" href="#234">234</a>         m_repository.setLastModified( System.currentTimeMillis() );
+<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>     <strong class="jxr_keyword">private</strong> String relativisePath( URI uri )
+<a name="239" href="#239">239</a>     {
+<a name="240" href="#240">240</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != uri )
 <a name="241" href="#241">241</a>         {
-<a name="242" href="#242">242</a>             m_logger.error( <span class="jxr_string">"Unable to write to file: "</span> + file.getName() );
-<a name="243" href="#243">243</a>             e.printStackTrace();
-<a name="244" href="#244">244</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to write to file: "</span> + file.getName() + <span class="jxr_string">" : "</span> + e.getMessage() );
-<a name="245" href="#245">245</a>         }
+<a name="242" href="#242">242</a>             <strong class="jxr_keyword">if</strong> ( m_userConfig.isPathRelative() )
+<a name="243" href="#243">243</a>             {
+<a name="244" href="#244">244</a>                 <strong class="jxr_keyword">return</strong> ObrUtils.getRelativeURI( m_baseURI, uri ).toASCIIString();
+<a name="245" href="#245">245</a>             }
 <a name="246" href="#246">246</a> 
-<a name="247" href="#247">247</a>         <strong class="jxr_keyword">try</strong>
-<a name="248" href="#248">248</a>         {
-<a name="249" href="#249">249</a>             <strong class="jxr_keyword">new</strong> DataModelHelperImpl().writeRepository( m_repository, writer );
-<a name="250" href="#250">250</a>         }
-<a name="251" href="#251">251</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
-<a name="252" href="#252">252</a>         {
-<a name="253" href="#253">253</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to write repository xml"</span>, e );
-<a name="254" href="#254">254</a>         }
-<a name="255" href="#255">255</a> 
-<a name="256" href="#256">256</a>         <strong class="jxr_keyword">try</strong>
-<a name="257" href="#257">257</a>         {
-<a name="258" href="#258">258</a>             writer.flush();
-<a name="259" href="#259">259</a>             writer.close();
-<a name="260" href="#260">260</a> 
-<a name="261" href="#261">261</a>             File outputFile = <strong class="jxr_keyword">new</strong> File( m_repositoryXml );
-<a name="262" href="#262">262</a>             outputFile.getParentFile().mkdirs();
-<a name="263" href="#263">263</a>             FileUtils.rename( file, outputFile );
+<a name="247" href="#247">247</a>             <strong class="jxr_keyword">return</strong> uri.toASCIIString();
+<a name="248" href="#248">248</a>         }
+<a name="249" href="#249">249</a> 
+<a name="250" href="#250">250</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="251" href="#251">251</a>     }
+<a name="252" href="#252">252</a> 
+<a name="253" href="#253">253</a> 
+<a name="254" href="#254">254</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> writeRepositoryXml() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="255" href="#255">255</a>     {
+<a name="256" href="#256">256</a>         m_logger.info( <span class="jxr_string">"Writing OBR metadata"</span> );
+<a name="257" href="#257">257</a> 
+<a name="258" href="#258">258</a>         File file = <strong class="jxr_keyword">null</strong>;
+<a name="259" href="#259">259</a>         Writer writer;
+<a name="260" href="#260">260</a>         <strong class="jxr_keyword">try</strong>
+<a name="261" href="#261">261</a>         {
+<a name="262" href="#262">262</a>             file = File.createTempFile( <span class="jxr_string">"repository"</span>, <span class="jxr_string">".xml"</span> );
+<a name="263" href="#263">263</a>             writer = <strong class="jxr_keyword">new</strong> OutputStreamWriter( <strong class="jxr_keyword">new</strong> FileOutputStream( file ) );
 <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>             e.printStackTrace();
-<a name="268" href="#268">268</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"IOException"</span> );
-<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> 
-<a name="273" href="#273">273</a> 
-<a name="274" href="#274">274</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="275" href="#275">275</a> <em class="jxr_javadoccomment">      * Parse the repository descriptor file.</em>
-<a name="276" href="#276">276</a> <em class="jxr_javadoccomment">      *</em>
-<a name="277" href="#277">277</a> <em class="jxr_javadoccomment">      * @throws MojoExecutionException if the plugin failed</em>
-<a name="278" href="#278">278</a> <em class="jxr_javadoccomment">      */</em>
-<a name="279" href="#279">279</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> parseRepositoryXml() <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a name="280" href="#280">280</a>     {
-<a name="281" href="#281">281</a>         File fout = <strong class="jxr_keyword">new</strong> File( m_repositoryXml );
-<a name="282" href="#282">282</a>         <strong class="jxr_keyword">if</strong> ( !fout.exists() )
-<a name="283" href="#283">283</a>         {
-<a name="284" href="#284">284</a>             m_repository = <strong class="jxr_keyword">new</strong> RepositoryImpl();
-<a name="285" href="#285">285</a>             writeRepositoryXml();
-<a name="286" href="#286">286</a>         }
-<a name="287" href="#287">287</a>         <strong class="jxr_keyword">else</strong>
-<a name="288" href="#288">288</a>         {
-<a name="289" href="#289">289</a>             <strong class="jxr_keyword">try</strong>
-<a name="290" href="#290">290</a>             {
-<a name="291" href="#291">291</a>                 m_repository = ( RepositoryImpl ) <strong class="jxr_keyword">new</strong> DataModelHelperImpl().repository( m_repositoryXml.toURL() );
-<a name="292" href="#292">292</a>             }
-<a name="293" href="#293">293</a>             <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="294" href="#294">294</a>             {
-<a name="295" href="#295">295</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to read repository xml: "</span> + m_repositoryXml, e );
-<a name="296" href="#296">296</a>             }
-<a name="297" href="#297">297</a>         }
-<a name="298" href="#298">298</a>     }
-<a name="299" href="#299">299</a> 
-<a name="300" href="#300">300</a> 
-<a name="301" href="#301">301</a>     <em class="jxr_javadoccomment">/**</em>
-<a name="302" href="#302">302</a> <em class="jxr_javadoccomment">     * put the information from obr.xml into ressourceBundle object.</em>
-<a name="303" href="#303">303</a> <em class="jxr_javadoccomment">     */</em>
-<a name="304" href="#304">304</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> parseObrXml() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="267" href="#267">267</a>             m_logger.error( <span class="jxr_string">"Unable to write to file: "</span> + file.getName() );
+<a name="268" href="#268">268</a>             e.printStackTrace();
+<a name="269" href="#269">269</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to write to file: "</span> + file.getName() + <span class="jxr_string">" : "</span> + e.getMessage() );
+<a name="270" href="#270">270</a>         }
+<a name="271" href="#271">271</a> 
+<a name="272" href="#272">272</a>         <strong class="jxr_keyword">try</strong>
+<a name="273" href="#273">273</a>         {
+<a name="274" href="#274">274</a>             <strong class="jxr_keyword">new</strong> DataModelHelperImpl().writeRepository( m_repository, writer );
+<a name="275" href="#275">275</a>         }
+<a name="276" href="#276">276</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="277" href="#277">277</a>         {
+<a name="278" href="#278">278</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to write repository xml"</span>, e );
+<a name="279" href="#279">279</a>         }
+<a name="280" href="#280">280</a> 
+<a name="281" href="#281">281</a>         <strong class="jxr_keyword">try</strong>
+<a name="282" href="#282">282</a>         {
+<a name="283" href="#283">283</a>             writer.flush();
+<a name="284" href="#284">284</a>             writer.close();
+<a name="285" href="#285">285</a> 
+<a name="286" href="#286">286</a>             File outputFile = <strong class="jxr_keyword">new</strong> File( m_repositoryXml );
+<a name="287" href="#287">287</a>             outputFile.getParentFile().mkdirs();
+<a name="288" href="#288">288</a>             FileUtils.rename( file, outputFile );
+<a name="289" href="#289">289</a>         }
+<a name="290" href="#290">290</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="291" href="#291">291</a>         {
+<a name="292" href="#292">292</a>             e.printStackTrace();
+<a name="293" href="#293">293</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"IOException"</span> );
+<a name="294" href="#294">294</a>         }
+<a name="295" href="#295">295</a> 
+<a name="296" href="#296">296</a>     }
+<a name="297" href="#297">297</a> 
+<a name="298" href="#298">298</a> 
+<a name="299" href="#299">299</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="300" href="#300">300</a> <em class="jxr_javadoccomment">      * Parse the repository descriptor file.</em>
+<a name="301" href="#301">301</a> <em class="jxr_javadoccomment">      *</em>
+<a name="302" href="#302">302</a> <em class="jxr_javadoccomment">      * @throws MojoExecutionException if the plugin failed</em>
+<a name="303" href="#303">303</a> <em class="jxr_javadoccomment">      */</em>
+<a name="304" href="#304">304</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> parseRepositoryXml() <strong class="jxr_keyword">throws</strong> MojoExecutionException
 <a name="305" href="#305">305</a>     {
-<a name="306" href="#306">306</a>         <strong class="jxr_keyword">try</strong>
-<a name="307" href="#307">307</a>         {
-<a name="308" href="#308">308</a>             InputStream is = <strong class="jxr_keyword">new</strong> FileInputStream( <strong class="jxr_keyword">new</strong> File( m_obrXml ) );
-<a name="309" href="#309">309</a>             <strong class="jxr_keyword">try</strong>
-<a name="310" href="#310">310</a>             {
-<a name="311" href="#311">311</a>                 KXmlParser kxp = <strong class="jxr_keyword">new</strong> KXmlParser();
-<a name="312" href="#312">312</a>                 kxp.setInput( is, <strong class="jxr_keyword">null</strong> );
-<a name="313" href="#313">313</a>                 kxp.nextTag(); <em class="jxr_comment">// skip top level element</em>
-<a name="314" href="#314">314</a>                 kxp.nextTag(); <em class="jxr_comment">// go to first child element</em>
-<a name="315" href="#315">315</a>                 parseObrXml( kxp );
-<a name="316" href="#316">316</a>             }
-<a name="317" href="#317">317</a>             <strong class="jxr_keyword">finally</strong>
-<a name="318" href="#318">318</a>             {
-<a name="319" href="#319">319</a>                 is.close();
-<a name="320" href="#320">320</a>             }
-<a name="321" href="#321">321</a>         }
-<a name="322" href="#322">322</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
-<a name="323" href="#323">323</a>         {
-<a name="324" href="#324">324</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to parse obr xml: "</span> + m_obrXml, e );
-<a name="325" href="#325">325</a>         }
-<a name="326" href="#326">326</a>     }
-<a name="327" href="#327">327</a> 
+<a name="306" href="#306">306</a>         File fout = <strong class="jxr_keyword">new</strong> File( m_repositoryXml );
+<a name="307" href="#307">307</a>         <strong class="jxr_keyword">if</strong> ( !fout.exists() )
+<a name="308" href="#308">308</a>         {
+<a name="309" href="#309">309</a>             m_repository = <strong class="jxr_keyword">new</strong> RepositoryImpl();
+<a name="310" href="#310">310</a>             writeRepositoryXml();
+<a name="311" href="#311">311</a>         }
+<a name="312" href="#312">312</a>         <strong class="jxr_keyword">else</strong>
+<a name="313" href="#313">313</a>         {
+<a name="314" href="#314">314</a>             <strong class="jxr_keyword">try</strong>
+<a name="315" href="#315">315</a>             {
+<a name="316" href="#316">316</a>                 m_repository = ( RepositoryImpl ) <strong class="jxr_keyword">new</strong> DataModelHelperImpl().repository( m_repositoryXml.toURL() );
+<a name="317" href="#317">317</a>                 <strong class="jxr_keyword">if</strong> ( setURI != <strong class="jxr_keyword">null</strong> )
+<a name="318" href="#318">318</a>                 {
+<a name="319" href="#319">319</a>                     setURI.invoke( m_repository, ( String ) <strong class="jxr_keyword">null</strong> );
+<a name="320" href="#320">320</a>                 }
+<a name="321" href="#321">321</a>             }
+<a name="322" href="#322">322</a>             <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="323" href="#323">323</a>             {
+<a name="324" href="#324">324</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to read repository xml: "</span> + m_repositoryXml, e );
+<a name="325" href="#325">325</a>             }
+<a name="326" href="#326">326</a>         }
+<a name="327" href="#327">327</a>     }
 <a name="328" href="#328">328</a> 
-<a name="329" href="#329">329</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> parseObrXml( KXmlParser kxp ) <strong class="jxr_keyword">throws</strong> Exception
-<a name="330" href="#330">330</a>     {
-<a name="331" href="#331">331</a>         PullParser parser = <strong class="jxr_keyword">new</strong> PullParser();
-<a name="332" href="#332">332</a>         <strong class="jxr_keyword">while</strong> ( kxp.getEventType() == XmlPullParser.START_TAG )
-<a name="333" href="#333">333</a>         {
-<a name="334" href="#334">334</a>             <strong class="jxr_keyword">if</strong> ( RepositoryParser.CATEGORY.equals( kxp.getName() ) )
-<a name="335" href="#335">335</a>             {
-<a name="336" href="#336">336</a>                 m_resourceBundle.addCategory( parser.parseCategory( kxp ) );
-<a name="337" href="#337">337</a>             }
-<a name="338" href="#338">338</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( RepositoryParser.REQUIRE.equals( kxp.getName() ) )
+<a name="329" href="#329">329</a> 
+<a name="330" href="#330">330</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="331" href="#331">331</a> <em class="jxr_javadoccomment">     * put the information from obr.xml into ressourceBundle object.</em>
+<a name="332" href="#332">332</a> <em class="jxr_javadoccomment">     */</em>
+<a name="333" href="#333">333</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> parseObrXml() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="334" href="#334">334</a>     {
+<a name="335" href="#335">335</a>         <strong class="jxr_keyword">try</strong>
+<a name="336" href="#336">336</a>         {
+<a name="337" href="#337">337</a>             InputStream is = <strong class="jxr_keyword">new</strong> FileInputStream( <strong class="jxr_keyword">new</strong> File( m_obrXml ) );
+<a name="338" href="#338">338</a>             <strong class="jxr_keyword">try</strong>
 <a name="339" href="#339">339</a>             {
-<a name="340" href="#340">340</a>                 m_resourceBundle.addRequire( parser.parseRequire( kxp ) );
-<a name="341" href="#341">341</a>             }
-<a name="342" href="#342">342</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( RepositoryParser.CAPABILITY.equals( kxp.getName() ) )
-<a name="343" href="#343">343</a>             {
-<a name="344" href="#344">344</a>                 m_resourceBundle.addCapability( parser.parseCapability( kxp ) );
+<a name="340" href="#340">340</a>                 KXmlParser kxp = <strong class="jxr_keyword">new</strong> KXmlParser();
+<a name="341" href="#341">341</a>                 kxp.setInput( is, <strong class="jxr_keyword">null</strong> );
+<a name="342" href="#342">342</a>                 kxp.nextTag(); <em class="jxr_comment">// skip top level element</em>
+<a name="343" href="#343">343</a>                 kxp.nextTag(); <em class="jxr_comment">// go to first child element</em>
+<a name="344" href="#344">344</a>                 parseObrXml( kxp );
 <a name="345" href="#345">345</a>             }
-<a name="346" href="#346">346</a>             <strong class="jxr_keyword">else</strong>
+<a name="346" href="#346">346</a>             <strong class="jxr_keyword">finally</strong>
 <a name="347" href="#347">347</a>             {
-<a name="348" href="#348">348</a>                 kxp.nextTag();
-<a name="349" href="#349">349</a>                 parseObrXml( kxp );
-<a name="350" href="#350">350</a>             }
-<a name="351" href="#351">351</a>             kxp.nextTag();
-<a name="352" href="#352">352</a>         }
-<a name="353" href="#353">353</a>     }
-<a name="354" href="#354">354</a> 
-<a name="355" href="#355">355</a> }
+<a name="348" href="#348">348</a>                 is.close();
+<a name="349" href="#349">349</a>             }
+<a name="350" href="#350">350</a>         }
+<a name="351" href="#351">351</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="352" href="#352">352</a>         {
+<a name="353" href="#353">353</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to parse obr xml: "</span> + m_obrXml, e );
+<a name="354" href="#354">354</a>         }
+<a name="355" href="#355">355</a>     }
+<a name="356" href="#356">356</a> 
+<a name="357" href="#357">357</a> 
+<a name="358" href="#358">358</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> parseObrXml( KXmlParser kxp ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="359" href="#359">359</a>     {
+<a name="360" href="#360">360</a>         PullParser parser = <strong class="jxr_keyword">new</strong> PullParser();
+<a name="361" href="#361">361</a>         <strong class="jxr_keyword">while</strong> ( kxp.getEventType() == XmlPullParser.START_TAG )
+<a name="362" href="#362">362</a>         {
+<a name="363" href="#363">363</a>             <strong class="jxr_keyword">if</strong> ( RepositoryParser.CATEGORY.equals( kxp.getName() ) )
+<a name="364" href="#364">364</a>             {
+<a name="365" href="#365">365</a>                 m_resourceBundle.addCategory( parser.parseCategory( kxp ) );
+<a name="366" href="#366">366</a>             }
+<a name="367" href="#367">367</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( RepositoryParser.REQUIRE.equals( kxp.getName() ) )
+<a name="368" href="#368">368</a>             {
+<a name="369" href="#369">369</a>                 m_resourceBundle.addRequire( parser.parseRequire( kxp ) );
+<a name="370" href="#370">370</a>             }
+<a name="371" href="#371">371</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( RepositoryParser.CAPABILITY.equals( kxp.getName() ) )
+<a name="372" href="#372">372</a>             {
+<a name="373" href="#373">373</a>                 m_resourceBundle.addCapability( parser.parseCapability( kxp ) );
+<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>                 kxp.nextTag();
+<a name="378" href="#378">378</a>                 parseObrXml( kxp );
+<a name="379" href="#379">379</a>             }
+<a name="380" href="#380">380</a>             kxp.nextTag();
+<a name="381" href="#381">381</a>         }
+<a name="382" href="#382">382</a>     }
+<a name="383" href="#383">383</a> 
+<a name="384" href="#384">384</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/obrplugin/RemoteFileManager.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/RemoteFileManager.html
index 307a578..26dfb80 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/RemoteFileManager.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/RemoteFileManager.html
@@ -35,17 +35,17 @@
 <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.Writer;
 <a name="27" href="#27">27</a>  
-<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.manager.WagonConfigurationException;
-<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.manager.WagonManager;
-<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
-<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
-<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.settings.Proxy;
-<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.settings.Settings;
-<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.ConnectionException;
-<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.ResourceDoesNotExistException;
-<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.TransferFailedException;
-<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.UnsupportedProtocolException;
-<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.Wagon;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.manager.WagonManager;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.settings.Proxy;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.settings.Settings;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.ConnectionException;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.ResourceDoesNotExistException;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.TransferFailedException;
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.UnsupportedProtocolException;
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.Wagon;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.WagonException;
 <a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.authentication.AuthenticationException;
 <a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.authorization.AuthorizationException;
 <a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.proxy.ProxyInfo;
@@ -131,7 +131,7 @@
 <a name="121" href="#121">121</a>         {
 <a name="122" href="#122">122</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unsupported protocol: '"</span> + repository.getProtocol() + <span class="jxr_string">"'"</span>, e );
 <a name="123" href="#123">123</a>         }
-<a name="124" href="#124">124</a>         <strong class="jxr_keyword">catch</strong> ( WagonConfigurationException e )
+<a name="124" href="#124">124</a>         <strong class="jxr_keyword">catch</strong> ( WagonException e )
 <a name="125" href="#125">125</a>         {
 <a name="126" href="#126">126</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to configure Wagon: '"</span> + repository.getProtocol() + <span class="jxr_string">"'"</span>, e );
 <a name="127" href="#127">127</a>         }
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/package-frame.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/package-frame.html
index f7d979b..0a42ba9 100644
--- a/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/package-frame.html
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
-		<title>Maven Bundle Plugin 2.3.5 Reference Package org.apache.felix.obrplugin</title>
+		<title>Maven Bundle Plugin 2.4.0-SNAPSHOT Reference Package org.apache.felix.obrplugin</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
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 b3d67e8..ee11860 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
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
-		<title>Maven Bundle Plugin 2.3.5 Reference Package org.apache.felix.obrplugin</title>
+		<title>Maven Bundle Plugin 2.4.0-SNAPSHOT Reference Package org.apache.felix.obrplugin</title>
 		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
diff --git a/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/package-frame.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/package-frame.html
index 29f9d2c..a417e01 100644
--- a/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/package-frame.html
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
-		<title>Maven Bundle Plugin 2.3.5 Reference Package org.apache.maven.shared.dependency.tree</title>
+		<title>Maven Bundle Plugin 2.4.0-SNAPSHOT Reference Package org.apache.maven.shared.dependency.tree</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
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 348e590..ed8a9da 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
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
-		<title>Maven Bundle Plugin 2.3.5 Reference Package org.apache.maven.shared.dependency.tree</title>
+		<title>Maven Bundle Plugin 2.4.0-SNAPSHOT Reference Package org.apache.maven.shared.dependency.tree</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
diff --git a/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-frame.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-frame.html
index 8a158f3..dbc9a7c 100644
--- a/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-frame.html
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
-		<title>Maven Bundle Plugin 2.3.5 Reference Package org.apache.maven.shared.osgi</title>
+		<title>Maven Bundle Plugin 2.4.0-SNAPSHOT Reference Package org.apache.maven.shared.osgi</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
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 c33547a..776c4bc 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
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
-		<title>Maven Bundle Plugin 2.3.5 Reference Package org.apache.maven.shared.osgi</title>
+		<title>Maven Bundle Plugin 2.4.0-SNAPSHOT Reference Package org.apache.maven.shared.osgi</title>
 		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
 	</head>
 	<body>
diff --git a/bundleplugin/doc/site/xref/overview-frame.html b/bundleplugin/doc/site/xref/overview-frame.html
index 6bbfaa4..793d6a7 100644
--- a/bundleplugin/doc/site/xref/overview-frame.html
+++ b/bundleplugin/doc/site/xref/overview-frame.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
-		<title>Maven Bundle Plugin 2.3.5 Reference</title>
+		<title>Maven Bundle Plugin 2.4.0-SNAPSHOT Reference</title>
 		<link rel="stylesheet" type="text/css" href="stylesheet.css" title="style" />
 	</head>
 	<body>
diff --git a/bundleplugin/doc/site/xref/overview-summary.html b/bundleplugin/doc/site/xref/overview-summary.html
index d186331..e23604d 100644
--- a/bundleplugin/doc/site/xref/overview-summary.html
+++ b/bundleplugin/doc/site/xref/overview-summary.html
@@ -3,7 +3,7 @@
 <html xml:lang="en" lang="en">
 	<head>
 		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
-		<title>Maven Bundle Plugin 2.3.5 Reference</title>
+		<title>Maven Bundle Plugin 2.4.0-SNAPSHOT Reference</title>
 		<link rel="stylesheet" type="text/css" href="stylesheet.css" title="style" />
 	</head>
 	<body>
@@ -24,7 +24,7 @@
 	        </ul>
       	</div>
 		
-		      	<h2>Maven Bundle Plugin 2.3.5 Reference</h2>
+		      	<h2>Maven Bundle Plugin 2.4.0-SNAPSHOT Reference</h2>
 
 		<table class="summary">
         	<thead>
