diff --git a/bundleplugin/doc/site/xref/allclasses-frame.html b/bundleplugin/doc/site/xref/allclasses-frame.html
new file mode 100644
index 0000000..fafb37a
--- /dev/null
+++ b/bundleplugin/doc/site/xref/allclasses-frame.html
@@ -0,0 +1,119 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>All Classes</title>
+		<link rel="stylesheet" type="text/css" href="stylesheet.css" title="style" />
+    </head>
+    <body>
+
+		<h3>All Classes</h3>
+
+		<ul>
+						<li>
+				<a href="org/apache/felix/bundleplugin/AbstractDependencyFilter.html" target="classFrame">AbstractDependencyFilter</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/AbstractFileMojo.html" target="classFrame">AbstractFileMojo</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/AntPlugin.html" target="classFrame">AntPlugin</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/BlueprintPlugin.html" target="classFrame">Attribute</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/BlueprintPlugin.html" target="classFrame">BlueprintPlugin</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/BundleAllPlugin.html" target="classFrame">BundleAllPlugin</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/BundleInfo.html" target="classFrame">BundleInfo</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/BundlePlugin.html" target="classFrame">BundlePlugin</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/Config.html" target="classFrame">Config</a>
+			</li>
+						<li>
+				<a href="org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.html" target="classFrame">DefaultMaven2OsgiConverter</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/DependencyEmbedder.html" target="classFrame">DependencyEmbedder</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/DependencyExcluder.html" target="classFrame">DependencyExcluder</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/AbstractDependencyFilter.html" target="classFrame">DependencyFilter</a>
+			</li>
+						<li>
+				<a href="org/apache/maven/shared/dependency/tree/DependencyTreeResolutionListener.html" target="classFrame">DependencyTreeResolutionListener</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/InstructionsPlugin.html" target="classFrame">InstructionsPlugin</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/JarPluginConfiguration.html" target="classFrame">JarPluginConfiguration</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/ManifestPlugin.html" target="classFrame">ManifestPlugin</a>
+			</li>
+						<li>
+				<a href="org/apache/maven/shared/osgi/ManifestReadingException.html" target="classFrame">ManifestReadingException</a>
+			</li>
+						<li>
+				<a href="org/apache/maven/shared/osgi/Maven2OsgiConverter.html" target="classFrame">Maven2OsgiConverter</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/ObrCleanRepo.html" target="classFrame">ObrCleanRepo</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/ObrDeploy.html" target="classFrame">ObrDeploy</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/ObrDeployFile.html" target="classFrame">ObrDeployFile</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/ObrIndex.html" target="classFrame">ObrIndex</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/ObrInstall.html" target="classFrame">ObrInstall</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/ObrInstallFile.html" target="classFrame">ObrInstallFile</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/ObrRemoteClean.html" target="classFrame">ObrRemoteClean</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/ObrUpdate.html" target="classFrame">ObrUpdate</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/ObrUtils.html" target="classFrame">ObrUtils</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/PackageVersionAnalyzer.html" target="classFrame">PackageVersionAnalyzer</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/PomHelper.html" target="classFrame">PomHelper</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/RemoteFileManager.html" target="classFrame">RemoteFileManager</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/VersionCleanerPlugin.html" target="classFrame">VersionCleanerPlugin</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/bundleplugin/WrapPlugin.html" target="classFrame">WrapPlugin</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/XmlHelper.html" target="classFrame">XmlHelper</a>
+			</li>
+			      </ul>
+
+    </body>
+  </html>
diff --git a/bundleplugin/doc/site/xref/index.html b/bundleplugin/doc/site/xref/index.html
new file mode 100644
index 0000000..b66913a
--- /dev/null
+++ b/bundleplugin/doc/site/xref/index.html
@@ -0,0 +1,24 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "DTD/xhtml1-frameset.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>Maven Bundle Plugin 2.3.5 Reference</title>
+	</head>
+    <frameset cols="20%,80%">
+		<frameset rows="30%,70%">
+			<frame src="overview-frame.html" name="packageListFrame" />
+			<frame src="allclasses-frame.html" name="packageFrame" />
+		</frameset>
+		<frame src="overview-summary.html" name="classFrame" />
+        <noframes>
+            <body>
+                <h1>Frame Alert</h1>
+                <p>
+                    You don't have frames. Go <a href="overview-summary.html">here</a>
+                </p>
+            </body>
+        </noframes>
+    </frameset>
+</html>
+
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AbstractDependencyFilter.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AbstractDependencyFilter.html
new file mode 100644
index 0000000..552f2f9
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AbstractDependencyFilter.html
@@ -0,0 +1,249 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>AbstractDependencyFilter xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.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="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="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="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="94" href="#94">94</a>              {
+<a name="95" href="#95">95</a>                  result = m_instruction.matches( text );
+<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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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> }
+</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/AntPlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AntPlugin.html
new file mode 100644
index 0000000..0cf0175
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/AntPlugin.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>AntPlugin xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.FileOutputStream;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.OutputStream;
+<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.Map;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
+<a name="27" href="#27">27</a>  
+<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.project.MavenProject;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.FileUtils;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.IOUtil;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.StringUtils;
+<a name="33" href="#33">33</a>  
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Builder;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
+<a name="36" href="#36">36</a>  
+<a name="37" href="#37">37</a>  
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * Generate Ant script to create the bundle (you should run ant:ant first).</em>
+<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> *</em>
+<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * @goal ant</em>
+<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * @requiresDependencyResolution test</em>
+<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * @description generate Ant script to create the bundle</em>
+<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="45" href="#45">45</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/AntPlugin.html">AntPlugin</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/BundlePlugin.html">BundlePlugin</a>
+<a name="46" href="#46">46</a>  {
+<a name="47" href="#47">47</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String BUILD_XML = <span class="jxr_string">"/build.xml"</span>;
+<a name="48" href="#48">48</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String BUILD_BND = <span class="jxr_string">"/maven-build.bnd"</span>;
+<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">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject currentProject, Map originalInstructions, Properties properties,
+<a name="52" href="#52">52</a>          Jar[] classpath ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="53" href="#53">53</a>      {
+<a name="54" href="#54">54</a>          <strong class="jxr_keyword">final</strong> String artifactId = getProject().getArtifactId();
+<a name="55" href="#55">55</a>          <strong class="jxr_keyword">final</strong> String baseDir = getProject().getBasedir().getPath();
+<a name="56" href="#56">56</a>  
+<a name="57" href="#57">57</a>          <strong class="jxr_keyword">try</strong>
+<a name="58" href="#58">58</a>          {
+<a name="59" href="#59">59</a>              <em class="jxr_comment">// assemble bundle as usual, but don't save it - this way we have all the instructions we need</em>
+<a name="60" href="#60">60</a>              Builder builder = buildOSGiBundle( currentProject, originalInstructions, properties, classpath );
+<a name="61" href="#61">61</a>              Properties bndProperties = builder.getProperties();
+<a name="62" href="#62">62</a>  
+<a name="63" href="#63">63</a>              <em class="jxr_comment">// cleanup and remove all non-strings from the builder properties</em>
+<a name="64" href="#64">64</a>              <strong class="jxr_keyword">for</strong> ( Iterator i = bndProperties.values().iterator(); i.hasNext(); )
+<a name="65" href="#65">65</a>              {
+<a name="66" href="#66">66</a>                  <strong class="jxr_keyword">if</strong> ( !( i.next() instanceof String ) )
+<a name="67" href="#67">67</a>                  {
+<a name="68" href="#68">68</a>                      i.remove();
+<a name="69" href="#69">69</a>                  }
+<a name="70" href="#70">70</a>              }
+<a name="71" href="#71">71</a>  
+<a name="72" href="#72">72</a>              <em class="jxr_comment">// save the BND generated bundle to the same output directory that maven uses</em>
+<a name="73" href="#73">73</a>              bndProperties.setProperty( <span class="jxr_string">"-output"</span>, <span class="jxr_string">"${maven.build.dir}/${maven.build.finalName}.jar"</span> );
+<a name="74" href="#74">74</a>  
+<a name="75" href="#75">75</a>              OutputStream out = <strong class="jxr_keyword">new</strong> FileOutputStream( baseDir + BUILD_BND );
+<a name="76" href="#76">76</a>              bndProperties.store( out, <span class="jxr_string">" Merged BND Instructions"</span> );
+<a name="77" href="#77">77</a>              IOUtil.close( out );
+<a name="78" href="#78">78</a>  
+<a name="79" href="#79">79</a>              <em class="jxr_comment">// modify build template</em>
+<a name="80" href="#80">80</a>              String buildXml = IOUtil.toString( getClass().getResourceAsStream( BUILD_XML ) );
+<a name="81" href="#81">81</a>              buildXml = StringUtils.replace( buildXml, <span class="jxr_string">"BND_VERSION"</span>, builder.getVersion() );
+<a name="82" href="#82">82</a>              buildXml = StringUtils.replace( buildXml, <span class="jxr_string">"ARTIFACT_ID"</span>, artifactId );
+<a name="83" href="#83">83</a>  
+<a name="84" href="#84">84</a>              FileUtils.fileWrite( baseDir + BUILD_XML, buildXml );
+<a name="85" href="#85">85</a>  
+<a name="86" href="#86">86</a>              <em class="jxr_comment">// cleanup...</em>
+<a name="87" href="#87">87</a>              builder.close();
+<a name="88" href="#88">88</a>          }
+<a name="89" href="#89">89</a>          <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="90" href="#90">90</a>          {
+<a name="91" href="#91">91</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Problem creating Ant script"</span>, e );
+<a name="92" href="#92">92</a>          }
+<a name="93" href="#93">93</a>  
+<a name="94" href="#94">94</a>          getLog().info( <span class="jxr_string">"Wrote Ant bundle project for "</span> + artifactId + <span class="jxr_string">" to "</span> + baseDir );
+<a name="95" href="#95">95</a>      }
+<a name="96" href="#96">96</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/BlueprintPlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BlueprintPlugin.html
new file mode 100644
index 0000000..926167e
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BlueprintPlugin.html
@@ -0,0 +1,419 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>BlueprintPlugin xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.BufferedReader;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.ByteArrayInputStream;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.ByteArrayOutputStream;
+<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.InputStream;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.io.InputStreamReader;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.net.URL;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.TreeSet;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Pattern;
+<a name="36" href="#36">36</a>  
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.Transformer;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.TransformerFactory;
+<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.stream.StreamResult;
+<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.stream.StreamSource;
+<a name="41" href="#41">41</a>  
+<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.service.AnalyzerPlugin;
+<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
+<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
+<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Processor;
+<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Resource;
+<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> aQute.libg.generics.Create;
+<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> aQute.libg.qtokens.QuotedTokenizer;
+<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> aQute.libg.reporter.Reporter;
+<a name="50" href="#50">50</a>  
+<a name="51" href="#51">51</a>  
+<a name="52" href="#52">52</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/BlueprintPlugin.html">BlueprintPlugin</a> implements AnalyzerPlugin
+<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">static</strong> Pattern QN = Pattern.compile( <span class="jxr_string">"[_A-Za-z$][_A-Za-z0-9$]*(&#92;&#92;.[_A-Za-z$][_A-Za-z0-9$]*)*"</span> );
+<a name="56" href="#56">56</a>      <strong class="jxr_keyword">static</strong> Pattern PATHS = Pattern.compile( <span class="jxr_string">".*&#92;&#92;.xml"</span> );
+<a name="57" href="#57">57</a>  
+<a name="58" href="#58">58</a>      Transformer transformer;
+<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/BlueprintPlugin.html">BlueprintPlugin</a>() <strong class="jxr_keyword">throws</strong> Exception
+<a name="62" href="#62">62</a>      {
+<a name="63" href="#63">63</a>          transformer = getTransformer( getClass().getResource( <span class="jxr_string">"blueprint.xsl"</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> <strong class="jxr_keyword">boolean</strong> analyzeJar( Analyzer analyzer ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="68" href="#68">68</a>      {
+<a name="69" href="#69">69</a>          transformer.setParameter( <span class="jxr_string">"nsh_interface"</span>,
+<a name="70" href="#70">70</a>              analyzer.getProperty( <span class="jxr_string">"nsh_interface"</span> ) != <strong class="jxr_keyword">null</strong> ? analyzer.getProperty( <span class="jxr_string">"nsh_interface"</span> ) : <span class="jxr_string">""</span> );
+<a name="71" href="#71">71</a>          transformer.setParameter( <span class="jxr_string">"nsh_namespace"</span>,
+<a name="72" href="#72">72</a>              analyzer.getProperty( <span class="jxr_string">"nsh_namespace"</span> ) != <strong class="jxr_keyword">null</strong> ? analyzer.getProperty( <span class="jxr_string">"nsh_namespace"</span> ) : <span class="jxr_string">""</span> );
+<a name="73" href="#73">73</a>  
+<a name="74" href="#74">74</a>          Set&lt;String&gt; headers = Create.set();
+<a name="75" href="#75">75</a>  
+<a name="76" href="#76">76</a>          String bpHeader = analyzer.getProperty( <span class="jxr_string">"Bundle-Blueprint"</span>, <span class="jxr_string">"OSGI-INF/blueprint"</span> );
+<a name="77" href="#77">77</a>          Map&lt;String, Map&lt;String, String&gt;&gt; map = Processor.parseHeader( bpHeader, <strong class="jxr_keyword">null</strong> );
+<a name="78" href="#78">78</a>          <strong class="jxr_keyword">for</strong> ( String root : map.keySet() )
+<a name="79" href="#79">79</a>          {
+<a name="80" href="#80">80</a>              Jar jar = analyzer.getJar();
+<a name="81" href="#81">81</a>              Map&lt;String, Resource&gt; dir = jar.getDirectories().get( root );
+<a name="82" href="#82">82</a>              <strong class="jxr_keyword">if</strong> ( dir == <strong class="jxr_keyword">null</strong> || dir.isEmpty() )
+<a name="83" href="#83">83</a>              {
+<a name="84" href="#84">84</a>                  Resource resource = jar.getResource( root );
+<a name="85" href="#85">85</a>                  <strong class="jxr_keyword">if</strong> ( resource != <strong class="jxr_keyword">null</strong> )
+<a name="86" href="#86">86</a>                      process( analyzer, root, resource, headers );
+<a name="87" href="#87">87</a>                  <strong class="jxr_keyword">return</strong> false;
+<a name="88" href="#88">88</a>              }
+<a name="89" href="#89">89</a>              <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, Resource&gt; entry : dir.entrySet() )
+<a name="90" href="#90">90</a>              {
+<a name="91" href="#91">91</a>                  String path = entry.getKey();
+<a name="92" href="#92">92</a>                  Resource resource = entry.getValue();
+<a name="93" href="#93">93</a>                  <strong class="jxr_keyword">if</strong> ( PATHS.matcher( path ).matches() )
+<a name="94" href="#94">94</a>                      process( analyzer, path, resource, headers );
+<a name="95" href="#95">95</a>              }
+<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>          <em class="jxr_comment">// Group and analyze</em>
+<a name="100" href="#100">100</a>         Map&lt;String, Set&lt;Attribute&gt;&gt; hdrs = Create.map();
+<a name="101" href="#101">101</a>         <strong class="jxr_keyword">for</strong> ( String str : headers )
+<a name="102" href="#102">102</a>         {
+<a name="103" href="#103">103</a>             <strong class="jxr_keyword">int</strong> idx = str.indexOf( ':' );
+<a name="104" href="#104">104</a>             <strong class="jxr_keyword">if</strong> ( idx &lt; 0 )
+<a name="105" href="#105">105</a>             {
+<a name="106" href="#106">106</a>                 analyzer.warning( ( <strong class="jxr_keyword">new</strong> StringBuilder( <span class="jxr_string">"Error analyzing services in blueprint resource: "</span> ) ).append(
+<a name="107" href="#107">107</a>                     str ).toString() );
+<a name="108" href="#108">108</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="109" href="#109">109</a>             }
+<a name="110" href="#110">110</a>             String h = str.substring( 0, idx ).trim();
+<a name="111" href="#111">111</a>             String v = str.substring( idx + 1 ).trim();
+<a name="112" href="#112">112</a>             Set&lt;Attribute&gt; att = hdrs.get( h );
+<a name="113" href="#113">113</a>             <strong class="jxr_keyword">if</strong> ( att == <strong class="jxr_keyword">null</strong> )
+<a name="114" href="#114">114</a>             {
+<a name="115" href="#115">115</a>                 att = <strong class="jxr_keyword">new</strong> TreeSet&lt;Attribute&gt;();
+<a name="116" href="#116">116</a>                 hdrs.put( h, att );
+<a name="117" href="#117">117</a>             }
+<a name="118" href="#118">118</a>             att.addAll( parseHeader( v, <strong class="jxr_keyword">null</strong> ) );
+<a name="119" href="#119">119</a>         }
+<a name="120" href="#120">120</a>         <em class="jxr_comment">// Merge</em>
+<a name="121" href="#121">121</a>         <strong class="jxr_keyword">for</strong> ( String header : hdrs.keySet() )
+<a name="122" href="#122">122</a>         {
+<a name="123" href="#123">123</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"Import-Class"</span>.equals( header ) || <span class="jxr_string">"Import-Package"</span>.equals( header ) )
+<a name="124" href="#124">124</a>             {
+<a name="125" href="#125">125</a>                 Set&lt;Attribute&gt; newAttr = hdrs.get( header );
+<a name="126" href="#126">126</a>                 <strong class="jxr_keyword">for</strong> ( Attribute a : newAttr )
+<a name="127" href="#127">127</a>                 {
+<a name="128" href="#128">128</a>                     String pkg = a.getName();
+<a name="129" href="#129">129</a>                     <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"Import-Class"</span>.equals( header ) )
+<a name="130" href="#130">130</a>                     {
+<a name="131" href="#131">131</a>                         <strong class="jxr_keyword">int</strong> n = a.getName().lastIndexOf( '.' );
+<a name="132" href="#132">132</a>                         <strong class="jxr_keyword">if</strong> ( n &gt; 0 )
+<a name="133" href="#133">133</a>                         {
+<a name="134" href="#134">134</a>                             pkg = pkg.subSequence( 0, n ).toString();
+<a name="135" href="#135">135</a>                         }
+<a name="136" href="#136">136</a>                         <strong class="jxr_keyword">else</strong>
+<a name="137" href="#137">137</a>                         {
+<a name="138" href="#138">138</a>                             <strong class="jxr_keyword">continue</strong>;
+<a name="139" href="#139">139</a>                         }
+<a name="140" href="#140">140</a>                     }
+<a name="141" href="#141">141</a>                     <strong class="jxr_keyword">if</strong> ( !analyzer.getReferred().containsKey( pkg ) )
+<a name="142" href="#142">142</a>                     {
+<a name="143" href="#143">143</a>                         analyzer.getReferred().put( pkg, a.getProperties() );
+<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>
+<a name="148" href="#148">148</a>             {
+<a name="149" href="#149">149</a>                 Set&lt;Attribute&gt; orgAttr = parseHeader( analyzer.getProperty( header ), <strong class="jxr_keyword">null</strong> );
+<a name="150" href="#150">150</a>                 Set&lt;Attribute&gt; newAttr = hdrs.get( header );
+<a name="151" href="#151">151</a>                 <strong class="jxr_keyword">for</strong> ( Iterator&lt;Attribute&gt; it = newAttr.iterator(); it.hasNext(); )
+<a name="152" href="#152">152</a>                 {
+<a name="153" href="#153">153</a>                     <a href="../../../../org/apache/felix/bundleplugin/BlueprintPlugin.html">Attribute</a> a = it.next();
+<a name="154" href="#154">154</a>                     <strong class="jxr_keyword">for</strong> ( Attribute b : orgAttr )
+<a name="155" href="#155">155</a>                     {
+<a name="156" href="#156">156</a>                         <strong class="jxr_keyword">if</strong> ( b.getName().equals( a.getName() ) )
+<a name="157" href="#157">157</a>                         {
+<a name="158" href="#158">158</a>                             it.remove();
+<a name="159" href="#159">159</a>                             <strong class="jxr_keyword">break</strong>;
+<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>                 orgAttr.addAll( newAttr );
+<a name="164" href="#164">164</a>                 <em class="jxr_comment">// Rebuild from orgAttr</em>
+<a name="165" href="#165">165</a>                 StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a name="166" href="#166">166</a>                 <strong class="jxr_keyword">for</strong> ( Attribute a : orgAttr )
+<a name="167" href="#167">167</a>                 {
+<a name="168" href="#168">168</a>                     <strong class="jxr_keyword">if</strong> ( sb.length() &gt; 0 )
+<a name="169" href="#169">169</a>                     {
+<a name="170" href="#170">170</a>                         sb.append( <span class="jxr_string">","</span> );
+<a name="171" href="#171">171</a>                     }
+<a name="172" href="#172">172</a>                     sb.append( a.getName() );
+<a name="173" href="#173">173</a>                     <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, String&gt; prop : a.getProperties().entrySet() )
+<a name="174" href="#174">174</a>                     {
+<a name="175" href="#175">175</a>                         sb.append( ';' ).append( prop.getKey() ).append( <span class="jxr_string">"="</span> );
+<a name="176" href="#176">176</a>                         <strong class="jxr_keyword">if</strong> ( prop.getValue().matches( <span class="jxr_string">"[0-9a-zA-Z_-]+"</span> ) )
+<a name="177" href="#177">177</a>                         {
+<a name="178" href="#178">178</a>                             sb.append( prop.getValue() );
+<a name="179" href="#179">179</a>                         }
+<a name="180" href="#180">180</a>                         <strong class="jxr_keyword">else</strong>
+<a name="181" href="#181">181</a>                         {
+<a name="182" href="#182">182</a>                             sb.append( <span class="jxr_string">"\&quot;"</span> );
+<a name="183" href="#183">183</a>                             sb.append( prop.getValue().replace( <span class="jxr_string">"\&quot;"</span>, <span class="jxr_string">"&#92;&#92;\&quot;"</span> ) );
+<a name="184" href="#184">184</a>                             sb.append( <span class="jxr_string">"\&quot;"</span> );
+<a name="185" href="#185">185</a>                         }
+<a name="186" href="#186">186</a>                     }
+<a name="187" href="#187">187</a>                 }
+<a name="188" href="#188">188</a>                 analyzer.setProperty( header, sb.toString() );
+<a name="189" href="#189">189</a>             }
+<a name="190" href="#190">190</a>         }
+<a name="191" href="#191">191</a>         <strong class="jxr_keyword">return</strong> false;
+<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">private</strong> <strong class="jxr_keyword">void</strong> process( Analyzer analyzer, String path, Resource resource, Set&lt;String&gt; headers )
+<a name="196" href="#196">196</a>     {
+<a name="197" href="#197">197</a>         InputStream in = <strong class="jxr_keyword">null</strong>;
+<a name="198" href="#198">198</a>         <strong class="jxr_keyword">try</strong>
+<a name="199" href="#199">199</a>         {
+<a name="200" href="#200">200</a>             in = resource.openInputStream();
+<a name="201" href="#201">201</a> 
+<a name="202" href="#202">202</a>             <em class="jxr_comment">// Retrieve headers</em>
+<a name="203" href="#203">203</a>             Set&lt;String&gt; set = analyze( in );
+<a name="204" href="#204">204</a>             headers.addAll( set );
+<a name="205" href="#205">205</a>         }
+<a name="206" href="#206">206</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="207" href="#207">207</a>         {
+<a name="208" href="#208">208</a>             analyzer.error( ( <strong class="jxr_keyword">new</strong> StringBuilder( <span class="jxr_string">"Unexpected exception in processing spring resources("</span> ) )
+<a name="209" href="#209">209</a>                 .append( path ).append( <span class="jxr_string">"): "</span> ).append( e ).toString() );
+<a name="210" href="#210">210</a>         }
+<a name="211" href="#211">211</a>         <strong class="jxr_keyword">finally</strong>
+<a name="212" href="#212">212</a>         {
+<a name="213" href="#213">213</a>             <strong class="jxr_keyword">try</strong>
+<a name="214" href="#214">214</a>             {
+<a name="215" href="#215">215</a>                 <strong class="jxr_keyword">if</strong> ( in != <strong class="jxr_keyword">null</strong> )
+<a name="216" href="#216">216</a>                 {
+<a name="217" href="#217">217</a>                     in.close();
+<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">catch</strong> ( IOException e )
+<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>     }
+<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">public</strong> Set&lt;String&gt; analyze( InputStream in ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="228" href="#228">228</a>     {
+<a name="229" href="#229">229</a>         Set&lt;String&gt; refers = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;();
+<a name="230" href="#230">230</a>         ByteArrayOutputStream bout = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
+<a name="231" href="#231">231</a>         javax.xml.transform.Result r = <strong class="jxr_keyword">new</strong> StreamResult( bout );
+<a name="232" href="#232">232</a>         javax.xml.transform.Source s = <strong class="jxr_keyword">new</strong> StreamSource( in );
+<a name="233" href="#233">233</a>         transformer.transform( s, r );
+<a name="234" href="#234">234</a>         ByteArrayInputStream bin = <strong class="jxr_keyword">new</strong> ByteArrayInputStream( bout.toByteArray() );
+<a name="235" href="#235">235</a>         bout.close();
+<a name="236" href="#236">236</a>         BufferedReader br = <strong class="jxr_keyword">new</strong> BufferedReader( <strong class="jxr_keyword">new</strong> InputStreamReader( bin ) );
+<a name="237" href="#237">237</a>         <strong class="jxr_keyword">for</strong> ( String line = br.readLine(); line != <strong class="jxr_keyword">null</strong>; line = br.readLine() )
+<a name="238" href="#238">238</a>         {
+<a name="239" href="#239">239</a>             line = line.trim();
+<a name="240" href="#240">240</a>             line = line.replace( <span class="jxr_string">";availability:=mandatory"</span>, <span class="jxr_string">""</span> );
+<a name="241" href="#241">241</a>             <strong class="jxr_keyword">if</strong> ( line.length() &gt; 0 )
+<a name="242" href="#242">242</a>             {
+<a name="243" href="#243">243</a>                 refers.add( line );
+<a name="244" href="#244">244</a>             }
+<a name="245" href="#245">245</a>         }
+<a name="246" href="#246">246</a> 
+<a name="247" href="#247">247</a>         br.close();
+<a name="248" href="#248">248</a>         <strong class="jxr_keyword">return</strong> refers;
+<a name="249" href="#249">249</a>     }
+<a name="250" href="#250">250</a> 
+<a name="251" href="#251">251</a> 
+<a name="252" href="#252">252</a>     <strong class="jxr_keyword">protected</strong> Transformer getTransformer( URL url ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="253" href="#253">253</a>     {
+<a name="254" href="#254">254</a>         TransformerFactory tf = TransformerFactory.newInstance();
+<a name="255" href="#255">255</a>         javax.xml.transform.Source source = <strong class="jxr_keyword">new</strong> StreamSource( url.openStream() );
+<a name="256" href="#256">256</a>         <strong class="jxr_keyword">return</strong> tf.newTransformer( source );
+<a name="257" href="#257">257</a>     }
+<a name="258" href="#258">258</a> 
+<a name="259" href="#259">259</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/BlueprintPlugin.html">Attribute</a> implements Comparable&lt;Attribute&gt;
+<a name="260" href="#260">260</a>     {
+<a name="261" href="#261">261</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> String name;
+<a name="262" href="#262">262</a>         <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;String, String&gt; properties;
+<a name="263" href="#263">263</a> 
+<a name="264" href="#264">264</a> 
+<a name="265" href="#265">265</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/BlueprintPlugin.html">Attribute</a>( String name, Map&lt;String, String&gt; properties )
+<a name="266" href="#266">266</a>         {
+<a name="267" href="#267">267</a>             <strong class="jxr_keyword">this</strong>.name = name;
+<a name="268" href="#268">268</a>             <strong class="jxr_keyword">this</strong>.properties = properties;
+<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>         <strong class="jxr_keyword">public</strong> String getName()
+<a name="273" href="#273">273</a>         {
+<a name="274" href="#274">274</a>             <strong class="jxr_keyword">return</strong> name;
+<a name="275" href="#275">275</a>         }
+<a name="276" href="#276">276</a> 
+<a name="277" href="#277">277</a> 
+<a name="278" href="#278">278</a>         <strong class="jxr_keyword">public</strong> Map&lt;String, String&gt; getProperties()
+<a name="279" href="#279">279</a>         {
+<a name="280" href="#280">280</a>             <strong class="jxr_keyword">return</strong> properties;
+<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>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> compareTo( Attribute a )
+<a name="285" href="#285">285</a>         {
+<a name="286" href="#286">286</a>             <strong class="jxr_keyword">int</strong> c = name.compareTo( a.name );
+<a name="287" href="#287">287</a>             <strong class="jxr_keyword">if</strong> ( c == 0 )
+<a name="288" href="#288">288</a>             {
+<a name="289" href="#289">289</a>                 c = properties.equals( a.properties ) ? 0 : properties.size() &lt; a.properties.size() ? -1 : properties
+<a name="290" href="#290">290</a>                     .hashCode() &lt; a.properties.hashCode() ? -1 : +1;
+<a name="291" href="#291">291</a>             }
+<a name="292" href="#292">292</a>             <strong class="jxr_keyword">return</strong> c;
+<a name="293" href="#293">293</a>         }
+<a name="294" href="#294">294</a> 
+<a name="295" href="#295">295</a> 
+<a name="296" href="#296">296</a>         @Override
+<a name="297" href="#297">297</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> equals( Object o )
+<a name="298" href="#298">298</a>         {
+<a name="299" href="#299">299</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">this</strong> == o )
+<a name="300" href="#300">300</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
+<a name="301" href="#301">301</a>             <strong class="jxr_keyword">if</strong> ( o == <strong class="jxr_keyword">null</strong> || getClass() != o.getClass() )
+<a name="302" href="#302">302</a>                 <strong class="jxr_keyword">return</strong> false;
+<a name="303" href="#303">303</a> 
+<a name="304" href="#304">304</a>             <a href="../../../../org/apache/felix/bundleplugin/BlueprintPlugin.html">Attribute</a> attribute = ( Attribute ) o;
+<a name="305" href="#305">305</a> 
+<a name="306" href="#306">306</a>             <strong class="jxr_keyword">if</strong> ( name != <strong class="jxr_keyword">null</strong> ? !name.equals( attribute.name ) : attribute.name != <strong class="jxr_keyword">null</strong> )
+<a name="307" href="#307">307</a>                 <strong class="jxr_keyword">return</strong> false;
+<a name="308" href="#308">308</a>             <strong class="jxr_keyword">if</strong> ( properties != <strong class="jxr_keyword">null</strong> ? !properties.equals( attribute.properties ) : attribute.properties != <strong class="jxr_keyword">null</strong> )
+<a name="309" href="#309">309</a>                 <strong class="jxr_keyword">return</strong> false;
+<a name="310" href="#310">310</a> 
+<a name="311" href="#311">311</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
+<a name="312" href="#312">312</a>         }
+<a name="313" href="#313">313</a> 
+<a name="314" href="#314">314</a> 
+<a name="315" href="#315">315</a>         @Override
+<a name="316" href="#316">316</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> hashCode()
+<a name="317" href="#317">317</a>         {
+<a name="318" href="#318">318</a>             <strong class="jxr_keyword">int</strong> result = name != <strong class="jxr_keyword">null</strong> ? name.hashCode() : 0;
+<a name="319" href="#319">319</a>             result = 31 * result + ( properties != <strong class="jxr_keyword">null</strong> ? properties.hashCode() : 0 );
+<a name="320" href="#320">320</a>             <strong class="jxr_keyword">return</strong> result;
+<a name="321" href="#321">321</a>         }
+<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>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Set&lt;Attribute&gt; parseHeader( String value, Reporter logger )
+<a name="326" href="#326">326</a>     {
+<a name="327" href="#327">327</a>         <strong class="jxr_keyword">if</strong> ( ( value == <strong class="jxr_keyword">null</strong> ) || ( value.trim().length() == 0 ) )
+<a name="328" href="#328">328</a>         {
+<a name="329" href="#329">329</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> TreeSet&lt;Attribute&gt;();
+<a name="330" href="#330">330</a>         }
+<a name="331" href="#331">331</a>         Set&lt;Attribute&gt; result = <strong class="jxr_keyword">new</strong> TreeSet&lt;Attribute&gt;();
+<a name="332" href="#332">332</a>         QuotedTokenizer qt = <strong class="jxr_keyword">new</strong> QuotedTokenizer( value, <span class="jxr_string">";=,"</span> );
+<a name="333" href="#333">333</a>         <strong class="jxr_keyword">char</strong> del = '\0';
+<a name="334" href="#334">334</a>         <strong class="jxr_keyword">do</strong>
+<a name="335" href="#335">335</a>         {
+<a name="336" href="#336">336</a>             <strong class="jxr_keyword">boolean</strong> hadAttribute = false;
+<a name="337" href="#337">337</a>             Map&lt;String, String&gt; clause = Create.map();
+<a name="338" href="#338">338</a>             List&lt;String&gt; aliases = Create.list();
+<a name="339" href="#339">339</a>             String name = qt.nextToken( <span class="jxr_string">",;"</span> );
+<a name="340" href="#340">340</a> 
+<a name="341" href="#341">341</a>             del = qt.getSeparator();
+<a name="342" href="#342">342</a>             <strong class="jxr_keyword">if</strong> ( ( name == <strong class="jxr_keyword">null</strong> ) || ( name.length() == 0 ) )
+<a name="343" href="#343">343</a>             {
+<a name="344" href="#344">344</a>                 <strong class="jxr_keyword">if</strong> ( ( logger != <strong class="jxr_keyword">null</strong> ) &amp;&amp; ( logger.isPedantic() ) )
+<a name="345" href="#345">345</a>                 {
+<a name="346" href="#346">346</a>                     logger
+<a name="347" href="#347">347</a>                         .warning( <span class="jxr_string">"Empty clause, usually caused by repeating a comma without any name field or by having "</span>
+<a name="348" href="#348">348</a>                             + <span class="jxr_string">"spaces after the backslash of a property file: "</span> + value );
+<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> ( name != <strong class="jxr_keyword">null</strong> )
+<a name="352" href="#352">352</a>                     <strong class="jxr_keyword">continue</strong>;
+<a name="353" href="#353">353</a>                 <strong class="jxr_keyword">break</strong>;
+<a name="354" href="#354">354</a>             }
+<a name="355" href="#355">355</a>             name = name.trim();
+<a name="356" href="#356">356</a> 
+<a name="357" href="#357">357</a>             aliases.add( name );
+<a name="358" href="#358">358</a>             String advalue;
+<a name="359" href="#359">359</a>             <strong class="jxr_keyword">while</strong> ( del == ';' )
+<a name="360" href="#360">360</a>             {
+<a name="361" href="#361">361</a>                 String adname = qt.nextToken();
+<a name="362" href="#362">362</a>                 <strong class="jxr_keyword">if</strong> ( ( del = qt.getSeparator() ) != '=' )
+<a name="363" href="#363">363</a>                 {
+<a name="364" href="#364">364</a>                     <strong class="jxr_keyword">if</strong> ( ( hadAttribute ) &amp;&amp; ( logger != <strong class="jxr_keyword">null</strong> ) )
+<a name="365" href="#365">365</a>                     {
+<a name="366" href="#366">366</a>                         logger.error( <span class="jxr_string">"Header contains name field after attribute or directive: "</span> + adname + <span class="jxr_string">" from "</span>
+<a name="367" href="#367">367</a>                             + value + <span class="jxr_string">". Name fields must be consecutive, separated by a ';' like a;b;c;x=3;y=4"</span> );
+<a name="368" href="#368">368</a>                     }
+<a name="369" href="#369">369</a> 
+<a name="370" href="#370">370</a>                     <strong class="jxr_keyword">if</strong> ( ( adname != <strong class="jxr_keyword">null</strong> ) &amp;&amp; ( adname.length() &gt; 0 ) )
+<a name="371" href="#371">371</a>                         aliases.add( adname.trim() );
+<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>                     advalue = qt.nextToken();
+<a name="376" href="#376">376</a>                     <strong class="jxr_keyword">if</strong> ( ( clause.containsKey( adname ) ) &amp;&amp; ( logger != <strong class="jxr_keyword">null</strong> ) &amp;&amp; ( logger.isPedantic() ) )
+<a name="377" href="#377">377</a>                     {
+<a name="378" href="#378">378</a>                         logger.warning( <span class="jxr_string">"Duplicate attribute/directive name "</span> + adname + <span class="jxr_string">" in "</span> + value
+<a name="379" href="#379">379</a>                             + <span class="jxr_string">". This attribute/directive will be ignored"</span> );
+<a name="380" href="#380">380</a>                     }
+<a name="381" href="#381">381</a> 
+<a name="382" href="#382">382</a>                     <strong class="jxr_keyword">if</strong> ( advalue == <strong class="jxr_keyword">null</strong> )
+<a name="383" href="#383">383</a>                     {
+<a name="384" href="#384">384</a>                         <strong class="jxr_keyword">if</strong> ( logger != <strong class="jxr_keyword">null</strong> )
+<a name="385" href="#385">385</a>                         {
+<a name="386" href="#386">386</a>                             logger.error( <span class="jxr_string">"No value after '=' sign for attribute "</span> + adname );
+<a name="387" href="#387">387</a>                         }
+<a name="388" href="#388">388</a>                         advalue = <span class="jxr_string">""</span>;
+<a name="389" href="#389">389</a>                     }
+<a name="390" href="#390">390</a>                     clause.put( adname.trim(), advalue.trim() );
+<a name="391" href="#391">391</a>                     del = qt.getSeparator();
+<a name="392" href="#392">392</a>                     hadAttribute = <strong class="jxr_keyword">true</strong>;
+<a name="393" href="#393">393</a>                 }
+<a name="394" href="#394">394</a>             }
+<a name="395" href="#395">395</a> 
+<a name="396" href="#396">396</a>             <strong class="jxr_keyword">for</strong> ( String clauseName : aliases )
+<a name="397" href="#397">397</a>             {
+<a name="398" href="#398">398</a>                 result.add( <strong class="jxr_keyword">new</strong> Attribute( clauseName, clause ) );
+<a name="399" href="#399">399</a>             }
+<a name="400" href="#400">400</a>         }
+<a name="401" href="#401">401</a>         <strong class="jxr_keyword">while</strong> ( del == ',' );
+<a name="402" href="#402">402</a>         <strong class="jxr_keyword">return</strong> result;
+<a name="403" href="#403">403</a>     }
+<a name="404" href="#404">404</a> 
+<a name="405" href="#405">405</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
new file mode 100644
index 0000000..4133b19
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundleAllPlugin.html
@@ -0,0 +1,616 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>BundleAllPlugin xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.FilenameFilter;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Manifest;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Matcher;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Pattern;
+<a name="36" href="#36">36</a>  
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.factory.ArtifactFactory;
+<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.metadata.ArtifactMetadataSource;
+<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.repository.ArtifactRepository;
+<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.resolver.ArtifactCollector;
+<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.resolver.ArtifactNotFoundException;
+<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.resolver.ArtifactResolutionException;
+<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.resolver.ArtifactResolver;
+<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.versioning.VersionRange;
+<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProjectBuilder;
+<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.ProjectBuildingException;
+<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.artifact.InvalidDependencyVersionException;
+<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.dependency.tree.DependencyNode;
+<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.dependency.tree.DependencyTreeBuilder;
+<a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException;
+<a name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.FileUtils;
+<a name="55" href="#55">55</a>  
+<a name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
+<a name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
+<a name="58" href="#58">58</a>  
+<a name="59" href="#59">59</a>  
+<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment"> * Create OSGi bundles from all dependencies in the Maven project</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment"> * @goal bundleall</em>
+<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment"> * @phase package</em>
+<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment"> * @requiresDependencyResolution test</em>
+<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment"> * @description build an OSGi bundle jar for all transitive dependencies</em>
+<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment"> * @deprecated The bundleall goal is no longer supported and may be removed in a future release</em>
+<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="69" href="#69">69</a>  @Deprecated
+<a name="70" href="#70">70</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleAllPlugin.html">BundleAllPlugin</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/ManifestPlugin.html">ManifestPlugin</a>
+<a name="71" href="#71">71</a>  {
+<a name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LS = System.getProperty( <span class="jxr_string">"line.separator"</span> );
+<a name="73" href="#73">73</a>  
+<a name="74" href="#74">74</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Pattern SNAPSHOT_VERSION_PATTERN = Pattern.compile( <span class="jxr_string">"[0-9]{8}_[0-9]{6}_[0-9]+"</span> );
+<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">     * Local repository.</em>
+<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     * @parameter expression="${localRepository}"</em>
+<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     * @readonly</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> ArtifactRepository localRepository;
+<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">     * Remote repositories.</em>
+<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     * @parameter expression="${project.remoteArtifactRepositories}"</em>
+<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="92" href="#92">92</a>      <strong class="jxr_keyword">private</strong> List remoteRepositories;
+<a name="93" href="#93">93</a>  
+<a name="94" href="#94">94</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     * Import-Package to be used when wrapping dependencies.</em>
+<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     * @parameter expression="${wrapImportPackage}" default-value="*"</em>
+<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="99" href="#99">99</a>      <strong class="jxr_keyword">private</strong> String wrapImportPackage;
+<a name="100" href="#100">100</a> 
+<a name="101" href="#101">101</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     */</em>
+<a name="104" href="#104">104</a>     <strong class="jxr_keyword">private</strong> ArtifactFactory m_factory;
+<a name="105" href="#105">105</a> 
+<a name="106" href="#106">106</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     */</em>
+<a name="109" href="#109">109</a>     <strong class="jxr_keyword">private</strong> ArtifactMetadataSource m_artifactMetadataSource;
+<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">     * @component</em>
+<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">     */</em>
+<a name="114" href="#114">114</a>     <strong class="jxr_keyword">private</strong> ArtifactCollector m_collector;
+<a name="115" href="#115">115</a> 
+<a name="116" href="#116">116</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="117" href="#117">117</a> <em class="jxr_javadoccomment">     * Artifact resolver, needed to download jars.</em>
+<a name="118" href="#118">118</a> <em class="jxr_javadoccomment">     * </em>
+<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     */</em>
+<a name="121" href="#121">121</a>     <strong class="jxr_keyword">private</strong> ArtifactResolver m_artifactResolver;
+<a name="122" href="#122">122</a> 
+<a name="123" href="#123">123</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="124" href="#124">124</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="125" href="#125">125</a> <em class="jxr_javadoccomment">     */</em>
+<a name="126" href="#126">126</a>     <strong class="jxr_keyword">private</strong> DependencyTreeBuilder m_dependencyTreeBuilder;
+<a name="127" href="#127">127</a> 
+<a name="128" href="#128">128</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="130" href="#130">130</a> <em class="jxr_javadoccomment">     */</em>
+<a name="131" href="#131">131</a>     <strong class="jxr_keyword">private</strong> MavenProjectBuilder m_mavenProjectBuilder;
+<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">     * Ignore missing artifacts that are not required by current project but are required by the</em>
+<a name="135" href="#135">135</a> <em class="jxr_javadoccomment">     * transitive dependencies.</em>
+<a name="136" href="#136">136</a> <em class="jxr_javadoccomment">     * </em>
+<a name="137" href="#137">137</a> <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="138" href="#138">138</a> <em class="jxr_javadoccomment">     */</em>
+<a name="139" href="#139">139</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> ignoreMissingArtifacts;
+<a name="140" href="#140">140</a> 
+<a name="141" href="#141">141</a>     <strong class="jxr_keyword">private</strong> Set m_artifactsBeingProcessed = <strong class="jxr_keyword">new</strong> HashSet();
+<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">     * Process up to some depth </em>
+<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * </em>
+<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="147" href="#147">147</a> <em class="jxr_javadoccomment">     */</em>
+<a name="148" href="#148">148</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> depth = Integer.MAX_VALUE;
+<a name="149" href="#149">149</a> 
+<a name="150" href="#150">150</a> 
+<a name="151" href="#151">151</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="152" href="#152">152</a>     {
+<a name="153" href="#153">153</a>         getLog().warn( <span class="jxr_string">"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"</span> );
+<a name="154" href="#154">154</a>         getLog().warn( <span class="jxr_string">"! The bundleall goal is no longer supported and may be removed in a future release !"</span> );
+<a name="155" href="#155">155</a>         getLog().warn( <span class="jxr_string">"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"</span> );
+<a name="156" href="#156">156</a> 
+<a name="157" href="#157">157</a>         <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> bundleInfo = bundleAll( getProject() );
+<a name="158" href="#158">158</a>         logDuplicatedPackages( bundleInfo );
+<a name="159" href="#159">159</a>     }
+<a name="160" href="#160">160</a> 
+<a name="161" href="#161">161</a> 
+<a name="162" href="#162">162</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="163" href="#163">163</a> <em class="jxr_javadoccomment">     * Bundle a project and all its dependencies</em>
+<a name="164" href="#164">164</a> <em class="jxr_javadoccomment">     * </em>
+<a name="165" href="#165">165</a> <em class="jxr_javadoccomment">     * @param project</em>
+<a name="166" href="#166">166</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException</em>
+<a name="167" href="#167">167</a> <em class="jxr_javadoccomment">     */</em>
+<a name="168" href="#168">168</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> bundleAll( MavenProject project ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="169" href="#169">169</a>     {
+<a name="170" href="#170">170</a>         <strong class="jxr_keyword">return</strong> bundleAll( project, depth );
+<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>     <em class="jxr_javadoccomment">/**</em>
+<a name="175" href="#175">175</a> <em class="jxr_javadoccomment">     * Bundle a project and its transitive dependencies up to some depth level</em>
+<a name="176" href="#176">176</a> <em class="jxr_javadoccomment">     * </em>
+<a name="177" href="#177">177</a> <em class="jxr_javadoccomment">     * @param project</em>
+<a name="178" href="#178">178</a> <em class="jxr_javadoccomment">     * @param maxDepth how deep to process the dependency tree</em>
+<a name="179" href="#179">179</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException</em>
+<a name="180" href="#180">180</a> <em class="jxr_javadoccomment">     */</em>
+<a name="181" href="#181">181</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> bundleAll( MavenProject project, <strong class="jxr_keyword">int</strong> maxDepth ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="182" href="#182">182</a>     {
+<a name="183" href="#183">183</a>         <strong class="jxr_keyword">if</strong> ( alreadyBundled( project.getArtifact() ) )
+<a name="184" href="#184">184</a>         {
+<a name="185" href="#185">185</a>             getLog().debug( <span class="jxr_string">"Ignoring project already processed "</span> + project.getArtifact() );
+<a name="186" href="#186">186</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="187" href="#187">187</a>         }
+<a name="188" href="#188">188</a> 
+<a name="189" href="#189">189</a>         <strong class="jxr_keyword">if</strong> ( m_artifactsBeingProcessed.contains( project.getArtifact() ) )
+<a name="190" href="#190">190</a>         {
+<a name="191" href="#191">191</a>             getLog().warn( <span class="jxr_string">"Ignoring artifact due to dependency cycle "</span> + project.getArtifact() );
+<a name="192" href="#192">192</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="193" href="#193">193</a>         }
+<a name="194" href="#194">194</a>         m_artifactsBeingProcessed.add( project.getArtifact() );
+<a name="195" href="#195">195</a> 
+<a name="196" href="#196">196</a>         DependencyNode dependencyTree;
+<a name="197" href="#197">197</a> 
+<a name="198" href="#198">198</a>         <strong class="jxr_keyword">try</strong>
+<a name="199" href="#199">199</a>         {
+<a name="200" href="#200">200</a>             dependencyTree = m_dependencyTreeBuilder.buildDependencyTree( project, localRepository, m_factory,
+<a name="201" href="#201">201</a>                 m_artifactMetadataSource, <strong class="jxr_keyword">null</strong>, m_collector );
+<a name="202" href="#202">202</a>         }
+<a name="203" href="#203">203</a>         <strong class="jxr_keyword">catch</strong> ( DependencyTreeBuilderException e )
+<a name="204" href="#204">204</a>         {
+<a name="205" href="#205">205</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to build dependency tree"</span>, e );
+<a name="206" href="#206">206</a>         }
+<a name="207" href="#207">207</a> 
+<a name="208" href="#208">208</a>         <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> bundleInfo = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a>();
+<a name="209" href="#209">209</a> 
+<a name="210" href="#210">210</a>         <strong class="jxr_keyword">if</strong> ( !dependencyTree.hasChildren() )
+<a name="211" href="#211">211</a>         {
+<a name="212" href="#212">212</a>             <em class="jxr_comment">/*<em class="jxr_comment"> no need to traverse the tree */</em></em>
+<a name="213" href="#213">213</a>             <strong class="jxr_keyword">return</strong> bundleRoot( project, bundleInfo );
+<a name="214" href="#214">214</a>         }
+<a name="215" href="#215">215</a> 
+<a name="216" href="#216">216</a>         getLog().debug( <span class="jxr_string">"Will bundle the following dependency tree"</span> + LS + dependencyTree );
+<a name="217" href="#217">217</a> 
+<a name="218" href="#218">218</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = dependencyTree.inverseIterator(); it.hasNext(); )
+<a name="219" href="#219">219</a>         {
+<a name="220" href="#220">220</a>             DependencyNode node = ( DependencyNode ) it.next();
+<a name="221" href="#221">221</a>             <strong class="jxr_keyword">if</strong> ( !it.hasNext() )
+<a name="222" href="#222">222</a>             {
+<a name="223" href="#223">223</a>                 <em class="jxr_comment">/*<em class="jxr_comment"> this is the root, current project */</em></em>
+<a name="224" href="#224">224</a>                 <strong class="jxr_keyword">break</strong>;
+<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">if</strong> ( node.getState() != DependencyNode.INCLUDED )
+<a name="228" href="#228">228</a>             {
+<a name="229" href="#229">229</a>                 <strong class="jxr_keyword">continue</strong>;
+<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">if</strong> ( Artifact.SCOPE_SYSTEM.equals( node.getArtifact().getScope() ) )
+<a name="233" href="#233">233</a>             {
+<a name="234" href="#234">234</a>                 getLog().debug( <span class="jxr_string">"Ignoring system scoped artifact "</span> + node.getArtifact() );
+<a name="235" href="#235">235</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="236" href="#236">236</a>             }
+<a name="237" href="#237">237</a> 
+<a name="238" href="#238">238</a>             Artifact artifact;
+<a name="239" href="#239">239</a>             <strong class="jxr_keyword">try</strong>
+<a name="240" href="#240">240</a>             {
+<a name="241" href="#241">241</a>                 artifact = resolveArtifact( node.getArtifact() );
+<a name="242" href="#242">242</a>             }
+<a name="243" href="#243">243</a>             <strong class="jxr_keyword">catch</strong> ( ArtifactNotFoundException e )
+<a name="244" href="#244">244</a>             {
+<a name="245" href="#245">245</a>                 <strong class="jxr_keyword">if</strong> ( ignoreMissingArtifacts )
+<a name="246" href="#246">246</a>                 {
+<a name="247" href="#247">247</a>                     <strong class="jxr_keyword">continue</strong>;
+<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">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Artifact was not found in the repo"</span> + node.getArtifact(), e );
+<a name="251" href="#251">251</a>             }
+<a name="252" href="#252">252</a> 
+<a name="253" href="#253">253</a>             node.getArtifact().setFile( artifact.getFile() );
+<a name="254" href="#254">254</a> 
+<a name="255" href="#255">255</a>             <strong class="jxr_keyword">int</strong> nodeDepth = node.getDepth();
+<a name="256" href="#256">256</a>             <strong class="jxr_keyword">if</strong> ( nodeDepth &gt; maxDepth )
+<a name="257" href="#257">257</a>             {
+<a name="258" href="#258">258</a>                 <em class="jxr_comment">/*<em class="jxr_comment"> node is deeper than we want */</em></em>
+<a name="259" href="#259">259</a>                 getLog().debug(
+<a name="260" href="#260">260</a>                     <span class="jxr_string">"Ignoring "</span> + node.getArtifact() + <span class="jxr_string">", depth is "</span> + nodeDepth + <span class="jxr_string">", bigger than "</span> + maxDepth );
+<a name="261" href="#261">261</a>                 <strong class="jxr_keyword">continue</strong>;
+<a name="262" href="#262">262</a>             }
+<a name="263" href="#263">263</a> 
+<a name="264" href="#264">264</a>             MavenProject childProject;
+<a name="265" href="#265">265</a>             <strong class="jxr_keyword">try</strong>
+<a name="266" href="#266">266</a>             {
+<a name="267" href="#267">267</a>                 childProject = m_mavenProjectBuilder.buildFromRepository( artifact, remoteRepositories,
+<a name="268" href="#268">268</a>                     localRepository, <strong class="jxr_keyword">true</strong> );
+<a name="269" href="#269">269</a>                 <strong class="jxr_keyword">if</strong> ( childProject.getDependencyArtifacts() == <strong class="jxr_keyword">null</strong> )
+<a name="270" href="#270">270</a>                 {
+<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="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="277" href="#277">277</a>             }
+<a name="278" href="#278">278</a>             <strong class="jxr_keyword">catch</strong> ( InvalidDependencyVersionException 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="281" href="#281">281</a>             }
+<a name="282" href="#282">282</a> 
+<a name="283" href="#283">283</a>             childProject.setArtifact( artifact );
+<a name="284" href="#284">284</a>             getLog().debug( <span class="jxr_string">"Child project artifact location: "</span> + childProject.getArtifact().getFile() );
+<a name="285" href="#285">285</a> 
+<a name="286" href="#286">286</a>             <strong class="jxr_keyword">if</strong> ( ( Artifact.SCOPE_COMPILE.equals( artifact.getScope() ) )
+<a name="287" href="#287">287</a>                 || ( Artifact.SCOPE_RUNTIME.equals( artifact.getScope() ) ) )
+<a name="288" href="#288">288</a>             {
+<a name="289" href="#289">289</a>                 <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> subBundleInfo = bundleAll( childProject, maxDepth - 1 );
+<a name="290" href="#290">290</a>                 <strong class="jxr_keyword">if</strong> ( subBundleInfo != <strong class="jxr_keyword">null</strong> )
+<a name="291" href="#291">291</a>                 {
+<a name="292" href="#292">292</a>                     bundleInfo.merge( subBundleInfo );
+<a name="293" href="#293">293</a>                 }
+<a name="294" href="#294">294</a>             }
+<a name="295" href="#295">295</a>             <strong class="jxr_keyword">else</strong>
+<a name="296" href="#296">296</a>             {
+<a name="297" href="#297">297</a>                 getLog().debug(
+<a name="298" href="#298">298</a>                     <span class="jxr_string">"Not processing due to scope ("</span> + childProject.getArtifact().getScope() + <span class="jxr_string">"): "</span>
+<a name="299" href="#299">299</a>                         + childProject.getArtifact() );
+<a name="300" href="#300">300</a>             }
+<a name="301" href="#301">301</a>         }
+<a name="302" href="#302">302</a> 
+<a name="303" href="#303">303</a>         <strong class="jxr_keyword">return</strong> bundleRoot( project, bundleInfo );
+<a name="304" href="#304">304</a>     }
+<a name="305" href="#305">305</a> 
+<a name="306" href="#306">306</a> 
+<a name="307" href="#307">307</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="308" href="#308">308</a> <em class="jxr_javadoccomment">     * Bundle the root of a dependency tree after all its children have been bundled</em>
+<a name="309" href="#309">309</a> <em class="jxr_javadoccomment">     * </em>
+<a name="310" href="#310">310</a> <em class="jxr_javadoccomment">     * @param project</em>
+<a name="311" href="#311">311</a> <em class="jxr_javadoccomment">     * @param bundleInfo</em>
+<a name="312" href="#312">312</a> <em class="jxr_javadoccomment">     * @return</em>
+<a name="313" href="#313">313</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException</em>
+<a name="314" href="#314">314</a> <em class="jxr_javadoccomment">     */</em>
+<a name="315" href="#315">315</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> bundleRoot( MavenProject project, BundleInfo bundleInfo ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="316" href="#316">316</a>     {
+<a name="317" href="#317">317</a>         <em class="jxr_comment">/*<em class="jxr_comment"> do not bundle the project the mojo was called on */</em></em>
+<a name="318" href="#318">318</a>         <strong class="jxr_keyword">if</strong> ( getProject() != project )
+<a name="319" href="#319">319</a>         {
+<a name="320" href="#320">320</a>             getLog().debug( <span class="jxr_string">"Project artifact location: "</span> + project.getArtifact().getFile() );
+<a name="321" href="#321">321</a> 
+<a name="322" href="#322">322</a>             <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> subBundleInfo = bundle( project );
+<a name="323" href="#323">323</a>             <strong class="jxr_keyword">if</strong> ( subBundleInfo != <strong class="jxr_keyword">null</strong> )
+<a name="324" href="#324">324</a>             {
+<a name="325" href="#325">325</a>                 bundleInfo.merge( subBundleInfo );
+<a name="326" href="#326">326</a>             }
+<a name="327" href="#327">327</a>         }
+<a name="328" href="#328">328</a>         <strong class="jxr_keyword">return</strong> bundleInfo;
+<a name="329" href="#329">329</a>     }
+<a name="330" href="#330">330</a> 
+<a name="331" href="#331">331</a> 
+<a name="332" href="#332">332</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="333" href="#333">333</a> <em class="jxr_javadoccomment">     * Bundle one project only without building its childre</em>
+<a name="334" href="#334">334</a> <em class="jxr_javadoccomment">     * </em>
+<a name="335" href="#335">335</a> <em class="jxr_javadoccomment">     * @param project</em>
+<a name="336" href="#336">336</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException</em>
+<a name="337" href="#337">337</a> <em class="jxr_javadoccomment">     */</em>
+<a name="338" href="#338">338</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> bundle( MavenProject project ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="339" href="#339">339</a>     {
+<a name="340" href="#340">340</a>         Artifact artifact = project.getArtifact();
+<a name="341" href="#341">341</a>         getLog().info( <span class="jxr_string">"Bundling "</span> + artifact );
+<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>             Map instructions = <strong class="jxr_keyword">new</strong> LinkedHashMap();
+<a name="346" href="#346">346</a>             instructions.put( Analyzer.IMPORT_PACKAGE, wrapImportPackage );
+<a name="347" href="#347">347</a> 
+<a name="348" href="#348">348</a>             project.getArtifact().setFile( getFile( artifact ) );
+<a name="349" href="#349">349</a>             File outputFile = getOutputFile( artifact );
+<a name="350" href="#350">350</a> 
+<a name="351" href="#351">351</a>             <strong class="jxr_keyword">if</strong> ( project.getArtifact().getFile().equals( outputFile ) )
+<a name="352" href="#352">352</a>             {
+<a name="353" href="#353">353</a>                 <em class="jxr_comment">/*<em class="jxr_comment"> TODO find the cause why it's getting here */</em></em>
+<a name="354" href="#354">354</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="355" href="#355">355</a>                 <em class="jxr_comment">//                getLog().error(</em>
+<a name="356" href="#356">356</a>                 <em class="jxr_comment">//                                "Trying to read and write " + artifact + " to the same file, try cleaning: "</em>
+<a name="357" href="#357">357</a>                 <em class="jxr_comment">//                                    + outputFile );</em>
+<a name="358" href="#358">358</a>                 <em class="jxr_comment">//                throw new IllegalStateException( "Trying to read and write " + artifact</em>
+<a name="359" href="#359">359</a>                 <em class="jxr_comment">//                    + " to the same file, try cleaning: " + outputFile );</em>
+<a name="360" href="#360">360</a>             }
+<a name="361" href="#361">361</a> 
+<a name="362" href="#362">362</a>             Analyzer analyzer = getAnalyzer( project, instructions, <strong class="jxr_keyword">new</strong> Properties(), getClasspath( project ) );
+<a name="363" href="#363">363</a> 
+<a name="364" href="#364">364</a>             Jar osgiJar = <strong class="jxr_keyword">new</strong> Jar( project.getArtifactId(), project.getArtifact().getFile() );
+<a name="365" href="#365">365</a> 
+<a name="366" href="#366">366</a>             outputFile.getAbsoluteFile().getParentFile().mkdirs();
+<a name="367" href="#367">367</a> 
+<a name="368" href="#368">368</a>             Collection exportedPackages;
+<a name="369" href="#369">369</a>             <strong class="jxr_keyword">if</strong> ( isOsgi( osgiJar ) )
+<a name="370" href="#370">370</a>             {
+<a name="371" href="#371">371</a>                 <em class="jxr_comment">/*<em class="jxr_comment"> if it is already an OSGi jar copy it as is */</em></em>
+<a name="372" href="#372">372</a>                 getLog().info(
+<a name="373" href="#373">373</a>                     <span class="jxr_string">"Using existing OSGi bundle for "</span> + project.getGroupId() + <span class="jxr_string">":"</span> + project.getArtifactId() + <span class="jxr_string">":"</span>
+<a name="374" href="#374">374</a>                         + project.getVersion() );
+<a name="375" href="#375">375</a>                 String exportHeader = osgiJar.getManifest().getMainAttributes().getValue( Analyzer.EXPORT_PACKAGE );
+<a name="376" href="#376">376</a>                 exportedPackages = analyzer.parseHeader( exportHeader ).keySet();
+<a name="377" href="#377">377</a>                 FileUtils.copyFile( project.getArtifact().getFile(), outputFile );
+<a name="378" href="#378">378</a>             }
+<a name="379" href="#379">379</a>             <strong class="jxr_keyword">else</strong>
+<a name="380" href="#380">380</a>             {
+<a name="381" href="#381">381</a>                 <em class="jxr_comment">/*<em class="jxr_comment"> else generate the manifest from the packages */</em></em>
+<a name="382" href="#382">382</a>                 exportedPackages = analyzer.getExports().keySet();
+<a name="383" href="#383">383</a>                 Manifest manifest = analyzer.getJar().getManifest();
+<a name="384" href="#384">384</a>                 osgiJar.setManifest( manifest );
+<a name="385" href="#385">385</a>                 osgiJar.write( outputFile );
+<a name="386" href="#386">386</a>             }
+<a name="387" href="#387">387</a> 
+<a name="388" href="#388">388</a>             <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> bundleInfo = addExportedPackages( project, exportedPackages );
+<a name="389" href="#389">389</a> 
+<a name="390" href="#390">390</a>             <em class="jxr_comment">// cleanup...</em>
+<a name="391" href="#391">391</a>             analyzer.close();
+<a name="392" href="#392">392</a>             osgiJar.close();
+<a name="393" href="#393">393</a> 
+<a name="394" href="#394">394</a>             <strong class="jxr_keyword">return</strong> bundleInfo;
+<a name="395" href="#395">395</a>         }
+<a name="396" href="#396">396</a>         <em class="jxr_comment">/*<em class="jxr_comment"> too bad Jar.write throws Exception */</em></em>
+<a name="397" href="#397">397</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="398" href="#398">398</a>         {
+<a name="399" href="#399">399</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error generating OSGi bundle for project "</span>
+<a name="400" href="#400">400</a>                 + getArtifactKey( project.getArtifact() ), e );
+<a name="401" href="#401">401</a>         }
+<a name="402" href="#402">402</a>     }
+<a name="403" href="#403">403</a> 
+<a name="404" href="#404">404</a> 
+<a name="405" href="#405">405</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> isOsgi( Jar jar ) <strong class="jxr_keyword">throws</strong> Exception
+<a name="406" href="#406">406</a>     {
+<a name="407" href="#407">407</a>         <strong class="jxr_keyword">if</strong> ( jar.getManifest() != <strong class="jxr_keyword">null</strong> )
+<a name="408" href="#408">408</a>         {
+<a name="409" href="#409">409</a>             <strong class="jxr_keyword">return</strong> jar.getManifest().getMainAttributes().getValue( Analyzer.BUNDLE_NAME ) != <strong class="jxr_keyword">null</strong>;
+<a name="410" href="#410">410</a>         }
+<a name="411" href="#411">411</a>         <strong class="jxr_keyword">return</strong> false;
+<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>     <strong class="jxr_keyword">private</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> addExportedPackages( MavenProject project, Collection packages )
+<a name="416" href="#416">416</a>     {
+<a name="417" href="#417">417</a>         <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> bundleInfo = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a>();
+<a name="418" href="#418">418</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = packages.iterator(); it.hasNext(); )
+<a name="419" href="#419">419</a>         {
+<a name="420" href="#420">420</a>             String packageName = ( String ) it.next();
+<a name="421" href="#421">421</a>             bundleInfo.addExportedPackage( packageName, project.getArtifact() );
+<a name="422" href="#422">422</a>         }
+<a name="423" href="#423">423</a>         <strong class="jxr_keyword">return</strong> bundleInfo;
+<a name="424" href="#424">424</a>     }
+<a name="425" href="#425">425</a> 
+<a name="426" href="#426">426</a> 
+<a name="427" href="#427">427</a>     <strong class="jxr_keyword">private</strong> String getArtifactKey( Artifact artifact )
+<a name="428" href="#428">428</a>     {
+<a name="429" href="#429">429</a>         <strong class="jxr_keyword">return</strong> artifact.getGroupId() + <span class="jxr_string">":"</span> + artifact.getArtifactId();
+<a name="430" href="#430">430</a>     }
+<a name="431" href="#431">431</a> 
+<a name="432" href="#432">432</a> 
+<a name="433" href="#433">433</a>     <strong class="jxr_keyword">private</strong> String getBundleName( Artifact artifact )
+<a name="434" href="#434">434</a>     {
+<a name="435" href="#435">435</a>         <strong class="jxr_keyword">return</strong> getMaven2OsgiConverter().getBundleFileName( artifact );
+<a name="436" href="#436">436</a>     }
+<a name="437" href="#437">437</a> 
+<a name="438" href="#438">438</a> 
+<a name="439" href="#439">439</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> alreadyBundled( Artifact artifact )
+<a name="440" href="#440">440</a>     {
+<a name="441" href="#441">441</a>         <strong class="jxr_keyword">return</strong> getBuiltFile( artifact ) != <strong class="jxr_keyword">null</strong>;
+<a name="442" href="#442">442</a>     }
+<a name="443" href="#443">443</a> 
+<a name="444" href="#444">444</a> 
+<a name="445" href="#445">445</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="446" href="#446">446</a> <em class="jxr_javadoccomment">     * Use previously built bundles when available.</em>
+<a name="447" href="#447">447</a> <em class="jxr_javadoccomment">     * </em>
+<a name="448" href="#448">448</a> <em class="jxr_javadoccomment">     * @param artifact</em>
+<a name="449" href="#449">449</a> <em class="jxr_javadoccomment">     */</em>
+<a name="450" href="#450">450</a>     <strong class="jxr_keyword">protected</strong> File getFile( <strong class="jxr_keyword">final</strong> Artifact artifact )
+<a name="451" href="#451">451</a>     {
+<a name="452" href="#452">452</a>         File bundle = getBuiltFile( artifact );
+<a name="453" href="#453">453</a> 
+<a name="454" href="#454">454</a>         <strong class="jxr_keyword">if</strong> ( bundle != <strong class="jxr_keyword">null</strong> )
+<a name="455" href="#455">455</a>         {
+<a name="456" href="#456">456</a>             getLog().debug( <span class="jxr_string">"Using previously built OSGi bundle for "</span> + artifact + <span class="jxr_string">" in "</span> + bundle );
+<a name="457" href="#457">457</a>             <strong class="jxr_keyword">return</strong> bundle;
+<a name="458" href="#458">458</a>         }
+<a name="459" href="#459">459</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.getFile( artifact );
+<a name="460" href="#460">460</a>     }
+<a name="461" href="#461">461</a> 
+<a name="462" href="#462">462</a> 
+<a name="463" href="#463">463</a>     <strong class="jxr_keyword">private</strong> File getBuiltFile( <strong class="jxr_keyword">final</strong> Artifact artifact )
+<a name="464" href="#464">464</a>     {
+<a name="465" href="#465">465</a>         File bundle = <strong class="jxr_keyword">null</strong>;
+<a name="466" href="#466">466</a> 
+<a name="467" href="#467">467</a>         <em class="jxr_comment">/*<em class="jxr_comment"> if bundle was already built use it instead of jar from repo */</em></em>
+<a name="468" href="#468">468</a>         File outputFile = getOutputFile( artifact );
+<a name="469" href="#469">469</a>         <strong class="jxr_keyword">if</strong> ( outputFile.exists() )
+<a name="470" href="#470">470</a>         {
+<a name="471" href="#471">471</a>             bundle = outputFile;
+<a name="472" href="#472">472</a>         }
+<a name="473" href="#473">473</a> 
+<a name="474" href="#474">474</a>         <em class="jxr_comment">/*</em>
+<a name="475" href="#475">475</a> <em class="jxr_comment">         * Find snapshots in output folder, eg. 2.1-SNAPSHOT will match 2.1.0.20070207_193904_2</em>
+<a name="476" href="#476">476</a> <em class="jxr_comment">         * TODO there has to be another way to do this using Maven libs </em>
+<a name="477" href="#477">477</a> <em class="jxr_comment">         */</em>
+<a name="478" href="#478">478</a>         <strong class="jxr_keyword">if</strong> ( ( bundle == <strong class="jxr_keyword">null</strong> ) &amp;&amp; artifact.isSnapshot() )
+<a name="479" href="#479">479</a>         {
+<a name="480" href="#480">480</a>             <strong class="jxr_keyword">final</strong> File buildDirectory = <strong class="jxr_keyword">new</strong> File( getBuildDirectory() );
+<a name="481" href="#481">481</a>             <strong class="jxr_keyword">if</strong> ( !buildDirectory.exists() )
+<a name="482" href="#482">482</a>             {
+<a name="483" href="#483">483</a>                 buildDirectory.mkdirs();
+<a name="484" href="#484">484</a>             }
+<a name="485" href="#485">485</a>             File[] files = buildDirectory.listFiles( <strong class="jxr_keyword">new</strong> FilenameFilter()
+<a name="486" href="#486">486</a>             {
+<a name="487" href="#487">487</a>                 <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> accept( File dir, String name )
+<a name="488" href="#488">488</a>                 {
+<a name="489" href="#489">489</a>                     <strong class="jxr_keyword">if</strong> ( dir.equals( buildDirectory ) &amp;&amp; snapshotMatch( artifact, name ) )
+<a name="490" href="#490">490</a>                     {
+<a name="491" href="#491">491</a>                         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
+<a name="492" href="#492">492</a>                     }
+<a name="493" href="#493">493</a>                     <strong class="jxr_keyword">return</strong> false;
+<a name="494" href="#494">494</a>                 }
+<a name="495" href="#495">495</a>             } );
+<a name="496" href="#496">496</a>             <strong class="jxr_keyword">if</strong> ( files.length &gt; 1 )
+<a name="497" href="#497">497</a>             {
+<a name="498" href="#498">498</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException( <span class="jxr_string">"More than one previously built bundle matches for artifact "</span> + artifact
+<a name="499" href="#499">499</a>                     + <span class="jxr_string">" : "</span> + Arrays.asList( files ) );
+<a name="500" href="#500">500</a>             }
+<a name="501" href="#501">501</a>             <strong class="jxr_keyword">if</strong> ( files.length == 1 )
+<a name="502" href="#502">502</a>             {
+<a name="503" href="#503">503</a>                 bundle = files[0];
+<a name="504" href="#504">504</a>             }
+<a name="505" href="#505">505</a>         }
+<a name="506" href="#506">506</a> 
+<a name="507" href="#507">507</a>         <strong class="jxr_keyword">return</strong> bundle;
+<a name="508" href="#508">508</a>     }
+<a name="509" href="#509">509</a> 
+<a name="510" href="#510">510</a> 
+<a name="511" href="#511">511</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="512" href="#512">512</a> <em class="jxr_javadoccomment">     * Check that the bundleName provided correspond to the artifact provided.</em>
+<a name="513" href="#513">513</a> <em class="jxr_javadoccomment">     * Used to determine when the bundle name is a timestamped snapshot and the artifact is a snapshot not timestamped.</em>
+<a name="514" href="#514">514</a> <em class="jxr_javadoccomment">     * </em>
+<a name="515" href="#515">515</a> <em class="jxr_javadoccomment">     * @param artifact artifact with snapshot version</em>
+<a name="516" href="#516">516</a> <em class="jxr_javadoccomment">     * @param bundleName bundle file name </em>
+<a name="517" href="#517">517</a> <em class="jxr_javadoccomment">     * @return if both represent the same artifact and version, forgetting about the snapshot timestamp</em>
+<a name="518" href="#518">518</a> <em class="jxr_javadoccomment">     */</em>
+<a name="519" href="#519">519</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> snapshotMatch( Artifact artifact, String bundleName )
+<a name="520" href="#520">520</a>     {
+<a name="521" href="#521">521</a>         String artifactBundleName = getBundleName( artifact );
+<a name="522" href="#522">522</a>         <strong class="jxr_keyword">int</strong> i = artifactBundleName.indexOf( <span class="jxr_string">"SNAPSHOT"</span> );
+<a name="523" href="#523">523</a>         <strong class="jxr_keyword">if</strong> ( i &lt; 0 )
+<a name="524" href="#524">524</a>         {
+<a name="525" href="#525">525</a>             <strong class="jxr_keyword">return</strong> false;
+<a name="526" href="#526">526</a>         }
+<a name="527" href="#527">527</a>         artifactBundleName = artifactBundleName.substring( 0, i );
+<a name="528" href="#528">528</a> 
+<a name="529" href="#529">529</a>         <strong class="jxr_keyword">if</strong> ( bundleName.startsWith( artifactBundleName ) )
+<a name="530" href="#530">530</a>         {
+<a name="531" href="#531">531</a>             <em class="jxr_comment">/*<em class="jxr_comment"> it's the same artifact groupId and artifactId */</em></em>
+<a name="532" href="#532">532</a>             String timestamp = bundleName.substring( artifactBundleName.length(), bundleName.lastIndexOf( <span class="jxr_string">".jar"</span> ) );
+<a name="533" href="#533">533</a>             Matcher m = SNAPSHOT_VERSION_PATTERN.matcher( timestamp );
+<a name="534" href="#534">534</a>             <strong class="jxr_keyword">return</strong> m.matches();
+<a name="535" href="#535">535</a>         }
+<a name="536" href="#536">536</a>         <strong class="jxr_keyword">return</strong> false;
+<a name="537" href="#537">537</a>     }
+<a name="538" href="#538">538</a> 
+<a name="539" href="#539">539</a> 
+<a name="540" href="#540">540</a>     <strong class="jxr_keyword">protected</strong> File getOutputFile( Artifact artifact )
+<a name="541" href="#541">541</a>     {
+<a name="542" href="#542">542</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> File( getOutputDirectory(), getBundleName( artifact ) );
+<a name="543" href="#543">543</a>     }
+<a name="544" href="#544">544</a> 
+<a name="545" href="#545">545</a> 
+<a name="546" href="#546">546</a>     <strong class="jxr_keyword">private</strong> Artifact resolveArtifact( Artifact artifact ) <strong class="jxr_keyword">throws</strong> MojoExecutionException, ArtifactNotFoundException
+<a name="547" href="#547">547</a>     {
+<a name="548" href="#548">548</a>         VersionRange versionRange;
+<a name="549" href="#549">549</a>         <strong class="jxr_keyword">if</strong> ( artifact.getVersion() != <strong class="jxr_keyword">null</strong> )
+<a name="550" href="#550">550</a>         {
+<a name="551" href="#551">551</a>             versionRange = VersionRange.createFromVersion( artifact.getVersion() );
+<a name="552" href="#552">552</a>         }
+<a name="553" href="#553">553</a>         <strong class="jxr_keyword">else</strong>
+<a name="554" href="#554">554</a>         {
+<a name="555" href="#555">555</a>             versionRange = artifact.getVersionRange();
+<a name="556" href="#556">556</a>         }
+<a name="557" href="#557">557</a> 
+<a name="558" href="#558">558</a>         <em class="jxr_comment">/*</em>
+<a name="559" href="#559">559</a> <em class="jxr_comment">         * there's a bug with ArtifactFactory#createDependencyArtifact(String, String, VersionRange,</em>
+<a name="560" href="#560">560</a> <em class="jxr_comment">         * String, String, String) that ignores the scope parameter, that's why we use the one with</em>
+<a name="561" href="#561">561</a> <em class="jxr_comment">         * the extra null parameter</em>
+<a name="562" href="#562">562</a> <em class="jxr_comment">         */</em>
+<a name="563" href="#563">563</a>         Artifact resolvedArtifact = m_factory.createDependencyArtifact( artifact.getGroupId(),
+<a name="564" href="#564">564</a>             artifact.getArtifactId(), versionRange, artifact.getType(), artifact.getClassifier(), artifact.getScope(),
+<a name="565" href="#565">565</a>             <strong class="jxr_keyword">null</strong> );
+<a name="566" href="#566">566</a> 
+<a name="567" href="#567">567</a>         <strong class="jxr_keyword">try</strong>
+<a name="568" href="#568">568</a>         {
+<a name="569" href="#569">569</a>             m_artifactResolver.resolve( resolvedArtifact, remoteRepositories, localRepository );
+<a name="570" href="#570">570</a>         }
+<a name="571" href="#571">571</a>         <strong class="jxr_keyword">catch</strong> ( ArtifactResolutionException e )
+<a name="572" href="#572">572</a>         {
+<a name="573" href="#573">573</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error resolving artifact "</span> + resolvedArtifact, e );
+<a name="574" href="#574">574</a>         }
+<a name="575" href="#575">575</a> 
+<a name="576" href="#576">576</a>         <strong class="jxr_keyword">return</strong> resolvedArtifact;
+<a name="577" href="#577">577</a>     }
+<a name="578" href="#578">578</a> 
+<a name="579" href="#579">579</a> 
+<a name="580" href="#580">580</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="581" href="#581">581</a> <em class="jxr_javadoccomment">     * Log what packages are exported in more than one bundle</em>
+<a name="582" href="#582">582</a> <em class="jxr_javadoccomment">     */</em>
+<a name="583" href="#583">583</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> logDuplicatedPackages( BundleInfo bundleInfo )
+<a name="584" href="#584">584</a>     {
+<a name="585" href="#585">585</a>         Map duplicatedExports = bundleInfo.getDuplicatedExports();
+<a name="586" href="#586">586</a> 
+<a name="587" href="#587">587</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = duplicatedExports.entrySet().iterator(); it.hasNext(); )
+<a name="588" href="#588">588</a>         {
+<a name="589" href="#589">589</a>             Map.Entry entry = ( Map.Entry ) it.next();
+<a name="590" href="#590">590</a>             String packageName = ( String ) entry.getKey();
+<a name="591" href="#591">591</a>             Collection artifacts = ( Collection ) entry.getValue();
+<a name="592" href="#592">592</a> 
+<a name="593" href="#593">593</a>             getLog().warn( <span class="jxr_string">"Package "</span> + packageName + <span class="jxr_string">" is exported in more than a bundle: "</span> );
+<a name="594" href="#594">594</a>             <strong class="jxr_keyword">for</strong> ( Iterator it2 = artifacts.iterator(); it2.hasNext(); )
+<a name="595" href="#595">595</a>             {
+<a name="596" href="#596">596</a>                 Artifact artifact = ( Artifact ) it2.next();
+<a name="597" href="#597">597</a>                 getLog().warn( <span class="jxr_string">"  "</span> + artifact );
+<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> }
+</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/BundleInfo.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundleInfo.html
new file mode 100644
index 0000000..13ed7ba
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundleInfo.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>BundleInfo xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more contributor license</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * agreements. See the NOTICE file distributed with this work for additional information regarding</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance with the License. You may obtain a</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * copy of the License at</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * </em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> * </em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software distributed under the License</em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * or implied. See the License for the specific language governing permissions and limitations under</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * the License.</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> */</em>
+<a name="15" href="#15">15</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="16" href="#16">16</a>  
+<a name="17" href="#17">17</a>  
+<a name="18" href="#18">18</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
+<a name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
+<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
+<a name="24" href="#24">24</a>  
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<a name="26" href="#26">26</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"> * Information result of the bundling process </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:carlos@apache.org" target="alexandria_uri">mailto:carlos@apache.org</a>"&gt;Carlos Sanchez&lt;/a&gt;</em>
+<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> * @version $Id$</em>
+<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a>
+<a name="35" href="#35">35</a>  {
+<a name="36" href="#36">36</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment">     * {@link Map} &amp;lt; {@link String}, {@link Set} &amp;lt; {@link Artifact} &gt; &gt;</em>
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment">     * Used to check for duplicated exports. Key is package name and value list of artifacts where it's exported.</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> Map m_exportedPackages = <strong class="jxr_keyword">new</strong> HashMap();
+<a name="41" href="#41">41</a>  
+<a name="42" href="#42">42</a>  
+<a name="43" href="#43">43</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addExportedPackage( String packageName, Artifact artifact )
+<a name="44" href="#44">44</a>      {
+<a name="45" href="#45">45</a>          Set artifacts = ( Set ) getExportedPackages().get( packageName );
+<a name="46" href="#46">46</a>          <strong class="jxr_keyword">if</strong> ( artifacts == <strong class="jxr_keyword">null</strong> )
+<a name="47" href="#47">47</a>          {
+<a name="48" href="#48">48</a>              artifacts = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="49" href="#49">49</a>              m_exportedPackages.put( packageName, artifacts );
+<a name="50" href="#50">50</a>          }
+<a name="51" href="#51">51</a>          artifacts.add( artifact );
+<a name="52" href="#52">52</a>      }
+<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">protected</strong> Map getExportedPackages()
+<a name="56" href="#56">56</a>      {
+<a name="57" href="#57">57</a>          <strong class="jxr_keyword">return</strong> m_exportedPackages;
+<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>      <em class="jxr_javadoccomment">/**</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * Get a list of packages that are exported in more than one bundle.</em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * Key is package name and value list of artifacts where it's exported.</em>
+<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     * @return {@link Map} &amp;lt; {@link String}, {@link Set} &amp;lt; {@link Artifact} &gt; &gt;</em>
+<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="66" href="#66">66</a>      <strong class="jxr_keyword">public</strong> Map getDuplicatedExports()
+<a name="67" href="#67">67</a>      {
+<a name="68" href="#68">68</a>          Map duplicatedExports = <strong class="jxr_keyword">new</strong> HashMap();
+<a name="69" href="#69">69</a>  
+<a name="70" href="#70">70</a>          <strong class="jxr_keyword">for</strong> ( Iterator it = getExportedPackages().entrySet().iterator(); it.hasNext(); )
+<a name="71" href="#71">71</a>          {
+<a name="72" href="#72">72</a>              Map.Entry entry = ( Map.Entry ) it.next();
+<a name="73" href="#73">73</a>              Set artifacts = ( Set ) entry.getValue();
+<a name="74" href="#74">74</a>              <strong class="jxr_keyword">if</strong> ( artifacts.size() &gt; 1 )
+<a name="75" href="#75">75</a>              {
+<a name="76" href="#76">76</a>                  <em class="jxr_comment">/*<em class="jxr_comment"> remove warnings caused by different versions of same artifact */</em></em>
+<a name="77" href="#77">77</a>                  Set artifactKeys = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="78" href="#78">78</a>  
+<a name="79" href="#79">79</a>                  String packageName = ( String ) entry.getKey();
+<a name="80" href="#80">80</a>                  <strong class="jxr_keyword">for</strong> ( Iterator it2 = artifacts.iterator(); it2.hasNext(); )
+<a name="81" href="#81">81</a>                  {
+<a name="82" href="#82">82</a>                      Artifact artifact = ( Artifact ) it2.next();
+<a name="83" href="#83">83</a>                      artifactKeys.add( artifact.getGroupId() + <span class="jxr_string">"."</span> + artifact.getArtifactId() );
+<a name="84" href="#84">84</a>                  }
+<a name="85" href="#85">85</a>  
+<a name="86" href="#86">86</a>                  <strong class="jxr_keyword">if</strong> ( artifactKeys.size() &gt; 1 )
+<a name="87" href="#87">87</a>                  {
+<a name="88" href="#88">88</a>                      duplicatedExports.put( packageName, artifacts );
+<a name="89" href="#89">89</a>                  }
+<a name="90" href="#90">90</a>              }
+<a name="91" href="#91">91</a>          }
+<a name="92" href="#92">92</a>  
+<a name="93" href="#93">93</a>          <strong class="jxr_keyword">return</strong> duplicatedExports;
+<a name="94" href="#94">94</a>      }
+<a name="95" href="#95">95</a>  
+<a name="96" href="#96">96</a>  
+<a name="97" href="#97">97</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> merge( BundleInfo bundleInfo )
+<a name="98" href="#98">98</a>      {
+<a name="99" href="#99">99</a>          <strong class="jxr_keyword">for</strong> ( Iterator it = bundleInfo.getExportedPackages().entrySet().iterator(); it.hasNext(); )
+<a name="100" href="#100">100</a>         {
+<a name="101" href="#101">101</a>             Map.Entry entry = ( Map.Entry ) it.next();
+<a name="102" href="#102">102</a>             String packageName = ( String ) entry.getKey();
+<a name="103" href="#103">103</a>             Collection artifacts = ( Collection ) entry.getValue();
+<a name="104" href="#104">104</a> 
+<a name="105" href="#105">105</a>             Collection artifactsWithPackage = ( Collection ) getExportedPackages().get( packageName );
+<a name="106" href="#106">106</a>             <strong class="jxr_keyword">if</strong> ( artifactsWithPackage == <strong class="jxr_keyword">null</strong> )
+<a name="107" href="#107">107</a>             {
+<a name="108" href="#108">108</a>                 artifactsWithPackage = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="109" href="#109">109</a>                 getExportedPackages().put( packageName, artifactsWithPackage );
+<a name="110" href="#110">110</a>             }
+<a name="111" href="#111">111</a>             artifactsWithPackage.addAll( artifacts );
+<a name="112" href="#112">112</a>         }
+<a name="113" href="#113">113</a>     }
+<a name="114" href="#114">114</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/BundlePlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundlePlugin.html
new file mode 100644
index 0000000..f067875
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/BundlePlugin.html
@@ -0,0 +1,1391 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>BundlePlugin xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.ByteArrayInputStream;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.ByteArrayOutputStream;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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="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> }
+</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
new file mode 100644
index 0000000..e7d4b46
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/DependencyEmbedder.html
@@ -0,0 +1,315 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>DependencyEmbedder xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.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="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>  
+<a name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> String m_embedDirectory;
+<a name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> String m_embedStripGroup;
+<a name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> String m_embedStripVersion;
+<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">     * Maven logger.</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> <strong class="jxr_keyword">final</strong> Log m_log;
+<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">     * Inlined paths.</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> <strong class="jxr_keyword">final</strong> Collection m_inlinedPaths;
+<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">     * Embedded artifacts.</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> <strong class="jxr_keyword">final</strong> Collection m_embeddedArtifacts;
+<a name="70" href="#70">70</a>  
+<a name="71" href="#71">71</a>  
+<a name="72" href="#72">72</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyEmbedder.html">DependencyEmbedder</a>( Log log, Collection dependencyArtifacts )
+<a name="73" href="#73">73</a>      {
+<a name="74" href="#74">74</a>          <strong class="jxr_keyword">super</strong>( dependencyArtifacts );
+<a name="75" href="#75">75</a>  
+<a name="76" href="#76">76</a>          m_log = log;
+<a name="77" href="#77">77</a>  
+<a name="78" href="#78">78</a>          m_inlinedPaths = <strong class="jxr_keyword">new</strong> LinkedHashSet();
+<a name="79" href="#79">79</a>          m_embeddedArtifacts = <strong class="jxr_keyword">new</strong> LinkedHashSet();
+<a name="80" href="#80">80</a>      }
+<a name="81" href="#81">81</a>  
+<a name="82" href="#82">82</a>  
+<a name="83" href="#83">83</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> processHeaders( Analyzer analyzer ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<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="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>             {
+<a name="103" href="#103">103</a>                 inlineDependency( ( String ) i.next(), includeResource );
+<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="108" href="#108">108</a>             }
+<a name="109" href="#109">109</a>         }
+<a name="110" href="#110">110</a> 
+<a name="111" href="#111">111</a>         <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.WAB ) == <strong class="jxr_keyword">null</strong> &amp;&amp; bundleClassPath.length() &gt; 0 )
+<a name="112" href="#112">112</a>         {
+<a name="113" href="#113">113</a>             <em class="jxr_comment">// set explicit default before merging dependency classpath</em>
+<a name="114" href="#114">114</a>             <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.BUNDLE_CLASSPATH ) == <strong class="jxr_keyword">null</strong> )
+<a name="115" href="#115">115</a>             {
+<a name="116" href="#116">116</a>                 analyzer.setProperty( Analyzer.BUNDLE_CLASSPATH, <span class="jxr_string">"."</span> );
+<a name="117" href="#117">117</a>             }
+<a name="118" href="#118">118</a>         }
+<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="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="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="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="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="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="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="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> }
+</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
new file mode 100644
index 0000000..36e6668
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/DependencyExcluder.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>DependencyExcluder xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.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>  
+<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>  }
+</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/InstructionsPlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/InstructionsPlugin.html
new file mode 100644
index 0000000..b6e9d55
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/InstructionsPlugin.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>InstructionsPlugin xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.FileNotFoundException;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
+<a name="27" href="#27">27</a>  
+<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.MojoFailureException;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="31" href="#31">31</a>  
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Jar;
+<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"> * Generate BND instructions for this project</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * @goal instructions</em>
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * @requiresDependencyResolution test</em>
+<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * @threadSafe</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">class</strong> <a href="../../../../org/apache/felix/bundleplugin/InstructionsPlugin.html">InstructionsPlugin</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/BundlePlugin.html">BundlePlugin</a>
+<a name="43" href="#43">43</a>  {
+<a name="44" href="#44">44</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject project, Map instructions, Properties properties, Jar[] classpath )
+<a name="45" href="#45">45</a>          <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="46" href="#46">46</a>      {
+<a name="47" href="#47">47</a>          <strong class="jxr_keyword">if</strong> ( dumpInstructions == <strong class="jxr_keyword">null</strong> )
+<a name="48" href="#48">48</a>          {
+<a name="49" href="#49">49</a>              dumpInstructions = <strong class="jxr_keyword">new</strong> File( getBuildDirectory(), <span class="jxr_string">"instructions.bnd"</span> );
+<a name="50" href="#50">50</a>          }
+<a name="51" href="#51">51</a>  
+<a name="52" href="#52">52</a>          <strong class="jxr_keyword">try</strong>
+<a name="53" href="#53">53</a>          {
+<a name="54" href="#54">54</a>              addMavenInstructions( project, getOSGiBuilder( project, instructions, properties, classpath ) );
+<a name="55" href="#55">55</a>          }
+<a name="56" href="#56">56</a>          <strong class="jxr_keyword">catch</strong> ( FileNotFoundException e )
+<a name="57" href="#57">57</a>          {
+<a name="58" href="#58">58</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Cannot find "</span> + e.getMessage(), e );
+<a name="59" href="#59">59</a>          }
+<a name="60" href="#60">60</a>          <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="61" href="#61">61</a>          {
+<a name="62" href="#62">62</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error trying to generate instructions"</span>, e );
+<a name="63" href="#63">63</a>          }
+<a name="64" href="#64">64</a>          <strong class="jxr_keyword">catch</strong> ( MojoFailureException e )
+<a name="65" href="#65">65</a>          {
+<a name="66" href="#66">66</a>              getLog().error( e.getLocalizedMessage() );
+<a name="67" href="#67">67</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error(s) found in instructions"</span>, e );
+<a name="68" href="#68">68</a>          }
+<a name="69" href="#69">69</a>          <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="70" href="#70">70</a>          {
+<a name="71" href="#71">71</a>              getLog().error( <span class="jxr_string">"An internal error occurred"</span>, e );
+<a name="72" href="#72">72</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="73" href="#73">73</a>          }
+<a name="74" href="#74">74</a>      }
+<a name="75" href="#75">75</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/JarPluginConfiguration.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/JarPluginConfiguration.html
new file mode 100644
index 0000000..b2b269c
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/JarPluginConfiguration.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>JarPluginConfiguration xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.MavenArchiveConfiguration;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.component.configurator.converters.lookup.ConverterLookup;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.component.configurator.converters.lookup.DefaultConverterLookup;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.component.configurator.expression.DefaultExpressionEvaluator;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.configuration.PlexusConfiguration;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.xml.Xpp3Dom;
+<a name="32" href="#32">32</a>  
+<a name="33" href="#33">33</a>  
+<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * Provide access to the archive configuration from the jar plugin</em>
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="37" href="#37">37</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="38" href="#38">38</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="39" href="#39">39</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/JarPluginConfiguration.html">JarPluginConfiguration</a>
+<a name="40" href="#40">40</a>  {
+<a name="41" href="#41">41</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> MavenArchiveConfiguration getArchiveConfiguration( MavenProject project )
+<a name="42" href="#42">42</a>      {
+<a name="43" href="#43">43</a>          MavenArchiveConfiguration archiveConfig = <strong class="jxr_keyword">new</strong> MavenArchiveConfiguration();
+<a name="44" href="#44">44</a>  
+<a name="45" href="#45">45</a>          <strong class="jxr_keyword">try</strong>
+<a name="46" href="#46">46</a>          {
+<a name="47" href="#47">47</a>              ObjectWithFieldsConverter converter = <strong class="jxr_keyword">new</strong> ObjectWithFieldsConverter();
+<a name="48" href="#48">48</a>              ClassLoader loader = JarPluginConfiguration.<strong class="jxr_keyword">class</strong>.getClassLoader();
+<a name="49" href="#49">49</a>              ExpressionEvaluator evaluator = <strong class="jxr_keyword">new</strong> DefaultExpressionEvaluator();
+<a name="50" href="#50">50</a>              ConverterLookup converters = <strong class="jxr_keyword">new</strong> DefaultConverterLookup();
+<a name="51" href="#51">51</a>  
+<a name="52" href="#52">52</a>              PlexusConfiguration settings = <strong class="jxr_keyword">null</strong>;
+<a name="53" href="#53">53</a>  
+<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>                  <em class="jxr_comment">// first look for bundle specific archive settings</em>
+<a name="57" href="#57">57</a>                  settings = getPluginConfiguration( project, <span class="jxr_string">"org.apache.felix"</span>, <span class="jxr_string">"maven-bundle-plugin"</span> );
+<a name="58" href="#58">58</a>                  settings = settings.getChild( <span class="jxr_string">"archive"</span> );
+<a name="59" href="#59">59</a>              }
+<a name="60" href="#60">60</a>              <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="61" href="#61">61</a>              {
+<a name="62" href="#62">62</a>              }
+<a name="63" href="#63">63</a>  
+<a name="64" href="#64">64</a>              <em class="jxr_comment">// if it's empty fall back to the jar archive settings</em>
+<a name="65" href="#65">65</a>              <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == settings || settings.getChildCount() == 0 )
+<a name="66" href="#66">66</a>              {
+<a name="67" href="#67">67</a>                  settings = getCorePluginConfiguration( project, <span class="jxr_string">"jar"</span> );
+<a name="68" href="#68">68</a>                  settings = settings.getChild( <span class="jxr_string">"archive"</span> );
+<a name="69" href="#69">69</a>              }
+<a name="70" href="#70">70</a>  
+<a name="71" href="#71">71</a>              converter.processConfiguration( converters, archiveConfig, loader, settings, evaluator, <strong class="jxr_keyword">null</strong> );
+<a name="72" href="#72">72</a>          }
+<a name="73" href="#73">73</a>          <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="74" href="#74">74</a>          {
+<a name="75" href="#75">75</a>              <em class="jxr_comment">// ignore and return empty configuration...</em>
+<a name="76" href="#76">76</a>          }
+<a name="77" href="#77">77</a>  
+<a name="78" href="#78">78</a>          <strong class="jxr_keyword">return</strong> archiveConfig;
+<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">private</strong> <strong class="jxr_keyword">static</strong> PlexusConfiguration getCorePluginConfiguration( MavenProject project, String pluginName )
+<a name="83" href="#83">83</a>      {
+<a name="84" href="#84">84</a>          <strong class="jxr_keyword">return</strong> getPluginConfiguration( project, <span class="jxr_string">"org.apache.maven.plugins"</span>, <span class="jxr_string">"maven-"</span> + pluginName + <span class="jxr_string">"-plugin"</span> );
+<a name="85" href="#85">85</a>      }
+<a name="86" href="#86">86</a>  
+<a name="87" href="#87">87</a>  
+<a name="88" href="#88">88</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> PlexusConfiguration getPluginConfiguration( MavenProject project, String groupId, String artifactId )
+<a name="89" href="#89">89</a>      {
+<a name="90" href="#90">90</a>          Xpp3Dom pluginConfig = project.getGoalConfiguration( groupId, artifactId, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> );
+<a name="91" href="#91">91</a>  
+<a name="92" href="#92">92</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> XmlPlexusConfiguration( pluginConfig );
+<a name="93" href="#93">93</a>      }
+<a name="94" href="#94">94</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
new file mode 100644
index 0000000..9c08abe
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/ManifestPlugin.html
@@ -0,0 +1,210 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>ManifestPlugin xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.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="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="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> }
+</pre>
+<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
+</html>
+
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/PackageVersionAnalyzer.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/PackageVersionAnalyzer.html
new file mode 100644
index 0000000..ca4d2b3
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/PackageVersionAnalyzer.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>PackageVersionAnalyzer xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Builder;
+<a name="23" href="#23">23</a>  
+<a name="24" href="#24">24</a>  
+<a name="25" href="#25">25</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="26" href="#26">26</a>  <em class="jxr_javadoccomment"> * Extension of {@link aQute.lib.osgi.Builder} to handle package versions</em>
+<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/PackageVersionAnalyzer.html">PackageVersionAnalyzer</a> <strong class="jxr_keyword">extends</strong> Builder
+<a name="31" href="#31">31</a>  {
+<a name="32" href="#32">32</a>      <em class="jxr_comment">/*</em>
+<a name="33" href="#33">33</a>  <em class="jxr_comment">     * Remove META-INF subfolders from exports and set package versions to bundle version.</em>
+<a name="34" href="#34">34</a>  <em class="jxr_comment">     */</em>
+<a name="35" href="#35">35</a>      <em class="jxr_comment">/*</em>
+<a name="36" href="#36">36</a>  <em class="jxr_comment">        public Map analyzeBundleClasspath( Jar dot, Map bundleClasspath, Map contained, Map referred, Map uses )</em>
+<a name="37" href="#37">37</a>  <em class="jxr_comment">            throws IOException</em>
+<a name="38" href="#38">38</a>  <em class="jxr_comment">        {</em>
+<a name="39" href="#39">39</a>  <em class="jxr_comment">            Map classSpace = super.analyzeBundleClasspath( dot, bundleClasspath, contained, referred, uses );</em>
+<a name="40" href="#40">40</a>  <em class="jxr_comment">            String bundleVersion = getProperty( BUNDLE_VERSION );</em>
+<a name="41" href="#41">41</a>  <em class="jxr_comment">            for ( Iterator it = contained.entrySet().iterator(); it.hasNext(); )</em>
+<a name="42" href="#42">42</a>  <em class="jxr_comment">            {</em>
+<a name="43" href="#43">43</a>  <em class="jxr_comment">                Map.Entry entry = ( Map.Entry ) it.next();</em>
+<a name="44" href="#44">44</a>  
+<a name="45" href="#45">45</a>  <em class="jxr_comment">                // remove packages under META-INF</em>
+<a name="46" href="#46">46</a>  <em class="jxr_comment">                String packageName = ( String ) entry.getKey();</em>
+<a name="47" href="#47">47</a>  <em class="jxr_comment">                if ( packageName.startsWith( "META-INF." ) )</em>
+<a name="48" href="#48">48</a>  <em class="jxr_comment">                {</em>
+<a name="49" href="#49">49</a>  <em class="jxr_comment">                    it.remove();</em>
+<a name="50" href="#50">50</a>  <em class="jxr_comment">                }</em>
+<a name="51" href="#51">51</a>  
+<a name="52" href="#52">52</a>  <em class="jxr_comment">                // set package versions to bundle version values</em>
+<a name="53" href="#53">53</a>  <em class="jxr_comment">                if ( bundleVersion != null )</em>
+<a name="54" href="#54">54</a>  <em class="jxr_comment">                {</em>
+<a name="55" href="#55">55</a>  <em class="jxr_comment">                    Map values = ( Map ) entry.getValue();</em>
+<a name="56" href="#56">56</a>  <em class="jxr_comment">                    if ( values.get( "version" ) == null )</em>
+<a name="57" href="#57">57</a>  <em class="jxr_comment">                    {</em>
+<a name="58" href="#58">58</a>  <em class="jxr_comment">                        values.put( "version", bundleVersion );</em>
+<a name="59" href="#59">59</a>  <em class="jxr_comment">                    }</em>
+<a name="60" href="#60">60</a>  <em class="jxr_comment">                }</em>
+<a name="61" href="#61">61</a>  <em class="jxr_comment">            }</em>
+<a name="62" href="#62">62</a>  <em class="jxr_comment">            return classSpace;</em>
+<a name="63" href="#63">63</a>  <em class="jxr_comment">        }</em>
+<a name="64" href="#64">64</a>  <em class="jxr_comment">    */</em>
+<a name="65" href="#65">65</a>  }
+</pre>
+<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
+</html>
+
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/VersionCleanerPlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/VersionCleanerPlugin.html
new file mode 100644
index 0000000..682be62
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/VersionCleanerPlugin.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>VersionCleanerPlugin xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="24" href="#24">24</a>  
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoFailureException;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.DefaultMaven2OsgiConverter;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.Maven2OsgiConverter;
+<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"> * @goal cleanVersions</em>
+<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * @description clean OSGi versions</em>
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * @threadSafe</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/VersionCleanerPlugin.html">VersionCleanerPlugin</a> <strong class="jxr_keyword">extends</strong> AbstractMojo
+<a name="39" href="#39">39</a>  {
+<a name="40" href="#40">40</a>  
+<a name="41" href="#41">41</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment">     * The BND instructions for the bundle.</em>
+<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="46" href="#46">46</a>      <strong class="jxr_keyword">private</strong> Map versions = <strong class="jxr_keyword">new</strong> LinkedHashMap();
+<a name="47" href="#47">47</a>  
+<a name="48" href="#48">48</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">     * The Maven project.</em>
+<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">     * @parameter expression="${project}"</em>
+<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> MavenProject project;
+<a name="56" href="#56">56</a>  
+<a name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> Maven2OsgiConverter maven2OsgiConverter = <strong class="jxr_keyword">new</strong> DefaultMaven2OsgiConverter();
+<a name="58" href="#58">58</a>  
+<a name="59" href="#59">59</a>  
+<a name="60" href="#60">60</a>      <strong class="jxr_keyword">public</strong> Maven2OsgiConverter getMaven2OsgiConverter()
+<a name="61" href="#61">61</a>      {
+<a name="62" href="#62">62</a>          <strong class="jxr_keyword">return</strong> maven2OsgiConverter;
+<a name="63" href="#63">63</a>      }
+<a name="64" href="#64">64</a>  
+<a name="65" href="#65">65</a>  
+<a name="66" href="#66">66</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setMaven2OsgiConverter( Maven2OsgiConverter maven2OsgiConverter )
+<a name="67" href="#67">67</a>      {
+<a name="68" href="#68">68</a>          <strong class="jxr_keyword">this</strong>.maven2OsgiConverter = maven2OsgiConverter;
+<a name="69" href="#69">69</a>      }
+<a name="70" href="#70">70</a>  
+<a name="71" href="#71">71</a>  
+<a name="72" href="#72">72</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException, MojoFailureException
+<a name="73" href="#73">73</a>      {
+<a name="74" href="#74">74</a>          <strong class="jxr_keyword">for</strong> ( Object key : versions.keySet() )
+<a name="75" href="#75">75</a>          {
+<a name="76" href="#76">76</a>              String name = ( String ) key;
+<a name="77" href="#77">77</a>              String version = ( String ) versions.get( key );
+<a name="78" href="#78">78</a>              String osgi = maven2OsgiConverter.getVersion( version );
+<a name="79" href="#79">79</a>              project.getProperties().put( name, osgi );
+<a name="80" href="#80">80</a>          }
+<a name="81" href="#81">81</a>      }
+<a name="82" href="#82">82</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/WrapPlugin.html b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/WrapPlugin.html
new file mode 100644
index 0000000..9fccd57
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/WrapPlugin.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>WrapPlugin xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="23" href="#23">23</a>  
+<a name="24" href="#24">24</a>  
+<a name="25" href="#25">25</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="26" href="#26">26</a>  <em class="jxr_javadoccomment"> * @goal wrap</em>
+<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment"> * @phase package</em>
+<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> * @requiresDependencyResolution test</em>
+<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * @description build an OSGi bundle jar for direct dependencies</em>
+<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> * @deprecated The wrap goal is no longer supported and may be removed in a future release</em>
+<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="32" href="#32">32</a>  @Deprecated
+<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/WrapPlugin.html">WrapPlugin</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/BundleAllPlugin.html">BundleAllPlugin</a>
+<a name="34" href="#34">34</a>  {
+<a name="35" href="#35">35</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="36" href="#36">36</a>      {
+<a name="37" href="#37">37</a>          getLog().warn( <span class="jxr_string">"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"</span> );
+<a name="38" href="#38">38</a>          getLog().warn( <span class="jxr_string">"! The wrap goal is no longer supported and may be removed in a future release !"</span> );
+<a name="39" href="#39">39</a>          getLog().warn( <span class="jxr_string">"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"</span> );
+<a name="40" href="#40">40</a>  
+<a name="41" href="#41">41</a>          <a href="../../../../org/apache/felix/bundleplugin/BundleInfo.html">BundleInfo</a> bundleInfo = bundleAll( getProject(), 1 );
+<a name="42" href="#42">42</a>          logDuplicatedPackages( bundleInfo );
+<a name="43" href="#43">43</a>      }
+<a name="44" href="#44">44</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
new file mode 100644
index 0000000..023285b
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/package-frame.html
@@ -0,0 +1,69 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>Maven Bundle Plugin 2.3.5 Reference Package org.apache.felix.bundleplugin</title>
+		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
+	</head>
+	<body>
+
+		<h3>
+        	<a href="package-summary.html" target="classFrame">org.apache.felix.bundleplugin</a>
+      	</h3>
+
+      	<h3>Classes</h3>
+
+      	<ul>
+      		          	<li>
+            	<a href="AbstractDependencyFilter.html" target="classFrame">AbstractDependencyFilter</a>
+          	</li>
+          	          	<li>
+            	<a href="AntPlugin.html" target="classFrame">AntPlugin</a>
+          	</li>
+          	          	<li>
+            	<a href="BlueprintPlugin.html" target="classFrame">Attribute</a>
+          	</li>
+          	          	<li>
+            	<a href="BlueprintPlugin.html" target="classFrame">BlueprintPlugin</a>
+          	</li>
+          	          	<li>
+            	<a href="BundleAllPlugin.html" target="classFrame">BundleAllPlugin</a>
+          	</li>
+          	          	<li>
+            	<a href="BundleInfo.html" target="classFrame">BundleInfo</a>
+          	</li>
+          	          	<li>
+            	<a href="BundlePlugin.html" target="classFrame">BundlePlugin</a>
+          	</li>
+          	          	<li>
+            	<a href="DependencyEmbedder.html" target="classFrame">DependencyEmbedder</a>
+          	</li>
+          	          	<li>
+            	<a href="DependencyExcluder.html" target="classFrame">DependencyExcluder</a>
+          	</li>
+          	          	<li>
+            	<a href="AbstractDependencyFilter.html" target="classFrame">DependencyFilter</a>
+          	</li>
+          	          	<li>
+            	<a href="InstructionsPlugin.html" target="classFrame">InstructionsPlugin</a>
+          	</li>
+          	          	<li>
+            	<a href="JarPluginConfiguration.html" target="classFrame">JarPluginConfiguration</a>
+          	</li>
+          	          	<li>
+            	<a href="ManifestPlugin.html" target="classFrame">ManifestPlugin</a>
+          	</li>
+          	          	<li>
+            	<a href="PackageVersionAnalyzer.html" target="classFrame">PackageVersionAnalyzer</a>
+          	</li>
+          	          	<li>
+            	<a href="VersionCleanerPlugin.html" target="classFrame">VersionCleanerPlugin</a>
+          	</li>
+          	          	<li>
+            	<a href="WrapPlugin.html" target="classFrame">WrapPlugin</a>
+          	</li>
+          	      	</ul>
+
+	</body>
+</html>
\ No newline at end of file
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
new file mode 100644
index 0000000..dba2169
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/bundleplugin/package-summary.html
@@ -0,0 +1,142 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>Maven Bundle Plugin 2.3.5 Reference Package org.apache.felix.bundleplugin</title>
+		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
+	</head>
+	<body>
+		      	<div class="overview">
+        	<ul>
+          		<li>
+            		<a href="../../../../overview-summary.html">Overview</a>
+          		</li>
+          		<li class="selected">Package</li>
+        	</ul>
+      	</div>
+      	<div class="framenoframe">
+        	<ul>
+          		<li>
+            		<a href="../../../../index.html" target="_top">FRAMES</a>
+          		</li>
+          		<li>
+            		<a href="package-summary.html" target="_top">NO FRAMES</a>
+          		</li>
+        	</ul>
+      	</div>
+		
+		      	<h2>Package org.apache.felix.bundleplugin</h2>
+
+		<table class="summary">
+        	<thead>
+          		<tr>
+            		<th>Class Summary</th>
+          		</tr>
+        	</thead>
+        	<tbody>
+        		            	<tr>
+              		<td>
+                		<a href="AbstractDependencyFilter.html" target="classFrame">AbstractDependencyFilter</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="AntPlugin.html" target="classFrame">AntPlugin</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="BlueprintPlugin.html" target="classFrame">Attribute</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="BlueprintPlugin.html" target="classFrame">BlueprintPlugin</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="BundleAllPlugin.html" target="classFrame">BundleAllPlugin</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="BundleInfo.html" target="classFrame">BundleInfo</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="BundlePlugin.html" target="classFrame">BundlePlugin</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="DependencyEmbedder.html" target="classFrame">DependencyEmbedder</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="DependencyExcluder.html" target="classFrame">DependencyExcluder</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="AbstractDependencyFilter.html" target="classFrame">DependencyFilter</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="InstructionsPlugin.html" target="classFrame">InstructionsPlugin</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="JarPluginConfiguration.html" target="classFrame">JarPluginConfiguration</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ManifestPlugin.html" target="classFrame">ManifestPlugin</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="PackageVersionAnalyzer.html" target="classFrame">PackageVersionAnalyzer</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="VersionCleanerPlugin.html" target="classFrame">VersionCleanerPlugin</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="WrapPlugin.html" target="classFrame">WrapPlugin</a>
+              		</td>
+            	</tr>
+				        	</tbody>
+      	</table>
+		
+		      	<div class="overview">
+        	<ul>
+          		<li>
+            		<a href="../../../../overview-summary.html">Overview</a>
+          		</li>
+          		<li class="selected">Package</li>
+        	</ul>
+      	</div>
+      	<div class="framenoframe">
+        	<ul>
+          		<li>
+            		<a href="../../../../index.html" target="_top">FRAMES</a>
+          		</li>
+          		<li>
+            		<a href="package-summary.html" target="_top">NO FRAMES</a>
+          		</li>
+        	</ul>
+      	</div>
+				<hr />
+		Copyright &copy; 2006-2011 The Apache Software Foundation. All Rights Reserved.
+	</body>
+</html>
\ No newline at end of file
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/AbstractFileMojo.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/AbstractFileMojo.html
new file mode 100644
index 0000000..3d41b39
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/AbstractFileMojo.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>AbstractFileMojo xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="23" href="#23">23</a>  
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.factory.ArtifactFactory;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="29" href="#29">29</a>  
+<a name="30" href="#30">30</a>  
+<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> * Base class for the command-line install-file and deploy-file goals.</em>
+<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="34" href="#34">34</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="35" href="#35">35</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">abstract</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/AbstractFileMojo.html">AbstractFileMojo</a> <strong class="jxr_keyword">extends</strong> AbstractMojo
+<a name="37" href="#37">37</a>  {
+<a name="38" href="#38">38</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment">     * GroupId of the bundle. Retrieved from POM file if specified.</em>
+<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment">     * @parameter expression="${groupId}"</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> String groupId;
+<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">     * ArtifactId of the bundle. Retrieved from POM file if specified.</em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment">     * @parameter expression="${artifactId}"</em>
+<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="50" href="#50">50</a>      <strong class="jxr_keyword">private</strong> String artifactId;
+<a name="51" href="#51">51</a>  
+<a name="52" href="#52">52</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">     * Version of the bundle. Retrieved from POM file if specified.</em>
+<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment">     * @parameter expression="${version}"</em>
+<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> String version;
+<a name="58" href="#58">58</a>  
+<a name="59" href="#59">59</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     * Packaging type of the bundle. Retrieved from POM file if specified.</em>
+<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * @parameter expression="${packaging}"</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> String packaging;
+<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">     * Classifier type of the bundle. Defaults to none.</em>
+<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     * @parameter expression="${classifier}"</em>
+<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> String classifier;
+<a name="72" href="#72">72</a>  
+<a name="73" href="#73">73</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     * Location of an existing POM file.</em>
+<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * @parameter expression="${pomFile}"</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> File pomFile;
+<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">     * Bundle file, defaults to the artifact in the local Maven repository.</em>
+<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment">     * @parameter expression="${file}"</em>
+<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="85" href="#85">85</a>      <strong class="jxr_keyword">protected</strong> File file;
+<a name="86" href="#86">86</a>  
+<a name="87" href="#87">87</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     * Optional XML file describing additional requirements and capabilities.</em>
+<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * @parameter expression="${obrXml}"</em>
+<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="92" href="#92">92</a>      <strong class="jxr_keyword">protected</strong> String obrXml;
+<a name="93" href="#93">93</a>  
+<a name="94" href="#94">94</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     * Component factory for Maven artifacts</em>
+<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     * @component</em>
+<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="99" href="#99">99</a>      <strong class="jxr_keyword">private</strong> ArtifactFactory m_factory;
+<a name="100" href="#100">100</a> 
+<a name="101" href="#101">101</a> 
+<a name="102" href="#102">102</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     * @return project based on command-line settings, with bundle attached</em>
+<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException</em>
+<a name="105" href="#105">105</a> <em class="jxr_javadoccomment">     */</em>
+<a name="106" href="#106">106</a>     <strong class="jxr_keyword">public</strong> MavenProject getProject() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="107" href="#107">107</a>     {
+<a name="108" href="#108">108</a>         <strong class="jxr_keyword">final</strong> MavenProject project;
+<a name="109" href="#109">109</a>         <strong class="jxr_keyword">if</strong> ( pomFile != <strong class="jxr_keyword">null</strong> &amp;&amp; pomFile.exists() )
+<a name="110" href="#110">110</a>         {
+<a name="111" href="#111">111</a>             project = PomHelper.readPom( pomFile );
+<a name="112" href="#112">112</a> 
+<a name="113" href="#113">113</a>             groupId = project.getGroupId();
+<a name="114" href="#114">114</a>             artifactId = project.getArtifactId();
+<a name="115" href="#115">115</a>             version = project.getVersion();
+<a name="116" href="#116">116</a>             packaging = project.getPackaging();
+<a name="117" href="#117">117</a>         }
+<a name="118" href="#118">118</a>         <strong class="jxr_keyword">else</strong>
+<a name="119" href="#119">119</a>         {
+<a name="120" href="#120">120</a>             project = PomHelper.buildPom( groupId, artifactId, version, packaging );
+<a name="121" href="#121">121</a>         }
+<a name="122" href="#122">122</a> 
+<a name="123" href="#123">123</a>         <strong class="jxr_keyword">if</strong> ( groupId == <strong class="jxr_keyword">null</strong> || artifactId == <strong class="jxr_keyword">null</strong> || version == <strong class="jxr_keyword">null</strong> || packaging == <strong class="jxr_keyword">null</strong> )
+<a name="124" href="#124">124</a>         {
+<a name="125" href="#125">125</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Missing group, artifact, version, or packaging information"</span> );
+<a name="126" href="#126">126</a>         }
+<a name="127" href="#127">127</a> 
+<a name="128" href="#128">128</a>         Artifact bundle = m_factory.createArtifactWithClassifier( groupId, artifactId, version, packaging, classifier );
+<a name="129" href="#129">129</a>         project.setArtifact( bundle );
+<a name="130" href="#130">130</a> 
+<a name="131" href="#131">131</a>         <strong class="jxr_keyword">return</strong> project;
+<a name="132" href="#132">132</a>     }
+<a name="133" href="#133">133</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/Config.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/Config.html
new file mode 100644
index 0000000..a8c8cbf
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/Config.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>Config xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*<em class="jxr_comment"> </em></em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<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.net.URI;
+<a name="23" href="#23">23</a>  
+<a name="24" href="#24">24</a>  
+<a name="25" href="#25">25</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="26" href="#26">26</a>  <em class="jxr_javadoccomment"> * this class is used to store some user information about configuration of the plugin.</em>
+<a name="27" href="#27">27</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="28" href="#28">28</a>  <em class="jxr_javadoccomment"> *</em>
+<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/Config.html">Config</a>
+<a name="31" href="#31">31</a>  {
+<a name="32" href="#32">32</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_pathRelative; <em class="jxr_comment">// use relative or absolute path in repository.xml</em>
+<a name="33" href="#33">33</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> m_remoteFile; <em class="jxr_comment">// deploy file on remote server</em>
+<a name="34" href="#34">34</a>      <strong class="jxr_keyword">private</strong> URI m_remoteBundle; <em class="jxr_comment">// public address of deployed bundle</em>
+<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">     * constructor: set default configuration: use relative path and don't upload file.</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> <a href="../../../../org/apache/felix/obrplugin/Config.html">Config</a>()
+<a name="41" href="#41">41</a>      {
+<a name="42" href="#42">42</a>          <em class="jxr_comment">// default configuration</em>
+<a name="43" href="#43">43</a>          m_pathRelative = <strong class="jxr_keyword">true</strong>;
+<a name="44" href="#44">44</a>          m_remoteFile = false;
+<a name="45" href="#45">45</a>          m_remoteBundle = <strong class="jxr_keyword">null</strong>;
+<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>      <em class="jxr_javadoccomment">/**</em>
+<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     * @param value enable to use relative path</em>
+<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="52" href="#52">52</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setPathRelative( <strong class="jxr_keyword">boolean</strong> value )
+<a name="53" href="#53">53</a>      {
+<a name="54" href="#54">54</a>          m_pathRelative = value;
+<a name="55" href="#55">55</a>      }
+<a name="56" href="#56">56</a>  
+<a name="57" href="#57">57</a>  
+<a name="58" href="#58">58</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment">     * @param value enable when uploading</em>
+<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="61" href="#61">61</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRemoteFile( <strong class="jxr_keyword">boolean</strong> value )
+<a name="62" href="#62">62</a>      {
+<a name="63" href="#63">63</a>          m_remoteFile = value;
+<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>      <em class="jxr_javadoccomment">/**</em>
+<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     * @param value public address of deployed bundle</em>
+<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="70" href="#70">70</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRemoteBundle( URI value )
+<a name="71" href="#71">71</a>      {
+<a name="72" href="#72">72</a>          m_remoteBundle = value;
+<a name="73" href="#73">73</a>      }
+<a name="74" href="#74">74</a>  
+<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">     * @return true if plugin uses relative path, else false</em>
+<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="79" href="#79">79</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isPathRelative()
+<a name="80" href="#80">80</a>      {
+<a name="81" href="#81">81</a>          <strong class="jxr_keyword">return</strong> m_pathRelative;
+<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>      <em class="jxr_javadoccomment">/**</em>
+<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     * @return true if the file will be uploaded, else false</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">boolean</strong> isRemoteFile()
+<a name="89" href="#89">89</a>      {
+<a name="90" href="#90">90</a>          <strong class="jxr_keyword">return</strong> m_remoteFile;
+<a name="91" href="#91">91</a>      }
+<a name="92" href="#92">92</a>  
+<a name="93" href="#93">93</a>  
+<a name="94" href="#94">94</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     * @return public address of deployed bundle</em>
+<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="97" href="#97">97</a>      <strong class="jxr_keyword">public</strong> URI getRemoteBundle()
+<a name="98" href="#98">98</a>      {
+<a name="99" href="#99">99</a>          <strong class="jxr_keyword">return</strong> m_remoteBundle;
+<a name="100" href="#100">100</a>     }
+<a name="101" href="#101">101</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/ObrCleanRepo.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrCleanRepo.html
new file mode 100644
index 0000000..bdabac8
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrCleanRepo.html
@@ -0,0 +1,331 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>ObrCleanRepo xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*<em class="jxr_comment"> </em></em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.FileOutputStream;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.net.URI;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.text.SimpleDateFormat;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
+<a name="31" href="#31">31</a>  
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilder;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilderFactory;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.ParserConfigurationException;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.Result;
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.Transformer;
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.TransformerConfigurationException;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.TransformerException;
+<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.TransformerFactory;
+<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.dom.DOMSource;
+<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.stream.StreamResult;
+<a name="42" href="#42">42</a>  
+<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.repository.ArtifactRepository;
+<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.FileUtils;
+<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Document;
+<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Element;
+<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Node;
+<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.NodeList;
+<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.xml.sax.SAXException;
+<a name="52" href="#52">52</a>  
+<a name="53" href="#53">53</a>  
+<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment"> * Clean an OBR repository by finding and removing missing resources.</em>
+<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment"> * @requiresProject false</em>
+<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment"> * @goal clean</em>
+<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment"> * @phase clean</em>
+<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="61" href="#61">61</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="62" href="#62">62</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="63" href="#63">63</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/ObrCleanRepo.html">ObrCleanRepo</a> <strong class="jxr_keyword">extends</strong> AbstractMojo
+<a name="64" href="#64">64</a>  {
+<a name="65" href="#65">65</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     * OBR Repository.</em>
+<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     * @parameter expression="${obrRepository}"</em>
+<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="70" href="#70">70</a>      <strong class="jxr_keyword">private</strong> String obrRepository;
+<a name="71" href="#71">71</a>  
+<a name="72" href="#72">72</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     * Local Repository.</em>
+<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     * @parameter expression="${localRepository}"</em>
+<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     * @readonly</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> ArtifactRepository localRepository;
+<a name="80" href="#80">80</a>  
+<a name="81" href="#81">81</a>  
+<a name="82" href="#82">82</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute()
+<a name="83" href="#83">83</a>      {
+<a name="84" href="#84">84</a>          <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"NONE"</span>.equalsIgnoreCase( obrRepository ) || <span class="jxr_string">"false"</span>.equalsIgnoreCase( obrRepository ) )
+<a name="85" href="#85">85</a>          {
+<a name="86" href="#86">86</a>              getLog().info( <span class="jxr_string">"Local OBR clean disabled (enable with -DobrRepository)"</span> );
+<a name="87" href="#87">87</a>              <strong class="jxr_keyword">return</strong>;
+<a name="88" href="#88">88</a>          }
+<a name="89" href="#89">89</a>  
+<a name="90" href="#90">90</a>          <strong class="jxr_keyword">try</strong>
+<a name="91" href="#91">91</a>          {
+<a name="92" href="#92">92</a>              <em class="jxr_comment">// Compute local repository location</em>
+<a name="93" href="#93">93</a>              URI repositoryXml = ObrUtils.findRepositoryXml( localRepository.getBasedir(), obrRepository );
+<a name="94" href="#94">94</a>              <strong class="jxr_keyword">if</strong> ( !<span class="jxr_string">"file"</span>.equals( repositoryXml.getScheme() ) )
+<a name="95" href="#95">95</a>              {
+<a name="96" href="#96">96</a>                  getLog().error( <span class="jxr_string">"The repository URI "</span> + repositoryXml + <span class="jxr_string">" is not a local file"</span> );
+<a name="97" href="#97">97</a>                  <strong class="jxr_keyword">return</strong>;
+<a name="98" href="#98">98</a>              }
+<a name="99" href="#99">99</a>  
+<a name="100" href="#100">100</a>             File repositoryFile = <strong class="jxr_keyword">new</strong> File( repositoryXml );
+<a name="101" href="#101">101</a> 
+<a name="102" href="#102">102</a>             <em class="jxr_comment">// Check if the file exist</em>
+<a name="103" href="#103">103</a>             <strong class="jxr_keyword">if</strong> ( !repositoryFile.exists() )
+<a name="104" href="#104">104</a>             {
+<a name="105" href="#105">105</a>                 getLog().error( <span class="jxr_string">"The repository file "</span> + repositoryFile + <span class="jxr_string">" does not exist"</span> );
+<a name="106" href="#106">106</a>                 <strong class="jxr_keyword">return</strong>;
+<a name="107" href="#107">107</a>             }
+<a name="108" href="#108">108</a> 
+<a name="109" href="#109">109</a>             getLog().info( <span class="jxr_string">"Cleaning..."</span> );
+<a name="110" href="#110">110</a> 
+<a name="111" href="#111">111</a>             Document doc = parseFile( repositoryFile, initConstructor() );
+<a name="112" href="#112">112</a>             Node finalDocument = cleanDocument( doc.getDocumentElement() ); <em class="jxr_comment">// Analyze existing repository.</em>
+<a name="113" href="#113">113</a> 
+<a name="114" href="#114">114</a>             <strong class="jxr_keyword">if</strong> ( finalDocument == <strong class="jxr_keyword">null</strong> )
+<a name="115" href="#115">115</a>             {
+<a name="116" href="#116">116</a>                 getLog().info( <span class="jxr_string">"Nothing to clean in "</span> + repositoryFile );
+<a name="117" href="#117">117</a>             }
+<a name="118" href="#118">118</a>             <strong class="jxr_keyword">else</strong>
+<a name="119" href="#119">119</a>             {
+<a name="120" href="#120">120</a>                 writeToFile( repositoryXml, finalDocument ); <em class="jxr_comment">// Write the new file</em>
+<a name="121" href="#121">121</a>                 getLog().info( <span class="jxr_string">"Repository "</span> + repositoryFile + <span class="jxr_string">" cleaned"</span> );
+<a name="122" href="#122">122</a>             }
+<a name="123" href="#123">123</a>         }
+<a name="124" href="#124">124</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="125" href="#125">125</a>         {
+<a name="126" href="#126">126</a>             getLog().error( <span class="jxr_string">"Exception while cleaning local OBR: "</span> + e.getLocalizedMessage(), e );
+<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> 
+<a name="131" href="#131">131</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="132" href="#132">132</a> <em class="jxr_javadoccomment">     * Analyze the given XML tree (DOM of the repository file) and remove missing resources.</em>
+<a name="133" href="#133">133</a> <em class="jxr_javadoccomment">     * </em>
+<a name="134" href="#134">134</a> <em class="jxr_javadoccomment">     * @param elem : the input XML tree</em>
+<a name="135" href="#135">135</a> <em class="jxr_javadoccomment">     * @return the cleaned XML tree</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> Element cleanDocument( Element elem )
+<a name="138" href="#138">138</a>     {
+<a name="139" href="#139">139</a>         String localRepoPath = localRepository.getBasedir();
+<a name="140" href="#140">140</a>         URI baseURI = <strong class="jxr_keyword">new</strong> File( localRepoPath + '/' ).toURI();
+<a name="141" href="#141">141</a>         NodeList nodes = elem.getElementsByTagName( <span class="jxr_string">"resource"</span> );
+<a name="142" href="#142">142</a>         List toRemove = <strong class="jxr_keyword">new</strong> ArrayList();
+<a name="143" href="#143">143</a> 
+<a name="144" href="#144">144</a>         <em class="jxr_comment">// First, look for missing resources</em>
+<a name="145" href="#145">145</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; nodes.getLength(); i++ )
+<a name="146" href="#146">146</a>         {
+<a name="147" href="#147">147</a>             Element n = ( Element ) nodes.item( i );
+<a name="148" href="#148">148</a>             String value = n.getAttribute( <span class="jxr_string">"uri"</span> );
+<a name="149" href="#149">149</a> 
+<a name="150" href="#150">150</a>             URI resource;
+<a name="151" href="#151">151</a>             <strong class="jxr_keyword">try</strong>
+<a name="152" href="#152">152</a>             {
+<a name="153" href="#153">153</a>                 resource = baseURI.resolve( value );
+<a name="154" href="#154">154</a>             }
+<a name="155" href="#155">155</a>             <strong class="jxr_keyword">catch</strong> ( IllegalArgumentException e )
+<a name="156" href="#156">156</a>             {
+<a name="157" href="#157">157</a>                 getLog().error( <span class="jxr_string">"Malformed URL when creating the resource absolute URI : "</span> + e.getMessage() );
+<a name="158" href="#158">158</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="159" href="#159">159</a>             }
+<a name="160" href="#160">160</a> 
+<a name="161" href="#161">161</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"file"</span>.equals( resource.getScheme() ) &amp;&amp; !<strong class="jxr_keyword">new</strong> File( resource ).exists() )
+<a name="162" href="#162">162</a>             {
+<a name="163" href="#163">163</a>                 getLog().info(
+<a name="164" href="#164">164</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="165" href="#165">165</a>                         + <span class="jxr_string">" will be removed"</span> );
+<a name="166" href="#166">166</a>                 toRemove.add( n );
+<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>         Date d = <strong class="jxr_keyword">new</strong> Date();
+<a name="171" href="#171">171</a>         <strong class="jxr_keyword">if</strong> ( toRemove.size() &gt; 0 )
+<a name="172" href="#172">172</a>         {
+<a name="173" href="#173">173</a>             <em class="jxr_comment">// Then remove missing resources.</em>
+<a name="174" href="#174">174</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; toRemove.size(); i++ )
+<a name="175" href="#175">175</a>             {
+<a name="176" href="#176">176</a>                 elem.removeChild( ( Node ) toRemove.get( i ) );
+<a name="177" href="#177">177</a>             }
+<a name="178" href="#178">178</a> 
+<a name="179" href="#179">179</a>             <em class="jxr_comment">// If we have to remove resources, we need to update 'lastmodified' attribute</em>
+<a name="180" href="#180">180</a>             SimpleDateFormat format = <strong class="jxr_keyword">new</strong> SimpleDateFormat( <span class="jxr_string">"yyyyMMddHHmmss.SSS"</span> );
+<a name="181" href="#181">181</a>             d.setTime( System.currentTimeMillis() );
+<a name="182" href="#182">182</a>             elem.setAttribute( <span class="jxr_string">"lastmodified"</span>, format.format( d ) );
+<a name="183" href="#183">183</a>             <strong class="jxr_keyword">return</strong> elem;
+<a name="184" href="#184">184</a>         }
+<a name="185" href="#185">185</a> 
+<a name="186" href="#186">186</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="187" href="#187">187</a>     }
+<a name="188" href="#188">188</a> 
+<a name="189" href="#189">189</a> 
+<a name="190" href="#190">190</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="191" href="#191">191</a> <em class="jxr_javadoccomment">     * Initialize the document builder from Xerces.</em>
+<a name="192" href="#192">192</a> <em class="jxr_javadoccomment">     * </em>
+<a name="193" href="#193">193</a> <em class="jxr_javadoccomment">     * @return DocumentBuilder ready to create new document</em>
+<a name="194" href="#194">194</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException : occurs when the instantiation of the document builder fails</em>
+<a name="195" href="#195">195</a> <em class="jxr_javadoccomment">     */</em>
+<a name="196" href="#196">196</a>     <strong class="jxr_keyword">private</strong> DocumentBuilder initConstructor() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="197" href="#197">197</a>     {
+<a name="198" href="#198">198</a>         DocumentBuilder constructor = <strong class="jxr_keyword">null</strong>;
+<a name="199" href="#199">199</a>         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+<a name="200" href="#200">200</a>         <strong class="jxr_keyword">try</strong>
+<a name="201" href="#201">201</a>         {
+<a name="202" href="#202">202</a>             constructor = factory.newDocumentBuilder();
+<a name="203" href="#203">203</a>         }
+<a name="204" href="#204">204</a>         <strong class="jxr_keyword">catch</strong> ( ParserConfigurationException e )
+<a name="205" href="#205">205</a>         {
+<a name="206" href="#206">206</a>             getLog().error( <span class="jxr_string">"Unable to create a new xml document"</span> );
+<a name="207" href="#207">207</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="208" href="#208">208</a>         }
+<a name="209" href="#209">209</a>         <strong class="jxr_keyword">return</strong> constructor;
+<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>     <em class="jxr_javadoccomment">/**</em>
+<a name="214" href="#214">214</a> <em class="jxr_javadoccomment">     * Open an XML file.</em>
+<a name="215" href="#215">215</a> <em class="jxr_javadoccomment">     * </em>
+<a name="216" href="#216">216</a> <em class="jxr_javadoccomment">     * @param file : XML file path</em>
+<a name="217" href="#217">217</a> <em class="jxr_javadoccomment">     * @param constructor DocumentBuilder get from xerces</em>
+<a name="218" href="#218">218</a> <em class="jxr_javadoccomment">     * @return Document which describes this file</em>
+<a name="219" href="#219">219</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException occurs when the given file cannot be opened or is a valid XML file.</em>
+<a name="220" href="#220">220</a> <em class="jxr_javadoccomment">     */</em>
+<a name="221" href="#221">221</a>     <strong class="jxr_keyword">private</strong> Document parseFile( File file, DocumentBuilder constructor ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="222" href="#222">222</a>     {
+<a name="223" href="#223">223</a>         <strong class="jxr_keyword">if</strong> ( constructor == <strong class="jxr_keyword">null</strong> )
+<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>         <em class="jxr_comment">// The document is the root of the DOM tree.</em>
+<a name="228" href="#228">228</a>         File targetFile = file.getAbsoluteFile();
+<a name="229" href="#229">229</a>         getLog().info( <span class="jxr_string">"Parsing "</span> + targetFile );
+<a name="230" href="#230">230</a>         Document doc = <strong class="jxr_keyword">null</strong>;
+<a name="231" href="#231">231</a>         <strong class="jxr_keyword">try</strong>
+<a name="232" href="#232">232</a>         {
+<a name="233" href="#233">233</a>             doc = constructor.parse( targetFile );
+<a name="234" href="#234">234</a>         }
+<a name="235" href="#235">235</a>         <strong class="jxr_keyword">catch</strong> ( SAXException e )
+<a name="236" href="#236">236</a>         {
+<a name="237" href="#237">237</a>             getLog().error( <span class="jxr_string">"Cannot parse "</span> + targetFile + <span class="jxr_string">" : "</span> + e.getMessage() );
+<a name="238" href="#238">238</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="239" href="#239">239</a>         }
+<a name="240" href="#240">240</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="241" href="#241">241</a>         {
+<a name="242" href="#242">242</a>             getLog().error( <span class="jxr_string">"Cannot open "</span> + targetFile + <span class="jxr_string">" : "</span> + e.getMessage() );
+<a name="243" href="#243">243</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="244" href="#244">244</a>         }
+<a name="245" href="#245">245</a>         <strong class="jxr_keyword">return</strong> doc;
+<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>     <em class="jxr_javadoccomment">/**</em>
+<a name="250" href="#250">250</a> <em class="jxr_javadoccomment">     * write a Node in a xml file.</em>
+<a name="251" href="#251">251</a> <em class="jxr_javadoccomment">     * </em>
+<a name="252" href="#252">252</a> <em class="jxr_javadoccomment">     * @param outputFilename URI to the output file</em>
+<a name="253" href="#253">253</a> <em class="jxr_javadoccomment">     * @param treeToBeWrite Node root of the tree to be write in file</em>
+<a name="254" href="#254">254</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException if the plugin failed</em>
+<a name="255" href="#255">255</a> <em class="jxr_javadoccomment">     */</em>
+<a name="256" href="#256">256</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="257" href="#257">257</a>     {
+<a name="258" href="#258">258</a>         <em class="jxr_comment">// init the transformer</em>
+<a name="259" href="#259">259</a>         Transformer transformer = <strong class="jxr_keyword">null</strong>;
+<a name="260" href="#260">260</a>         TransformerFactory tfabrique = TransformerFactory.newInstance();
+<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>             transformer = tfabrique.newTransformer();
+<a name="264" href="#264">264</a>         }
+<a name="265" href="#265">265</a>         <strong class="jxr_keyword">catch</strong> ( TransformerConfigurationException e )
+<a name="266" href="#266">266</a>         {
+<a name="267" href="#267">267</a>             getLog().error( <span class="jxr_string">"Unable to write to file: "</span> + outputFilename.toString() );
+<a name="268" href="#268">268</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="269" href="#269">269</a>                 + e.getMessage() );
+<a name="270" href="#270">270</a>         }
+<a name="271" href="#271">271</a>         Properties proprietes = <strong class="jxr_keyword">new</strong> Properties();
+<a name="272" href="#272">272</a>         proprietes.put( <span class="jxr_string">"method"</span>, <span class="jxr_string">"xml"</span> );
+<a name="273" href="#273">273</a>         proprietes.put( <span class="jxr_string">"version"</span>, <span class="jxr_string">"1.0"</span> );
+<a name="274" href="#274">274</a>         proprietes.put( <span class="jxr_string">"encoding"</span>, <span class="jxr_string">"ISO-8859-1"</span> );
+<a name="275" href="#275">275</a>         proprietes.put( <span class="jxr_string">"standalone"</span>, <span class="jxr_string">"yes"</span> );
+<a name="276" href="#276">276</a>         proprietes.put( <span class="jxr_string">"indent"</span>, <span class="jxr_string">"yes"</span> );
+<a name="277" href="#277">277</a>         proprietes.put( <span class="jxr_string">"omit-xml-declaration"</span>, <span class="jxr_string">"no"</span> );
+<a name="278" href="#278">278</a>         transformer.setOutputProperties( proprietes );
+<a name="279" href="#279">279</a> 
+<a name="280" href="#280">280</a>         DOMSource input = <strong class="jxr_keyword">new</strong> DOMSource( treeToBeWrite );
+<a name="281" href="#281">281</a> 
+<a name="282" href="#282">282</a>         File fichier = <strong class="jxr_keyword">null</strong>;
+<a name="283" href="#283">283</a>         FileOutputStream flux = <strong class="jxr_keyword">null</strong>;
+<a name="284" href="#284">284</a>         <strong class="jxr_keyword">try</strong>
+<a name="285" href="#285">285</a>         {
+<a name="286" href="#286">286</a>             fichier = File.createTempFile( <span class="jxr_string">"repository"</span>, <span class="jxr_string">".xml"</span> );
+<a name="287" href="#287">287</a>             flux = <strong class="jxr_keyword">new</strong> FileOutputStream( fichier );
+<a name="288" href="#288">288</a>         }
+<a name="289" href="#289">289</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="290" href="#290">290</a>         {
+<a name="291" href="#291">291</a>             getLog().error( <span class="jxr_string">"Unable to write to file: "</span> + fichier.getName() );
+<a name="292" href="#292">292</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="293" href="#293">293</a>         }
+<a name="294" href="#294">294</a>         Result output = <strong class="jxr_keyword">new</strong> StreamResult( flux );
+<a name="295" href="#295">295</a>         <strong class="jxr_keyword">try</strong>
+<a name="296" href="#296">296</a>         {
+<a name="297" href="#297">297</a>             transformer.transform( input, output );
+<a name="298" href="#298">298</a>         }
+<a name="299" href="#299">299</a>         <strong class="jxr_keyword">catch</strong> ( TransformerException e )
+<a name="300" href="#300">300</a>         {
+<a name="301" href="#301">301</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="302" href="#302">302</a>                 + e.getMessage() );
+<a name="303" href="#303">303</a>         }
+<a name="304" href="#304">304</a> 
+<a name="305" href="#305">305</a>         <strong class="jxr_keyword">try</strong>
+<a name="306" href="#306">306</a>         {
+<a name="307" href="#307">307</a>             flux.flush();
+<a name="308" href="#308">308</a>             flux.close();
+<a name="309" href="#309">309</a> 
+<a name="310" href="#310">310</a>             FileUtils.rename( fichier, <strong class="jxr_keyword">new</strong> File( outputFilename ) );
+<a name="311" href="#311">311</a>         }
+<a name="312" href="#312">312</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="313" href="#313">313</a>         {
+<a name="314" href="#314">314</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="315" href="#315">315</a>         }
+<a name="316" href="#316">316</a>     }
+<a name="317" href="#317">317</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/ObrDeploy.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrDeploy.html
new file mode 100644
index 0000000..62d8a37
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrDeploy.html
@@ -0,0 +1,368 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>ObrDeploy xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.net.URI;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.net.URL;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Matcher;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Pattern;
+<a name="30" href="#30">30</a>  
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.manager.WagonManager;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.repository.ArtifactRepository;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.settings.Settings;
+<a name="39" href="#39">39</a>  
+<a name="40" href="#40">40</a>  
+<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * Deploys bundle details to a remote OBR repository (life-cycle goal)</em>
+<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> * @goal deploy</em>
+<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> * @phase deploy</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>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="50" href="#50">50</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/ObrDeploy.html">ObrDeploy</a> <strong class="jxr_keyword">extends</strong> AbstractMojo
+<a name="51" href="#51">51</a>  {
+<a name="52" href="#52">52</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">     * When true, ignore remote locking.</em>
+<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment">     * @parameter expression="${ignoreLock}"</em>
+<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="57" href="#57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> ignoreLock;
+<a name="58" href="#58">58</a>  
+<a name="59" href="#59">59</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     * Optional public URL prefix for the remote repository.</em>
+<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * @parameter expression="${prefixUrl}"</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> String prefixUrl;
+<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">     * Optional public URL where the bundle has been deployed.</em>
+<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     * @parameter expression="${bundleUrl}"</em>
+<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> String bundleUrl;
+<a name="72" href="#72">72</a>  
+<a name="73" href="#73">73</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     * Remote OBR Repository.</em>
+<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * @parameter expression="${remoteOBR}" default-value="NONE"</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> String remoteOBR;
+<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">     * Local OBR Repository.</em>
+<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment">     * @parameter expression="${obrRepository}"</em>
+<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="85" href="#85">85</a>      <strong class="jxr_keyword">private</strong> String obrRepository;
+<a name="86" href="#86">86</a>  
+<a name="87" href="#87">87</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     * Project types which this plugin supports.</em>
+<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="92" href="#92">92</a>      <strong class="jxr_keyword">private</strong> List supportedProjectTypes = Arrays.asList( <strong class="jxr_keyword">new</strong> String[]
+<a name="93" href="#93">93</a>          { <span class="jxr_string">"jar"</span>, <span class="jxr_string">"bundle"</span> } );
+<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">     * @parameter expression="${project.distributionManagementArtifactRepository}"</em>
+<a name="97" href="#97">97</a>  <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="99" href="#99">99</a>      <strong class="jxr_keyword">private</strong> ArtifactRepository deploymentRepository;
+<a name="100" href="#100">100</a> 
+<a name="101" href="#101">101</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     * Alternative deployment repository. Format: id::layout::url</em>
+<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     * </em>
+<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     * @parameter expression="${altDeploymentRepository}"</em>
+<a name="105" href="#105">105</a> <em class="jxr_javadoccomment">     */</em>
+<a name="106" href="#106">106</a>     <strong class="jxr_keyword">private</strong> String altDeploymentRepository;
+<a name="107" href="#107">107</a> 
+<a name="108" href="#108">108</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     * OBR specific deployment repository. Format: id::layout::url</em>
+<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     * </em>
+<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     * @parameter expression="${obrDeploymentRepository}"</em>
+<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     */</em>
+<a name="113" href="#113">113</a>     <strong class="jxr_keyword">private</strong> String obrDeploymentRepository;
+<a name="114" href="#114">114</a> 
+<a name="115" href="#115">115</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="116" href="#116">116</a> <em class="jxr_javadoccomment">     * Local Repository.</em>
+<a name="117" href="#117">117</a> <em class="jxr_javadoccomment">     * </em>
+<a name="118" href="#118">118</a> <em class="jxr_javadoccomment">     * @parameter expression="${localRepository}"</em>
+<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     */</em>
+<a name="122" href="#122">122</a>     <strong class="jxr_keyword">private</strong> ArtifactRepository localRepository;
+<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">     * The Maven project.</em>
+<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     * </em>
+<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     * @parameter expression="${project}"</em>
+<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="129" href="#129">129</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="130" href="#130">130</a> <em class="jxr_javadoccomment">     */</em>
+<a name="131" href="#131">131</a>     <strong class="jxr_keyword">private</strong> MavenProject project;
+<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">     * @parameter expression="${project.attachedArtifacts}</em>
+<a name="135" href="#135">135</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="136" href="#136">136</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="137" href="#137">137</a> <em class="jxr_javadoccomment">     */</em>
+<a name="138" href="#138">138</a>     <strong class="jxr_keyword">private</strong> List attachedArtifacts;
+<a name="139" href="#139">139</a> 
+<a name="140" href="#140">140</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="141" href="#141">141</a> <em class="jxr_javadoccomment">     * Local Maven settings.</em>
+<a name="142" href="#142">142</a> <em class="jxr_javadoccomment">     * </em>
+<a name="143" href="#143">143</a> <em class="jxr_javadoccomment">     * @parameter expression="${settings}"</em>
+<a name="144" href="#144">144</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="145" href="#145">145</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="146" href="#146">146</a> <em class="jxr_javadoccomment">     */</em>
+<a name="147" href="#147">147</a>     <strong class="jxr_keyword">private</strong> Settings settings;
+<a name="148" href="#148">148</a> 
+<a name="149" href="#149">149</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">     * The Wagon manager.</em>
+<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">     * </em>
+<a name="152" href="#152">152</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="153" href="#153">153</a> <em class="jxr_javadoccomment">     */</em>
+<a name="154" href="#154">154</a>     <strong class="jxr_keyword">private</strong> WagonManager m_wagonManager;
+<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">     * Attached source artifact</em>
+<a name="158" href="#158">158</a> <em class="jxr_javadoccomment">     */</em>
+<a name="159" href="#159">159</a>     <strong class="jxr_keyword">private</strong> Artifact m_sourceArtifact;
+<a name="160" href="#160">160</a> 
+<a name="161" href="#161">161</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="162" href="#162">162</a> <em class="jxr_javadoccomment">     * Attached doc artifact</em>
+<a name="163" href="#163">163</a> <em class="jxr_javadoccomment">     */</em>
+<a name="164" href="#164">164</a>     <strong class="jxr_keyword">private</strong> Artifact m_docArtifact;
+<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">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="168" href="#168">168</a>     {
+<a name="169" href="#169">169</a>         String projectType = project.getPackaging();
+<a name="170" href="#170">170</a> 
+<a name="171" href="#171">171</a>         <em class="jxr_comment">// ignore unsupported project types, useful when bundleplugin is configured in parent pom</em>
+<a name="172" href="#172">172</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( projectType ) )
+<a name="173" href="#173">173</a>         {
+<a name="174" href="#174">174</a>             getLog().warn(
+<a name="175" href="#175">175</a>                 <span class="jxr_string">"Ignoring project type "</span> + projectType + <span class="jxr_string">" - supportedProjectTypes = "</span> + supportedProjectTypes );
+<a name="176" href="#176">176</a>             <strong class="jxr_keyword">return</strong>;
+<a name="177" href="#177">177</a>         }
+<a name="178" href="#178">178</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="179" href="#179">179</a>         {
+<a name="180" href="#180">180</a>             getLog().info( <span class="jxr_string">"Remote OBR update disabled (enable with -DremoteOBR)"</span> );
+<a name="181" href="#181">181</a>             <strong class="jxr_keyword">return</strong>;
+<a name="182" href="#182">182</a>         }
+<a name="183" href="#183">183</a> 
+<a name="184" href="#184">184</a>         <em class="jxr_comment">// check for any attached sources or docs</em>
+<a name="185" href="#185">185</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = attachedArtifacts.iterator(); i.hasNext(); )
+<a name="186" href="#186">186</a>         {
+<a name="187" href="#187">187</a>             Artifact artifact = ( Artifact ) i.next();
+<a name="188" href="#188">188</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"sources"</span>.equals( artifact.getClassifier() ) )
+<a name="189" href="#189">189</a>             {
+<a name="190" href="#190">190</a>                 m_sourceArtifact = artifact;
+<a name="191" href="#191">191</a>             }
+<a name="192" href="#192">192</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"javadoc"</span>.equals( artifact.getClassifier() ) )
+<a name="193" href="#193">193</a>             {
+<a name="194" href="#194">194</a>                 m_docArtifact = artifact;
+<a name="195" href="#195">195</a>             }
+<a name="196" href="#196">196</a>         }
+<a name="197" href="#197">197</a> 
+<a name="198" href="#198">198</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="199" href="#199">199</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="200" href="#200">200</a>         {
+<a name="201" href="#201">201</a>             remoteOBR = obrRepository;
+<a name="202" href="#202">202</a>         }
+<a name="203" href="#203">203</a> 
+<a name="204" href="#204">204</a>         URI tempURI = ObrUtils.findRepositoryXml( <span class="jxr_string">""</span>, remoteOBR );
+<a name="205" href="#205">205</a>         String repositoryName = <strong class="jxr_keyword">new</strong> File( tempURI.getSchemeSpecificPart() ).getName();
+<a name="206" href="#206">206</a> 
+<a name="207" href="#207">207</a>         Log log = getLog();
+<a name="208" href="#208">208</a>         <a href="../../../../org/apache/felix/obrplugin/ObrUpdate.html">ObrUpdate</a> update;
+<a name="209" href="#209">209</a> 
+<a name="210" href="#210">210</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="211" href="#211">211</a>         openRepositoryConnection( remoteFile );
+<a name="212" href="#212">212</a> 
+<a name="213" href="#213">213</a>         <em class="jxr_comment">// ======== LOCK REMOTE OBR ========</em>
+<a name="214" href="#214">214</a>         log.info( <span class="jxr_string">"LOCK "</span> + remoteFile + '/' + repositoryName );
+<a name="215" href="#215">215</a>         remoteFile.lockFile( repositoryName, ignoreLock );
+<a name="216" href="#216">216</a>         File downloadedRepositoryXml = <strong class="jxr_keyword">null</strong>;
+<a name="217" href="#217">217</a> 
+<a name="218" href="#218">218</a>         <strong class="jxr_keyword">try</strong>
+<a name="219" href="#219">219</a>         {
+<a name="220" href="#220">220</a>             <em class="jxr_comment">// ======== DOWNLOAD REMOTE OBR ========</em>
+<a name="221" href="#221">221</a>             log.info( <span class="jxr_string">"Downloading "</span> + repositoryName );
+<a name="222" href="#222">222</a>             downloadedRepositoryXml = remoteFile.get( repositoryName, <span class="jxr_string">".xml"</span> );
+<a name="223" href="#223">223</a> 
+<a name="224" href="#224">224</a>             String mavenRepository = localRepository.getBasedir();
+<a name="225" href="#225">225</a> 
+<a name="226" href="#226">226</a>             URI repositoryXml = downloadedRepositoryXml.toURI();
+<a name="227" href="#227">227</a>             URI obrXmlFile = ObrUtils.findObrXml( project );
+<a name="228" href="#228">228</a> 
+<a name="229" href="#229">229</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="230" href="#230">230</a>             userConfig.setRemoteFile( <strong class="jxr_keyword">true</strong> );
+<a name="231" href="#231">231</a> 
+<a name="232" href="#232">232</a>             <strong class="jxr_keyword">if</strong> ( bundleUrl != <strong class="jxr_keyword">null</strong> )
+<a name="233" href="#233">233</a>             {
+<a name="234" href="#234">234</a>                 <em class="jxr_comment">// public URL differs from the bundle file location</em>
+<a name="235" href="#235">235</a>                 URI uri = URI.create( bundleUrl );
+<a name="236" href="#236">236</a>                 log.info( <span class="jxr_string">"Computed bundle uri: "</span> + uri );
+<a name="237" href="#237">237</a>                 userConfig.setRemoteBundle( uri );
+<a name="238" href="#238">238</a>             }
+<a name="239" href="#239">239</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( prefixUrl != <strong class="jxr_keyword">null</strong> )
+<a name="240" href="#240">240</a>             {
+<a name="241" href="#241">241</a>                 <em class="jxr_comment">// support absolute bundle URLs based on given prefix</em>
+<a name="242" href="#242">242</a>                 URI bundleJar = ObrUtils.getArtifactURI( localRepository, project.getArtifact() );
+<a name="243" href="#243">243</a>                 String relative = ObrUtils.getRelativeURI( ObrUtils.toFileURI( mavenRepository ), bundleJar )
+<a name="244" href="#244">244</a>                     .toASCIIString();
+<a name="245" href="#245">245</a>                 URL resourceURL = <strong class="jxr_keyword">new</strong> URL( <strong class="jxr_keyword">new</strong> URL( prefixUrl + '/' ), relative );
+<a name="246" href="#246">246</a>                 URI uri = URI.create( resourceURL.toString() );
+<a name="247" href="#247">247</a>                 log.info( <span class="jxr_string">"Computed bundle uri: "</span> + uri );
+<a name="248" href="#248">248</a>                 userConfig.setRemoteBundle( uri );
+<a name="249" href="#249">249</a>             }
+<a name="250" href="#250">250</a> 
+<a name="251" href="#251">251</a>             update = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/obrplugin/ObrUpdate.html">ObrUpdate</a>( repositoryXml, obrXmlFile, project, mavenRepository, userConfig, log );
+<a name="252" href="#252">252</a>             update.parseRepositoryXml();
+<a name="253" href="#253">253</a> 
+<a name="254" href="#254">254</a>             updateRemoteBundleMetadata( project.getArtifact(), update );
+<a name="255" href="#255">255</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = attachedArtifacts.iterator(); i.hasNext(); )
+<a name="256" href="#256">256</a>             {
+<a name="257" href="#257">257</a>                 updateRemoteBundleMetadata( ( Artifact ) i.next(), update );
+<a name="258" href="#258">258</a>             }
+<a name="259" href="#259">259</a> 
+<a name="260" href="#260">260</a>             update.writeRepositoryXml();
+<a name="261" href="#261">261</a> 
+<a name="262" href="#262">262</a>             <strong class="jxr_keyword">if</strong> ( downloadedRepositoryXml.exists() )
+<a name="263" href="#263">263</a>             {
+<a name="264" href="#264">264</a>                 <em class="jxr_comment">// ======== UPLOAD MODIFIED OBR ========</em>
+<a name="265" href="#265">265</a>                 log.info( <span class="jxr_string">"Uploading "</span> + repositoryName );
+<a name="266" href="#266">266</a>                 remoteFile.put( downloadedRepositoryXml, repositoryName );
+<a name="267" href="#267">267</a>             }
+<a name="268" href="#268">268</a>         }
+<a name="269" href="#269">269</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="270" href="#270">270</a>         {
+<a name="271" href="#271">271</a>             log.warn( <span class="jxr_string">"Exception while updating remote OBR: "</span> + e.getLocalizedMessage(), e );
+<a name="272" href="#272">272</a>         }
+<a name="273" href="#273">273</a>         <strong class="jxr_keyword">finally</strong>
+<a name="274" href="#274">274</a>         {
+<a name="275" href="#275">275</a>             <em class="jxr_comment">// ======== UNLOCK REMOTE OBR ========</em>
+<a name="276" href="#276">276</a>             log.info( <span class="jxr_string">"UNLOCK "</span> + remoteFile + '/' + repositoryName );
+<a name="277" href="#277">277</a>             remoteFile.unlockFile( repositoryName );
+<a name="278" href="#278">278</a>             remoteFile.disconnect();
+<a name="279" href="#279">279</a> 
+<a name="280" href="#280">280</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != downloadedRepositoryXml )
+<a name="281" href="#281">281</a>             {
+<a name="282" href="#282">282</a>                 downloadedRepositoryXml.delete();
+<a name="283" href="#283">283</a>             }
+<a name="284" href="#284">284</a>         }
+<a name="285" href="#285">285</a>     }
+<a name="286" href="#286">286</a> 
+<a name="287" href="#287">287</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="288" href="#288">288</a> 
+<a name="289" href="#289">289</a> 
+<a name="290" href="#290">290</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="291" href="#291">291</a>     {
+<a name="292" href="#292">292</a>         <em class="jxr_comment">// use OBR specific deployment location?</em>
+<a name="293" href="#293">293</a>         <strong class="jxr_keyword">if</strong> ( obrDeploymentRepository != <strong class="jxr_keyword">null</strong> )
+<a name="294" href="#294">294</a>         {
+<a name="295" href="#295">295</a>             altDeploymentRepository = obrDeploymentRepository;
+<a name="296" href="#296">296</a>         }
+<a name="297" href="#297">297</a> 
+<a name="298" href="#298">298</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="299" href="#299">299</a>         {
+<a name="300" href="#300">300</a>             String msg = <span class="jxr_string">"Deployment failed: repository element was not specified in the pom inside"</span>
+<a name="301" href="#301">301</a>                 + <span class="jxr_string">" distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter"</span>;
+<a name="302" href="#302">302</a> 
+<a name="303" href="#303">303</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( msg );
+<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">if</strong> ( altDeploymentRepository != <strong class="jxr_keyword">null</strong> )
+<a name="307" href="#307">307</a>         {
+<a name="308" href="#308">308</a>             getLog().info( <span class="jxr_string">"Using alternate deployment repository "</span> + altDeploymentRepository );
+<a name="309" href="#309">309</a> 
+<a name="310" href="#310">310</a>             Matcher matcher = ALT_REPO_SYNTAX_PATTERN.matcher( altDeploymentRepository );
+<a name="311" href="#311">311</a>             <strong class="jxr_keyword">if</strong> ( !matcher.matches() )
+<a name="312" href="#312">312</a>             {
+<a name="313" href="#313">313</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="314" href="#314">314</a>                     + altDeploymentRepository + <span class="jxr_string">"\&quot;. Use \&quot;id::layout::url\&quot;."</span> );
+<a name="315" href="#315">315</a>             }
+<a name="316" href="#316">316</a> 
+<a name="317" href="#317">317</a>             remoteFile.connect( matcher.group( 1 ).trim(), matcher.group( 3 ).trim() );
+<a name="318" href="#318">318</a>         }
+<a name="319" href="#319">319</a>         <strong class="jxr_keyword">else</strong>
+<a name="320" href="#320">320</a>         {
+<a name="321" href="#321">321</a>             remoteFile.connect( deploymentRepository.getId(), deploymentRepository.getUrl() );
+<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> 
+<a name="326" href="#326">326</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> updateRemoteBundleMetadata( Artifact artifact, ObrUpdate update ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="327" href="#327">327</a>     {
+<a name="328" href="#328">328</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( artifact.getType() ) )
+<a name="329" href="#329">329</a>         {
+<a name="330" href="#330">330</a>             <strong class="jxr_keyword">return</strong>;
+<a name="331" href="#331">331</a>         }
+<a name="332" href="#332">332</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == artifact.getFile() || artifact.getFile().isDirectory() )
+<a name="333" href="#333">333</a>         {
+<a name="334" href="#334">334</a>             getLog().error( <span class="jxr_string">"No artifact found, try \&quot;mvn install bundle:deploy\&quot;"</span> );
+<a name="335" href="#335">335</a>             <strong class="jxr_keyword">return</strong>;
+<a name="336" href="#336">336</a>         }
+<a name="337" href="#337">337</a> 
+<a name="338" href="#338">338</a>         URI bundleJar = ObrUtils.getArtifactURI( localRepository, artifact );
+<a name="339" href="#339">339</a> 
+<a name="340" href="#340">340</a>         URI sourceJar = <strong class="jxr_keyword">null</strong>;
+<a name="341" href="#341">341</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != m_sourceArtifact )
+<a name="342" href="#342">342</a>         {
+<a name="343" href="#343">343</a>             sourceJar = ObrUtils.getArtifactURI( localRepository, m_sourceArtifact );
+<a name="344" href="#344">344</a>         }
+<a name="345" href="#345">345</a> 
+<a name="346" href="#346">346</a>         URI docJar = <strong class="jxr_keyword">null</strong>;
+<a name="347" href="#347">347</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != m_docArtifact )
+<a name="348" href="#348">348</a>         {
+<a name="349" href="#349">349</a>             docJar = ObrUtils.getArtifactURI( localRepository, m_docArtifact );
+<a name="350" href="#350">350</a>         }
+<a name="351" href="#351">351</a> 
+<a name="352" href="#352">352</a>         update.updateRepository( bundleJar, sourceJar, docJar );
+<a name="353" href="#353">353</a>     }
+<a name="354" href="#354">354</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/ObrDeployFile.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrDeployFile.html
new file mode 100644
index 0000000..7e3002c
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrDeployFile.html
@@ -0,0 +1,246 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>ObrDeployFile xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.net.URI;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="26" href="#26">26</a>  
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.manager.WagonManager;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.repository.ArtifactRepository;
+<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.project.MavenProject;
+<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>  
+<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"> * Deploys bundle details to a remote OBR repository (command-line goal)</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * @requiresProject false</em>
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * @goal deploy-file</em>
+<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * @phase deploy</em>
+<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="42" href="#42">42</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="43" href="#43">43</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="44" href="#44">44</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/ObrDeployFile.html">ObrDeployFile</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/obrplugin/AbstractFileMojo.html">AbstractFileMojo</a>
+<a name="45" href="#45">45</a>  {
+<a name="46" href="#46">46</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">     * When true, ignore remote locking.</em>
+<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">     * @parameter expression="${ignoreLock}"</em>
+<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="51" href="#51">51</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> ignoreLock;
+<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">     * Remote OBR Repository.</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="${remoteOBR}"</em>
+<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> String remoteOBR;
+<a name="59" href="#59">59</a>  
+<a name="60" href="#60">60</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     * Local OBR Repository.</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * @parameter expression="${obrRepository}"</em>
+<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> String obrRepository;
+<a name="66" href="#66">66</a>  
+<a name="67" href="#67">67</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     * Project types which this plugin supports.</em>
+<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="72" href="#72">72</a>      <strong class="jxr_keyword">private</strong> List supportedProjectTypes = Arrays.asList( <strong class="jxr_keyword">new</strong> String[]
+<a name="73" href="#73">73</a>          { <span class="jxr_string">"jar"</span>, <span class="jxr_string">"bundle"</span> } );
+<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">     * Remote repository id, used to lookup authentication settings.</em>
+<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     * @parameter expression="${repositoryId}" default-value="remote-repository"</em>
+<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="81" href="#81">81</a>      <strong class="jxr_keyword">private</strong> String repositoryId;
+<a name="82" href="#82">82</a>  
+<a name="83" href="#83">83</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">     * Remote OBR repository URL, where the bundle details are to be uploaded.</em>
+<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     * @parameter expression="${url}"</em>
+<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * @required</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> String url;
+<a name="90" href="#90">90</a>  
+<a name="91" href="#91">91</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     * Optional public URL where the bundle has been deployed.</em>
+<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="94" href="#94">94</a>  <em class="jxr_javadoccomment">     * @parameter expression="${bundleUrl}"</em>
+<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="96" href="#96">96</a>      <strong class="jxr_keyword">private</strong> String bundleUrl;
+<a name="97" href="#97">97</a>  
+<a name="98" href="#98">98</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     * Local Repository.</em>
+<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     * </em>
+<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     * @parameter expression="${localRepository}"</em>
+<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     */</em>
+<a name="105" href="#105">105</a>     <strong class="jxr_keyword">private</strong> ArtifactRepository localRepository;
+<a name="106" href="#106">106</a> 
+<a name="107" href="#107">107</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     * Local Maven settings.</em>
+<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     * </em>
+<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     * @parameter expression="${settings}"</em>
+<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     * @required</em>
+<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">     */</em>
+<a name="114" href="#114">114</a>     <strong class="jxr_keyword">private</strong> Settings settings;
+<a name="115" href="#115">115</a> 
+<a name="116" href="#116">116</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="117" href="#117">117</a> <em class="jxr_javadoccomment">     * The Wagon manager.</em>
+<a name="118" href="#118">118</a> <em class="jxr_javadoccomment">     * </em>
+<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">     * @component</em>
+<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     */</em>
+<a name="121" href="#121">121</a>     <strong class="jxr_keyword">private</strong> WagonManager m_wagonManager;
+<a name="122" href="#122">122</a> 
+<a name="123" href="#123">123</a> 
+<a name="124" href="#124">124</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="125" href="#125">125</a>     {
+<a name="126" href="#126">126</a>         MavenProject project = getProject();
+<a name="127" href="#127">127</a>         String projectType = project.getPackaging();
+<a name="128" href="#128">128</a> 
+<a name="129" href="#129">129</a>         <em class="jxr_comment">// ignore unsupported project types, useful when bundleplugin is configured in parent pom</em>
+<a name="130" href="#130">130</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( projectType ) )
+<a name="131" href="#131">131</a>         {
+<a name="132" href="#132">132</a>             getLog().warn(
+<a name="133" href="#133">133</a>                 <span class="jxr_string">"Ignoring project type "</span> + projectType + <span class="jxr_string">" - supportedProjectTypes = "</span> + supportedProjectTypes );
+<a name="134" href="#134">134</a>             <strong class="jxr_keyword">return</strong>;
+<a name="135" href="#135">135</a>         }
+<a name="136" href="#136">136</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="137" href="#137">137</a>         {
+<a name="138" href="#138">138</a>             getLog().info( <span class="jxr_string">"Remote OBR update disabled (enable with -DremoteOBR)"</span> );
+<a name="139" href="#139">139</a>             <strong class="jxr_keyword">return</strong>;
+<a name="140" href="#140">140</a>         }
+<a name="141" href="#141">141</a> 
+<a name="142" href="#142">142</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="143" href="#143">143</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="144" href="#144">144</a>         {
+<a name="145" href="#145">145</a>             remoteOBR = obrRepository;
+<a name="146" href="#146">146</a>         }
+<a name="147" href="#147">147</a> 
+<a name="148" href="#148">148</a>         URI tempURI = ObrUtils.findRepositoryXml( <span class="jxr_string">""</span>, remoteOBR );
+<a name="149" href="#149">149</a>         String repositoryName = <strong class="jxr_keyword">new</strong> File( tempURI.getSchemeSpecificPart() ).getName();
+<a name="150" href="#150">150</a> 
+<a name="151" href="#151">151</a>         Log log = getLog();
+<a name="152" href="#152">152</a>         <a href="../../../../org/apache/felix/obrplugin/ObrUpdate.html">ObrUpdate</a> update;
+<a name="153" href="#153">153</a> 
+<a name="154" href="#154">154</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="155" href="#155">155</a>         remoteFile.connect( repositoryId, url );
+<a name="156" href="#156">156</a> 
+<a name="157" href="#157">157</a>         <em class="jxr_comment">// ======== LOCK REMOTE OBR ========</em>
+<a name="158" href="#158">158</a>         log.info( <span class="jxr_string">"LOCK "</span> + remoteFile + '/' + repositoryName );
+<a name="159" href="#159">159</a>         remoteFile.lockFile( repositoryName, ignoreLock );
+<a name="160" href="#160">160</a>         File downloadedRepositoryXml = <strong class="jxr_keyword">null</strong>;
+<a name="161" href="#161">161</a> 
+<a name="162" href="#162">162</a>         <strong class="jxr_keyword">try</strong>
+<a name="163" href="#163">163</a>         {
+<a name="164" href="#164">164</a>             <em class="jxr_comment">// ======== DOWNLOAD REMOTE OBR ========</em>
+<a name="165" href="#165">165</a>             log.info( <span class="jxr_string">"Downloading "</span> + repositoryName );
+<a name="166" href="#166">166</a>             downloadedRepositoryXml = remoteFile.get( repositoryName, <span class="jxr_string">".xml"</span> );
+<a name="167" href="#167">167</a> 
+<a name="168" href="#168">168</a>             String mavenRepository = localRepository.getBasedir();
+<a name="169" href="#169">169</a> 
+<a name="170" href="#170">170</a>             URI repositoryXml = downloadedRepositoryXml.toURI();
+<a name="171" href="#171">171</a>             URI obrXmlFile = ObrUtils.toFileURI( obrXml );
+<a name="172" href="#172">172</a>             URI bundleJar;
+<a name="173" href="#173">173</a> 
+<a name="174" href="#174">174</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == file )
+<a name="175" href="#175">175</a>             {
+<a name="176" href="#176">176</a>                 bundleJar = ObrUtils.getArtifactURI( localRepository, project.getArtifact() );
+<a name="177" href="#177">177</a>             }
+<a name="178" href="#178">178</a>             <strong class="jxr_keyword">else</strong>
+<a name="179" href="#179">179</a>             {
+<a name="180" href="#180">180</a>                 bundleJar = file.toURI();
+<a name="181" href="#181">181</a>             }
+<a name="182" href="#182">182</a> 
+<a name="183" href="#183">183</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="184" href="#184">184</a>             userConfig.setRemoteFile( <strong class="jxr_keyword">true</strong> );
+<a name="185" href="#185">185</a> 
+<a name="186" href="#186">186</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != bundleUrl )
+<a name="187" href="#187">187</a>             {
+<a name="188" href="#188">188</a>                 <em class="jxr_comment">// public URL differs from the bundle file location</em>
+<a name="189" href="#189">189</a>                 URI uri = URI.create( bundleUrl );
+<a name="190" href="#190">190</a>                 log.info( <span class="jxr_string">"Computed bundle uri: "</span> + uri );
+<a name="191" href="#191">191</a>                 userConfig.setRemoteBundle( uri );
+<a name="192" href="#192">192</a>             }
+<a name="193" href="#193">193</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != file )
+<a name="194" href="#194">194</a>             {
+<a name="195" href="#195">195</a>                 <em class="jxr_comment">// assume file will be deployed in remote repository, so find the remote relative location</em>
+<a name="196" href="#196">196</a>                 URI uri = URI.create( localRepository.pathOf( project.getArtifact() ) );
+<a name="197" href="#197">197</a>                 log.info( <span class="jxr_string">"Computed bundle uri: "</span> + uri );
+<a name="198" href="#198">198</a>                 userConfig.setRemoteBundle( uri );
+<a name="199" href="#199">199</a>             }
+<a name="200" href="#200">200</a> 
+<a name="201" href="#201">201</a>             update = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/obrplugin/ObrUpdate.html">ObrUpdate</a>( repositoryXml, obrXmlFile, project, mavenRepository, userConfig, log );
+<a name="202" href="#202">202</a>             update.parseRepositoryXml();
+<a name="203" href="#203">203</a> 
+<a name="204" href="#204">204</a>             update.updateRepository( bundleJar, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> );
+<a name="205" href="#205">205</a> 
+<a name="206" href="#206">206</a>             update.writeRepositoryXml();
+<a name="207" href="#207">207</a> 
+<a name="208" href="#208">208</a>             <strong class="jxr_keyword">if</strong> ( downloadedRepositoryXml.exists() )
+<a name="209" href="#209">209</a>             {
+<a name="210" href="#210">210</a>                 <em class="jxr_comment">// ======== UPLOAD MODIFIED OBR ========</em>
+<a name="211" href="#211">211</a>                 log.info( <span class="jxr_string">"Uploading "</span> + repositoryName );
+<a name="212" href="#212">212</a>                 remoteFile.put( downloadedRepositoryXml, repositoryName );
+<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">catch</strong> ( Exception e )
+<a name="216" href="#216">216</a>         {
+<a name="217" href="#217">217</a>             log.warn( <span class="jxr_string">"Exception while updating remote OBR: "</span> + e.getLocalizedMessage(), e );
+<a name="218" href="#218">218</a>         }
+<a name="219" href="#219">219</a>         <strong class="jxr_keyword">finally</strong>
+<a name="220" href="#220">220</a>         {
+<a name="221" href="#221">221</a>             <em class="jxr_comment">// ======== UNLOCK REMOTE OBR ========</em>
+<a name="222" href="#222">222</a>             log.info( <span class="jxr_string">"UNLOCK "</span> + remoteFile + '/' + repositoryName );
+<a name="223" href="#223">223</a>             remoteFile.unlockFile( repositoryName );
+<a name="224" href="#224">224</a>             remoteFile.disconnect();
+<a name="225" href="#225">225</a> 
+<a name="226" href="#226">226</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != downloadedRepositoryXml )
+<a name="227" href="#227">227</a>             {
+<a name="228" href="#228">228</a>                 downloadedRepositoryXml.delete();
+<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> }
+</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/ObrIndex.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrIndex.html
new file mode 100644
index 0000000..5b330ad
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrIndex.html
@@ -0,0 +1,277 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>ObrIndex xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.FileFilter;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.FileWriter;
+<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>  <strong class="jxr_keyword">import</strong> java.net.URI;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.net.URISyntaxException;
+<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.List;
+<a name="31" href="#31">31</a>  
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundlerepository.Property;
+<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.RepositoryImpl;
+<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.artifact.repository.ArtifactRepository;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<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>  
+<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"> * Index the content of a maven repository using OBR</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 index</em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * @requiresProject false</em>
+<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> *</em>
+<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="51" href="#51">51</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/ObrIndex.html">ObrIndex</a> <strong class="jxr_keyword">extends</strong> AbstractMojo
+<a name="52" href="#52">52</a>  {
+<a name="53" href="#53">53</a>  
+<a name="54" href="#54">54</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment">     * OBR Repository.</em>
+<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * @parameter expression="${obrRepository}"</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> String obrRepository;
+<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">     * Template for urls</em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     * @parameter expression="${urlTemplate}"</em>
+<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> String urlTemplate;
+<a name="67" href="#67">67</a>  
+<a name="68" href="#68">68</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     * The repository to index</em>
+<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     * @parameter expression="${mavenRepository}</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> String mavenRepository;
+<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">     * Local Repository.</em>
+<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     * @parameter expression="${localRepository}"</em>
+<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="82" href="#82">82</a>      <strong class="jxr_keyword">private</strong> ArtifactRepository localRepository;
+<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">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="86" href="#86">86</a>      {
+<a name="87" href="#87">87</a>          Log log = getLog();
+<a name="88" href="#88">88</a>          <strong class="jxr_keyword">try</strong>
+<a name="89" href="#89">89</a>          {
+<a name="90" href="#90">90</a>              log.info( <span class="jxr_string">"Indexing..."</span> );
+<a name="91" href="#91">91</a>  
+<a name="92" href="#92">92</a>              String repo = mavenRepository;
+<a name="93" href="#93">93</a>              <strong class="jxr_keyword">if</strong> ( repo == <strong class="jxr_keyword">null</strong> )
+<a name="94" href="#94">94</a>              {
+<a name="95" href="#95">95</a>                  repo = localRepository.getBasedir();
+<a name="96" href="#96">96</a>              }
+<a name="97" href="#97">97</a>              URI mavenRepoUri = <strong class="jxr_keyword">new</strong> File( repo ).toURI();
+<a name="98" href="#98">98</a>  
+<a name="99" href="#99">99</a>              URI repositoryXml = ObrUtils.findRepositoryXml( repo, obrRepository );
+<a name="100" href="#100">100</a> 
+<a name="101" href="#101">101</a>             log.info( <span class="jxr_string">"Repository:   "</span> + mavenRepoUri );
+<a name="102" href="#102">102</a>             log.info( <span class="jxr_string">"OBR xml:      "</span> + repositoryXml );
+<a name="103" href="#103">103</a>             log.info( <span class="jxr_string">"URL template: "</span> + urlTemplate );
+<a name="104" href="#104">104</a> 
+<a name="105" href="#105">105</a>             List&lt;File&gt; files = <strong class="jxr_keyword">new</strong> ArrayList&lt;File&gt;();
+<a name="106" href="#106">106</a>             findAllJars( <strong class="jxr_keyword">new</strong> File( repo ), files );
+<a name="107" href="#107">107</a> 
+<a name="108" href="#108">108</a>             DataModelHelperImpl dmh = <strong class="jxr_keyword">new</strong> DataModelHelperImpl();
+<a name="109" href="#109">109</a>             RepositoryImpl repository;
+<a name="110" href="#110">110</a> 
+<a name="111" href="#111">111</a>             File obrRepoFile = <strong class="jxr_keyword">new</strong> File( repositoryXml );
+<a name="112" href="#112">112</a>             <strong class="jxr_keyword">if</strong> ( obrRepoFile.isFile() )
+<a name="113" href="#113">113</a>             {
+<a name="114" href="#114">114</a>                 repository = ( RepositoryImpl ) dmh.repository( repositoryXml.toURL() );
+<a name="115" href="#115">115</a>             }
+<a name="116" href="#116">116</a>             <strong class="jxr_keyword">else</strong>
+<a name="117" href="#117">117</a>             {
+<a name="118" href="#118">118</a>                 repository = <strong class="jxr_keyword">new</strong> RepositoryImpl();
+<a name="119" href="#119">119</a>             }
+<a name="120" href="#120">120</a> 
+<a name="121" href="#121">121</a>             <strong class="jxr_keyword">for</strong> ( File file : files )
+<a name="122" href="#122">122</a>             {
+<a name="123" href="#123">123</a>                 <strong class="jxr_keyword">try</strong>
+<a name="124" href="#124">124</a>                 {
+<a name="125" href="#125">125</a>                     ResourceImpl resource = ( ResourceImpl ) dmh.createResource( file.toURI().toURL() );
+<a name="126" href="#126">126</a>                     <strong class="jxr_keyword">if</strong> ( resource != <strong class="jxr_keyword">null</strong> )
+<a name="127" href="#127">127</a>                     {
+<a name="128" href="#128">128</a>                         repository.addResource( resource );
+<a name="129" href="#129">129</a>                         doTemplate( mavenRepoUri, file, resource );
+<a name="130" href="#130">130</a>                         log.info( <span class="jxr_string">"Adding resource: "</span> + file );
+<a name="131" href="#131">131</a>                     }
+<a name="132" href="#132">132</a>                     <strong class="jxr_keyword">else</strong>
+<a name="133" href="#133">133</a>                     {
+<a name="134" href="#134">134</a>                         log.info( <span class="jxr_string">"Ignoring non OSGi bundle: "</span> + file );
+<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">catch</strong> ( Exception e )
+<a name="138" href="#138">138</a>                 {
+<a name="139" href="#139">139</a>                     log.warn( <span class="jxr_string">"Error processing bundle: "</span> + file + <span class="jxr_string">" "</span> + e.getMessage() );
+<a name="140" href="#140">140</a>                 }
+<a name="141" href="#141">141</a>             }
+<a name="142" href="#142">142</a>             Writer writer = <strong class="jxr_keyword">new</strong> FileWriter( obrRepoFile );
+<a name="143" href="#143">143</a>             <strong class="jxr_keyword">try</strong>
+<a name="144" href="#144">144</a>             {
+<a name="145" href="#145">145</a>                 dmh.writeRepository( repository, writer );
+<a name="146" href="#146">146</a>             }
+<a name="147" href="#147">147</a>             <strong class="jxr_keyword">finally</strong>
+<a name="148" href="#148">148</a>             {
+<a name="149" href="#149">149</a>                 writer.close();
+<a name="150" href="#150">150</a>             }
+<a name="151" href="#151">151</a>         }
+<a name="152" href="#152">152</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="153" href="#153">153</a>         {
+<a name="154" href="#154">154</a>             log.warn( <span class="jxr_string">"Exception while updating local OBR: "</span> + e.getLocalizedMessage(), e );
+<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> 
+<a name="159" href="#159">159</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> doTemplate( URI root, File path, ResourceImpl resource ) <strong class="jxr_keyword">throws</strong> IOException, URISyntaxException
+<a name="160" href="#160">160</a>     {
+<a name="161" href="#161">161</a>         path = path.getAbsoluteFile().getCanonicalFile();
+<a name="162" href="#162">162</a>         String finalUri = root.relativize( path.toURI() ).toString();
+<a name="163" href="#163">163</a>         <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"maven"</span>.equals( urlTemplate ) )
+<a name="164" href="#164">164</a>         {
+<a name="165" href="#165">165</a>             String dir = root.relativize( path.toURI() ).toString();
+<a name="166" href="#166">166</a>             String[] p = dir.split( <span class="jxr_string">"/"</span> );
+<a name="167" href="#167">167</a>             <strong class="jxr_keyword">if</strong> ( p.length &gt;= 4 &amp;&amp; p[p.length - 1].startsWith( p[p.length - 3] + <span class="jxr_string">"-"</span> + p[p.length - 2] ) )
+<a name="168" href="#168">168</a>             {
+<a name="169" href="#169">169</a>                 String artifactId = p[p.length - 3];
+<a name="170" href="#170">170</a>                 String version = p[p.length - 2];
+<a name="171" href="#171">171</a>                 String classifier;
+<a name="172" href="#172">172</a>                 String type;
+<a name="173" href="#173">173</a>                 String artifactIdVersion = artifactId + <span class="jxr_string">"-"</span> + version;
+<a name="174" href="#174">174</a>                 StringBuffer sb = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="175" href="#175">175</a>                 <strong class="jxr_keyword">if</strong> ( p[p.length - 1].charAt( artifactIdVersion.length() ) == '-' )
+<a name="176" href="#176">176</a>                 {
+<a name="177" href="#177">177</a>                     classifier = p[p.length - 1].substring( artifactIdVersion.length() + 1,
+<a name="178" href="#178">178</a>                         p[p.length - 1].lastIndexOf( '.' ) );
+<a name="179" href="#179">179</a>                 }
+<a name="180" href="#180">180</a>                 <strong class="jxr_keyword">else</strong>
+<a name="181" href="#181">181</a>                 {
+<a name="182" href="#182">182</a>                     classifier = <strong class="jxr_keyword">null</strong>;
+<a name="183" href="#183">183</a>                 }
+<a name="184" href="#184">184</a>                 type = p[p.length - 1].substring( p[p.length - 1].lastIndexOf( '.' ) + 1 );
+<a name="185" href="#185">185</a>                 sb.append( <span class="jxr_string">"mvn:"</span> );
+<a name="186" href="#186">186</a>                 <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> j = 0; j &lt; p.length - 3; j++ )
+<a name="187" href="#187">187</a>                 {
+<a name="188" href="#188">188</a>                     <strong class="jxr_keyword">if</strong> ( j &gt; 0 )
+<a name="189" href="#189">189</a>                     {
+<a name="190" href="#190">190</a>                         sb.append( '.' );
+<a name="191" href="#191">191</a>                     }
+<a name="192" href="#192">192</a>                     sb.append( p[j] );
+<a name="193" href="#193">193</a>                 }
+<a name="194" href="#194">194</a>                 sb.append( '/' ).append( artifactId ).append( '/' ).append( version );
+<a name="195" href="#195">195</a>                 <strong class="jxr_keyword">if</strong> ( !<span class="jxr_string">"jar"</span>.equals( type ) || classifier != <strong class="jxr_keyword">null</strong> )
+<a name="196" href="#196">196</a>                 {
+<a name="197" href="#197">197</a>                     sb.append( '/' );
+<a name="198" href="#198">198</a>                     <strong class="jxr_keyword">if</strong> ( !<span class="jxr_string">"jar"</span>.equals( type ) )
+<a name="199" href="#199">199</a>                     {
+<a name="200" href="#200">200</a>                         sb.append( type );
+<a name="201" href="#201">201</a>                     }
+<a name="202" href="#202">202</a>                     <strong class="jxr_keyword">if</strong> ( classifier != <strong class="jxr_keyword">null</strong> )
+<a name="203" href="#203">203</a>                     {
+<a name="204" href="#204">204</a>                         sb.append( '/' ).append( classifier );
+<a name="205" href="#205">205</a>                     }
+<a name="206" href="#206">206</a>                 }
+<a name="207" href="#207">207</a>                 finalUri = sb.toString();
+<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">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="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="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="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> }
+</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/ObrInstall.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrInstall.html
new file mode 100644
index 0000000..329a88a
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrInstall.html
@@ -0,0 +1,200 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>ObrInstall xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<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.net.URI;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<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.List;
+<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.artifact.repository.ArtifactRepository;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<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.project.MavenProject;
+<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"> * Installs bundle details in the local OBR repository (life-cycle goal)</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * @goal install</em>
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * @phase install</em>
+<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * @threadSafe</em>
+<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="42" href="#42">42</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="43" href="#43">43</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="44" href="#44">44</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/ObrInstall.html">ObrInstall</a> <strong class="jxr_keyword">extends</strong> AbstractMojo
+<a name="45" href="#45">45</a>  {
+<a name="46" href="#46">46</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">     * OBR Repository.</em>
+<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">     * @parameter expression="${obrRepository}"</em>
+<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="51" href="#51">51</a>      <strong class="jxr_keyword">private</strong> String obrRepository;
+<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">     * Project types which this plugin supports.</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</em>
+<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> List supportedProjectTypes = Arrays.asList( <strong class="jxr_keyword">new</strong> String[]
+<a name="59" href="#59">59</a>          { <span class="jxr_string">"jar"</span>, <span class="jxr_string">"bundle"</span> } );
+<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">     * Local Repository.</em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     * @parameter expression="${localRepository}"</em>
+<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="68" href="#68">68</a>      <strong class="jxr_keyword">private</strong> ArtifactRepository localRepository;
+<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">     * The Maven project.</em>
+<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     * @parameter expression="${project}"</em>
+<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="77" href="#77">77</a>      <strong class="jxr_keyword">private</strong> MavenProject project;
+<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">     * @parameter expression="${project.attachedArtifacts}</em>
+<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">     * @readonly</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> List attachedArtifacts;
+<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">     * Attached source artifact</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> Artifact m_sourceArtifact;
+<a name="90" href="#90">90</a>  
+<a name="91" href="#91">91</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     * Attached doc artifact</em>
+<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="94" href="#94">94</a>      <strong class="jxr_keyword">private</strong> Artifact m_docArtifact;
+<a name="95" href="#95">95</a>  
+<a name="96" href="#96">96</a>  
+<a name="97" href="#97">97</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute()
+<a name="98" href="#98">98</a>      {
+<a name="99" href="#99">99</a>          String projectType = project.getPackaging();
+<a name="100" href="#100">100</a> 
+<a name="101" href="#101">101</a>         <em class="jxr_comment">// ignore unsupported project types, useful when bundleplugin is configured in parent pom</em>
+<a name="102" href="#102">102</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( projectType ) )
+<a name="103" href="#103">103</a>         {
+<a name="104" href="#104">104</a>             getLog().warn(
+<a name="105" href="#105">105</a>                 <span class="jxr_string">"Ignoring project type "</span> + projectType + <span class="jxr_string">" - supportedProjectTypes = "</span> + supportedProjectTypes );
+<a name="106" href="#106">106</a>             <strong class="jxr_keyword">return</strong>;
+<a name="107" href="#107">107</a>         }
+<a name="108" href="#108">108</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"NONE"</span>.equalsIgnoreCase( obrRepository ) || <span class="jxr_string">"false"</span>.equalsIgnoreCase( obrRepository ) )
+<a name="109" href="#109">109</a>         {
+<a name="110" href="#110">110</a>             getLog().info( <span class="jxr_string">"Local OBR update disabled (enable with -DobrRepository)"</span> );
+<a name="111" href="#111">111</a>             <strong class="jxr_keyword">return</strong>;
+<a name="112" href="#112">112</a>         }
+<a name="113" href="#113">113</a> 
+<a name="114" href="#114">114</a>         <em class="jxr_comment">// check for any attached sources or docs</em>
+<a name="115" href="#115">115</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = attachedArtifacts.iterator(); i.hasNext(); )
+<a name="116" href="#116">116</a>         {
+<a name="117" href="#117">117</a>             Artifact artifact = ( Artifact ) i.next();
+<a name="118" href="#118">118</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"sources"</span>.equals( artifact.getClassifier() ) )
+<a name="119" href="#119">119</a>             {
+<a name="120" href="#120">120</a>                 m_sourceArtifact = artifact;
+<a name="121" href="#121">121</a>             }
+<a name="122" href="#122">122</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"javadoc"</span>.equals( artifact.getClassifier() ) )
+<a name="123" href="#123">123</a>             {
+<a name="124" href="#124">124</a>                 m_docArtifact = artifact;
+<a name="125" href="#125">125</a>             }
+<a name="126" href="#126">126</a>         }
+<a name="127" href="#127">127</a> 
+<a name="128" href="#128">128</a>         Log log = getLog();
+<a name="129" href="#129">129</a>         <a href="../../../../org/apache/felix/obrplugin/ObrUpdate.html">ObrUpdate</a> update;
+<a name="130" href="#130">130</a> 
+<a name="131" href="#131">131</a>         <strong class="jxr_keyword">try</strong>
+<a name="132" href="#132">132</a>         {
+<a name="133" href="#133">133</a>             String mavenRepository = localRepository.getBasedir();
+<a name="134" href="#134">134</a> 
+<a name="135" href="#135">135</a>             URI repositoryXml = ObrUtils.findRepositoryXml( mavenRepository, obrRepository );
+<a name="136" href="#136">136</a>             URI obrXmlFile = ObrUtils.findObrXml( project );
+<a name="137" href="#137">137</a> 
+<a name="138" href="#138">138</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="139" href="#139">139</a> 
+<a name="140" href="#140">140</a>             update = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/obrplugin/ObrUpdate.html">ObrUpdate</a>( repositoryXml, obrXmlFile, project, mavenRepository, userConfig, log );
+<a name="141" href="#141">141</a>             update.parseRepositoryXml();
+<a name="142" href="#142">142</a> 
+<a name="143" href="#143">143</a>             updateLocalBundleMetadata( project.getArtifact(), update );
+<a name="144" href="#144">144</a>             <strong class="jxr_keyword">for</strong> ( Iterator i = attachedArtifacts.iterator(); i.hasNext(); )
+<a name="145" href="#145">145</a>             {
+<a name="146" href="#146">146</a>                 updateLocalBundleMetadata( ( Artifact ) i.next(), update );
+<a name="147" href="#147">147</a>             }
+<a name="148" href="#148">148</a> 
+<a name="149" href="#149">149</a>             update.writeRepositoryXml();
+<a name="150" href="#150">150</a>         }
+<a name="151" href="#151">151</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="152" href="#152">152</a>         {
+<a name="153" href="#153">153</a>             log.warn( <span class="jxr_string">"Exception while updating local OBR: "</span> + e.getLocalizedMessage(), e );
+<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> 
+<a name="158" href="#158">158</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> updateLocalBundleMetadata( Artifact artifact, ObrUpdate update ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="159" href="#159">159</a>     {
+<a name="160" href="#160">160</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( artifact.getType() ) )
+<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>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == artifact.getFile() || artifact.getFile().isDirectory() )
+<a name="165" href="#165">165</a>         {
+<a name="166" href="#166">166</a>             getLog().error( <span class="jxr_string">"No artifact found, try \&quot;mvn install bundle:install\&quot;"</span> );
+<a name="167" href="#167">167</a>             <strong class="jxr_keyword">return</strong>;
+<a name="168" href="#168">168</a>         }
+<a name="169" href="#169">169</a> 
+<a name="170" href="#170">170</a>         URI bundleJar = ObrUtils.getArtifactURI( localRepository, artifact );
+<a name="171" href="#171">171</a> 
+<a name="172" href="#172">172</a>         URI sourceJar = <strong class="jxr_keyword">null</strong>;
+<a name="173" href="#173">173</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != m_sourceArtifact )
+<a name="174" href="#174">174</a>         {
+<a name="175" href="#175">175</a>             sourceJar = ObrUtils.getArtifactURI( localRepository, m_sourceArtifact );
+<a name="176" href="#176">176</a>         }
+<a name="177" href="#177">177</a> 
+<a name="178" href="#178">178</a>         URI docJar = <strong class="jxr_keyword">null</strong>;
+<a name="179" href="#179">179</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != m_docArtifact )
+<a name="180" href="#180">180</a>         {
+<a name="181" href="#181">181</a>             docJar = ObrUtils.getArtifactURI( localRepository, m_docArtifact );
+<a name="182" href="#182">182</a>         }
+<a name="183" href="#183">183</a> 
+<a name="184" href="#184">184</a>         update.updateRepository( bundleJar, sourceJar, docJar );
+<a name="185" href="#185">185</a>     }
+<a name="186" href="#186">186</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/ObrInstallFile.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrInstallFile.html
new file mode 100644
index 0000000..c2464d7
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrInstallFile.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>ObrInstallFile xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<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.net.URI;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="25" href="#25">25</a>  
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.repository.ArtifactRepository;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="30" href="#30">30</a>  
+<a name="31" href="#31">31</a>  
+<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * Installs bundle details in the local OBR repository (command-line goal)</em>
+<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * @requiresProject false</em>
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * @goal install-file</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * @phase install</em>
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="39" href="#39">39</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="40" href="#40">40</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="41" href="#41">41</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/ObrInstallFile.html">ObrInstallFile</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/obrplugin/AbstractFileMojo.html">AbstractFileMojo</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">     * OBR Repository.</em>
+<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment">     * @parameter expression="${obrRepository}"</em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="48" href="#48">48</a>      <strong class="jxr_keyword">private</strong> String obrRepository;
+<a name="49" href="#49">49</a>  
+<a name="50" href="#50">50</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">     * Project types which this plugin supports.</em>
+<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="55" href="#55">55</a>      <strong class="jxr_keyword">private</strong> List supportedProjectTypes = Arrays.asList( <strong class="jxr_keyword">new</strong> String[]
+<a name="56" href="#56">56</a>          { <span class="jxr_string">"jar"</span>, <span class="jxr_string">"bundle"</span> } );
+<a name="57" href="#57">57</a>  
+<a name="58" href="#58">58</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment">     * Local Repository.</em>
+<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     * @parameter expression="${localRepository}"</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * @required</em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="65" href="#65">65</a>      <strong class="jxr_keyword">private</strong> ArtifactRepository localRepository;
+<a name="66" href="#66">66</a>  
+<a name="67" href="#67">67</a>  
+<a name="68" href="#68">68</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="69" href="#69">69</a>      {
+<a name="70" href="#70">70</a>          MavenProject project = getProject();
+<a name="71" href="#71">71</a>          String projectType = project.getPackaging();
+<a name="72" href="#72">72</a>  
+<a name="73" href="#73">73</a>          <em class="jxr_comment">// ignore unsupported project types, useful when bundleplugin is configured in parent pom</em>
+<a name="74" href="#74">74</a>          <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( projectType ) )
+<a name="75" href="#75">75</a>          {
+<a name="76" href="#76">76</a>              getLog().warn(
+<a name="77" href="#77">77</a>                  <span class="jxr_string">"Ignoring project type "</span> + projectType + <span class="jxr_string">" - supportedProjectTypes = "</span> + supportedProjectTypes );
+<a name="78" href="#78">78</a>              <strong class="jxr_keyword">return</strong>;
+<a name="79" href="#79">79</a>          }
+<a name="80" href="#80">80</a>          <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"NONE"</span>.equalsIgnoreCase( obrRepository ) || <span class="jxr_string">"false"</span>.equalsIgnoreCase( obrRepository ) )
+<a name="81" href="#81">81</a>          {
+<a name="82" href="#82">82</a>              getLog().info( <span class="jxr_string">"Local OBR update disabled (enable with -DobrRepository)"</span> );
+<a name="83" href="#83">83</a>              <strong class="jxr_keyword">return</strong>;
+<a name="84" href="#84">84</a>          }
+<a name="85" href="#85">85</a>  
+<a name="86" href="#86">86</a>          Log log = getLog();
+<a name="87" href="#87">87</a>          <a href="../../../../org/apache/felix/obrplugin/ObrUpdate.html">ObrUpdate</a> update;
+<a name="88" href="#88">88</a>  
+<a name="89" href="#89">89</a>          String mavenRepository = localRepository.getBasedir();
+<a name="90" href="#90">90</a>  
+<a name="91" href="#91">91</a>          URI repositoryXml = ObrUtils.findRepositoryXml( mavenRepository, obrRepository );
+<a name="92" href="#92">92</a>          URI obrXmlFile = ObrUtils.toFileURI( obrXml );
+<a name="93" href="#93">93</a>          URI bundleJar;
+<a name="94" href="#94">94</a>  
+<a name="95" href="#95">95</a>          <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == file )
+<a name="96" href="#96">96</a>          {
+<a name="97" href="#97">97</a>              bundleJar = ObrUtils.getArtifactURI( localRepository, project.getArtifact() );
+<a name="98" href="#98">98</a>          }
+<a name="99" href="#99">99</a>          <strong class="jxr_keyword">else</strong>
+<a name="100" href="#100">100</a>         {
+<a name="101" href="#101">101</a>             bundleJar = file.toURI();
+<a name="102" href="#102">102</a>         }
+<a name="103" href="#103">103</a> 
+<a name="104" href="#104">104</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="105" href="#105">105</a> 
+<a name="106" href="#106">106</a>         update = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/obrplugin/ObrUpdate.html">ObrUpdate</a>( repositoryXml, obrXmlFile, project, mavenRepository, userConfig, log );
+<a name="107" href="#107">107</a>         update.parseRepositoryXml();
+<a name="108" href="#108">108</a> 
+<a name="109" href="#109">109</a>         update.updateRepository( bundleJar, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> );
+<a name="110" href="#110">110</a> 
+<a name="111" href="#111">111</a>         update.writeRepositoryXml();
+<a name="112" href="#112">112</a>     }
+<a name="113" href="#113">113</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
new file mode 100644
index 0000000..cdbd2db
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrRemoteClean.html
@@ -0,0 +1,504 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>ObrRemoteClean xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.BufferedReader;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.FileNotFoundException;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.FileOutputStream;
+<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.InputStreamReader;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.net.MalformedURLException;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.net.URI;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.net.URL;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.text.SimpleDateFormat;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
+<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Matcher;
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Pattern;
+<a name="39" href="#39">39</a>  
+<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilder;
+<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilderFactory;
+<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.ParserConfigurationException;
+<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.Result;
+<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.Transformer;
+<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.TransformerConfigurationException;
+<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.TransformerException;
+<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.TransformerFactory;
+<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.dom.DOMSource;
+<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> javax.xml.transform.stream.StreamResult;
+<a name="50" href="#50">50</a>  
+<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.manager.WagonManager;
+<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.repository.ArtifactRepository;
+<a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<a name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
+<a name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.settings.Settings;
+<a name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Document;
+<a name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Element;
+<a name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Node;
+<a name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.NodeList;
+<a name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> org.xml.sax.SAXException;
+<a name="63" href="#63">63</a>  
+<a name="64" href="#64">64</a>  
+<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment"> * Clean a remote repository file.</em>
+<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment"> * It just looks for every resources and check that pointed file exists.</em>
+<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment"> * @requiresProject false</em>
+<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment"> * @goal remote-clean</em>
+<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment"> * @phase clean</em>
+<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="73" href="#73">73</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="74" href="#74">74</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="75" href="#75">75</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/ObrRemoteClean.html">ObrRemoteClean</a> <strong class="jxr_keyword">extends</strong> AbstractMojo
+<a name="76" href="#76">76</a>  {
+<a name="77" href="#77">77</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="78" href="#78">78</a>  <em class="jxr_javadoccomment">     * When true, ignore remote locking.</em>
+<a name="79" href="#79">79</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="80" href="#80">80</a>  <em class="jxr_javadoccomment">     * @parameter expression="${ignoreLock}"</em>
+<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="82" href="#82">82</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> ignoreLock;
+<a name="83" href="#83">83</a>  
+<a name="84" href="#84">84</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment">     * Optional public URL prefix for the remote repository.</em>
+<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">     *</em>
+<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * @parameter expression="${prefixUrl}"</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> String prefixUrl;
+<a name="90" href="#90">90</a>  
+<a name="91" href="#91">91</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     * Remote OBR Repository.</em>
+<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="94" href="#94">94</a>  <em class="jxr_javadoccomment">     * @parameter expression="${remoteOBR}" default-value="NONE"</em>
+<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="96" href="#96">96</a>      <strong class="jxr_keyword">private</strong> String remoteOBR;
+<a name="97" href="#97">97</a>  
+<a name="98" href="#98">98</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment">     * Local OBR Repository.</em>
+<a name="100" href="#100">100</a> <em class="jxr_javadoccomment">     * </em>
+<a name="101" href="#101">101</a> <em class="jxr_javadoccomment">     * @parameter expression="${obrRepository}"</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> String obrRepository;
+<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">     * Project types which this plugin supports.</em>
+<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     *</em>
+<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     * @parameter</em>
+<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     */</em>
+<a name="110" href="#110">110</a>     <strong class="jxr_keyword">private</strong> List supportedProjectTypes = Arrays.asList( <strong class="jxr_keyword">new</strong> String[]
+<a name="111" href="#111">111</a>         { <span class="jxr_string">"jar"</span>, <span class="jxr_string">"bundle"</span> } );
+<a name="112" href="#112">112</a> 
+<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="${project.distributionManagementArtifactRepository}"</em>
+<a name="115" href="#115">115</a> <em class="jxr_javadoccomment">     * @readonly</em>
+<a name="116" href="#116">116</a> <em class="jxr_javadoccomment">     */</em>
+<a name="117" href="#117">117</a>     <strong class="jxr_keyword">private</strong> ArtifactRepository deploymentRepository;
+<a name="118" href="#118">118</a> 
+<a name="119" href="#119">119</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="120" href="#120">120</a> <em class="jxr_javadoccomment">     * Alternative deployment repository. Format: id::layout::url</em>
+<a name="121" href="#121">121</a> <em class="jxr_javadoccomment">     * </em>
+<a name="122" href="#122">122</a> <em class="jxr_javadoccomment">     * @parameter expression="${altDeploymentRepository}"</em>
+<a name="123" href="#123">123</a> <em class="jxr_javadoccomment">     */</em>
+<a name="124" href="#124">124</a>     <strong class="jxr_keyword">private</strong> String altDeploymentRepository;
+<a name="125" href="#125">125</a> 
+<a name="126" href="#126">126</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     * OBR specific deployment repository. Format: id::layout::url</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 expression="${obrDeploymentRepository}"</em>
+<a name="130" href="#130">130</a> <em class="jxr_javadoccomment">     */</em>
+<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="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="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="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="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="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="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="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> }
+</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
new file mode 100644
index 0000000..4c52dee
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrUpdate.html
@@ -0,0 +1,369 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>ObrUpdate xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*<em class="jxr_comment"> </em></em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.FileInputStream;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.FileOutputStream;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.io.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="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="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="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="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="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="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="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="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="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="345" href="#345">345</a>             }
+<a name="346" href="#346">346</a>             <strong class="jxr_keyword">else</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> }
+</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/ObrUtils.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrUtils.html
new file mode 100644
index 0000000..7e3cb55
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/ObrUtils.html
@@ -0,0 +1,187 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>ObrUtils xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.net.URI;
+<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.regex.Pattern;
+<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.artifact.repository.ArtifactRepository;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Resource;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
+<a name="31" href="#31">31</a>  
+<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"> * Various OBR utility methods</em>
+<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:dev@felix.apache.org" target="alexandria_uri">mailto:dev@felix.apache.org</a>"&gt;Felix Project Team&lt;/a&gt;</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="38" href="#38">38</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/ObrUtils.html">ObrUtils</a>
+<a name="39" href="#39">39</a>  {
+<a name="40" href="#40">40</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String DOT_XML = <span class="jxr_string">".xml"</span>;
+<a name="41" href="#41">41</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String REPO_XML = <span class="jxr_string">"repository.xml"</span>;
+<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> String OBR_XML = <span class="jxr_string">"obr.xml"</span>;
+<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">     * @param mavenRepository path to local maven repository</em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">     * @param obrRepository path to specific repository.xml</em>
+<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment">     * @return URI pointing to correct repository.xml</em>
+<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="50" href="#50">50</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> URI findRepositoryXml( String mavenRepository, String obrRepository )
+<a name="51" href="#51">51</a>      {
+<a name="52" href="#52">52</a>          String targetPath = obrRepository;
+<a name="53" href="#53">53</a>  
+<a name="54" href="#54">54</a>          Pattern ignoredNames = Pattern.compile( <span class="jxr_string">"^(true|false|none|null)?$"</span>, Pattern.CASE_INSENSITIVE );
+<a name="55" href="#55">55</a>  
+<a name="56" href="#56">56</a>          <em class="jxr_comment">// Combine location settings into a single repository location</em>
+<a name="57" href="#57">57</a>          <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == targetPath || ignoredNames.matcher( targetPath ).matches() )
+<a name="58" href="#58">58</a>          {
+<a name="59" href="#59">59</a>              targetPath = mavenRepository + '/' + REPO_XML;
+<a name="60" href="#60">60</a>          }
+<a name="61" href="#61">61</a>          <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( !targetPath.toLowerCase().endsWith( DOT_XML ) )
+<a name="62" href="#62">62</a>          {
+<a name="63" href="#63">63</a>              targetPath = targetPath + '/' + REPO_XML;
+<a name="64" href="#64">64</a>          }
+<a name="65" href="#65">65</a>  
+<a name="66" href="#66">66</a>          URI uri;
+<a name="67" href="#67">67</a>          <strong class="jxr_keyword">try</strong>
+<a name="68" href="#68">68</a>          {
+<a name="69" href="#69">69</a>              uri = <strong class="jxr_keyword">new</strong> URI( targetPath );
+<a name="70" href="#70">70</a>              uri.toURL(); <em class="jxr_comment">// check protocol</em>
+<a name="71" href="#71">71</a>          }
+<a name="72" href="#72">72</a>          <strong class="jxr_keyword">catch</strong> ( Exception e )
+<a name="73" href="#73">73</a>          {
+<a name="74" href="#74">74</a>              uri = <strong class="jxr_keyword">null</strong>;
+<a name="75" href="#75">75</a>          }
+<a name="76" href="#76">76</a>  
+<a name="77" href="#77">77</a>          <em class="jxr_comment">// fall-back to file-system approach</em>
+<a name="78" href="#78">78</a>          <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == uri || !uri.isAbsolute() )
+<a name="79" href="#79">79</a>          {
+<a name="80" href="#80">80</a>              uri = <strong class="jxr_keyword">new</strong> File( targetPath ).toURI();
+<a name="81" href="#81">81</a>          }
+<a name="82" href="#82">82</a>  
+<a name="83" href="#83">83</a>          <strong class="jxr_keyword">return</strong> uri;
+<a name="84" href="#84">84</a>      }
+<a name="85" href="#85">85</a>  
+<a name="86" href="#86">86</a>  
+<a name="87" href="#87">87</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     * @param project current project</em>
+<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * @return URI pointing to correct obr.xml, null if not found</em>
+<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="91" href="#91">91</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> URI findObrXml( MavenProject project )
+<a name="92" href="#92">92</a>      {
+<a name="93" href="#93">93</a>          File obrFile = <strong class="jxr_keyword">new</strong> File( project.getBuild().getOutputDirectory(), OBR_XML );
+<a name="94" href="#94">94</a>          <strong class="jxr_keyword">if</strong> ( obrFile.exists() )
+<a name="95" href="#95">95</a>          {
+<a name="96" href="#96">96</a>              <strong class="jxr_keyword">return</strong> obrFile.toURI();
+<a name="97" href="#97">97</a>          }
+<a name="98" href="#98">98</a>          <strong class="jxr_keyword">for</strong> ( Iterator i = project.getResources().iterator(); i.hasNext(); )
+<a name="99" href="#99">99</a>          {
+<a name="100" href="#100">100</a>             Resource resource = ( Resource ) i.next();
+<a name="101" href="#101">101</a>             obrFile = <strong class="jxr_keyword">new</strong> File( resource.getDirectory(), OBR_XML );
+<a name="102" href="#102">102</a>             <strong class="jxr_keyword">if</strong> ( obrFile.exists() )
+<a name="103" href="#103">103</a>             {
+<a name="104" href="#104">104</a>                 <strong class="jxr_keyword">return</strong> obrFile.toURI();
+<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">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="108" href="#108">108</a>     }
+<a name="109" href="#109">109</a> 
+<a name="110" href="#110">110</a> 
+<a name="111" href="#111">111</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="112" href="#112">112</a> <em class="jxr_javadoccomment">     * @param repository maven repository</em>
+<a name="113" href="#113">113</a> <em class="jxr_javadoccomment">     * @param artifact maven artifact</em>
+<a name="114" href="#114">114</a> <em class="jxr_javadoccomment">     * @return file URI pointing to artifact in repository</em>
+<a name="115" href="#115">115</a> <em class="jxr_javadoccomment">     */</em>
+<a name="116" href="#116">116</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> URI getArtifactURI( ArtifactRepository repository, Artifact artifact )
+<a name="117" href="#117">117</a>     {
+<a name="118" href="#118">118</a>         String baseDir = repository.getBasedir();
+<a name="119" href="#119">119</a>         String artifactPath = repository.pathOf( artifact );
+<a name="120" href="#120">120</a> 
+<a name="121" href="#121">121</a>         <strong class="jxr_keyword">return</strong> toFileURI( baseDir + '/' + artifactPath );
+<a name="122" href="#122">122</a>     }
+<a name="123" href="#123">123</a> 
+<a name="124" href="#124">124</a> 
+<a name="125" href="#125">125</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="126" href="#126">126</a> <em class="jxr_javadoccomment">     * @param path filesystem path</em>
+<a name="127" href="#127">127</a> <em class="jxr_javadoccomment">     * @return file URI for the path</em>
+<a name="128" href="#128">128</a> <em class="jxr_javadoccomment">     */</em>
+<a name="129" href="#129">129</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> URI toFileURI( String path )
+<a name="130" href="#130">130</a>     {
+<a name="131" href="#131">131</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == path )
+<a name="132" href="#132">132</a>         {
+<a name="133" href="#133">133</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="134" href="#134">134</a>         }
+<a name="135" href="#135">135</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( path.startsWith( <span class="jxr_string">"file:"</span> ) )
+<a name="136" href="#136">136</a>         {
+<a name="137" href="#137">137</a>             <strong class="jxr_keyword">return</strong> URI.create( path );
+<a name="138" href="#138">138</a>         }
+<a name="139" href="#139">139</a>         <strong class="jxr_keyword">else</strong>
+<a name="140" href="#140">140</a>         {
+<a name="141" href="#141">141</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> File( path ).toURI();
+<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>     <em class="jxr_javadoccomment">/**</em>
+<a name="147" href="#147">147</a> <em class="jxr_javadoccomment">     * @param repositoryXml URI pointing to repository.xml, or directory containing it</em>
+<a name="148" href="#148">148</a> <em class="jxr_javadoccomment">     * @param bundleJar URI pointing to bundle jarfile</em>
+<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">     * @return relative URI to bundle jarfile</em>
+<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">     */</em>
+<a name="151" href="#151">151</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> URI getRelativeURI( URI repositoryXml, URI bundleJar )
+<a name="152" href="#152">152</a>     {
+<a name="153" href="#153">153</a>         <strong class="jxr_keyword">try</strong>
+<a name="154" href="#154">154</a>         {
+<a name="155" href="#155">155</a>             String repositoryPath = repositoryXml.getPath();
+<a name="156" href="#156">156</a>             <strong class="jxr_keyword">if</strong> ( repositoryPath.toLowerCase().endsWith( DOT_XML ) )
+<a name="157" href="#157">157</a>             {
+<a name="158" href="#158">158</a>                 <em class="jxr_comment">// remove filename to get containing directory</em>
+<a name="159" href="#159">159</a>                 <strong class="jxr_keyword">int</strong> dirnameIndex = repositoryPath.lastIndexOf( '/' );
+<a name="160" href="#160">160</a>                 repositoryPath = repositoryPath.substring( 0, dirnameIndex );
+<a name="161" href="#161">161</a>             }
+<a name="162" href="#162">162</a> 
+<a name="163" href="#163">163</a>             URI rootURI = <strong class="jxr_keyword">new</strong> URI( <strong class="jxr_keyword">null</strong>, repositoryPath, <strong class="jxr_keyword">null</strong> );
+<a name="164" href="#164">164</a>             URI localURI = <strong class="jxr_keyword">new</strong> URI( <strong class="jxr_keyword">null</strong>, bundleJar.getPath(), <strong class="jxr_keyword">null</strong> );
+<a name="165" href="#165">165</a> 
+<a name="166" href="#166">166</a>             <strong class="jxr_keyword">return</strong> rootURI.relativize( localURI );
+<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> bundleJar;
+<a name="171" href="#171">171</a>         }
+<a name="172" href="#172">172</a>     }
+<a name="173" href="#173">173</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/PomHelper.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/PomHelper.html
new file mode 100644
index 0000000..3d48f33
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/PomHelper.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>PomHelper xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.FileNotFoundException;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.FileReader;
+<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.Reader;
+<a name="27" href="#27">27</a>  
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Model;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+<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.project.MavenProject;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.IOUtil;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+<a name="34" href="#34">34</a>  
+<a name="35" href="#35">35</a>  
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> * Maven POM helper methods.</em>
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="39" href="#39">39</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="40" href="#40">40</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="41" href="#41">41</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/PomHelper.html">PomHelper</a>
+<a name="42" href="#42">42</a>  {
+<a name="43" href="#43">43</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> MavenProject readPom( File pomFile ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="44" href="#44">44</a>      {
+<a name="45" href="#45">45</a>          Reader reader = <strong class="jxr_keyword">null</strong>;
+<a name="46" href="#46">46</a>  
+<a name="47" href="#47">47</a>          <strong class="jxr_keyword">try</strong>
+<a name="48" href="#48">48</a>          {
+<a name="49" href="#49">49</a>              reader = <strong class="jxr_keyword">new</strong> FileReader( pomFile );
+<a name="50" href="#50">50</a>              MavenXpp3Reader modelReader = <strong class="jxr_keyword">new</strong> MavenXpp3Reader();
+<a name="51" href="#51">51</a>              <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> MavenProject( modelReader.read( reader ) );
+<a name="52" href="#52">52</a>          }
+<a name="53" href="#53">53</a>          <strong class="jxr_keyword">catch</strong> ( FileNotFoundException e )
+<a name="54" href="#54">54</a>          {
+<a name="55" href="#55">55</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error reading specified POM file: "</span> + e.getMessage(), e );
+<a name="56" href="#56">56</a>          }
+<a name="57" href="#57">57</a>          <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="58" href="#58">58</a>          {
+<a name="59" href="#59">59</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error reading specified POM file: "</span> + e.getMessage(), e );
+<a name="60" href="#60">60</a>          }
+<a name="61" href="#61">61</a>          <strong class="jxr_keyword">catch</strong> ( XmlPullParserException e )
+<a name="62" href="#62">62</a>          {
+<a name="63" href="#63">63</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error reading specified POM file: "</span> + e.getMessage(), e );
+<a name="64" href="#64">64</a>          }
+<a name="65" href="#65">65</a>          <strong class="jxr_keyword">finally</strong>
+<a name="66" href="#66">66</a>          {
+<a name="67" href="#67">67</a>              IOUtil.close( reader );
+<a name="68" href="#68">68</a>          }
+<a name="69" href="#69">69</a>      }
+<a name="70" href="#70">70</a>  
+<a name="71" href="#71">71</a>  
+<a name="72" href="#72">72</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> MavenProject buildPom( String groupId, String artifactId, String version, String packaging )
+<a name="73" href="#73">73</a>      {
+<a name="74" href="#74">74</a>          Model model = <strong class="jxr_keyword">new</strong> Model();
+<a name="75" href="#75">75</a>  
+<a name="76" href="#76">76</a>          model.setModelVersion( <span class="jxr_string">"4.0.0"</span> );
+<a name="77" href="#77">77</a>          model.setGroupId( groupId );
+<a name="78" href="#78">78</a>          model.setArtifactId( artifactId );
+<a name="79" href="#79">79</a>          model.setVersion( version );
+<a name="80" href="#80">80</a>          model.setPackaging( packaging );
+<a name="81" href="#81">81</a>  
+<a name="82" href="#82">82</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> MavenProject( model );
+<a name="83" href="#83">83</a>      }
+<a name="84" href="#84">84</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
new file mode 100644
index 0000000..307a578
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/RemoteFileManager.html
@@ -0,0 +1,387 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>RemoteFileManager xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*<em class="jxr_comment"> </em></em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.BufferedWriter;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.io.FileWriter;
+<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="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;
+<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.repository.Repository;
+<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 is used to manage all connections by wagon.</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/RemoteFileManager.html">RemoteFileManager</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">     * save the connection.</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> Wagon m_wagon;
+<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">     * the wagon manager.</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> WagonManager m_wagonManager;
+<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">     * the project settings.</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> Settings m_settings;
+<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">     * logger instance.</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> Log m_log;
+<a name="70" href="#70">70</a>  
+<a name="71" href="#71">71</a>  
+<a name="72" href="#72">72</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     * initialize main information.</em>
+<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     * @param wm WagonManager provides by maven</em>
+<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     * @param settings settings of the current project provides by maven</em>
+<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     * @param log logger</em>
+<a name="77" href="#77">77</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="78" href="#78">78</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/obrplugin/RemoteFileManager.html">RemoteFileManager</a>( WagonManager wm, Settings settings, Log log )
+<a name="79" href="#79">79</a>      {
+<a name="80" href="#80">80</a>          m_wagonManager = wm;
+<a name="81" href="#81">81</a>          m_settings = settings;
+<a name="82" href="#82">82</a>          m_log = log;
+<a name="83" href="#83">83</a>          m_wagon = <strong class="jxr_keyword">null</strong>;
+<a name="84" href="#84">84</a>      }
+<a name="85" href="#85">85</a>  
+<a name="86" href="#86">86</a>  
+<a name="87" href="#87">87</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     * disconnect the current object.</em>
+<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="90" href="#90">90</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> disconnect()
+<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>              <strong class="jxr_keyword">if</strong> ( m_wagon != <strong class="jxr_keyword">null</strong> )
+<a name="95" href="#95">95</a>              {
+<a name="96" href="#96">96</a>                  m_wagon.disconnect();
+<a name="97" href="#97">97</a>              }
+<a name="98" href="#98">98</a>          }
+<a name="99" href="#99">99</a>          <strong class="jxr_keyword">catch</strong> ( ConnectionException e )
+<a name="100" href="#100">100</a>         {
+<a name="101" href="#101">101</a>             m_log.error( <span class="jxr_string">"Error disconnecting Wagon"</span>, e );
+<a name="102" href="#102">102</a>         }
+<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>     <em class="jxr_javadoccomment">/**</em>
+<a name="107" href="#107">107</a> <em class="jxr_javadoccomment">     * connect the current object to repository given in constructor.</em>
+<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     * @param id repository id</em>
+<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     * @param url repository url</em>
+<a name="110" href="#110">110</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException</em>
+<a name="111" href="#111">111</a> <em class="jxr_javadoccomment">     */</em>
+<a name="112" href="#112">112</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> connect( String id, String url ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="113" href="#113">113</a>     {
+<a name="114" href="#114">114</a>         Repository repository = <strong class="jxr_keyword">new</strong> Repository( id, url );
+<a name="115" href="#115">115</a> 
+<a name="116" href="#116">116</a>         <strong class="jxr_keyword">try</strong>
+<a name="117" href="#117">117</a>         {
+<a name="118" href="#118">118</a>             m_wagon = m_wagonManager.getWagon( repository );
+<a name="119" href="#119">119</a>         }
+<a name="120" href="#120">120</a>         <strong class="jxr_keyword">catch</strong> ( UnsupportedProtocolException e )
+<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="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>         }
+<a name="128" href="#128">128</a> 
+<a name="129" href="#129">129</a>         <strong class="jxr_keyword">try</strong>
+<a name="130" href="#130">130</a>         {
+<a name="131" href="#131">131</a>             ProxyInfo proxyInfo = getProxyInfo( m_settings );
+<a name="132" href="#132">132</a>             <strong class="jxr_keyword">if</strong> ( proxyInfo != <strong class="jxr_keyword">null</strong> )
+<a name="133" href="#133">133</a>             {
+<a name="134" href="#134">134</a>                 m_wagon.connect( repository, m_wagonManager.getAuthenticationInfo( id ), proxyInfo );
+<a name="135" href="#135">135</a>             }
+<a name="136" href="#136">136</a>             <strong class="jxr_keyword">else</strong>
+<a name="137" href="#137">137</a>             {
+<a name="138" href="#138">138</a>                 m_wagon.connect( repository, m_wagonManager.getAuthenticationInfo( id ) );
+<a name="139" href="#139">139</a>             }
+<a name="140" href="#140">140</a>         }
+<a name="141" href="#141">141</a>         <strong class="jxr_keyword">catch</strong> ( ConnectionException e )
+<a name="142" href="#142">142</a>         {
+<a name="143" href="#143">143</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Connection failed"</span>, e );
+<a name="144" href="#144">144</a>         }
+<a name="145" href="#145">145</a>         <strong class="jxr_keyword">catch</strong> ( AuthenticationException e )
+<a name="146" href="#146">146</a>         {
+<a name="147" href="#147">147</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Authentication failed"</span>, e );
+<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> 
+<a name="152" href="#152">152</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="153" href="#153">153</a> <em class="jxr_javadoccomment">     * get a file from the current repository connected.</em>
+<a name="154" href="#154">154</a> <em class="jxr_javadoccomment">     * @param url url to the targeted file</em>
+<a name="155" href="#155">155</a> <em class="jxr_javadoccomment">     * @param suffix suggested file suffix</em>
+<a name="156" href="#156">156</a> <em class="jxr_javadoccomment">     * @return get a file descriptor on the required resource</em>
+<a name="157" href="#157">157</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException</em>
+<a name="158" href="#158">158</a> <em class="jxr_javadoccomment">     */</em>
+<a name="159" href="#159">159</a>     <strong class="jxr_keyword">public</strong> File get( String url, String suffix ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="160" href="#160">160</a>     {
+<a name="161" href="#161">161</a>         <strong class="jxr_keyword">if</strong> ( m_wagon == <strong class="jxr_keyword">null</strong> )
+<a name="162" href="#162">162</a>         {
+<a name="163" href="#163">163</a>             m_log.error( <span class="jxr_string">"must be connected first!"</span> );
+<a name="164" href="#164">164</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="165" href="#165">165</a>         }
+<a name="166" href="#166">166</a> 
+<a name="167" href="#167">167</a>         File file = <strong class="jxr_keyword">null</strong>;
+<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>             file = File.createTempFile( String.valueOf( System.currentTimeMillis() ), suffix );
+<a name="171" href="#171">171</a>         }
+<a name="172" href="#172">172</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<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> MojoExecutionException( <span class="jxr_string">"I/O problem"</span>, e );
+<a name="175" href="#175">175</a>         }
+<a name="176" href="#176">176</a> 
+<a name="177" href="#177">177</a>         <strong class="jxr_keyword">try</strong>
+<a name="178" href="#178">178</a>         {
+<a name="179" href="#179">179</a>             m_wagon.get( url, file );
+<a name="180" href="#180">180</a>         }
+<a name="181" href="#181">181</a>         <strong class="jxr_keyword">catch</strong> ( TransferFailedException e )
+<a name="182" href="#182">182</a>         {
+<a name="183" href="#183">183</a>             file.delete(); <em class="jxr_comment">// cleanup on failure</em>
+<a name="184" href="#184">184</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Transfer failed"</span>, e );
+<a name="185" href="#185">185</a>         }
+<a name="186" href="#186">186</a>         <strong class="jxr_keyword">catch</strong> ( AuthorizationException e )
+<a name="187" href="#187">187</a>         {
+<a name="188" href="#188">188</a>             file.delete(); <em class="jxr_comment">// cleanup on failure</em>
+<a name="189" href="#189">189</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Authorization failed"</span>, e );
+<a name="190" href="#190">190</a>         }
+<a name="191" href="#191">191</a>         <strong class="jxr_keyword">catch</strong> ( ResourceDoesNotExistException e )
+<a name="192" href="#192">192</a>         {
+<a name="193" href="#193">193</a>             file.delete(); <em class="jxr_comment">// return non-existent file</em>
+<a name="194" href="#194">194</a>         }
+<a name="195" href="#195">195</a> 
+<a name="196" href="#196">196</a>         <strong class="jxr_keyword">return</strong> file;
+<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>     <em class="jxr_javadoccomment">/**</em>
+<a name="201" href="#201">201</a> <em class="jxr_javadoccomment">     * put a file on the current repository connected.</em>
+<a name="202" href="#202">202</a> <em class="jxr_javadoccomment">     * @param file file to upload</em>
+<a name="203" href="#203">203</a> <em class="jxr_javadoccomment">     * @param url url to copy file</em>
+<a name="204" href="#204">204</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException</em>
+<a name="205" href="#205">205</a> <em class="jxr_javadoccomment">     */</em>
+<a name="206" href="#206">206</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> put( File file, String url ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="207" href="#207">207</a>     {
+<a name="208" href="#208">208</a>         <strong class="jxr_keyword">if</strong> ( m_wagon == <strong class="jxr_keyword">null</strong> )
+<a name="209" href="#209">209</a>         {
+<a name="210" href="#210">210</a>             m_log.error( <span class="jxr_string">"must be connected first!"</span> );
+<a name="211" href="#211">211</a>             <strong class="jxr_keyword">return</strong>;
+<a name="212" href="#212">212</a>         }
+<a name="213" href="#213">213</a> 
+<a name="214" href="#214">214</a>         <strong class="jxr_keyword">try</strong>
+<a name="215" href="#215">215</a>         {
+<a name="216" href="#216">216</a>             m_wagon.put( file, url );
+<a name="217" href="#217">217</a>         }
+<a name="218" href="#218">218</a>         <strong class="jxr_keyword">catch</strong> ( TransferFailedException e )
+<a name="219" href="#219">219</a>         {
+<a name="220" href="#220">220</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Transfer failed"</span>, e );
+<a name="221" href="#221">221</a>         }
+<a name="222" href="#222">222</a>         <strong class="jxr_keyword">catch</strong> ( AuthorizationException e )
+<a name="223" href="#223">223</a>         {
+<a name="224" href="#224">224</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Authorization failed"</span>, e );
+<a name="225" href="#225">225</a>         }
+<a name="226" href="#226">226</a>         <strong class="jxr_keyword">catch</strong> ( ResourceDoesNotExistException e )
+<a name="227" href="#227">227</a>         {
+<a name="228" href="#228">228</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Resource does not exist:"</span> + file, e );
+<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> 
+<a name="233" href="#233">233</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="234" href="#234">234</a> <em class="jxr_javadoccomment">     * Convenience method to map a Proxy object from the user system settings to a ProxyInfo object.</em>
+<a name="235" href="#235">235</a> <em class="jxr_javadoccomment">     * @param settings project settings given by maven</em>
+<a name="236" href="#236">236</a> <em class="jxr_javadoccomment">     * @return a proxyInfo object instancied or null if no active proxy is define in the settings.xml</em>
+<a name="237" href="#237">237</a> <em class="jxr_javadoccomment">     */</em>
+<a name="238" href="#238">238</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> ProxyInfo getProxyInfo( Settings settings )
+<a name="239" href="#239">239</a>     {
+<a name="240" href="#240">240</a>         ProxyInfo proxyInfo = <strong class="jxr_keyword">null</strong>;
+<a name="241" href="#241">241</a>         <strong class="jxr_keyword">if</strong> ( settings != <strong class="jxr_keyword">null</strong> &amp;&amp; settings.getActiveProxy() != <strong class="jxr_keyword">null</strong> )
+<a name="242" href="#242">242</a>         {
+<a name="243" href="#243">243</a>             Proxy settingsProxy = settings.getActiveProxy();
+<a name="244" href="#244">244</a> 
+<a name="245" href="#245">245</a>             proxyInfo = <strong class="jxr_keyword">new</strong> ProxyInfo();
+<a name="246" href="#246">246</a>             proxyInfo.setHost( settingsProxy.getHost() );
+<a name="247" href="#247">247</a>             proxyInfo.setType( settingsProxy.getProtocol() );
+<a name="248" href="#248">248</a>             proxyInfo.setPort( settingsProxy.getPort() );
+<a name="249" href="#249">249</a>             proxyInfo.setNonProxyHosts( settingsProxy.getNonProxyHosts() );
+<a name="250" href="#250">250</a>             proxyInfo.setUserName( settingsProxy.getUsername() );
+<a name="251" href="#251">251</a>             proxyInfo.setPassword( settingsProxy.getPassword() );
+<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">return</strong> proxyInfo;
+<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">public</strong> <strong class="jxr_keyword">void</strong> lockFile( String fileName, <strong class="jxr_keyword">boolean</strong> ignoreLock ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="259" href="#259">259</a>     {
+<a name="260" href="#260">260</a>         <strong class="jxr_keyword">if</strong> ( !ignoreLock )
+<a name="261" href="#261">261</a>         {
+<a name="262" href="#262">262</a>             <strong class="jxr_keyword">int</strong> countError = 0;
+<a name="263" href="#263">263</a>             <strong class="jxr_keyword">while</strong> ( isLockedFile( fileName ) &amp;&amp; countError &lt; 2 )
+<a name="264" href="#264">264</a>             {
+<a name="265" href="#265">265</a>                 countError++;
+<a name="266" href="#266">266</a>                 m_log.warn( <span class="jxr_string">"File is currently locked, retry in 10s"</span> );
+<a name="267" href="#267">267</a>                 <strong class="jxr_keyword">try</strong>
+<a name="268" href="#268">268</a>                 {
+<a name="269" href="#269">269</a>                     Thread.sleep( 10000 );
+<a name="270" href="#270">270</a>                 }
+<a name="271" href="#271">271</a>                 <strong class="jxr_keyword">catch</strong> ( InterruptedException e )
+<a name="272" href="#272">272</a>                 {
+<a name="273" href="#273">273</a>                     m_log.warn( <span class="jxr_string">"Sleep interrupted"</span> );
+<a name="274" href="#274">274</a>                 }
+<a name="275" href="#275">275</a>             }
+<a name="276" href="#276">276</a> 
+<a name="277" href="#277">277</a>             <strong class="jxr_keyword">if</strong> ( countError == 2 )
+<a name="278" href="#278">278</a>             {
+<a name="279" href="#279">279</a>                 m_log.error( <span class="jxr_string">"File "</span> + fileName + <span class="jxr_string">" is locked. Use -DignoreLock to force uploading"</span> );
+<a name="280" href="#280">280</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Remote file locked"</span> );
+<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>         File file = <strong class="jxr_keyword">null</strong>;
+<a name="285" href="#285">285</a>         <strong class="jxr_keyword">try</strong>
+<a name="286" href="#286">286</a>         {
+<a name="287" href="#287">287</a>             <em class="jxr_comment">// create a non-empty file used to lock the remote file</em>
+<a name="288" href="#288">288</a>             file = File.createTempFile( String.valueOf( System.currentTimeMillis() ), <span class="jxr_string">".lock"</span> );
+<a name="289" href="#289">289</a> 
+<a name="290" href="#290">290</a>             Writer writer = <strong class="jxr_keyword">new</strong> BufferedWriter( <strong class="jxr_keyword">new</strong> FileWriter( file ) );
+<a name="291" href="#291">291</a>             writer.write( <span class="jxr_string">"LOCKED"</span> );
+<a name="292" href="#292">292</a>             writer.close();
+<a name="293" href="#293">293</a> 
+<a name="294" href="#294">294</a>             put( file, fileName + <span class="jxr_string">".lock"</span> );
+<a name="295" href="#295">295</a>         }
+<a name="296" href="#296">296</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="297" href="#297">297</a>         {
+<a name="298" href="#298">298</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"I/O problem"</span>, e );
+<a name="299" href="#299">299</a>         }
+<a name="300" href="#300">300</a>         <strong class="jxr_keyword">finally</strong>
+<a name="301" href="#301">301</a>         {
+<a name="302" href="#302">302</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != file )
+<a name="303" href="#303">303</a>             {
+<a name="304" href="#304">304</a>                 file.delete();
+<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> 
+<a name="309" href="#309">309</a> 
+<a name="310" href="#310">310</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> unlockFile( String fileName ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="311" href="#311">311</a>     {
+<a name="312" href="#312">312</a>         File file = <strong class="jxr_keyword">null</strong>;
+<a name="313" href="#313">313</a>         <strong class="jxr_keyword">try</strong>
+<a name="314" href="#314">314</a>         {
+<a name="315" href="#315">315</a>             <em class="jxr_comment">// clear the contents of the file used to lock the remote file</em>
+<a name="316" href="#316">316</a>             file = File.createTempFile( String.valueOf( System.currentTimeMillis() ), <span class="jxr_string">".lock"</span> );
+<a name="317" href="#317">317</a> 
+<a name="318" href="#318">318</a>             Writer writer = <strong class="jxr_keyword">new</strong> BufferedWriter( <strong class="jxr_keyword">new</strong> FileWriter( file ) );
+<a name="319" href="#319">319</a>             writer.write( <span class="jxr_string">" "</span> ); <em class="jxr_comment">// write 1 byte to force wagon upload</em>
+<a name="320" href="#320">320</a>             writer.close();
+<a name="321" href="#321">321</a> 
+<a name="322" href="#322">322</a>             put( file, fileName + <span class="jxr_string">".lock"</span> );
+<a name="323" href="#323">323</a>         }
+<a name="324" href="#324">324</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="325" href="#325">325</a>         {
+<a name="326" href="#326">326</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"I/O problem"</span>, e );
+<a name="327" href="#327">327</a>         }
+<a name="328" href="#328">328</a>         <strong class="jxr_keyword">finally</strong>
+<a name="329" href="#329">329</a>         {
+<a name="330" href="#330">330</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != file )
+<a name="331" href="#331">331</a>             {
+<a name="332" href="#332">332</a>                 file.delete();
+<a name="333" href="#333">333</a>             }
+<a name="334" href="#334">334</a>         }
+<a name="335" href="#335">335</a>     }
+<a name="336" href="#336">336</a> 
+<a name="337" href="#337">337</a> 
+<a name="338" href="#338">338</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="339" href="#339">339</a> <em class="jxr_javadoccomment">     * this method indicates if the targeted file is locked or not.</em>
+<a name="340" href="#340">340</a> <em class="jxr_javadoccomment">     * @param fileName name targeted</em>
+<a name="341" href="#341">341</a> <em class="jxr_javadoccomment">     * @return  true if the required file is locked, else false</em>
+<a name="342" href="#342">342</a> <em class="jxr_javadoccomment">     * @throws MojoExecutionException</em>
+<a name="343" href="#343">343</a> <em class="jxr_javadoccomment">     */</em>
+<a name="344" href="#344">344</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isLockedFile( String fileName ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a name="345" href="#345">345</a>     {
+<a name="346" href="#346">346</a>         File file = <strong class="jxr_keyword">null</strong>;
+<a name="347" href="#347">347</a>         <strong class="jxr_keyword">try</strong>
+<a name="348" href="#348">348</a>         {
+<a name="349" href="#349">349</a>             file = get( fileName + <span class="jxr_string">".lock"</span>, <span class="jxr_string">".lock"</span> );
+<a name="350" href="#350">350</a> 
+<a name="351" href="#351">351</a>             <em class="jxr_comment">// file is locked with contents "LOCKED"</em>
+<a name="352" href="#352">352</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != file &amp;&amp; file.length() &lt;= 2 )
+<a name="353" href="#353">353</a>             {
+<a name="354" href="#354">354</a>                 <strong class="jxr_keyword">return</strong> false;
+<a name="355" href="#355">355</a>             }
+<a name="356" href="#356">356</a>         }
+<a name="357" href="#357">357</a>         <strong class="jxr_keyword">finally</strong>
+<a name="358" href="#358">358</a>         {
+<a name="359" href="#359">359</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != file )
+<a name="360" href="#360">360</a>             {
+<a name="361" href="#361">361</a>                 file.delete();
+<a name="362" href="#362">362</a>             }
+<a name="363" href="#363">363</a>         }
+<a name="364" href="#364">364</a> 
+<a name="365" href="#365">365</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
+<a name="366" href="#366">366</a>     }
+<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">public</strong> String toString()
+<a name="370" href="#370">370</a>     {
+<a name="371" href="#371">371</a>         <strong class="jxr_keyword">return</strong> m_wagon.getRepository().getUrl();
+<a name="372" href="#372">372</a>     }
+<a name="373" href="#373">373</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/XmlHelper.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/XmlHelper.html
new file mode 100644
index 0000000..a52ed41
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/XmlHelper.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>XmlHelper xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.obrplugin;
+<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> org.w3c.dom.Node;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.NodeList;
+<a name="24" href="#24">24</a>  
+<a name="25" href="#25">25</a>  
+<a name="26" href="#26">26</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment"> * Provide XML helper methods to support pre-Java5 runtimes</em>
+<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="29" href="#29">29</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="30" href="#30">30</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/obrplugin/XmlHelper.html">XmlHelper</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">     * based on public Java5 javadoc of org.w3c.dom.Node.getTextContent method</em>
+<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="36" href="#36">36</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String getTextContent( Node node )
+<a name="37" href="#37">37</a>      {
+<a name="38" href="#38">38</a>          <strong class="jxr_keyword">switch</strong> ( node.getNodeType() )
+<a name="39" href="#39">39</a>          {
+<a name="40" href="#40">40</a>              <strong class="jxr_keyword">case</strong> Node.ELEMENT_NODE:
+<a name="41" href="#41">41</a>              <strong class="jxr_keyword">case</strong> Node.ATTRIBUTE_NODE:
+<a name="42" href="#42">42</a>              <strong class="jxr_keyword">case</strong> Node.ENTITY_NODE:
+<a name="43" href="#43">43</a>              <strong class="jxr_keyword">case</strong> Node.ENTITY_REFERENCE_NODE:
+<a name="44" href="#44">44</a>              <strong class="jxr_keyword">case</strong> Node.DOCUMENT_FRAGMENT_NODE:
+<a name="45" href="#45">45</a>                  <strong class="jxr_keyword">return</strong> mergeTextContent( node.getChildNodes() );
+<a name="46" href="#46">46</a>              <strong class="jxr_keyword">case</strong> Node.TEXT_NODE:
+<a name="47" href="#47">47</a>              <strong class="jxr_keyword">case</strong> Node.CDATA_SECTION_NODE:
+<a name="48" href="#48">48</a>              <strong class="jxr_keyword">case</strong> Node.COMMENT_NODE:
+<a name="49" href="#49">49</a>              <strong class="jxr_keyword">case</strong> Node.PROCESSING_INSTRUCTION_NODE:
+<a name="50" href="#50">50</a>                  <strong class="jxr_keyword">return</strong> node.getNodeValue();
+<a name="51" href="#51">51</a>              <strong class="jxr_keyword">case</strong> Node.DOCUMENT_NODE:
+<a name="52" href="#52">52</a>              <strong class="jxr_keyword">case</strong> Node.DOCUMENT_TYPE_NODE:
+<a name="53" href="#53">53</a>              <strong class="jxr_keyword">case</strong> Node.NOTATION_NODE:
+<a name="54" href="#54">54</a>              <strong class="jxr_keyword">default</strong>:
+<a name="55" href="#55">55</a>                  <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<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>      <em class="jxr_javadoccomment">/**</em>
+<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     * based on the following quote from public Java5 javadoc of org.w3c.dom.Node.getTextContent method:</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * "concatenation of the textContent attribute value of every child node, excluding COMMENT_NODE and</em>
+<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     * PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children"</em>
+<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="66" href="#66">66</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String mergeTextContent( NodeList nodes )
+<a name="67" href="#67">67</a>      {
+<a name="68" href="#68">68</a>          StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="69" href="#69">69</a>          <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; nodes.getLength(); i++ )
+<a name="70" href="#70">70</a>          {
+<a name="71" href="#71">71</a>              Node n = nodes.item( i );
+<a name="72" href="#72">72</a>              <strong class="jxr_keyword">final</strong> String text;
+<a name="73" href="#73">73</a>  
+<a name="74" href="#74">74</a>              <strong class="jxr_keyword">switch</strong> ( n.getNodeType() )
+<a name="75" href="#75">75</a>              {
+<a name="76" href="#76">76</a>                  <strong class="jxr_keyword">case</strong> Node.COMMENT_NODE:
+<a name="77" href="#77">77</a>                  <strong class="jxr_keyword">case</strong> Node.PROCESSING_INSTRUCTION_NODE:
+<a name="78" href="#78">78</a>                      text = <strong class="jxr_keyword">null</strong>;
+<a name="79" href="#79">79</a>                      <strong class="jxr_keyword">break</strong>;
+<a name="80" href="#80">80</a>                  <strong class="jxr_keyword">default</strong>:
+<a name="81" href="#81">81</a>                      text = getTextContent( n );
+<a name="82" href="#82">82</a>                      <strong class="jxr_keyword">break</strong>;
+<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">if</strong> ( text != <strong class="jxr_keyword">null</strong> )
+<a name="86" href="#86">86</a>              {
+<a name="87" href="#87">87</a>                  buf.append( text );
+<a name="88" href="#88">88</a>              }
+<a name="89" href="#89">89</a>          }
+<a name="90" href="#90">90</a>          <strong class="jxr_keyword">return</strong> buf.toString();
+<a name="91" href="#91">91</a>      }
+<a name="92" href="#92">92</a>  
+<a name="93" href="#93">93</a>  
+<a name="94" href="#94">94</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     * based on public Java5 javadoc of org.w3c.dom.Node.setTextContent method</em>
+<a name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="97" href="#97">97</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> setTextContent( Node node, <strong class="jxr_keyword">final</strong> String text )
+<a name="98" href="#98">98</a>      {
+<a name="99" href="#99">99</a>          <strong class="jxr_keyword">while</strong> ( node.hasChildNodes() )
+<a name="100" href="#100">100</a>         {
+<a name="101" href="#101">101</a>             node.removeChild( node.getFirstChild() );
+<a name="102" href="#102">102</a>         }
+<a name="103" href="#103">103</a> 
+<a name="104" href="#104">104</a>         <strong class="jxr_keyword">if</strong> ( text != <strong class="jxr_keyword">null</strong> &amp;&amp; text.length() &gt; 0 )
+<a name="105" href="#105">105</a>         {
+<a name="106" href="#106">106</a>             Node textNode = node.getOwnerDocument().createTextNode( text );
+<a name="107" href="#107">107</a>             node.appendChild( textNode );
+<a name="108" href="#108">108</a>         }
+<a name="109" href="#109">109</a>     }
+<a name="110" href="#110">110</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/package-frame.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/package-frame.html
new file mode 100644
index 0000000..f7d979b
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/package-frame.html
@@ -0,0 +1,63 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>Maven Bundle Plugin 2.3.5 Reference Package org.apache.felix.obrplugin</title>
+		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
+	</head>
+	<body>
+
+		<h3>
+        	<a href="package-summary.html" target="classFrame">org.apache.felix.obrplugin</a>
+      	</h3>
+
+      	<h3>Classes</h3>
+
+      	<ul>
+      		          	<li>
+            	<a href="AbstractFileMojo.html" target="classFrame">AbstractFileMojo</a>
+          	</li>
+          	          	<li>
+            	<a href="Config.html" target="classFrame">Config</a>
+          	</li>
+          	          	<li>
+            	<a href="ObrCleanRepo.html" target="classFrame">ObrCleanRepo</a>
+          	</li>
+          	          	<li>
+            	<a href="ObrDeploy.html" target="classFrame">ObrDeploy</a>
+          	</li>
+          	          	<li>
+            	<a href="ObrDeployFile.html" target="classFrame">ObrDeployFile</a>
+          	</li>
+          	          	<li>
+            	<a href="ObrIndex.html" target="classFrame">ObrIndex</a>
+          	</li>
+          	          	<li>
+            	<a href="ObrInstall.html" target="classFrame">ObrInstall</a>
+          	</li>
+          	          	<li>
+            	<a href="ObrInstallFile.html" target="classFrame">ObrInstallFile</a>
+          	</li>
+          	          	<li>
+            	<a href="ObrRemoteClean.html" target="classFrame">ObrRemoteClean</a>
+          	</li>
+          	          	<li>
+            	<a href="ObrUpdate.html" target="classFrame">ObrUpdate</a>
+          	</li>
+          	          	<li>
+            	<a href="ObrUtils.html" target="classFrame">ObrUtils</a>
+          	</li>
+          	          	<li>
+            	<a href="PomHelper.html" target="classFrame">PomHelper</a>
+          	</li>
+          	          	<li>
+            	<a href="RemoteFileManager.html" target="classFrame">RemoteFileManager</a>
+          	</li>
+          	          	<li>
+            	<a href="XmlHelper.html" target="classFrame">XmlHelper</a>
+          	</li>
+          	      	</ul>
+
+	</body>
+</html>
\ No newline at end of file
diff --git a/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/package-summary.html b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/package-summary.html
new file mode 100644
index 0000000..b3d67e8
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/felix/obrplugin/package-summary.html
@@ -0,0 +1,132 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>Maven Bundle Plugin 2.3.5 Reference Package org.apache.felix.obrplugin</title>
+		<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="style" />
+	</head>
+	<body>
+		      	<div class="overview">
+        	<ul>
+          		<li>
+            		<a href="../../../../overview-summary.html">Overview</a>
+          		</li>
+          		<li class="selected">Package</li>
+        	</ul>
+      	</div>
+      	<div class="framenoframe">
+        	<ul>
+          		<li>
+            		<a href="../../../../index.html" target="_top">FRAMES</a>
+          		</li>
+          		<li>
+            		<a href="package-summary.html" target="_top">NO FRAMES</a>
+          		</li>
+        	</ul>
+      	</div>
+		
+		      	<h2>Package org.apache.felix.obrplugin</h2>
+
+		<table class="summary">
+        	<thead>
+          		<tr>
+            		<th>Class Summary</th>
+          		</tr>
+        	</thead>
+        	<tbody>
+        		            	<tr>
+              		<td>
+                		<a href="AbstractFileMojo.html" target="classFrame">AbstractFileMojo</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="Config.html" target="classFrame">Config</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ObrCleanRepo.html" target="classFrame">ObrCleanRepo</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ObrDeploy.html" target="classFrame">ObrDeploy</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ObrDeployFile.html" target="classFrame">ObrDeployFile</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ObrIndex.html" target="classFrame">ObrIndex</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ObrInstall.html" target="classFrame">ObrInstall</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ObrInstallFile.html" target="classFrame">ObrInstallFile</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ObrRemoteClean.html" target="classFrame">ObrRemoteClean</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ObrUpdate.html" target="classFrame">ObrUpdate</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ObrUtils.html" target="classFrame">ObrUtils</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="PomHelper.html" target="classFrame">PomHelper</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="RemoteFileManager.html" target="classFrame">RemoteFileManager</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="XmlHelper.html" target="classFrame">XmlHelper</a>
+              		</td>
+            	</tr>
+				        	</tbody>
+      	</table>
+		
+		      	<div class="overview">
+        	<ul>
+          		<li>
+            		<a href="../../../../overview-summary.html">Overview</a>
+          		</li>
+          		<li class="selected">Package</li>
+        	</ul>
+      	</div>
+      	<div class="framenoframe">
+        	<ul>
+          		<li>
+            		<a href="../../../../index.html" target="_top">FRAMES</a>
+          		</li>
+          		<li>
+            		<a href="package-summary.html" target="_top">NO FRAMES</a>
+          		</li>
+        	</ul>
+      	</div>
+				<hr />
+		Copyright &copy; 2006-2011 The Apache Software Foundation. All Rights Reserved.
+	</body>
+</html>
\ No newline at end of file
diff --git a/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/DependencyTreeResolutionListener.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/DependencyTreeResolutionListener.html
new file mode 100644
index 0000000..644471f
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/DependencyTreeResolutionListener.html
@@ -0,0 +1,592 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>DependencyTreeResolutionListener xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.maven.shared.dependency.tree;
+<a name="2" href="#2">2</a>   
+<a name="3" href="#3">3</a>   
+<a name="4" href="#4">4</a>   <em class="jxr_comment">/*</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> *</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> *  <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> *</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="19" href="#19">19</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="20" href="#20">20</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="21" href="#21">21</a>  <em class="jxr_comment"> */</em>
+<a name="22" href="#22">22</a>  
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.IdentityHashMap;
+<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.Stack;
+<a name="30" href="#30">30</a>  
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.resolver.ResolutionListener;
+<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.resolver.ResolutionListenerForDepMgmt;
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.versioning.VersionRange;
+<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.dependency.tree.traversal.CollectingDependencyNodeVisitor;
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.logging.Logger;
+<a name="37" href="#37">37</a>  
+<a name="38" href="#38">38</a>  
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * An artifact resolution listener that constructs a dependency tree.</em>
+<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * @author Edwin Punzalan</em>
+<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:markhobson@gmail.com" target="alexandria_uri">mailto:markhobson@gmail.com</a>"&gt;Mark Hobson&lt;/a&gt;</em>
+<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> * @version $Id$</em>
+<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="46" href="#46">46</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/maven/shared/dependency/tree/DependencyTreeResolutionListener.html">DependencyTreeResolutionListener</a> implements ResolutionListener, ResolutionListenerForDepMgmt
+<a name="47" href="#47">47</a>  {
+<a name="48" href="#48">48</a>      <em class="jxr_comment">// fields -----------------------------------------------------------------</em>
+<a name="49" href="#49">49</a>  
+<a name="50" href="#50">50</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">     * The log to write debug messages to.</em>
+<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Logger logger;
+<a name="54" href="#54">54</a>  
+<a name="55" href="#55">55</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     * The parent dependency nodes of the current dependency node.</em>
+<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="58" href="#58">58</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Stack parentNodes;
+<a name="59" href="#59">59</a>  
+<a name="60" href="#60">60</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     * A map of dependency nodes by their attached artifact.</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="63" href="#63">63</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map nodesByArtifact;
+<a name="64" href="#64">64</a>  
+<a name="65" href="#65">65</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     * The root dependency node of the computed dependency tree.</em>
+<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="68" href="#68">68</a>      <strong class="jxr_keyword">private</strong> DependencyNode rootNode;
+<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">     * The dependency node currently being processed by this listener.</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> DependencyNode currentNode;
+<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">     * Map &amp;lt; String replacementId, String premanaged version &gt;</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> Map managedVersions = <strong class="jxr_keyword">new</strong> HashMap();
+<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">     * Map &amp;lt; String replacementId, String premanaged scope &gt;</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> Map managedScopes = <strong class="jxr_keyword">new</strong> HashMap();
+<a name="84" href="#84">84</a>  
+<a name="85" href="#85">85</a>  
+<a name="86" href="#86">86</a>      <em class="jxr_comment">// constructors -----------------------------------------------------------</em>
+<a name="87" href="#87">87</a>  
+<a name="88" href="#88">88</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     * Creates a new dependency tree resolution listener that writes to the specified log.</em>
+<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     * @param logger</em>
+<a name="92" href="#92">92</a>  <em class="jxr_javadoccomment">     *            the log to write debug messages to</em>
+<a name="93" href="#93">93</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="94" href="#94">94</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/maven/shared/dependency/tree/DependencyTreeResolutionListener.html">DependencyTreeResolutionListener</a>( Logger logger )
+<a name="95" href="#95">95</a>      {
+<a name="96" href="#96">96</a>          <strong class="jxr_keyword">this</strong>.logger = logger;
+<a name="97" href="#97">97</a>  
+<a name="98" href="#98">98</a>          parentNodes = <strong class="jxr_keyword">new</strong> Stack();
+<a name="99" href="#99">99</a>          nodesByArtifact = <strong class="jxr_keyword">new</strong> IdentityHashMap();
+<a name="100" href="#100">100</a>         rootNode = <strong class="jxr_keyword">null</strong>;
+<a name="101" href="#101">101</a>         currentNode = <strong class="jxr_keyword">null</strong>;
+<a name="102" href="#102">102</a>     }
+<a name="103" href="#103">103</a> 
+<a name="104" href="#104">104</a> 
+<a name="105" href="#105">105</a>     <em class="jxr_comment">// ResolutionListener methods ---------------------------------------------</em>
+<a name="106" href="#106">106</a> 
+<a name="107" href="#107">107</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="108" href="#108">108</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="109" href="#109">109</a> <em class="jxr_javadoccomment">     */</em>
+<a name="110" href="#110">110</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testArtifact( Artifact artifact )
+<a name="111" href="#111">111</a>     {
+<a name="112" href="#112">112</a>         log( <span class="jxr_string">"testArtifact: artifact="</span> + artifact );
+<a name="113" href="#113">113</a>     }
+<a name="114" href="#114">114</a> 
+<a name="115" href="#115">115</a> 
+<a name="116" href="#116">116</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="117" href="#117">117</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="118" href="#118">118</a> <em class="jxr_javadoccomment">     */</em>
+<a name="119" href="#119">119</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> startProcessChildren( Artifact artifact )
+<a name="120" href="#120">120</a>     {
+<a name="121" href="#121">121</a>         log( <span class="jxr_string">"startProcessChildren: artifact="</span> + artifact );
+<a name="122" href="#122">122</a> 
+<a name="123" href="#123">123</a>         <strong class="jxr_keyword">if</strong> ( !currentNode.getArtifact().equals( artifact ) )
+<a name="124" href="#124">124</a>         {
+<a name="125" href="#125">125</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException( <span class="jxr_string">"Artifact was expected to be "</span> + currentNode.getArtifact() + <span class="jxr_string">" but was "</span>
+<a name="126" href="#126">126</a>                 + artifact );
+<a name="127" href="#127">127</a>         }
+<a name="128" href="#128">128</a> 
+<a name="129" href="#129">129</a>         parentNodes.push( currentNode );
+<a name="130" href="#130">130</a>     }
+<a name="131" href="#131">131</a> 
+<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">     * {@inheritDoc}</em>
+<a name="135" href="#135">135</a> <em class="jxr_javadoccomment">     */</em>
+<a name="136" href="#136">136</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> endProcessChildren( Artifact artifact )
+<a name="137" href="#137">137</a>     {
+<a name="138" href="#138">138</a>         DependencyNode node = ( DependencyNode ) parentNodes.pop();
+<a name="139" href="#139">139</a> 
+<a name="140" href="#140">140</a>         log( <span class="jxr_string">"endProcessChildren: artifact="</span> + artifact );
+<a name="141" href="#141">141</a> 
+<a name="142" href="#142">142</a>         <strong class="jxr_keyword">if</strong> ( node == <strong class="jxr_keyword">null</strong> )
+<a name="143" href="#143">143</a>         {
+<a name="144" href="#144">144</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException( <span class="jxr_string">"Parent dependency node was null"</span> );
+<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">if</strong> ( !node.getArtifact().equals( artifact ) )
+<a name="148" href="#148">148</a>         {
+<a name="149" href="#149">149</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException( <span class="jxr_string">"Parent dependency node artifact was expected to be "</span> + node.getArtifact()
+<a name="150" href="#150">150</a>                 + <span class="jxr_string">" but was "</span> + artifact );
+<a name="151" href="#151">151</a>         }
+<a name="152" href="#152">152</a>     }
+<a name="153" href="#153">153</a> 
+<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">     * {@inheritDoc}</em>
+<a name="157" href="#157">157</a> <em class="jxr_javadoccomment">     */</em>
+<a name="158" href="#158">158</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> includeArtifact( Artifact artifact )
+<a name="159" href="#159">159</a>     {
+<a name="160" href="#160">160</a>         log( <span class="jxr_string">"includeArtifact: artifact="</span> + artifact );
+<a name="161" href="#161">161</a> 
+<a name="162" href="#162">162</a>         DependencyNode existingNode = getNode( artifact );
+<a name="163" href="#163">163</a> 
+<a name="164" href="#164">164</a>         <em class="jxr_comment">/*</em>
+<a name="165" href="#165">165</a> <em class="jxr_comment">         * Ignore duplicate includeArtifact calls since omitForNearer can be called prior to includeArtifact on the same</em>
+<a name="166" href="#166">166</a> <em class="jxr_comment">         * artifact, and we don't wish to include it twice.</em>
+<a name="167" href="#167">167</a> <em class="jxr_comment">         */</em>
+<a name="168" href="#168">168</a>         <strong class="jxr_keyword">if</strong> ( existingNode == <strong class="jxr_keyword">null</strong> &amp;&amp; isCurrentNodeIncluded() )
+<a name="169" href="#169">169</a>         {
+<a name="170" href="#170">170</a>             DependencyNode node = addNode( artifact );
+<a name="171" href="#171">171</a> 
+<a name="172" href="#172">172</a>             <em class="jxr_comment">/*</em>
+<a name="173" href="#173">173</a> <em class="jxr_comment">             * Add the dependency management information cached in any prior manageArtifact calls, since includeArtifact</em>
+<a name="174" href="#174">174</a> <em class="jxr_comment">             * is always called after manageArtifact.</em>
+<a name="175" href="#175">175</a> <em class="jxr_comment">             */</em>
+<a name="176" href="#176">176</a>             flushDependencyManagement( node );
+<a name="177" href="#177">177</a>         }
+<a name="178" href="#178">178</a>     }
+<a name="179" href="#179">179</a> 
+<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">     * {@inheritDoc}</em>
+<a name="183" href="#183">183</a> <em class="jxr_javadoccomment">     */</em>
+<a name="184" href="#184">184</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> omitForNearer( Artifact omitted, Artifact kept )
+<a name="185" href="#185">185</a>     {
+<a name="186" href="#186">186</a>         log( <span class="jxr_string">"omitForNearer: omitted="</span> + omitted + <span class="jxr_string">" kept="</span> + kept );
+<a name="187" href="#187">187</a> 
+<a name="188" href="#188">188</a>         <strong class="jxr_keyword">if</strong> ( !omitted.getDependencyConflictId().equals( kept.getDependencyConflictId() ) )
+<a name="189" href="#189">189</a>         {
+<a name="190" href="#190">190</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException( <span class="jxr_string">"Omitted artifact dependency conflict id "</span>
+<a name="191" href="#191">191</a>                 + omitted.getDependencyConflictId() + <span class="jxr_string">" differs from kept artifact dependency conflict id "</span>
+<a name="192" href="#192">192</a>                 + kept.getDependencyConflictId() );
+<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">if</strong> ( isCurrentNodeIncluded() )
+<a name="196" href="#196">196</a>         {
+<a name="197" href="#197">197</a>             DependencyNode omittedNode = getNode( omitted );
+<a name="198" href="#198">198</a> 
+<a name="199" href="#199">199</a>             <strong class="jxr_keyword">if</strong> ( omittedNode != <strong class="jxr_keyword">null</strong> )
+<a name="200" href="#200">200</a>             {
+<a name="201" href="#201">201</a>                 removeNode( omitted );
+<a name="202" href="#202">202</a>             }
+<a name="203" href="#203">203</a>             <strong class="jxr_keyword">else</strong>
+<a name="204" href="#204">204</a>             {
+<a name="205" href="#205">205</a>                 omittedNode = createNode( omitted );
+<a name="206" href="#206">206</a> 
+<a name="207" href="#207">207</a>                 currentNode = omittedNode;
+<a name="208" href="#208">208</a>             }
+<a name="209" href="#209">209</a> 
+<a name="210" href="#210">210</a>             omittedNode.omitForConflict( kept );
+<a name="211" href="#211">211</a> 
+<a name="212" href="#212">212</a>             <em class="jxr_comment">/*</em>
+<a name="213" href="#213">213</a> <em class="jxr_comment">             * Add the dependency management information cached in any prior manageArtifact calls, since omitForNearer</em>
+<a name="214" href="#214">214</a> <em class="jxr_comment">             * is always called after manageArtifact.</em>
+<a name="215" href="#215">215</a> <em class="jxr_comment">             */</em>
+<a name="216" href="#216">216</a>             flushDependencyManagement( omittedNode );
+<a name="217" href="#217">217</a> 
+<a name="218" href="#218">218</a>             DependencyNode keptNode = getNode( kept );
+<a name="219" href="#219">219</a> 
+<a name="220" href="#220">220</a>             <strong class="jxr_keyword">if</strong> ( keptNode == <strong class="jxr_keyword">null</strong> )
+<a name="221" href="#221">221</a>             {
+<a name="222" href="#222">222</a>                 addNode( kept );
+<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> 
+<a name="227" href="#227">227</a> 
+<a name="228" href="#228">228</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="229" href="#229">229</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="230" href="#230">230</a> <em class="jxr_javadoccomment">     */</em>
+<a name="231" href="#231">231</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateScope( Artifact artifact, String scope )
+<a name="232" href="#232">232</a>     {
+<a name="233" href="#233">233</a>         log( <span class="jxr_string">"updateScope: artifact="</span> + artifact + <span class="jxr_string">", scope="</span> + scope );
+<a name="234" href="#234">234</a> 
+<a name="235" href="#235">235</a>         DependencyNode node = getNode( artifact );
+<a name="236" href="#236">236</a> 
+<a name="237" href="#237">237</a>         <strong class="jxr_keyword">if</strong> ( node == <strong class="jxr_keyword">null</strong> )
+<a name="238" href="#238">238</a>         {
+<a name="239" href="#239">239</a>             <em class="jxr_comment">// updateScope events can be received prior to includeArtifact events</em>
+<a name="240" href="#240">240</a>             node = addNode( artifact );
+<a name="241" href="#241">241</a>         }
+<a name="242" href="#242">242</a> 
+<a name="243" href="#243">243</a>         node.setOriginalScope( artifact.getScope() );
+<a name="244" href="#244">244</a>     }
+<a name="245" href="#245">245</a> 
+<a name="246" href="#246">246</a> 
+<a name="247" href="#247">247</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="248" href="#248">248</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="249" href="#249">249</a> <em class="jxr_javadoccomment">     */</em>
+<a name="250" href="#250">250</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> manageArtifact( Artifact artifact, Artifact replacement )
+<a name="251" href="#251">251</a>     {
+<a name="252" href="#252">252</a>         <em class="jxr_comment">// TODO: remove when ResolutionListenerForDepMgmt merged into ResolutionListener</em>
+<a name="253" href="#253">253</a> 
+<a name="254" href="#254">254</a>         log( <span class="jxr_string">"manageArtifact: artifact="</span> + artifact + <span class="jxr_string">", replacement="</span> + replacement );
+<a name="255" href="#255">255</a> 
+<a name="256" href="#256">256</a>         <strong class="jxr_keyword">if</strong> ( replacement.getVersion() != <strong class="jxr_keyword">null</strong> )
+<a name="257" href="#257">257</a>         {
+<a name="258" href="#258">258</a>             manageArtifactVersion( artifact, replacement );
+<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">if</strong> ( replacement.getScope() != <strong class="jxr_keyword">null</strong> )
+<a name="262" href="#262">262</a>         {
+<a name="263" href="#263">263</a>             manageArtifactScope( artifact, replacement );
+<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> 
+<a name="268" href="#268">268</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="269" href="#269">269</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="270" href="#270">270</a> <em class="jxr_javadoccomment">     */</em>
+<a name="271" href="#271">271</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> omitForCycle( Artifact artifact )
+<a name="272" href="#272">272</a>     {
+<a name="273" href="#273">273</a>         log( <span class="jxr_string">"omitForCycle: artifact="</span> + artifact );
+<a name="274" href="#274">274</a> 
+<a name="275" href="#275">275</a>         <strong class="jxr_keyword">if</strong> ( isCurrentNodeIncluded() )
+<a name="276" href="#276">276</a>         {
+<a name="277" href="#277">277</a>             DependencyNode node = createNode( artifact );
+<a name="278" href="#278">278</a> 
+<a name="279" href="#279">279</a>             node.omitForCycle();
+<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">     * {@inheritDoc}</em>
+<a name="286" href="#286">286</a> <em class="jxr_javadoccomment">     */</em>
+<a name="287" href="#287">287</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateScopeCurrentPom( Artifact artifact, String scopeIgnored )
+<a name="288" href="#288">288</a>     {
+<a name="289" href="#289">289</a>         log( <span class="jxr_string">"updateScopeCurrentPom: artifact="</span> + artifact + <span class="jxr_string">", scopeIgnored="</span> + scopeIgnored );
+<a name="290" href="#290">290</a> 
+<a name="291" href="#291">291</a>         DependencyNode node = getNode( artifact );
+<a name="292" href="#292">292</a> 
+<a name="293" href="#293">293</a>         <strong class="jxr_keyword">if</strong> ( node == <strong class="jxr_keyword">null</strong> )
+<a name="294" href="#294">294</a>         {
+<a name="295" href="#295">295</a>             <em class="jxr_comment">// updateScopeCurrentPom events can be received prior to includeArtifact events</em>
+<a name="296" href="#296">296</a>             node = addNode( artifact );
+<a name="297" href="#297">297</a>             <em class="jxr_comment">// TODO remove the node that tried to impose its scope and add some info</em>
+<a name="298" href="#298">298</a>         }
+<a name="299" href="#299">299</a> 
+<a name="300" href="#300">300</a>         node.setFailedUpdateScope( scopeIgnored );
+<a name="301" href="#301">301</a>     }
+<a name="302" href="#302">302</a> 
+<a name="303" href="#303">303</a> 
+<a name="304" href="#304">304</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="305" href="#305">305</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="306" href="#306">306</a> <em class="jxr_javadoccomment">     */</em>
+<a name="307" href="#307">307</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> selectVersionFromRange( Artifact artifact )
+<a name="308" href="#308">308</a>     {
+<a name="309" href="#309">309</a>         log( <span class="jxr_string">"selectVersionFromRange: artifact="</span> + artifact );
+<a name="310" href="#310">310</a> 
+<a name="311" href="#311">311</a>         DependencyNode node = getNode( artifact );
+<a name="312" href="#312">312</a> 
+<a name="313" href="#313">313</a>         <em class="jxr_comment">/*</em>
+<a name="314" href="#314">314</a> <em class="jxr_comment">         * selectVersionFromRange is called before includeArtifact</em>
+<a name="315" href="#315">315</a> <em class="jxr_comment">         */</em>
+<a name="316" href="#316">316</a>         <strong class="jxr_keyword">if</strong> ( node == <strong class="jxr_keyword">null</strong> &amp;&amp; isCurrentNodeIncluded() )
+<a name="317" href="#317">317</a>         {
+<a name="318" href="#318">318</a>             node = addNode( artifact );
+<a name="319" href="#319">319</a>         }
+<a name="320" href="#320">320</a> 
+<a name="321" href="#321">321</a>         node.setVersionSelectedFromRange( artifact.getVersionRange() );
+<a name="322" href="#322">322</a>         node.setAvailableVersions( artifact.getAvailableVersions() );
+<a name="323" href="#323">323</a>     }
+<a name="324" href="#324">324</a> 
+<a name="325" href="#325">325</a> 
+<a name="326" href="#326">326</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="327" href="#327">327</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="328" href="#328">328</a> <em class="jxr_javadoccomment">     */</em>
+<a name="329" href="#329">329</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> restrictRange( Artifact artifact, Artifact replacement, VersionRange versionRange )
+<a name="330" href="#330">330</a>     {
+<a name="331" href="#331">331</a>         log( <span class="jxr_string">"restrictRange: artifact="</span> + artifact + <span class="jxr_string">", replacement="</span> + replacement + <span class="jxr_string">", versionRange="</span> + versionRange );
+<a name="332" href="#332">332</a> 
+<a name="333" href="#333">333</a>         <em class="jxr_comment">// TODO: track range restriction in node (MNG-3093)</em>
+<a name="334" href="#334">334</a>     }
+<a name="335" href="#335">335</a> 
+<a name="336" href="#336">336</a> 
+<a name="337" href="#337">337</a>     <em class="jxr_comment">// ResolutionListenerForDepMgmt methods -----------------------------------</em>
+<a name="338" href="#338">338</a> 
+<a name="339" href="#339">339</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="340" href="#340">340</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="341" href="#341">341</a> <em class="jxr_javadoccomment">     */</em>
+<a name="342" href="#342">342</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> manageArtifactVersion( Artifact artifact, Artifact replacement )
+<a name="343" href="#343">343</a>     {
+<a name="344" href="#344">344</a>         log( <span class="jxr_string">"manageArtifactVersion: artifact="</span> + artifact + <span class="jxr_string">", replacement="</span> + replacement );
+<a name="345" href="#345">345</a> 
+<a name="346" href="#346">346</a>         <em class="jxr_comment">/*</em>
+<a name="347" href="#347">347</a> <em class="jxr_comment">         * DefaultArtifactCollector calls manageArtifact twice: first with the change; then subsequently with no change.</em>
+<a name="348" href="#348">348</a> <em class="jxr_comment">         * We ignore the second call when the versions are equal.</em>
+<a name="349" href="#349">349</a> <em class="jxr_comment">         */</em>
+<a name="350" href="#350">350</a>         <strong class="jxr_keyword">if</strong> ( isCurrentNodeIncluded() &amp;&amp; !replacement.getVersion().equals( artifact.getVersion() ) )
+<a name="351" href="#351">351</a>         {
+<a name="352" href="#352">352</a>             <em class="jxr_comment">/*</em>
+<a name="353" href="#353">353</a> <em class="jxr_comment">             * Cache management information and apply in includeArtifact, since DefaultArtifactCollector mutates the</em>
+<a name="354" href="#354">354</a> <em class="jxr_comment">             * artifact and then calls includeArtifact after manageArtifact.</em>
+<a name="355" href="#355">355</a> <em class="jxr_comment">             */</em>
+<a name="356" href="#356">356</a>             managedVersions.put( getRangeId( replacement ), artifact.getVersion() );
+<a name="357" href="#357">357</a>         }
+<a name="358" href="#358">358</a>     }
+<a name="359" href="#359">359</a> 
+<a name="360" href="#360">360</a> 
+<a name="361" href="#361">361</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="362" href="#362">362</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a name="363" href="#363">363</a> <em class="jxr_javadoccomment">     */</em>
+<a name="364" href="#364">364</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> manageArtifactScope( Artifact artifact, Artifact replacement )
+<a name="365" href="#365">365</a>     {
+<a name="366" href="#366">366</a>         log( <span class="jxr_string">"manageArtifactScope: artifact="</span> + artifact + <span class="jxr_string">", replacement="</span> + replacement );
+<a name="367" href="#367">367</a> 
+<a name="368" href="#368">368</a>         <em class="jxr_comment">/*</em>
+<a name="369" href="#369">369</a> <em class="jxr_comment">         * DefaultArtifactCollector calls manageArtifact twice: first with the change; then subsequently with no change.</em>
+<a name="370" href="#370">370</a> <em class="jxr_comment">         * We ignore the second call when the scopes are equal.</em>
+<a name="371" href="#371">371</a> <em class="jxr_comment">         */</em>
+<a name="372" href="#372">372</a>         <strong class="jxr_keyword">if</strong> ( isCurrentNodeIncluded() &amp;&amp; !replacement.getScope().equals( artifact.getScope() ) )
+<a name="373" href="#373">373</a>         {
+<a name="374" href="#374">374</a>             <em class="jxr_comment">/*</em>
+<a name="375" href="#375">375</a> <em class="jxr_comment">             * Cache management information and apply in includeArtifact, since DefaultArtifactCollector mutates the</em>
+<a name="376" href="#376">376</a> <em class="jxr_comment">             * artifact and then calls includeArtifact after manageArtifact.</em>
+<a name="377" href="#377">377</a> <em class="jxr_comment">             */</em>
+<a name="378" href="#378">378</a>             managedScopes.put( getRangeId( replacement ), artifact.getScope() );
+<a name="379" href="#379">379</a>         }
+<a name="380" href="#380">380</a>     }
+<a name="381" href="#381">381</a> 
+<a name="382" href="#382">382</a> 
+<a name="383" href="#383">383</a>     <em class="jxr_comment">// public methods ---------------------------------------------------------</em>
+<a name="384" href="#384">384</a> 
+<a name="385" href="#385">385</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="386" href="#386">386</a> <em class="jxr_javadoccomment">     * Gets a list of all dependency nodes in the computed dependency tree.</em>
+<a name="387" href="#387">387</a> <em class="jxr_javadoccomment">     * </em>
+<a name="388" href="#388">388</a> <em class="jxr_javadoccomment">     * @return a list of dependency nodes</em>
+<a name="389" href="#389">389</a> <em class="jxr_javadoccomment">     * @deprecated As of 1.1, use a {@link CollectingDependencyNodeVisitor} on the root dependency node</em>
+<a name="390" href="#390">390</a> <em class="jxr_javadoccomment">     */</em>
+<a name="391" href="#391">391</a>     <strong class="jxr_keyword">public</strong> Collection getNodes()
+<a name="392" href="#392">392</a>     {
+<a name="393" href="#393">393</a>         <strong class="jxr_keyword">return</strong> Collections.unmodifiableCollection( nodesByArtifact.values() );
+<a name="394" href="#394">394</a>     }
+<a name="395" href="#395">395</a> 
+<a name="396" href="#396">396</a> 
+<a name="397" href="#397">397</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="398" href="#398">398</a> <em class="jxr_javadoccomment">     * Gets the root dependency node of the computed dependency tree.</em>
+<a name="399" href="#399">399</a> <em class="jxr_javadoccomment">     * </em>
+<a name="400" href="#400">400</a> <em class="jxr_javadoccomment">     * @return the root node</em>
+<a name="401" href="#401">401</a> <em class="jxr_javadoccomment">     */</em>
+<a name="402" href="#402">402</a>     <strong class="jxr_keyword">public</strong> DependencyNode getRootNode()
+<a name="403" href="#403">403</a>     {
+<a name="404" href="#404">404</a>         <strong class="jxr_keyword">return</strong> rootNode;
+<a name="405" href="#405">405</a>     }
+<a name="406" href="#406">406</a> 
+<a name="407" href="#407">407</a> 
+<a name="408" href="#408">408</a>     <em class="jxr_comment">// private methods --------------------------------------------------------</em>
+<a name="409" href="#409">409</a> 
+<a name="410" href="#410">410</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="411" href="#411">411</a> <em class="jxr_javadoccomment">     * Writes the specified message to the log at debug level with indentation for the current node's depth.</em>
+<a name="412" href="#412">412</a> <em class="jxr_javadoccomment">     * </em>
+<a name="413" href="#413">413</a> <em class="jxr_javadoccomment">     * @param message</em>
+<a name="414" href="#414">414</a> <em class="jxr_javadoccomment">     *            the message to write to the log</em>
+<a name="415" href="#415">415</a> <em class="jxr_javadoccomment">     */</em>
+<a name="416" href="#416">416</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> log( String message )
+<a name="417" href="#417">417</a>     {
+<a name="418" href="#418">418</a>         <strong class="jxr_keyword">int</strong> depth = parentNodes.size();
+<a name="419" href="#419">419</a> 
+<a name="420" href="#420">420</a>         StringBuffer buffer = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="421" href="#421">421</a> 
+<a name="422" href="#422">422</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; depth; i++ )
+<a name="423" href="#423">423</a>         {
+<a name="424" href="#424">424</a>             buffer.append( <span class="jxr_string">"  "</span> );
+<a name="425" href="#425">425</a>         }
+<a name="426" href="#426">426</a> 
+<a name="427" href="#427">427</a>         buffer.append( message );
+<a name="428" href="#428">428</a> 
+<a name="429" href="#429">429</a>         logger.debug( buffer.toString() );
+<a name="430" href="#430">430</a>     }
+<a name="431" href="#431">431</a> 
+<a name="432" href="#432">432</a> 
+<a name="433" href="#433">433</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="434" href="#434">434</a> <em class="jxr_javadoccomment">     * Creates a new dependency node for the specified artifact and appends it to the current parent dependency node.</em>
+<a name="435" href="#435">435</a> <em class="jxr_javadoccomment">     * </em>
+<a name="436" href="#436">436</a> <em class="jxr_javadoccomment">     * @param artifact</em>
+<a name="437" href="#437">437</a> <em class="jxr_javadoccomment">     *            the attached artifact for the new dependency node</em>
+<a name="438" href="#438">438</a> <em class="jxr_javadoccomment">     * @return the new dependency node</em>
+<a name="439" href="#439">439</a> <em class="jxr_javadoccomment">     */</em>
+<a name="440" href="#440">440</a>     <strong class="jxr_keyword">private</strong> DependencyNode createNode( Artifact artifact )
+<a name="441" href="#441">441</a>     {
+<a name="442" href="#442">442</a>         DependencyNode node = <strong class="jxr_keyword">new</strong> DependencyNode( artifact );
+<a name="443" href="#443">443</a> 
+<a name="444" href="#444">444</a>         <strong class="jxr_keyword">if</strong> ( !parentNodes.isEmpty() )
+<a name="445" href="#445">445</a>         {
+<a name="446" href="#446">446</a>             DependencyNode parent = ( DependencyNode ) parentNodes.peek();
+<a name="447" href="#447">447</a> 
+<a name="448" href="#448">448</a>             parent.addChild( node );
+<a name="449" href="#449">449</a>         }
+<a name="450" href="#450">450</a> 
+<a name="451" href="#451">451</a>         <strong class="jxr_keyword">return</strong> node;
+<a name="452" href="#452">452</a>     }
+<a name="453" href="#453">453</a> 
+<a name="454" href="#454">454</a> 
+<a name="455" href="#455">455</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="456" href="#456">456</a> <em class="jxr_javadoccomment">     * Creates a new dependency node for the specified artifact, appends it to the current parent dependency node and</em>
+<a name="457" href="#457">457</a> <em class="jxr_javadoccomment">     * puts it into the dependency node cache.</em>
+<a name="458" href="#458">458</a> <em class="jxr_javadoccomment">     * </em>
+<a name="459" href="#459">459</a> <em class="jxr_javadoccomment">     * @param artifact</em>
+<a name="460" href="#460">460</a> <em class="jxr_javadoccomment">     *            the attached artifact for the new dependency node</em>
+<a name="461" href="#461">461</a> <em class="jxr_javadoccomment">     * @return the new dependency node</em>
+<a name="462" href="#462">462</a> <em class="jxr_javadoccomment">     */</em>
+<a name="463" href="#463">463</a>     <em class="jxr_comment">// package protected for unit test</em>
+<a name="464" href="#464">464</a>     DependencyNode addNode( Artifact artifact )
+<a name="465" href="#465">465</a>     {
+<a name="466" href="#466">466</a>         DependencyNode node = createNode( artifact );
+<a name="467" href="#467">467</a> 
+<a name="468" href="#468">468</a>         DependencyNode previousNode = ( DependencyNode ) nodesByArtifact.put( node.getArtifact(), node );
+<a name="469" href="#469">469</a> 
+<a name="470" href="#470">470</a>         <strong class="jxr_keyword">if</strong> ( previousNode != <strong class="jxr_keyword">null</strong> )
+<a name="471" href="#471">471</a>         {
+<a name="472" href="#472">472</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException( <span class="jxr_string">"Duplicate node registered for artifact: "</span> + node.getArtifact() );
+<a name="473" href="#473">473</a>         }
+<a name="474" href="#474">474</a> 
+<a name="475" href="#475">475</a>         <strong class="jxr_keyword">if</strong> ( rootNode == <strong class="jxr_keyword">null</strong> )
+<a name="476" href="#476">476</a>         {
+<a name="477" href="#477">477</a>             rootNode = node;
+<a name="478" href="#478">478</a>         }
+<a name="479" href="#479">479</a> 
+<a name="480" href="#480">480</a>         currentNode = node;
+<a name="481" href="#481">481</a> 
+<a name="482" href="#482">482</a>         <strong class="jxr_keyword">return</strong> node;
+<a name="483" href="#483">483</a>     }
+<a name="484" href="#484">484</a> 
+<a name="485" href="#485">485</a> 
+<a name="486" href="#486">486</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="487" href="#487">487</a> <em class="jxr_javadoccomment">     * Gets the dependency node for the specified artifact from the dependency node cache.</em>
+<a name="488" href="#488">488</a> <em class="jxr_javadoccomment">     * </em>
+<a name="489" href="#489">489</a> <em class="jxr_javadoccomment">     * @param artifact</em>
+<a name="490" href="#490">490</a> <em class="jxr_javadoccomment">     *            the artifact to find the dependency node for</em>
+<a name="491" href="#491">491</a> <em class="jxr_javadoccomment">     * @return the dependency node, or &lt;code&gt;null&lt;/code&gt; if the specified artifact has no corresponding dependency</em>
+<a name="492" href="#492">492</a> <em class="jxr_javadoccomment">     *         node</em>
+<a name="493" href="#493">493</a> <em class="jxr_javadoccomment">     */</em>
+<a name="494" href="#494">494</a>     <strong class="jxr_keyword">private</strong> DependencyNode getNode( Artifact artifact )
+<a name="495" href="#495">495</a>     {
+<a name="496" href="#496">496</a>         <strong class="jxr_keyword">return</strong> ( DependencyNode ) nodesByArtifact.get( artifact );
+<a name="497" href="#497">497</a>     }
+<a name="498" href="#498">498</a> 
+<a name="499" href="#499">499</a> 
+<a name="500" href="#500">500</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="501" href="#501">501</a> <em class="jxr_javadoccomment">     * Removes the dependency node for the specified artifact from the dependency node cache.</em>
+<a name="502" href="#502">502</a> <em class="jxr_javadoccomment">     * </em>
+<a name="503" href="#503">503</a> <em class="jxr_javadoccomment">     * @param artifact</em>
+<a name="504" href="#504">504</a> <em class="jxr_javadoccomment">     *            the artifact to remove the dependency node for</em>
+<a name="505" href="#505">505</a> <em class="jxr_javadoccomment">     */</em>
+<a name="506" href="#506">506</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> removeNode( Artifact artifact )
+<a name="507" href="#507">507</a>     {
+<a name="508" href="#508">508</a>         DependencyNode node = ( DependencyNode ) nodesByArtifact.remove( artifact );
+<a name="509" href="#509">509</a> 
+<a name="510" href="#510">510</a>         <strong class="jxr_keyword">if</strong> ( !artifact.equals( node.getArtifact() ) )
+<a name="511" href="#511">511</a>         {
+<a name="512" href="#512">512</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException( <span class="jxr_string">"Removed dependency node artifact was expected to be "</span> + artifact
+<a name="513" href="#513">513</a>                 + <span class="jxr_string">" but was "</span> + node.getArtifact() );
+<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> 
+<a name="518" href="#518">518</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="519" href="#519">519</a> <em class="jxr_javadoccomment">     * Gets whether the all the ancestors of the dependency node currently being processed by this listener have an</em>
+<a name="520" href="#520">520</a> <em class="jxr_javadoccomment">     * included state.</em>
+<a name="521" href="#521">521</a> <em class="jxr_javadoccomment">     * </em>
+<a name="522" href="#522">522</a> <em class="jxr_javadoccomment">     * @return &lt;code&gt;true&lt;/code&gt; if all the ancestors of the current dependency node have a state of</em>
+<a name="523" href="#523">523</a> <em class="jxr_javadoccomment">     *         &lt;code&gt;INCLUDED&lt;/code&gt;</em>
+<a name="524" href="#524">524</a> <em class="jxr_javadoccomment">     */</em>
+<a name="525" href="#525">525</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> isCurrentNodeIncluded()
+<a name="526" href="#526">526</a>     {
+<a name="527" href="#527">527</a>         <strong class="jxr_keyword">boolean</strong> included = <strong class="jxr_keyword">true</strong>;
+<a name="528" href="#528">528</a> 
+<a name="529" href="#529">529</a>         <strong class="jxr_keyword">for</strong> ( Iterator iterator = parentNodes.iterator(); included &amp;&amp; iterator.hasNext(); )
+<a name="530" href="#530">530</a>         {
+<a name="531" href="#531">531</a>             DependencyNode node = ( DependencyNode ) iterator.next();
+<a name="532" href="#532">532</a> 
+<a name="533" href="#533">533</a>             <strong class="jxr_keyword">if</strong> ( node.getState() != DependencyNode.INCLUDED )
+<a name="534" href="#534">534</a>             {
+<a name="535" href="#535">535</a>                 included = false;
+<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">return</strong> included;
+<a name="540" href="#540">540</a>     }
+<a name="541" href="#541">541</a> 
+<a name="542" href="#542">542</a> 
+<a name="543" href="#543">543</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="544" href="#544">544</a> <em class="jxr_javadoccomment">     * Updates the specified node with any dependency management information cached in prior &lt;code&gt;manageArtifact&lt;/code&gt;</em>
+<a name="545" href="#545">545</a> <em class="jxr_javadoccomment">     * calls.</em>
+<a name="546" href="#546">546</a> <em class="jxr_javadoccomment">     * </em>
+<a name="547" href="#547">547</a> <em class="jxr_javadoccomment">     * @param node</em>
+<a name="548" href="#548">548</a> <em class="jxr_javadoccomment">     *            the node to update</em>
+<a name="549" href="#549">549</a> <em class="jxr_javadoccomment">     */</em>
+<a name="550" href="#550">550</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> flushDependencyManagement( DependencyNode node )
+<a name="551" href="#551">551</a>     {
+<a name="552" href="#552">552</a>         Artifact artifact = node.getArtifact();
+<a name="553" href="#553">553</a>         String premanagedVersion = ( String ) managedVersions.get( getRangeId( artifact ) );
+<a name="554" href="#554">554</a>         String premanagedScope = ( String ) managedScopes.get( getRangeId( artifact ) );
+<a name="555" href="#555">555</a> 
+<a name="556" href="#556">556</a>         <strong class="jxr_keyword">if</strong> ( premanagedVersion != <strong class="jxr_keyword">null</strong> || premanagedScope != <strong class="jxr_keyword">null</strong> )
+<a name="557" href="#557">557</a>         {
+<a name="558" href="#558">558</a>             <strong class="jxr_keyword">if</strong> ( premanagedVersion != <strong class="jxr_keyword">null</strong> )
+<a name="559" href="#559">559</a>             {
+<a name="560" href="#560">560</a>                 node.setPremanagedVersion( premanagedVersion );
+<a name="561" href="#561">561</a>             }
+<a name="562" href="#562">562</a> 
+<a name="563" href="#563">563</a>             <strong class="jxr_keyword">if</strong> ( premanagedScope != <strong class="jxr_keyword">null</strong> )
+<a name="564" href="#564">564</a>             {
+<a name="565" href="#565">565</a>                 node.setPremanagedScope( premanagedScope );
+<a name="566" href="#566">566</a>             }
+<a name="567" href="#567">567</a> 
+<a name="568" href="#568">568</a>             premanagedVersion = <strong class="jxr_keyword">null</strong>;
+<a name="569" href="#569">569</a>             premanagedScope = <strong class="jxr_keyword">null</strong>;
+<a name="570" href="#570">570</a>         }
+<a name="571" href="#571">571</a>     }
+<a name="572" href="#572">572</a> 
+<a name="573" href="#573">573</a> 
+<a name="574" href="#574">574</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getRangeId( Artifact artifact )
+<a name="575" href="#575">575</a>     {
+<a name="576" href="#576">576</a>         <strong class="jxr_keyword">return</strong> artifact.getDependencyConflictId() + <span class="jxr_string">":"</span> + artifact.getVersionRange();
+<a name="577" href="#577">577</a>     }
+<a name="578" href="#578">578</a> }
+</pre>
+<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
+</html>
+
diff --git a/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/package-frame.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/package-frame.html
new file mode 100644
index 0000000..29f9d2c
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/package-frame.html
@@ -0,0 +1,24 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>Maven Bundle Plugin 2.3.5 Reference Package org.apache.maven.shared.dependency.tree</title>
+		<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="style" />
+	</head>
+	<body>
+
+		<h3>
+        	<a href="package-summary.html" target="classFrame">org.apache.maven.shared.dependency.tree</a>
+      	</h3>
+
+      	<h3>Classes</h3>
+
+      	<ul>
+      		          	<li>
+            	<a href="DependencyTreeResolutionListener.html" target="classFrame">DependencyTreeResolutionListener</a>
+          	</li>
+          	      	</ul>
+
+	</body>
+</html>
\ No newline at end of file
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
new file mode 100644
index 0000000..348e590
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/dependency/tree/package-summary.html
@@ -0,0 +1,67 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>Maven Bundle Plugin 2.3.5 Reference Package org.apache.maven.shared.dependency.tree</title>
+		<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="style" />
+	</head>
+	<body>
+		      	<div class="overview">
+        	<ul>
+          		<li>
+            		<a href="../../../../../../overview-summary.html">Overview</a>
+          		</li>
+          		<li class="selected">Package</li>
+        	</ul>
+      	</div>
+      	<div class="framenoframe">
+        	<ul>
+          		<li>
+            		<a href="../../../../../../index.html" target="_top">FRAMES</a>
+          		</li>
+          		<li>
+            		<a href="package-summary.html" target="_top">NO FRAMES</a>
+          		</li>
+        	</ul>
+      	</div>
+		
+		      	<h2>Package org.apache.maven.shared.dependency.tree</h2>
+
+		<table class="summary">
+        	<thead>
+          		<tr>
+            		<th>Class Summary</th>
+          		</tr>
+        	</thead>
+        	<tbody>
+        		            	<tr>
+              		<td>
+                		<a href="DependencyTreeResolutionListener.html" target="classFrame">DependencyTreeResolutionListener</a>
+              		</td>
+            	</tr>
+				        	</tbody>
+      	</table>
+		
+		      	<div class="overview">
+        	<ul>
+          		<li>
+            		<a href="../../../../../../overview-summary.html">Overview</a>
+          		</li>
+          		<li class="selected">Package</li>
+        	</ul>
+      	</div>
+      	<div class="framenoframe">
+        	<ul>
+          		<li>
+            		<a href="../../../../../../index.html" target="_top">FRAMES</a>
+          		</li>
+          		<li>
+            		<a href="package-summary.html" target="_top">NO FRAMES</a>
+          		</li>
+        	</ul>
+      	</div>
+				<hr />
+		Copyright &copy; 2006-2011 The Apache Software Foundation. All Rights Reserved.
+	</body>
+</html>
\ No newline at end of file
diff --git a/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.html
new file mode 100644
index 0000000..c82b3ad
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.html
@@ -0,0 +1,345 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>DefaultMaven2OsgiConverter xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.maven.shared.osgi;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.File;
+<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Enumeration;
+<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
+<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<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.Set;
+<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.jar.JarFile;
+<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Matcher;
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Pattern;
+<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.zip.ZipEntry;
+<a name="33" href="#33">33</a>  
+<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
+<a name="35" href="#35">35</a>  
+<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> aQute.lib.osgi.Analyzer;
+<a name="37" href="#37">37</a>  
+<a name="38" href="#38">38</a>  
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> * Default implementation of {@link Maven2OsgiConverter}</em>
+<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * @plexus.component</em>
+<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:carlos@apache.org" target="alexandria_uri">mailto:carlos@apache.org</a>"&gt;Carlos Sanchez&lt;/a&gt;</em>
+<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> * @version $Id$</em>
+<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="47" href="#47">47</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> DefaultMaven2OsgiConverter implements Maven2OsgiConverter
+<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">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String FILE_SEPARATOR = System.getProperty( <span class="jxr_string">"file.separator"</span> );
+<a name="51" href="#51">51</a>  
+<a name="52" href="#52">52</a>  
+<a name="53" href="#53">53</a>      <strong class="jxr_keyword">private</strong> String getBundleSymbolicName( String groupId, String artifactId )
+<a name="54" href="#54">54</a>      {
+<a name="55" href="#55">55</a>          <strong class="jxr_keyword">return</strong> groupId + <span class="jxr_string">"."</span> + artifactId;
+<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>      <em class="jxr_javadoccomment">/**</em>
+<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     * Get the symbolic name as groupId + "." + artifactId, with the following exceptions</em>
+<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     * &lt;ul&gt;</em>
+<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * &lt;li&gt;if artifact.getFile is not null and the jar contains a OSGi Manifest with</em>
+<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     * Bundle-SymbolicName property then that value is returned&lt;/li&gt;</em>
+<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     * &lt;li&gt;if groupId has only one section (no dots) and artifact.getFile is not null then the</em>
+<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     * first package name with classes is returned. eg. commons-logging:commons-logging -&gt;</em>
+<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     * org.apache.commons.logging&lt;/li&gt;</em>
+<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     * &lt;li&gt;if artifactId is equal to last section of groupId then groupId is returned. eg.</em>
+<a name="68" href="#68">68</a>  <em class="jxr_javadoccomment">     * org.apache.maven:maven -&gt; org.apache.maven&lt;/li&gt;</em>
+<a name="69" href="#69">69</a>  <em class="jxr_javadoccomment">     * &lt;li&gt;if artifactId starts with last section of groupId that portion is removed. eg.</em>
+<a name="70" href="#70">70</a>  <em class="jxr_javadoccomment">     * org.apache.maven:maven-core -&gt; org.apache.maven.core&lt;/li&gt;</em>
+<a name="71" href="#71">71</a>  <em class="jxr_javadoccomment">     * &lt;/ul&gt;</em>
+<a name="72" href="#72">72</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="73" href="#73">73</a>      <strong class="jxr_keyword">public</strong> String getBundleSymbolicName( Artifact artifact )
+<a name="74" href="#74">74</a>      {
+<a name="75" href="#75">75</a>          <strong class="jxr_keyword">if</strong> ( ( artifact.getFile() != <strong class="jxr_keyword">null</strong> ) &amp;&amp; artifact.getFile().isFile() )
+<a name="76" href="#76">76</a>          {
+<a name="77" href="#77">77</a>              Analyzer analyzer = <strong class="jxr_keyword">new</strong> Analyzer();
+<a name="78" href="#78">78</a>  
+<a name="79" href="#79">79</a>              JarFile jar = <strong class="jxr_keyword">null</strong>;
+<a name="80" href="#80">80</a>              <strong class="jxr_keyword">try</strong>
+<a name="81" href="#81">81</a>              {
+<a name="82" href="#82">82</a>                  jar = <strong class="jxr_keyword">new</strong> JarFile( artifact.getFile(), false );
+<a name="83" href="#83">83</a>  
+<a name="84" href="#84">84</a>                  <strong class="jxr_keyword">if</strong> ( jar.getManifest() != <strong class="jxr_keyword">null</strong> )
+<a name="85" href="#85">85</a>                  {
+<a name="86" href="#86">86</a>                      String symbolicNameAttribute = jar.getManifest().getMainAttributes()
+<a name="87" href="#87">87</a>                          .getValue( Analyzer.BUNDLE_SYMBOLICNAME );
+<a name="88" href="#88">88</a>                      Map bundleSymbolicNameHeader = analyzer.parseHeader( symbolicNameAttribute );
+<a name="89" href="#89">89</a>  
+<a name="90" href="#90">90</a>                      Iterator it = bundleSymbolicNameHeader.keySet().iterator();
+<a name="91" href="#91">91</a>                      <strong class="jxr_keyword">if</strong> ( it.hasNext() )
+<a name="92" href="#92">92</a>                      {
+<a name="93" href="#93">93</a>                          <strong class="jxr_keyword">return</strong> ( String ) it.next();
+<a name="94" href="#94">94</a>                      }
+<a name="95" href="#95">95</a>                  }
+<a name="96" href="#96">96</a>              }
+<a name="97" href="#97">97</a>              <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="98" href="#98">98</a>              {
+<a name="99" href="#99">99</a>                  <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/maven/shared/osgi/ManifestReadingException.html">ManifestReadingException</a>( <span class="jxr_string">"Error reading manifest in jar "</span>
+<a name="100" href="#100">100</a>                     + artifact.getFile().getAbsolutePath(), e );
+<a name="101" href="#101">101</a>             }
+<a name="102" href="#102">102</a>             <strong class="jxr_keyword">finally</strong>
+<a name="103" href="#103">103</a>             {
+<a name="104" href="#104">104</a>                 <strong class="jxr_keyword">if</strong> ( jar != <strong class="jxr_keyword">null</strong> )
+<a name="105" href="#105">105</a>                 {
+<a name="106" href="#106">106</a>                     <strong class="jxr_keyword">try</strong>
+<a name="107" href="#107">107</a>                     {
+<a name="108" href="#108">108</a>                         jar.close();
+<a name="109" href="#109">109</a>                     }
+<a name="110" href="#110">110</a>                     <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="111" href="#111">111</a>                     {
+<a name="112" href="#112">112</a>                     }
+<a name="113" href="#113">113</a>                 }
+<a name="114" href="#114">114</a>             }
+<a name="115" href="#115">115</a>         }
+<a name="116" href="#116">116</a> 
+<a name="117" href="#117">117</a>         <strong class="jxr_keyword">int</strong> i = artifact.getGroupId().lastIndexOf( '.' );
+<a name="118" href="#118">118</a>         <strong class="jxr_keyword">if</strong> ( ( i &lt; 0 ) &amp;&amp; ( artifact.getFile() != <strong class="jxr_keyword">null</strong> ) &amp;&amp; artifact.getFile().isFile() )
+<a name="119" href="#119">119</a>         {
+<a name="120" href="#120">120</a>             String groupIdFromPackage = getGroupIdFromPackage( artifact.getFile() );
+<a name="121" href="#121">121</a>             <strong class="jxr_keyword">if</strong> ( groupIdFromPackage != <strong class="jxr_keyword">null</strong> )
+<a name="122" href="#122">122</a>             {
+<a name="123" href="#123">123</a>                 <strong class="jxr_keyword">return</strong> groupIdFromPackage;
+<a name="124" href="#124">124</a>             }
+<a name="125" href="#125">125</a>         }
+<a name="126" href="#126">126</a>         String lastSection = artifact.getGroupId().substring( ++i );
+<a name="127" href="#127">127</a>         <strong class="jxr_keyword">if</strong> ( artifact.getArtifactId().equals( lastSection ) )
+<a name="128" href="#128">128</a>         {
+<a name="129" href="#129">129</a>             <strong class="jxr_keyword">return</strong> artifact.getGroupId();
+<a name="130" href="#130">130</a>         }
+<a name="131" href="#131">131</a>         <strong class="jxr_keyword">if</strong> ( artifact.getArtifactId().startsWith( lastSection ) )
+<a name="132" href="#132">132</a>         {
+<a name="133" href="#133">133</a>             String artifactId = artifact.getArtifactId().substring( lastSection.length() );
+<a name="134" href="#134">134</a>             <strong class="jxr_keyword">if</strong> ( Character.isLetterOrDigit( artifactId.charAt( 0 ) ) )
+<a name="135" href="#135">135</a>             {
+<a name="136" href="#136">136</a>                 <strong class="jxr_keyword">return</strong> getBundleSymbolicName( artifact.getGroupId(), artifactId );
+<a name="137" href="#137">137</a>             }
+<a name="138" href="#138">138</a>             <strong class="jxr_keyword">else</strong>
+<a name="139" href="#139">139</a>             {
+<a name="140" href="#140">140</a>                 <strong class="jxr_keyword">return</strong> getBundleSymbolicName( artifact.getGroupId(), artifactId.substring( 1 ) );
+<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">return</strong> getBundleSymbolicName( artifact.getGroupId(), artifact.getArtifactId() );
+<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> String getGroupIdFromPackage( File artifactFile )
+<a name="148" href="#148">148</a>     {
+<a name="149" href="#149">149</a>         <strong class="jxr_keyword">try</strong>
+<a name="150" href="#150">150</a>         {
+<a name="151" href="#151">151</a>             <em class="jxr_comment">/*<em class="jxr_comment"> get package names from jar */</em></em>
+<a name="152" href="#152">152</a>             Set packageNames = <strong class="jxr_keyword">new</strong> HashSet();
+<a name="153" href="#153">153</a>             JarFile jar = <strong class="jxr_keyword">new</strong> JarFile( artifactFile, false );
+<a name="154" href="#154">154</a>             Enumeration entries = jar.entries();
+<a name="155" href="#155">155</a>             <strong class="jxr_keyword">while</strong> ( entries.hasMoreElements() )
+<a name="156" href="#156">156</a>             {
+<a name="157" href="#157">157</a>                 ZipEntry entry = ( ZipEntry ) entries.nextElement();
+<a name="158" href="#158">158</a>                 <strong class="jxr_keyword">if</strong> ( entry.getName().endsWith( <span class="jxr_string">".class"</span> ) )
+<a name="159" href="#159">159</a>                 {
+<a name="160" href="#160">160</a>                     File f = <strong class="jxr_keyword">new</strong> File( entry.getName() );
+<a name="161" href="#161">161</a>                     String packageName = f.getParent();
+<a name="162" href="#162">162</a>                     <strong class="jxr_keyword">if</strong> ( packageName != <strong class="jxr_keyword">null</strong> )
+<a name="163" href="#163">163</a>                     {
+<a name="164" href="#164">164</a>                         packageNames.add( packageName );
+<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>             jar.close();
+<a name="169" href="#169">169</a> 
+<a name="170" href="#170">170</a>             <em class="jxr_comment">/*<em class="jxr_comment"> find the top package */</em></em>
+<a name="171" href="#171">171</a>             String[] groupIdSections = <strong class="jxr_keyword">null</strong>;
+<a name="172" href="#172">172</a>             <strong class="jxr_keyword">for</strong> ( Iterator it = packageNames.iterator(); it.hasNext(); )
+<a name="173" href="#173">173</a>             {
+<a name="174" href="#174">174</a>                 String packageName = ( String ) it.next();
+<a name="175" href="#175">175</a> 
+<a name="176" href="#176">176</a>                 String[] packageNameSections = packageName.split( <span class="jxr_string">"&#92;&#92;"</span> + FILE_SEPARATOR );
+<a name="177" href="#177">177</a>                 <strong class="jxr_keyword">if</strong> ( groupIdSections == <strong class="jxr_keyword">null</strong> )
+<a name="178" href="#178">178</a>                 {
+<a name="179" href="#179">179</a>                     <em class="jxr_comment">/*<em class="jxr_comment"> first candidate */</em></em>
+<a name="180" href="#180">180</a>                     groupIdSections = packageNameSections;
+<a name="181" href="#181">181</a>                 }
+<a name="182" href="#182">182</a>                 <strong class="jxr_keyword">else</strong>
+<a name="183" href="#183">183</a>                 <em class="jxr_comment">// if ( packageNameSections.length &lt; groupIdSections.length )</em>
+<a name="184" href="#184">184</a>                 {
+<a name="185" href="#185">185</a>                     <em class="jxr_comment">/*</em>
+<a name="186" href="#186">186</a> <em class="jxr_comment">                     * find the common portion of current package and previous selected groupId</em>
+<a name="187" href="#187">187</a> <em class="jxr_comment">                     */</em>
+<a name="188" href="#188">188</a>                     <strong class="jxr_keyword">int</strong> i;
+<a name="189" href="#189">189</a>                     <strong class="jxr_keyword">for</strong> ( i = 0; ( i &lt; packageNameSections.length ) &amp;&amp; ( i &lt; groupIdSections.length ); i++ )
+<a name="190" href="#190">190</a>                     {
+<a name="191" href="#191">191</a>                         <strong class="jxr_keyword">if</strong> ( !packageNameSections[i].equals( groupIdSections[i] ) )
+<a name="192" href="#192">192</a>                         {
+<a name="193" href="#193">193</a>                             <strong class="jxr_keyword">break</strong>;
+<a name="194" href="#194">194</a>                         }
+<a name="195" href="#195">195</a>                     }
+<a name="196" href="#196">196</a>                     groupIdSections = <strong class="jxr_keyword">new</strong> String[i];
+<a name="197" href="#197">197</a>                     System.arraycopy( packageNameSections, 0, groupIdSections, 0, i );
+<a name="198" href="#198">198</a>                 }
+<a name="199" href="#199">199</a>             }
+<a name="200" href="#200">200</a> 
+<a name="201" href="#201">201</a>             <strong class="jxr_keyword">if</strong> ( ( groupIdSections == <strong class="jxr_keyword">null</strong> ) || ( groupIdSections.length == 0 ) )
+<a name="202" href="#202">202</a>             {
+<a name="203" href="#203">203</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="204" href="#204">204</a>             }
+<a name="205" href="#205">205</a> 
+<a name="206" href="#206">206</a>             <em class="jxr_comment">/*<em class="jxr_comment"> only one section as id doesn't seem enough, so ignore it */</em></em>
+<a name="207" href="#207">207</a>             <strong class="jxr_keyword">if</strong> ( groupIdSections.length == 1 )
+<a name="208" href="#208">208</a>             {
+<a name="209" href="#209">209</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a name="210" href="#210">210</a>             }
+<a name="211" href="#211">211</a> 
+<a name="212" href="#212">212</a>             StringBuffer sb = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="213" href="#213">213</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; groupIdSections.length; i++ )
+<a name="214" href="#214">214</a>             {
+<a name="215" href="#215">215</a>                 sb.append( groupIdSections[i] );
+<a name="216" href="#216">216</a>                 <strong class="jxr_keyword">if</strong> ( i &lt; groupIdSections.length - 1 )
+<a name="217" href="#217">217</a>                 {
+<a name="218" href="#218">218</a>                     sb.append( '.' );
+<a name="219" href="#219">219</a>                 }
+<a name="220" href="#220">220</a>             }
+<a name="221" href="#221">221</a>             <strong class="jxr_keyword">return</strong> sb.toString();
+<a name="222" href="#222">222</a>         }
+<a name="223" href="#223">223</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a name="224" href="#224">224</a>         {
+<a name="225" href="#225">225</a>             <em class="jxr_comment">/*<em class="jxr_comment"> we took all the precautions to avoid this */</em></em>
+<a name="226" href="#226">226</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeException( e );
+<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> 
+<a name="231" href="#231">231</a>     <strong class="jxr_keyword">public</strong> String getBundleFileName( Artifact artifact )
+<a name="232" href="#232">232</a>     {
+<a name="233" href="#233">233</a>         <strong class="jxr_keyword">return</strong> getBundleSymbolicName( artifact ) + <span class="jxr_string">"_"</span> + getVersion( artifact.getVersion() ) + <span class="jxr_string">".jar"</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>     <strong class="jxr_keyword">public</strong> String getVersion( Artifact artifact )
+<a name="238" href="#238">238</a>     {
+<a name="239" href="#239">239</a>         <strong class="jxr_keyword">return</strong> getVersion( artifact.getVersion() );
+<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>     <strong class="jxr_keyword">public</strong> String getVersion( String version )
+<a name="244" href="#244">244</a>     {
+<a name="245" href="#245">245</a>         <strong class="jxr_keyword">return</strong> cleanupVersion( version );
+<a name="246" href="#246">246</a>     }
+<a name="247" href="#247">247</a> 
+<a name="248" href="#248">248</a>     <em class="jxr_javadoccomment">/**</em>
+<a name="249" href="#249">249</a> <em class="jxr_javadoccomment">     * Clean up version parameters. Other builders use more fuzzy definitions of</em>
+<a name="250" href="#250">250</a> <em class="jxr_javadoccomment">     * the version syntax. This method cleans up such a version to match an OSGi</em>
+<a name="251" href="#251">251</a> <em class="jxr_javadoccomment">     * version.</em>
+<a name="252" href="#252">252</a> <em class="jxr_javadoccomment">     *</em>
+<a name="253" href="#253">253</a> <em class="jxr_javadoccomment">     * @param VERSION_STRING</em>
+<a name="254" href="#254">254</a> <em class="jxr_javadoccomment">     * @return</em>
+<a name="255" href="#255">255</a> <em class="jxr_javadoccomment">     */</em>
+<a name="256" href="#256">256</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Pattern FUZZY_VERSION = Pattern.compile( <span class="jxr_string">"(&#92;&#92;d+)(&#92;&#92;.(&#92;&#92;d+)(&#92;&#92;.(&#92;&#92;d+))?)?([^a-zA-Z0-9](.*))?"</span>,
+<a name="257" href="#257">257</a>         Pattern.DOTALL );
+<a name="258" href="#258">258</a> 
+<a name="259" href="#259">259</a> 
+<a name="260" href="#260">260</a>     <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> String cleanupVersion( String version )
+<a name="261" href="#261">261</a>     {
+<a name="262" href="#262">262</a>         StringBuffer result = <strong class="jxr_keyword">new</strong> StringBuffer();
+<a name="263" href="#263">263</a>         Matcher m = FUZZY_VERSION.matcher( version );
+<a name="264" href="#264">264</a>         <strong class="jxr_keyword">if</strong> ( m.matches() )
+<a name="265" href="#265">265</a>         {
+<a name="266" href="#266">266</a>             String major = m.group( 1 );
+<a name="267" href="#267">267</a>             String minor = m.group( 3 );
+<a name="268" href="#268">268</a>             String micro = m.group( 5 );
+<a name="269" href="#269">269</a>             String qualifier = m.group( 7 );
+<a name="270" href="#270">270</a> 
+<a name="271" href="#271">271</a>             <strong class="jxr_keyword">if</strong> ( major != <strong class="jxr_keyword">null</strong> )
+<a name="272" href="#272">272</a>             {
+<a name="273" href="#273">273</a>                 result.append( major );
+<a name="274" href="#274">274</a>                 <strong class="jxr_keyword">if</strong> ( minor != <strong class="jxr_keyword">null</strong> )
+<a name="275" href="#275">275</a>                 {
+<a name="276" href="#276">276</a>                     result.append( <span class="jxr_string">"."</span> );
+<a name="277" href="#277">277</a>                     result.append( minor );
+<a name="278" href="#278">278</a>                     <strong class="jxr_keyword">if</strong> ( micro != <strong class="jxr_keyword">null</strong> )
+<a name="279" href="#279">279</a>                     {
+<a name="280" href="#280">280</a>                         result.append( <span class="jxr_string">"."</span> );
+<a name="281" href="#281">281</a>                         result.append( micro );
+<a name="282" href="#282">282</a>                         <strong class="jxr_keyword">if</strong> ( qualifier != <strong class="jxr_keyword">null</strong> )
+<a name="283" href="#283">283</a>                         {
+<a name="284" href="#284">284</a>                             result.append( <span class="jxr_string">"."</span> );
+<a name="285" href="#285">285</a>                             cleanupModifier( result, qualifier );
+<a name="286" href="#286">286</a>                         }
+<a name="287" href="#287">287</a>                     }
+<a name="288" href="#288">288</a>                     <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( qualifier != <strong class="jxr_keyword">null</strong> )
+<a name="289" href="#289">289</a>                     {
+<a name="290" href="#290">290</a>                         result.append( <span class="jxr_string">".0."</span> );
+<a name="291" href="#291">291</a>                         cleanupModifier( result, qualifier );
+<a name="292" href="#292">292</a>                     }
+<a name="293" href="#293">293</a>                     <strong class="jxr_keyword">else</strong>
+<a name="294" href="#294">294</a>                     {
+<a name="295" href="#295">295</a>                         result.append( <span class="jxr_string">".0"</span> );
+<a name="296" href="#296">296</a>                     }
+<a name="297" href="#297">297</a>                 }
+<a name="298" href="#298">298</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( qualifier != <strong class="jxr_keyword">null</strong> )
+<a name="299" href="#299">299</a>                 {
+<a name="300" href="#300">300</a>                     result.append( <span class="jxr_string">".0.0."</span> );
+<a name="301" href="#301">301</a>                     cleanupModifier( result, qualifier );
+<a name="302" href="#302">302</a>                 }
+<a name="303" href="#303">303</a>                 <strong class="jxr_keyword">else</strong>
+<a name="304" href="#304">304</a>                 {
+<a name="305" href="#305">305</a>                     result.append( <span class="jxr_string">".0.0"</span> );
+<a name="306" href="#306">306</a>                 }
+<a name="307" href="#307">307</a>             }
+<a name="308" href="#308">308</a>         }
+<a name="309" href="#309">309</a>         <strong class="jxr_keyword">else</strong>
+<a name="310" href="#310">310</a>         {
+<a name="311" href="#311">311</a>             result.append( <span class="jxr_string">"0.0.0."</span> );
+<a name="312" href="#312">312</a>             cleanupModifier( result, version );
+<a name="313" href="#313">313</a>         }
+<a name="314" href="#314">314</a>         <strong class="jxr_keyword">return</strong> result.toString();
+<a name="315" href="#315">315</a>     }
+<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">static</strong> <strong class="jxr_keyword">void</strong> cleanupModifier( StringBuffer result, String modifier )
+<a name="319" href="#319">319</a>     {
+<a name="320" href="#320">320</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; modifier.length(); i++ )
+<a name="321" href="#321">321</a>         {
+<a name="322" href="#322">322</a>             <strong class="jxr_keyword">char</strong> c = modifier.charAt( i );
+<a name="323" href="#323">323</a>             <strong class="jxr_keyword">if</strong> ( ( c &gt;= '0' &amp;&amp; c &lt;= '9' ) || ( c &gt;= 'a' &amp;&amp; c &lt;= 'z' ) || ( c &gt;= 'A' &amp;&amp; c &lt;= 'Z' ) || c == '_'
+<a name="324" href="#324">324</a>                 || c == '-' )
+<a name="325" href="#325">325</a>                 result.append( c );
+<a name="326" href="#326">326</a>             <strong class="jxr_keyword">else</strong>
+<a name="327" href="#327">327</a>                 result.append( '_' );
+<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> }
+</pre>
+<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
+</html>
+
diff --git a/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/ManifestReadingException.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/ManifestReadingException.html
new file mode 100644
index 0000000..24ae4e4
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/ManifestReadingException.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>ManifestReadingException xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.maven.shared.osgi;
+<a name="20" href="#20">20</a>  
+<a name="21" href="#21">21</a>  
+<a name="22" href="#22">22</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="23" href="#23">23</a>  <em class="jxr_javadoccomment"> * Exception while reading the manifest. Encapsulates an IOException to make it runtime</em>
+<a name="24" href="#24">24</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="25" href="#25">25</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:carlos@apache.org" target="alexandria_uri">mailto:carlos@apache.org</a>"&gt;Carlos Sanchez&lt;/a&gt;</em>
+<a name="26" href="#26">26</a>  <em class="jxr_javadoccomment"> * @version $Id$</em>
+<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="28" href="#28">28</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/maven/shared/osgi/ManifestReadingException.html">ManifestReadingException</a> <strong class="jxr_keyword">extends</strong> RuntimeException
+<a name="29" href="#29">29</a>  {
+<a name="30" href="#30">30</a>  
+<a name="31" href="#31">31</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/maven/shared/osgi/ManifestReadingException.html">ManifestReadingException</a>()
+<a name="32" href="#32">32</a>      {
+<a name="33" href="#33">33</a>          <strong class="jxr_keyword">super</strong>();
+<a name="34" href="#34">34</a>      }
+<a name="35" href="#35">35</a>  
+<a name="36" href="#36">36</a>  
+<a name="37" href="#37">37</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/maven/shared/osgi/ManifestReadingException.html">ManifestReadingException</a>( String message, Throwable cause )
+<a name="38" href="#38">38</a>      {
+<a name="39" href="#39">39</a>          <strong class="jxr_keyword">super</strong>( message, cause );
+<a name="40" href="#40">40</a>      }
+<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/maven/shared/osgi/ManifestReadingException.html">ManifestReadingException</a>( String message )
+<a name="44" href="#44">44</a>      {
+<a name="45" href="#45">45</a>          <strong class="jxr_keyword">super</strong>( message );
+<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> <a href="../../../../../org/apache/maven/shared/osgi/ManifestReadingException.html">ManifestReadingException</a>( Throwable cause )
+<a name="50" href="#50">50</a>      {
+<a name="51" href="#51">51</a>          <strong class="jxr_keyword">super</strong>( cause );
+<a name="52" href="#52">52</a>      }
+<a name="53" href="#53">53</a>  }
+</pre>
+<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
+</html>
+
diff --git a/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/Maven2OsgiConverter.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/Maven2OsgiConverter.html
new file mode 100644
index 0000000..fe0a52e
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/Maven2OsgiConverter.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+<title>Maven2OsgiConverter xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
+<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
+<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
+<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
+<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
+<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
+<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
+<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.maven.shared.osgi;
+<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> org.apache.maven.artifact.Artifact;
+<a name="23" href="#23">23</a>  
+<a name="24" href="#24">24</a>  
+<a name="25" href="#25">25</a>  <em class="jxr_javadoccomment">/**</em>
+<a name="26" href="#26">26</a>  <em class="jxr_javadoccomment"> * Converter from Maven groupId,artifactId and versions to OSGi Bundle-SymbolicName and version</em>
+<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment"> * </em>
+<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> * @author &lt;a href="<a href="mailto:carlos@apache.org" target="alexandria_uri">mailto:carlos@apache.org</a>"&gt;Carlos Sanchez&lt;/a&gt;</em>
+<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * @version $Id$</em>
+<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> */</em>
+<a name="31" href="#31">31</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">interface</strong> Maven2OsgiConverter
+<a name="32" href="#32">32</a>  {
+<a name="33" href="#33">33</a>  
+<a name="34" href="#34">34</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment">     * Get the OSGi symbolic name for the artifact</em>
+<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment">     * @param artifact</em>
+<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment">     * @return the Bundle-SymbolicName manifest property</em>
+<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="40" href="#40">40</a>      String getBundleSymbolicName( Artifact artifact );
+<a name="41" href="#41">41</a>  
+<a name="42" href="#42">42</a>  
+<a name="43" href="#43">43</a>      String getBundleFileName( Artifact artifact );
+<a name="44" href="#44">44</a>  
+<a name="45" href="#45">45</a>  
+<a name="46" href="#46">46</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment">     * Convert a Maven version into an OSGi compliant version</em>
+<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment">     * @param artifact Maven artifact</em>
+<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     * @return the OSGi version</em>
+<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="52" href="#52">52</a>      String getVersion( Artifact artifact );
+<a name="53" href="#53">53</a>  
+<a name="54" href="#54">54</a>  
+<a name="55" href="#55">55</a>      <em class="jxr_javadoccomment">/**</em>
+<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     * Convert a Maven version into an OSGi compliant version</em>
+<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * </em>
+<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     * @param version Maven version</em>
+<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment">     * @return the OSGi version</em>
+<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     */</em>
+<a name="61" href="#61">61</a>      String getVersion( String version );
+<a name="62" href="#62">62</a>  
+<a name="63" href="#63">63</a>  }
+</pre>
+<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
+</html>
+
diff --git a/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-frame.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-frame.html
new file mode 100644
index 0000000..8a158f3
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-frame.html
@@ -0,0 +1,30 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>Maven Bundle Plugin 2.3.5 Reference Package org.apache.maven.shared.osgi</title>
+		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
+	</head>
+	<body>
+
+		<h3>
+        	<a href="package-summary.html" target="classFrame">org.apache.maven.shared.osgi</a>
+      	</h3>
+
+      	<h3>Classes</h3>
+
+      	<ul>
+      		          	<li>
+            	<a href="DefaultMaven2OsgiConverter.html" target="classFrame">DefaultMaven2OsgiConverter</a>
+          	</li>
+          	          	<li>
+            	<a href="ManifestReadingException.html" target="classFrame">ManifestReadingException</a>
+          	</li>
+          	          	<li>
+            	<a href="Maven2OsgiConverter.html" target="classFrame">Maven2OsgiConverter</a>
+          	</li>
+          	      	</ul>
+
+	</body>
+</html>
\ No newline at end of file
diff --git a/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-summary.html b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-summary.html
new file mode 100644
index 0000000..c33547a
--- /dev/null
+++ b/bundleplugin/doc/site/xref/org/apache/maven/shared/osgi/package-summary.html
@@ -0,0 +1,77 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>Maven Bundle Plugin 2.3.5 Reference Package org.apache.maven.shared.osgi</title>
+		<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="style" />
+	</head>
+	<body>
+		      	<div class="overview">
+        	<ul>
+          		<li>
+            		<a href="../../../../../overview-summary.html">Overview</a>
+          		</li>
+          		<li class="selected">Package</li>
+        	</ul>
+      	</div>
+      	<div class="framenoframe">
+        	<ul>
+          		<li>
+            		<a href="../../../../../index.html" target="_top">FRAMES</a>
+          		</li>
+          		<li>
+            		<a href="package-summary.html" target="_top">NO FRAMES</a>
+          		</li>
+        	</ul>
+      	</div>
+		
+		      	<h2>Package org.apache.maven.shared.osgi</h2>
+
+		<table class="summary">
+        	<thead>
+          		<tr>
+            		<th>Class Summary</th>
+          		</tr>
+        	</thead>
+        	<tbody>
+        		            	<tr>
+              		<td>
+                		<a href="DefaultMaven2OsgiConverter.html" target="classFrame">DefaultMaven2OsgiConverter</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="ManifestReadingException.html" target="classFrame">ManifestReadingException</a>
+              		</td>
+            	</tr>
+				            	<tr>
+              		<td>
+                		<a href="Maven2OsgiConverter.html" target="classFrame">Maven2OsgiConverter</a>
+              		</td>
+            	</tr>
+				        	</tbody>
+      	</table>
+		
+		      	<div class="overview">
+        	<ul>
+          		<li>
+            		<a href="../../../../../overview-summary.html">Overview</a>
+          		</li>
+          		<li class="selected">Package</li>
+        	</ul>
+      	</div>
+      	<div class="framenoframe">
+        	<ul>
+          		<li>
+            		<a href="../../../../../index.html" target="_top">FRAMES</a>
+          		</li>
+          		<li>
+            		<a href="package-summary.html" target="_top">NO FRAMES</a>
+          		</li>
+        	</ul>
+      	</div>
+				<hr />
+		Copyright &copy; 2006-2011 The Apache Software Foundation. All Rights Reserved.
+	</body>
+</html>
\ No newline at end of file
diff --git a/bundleplugin/doc/site/xref/overview-frame.html b/bundleplugin/doc/site/xref/overview-frame.html
new file mode 100644
index 0000000..6bbfaa4
--- /dev/null
+++ b/bundleplugin/doc/site/xref/overview-frame.html
@@ -0,0 +1,34 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>Maven Bundle Plugin 2.3.5 Reference</title>
+		<link rel="stylesheet" type="text/css" href="stylesheet.css" title="style" />
+	</head>
+	<body>
+
+		<h3>
+			<a href="allclasses-frame.html" target="packageFrame">All Classes</a>
+		</h3>
+
+		<h3>Packages</h3>
+
+		<ul>
+						<li>
+				<a href="org/apache/felix/bundleplugin/package-frame.html" target="packageFrame">org.apache.felix.bundleplugin</a>
+			</li>
+						<li>
+				<a href="org/apache/felix/obrplugin/package-frame.html" target="packageFrame">org.apache.felix.obrplugin</a>
+			</li>
+						<li>
+				<a href="org/apache/maven/shared/dependency/tree/package-frame.html" target="packageFrame">org.apache.maven.shared.dependency.tree</a>
+			</li>
+						<li>
+				<a href="org/apache/maven/shared/osgi/package-frame.html" target="packageFrame">org.apache.maven.shared.osgi</a>
+			</li>
+					</ul>
+
+	</body>
+</html>
+
diff --git a/bundleplugin/doc/site/xref/overview-summary.html b/bundleplugin/doc/site/xref/overview-summary.html
new file mode 100644
index 0000000..d186331
--- /dev/null
+++ b/bundleplugin/doc/site/xref/overview-summary.html
@@ -0,0 +1,79 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<html xml:lang="en" lang="en">
+	<head>
+		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+		<title>Maven Bundle Plugin 2.3.5 Reference</title>
+		<link rel="stylesheet" type="text/css" href="stylesheet.css" title="style" />
+	</head>
+	<body>
+				<div class="overview">
+			<ul>
+				<li class="selected">Overview</li>
+				<li>Package</li>
+			</ul>
+		</div>
+		<div class="framenoframe">
+			<ul>
+				<li>
+					<a href="index.html" target="_top">FRAMES</a>
+				</li>
+				<li>
+    	        	<a href="overview-summary.html" target="_top">NO FRAMES</a>
+        	  	</li>
+	        </ul>
+      	</div>
+		
+		      	<h2>Maven Bundle Plugin 2.3.5 Reference</h2>
+
+		<table class="summary">
+        	<thead>
+          		<tr>
+            		<th>Packages</th>
+          		</tr>
+        	</thead>
+        	<tbody>
+    	    	            	<tr>
+              		<td>
+                		<a href="org/apache/felix/bundleplugin/package-summary.html">org.apache.felix.bundleplugin</a>
+              		</td>
+            	</tr>
+	          	            	<tr>
+              		<td>
+                		<a href="org/apache/felix/obrplugin/package-summary.html">org.apache.felix.obrplugin</a>
+              		</td>
+            	</tr>
+	          	            	<tr>
+              		<td>
+                		<a href="org/apache/maven/shared/dependency/tree/package-summary.html">org.apache.maven.shared.dependency.tree</a>
+              		</td>
+            	</tr>
+	          	            	<tr>
+              		<td>
+                		<a href="org/apache/maven/shared/osgi/package-summary.html">org.apache.maven.shared.osgi</a>
+              		</td>
+            	</tr>
+	          	        	</tbody>
+      	</table>
+		
+				<div class="overview">
+			<ul>
+				<li class="selected">Overview</li>
+				<li>Package</li>
+			</ul>
+		</div>
+		<div class="framenoframe">
+			<ul>
+				<li>
+					<a href="index.html" target="_top">FRAMES</a>
+				</li>
+				<li>
+    	        	<a href="overview-summary.html" target="_top">NO FRAMES</a>
+        	  	</li>
+	        </ul>
+      	</div>
+		
+		<hr />
+		Copyright &copy; 2006-2011 The Apache Software Foundation. All Rights Reserved.
+	</body>
+</html>
\ No newline at end of file
diff --git a/bundleplugin/doc/site/xref/stylesheet.css b/bundleplugin/doc/site/xref/stylesheet.css
new file mode 100644
index 0000000..00e6114
--- /dev/null
+++ b/bundleplugin/doc/site/xref/stylesheet.css
@@ -0,0 +1,116 @@
+/* Javadoc style sheet */
+/* Define colors, fonts and other style attributes here to override the defaults  */
+body {
+    background-color: #fff;
+    font-family: Arial, Helvetica, sans-serif;
+}
+
+a:link {
+    color: #00f;
+}
+a:visited {
+    color: #00a;
+}
+
+a:active, a:hover {
+    color: #f30 !important;
+}
+
+ul, li {
+    list-style-type:none;
+    margin:0;
+    padding:0;
+}
+
+table td {
+    padding: 3px;
+    border: 1px solid #000;
+}
+table {
+    width:100%;
+    border: 1px solid #000;
+    border-collapse: collapse;
+}
+
+div.overview {
+    background-color:#ddd;
+    padding: 4px 4px 4px 0;
+}
+div.overview li, div.framenoframe li {
+    display: inline;
+}
+div.framenoframe {
+    text-align: center;
+    font-size: x-small;
+}
+div.framenoframe li {
+    margin: 0 3px 0 3px;
+}
+div.overview li {
+    margin:3px 3px 0 3px;
+    padding: 4px;
+}
+li.selected {
+    background-color:#888;
+    color: #fff;
+    font-weight: bold;
+}
+
+table.summary {
+    margin-bottom: 20px;
+}
+table.summary td, table.summary th {
+    font-weight: bold;
+    text-align: left;
+    padding: 3px;
+}
+table.summary th {
+    background-color:#036;
+    color: #fff;
+}
+table.summary td {
+    background-color:#eee;
+    border: 1px solid black;
+}
+
+em {
+    color: #A00;
+}
+em.comment {
+    color: #390;
+}
+.string {
+    color: #009;
+}
+div#footer {
+    text-align:center;
+}
+#overview {
+    padding:2px;
+}
+
+hr {
+    height: 1px;
+    color: #000;
+}
+
+/* JXR style sheet */
+.jxr_comment
+{
+    color: #390;
+}
+
+.jxr_javadoccomment
+{
+    color: #A00;
+}
+
+.jxr_string
+{
+    color: #009;
+}
+
+.jxr_keyword
+{
+    color: #000;
+}
