<!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.bnd.osgi.Analyzer;
<a name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.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> ( InvalidDependencyVersionException e )
<a name="275" href="#275">275</a>             {
<a name="276" href="#276">276</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Invalid dependency version for artifact "</span> + artifact );
<a name="277" href="#277">277</a>             }
<a name="278" href="#278">278</a>             <strong class="jxr_keyword">catch</strong> ( ProjectBuildingException e )
<a name="279" href="#279">279</a>             {
<a name="280" href="#280">280</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Unable to build project object for artifact "</span> + artifact, e );
<a name="281" href="#281">281</a>             }
<a name="282" href="#282">282</a> 
<a name="283" href="#283">283</a>             childProject.setArtifact( artifact );
<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>

