<!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=UTF-8" />
<title>DependencyEmbedder xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/felix/bundleplugin/DependencyEmbedder.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2." target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.</a>0</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashSet;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.dependency.graph.DependencyNode;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.StringUtils;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Analyzer;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <em class="jxr_javadoccomment"> * Add BND directives to embed selected dependencies inside a bundle</em>
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L39" href="#L39">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 class="jxr_linenumber" name="L40" href="#L40">40</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L41" href="#L41">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/bundleplugin/DependencyEmbedder.html">DependencyEmbedder</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/AbstractDependencyFilter.html">AbstractDependencyFilter</a>
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  {
<a class="jxr_linenumber" name="L43" href="#L43">43</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 class="jxr_linenumber" name="L44" href="#L44">44</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 class="jxr_linenumber" name="L45" href="#L45">45</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 class="jxr_linenumber" name="L46" href="#L46">46</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 class="jxr_linenumber" name="L47" href="#L47">47</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 class="jxr_linenumber" name="L48" href="#L48">48</a>  
<a class="jxr_linenumber" name="L49" href="#L49">49</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String EMBEDDED_ARTIFACTS = <span class="jxr_string">"Embedded-Artifacts"</span>;
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  
<a class="jxr_linenumber" name="L51" href="#L51">51</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 class="jxr_linenumber" name="L52" href="#L52">52</a>  
<a class="jxr_linenumber" name="L53" href="#L53">53</a>      <strong class="jxr_keyword">private</strong> String m_embedDirectory;
<a class="jxr_linenumber" name="L54" href="#L54">54</a>      <strong class="jxr_keyword">private</strong> String m_embedStripGroup;
<a class="jxr_linenumber" name="L55" href="#L55">55</a>      <strong class="jxr_keyword">private</strong> String m_embedStripVersion;
<a class="jxr_linenumber" name="L56" href="#L56">56</a>  
<a class="jxr_linenumber" name="L57" href="#L57">57</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L58" href="#L58">58</a>  <em class="jxr_javadoccomment">     * Inlined paths.</em>
<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L60" href="#L60">60</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Collection&lt;String&gt; m_inlinedPaths;
<a class="jxr_linenumber" name="L61" href="#L61">61</a>  
<a class="jxr_linenumber" name="L62" href="#L62">62</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L63" href="#L63">63</a>  <em class="jxr_javadoccomment">     * Embedded artifacts.</em>
<a class="jxr_linenumber" name="L64" href="#L64">64</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L65" href="#L65">65</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Collection&lt;Artifact&gt; m_embeddedArtifacts;
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  
<a class="jxr_linenumber" name="L67" href="#L67">67</a>  
<a class="jxr_linenumber" name="L68" href="#L68">68</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyEmbedder.html">DependencyEmbedder</a>( Log log, DependencyNode dependencyGraph, Collection&lt;Artifact&gt; dependencyArtifacts )
<a class="jxr_linenumber" name="L69" href="#L69">69</a>      {
<a class="jxr_linenumber" name="L70" href="#L70">70</a>          <strong class="jxr_keyword">super</strong>( dependencyGraph, dependencyArtifacts );
<a class="jxr_linenumber" name="L71" href="#L71">71</a>  
<a class="jxr_linenumber" name="L72" href="#L72">72</a>          m_inlinedPaths = <strong class="jxr_keyword">new</strong> LinkedHashSet&lt;String&gt;();
<a class="jxr_linenumber" name="L73" href="#L73">73</a>          m_embeddedArtifacts = <strong class="jxr_keyword">new</strong> LinkedHashSet&lt;Artifact&gt;();
<a class="jxr_linenumber" name="L74" href="#L74">74</a>      }
<a class="jxr_linenumber" name="L75" href="#L75">75</a>  
<a class="jxr_linenumber" name="L76" href="#L76">76</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> processHeaders( Analyzer analyzer ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
<a class="jxr_linenumber" name="L77" href="#L77">77</a>      {
<a class="jxr_linenumber" name="L78" href="#L78">78</a>          StringBuffer includeResource = <strong class="jxr_keyword">new</strong> StringBuffer();
<a class="jxr_linenumber" name="L79" href="#L79">79</a>          StringBuffer bundleClassPath = <strong class="jxr_keyword">new</strong> StringBuffer();
<a class="jxr_linenumber" name="L80" href="#L80">80</a>          StringBuffer embeddedArtifacts = <strong class="jxr_keyword">new</strong> StringBuffer();
<a class="jxr_linenumber" name="L81" href="#L81">81</a>  
<a class="jxr_linenumber" name="L82" href="#L82">82</a>          m_inlinedPaths.clear();
<a class="jxr_linenumber" name="L83" href="#L83">83</a>          m_embeddedArtifacts.clear();
<a class="jxr_linenumber" name="L84" href="#L84">84</a>  
<a class="jxr_linenumber" name="L85" href="#L85">85</a>          String embedDependencyHeader = analyzer.getProperty( EMBED_DEPENDENCY );
<a class="jxr_linenumber" name="L86" href="#L86">86</a>          <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( embedDependencyHeader ) )
<a class="jxr_linenumber" name="L87" href="#L87">87</a>          {
<a class="jxr_linenumber" name="L88" href="#L88">88</a>              m_embedDirectory = analyzer.getProperty( EMBED_DIRECTORY );
<a class="jxr_linenumber" name="L89" href="#L89">89</a>              m_embedStripGroup = analyzer.getProperty( EMBED_STRIP_GROUP, <span class="jxr_string">"true"</span> );
<a class="jxr_linenumber" name="L90" href="#L90">90</a>              m_embedStripVersion = analyzer.getProperty( EMBED_STRIP_VERSION );
<a class="jxr_linenumber" name="L91" href="#L91">91</a>  
<a class="jxr_linenumber" name="L92" href="#L92">92</a>              processInstructions( embedDependencyHeader );
<a class="jxr_linenumber" name="L93" href="#L93">93</a>  
<a class="jxr_linenumber" name="L94" href="#L94">94</a>              <strong class="jxr_keyword">for</strong> ( Iterator&lt;String&gt; i = m_inlinedPaths.iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L95" href="#L95">95</a>              {
<a class="jxr_linenumber" name="L96" href="#L96">96</a>                  inlineDependency( i.next(), includeResource );
<a class="jxr_linenumber" name="L97" href="#L97">97</a>              }
<a class="jxr_linenumber" name="L98" href="#L98">98</a>              <strong class="jxr_keyword">for</strong> ( Iterator&lt;Artifact&gt; i = m_embeddedArtifacts.iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L99" href="#L99">99</a>              {
<a class="jxr_linenumber" name="L100" href="#L100">100</a>                 embedDependency( i.next(), includeResource, bundleClassPath, embeddedArtifacts );
<a class="jxr_linenumber" name="L101" href="#L101">101</a>             }
<a class="jxr_linenumber" name="L102" href="#L102">102</a>         }
<a class="jxr_linenumber" name="L103" href="#L103">103</a> 
<a class="jxr_linenumber" name="L104" href="#L104">104</a>         <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.WAB ) == <strong class="jxr_keyword">null</strong> &amp;&amp; bundleClassPath.length() &gt; 0 )
<a class="jxr_linenumber" name="L105" href="#L105">105</a>         {
<a class="jxr_linenumber" name="L106" href="#L106">106</a>             <em class="jxr_comment">// set explicit default before merging dependency classpath</em>
<a class="jxr_linenumber" name="L107" href="#L107">107</a>             <strong class="jxr_keyword">if</strong> ( analyzer.getProperty( Analyzer.BUNDLE_CLASSPATH ) == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L108" href="#L108">108</a>             {
<a class="jxr_linenumber" name="L109" href="#L109">109</a>                 analyzer.setProperty( Analyzer.BUNDLE_CLASSPATH, <span class="jxr_string">"."</span> );
<a class="jxr_linenumber" name="L110" href="#L110">110</a>             }
<a class="jxr_linenumber" name="L111" href="#L111">111</a>         }
<a class="jxr_linenumber" name="L112" href="#L112">112</a> 
<a class="jxr_linenumber" name="L113" href="#L113">113</a>         appendDependencies( analyzer, Analyzer.INCLUDE_RESOURCE, includeResource.toString() );
<a class="jxr_linenumber" name="L114" href="#L114">114</a>         appendDependencies( analyzer, Analyzer.BUNDLE_CLASSPATH, bundleClassPath.toString() );
<a class="jxr_linenumber" name="L115" href="#L115">115</a>         appendDependencies( analyzer, EMBEDDED_ARTIFACTS, embeddedArtifacts.toString() );
<a class="jxr_linenumber" name="L116" href="#L116">116</a>     }
<a class="jxr_linenumber" name="L117" href="#L117">117</a> 
<a class="jxr_linenumber" name="L118" href="#L118">118</a> 
<a class="jxr_linenumber" name="L119" href="#L119">119</a>     @Override
<a class="jxr_linenumber" name="L120" href="#L120">120</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> processDependencies( Collection&lt;Artifact&gt; dependencies, String inline )
<a class="jxr_linenumber" name="L121" href="#L121">121</a>     {
<a class="jxr_linenumber" name="L122" href="#L122">122</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == inline || <span class="jxr_string">"false"</span>.equalsIgnoreCase( inline ) )
<a class="jxr_linenumber" name="L123" href="#L123">123</a>         {
<a class="jxr_linenumber" name="L124" href="#L124">124</a>             m_embeddedArtifacts.addAll( dependencies );
<a class="jxr_linenumber" name="L125" href="#L125">125</a>         }
<a class="jxr_linenumber" name="L126" href="#L126">126</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L127" href="#L127">127</a>         {
<a class="jxr_linenumber" name="L128" href="#L128">128</a>             <strong class="jxr_keyword">for</strong> ( Iterator&lt;Artifact&gt; i = dependencies.iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L129" href="#L129">129</a>             {
<a class="jxr_linenumber" name="L130" href="#L130">130</a>                 addInlinedPaths( i.next(), inline, m_inlinedPaths );
<a class="jxr_linenumber" name="L131" href="#L131">131</a>             }
<a class="jxr_linenumber" name="L132" href="#L132">132</a>         }
<a class="jxr_linenumber" name="L133" href="#L133">133</a>     }
<a class="jxr_linenumber" name="L134" href="#L134">134</a> 
<a class="jxr_linenumber" name="L135" href="#L135">135</a> 
<a class="jxr_linenumber" name="L136" href="#L136">136</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&lt;String&gt; inlinedPaths )
<a class="jxr_linenumber" name="L137" href="#L137">137</a>     {
<a class="jxr_linenumber" name="L138" href="#L138">138</a>         File path = dependency.getFile();
<a class="jxr_linenumber" name="L139" href="#L139">139</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != path &amp;&amp; path.exists() )
<a class="jxr_linenumber" name="L140" href="#L140">140</a>         {
<a class="jxr_linenumber" name="L141" href="#L141">141</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"true"</span>.equalsIgnoreCase( inline ) || inline.length() == 0 )
<a class="jxr_linenumber" name="L142" href="#L142">142</a>             {
<a class="jxr_linenumber" name="L143" href="#L143">143</a>                 inlinedPaths.add( path.getPath() );
<a class="jxr_linenumber" name="L144" href="#L144">144</a>             }
<a class="jxr_linenumber" name="L145" href="#L145">145</a>             <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L146" href="#L146">146</a>             {
<a class="jxr_linenumber" name="L147" href="#L147">147</a>                 String[] filters = inline.split( <span class="jxr_string">"&#92;&#92;|"</span> );
<a class="jxr_linenumber" name="L148" href="#L148">148</a>                 <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; filters.length; i++ )
<a class="jxr_linenumber" name="L149" href="#L149">149</a>                 {
<a class="jxr_linenumber" name="L150" href="#L150">150</a>                     <strong class="jxr_keyword">if</strong> ( filters[i].length() &gt; 0 )
<a class="jxr_linenumber" name="L151" href="#L151">151</a>                     {
<a class="jxr_linenumber" name="L152" href="#L152">152</a>                         inlinedPaths.add( path + <span class="jxr_string">"!/"</span> + filters[i] );
<a class="jxr_linenumber" name="L153" href="#L153">153</a>                     }
<a class="jxr_linenumber" name="L154" href="#L154">154</a>                 }
<a class="jxr_linenumber" name="L155" href="#L155">155</a>             }
<a class="jxr_linenumber" name="L156" href="#L156">156</a>         }
<a class="jxr_linenumber" name="L157" href="#L157">157</a>     }
<a class="jxr_linenumber" name="L158" href="#L158">158</a> 
<a class="jxr_linenumber" name="L159" href="#L159">159</a> 
<a class="jxr_linenumber" name="L160" href="#L160">160</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> embedDependency( Artifact dependency, StringBuffer includeResource, StringBuffer bundleClassPath,
<a class="jxr_linenumber" name="L161" href="#L161">161</a>         StringBuffer embeddedArtifacts )
<a class="jxr_linenumber" name="L162" href="#L162">162</a>     {
<a class="jxr_linenumber" name="L163" href="#L163">163</a>         File sourceFile = dependency.getFile();
<a class="jxr_linenumber" name="L164" href="#L164">164</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != sourceFile &amp;&amp; sourceFile.exists() )
<a class="jxr_linenumber" name="L165" href="#L165">165</a>         {
<a class="jxr_linenumber" name="L166" href="#L166">166</a>             String embedDirectory = m_embedDirectory;
<a class="jxr_linenumber" name="L167" href="#L167">167</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">""</span>.equals( embedDirectory ) || <span class="jxr_string">"."</span>.equals( embedDirectory ) )
<a class="jxr_linenumber" name="L168" href="#L168">168</a>             {
<a class="jxr_linenumber" name="L169" href="#L169">169</a>                 embedDirectory = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L170" href="#L170">170</a>             }
<a class="jxr_linenumber" name="L171" href="#L171">171</a> 
<a class="jxr_linenumber" name="L172" href="#L172">172</a>             <strong class="jxr_keyword">if</strong> ( false == Boolean.valueOf( m_embedStripGroup ).booleanValue() )
<a class="jxr_linenumber" name="L173" href="#L173">173</a>             {
<a class="jxr_linenumber" name="L174" href="#L174">174</a>                 embedDirectory = <strong class="jxr_keyword">new</strong> File( embedDirectory, dependency.getGroupId() ).getPath();
<a class="jxr_linenumber" name="L175" href="#L175">175</a>             }
<a class="jxr_linenumber" name="L176" href="#L176">176</a> 
<a class="jxr_linenumber" name="L177" href="#L177">177</a>             StringBuffer targetFileName = <strong class="jxr_keyword">new</strong> StringBuffer();
<a class="jxr_linenumber" name="L178" href="#L178">178</a>             targetFileName.append( dependency.getArtifactId() );
<a class="jxr_linenumber" name="L179" href="#L179">179</a>             <strong class="jxr_keyword">if</strong> ( false == Boolean.valueOf( m_embedStripVersion ).booleanValue() )
<a class="jxr_linenumber" name="L180" href="#L180">180</a>             {
<a class="jxr_linenumber" name="L181" href="#L181">181</a>                 targetFileName.append( '-' ).append( dependency.getVersion() );
<a class="jxr_linenumber" name="L182" href="#L182">182</a>                 <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( dependency.getClassifier() ) )
<a class="jxr_linenumber" name="L183" href="#L183">183</a>                 {
<a class="jxr_linenumber" name="L184" href="#L184">184</a>                     targetFileName.append( '-' ).append( dependency.getClassifier() );
<a class="jxr_linenumber" name="L185" href="#L185">185</a>                 }
<a class="jxr_linenumber" name="L186" href="#L186">186</a>             }
<a class="jxr_linenumber" name="L187" href="#L187">187</a>             String extension = dependency.getArtifactHandler().getExtension();
<a class="jxr_linenumber" name="L188" href="#L188">188</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( extension ) )
<a class="jxr_linenumber" name="L189" href="#L189">189</a>             {
<a class="jxr_linenumber" name="L190" href="#L190">190</a>                 targetFileName.append( '.' ).append( extension );
<a class="jxr_linenumber" name="L191" href="#L191">191</a>             }
<a class="jxr_linenumber" name="L192" href="#L192">192</a> 
<a class="jxr_linenumber" name="L193" href="#L193">193</a>             File targetFile = <strong class="jxr_keyword">new</strong> File( embedDirectory, targetFileName.toString() );
<a class="jxr_linenumber" name="L194" href="#L194">194</a> 
<a class="jxr_linenumber" name="L195" href="#L195">195</a>             String targetFilePath = targetFile.getPath();
<a class="jxr_linenumber" name="L196" href="#L196">196</a> 
<a class="jxr_linenumber" name="L197" href="#L197">197</a>             <em class="jxr_comment">// replace windows backslash with a slash</em>
<a class="jxr_linenumber" name="L198" href="#L198">198</a>             <strong class="jxr_keyword">if</strong> ( File.separatorChar != '/' )
<a class="jxr_linenumber" name="L199" href="#L199">199</a>             {
<a class="jxr_linenumber" name="L200" href="#L200">200</a>                 targetFilePath = targetFilePath.replace( File.separatorChar, '/' );
<a class="jxr_linenumber" name="L201" href="#L201">201</a>             }
<a class="jxr_linenumber" name="L202" href="#L202">202</a> 
<a class="jxr_linenumber" name="L203" href="#L203">203</a>             <strong class="jxr_keyword">if</strong> ( includeResource.length() &gt; 0 )
<a class="jxr_linenumber" name="L204" href="#L204">204</a>             {
<a class="jxr_linenumber" name="L205" href="#L205">205</a>                 includeResource.append( ',' );
<a class="jxr_linenumber" name="L206" href="#L206">206</a>             }
<a class="jxr_linenumber" name="L207" href="#L207">207</a> 
<a class="jxr_linenumber" name="L208" href="#L208">208</a>             includeResource.append( targetFilePath );
<a class="jxr_linenumber" name="L209" href="#L209">209</a>             includeResource.append( '=' );
<a class="jxr_linenumber" name="L210" href="#L210">210</a>             includeResource.append( sourceFile );
<a class="jxr_linenumber" name="L211" href="#L211">211</a> 
<a class="jxr_linenumber" name="L212" href="#L212">212</a>             <strong class="jxr_keyword">if</strong> ( bundleClassPath.length() &gt; 0 )
<a class="jxr_linenumber" name="L213" href="#L213">213</a>             {
<a class="jxr_linenumber" name="L214" href="#L214">214</a>                 bundleClassPath.append( ',' );
<a class="jxr_linenumber" name="L215" href="#L215">215</a>             }
<a class="jxr_linenumber" name="L216" href="#L216">216</a> 
<a class="jxr_linenumber" name="L217" href="#L217">217</a>             bundleClassPath.append( targetFilePath );
<a class="jxr_linenumber" name="L218" href="#L218">218</a> 
<a class="jxr_linenumber" name="L219" href="#L219">219</a>             <strong class="jxr_keyword">if</strong> ( embeddedArtifacts.length() &gt; 0 )
<a class="jxr_linenumber" name="L220" href="#L220">220</a>             {
<a class="jxr_linenumber" name="L221" href="#L221">221</a>                 embeddedArtifacts.append( ',' );
<a class="jxr_linenumber" name="L222" href="#L222">222</a>             }
<a class="jxr_linenumber" name="L223" href="#L223">223</a> 
<a class="jxr_linenumber" name="L224" href="#L224">224</a>             embeddedArtifacts.append( targetFilePath ).append( ';' );
<a class="jxr_linenumber" name="L225" href="#L225">225</a>             embeddedArtifacts.append( <span class="jxr_string">"g=\&quot;"</span> ).append( dependency.getGroupId() ).append( '&quot;' );
<a class="jxr_linenumber" name="L226" href="#L226">226</a>             embeddedArtifacts.append( <span class="jxr_string">";a=\&quot;"</span> ).append( dependency.getArtifactId() ).append( '&quot;' );
<a class="jxr_linenumber" name="L227" href="#L227">227</a>             embeddedArtifacts.append( <span class="jxr_string">";v=\&quot;"</span> ).append( dependency.getBaseVersion() ).append( '&quot;' );
<a class="jxr_linenumber" name="L228" href="#L228">228</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( dependency.getClassifier() ) )
<a class="jxr_linenumber" name="L229" href="#L229">229</a>             {
<a class="jxr_linenumber" name="L230" href="#L230">230</a>                 embeddedArtifacts.append( <span class="jxr_string">";c=\&quot;"</span> ).append( dependency.getClassifier() ).append( '&quot;' );
<a class="jxr_linenumber" name="L231" href="#L231">231</a>             }
<a class="jxr_linenumber" name="L232" href="#L232">232</a>         }
<a class="jxr_linenumber" name="L233" href="#L233">233</a>     }
<a class="jxr_linenumber" name="L234" href="#L234">234</a> 
<a class="jxr_linenumber" name="L235" href="#L235">235</a> 
<a class="jxr_linenumber" name="L236" href="#L236">236</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 class="jxr_linenumber" name="L237" href="#L237">237</a>     {
<a class="jxr_linenumber" name="L238" href="#L238">238</a>         <strong class="jxr_keyword">if</strong> ( includeResource.length() &gt; 0 )
<a class="jxr_linenumber" name="L239" href="#L239">239</a>         {
<a class="jxr_linenumber" name="L240" href="#L240">240</a>             includeResource.append( ',' );
<a class="jxr_linenumber" name="L241" href="#L241">241</a>         }
<a class="jxr_linenumber" name="L242" href="#L242">242</a> 
<a class="jxr_linenumber" name="L243" href="#L243">243</a>         includeResource.append( '@' );
<a class="jxr_linenumber" name="L244" href="#L244">244</a>         includeResource.append( path );
<a class="jxr_linenumber" name="L245" href="#L245">245</a>     }
<a class="jxr_linenumber" name="L246" href="#L246">246</a> 
<a class="jxr_linenumber" name="L247" href="#L247">247</a> 
<a class="jxr_linenumber" name="L248" href="#L248">248</a>     <strong class="jxr_keyword">public</strong> Collection&lt;String&gt; getInlinedPaths()
<a class="jxr_linenumber" name="L249" href="#L249">249</a>     {
<a class="jxr_linenumber" name="L250" href="#L250">250</a>         <strong class="jxr_keyword">return</strong> m_inlinedPaths;
<a class="jxr_linenumber" name="L251" href="#L251">251</a>     }
<a class="jxr_linenumber" name="L252" href="#L252">252</a> 
<a class="jxr_linenumber" name="L253" href="#L253">253</a> 
<a class="jxr_linenumber" name="L254" href="#L254">254</a>     <strong class="jxr_keyword">public</strong> Collection&lt;Artifact&gt; getEmbeddedArtifacts()
<a class="jxr_linenumber" name="L255" href="#L255">255</a>     {
<a class="jxr_linenumber" name="L256" href="#L256">256</a>         <strong class="jxr_keyword">return</strong> m_embeddedArtifacts;
<a class="jxr_linenumber" name="L257" href="#L257">257</a>     }
<a class="jxr_linenumber" name="L258" href="#L258">258</a> 
<a class="jxr_linenumber" name="L259" href="#L259">259</a> 
<a class="jxr_linenumber" name="L260" href="#L260">260</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 class="jxr_linenumber" name="L261" href="#L261">261</a>     {
<a class="jxr_linenumber" name="L262" href="#L262">262</a>         <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L263" href="#L263">263</a> <em class="jxr_comment">         * similar algorithm to {maven-resources} but default behaviour here is to append rather than override</em>
<a class="jxr_linenumber" name="L264" href="#L264">264</a> <em class="jxr_comment">         */</em>
<a class="jxr_linenumber" name="L265" href="#L265">265</a>         <strong class="jxr_keyword">final</strong> String instruction = analyzer.getProperty( directiveName );
<a class="jxr_linenumber" name="L266" href="#L266">266</a>         <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( instruction ) )
<a class="jxr_linenumber" name="L267" href="#L267">267</a>         {
<a class="jxr_linenumber" name="L268" href="#L268">268</a>             <strong class="jxr_keyword">if</strong> ( instruction.indexOf( MAVEN_DEPENDENCIES ) &gt;= 0 )
<a class="jxr_linenumber" name="L269" href="#L269">269</a>             {
<a class="jxr_linenumber" name="L270" href="#L270">270</a>                 <em class="jxr_comment">// if there are no embeddded dependencies, we do a special treatment and replace</em>
<a class="jxr_linenumber" name="L271" href="#L271">271</a>                 <em class="jxr_comment">// every occurance of MAVEN_DEPENDENCIES and a following comma with an empty string</em>
<a class="jxr_linenumber" name="L272" href="#L272">272</a>                 <strong class="jxr_keyword">if</strong> ( mavenDependencies.length() == 0 )
<a class="jxr_linenumber" name="L273" href="#L273">273</a>                 {
<a class="jxr_linenumber" name="L274" href="#L274">274</a>                     String cleanInstruction = BundlePlugin.removeTagFromInstruction( instruction, MAVEN_DEPENDENCIES );
<a class="jxr_linenumber" name="L275" href="#L275">275</a>                     analyzer.setProperty( directiveName, cleanInstruction );
<a class="jxr_linenumber" name="L276" href="#L276">276</a>                 }
<a class="jxr_linenumber" name="L277" href="#L277">277</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L278" href="#L278">278</a>                 {
<a class="jxr_linenumber" name="L279" href="#L279">279</a>                     String mergedInstruction = StringUtils.replace( instruction, MAVEN_DEPENDENCIES, mavenDependencies );
<a class="jxr_linenumber" name="L280" href="#L280">280</a>                     analyzer.setProperty( directiveName, mergedInstruction );
<a class="jxr_linenumber" name="L281" href="#L281">281</a>                 }
<a class="jxr_linenumber" name="L282" href="#L282">282</a>             }
<a class="jxr_linenumber" name="L283" href="#L283">283</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenDependencies.length() &gt; 0 )
<a class="jxr_linenumber" name="L284" href="#L284">284</a>             {
<a class="jxr_linenumber" name="L285" href="#L285">285</a>                 <strong class="jxr_keyword">if</strong> ( Analyzer.INCLUDE_RESOURCE.equalsIgnoreCase( directiveName ) )
<a class="jxr_linenumber" name="L286" href="#L286">286</a>                 {
<a class="jxr_linenumber" name="L287" href="#L287">287</a>                     <em class="jxr_comment">// dependencies should be prepended so they can be overwritten by local resources</em>
<a class="jxr_linenumber" name="L288" href="#L288">288</a>                     analyzer.setProperty( directiveName, mavenDependencies + ',' + instruction );
<a class="jxr_linenumber" name="L289" href="#L289">289</a>                 }
<a class="jxr_linenumber" name="L290" href="#L290">290</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L291" href="#L291">291</a>                 <em class="jxr_comment">// Analyzer.BUNDLE_CLASSPATH</em>
<a class="jxr_linenumber" name="L292" href="#L292">292</a>                 {
<a class="jxr_linenumber" name="L293" href="#L293">293</a>                     <em class="jxr_comment">// for the classpath we want dependencies to be appended after local entries</em>
<a class="jxr_linenumber" name="L294" href="#L294">294</a>                     analyzer.setProperty( directiveName, instruction + ',' + mavenDependencies );
<a class="jxr_linenumber" name="L295" href="#L295">295</a>                 }
<a class="jxr_linenumber" name="L296" href="#L296">296</a>             }
<a class="jxr_linenumber" name="L297" href="#L297">297</a>             <em class="jxr_comment">// otherwise leave instruction unchanged</em>
<a class="jxr_linenumber" name="L298" href="#L298">298</a>         }
<a class="jxr_linenumber" name="L299" href="#L299">299</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenDependencies.length() &gt; 0 )
<a class="jxr_linenumber" name="L300" href="#L300">300</a>         {
<a class="jxr_linenumber" name="L301" href="#L301">301</a>             analyzer.setProperty( directiveName, mavenDependencies );
<a class="jxr_linenumber" name="L302" href="#L302">302</a>         }
<a class="jxr_linenumber" name="L303" href="#L303">303</a>         <em class="jxr_comment">// otherwise leave instruction unchanged</em>
<a class="jxr_linenumber" name="L304" href="#L304">304</a>     }
<a class="jxr_linenumber" name="L305" href="#L305">305</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2006&#x2013;2019 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>
