<!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>BundlePlugin xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/felix/bundleplugin/BundlePlugin.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.ByteArrayInputStream;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> java.io.ByteArrayOutputStream;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> java.io.FileInputStream;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> java.io.Writer;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Array;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Method;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> java.util.Arrays;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> java.util.Enumeration;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashSet;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <strong class="jxr_keyword">import</strong> java.util.TreeMap;
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Attributes;
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <strong class="jxr_keyword">import</strong> java.util.jar.Manifest;
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.felix.bundleplugin.pom.PomWriter;
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.ManifestSection;
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.MavenArchiveConfiguration;
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.archiver.MavenArchiver;
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.Artifact;
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.factory.ArtifactFactory;
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
<a class="jxr_linenumber" name="L56" href="#L56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.metadata.ArtifactMetadataSource;
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.repository.ArtifactRepository;
<a class="jxr_linenumber" name="L58" href="#L58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.resolver.ArtifactCollector;
<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.artifact.resolver.ArtifactResolver;
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.execution.MavenSession;
<a class="jxr_linenumber" name="L61" href="#L61">61</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Dependency;
<a class="jxr_linenumber" name="L62" href="#L62">62</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Exclusion;
<a class="jxr_linenumber" name="L63" href="#L63">63</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.License;
<a class="jxr_linenumber" name="L64" href="#L64">64</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Model;
<a class="jxr_linenumber" name="L65" href="#L65">65</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Resource;
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
<a class="jxr_linenumber" name="L67" href="#L67">67</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
<a class="jxr_linenumber" name="L68" href="#L68">68</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoFailureException;
<a class="jxr_linenumber" name="L69" href="#L69">69</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.logging.Log;
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugins.annotations.Component;
<a class="jxr_linenumber" name="L71" href="#L71">71</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugins.annotations.LifecyclePhase;
<a class="jxr_linenumber" name="L72" href="#L72">72</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugins.annotations.Mojo;
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugins.annotations.Parameter;
<a class="jxr_linenumber" name="L74" href="#L74">74</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugins.annotations.ResolutionScope;
<a class="jxr_linenumber" name="L75" href="#L75">75</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
<a class="jxr_linenumber" name="L76" href="#L76">76</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProjectBuilder;
<a class="jxr_linenumber" name="L77" href="#L77">77</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProjectHelper;
<a class="jxr_linenumber" name="L78" href="#L78">78</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.ProjectBuildingException;
<a class="jxr_linenumber" name="L79" href="#L79">79</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
<a class="jxr_linenumber" name="L80" href="#L80">80</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
<a class="jxr_linenumber" name="L81" href="#L81">81</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.dependency.graph.DependencyNode;
<a class="jxr_linenumber" name="L82" href="#L82">82</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.dependency.tree.DependencyTreeBuilder;
<a class="jxr_linenumber" name="L83" href="#L83">83</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException;
<a class="jxr_linenumber" name="L84" href="#L84">84</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.DefaultMaven2OsgiConverter;
<a class="jxr_linenumber" name="L85" href="#L85">85</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.shared.osgi.Maven2OsgiConverter;
<a class="jxr_linenumber" name="L86" href="#L86">86</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.archiver.UnArchiver;
<a class="jxr_linenumber" name="L87" href="#L87">87</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.archiver.manager.ArchiverManager;
<a class="jxr_linenumber" name="L88" href="#L88">88</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.DirectoryScanner;
<a class="jxr_linenumber" name="L89" href="#L89">89</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.FileUtils;
<a class="jxr_linenumber" name="L90" href="#L90">90</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.PropertyUtils;
<a class="jxr_linenumber" name="L91" href="#L91">91</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.StringUtils;
<a class="jxr_linenumber" name="L92" href="#L92">92</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.WriterFactory;
<a class="jxr_linenumber" name="L93" href="#L93">93</a>  <strong class="jxr_keyword">import</strong> org.sonatype.plexus.build.incremental.BuildContext;
<a class="jxr_linenumber" name="L94" href="#L94">94</a>  
<a class="jxr_linenumber" name="L95" href="#L95">95</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.header.Attrs;
<a class="jxr_linenumber" name="L96" href="#L96">96</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.header.OSGiHeader;
<a class="jxr_linenumber" name="L97" href="#L97">97</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.header.Parameters;
<a class="jxr_linenumber" name="L98" href="#L98">98</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Analyzer;
<a class="jxr_linenumber" name="L99" href="#L99">99</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Builder;
<a class="jxr_linenumber" name="L100" href="#L100">100</a> <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Constants;
<a class="jxr_linenumber" name="L101" href="#L101">101</a> <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Descriptors.PackageRef;
<a class="jxr_linenumber" name="L102" href="#L102">102</a> <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.EmbeddedResource;
<a class="jxr_linenumber" name="L103" href="#L103">103</a> <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.FileResource;
<a class="jxr_linenumber" name="L104" href="#L104">104</a> <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Instruction;
<a class="jxr_linenumber" name="L105" href="#L105">105</a> <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Instructions;
<a class="jxr_linenumber" name="L106" href="#L106">106</a> <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Jar;
<a class="jxr_linenumber" name="L107" href="#L107">107</a> <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Packages;
<a class="jxr_linenumber" name="L108" href="#L108">108</a> <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Processor;
<a class="jxr_linenumber" name="L109" href="#L109">109</a> <strong class="jxr_keyword">import</strong> aQute.lib.collections.ExtList;
<a class="jxr_linenumber" name="L110" href="#L110">110</a> <strong class="jxr_keyword">import</strong> aQute.lib.spring.SpringXMLType;
<a class="jxr_linenumber" name="L111" href="#L111">111</a> <strong class="jxr_keyword">import</strong> aQute.libg.generics.Create;
<a class="jxr_linenumber" name="L112" href="#L112">112</a> 
<a class="jxr_linenumber" name="L113" href="#L113">113</a> 
<a class="jxr_linenumber" name="L114" href="#L114">114</a> <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L115" href="#L115">115</a> <em class="jxr_javadoccomment"> * Create an OSGi bundle from Maven project</em>
<a class="jxr_linenumber" name="L116" href="#L116">116</a> <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L117" href="#L117">117</a> <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L118" href="#L118">118</a> @Mojo( name = <span class="jxr_string">"bundle"</span>, requiresDependencyResolution = ResolutionScope.TEST,
<a class="jxr_linenumber" name="L119" href="#L119">119</a>        threadSafe = <strong class="jxr_keyword">true</strong>,
<a class="jxr_linenumber" name="L120" href="#L120">120</a>        defaultPhase = LifecyclePhase.PACKAGE )
<a class="jxr_linenumber" name="L121" href="#L121">121</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/BundlePlugin.html">BundlePlugin</a> <strong class="jxr_keyword">extends</strong> AbstractMojo
<a class="jxr_linenumber" name="L122" href="#L122">122</a> {
<a class="jxr_linenumber" name="L123" href="#L123">123</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L124" href="#L124">124</a> <em class="jxr_javadoccomment">     * Directory where the manifest will be written</em>
<a class="jxr_linenumber" name="L125" href="#L125">125</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L126" href="#L126">126</a>     @Parameter( property = <span class="jxr_string">"manifestLocation"</span>, defaultValue = <span class="jxr_string">"${project.build.outputDirectory}/META-INF"</span> )
<a class="jxr_linenumber" name="L127" href="#L127">127</a>     <strong class="jxr_keyword">protected</strong> File manifestLocation;
<a class="jxr_linenumber" name="L128" href="#L128">128</a> 
<a class="jxr_linenumber" name="L129" href="#L129">129</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L130" href="#L130">130</a> <em class="jxr_javadoccomment">     * Output a nicely formatted manifest that still respects the 72 character line limit.</em>
<a class="jxr_linenumber" name="L131" href="#L131">131</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L132" href="#L132">132</a>     @Parameter( property = <span class="jxr_string">"niceManifest"</span>, defaultValue = <span class="jxr_string">"false"</span> )
<a class="jxr_linenumber" name="L133" href="#L133">133</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> niceManifest;
<a class="jxr_linenumber" name="L134" href="#L134">134</a> 
<a class="jxr_linenumber" name="L135" href="#L135">135</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L136" href="#L136">136</a> <em class="jxr_javadoccomment">     * File where the BND instructions will be dumped</em>
<a class="jxr_linenumber" name="L137" href="#L137">137</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L138" href="#L138">138</a>     @Parameter( property = <span class="jxr_string">"dumpInstructions"</span> )
<a class="jxr_linenumber" name="L139" href="#L139">139</a>     <strong class="jxr_keyword">protected</strong> File dumpInstructions;
<a class="jxr_linenumber" name="L140" href="#L140">140</a> 
<a class="jxr_linenumber" name="L141" href="#L141">141</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L142" href="#L142">142</a> <em class="jxr_javadoccomment">     * File where the BND class-path will be dumped</em>
<a class="jxr_linenumber" name="L143" href="#L143">143</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L144" href="#L144">144</a>     @Parameter( property = <span class="jxr_string">"dumpClasspath"</span> )
<a class="jxr_linenumber" name="L145" href="#L145">145</a>     <strong class="jxr_keyword">protected</strong> File dumpClasspath;
<a class="jxr_linenumber" name="L146" href="#L146">146</a> 
<a class="jxr_linenumber" name="L147" href="#L147">147</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L148" href="#L148">148</a> <em class="jxr_javadoccomment">     * When true, unpack the bundle contents to the outputDirectory</em>
<a class="jxr_linenumber" name="L149" href="#L149">149</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L150" href="#L150">150</a>     @Parameter( property = <span class="jxr_string">"unpackBundle"</span> )
<a class="jxr_linenumber" name="L151" href="#L151">151</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> unpackBundle;
<a class="jxr_linenumber" name="L152" href="#L152">152</a> 
<a class="jxr_linenumber" name="L153" href="#L153">153</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L154" href="#L154">154</a> <em class="jxr_javadoccomment">     * Comma separated list of artifactIds to exclude from the dependency classpath passed to BND (use "true" to exclude everything)</em>
<a class="jxr_linenumber" name="L155" href="#L155">155</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L156" href="#L156">156</a>     @Parameter( property = <span class="jxr_string">"excludeDependencies"</span> )
<a class="jxr_linenumber" name="L157" href="#L157">157</a>     <strong class="jxr_keyword">protected</strong> String excludeDependencies;
<a class="jxr_linenumber" name="L158" href="#L158">158</a> 
<a class="jxr_linenumber" name="L159" href="#L159">159</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L160" href="#L160">160</a> <em class="jxr_javadoccomment">     * Final name of the bundle (without classifier or extension)</em>
<a class="jxr_linenumber" name="L161" href="#L161">161</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L162" href="#L162">162</a>     @Parameter( defaultValue = <span class="jxr_string">"${project.build.finalName}"</span>)
<a class="jxr_linenumber" name="L163" href="#L163">163</a>     <strong class="jxr_keyword">private</strong> String finalName;
<a class="jxr_linenumber" name="L164" href="#L164">164</a> 
<a class="jxr_linenumber" name="L165" href="#L165">165</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L166" href="#L166">166</a> <em class="jxr_javadoccomment">     * Classifier type of the bundle to be installed.  For example, "jdk14".</em>
<a class="jxr_linenumber" name="L167" href="#L167">167</a> <em class="jxr_javadoccomment">     * Defaults to none which means this is the project's main bundle.</em>
<a class="jxr_linenumber" name="L168" href="#L168">168</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L169" href="#L169">169</a>     @Parameter
<a class="jxr_linenumber" name="L170" href="#L170">170</a>     <strong class="jxr_keyword">protected</strong> String classifier;
<a class="jxr_linenumber" name="L171" href="#L171">171</a> 
<a class="jxr_linenumber" name="L172" href="#L172">172</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L173" href="#L173">173</a> <em class="jxr_javadoccomment">     * Packaging type of the bundle to be installed.  For example, "jar".</em>
<a class="jxr_linenumber" name="L174" href="#L174">174</a> <em class="jxr_javadoccomment">     * Defaults to none which means use the same packaging as the project.</em>
<a class="jxr_linenumber" name="L175" href="#L175">175</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L176" href="#L176">176</a>     @Parameter
<a class="jxr_linenumber" name="L177" href="#L177">177</a>     <strong class="jxr_keyword">protected</strong> String packaging;
<a class="jxr_linenumber" name="L178" href="#L178">178</a> 
<a class="jxr_linenumber" name="L179" href="#L179">179</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L180" href="#L180">180</a> <em class="jxr_javadoccomment">     * If true, remove any inlined or embedded dependencies from the resulting pom.</em>
<a class="jxr_linenumber" name="L181" href="#L181">181</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L182" href="#L182">182</a>     @Parameter
<a class="jxr_linenumber" name="L183" href="#L183">183</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> createDependencyReducedPom;
<a class="jxr_linenumber" name="L184" href="#L184">184</a> 
<a class="jxr_linenumber" name="L185" href="#L185">185</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L186" href="#L186">186</a> <em class="jxr_javadoccomment">     * Where to put the dependency reduced pom. Note: setting a value for this parameter with a directory other than</em>
<a class="jxr_linenumber" name="L187" href="#L187">187</a> <em class="jxr_javadoccomment">     * ${basedir} will change the value of ${basedir} for all executions that come after the shade execution. This is</em>
<a class="jxr_linenumber" name="L188" href="#L188">188</a> <em class="jxr_javadoccomment">     * often not what you want. This is considered an open issue with this plugin.</em>
<a class="jxr_linenumber" name="L189" href="#L189">189</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L190" href="#L190">190</a>     @Parameter( defaultValue = <span class="jxr_string">"${basedir}/dependency-reduced-pom.xml"</span> )
<a class="jxr_linenumber" name="L191" href="#L191">191</a>     <strong class="jxr_keyword">protected</strong> File dependencyReducedPomLocation;
<a class="jxr_linenumber" name="L192" href="#L192">192</a> 
<a class="jxr_linenumber" name="L193" href="#L193">193</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L194" href="#L194">194</a> <em class="jxr_javadoccomment">     * Directory where the SCR files will be written</em>
<a class="jxr_linenumber" name="L195" href="#L195">195</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L196" href="#L196">196</a>     @Parameter(defaultValue=<span class="jxr_string">"${project.build.outputDirectory}"</span>)
<a class="jxr_linenumber" name="L197" href="#L197">197</a>     <strong class="jxr_keyword">protected</strong> File scrLocation;
<a class="jxr_linenumber" name="L198" href="#L198">198</a> 
<a class="jxr_linenumber" name="L199" href="#L199">199</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L200" href="#L200">200</a> <em class="jxr_javadoccomment">     * When true, dump the generated SCR files</em>
<a class="jxr_linenumber" name="L201" href="#L201">201</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L202" href="#L202">202</a>     @Parameter
<a class="jxr_linenumber" name="L203" href="#L203">203</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> exportScr;
<a class="jxr_linenumber" name="L204" href="#L204">204</a>     
<a class="jxr_linenumber" name="L205" href="#L205">205</a>     @Component
<a class="jxr_linenumber" name="L206" href="#L206">206</a>     <strong class="jxr_keyword">private</strong> MavenProjectHelper m_projectHelper;
<a class="jxr_linenumber" name="L207" href="#L207">207</a> 
<a class="jxr_linenumber" name="L208" href="#L208">208</a>     @Component
<a class="jxr_linenumber" name="L209" href="#L209">209</a>     <strong class="jxr_keyword">private</strong> ArchiverManager m_archiverManager;
<a class="jxr_linenumber" name="L210" href="#L210">210</a> 
<a class="jxr_linenumber" name="L211" href="#L211">211</a>     @Component
<a class="jxr_linenumber" name="L212" href="#L212">212</a>     <strong class="jxr_keyword">private</strong> ArtifactHandlerManager m_artifactHandlerManager;
<a class="jxr_linenumber" name="L213" href="#L213">213</a> 
<a class="jxr_linenumber" name="L214" href="#L214">214</a>     @Component
<a class="jxr_linenumber" name="L215" href="#L215">215</a>     <strong class="jxr_keyword">protected</strong> DependencyGraphBuilder m_dependencyGraphBuilder;
<a class="jxr_linenumber" name="L216" href="#L216">216</a> 
<a class="jxr_linenumber" name="L217" href="#L217">217</a>     <em class="jxr_comment">/* The current Maven session.  */</em>
<a class="jxr_linenumber" name="L218" href="#L218">218</a>     @Parameter( defaultValue = <span class="jxr_string">"${session}"</span>, readonly = <strong class="jxr_keyword">true</strong> )
<a class="jxr_linenumber" name="L219" href="#L219">219</a>     <strong class="jxr_keyword">protected</strong> MavenSession session;
<a class="jxr_linenumber" name="L220" href="#L220">220</a> 
<a class="jxr_linenumber" name="L221" href="#L221">221</a> 
<a class="jxr_linenumber" name="L222" href="#L222">222</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L223" href="#L223">223</a> <em class="jxr_javadoccomment">     * ProjectBuilder, needed to create projects from the artifacts.</em>
<a class="jxr_linenumber" name="L224" href="#L224">224</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L225" href="#L225">225</a>     @Component
<a class="jxr_linenumber" name="L226" href="#L226">226</a>     <strong class="jxr_keyword">protected</strong> MavenProjectBuilder mavenProjectBuilder;
<a class="jxr_linenumber" name="L227" href="#L227">227</a> 
<a class="jxr_linenumber" name="L228" href="#L228">228</a>     @Component
<a class="jxr_linenumber" name="L229" href="#L229">229</a>     <strong class="jxr_keyword">private</strong> DependencyTreeBuilder dependencyTreeBuilder;
<a class="jxr_linenumber" name="L230" href="#L230">230</a> 
<a class="jxr_linenumber" name="L231" href="#L231">231</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L232" href="#L232">232</a> <em class="jxr_javadoccomment">     * The dependency graph builder to use.</em>
<a class="jxr_linenumber" name="L233" href="#L233">233</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L234" href="#L234">234</a>     @Component
<a class="jxr_linenumber" name="L235" href="#L235">235</a>     <strong class="jxr_keyword">protected</strong> DependencyGraphBuilder dependencyGraphBuilder;
<a class="jxr_linenumber" name="L236" href="#L236">236</a> 
<a class="jxr_linenumber" name="L237" href="#L237">237</a>     @Component
<a class="jxr_linenumber" name="L238" href="#L238">238</a>     <strong class="jxr_keyword">private</strong> ArtifactMetadataSource artifactMetadataSource;
<a class="jxr_linenumber" name="L239" href="#L239">239</a> 
<a class="jxr_linenumber" name="L240" href="#L240">240</a>     @Component
<a class="jxr_linenumber" name="L241" href="#L241">241</a>     <strong class="jxr_keyword">private</strong> ArtifactCollector artifactCollector;
<a class="jxr_linenumber" name="L242" href="#L242">242</a> 
<a class="jxr_linenumber" name="L243" href="#L243">243</a>     @Component
<a class="jxr_linenumber" name="L244" href="#L244">244</a>     <strong class="jxr_keyword">protected</strong> ArtifactFactory artifactFactory;
<a class="jxr_linenumber" name="L245" href="#L245">245</a> 
<a class="jxr_linenumber" name="L246" href="#L246">246</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L247" href="#L247">247</a> <em class="jxr_javadoccomment">     * Artifact resolver, needed to download source jars for inclusion in classpath.</em>
<a class="jxr_linenumber" name="L248" href="#L248">248</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L249" href="#L249">249</a>     @Component
<a class="jxr_linenumber" name="L250" href="#L250">250</a>     <strong class="jxr_keyword">protected</strong> ArtifactResolver artifactResolver;
<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>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L254" href="#L254">254</a> <em class="jxr_javadoccomment">     * Local maven repository.</em>
<a class="jxr_linenumber" name="L255" href="#L255">255</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L256" href="#L256">256</a>     @Parameter( readonly = <strong class="jxr_keyword">true</strong>, required = <strong class="jxr_keyword">true</strong>, defaultValue = <span class="jxr_string">"${localRepository}"</span> )
<a class="jxr_linenumber" name="L257" href="#L257">257</a>     <strong class="jxr_keyword">protected</strong> ArtifactRepository localRepository;
<a class="jxr_linenumber" name="L258" href="#L258">258</a> 
<a class="jxr_linenumber" name="L259" href="#L259">259</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L260" href="#L260">260</a> <em class="jxr_javadoccomment">     * Remote repositories which will be searched for source attachments.</em>
<a class="jxr_linenumber" name="L261" href="#L261">261</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L262" href="#L262">262</a>     @Parameter( readonly = <strong class="jxr_keyword">true</strong>, required = <strong class="jxr_keyword">true</strong>, defaultValue = <span class="jxr_string">"${project.remoteArtifactRepositories}"</span> )
<a class="jxr_linenumber" name="L263" href="#L263">263</a>     <strong class="jxr_keyword">protected</strong> List&lt;ArtifactRepository&gt; remoteArtifactRepositories;
<a class="jxr_linenumber" name="L264" href="#L264">264</a> 
<a class="jxr_linenumber" name="L265" href="#L265">265</a> 
<a class="jxr_linenumber" name="L266" href="#L266">266</a> 
<a class="jxr_linenumber" name="L267" href="#L267">267</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L268" href="#L268">268</a> <em class="jxr_javadoccomment">     * Project types which this plugin supports.</em>
<a class="jxr_linenumber" name="L269" href="#L269">269</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L270" href="#L270">270</a>     @Parameter
<a class="jxr_linenumber" name="L271" href="#L271">271</a>     <strong class="jxr_keyword">protected</strong> List&lt;String&gt; supportedProjectTypes = Arrays.asList(<span class="jxr_string">"jar"</span>, <span class="jxr_string">"bundle"</span>);
<a class="jxr_linenumber" name="L272" href="#L272">272</a> 
<a class="jxr_linenumber" name="L273" href="#L273">273</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L274" href="#L274">274</a> <em class="jxr_javadoccomment">     * The directory for the generated bundles.</em>
<a class="jxr_linenumber" name="L275" href="#L275">275</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L276" href="#L276">276</a>     @Parameter( defaultValue = <span class="jxr_string">"${project.build.outputDirectory}"</span> )
<a class="jxr_linenumber" name="L277" href="#L277">277</a>     <strong class="jxr_keyword">private</strong> File outputDirectory;
<a class="jxr_linenumber" name="L278" href="#L278">278</a> 
<a class="jxr_linenumber" name="L279" href="#L279">279</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L280" href="#L280">280</a> <em class="jxr_javadoccomment">     * The directory for the generated JAR.</em>
<a class="jxr_linenumber" name="L281" href="#L281">281</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L282" href="#L282">282</a>     @Parameter( defaultValue = <span class="jxr_string">"${project.build.directory}"</span> )
<a class="jxr_linenumber" name="L283" href="#L283">283</a>     <strong class="jxr_keyword">private</strong> String buildDirectory;
<a class="jxr_linenumber" name="L284" href="#L284">284</a> 
<a class="jxr_linenumber" name="L285" href="#L285">285</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L286" href="#L286">286</a> <em class="jxr_javadoccomment">     * The Maven project.</em>
<a class="jxr_linenumber" name="L287" href="#L287">287</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L288" href="#L288">288</a>     @Parameter( defaultValue = <span class="jxr_string">"${project}"</span>, readonly = <strong class="jxr_keyword">true</strong>, required = <strong class="jxr_keyword">true</strong> )
<a class="jxr_linenumber" name="L289" href="#L289">289</a>     <strong class="jxr_keyword">protected</strong> MavenProject project;
<a class="jxr_linenumber" name="L290" href="#L290">290</a> 
<a class="jxr_linenumber" name="L291" href="#L291">291</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L292" href="#L292">292</a> <em class="jxr_javadoccomment">     * The BND instructions for the bundle.</em>
<a class="jxr_linenumber" name="L293" href="#L293">293</a> <em class="jxr_javadoccomment">     * Maven will expand property macros in these values. If you want to use a BND macro, you must double the dollar sign</em>
<a class="jxr_linenumber" name="L294" href="#L294">294</a> <em class="jxr_javadoccomment">     * for the plugin to pass it to BND correctly. For example: &lt;br&gt;</em>
<a class="jxr_linenumber" name="L295" href="#L295">295</a> <em class="jxr_javadoccomment">     * {@code &lt;_consumer-policy&gt;$${range;[===,+)}&lt;code&gt;}&lt;code&gt;{@code &lt;/_consumer-policy&gt; }</em>
<a class="jxr_linenumber" name="L296" href="#L296">296</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L297" href="#L297">297</a>     @Parameter
<a class="jxr_linenumber" name="L298" href="#L298">298</a>     <strong class="jxr_keyword">private</strong> Map&lt;String, String&gt; instructions = <strong class="jxr_keyword">new</strong> LinkedHashMap&lt;String, String&gt;();
<a class="jxr_linenumber" name="L299" href="#L299">299</a> 
<a class="jxr_linenumber" name="L300" href="#L300">300</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L301" href="#L301">301</a> <em class="jxr_javadoccomment">     * Use locally patched version for now.</em>
<a class="jxr_linenumber" name="L302" href="#L302">302</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L303" href="#L303">303</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../org/apache/maven/shared/osgi/Maven2OsgiConverter.html">Maven2OsgiConverter</a> m_maven2OsgiConverter = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/maven/shared/osgi/DefaultMaven2OsgiConverter.html">DefaultMaven2OsgiConverter</a>();
<a class="jxr_linenumber" name="L304" href="#L304">304</a> 
<a class="jxr_linenumber" name="L305" href="#L305">305</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L306" href="#L306">306</a> <em class="jxr_javadoccomment">     * The archive configuration to use.</em>
<a class="jxr_linenumber" name="L307" href="#L307">307</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L308" href="#L308">308</a>     @Parameter
<a class="jxr_linenumber" name="L309" href="#L309">309</a>     <strong class="jxr_keyword">private</strong> MavenArchiveConfiguration archive; <em class="jxr_comment">// accessed indirectly in JarPluginConfiguration</em>
<a class="jxr_linenumber" name="L310" href="#L310">310</a> 
<a class="jxr_linenumber" name="L311" href="#L311">311</a>     @Parameter( defaultValue = <span class="jxr_string">"${session}"</span>, readonly = <strong class="jxr_keyword">true</strong>, required = <strong class="jxr_keyword">true</strong> )
<a class="jxr_linenumber" name="L312" href="#L312">312</a>     <strong class="jxr_keyword">private</strong> MavenSession m_mavenSession;
<a class="jxr_linenumber" name="L313" href="#L313">313</a> 
<a class="jxr_linenumber" name="L314" href="#L314">314</a>     @Component
<a class="jxr_linenumber" name="L315" href="#L315">315</a>     <strong class="jxr_keyword">protected</strong> BuildContext buildContext;
<a class="jxr_linenumber" name="L316" href="#L316">316</a>     
<a class="jxr_linenumber" name="L317" href="#L317">317</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_SYMBOLICNAME = <span class="jxr_string">"maven-symbolicname"</span>;
<a class="jxr_linenumber" name="L318" href="#L318">318</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_RESOURCES = <span class="jxr_string">"{maven-resources}"</span>;
<a class="jxr_linenumber" name="L319" href="#L319">319</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_TEST_RESOURCES = <span class="jxr_string">"{maven-test-resources}"</span>;
<a class="jxr_linenumber" name="L320" href="#L320">320</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String LOCAL_PACKAGES = <span class="jxr_string">"{local-packages}"</span>;
<a class="jxr_linenumber" name="L321" href="#L321">321</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_SOURCES = <span class="jxr_string">"{maven-sources}"</span>;
<a class="jxr_linenumber" name="L322" href="#L322">322</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_TEST_SOURCES = <span class="jxr_string">"{maven-test-sources}"</span>;
<a class="jxr_linenumber" name="L323" href="#L323">323</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String BUNDLE_PLUGIN_EXTENSION = <span class="jxr_string">"BNDExtension-"</span>;
<a class="jxr_linenumber" name="L324" href="#L324">324</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String BUNDLE_PLUGIN_PREPEND_EXTENSION = <span class="jxr_string">"BNDPrependExtension-"</span>;
<a class="jxr_linenumber" name="L325" href="#L325">325</a> 
<a class="jxr_linenumber" name="L326" href="#L326">326</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String[] EMPTY_STRING_ARRAY =
<a class="jxr_linenumber" name="L327" href="#L327">327</a>         {};
<a class="jxr_linenumber" name="L328" href="#L328">328</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String[] DEFAULT_INCLUDES =
<a class="jxr_linenumber" name="L329" href="#L329">329</a>         { <span class="jxr_string">"**/**"</span> };
<a class="jxr_linenumber" name="L330" href="#L330">330</a> 
<a class="jxr_linenumber" name="L331" href="#L331">331</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String NL = System.getProperty( <span class="jxr_string">"line.separator"</span> );
<a class="jxr_linenumber" name="L332" href="#L332">332</a> 
<a class="jxr_linenumber" name="L333" href="#L333">333</a> 
<a class="jxr_linenumber" name="L334" href="#L334">334</a>     <strong class="jxr_keyword">protected</strong> <a href="../../../../org/apache/maven/shared/osgi/Maven2OsgiConverter.html">Maven2OsgiConverter</a> getMaven2OsgiConverter()
<a class="jxr_linenumber" name="L335" href="#L335">335</a>     {
<a class="jxr_linenumber" name="L336" href="#L336">336</a>         <strong class="jxr_keyword">return</strong> m_maven2OsgiConverter;
<a class="jxr_linenumber" name="L337" href="#L337">337</a>     }
<a class="jxr_linenumber" name="L338" href="#L338">338</a> 
<a class="jxr_linenumber" name="L339" href="#L339">339</a> 
<a class="jxr_linenumber" name="L340" href="#L340">340</a>     <strong class="jxr_keyword">protected</strong> MavenProject getProject()
<a class="jxr_linenumber" name="L341" href="#L341">341</a>     {
<a class="jxr_linenumber" name="L342" href="#L342">342</a>         <strong class="jxr_keyword">return</strong> project;
<a class="jxr_linenumber" name="L343" href="#L343">343</a>     }
<a class="jxr_linenumber" name="L344" href="#L344">344</a> 
<a class="jxr_linenumber" name="L345" href="#L345">345</a>     <strong class="jxr_keyword">protected</strong> DependencyNode buildDependencyGraph( MavenProject mavenProject ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
<a class="jxr_linenumber" name="L346" href="#L346">346</a>     {
<a class="jxr_linenumber" name="L347" href="#L347">347</a>         DependencyNode dependencyGraph;
<a class="jxr_linenumber" name="L348" href="#L348">348</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L349" href="#L349">349</a>         {
<a class="jxr_linenumber" name="L350" href="#L350">350</a>             dependencyGraph = m_dependencyGraphBuilder.buildDependencyGraph( mavenProject, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L351" href="#L351">351</a>         }
<a class="jxr_linenumber" name="L352" href="#L352">352</a>         <strong class="jxr_keyword">catch</strong> ( DependencyGraphBuilderException e )
<a class="jxr_linenumber" name="L353" href="#L353">353</a>         {
<a class="jxr_linenumber" name="L354" href="#L354">354</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( e.getMessage(), e );
<a class="jxr_linenumber" name="L355" href="#L355">355</a>         }
<a class="jxr_linenumber" name="L356" href="#L356">356</a>         <strong class="jxr_keyword">return</strong> dependencyGraph;
<a class="jxr_linenumber" name="L357" href="#L357">357</a>     }
<a class="jxr_linenumber" name="L358" href="#L358">358</a> 
<a class="jxr_linenumber" name="L359" href="#L359">359</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L360" href="#L360">360</a> <em class="jxr_javadoccomment">     * @see org.apache.maven.plugin.AbstractMojo#execute()</em>
<a class="jxr_linenumber" name="L361" href="#L361">361</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L362" href="#L362">362</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute() <strong class="jxr_keyword">throws</strong> MojoExecutionException
<a class="jxr_linenumber" name="L363" href="#L363">363</a>     {
<a class="jxr_linenumber" name="L364" href="#L364">364</a>         Properties properties = <strong class="jxr_keyword">new</strong> Properties();
<a class="jxr_linenumber" name="L365" href="#L365">365</a>         String projectType = getProject().getArtifact().getType();
<a class="jxr_linenumber" name="L366" href="#L366">366</a> 
<a class="jxr_linenumber" name="L367" href="#L367">367</a>         <em class="jxr_comment">// ignore unsupported project types, useful when bundleplugin is configured in parent pom</em>
<a class="jxr_linenumber" name="L368" href="#L368">368</a>         <strong class="jxr_keyword">if</strong> ( !supportedProjectTypes.contains( projectType ) )
<a class="jxr_linenumber" name="L369" href="#L369">369</a>         {
<a class="jxr_linenumber" name="L370" href="#L370">370</a>             getLog().warn(
<a class="jxr_linenumber" name="L371" href="#L371">371</a>                 <span class="jxr_string">"Ignoring project type "</span> + projectType + <span class="jxr_string">" - supportedProjectTypes = "</span> + supportedProjectTypes );
<a class="jxr_linenumber" name="L372" href="#L372">372</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L373" href="#L373">373</a>         }
<a class="jxr_linenumber" name="L374" href="#L374">374</a> 
<a class="jxr_linenumber" name="L375" href="#L375">375</a>         execute( getProject(), buildDependencyGraph(getProject()), instructions, properties );
<a class="jxr_linenumber" name="L376" href="#L376">376</a>     }
<a class="jxr_linenumber" name="L377" href="#L377">377</a> 
<a class="jxr_linenumber" name="L378" href="#L378">378</a> 
<a class="jxr_linenumber" name="L379" href="#L379">379</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject currentProject, DependencyNode dependencyGraph, Map&lt;String, String&gt; originalInstructions, Properties properties )
<a class="jxr_linenumber" name="L380" href="#L380">380</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
<a class="jxr_linenumber" name="L381" href="#L381">381</a>     {
<a class="jxr_linenumber" name="L382" href="#L382">382</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L383" href="#L383">383</a>         {
<a class="jxr_linenumber" name="L384" href="#L384">384</a>             execute( currentProject, dependencyGraph, originalInstructions, properties, getClasspath( currentProject, dependencyGraph ) );
<a class="jxr_linenumber" name="L385" href="#L385">385</a>         }
<a class="jxr_linenumber" name="L386" href="#L386">386</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
<a class="jxr_linenumber" name="L387" href="#L387">387</a>         {
<a class="jxr_linenumber" name="L388" href="#L388">388</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error calculating classpath for project "</span> + currentProject, e );
<a class="jxr_linenumber" name="L389" href="#L389">389</a>         }
<a class="jxr_linenumber" name="L390" href="#L390">390</a>     }
<a class="jxr_linenumber" name="L391" href="#L391">391</a> 
<a class="jxr_linenumber" name="L392" href="#L392">392</a> 
<a class="jxr_linenumber" name="L393" href="#L393">393</a>     <em class="jxr_comment">/* transform directives from their XML form to the expected BND syntax (eg. _include becomes -include) */</em>
<a class="jxr_linenumber" name="L394" href="#L394">394</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> Map&lt;String, String&gt; transformDirectives( Map&lt;String, String&gt; originalInstructions )
<a class="jxr_linenumber" name="L395" href="#L395">395</a>     {
<a class="jxr_linenumber" name="L396" href="#L396">396</a>         Map&lt;String, String&gt; transformedInstructions = <strong class="jxr_keyword">new</strong> LinkedHashMap&lt;String, String&gt;();
<a class="jxr_linenumber" name="L397" href="#L397">397</a>         <strong class="jxr_keyword">for</strong> ( Iterator&lt;Map.Entry&lt;String, String&gt;&gt; i = originalInstructions.entrySet().iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L398" href="#L398">398</a>         {
<a class="jxr_linenumber" name="L399" href="#L399">399</a>             Map.Entry&lt;String, String&gt; e = i.next();
<a class="jxr_linenumber" name="L400" href="#L400">400</a> 
<a class="jxr_linenumber" name="L401" href="#L401">401</a>             String key = e.getKey();
<a class="jxr_linenumber" name="L402" href="#L402">402</a>             <strong class="jxr_keyword">if</strong> ( key.startsWith( <span class="jxr_string">"_"</span> ) )
<a class="jxr_linenumber" name="L403" href="#L403">403</a>             {
<a class="jxr_linenumber" name="L404" href="#L404">404</a>                 key = <span class="jxr_string">"-"</span> + key.substring( 1 );
<a class="jxr_linenumber" name="L405" href="#L405">405</a>             }
<a class="jxr_linenumber" name="L406" href="#L406">406</a> 
<a class="jxr_linenumber" name="L407" href="#L407">407</a>             String value = e.getValue();
<a class="jxr_linenumber" name="L408" href="#L408">408</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == value )
<a class="jxr_linenumber" name="L409" href="#L409">409</a>             {
<a class="jxr_linenumber" name="L410" href="#L410">410</a>                 value = <span class="jxr_string">""</span>;
<a class="jxr_linenumber" name="L411" href="#L411">411</a>             }
<a class="jxr_linenumber" name="L412" href="#L412">412</a>             <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L413" href="#L413">413</a>             {
<a class="jxr_linenumber" name="L414" href="#L414">414</a>                 value = value.replaceAll( <span class="jxr_string">"&#92;&#92;p{Blank}*[\r\n]&#92;&#92;p{Blank}*"</span>, <span class="jxr_string">""</span> );
<a class="jxr_linenumber" name="L415" href="#L415">415</a>             }
<a class="jxr_linenumber" name="L416" href="#L416">416</a> 
<a class="jxr_linenumber" name="L417" href="#L417">417</a>             <strong class="jxr_keyword">if</strong> ( Analyzer.WAB.equals( key ) &amp;&amp; value.length() == 0 )
<a class="jxr_linenumber" name="L418" href="#L418">418</a>             {
<a class="jxr_linenumber" name="L419" href="#L419">419</a>                 <em class="jxr_comment">// provide useful default</em>
<a class="jxr_linenumber" name="L420" href="#L420">420</a>                 value = <span class="jxr_string">"src/main/webapp/"</span>;
<a class="jxr_linenumber" name="L421" href="#L421">421</a>             }
<a class="jxr_linenumber" name="L422" href="#L422">422</a> 
<a class="jxr_linenumber" name="L423" href="#L423">423</a>             transformedInstructions.put( key, value );
<a class="jxr_linenumber" name="L424" href="#L424">424</a>         }
<a class="jxr_linenumber" name="L425" href="#L425">425</a>         <strong class="jxr_keyword">return</strong> transformedInstructions;
<a class="jxr_linenumber" name="L426" href="#L426">426</a>     }
<a class="jxr_linenumber" name="L427" href="#L427">427</a> 
<a class="jxr_linenumber" name="L428" href="#L428">428</a> 
<a class="jxr_linenumber" name="L429" href="#L429">429</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> reportErrors( String prefix, Analyzer analyzer )
<a class="jxr_linenumber" name="L430" href="#L430">430</a>     {
<a class="jxr_linenumber" name="L431" href="#L431">431</a>         List&lt;String&gt; errors = analyzer.getErrors();
<a class="jxr_linenumber" name="L432" href="#L432">432</a>         List&lt;String&gt; warnings = analyzer.getWarnings();
<a class="jxr_linenumber" name="L433" href="#L433">433</a> 
<a class="jxr_linenumber" name="L434" href="#L434">434</a>         <strong class="jxr_keyword">for</strong> ( Iterator&lt;String&gt; w = warnings.iterator(); w.hasNext(); )
<a class="jxr_linenumber" name="L435" href="#L435">435</a>         {
<a class="jxr_linenumber" name="L436" href="#L436">436</a>             String msg = w.next();
<a class="jxr_linenumber" name="L437" href="#L437">437</a>             getLog().warn( prefix + <span class="jxr_string">" : "</span> + msg );
<a class="jxr_linenumber" name="L438" href="#L438">438</a>         }
<a class="jxr_linenumber" name="L439" href="#L439">439</a> 
<a class="jxr_linenumber" name="L440" href="#L440">440</a>         <strong class="jxr_keyword">boolean</strong> hasErrors = false;
<a class="jxr_linenumber" name="L441" href="#L441">441</a>         String fileNotFound = <span class="jxr_string">"Input file does not exist: "</span>;
<a class="jxr_linenumber" name="L442" href="#L442">442</a>         <strong class="jxr_keyword">for</strong> ( Iterator&lt;String&gt; e = errors.iterator(); e.hasNext(); )
<a class="jxr_linenumber" name="L443" href="#L443">443</a>         {
<a class="jxr_linenumber" name="L444" href="#L444">444</a>             String msg = e.next();
<a class="jxr_linenumber" name="L445" href="#L445">445</a>             <strong class="jxr_keyword">if</strong> ( msg.startsWith(fileNotFound) &amp;&amp; msg.endsWith( <span class="jxr_string">"~"</span> ) )
<a class="jxr_linenumber" name="L446" href="#L446">446</a>             {
<a class="jxr_linenumber" name="L447" href="#L447">447</a>                 <em class="jxr_comment">// treat as warning; this error happens when you have duplicate entries in Include-Resource</em>
<a class="jxr_linenumber" name="L448" href="#L448">448</a>                 String duplicate = Processor.removeDuplicateMarker( msg.substring( fileNotFound.length() ) );
<a class="jxr_linenumber" name="L449" href="#L449">449</a>                 getLog().warn( prefix + <span class="jxr_string">" : Duplicate path '"</span> + duplicate + <span class="jxr_string">"' in Include-Resource"</span> );
<a class="jxr_linenumber" name="L450" href="#L450">450</a>             }
<a class="jxr_linenumber" name="L451" href="#L451">451</a>             <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L452" href="#L452">452</a>             {
<a class="jxr_linenumber" name="L453" href="#L453">453</a>                 getLog().error( prefix + <span class="jxr_string">" : "</span> + msg );
<a class="jxr_linenumber" name="L454" href="#L454">454</a>                 hasErrors = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L455" href="#L455">455</a>             }
<a class="jxr_linenumber" name="L456" href="#L456">456</a>         }
<a class="jxr_linenumber" name="L457" href="#L457">457</a>         <strong class="jxr_keyword">return</strong> hasErrors;
<a class="jxr_linenumber" name="L458" href="#L458">458</a>     }
<a class="jxr_linenumber" name="L459" href="#L459">459</a> 
<a class="jxr_linenumber" name="L460" href="#L460">460</a> 
<a class="jxr_linenumber" name="L461" href="#L461">461</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject currentProject, DependencyNode dependencyGraph, Map&lt;String, String&gt; originalInstructions, Properties properties,
<a class="jxr_linenumber" name="L462" href="#L462">462</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
<a class="jxr_linenumber" name="L463" href="#L463">463</a>     {
<a class="jxr_linenumber" name="L464" href="#L464">464</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L465" href="#L465">465</a>         {
<a class="jxr_linenumber" name="L466" href="#L466">466</a>             File jarFile = <strong class="jxr_keyword">new</strong> File( getBuildDirectory(), getBundleName( currentProject ) );
<a class="jxr_linenumber" name="L467" href="#L467">467</a>             Builder builder = buildOSGiBundle( currentProject, dependencyGraph, originalInstructions, properties, classpath );
<a class="jxr_linenumber" name="L468" href="#L468">468</a>             <strong class="jxr_keyword">boolean</strong> hasErrors = reportErrors( <span class="jxr_string">"Bundle "</span> + currentProject.getArtifact(), builder );
<a class="jxr_linenumber" name="L469" href="#L469">469</a>             <strong class="jxr_keyword">if</strong> ( hasErrors )
<a class="jxr_linenumber" name="L470" href="#L470">470</a>             {
<a class="jxr_linenumber" name="L471" href="#L471">471</a>                 String failok = builder.getProperty( <span class="jxr_string">"-failok"</span> );
<a class="jxr_linenumber" name="L472" href="#L472">472</a>                 <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == failok || <span class="jxr_string">"false"</span>.equalsIgnoreCase( failok ) )
<a class="jxr_linenumber" name="L473" href="#L473">473</a>                 {
<a class="jxr_linenumber" name="L474" href="#L474">474</a>                     jarFile.delete();
<a class="jxr_linenumber" name="L475" href="#L475">475</a> 
<a class="jxr_linenumber" name="L476" href="#L476">476</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoFailureException( <span class="jxr_string">"Error(s) found in bundle configuration"</span> );
<a class="jxr_linenumber" name="L477" href="#L477">477</a>                 }
<a class="jxr_linenumber" name="L478" href="#L478">478</a>             }
<a class="jxr_linenumber" name="L479" href="#L479">479</a> 
<a class="jxr_linenumber" name="L480" href="#L480">480</a>             <em class="jxr_comment">// attach bundle to maven project</em>
<a class="jxr_linenumber" name="L481" href="#L481">481</a>             jarFile.getParentFile().mkdirs();
<a class="jxr_linenumber" name="L482" href="#L482">482</a>             builder.getJar().write( jarFile );
<a class="jxr_linenumber" name="L483" href="#L483">483</a> 
<a class="jxr_linenumber" name="L484" href="#L484">484</a>             Artifact mainArtifact = currentProject.getArtifact();
<a class="jxr_linenumber" name="L485" href="#L485">485</a> 
<a class="jxr_linenumber" name="L486" href="#L486">486</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"bundle"</span>.equals( mainArtifact.getType() ) )
<a class="jxr_linenumber" name="L487" href="#L487">487</a>             {
<a class="jxr_linenumber" name="L488" href="#L488">488</a>                 <em class="jxr_comment">// workaround for MNG-1682: force maven to install artifact using the "jar" handler</em>
<a class="jxr_linenumber" name="L489" href="#L489">489</a>                 mainArtifact.setArtifactHandler( m_artifactHandlerManager.getArtifactHandler( <span class="jxr_string">"jar"</span> ) );
<a class="jxr_linenumber" name="L490" href="#L490">490</a>             }
<a class="jxr_linenumber" name="L491" href="#L491">491</a> 
<a class="jxr_linenumber" name="L492" href="#L492">492</a>             <strong class="jxr_keyword">boolean</strong> customClassifier = <strong class="jxr_keyword">null</strong> != classifier &amp;&amp; classifier.trim().length() &gt; 0;
<a class="jxr_linenumber" name="L493" href="#L493">493</a>             <strong class="jxr_keyword">boolean</strong> customPackaging = <strong class="jxr_keyword">null</strong> != packaging &amp;&amp; packaging.trim().length() &gt; 0;
<a class="jxr_linenumber" name="L494" href="#L494">494</a> 
<a class="jxr_linenumber" name="L495" href="#L495">495</a>             <strong class="jxr_keyword">if</strong> ( customClassifier &amp;&amp; customPackaging )
<a class="jxr_linenumber" name="L496" href="#L496">496</a>             {
<a class="jxr_linenumber" name="L497" href="#L497">497</a>                 m_projectHelper.attachArtifact( currentProject, packaging, classifier, jarFile );
<a class="jxr_linenumber" name="L498" href="#L498">498</a>             }
<a class="jxr_linenumber" name="L499" href="#L499">499</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( customClassifier )
<a class="jxr_linenumber" name="L500" href="#L500">500</a>             {
<a class="jxr_linenumber" name="L501" href="#L501">501</a>                 m_projectHelper.attachArtifact( currentProject, jarFile, classifier );
<a class="jxr_linenumber" name="L502" href="#L502">502</a>             }
<a class="jxr_linenumber" name="L503" href="#L503">503</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( customPackaging )
<a class="jxr_linenumber" name="L504" href="#L504">504</a>             {
<a class="jxr_linenumber" name="L505" href="#L505">505</a>                 m_projectHelper.attachArtifact( currentProject, packaging, jarFile );
<a class="jxr_linenumber" name="L506" href="#L506">506</a>             }
<a class="jxr_linenumber" name="L507" href="#L507">507</a>             <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L508" href="#L508">508</a>             {
<a class="jxr_linenumber" name="L509" href="#L509">509</a>                 mainArtifact.setFile( jarFile );
<a class="jxr_linenumber" name="L510" href="#L510">510</a>             }
<a class="jxr_linenumber" name="L511" href="#L511">511</a> 
<a class="jxr_linenumber" name="L512" href="#L512">512</a>             <strong class="jxr_keyword">if</strong> ( unpackBundle )
<a class="jxr_linenumber" name="L513" href="#L513">513</a>             {
<a class="jxr_linenumber" name="L514" href="#L514">514</a>                 unpackBundle( jarFile );
<a class="jxr_linenumber" name="L515" href="#L515">515</a>             }
<a class="jxr_linenumber" name="L516" href="#L516">516</a> 
<a class="jxr_linenumber" name="L517" href="#L517">517</a>             <strong class="jxr_keyword">if</strong> ( manifestLocation != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L518" href="#L518">518</a>             {
<a class="jxr_linenumber" name="L519" href="#L519">519</a>                 File outputFile = <strong class="jxr_keyword">new</strong> File( manifestLocation, <span class="jxr_string">"MANIFEST.MF"</span> );
<a class="jxr_linenumber" name="L520" href="#L520">520</a> 
<a class="jxr_linenumber" name="L521" href="#L521">521</a>                 <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L522" href="#L522">522</a>                 {
<a class="jxr_linenumber" name="L523" href="#L523">523</a>                     ManifestPlugin.writeManifest( builder, outputFile, niceManifest, exportScr, scrLocation, buildContext, getLog() );
<a class="jxr_linenumber" name="L524" href="#L524">524</a>                 }
<a class="jxr_linenumber" name="L525" href="#L525">525</a>                 <strong class="jxr_keyword">catch</strong> ( IOException e )
<a class="jxr_linenumber" name="L526" href="#L526">526</a>                 {
<a class="jxr_linenumber" name="L527" href="#L527">527</a>                     getLog().error( <span class="jxr_string">"Error trying to write Manifest to file "</span> + outputFile, e );
<a class="jxr_linenumber" name="L528" href="#L528">528</a>                 }
<a class="jxr_linenumber" name="L529" href="#L529">529</a>             }
<a class="jxr_linenumber" name="L530" href="#L530">530</a> 
<a class="jxr_linenumber" name="L531" href="#L531">531</a>             <em class="jxr_comment">// cleanup...</em>
<a class="jxr_linenumber" name="L532" href="#L532">532</a>             builder.close();
<a class="jxr_linenumber" name="L533" href="#L533">533</a>         }
<a class="jxr_linenumber" name="L534" href="#L534">534</a>         <strong class="jxr_keyword">catch</strong> ( MojoFailureException e )
<a class="jxr_linenumber" name="L535" href="#L535">535</a>         {
<a class="jxr_linenumber" name="L536" href="#L536">536</a>             getLog().error( e.getLocalizedMessage() );
<a class="jxr_linenumber" name="L537" href="#L537">537</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Error(s) found in bundle configuration"</span>, e );
<a class="jxr_linenumber" name="L538" href="#L538">538</a>         }
<a class="jxr_linenumber" name="L539" href="#L539">539</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
<a class="jxr_linenumber" name="L540" href="#L540">540</a>         {
<a class="jxr_linenumber" name="L541" href="#L541">541</a>             getLog().error( <span class="jxr_string">"An internal error occurred"</span>, e );
<a class="jxr_linenumber" name="L542" href="#L542">542</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Internal error in maven-bundle-plugin"</span>, e );
<a class="jxr_linenumber" name="L543" href="#L543">543</a>         }
<a class="jxr_linenumber" name="L544" href="#L544">544</a>     }
<a class="jxr_linenumber" name="L545" href="#L545">545</a> 
<a class="jxr_linenumber" name="L546" href="#L546">546</a> 
<a class="jxr_linenumber" name="L547" href="#L547">547</a>     <strong class="jxr_keyword">protected</strong> Builder getOSGiBuilder( MavenProject currentProject, Map&lt;String, String&gt; originalInstructions, Properties properties,
<a class="jxr_linenumber" name="L548" href="#L548">548</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L549" href="#L549">549</a>     {
<a class="jxr_linenumber" name="L550" href="#L550">550</a>         properties.putAll( getDefaultProperties( currentProject ) );
<a class="jxr_linenumber" name="L551" href="#L551">551</a>         properties.putAll( transformDirectives( originalInstructions ) );
<a class="jxr_linenumber" name="L552" href="#L552">552</a> 
<a class="jxr_linenumber" name="L553" href="#L553">553</a>         <em class="jxr_comment">// process overrides from project</em>
<a class="jxr_linenumber" name="L554" href="#L554">554</a>         <strong class="jxr_keyword">final</strong> Map&lt;String, String&gt; addProps = <strong class="jxr_keyword">new</strong> HashMap&lt;String, String&gt;();
<a class="jxr_linenumber" name="L555" href="#L555">555</a>         <strong class="jxr_keyword">final</strong> Iterator&lt;Map.Entry&lt;Object, Object&gt;&gt; iter = currentProject.getProperties().entrySet().iterator();
<a class="jxr_linenumber" name="L556" href="#L556">556</a>         <strong class="jxr_keyword">while</strong> ( iter.hasNext() )
<a class="jxr_linenumber" name="L557" href="#L557">557</a>         {
<a class="jxr_linenumber" name="L558" href="#L558">558</a>             <strong class="jxr_keyword">final</strong> Map.Entry&lt;Object, Object&gt; entry = iter.next();
<a class="jxr_linenumber" name="L559" href="#L559">559</a>             <strong class="jxr_keyword">final</strong> String key = entry.getKey().toString();
<a class="jxr_linenumber" name="L560" href="#L560">560</a>             <strong class="jxr_keyword">if</strong> ( key.startsWith(BUNDLE_PLUGIN_EXTENSION) )
<a class="jxr_linenumber" name="L561" href="#L561">561</a>             {
<a class="jxr_linenumber" name="L562" href="#L562">562</a>                 <strong class="jxr_keyword">final</strong> String oKey = key.substring(BUNDLE_PLUGIN_EXTENSION.length());
<a class="jxr_linenumber" name="L563" href="#L563">563</a>                 <strong class="jxr_keyword">final</strong> String currentValue = properties.getProperty(oKey);
<a class="jxr_linenumber" name="L564" href="#L564">564</a>                 <strong class="jxr_keyword">if</strong> ( currentValue == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L565" href="#L565">565</a>                 {
<a class="jxr_linenumber" name="L566" href="#L566">566</a>                     addProps.put(oKey, entry.getValue().toString());
<a class="jxr_linenumber" name="L567" href="#L567">567</a>                 }
<a class="jxr_linenumber" name="L568" href="#L568">568</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L569" href="#L569">569</a>                 {
<a class="jxr_linenumber" name="L570" href="#L570">570</a>                     addProps.put(oKey, currentValue + ',' + entry.getValue());
<a class="jxr_linenumber" name="L571" href="#L571">571</a>                 }
<a class="jxr_linenumber" name="L572" href="#L572">572</a>             }
<a class="jxr_linenumber" name="L573" href="#L573">573</a>             <strong class="jxr_keyword">if</strong> ( key.startsWith(BUNDLE_PLUGIN_PREPEND_EXTENSION) )
<a class="jxr_linenumber" name="L574" href="#L574">574</a>             {
<a class="jxr_linenumber" name="L575" href="#L575">575</a>                 <strong class="jxr_keyword">final</strong> String oKey = key.substring(BUNDLE_PLUGIN_PREPEND_EXTENSION.length());
<a class="jxr_linenumber" name="L576" href="#L576">576</a>                 <strong class="jxr_keyword">final</strong> String currentValue = properties.getProperty(oKey);
<a class="jxr_linenumber" name="L577" href="#L577">577</a>                 <strong class="jxr_keyword">if</strong> ( currentValue == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L578" href="#L578">578</a>                 {
<a class="jxr_linenumber" name="L579" href="#L579">579</a>                     addProps.put(oKey, entry.getValue().toString());
<a class="jxr_linenumber" name="L580" href="#L580">580</a>                 }
<a class="jxr_linenumber" name="L581" href="#L581">581</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L582" href="#L582">582</a>                 {
<a class="jxr_linenumber" name="L583" href="#L583">583</a>                     addProps.put(oKey, entry.getValue() + <span class="jxr_string">","</span> + currentValue);
<a class="jxr_linenumber" name="L584" href="#L584">584</a>                 }
<a class="jxr_linenumber" name="L585" href="#L585">585</a>             }
<a class="jxr_linenumber" name="L586" href="#L586">586</a>         }
<a class="jxr_linenumber" name="L587" href="#L587">587</a>         properties.putAll( addProps );
<a class="jxr_linenumber" name="L588" href="#L588">588</a>         <strong class="jxr_keyword">final</strong> Iterator&lt;String&gt; keyIter = addProps.keySet().iterator();
<a class="jxr_linenumber" name="L589" href="#L589">589</a>         <strong class="jxr_keyword">while</strong> ( keyIter.hasNext() )
<a class="jxr_linenumber" name="L590" href="#L590">590</a>         {
<a class="jxr_linenumber" name="L591" href="#L591">591</a>             Object key = keyIter.next();
<a class="jxr_linenumber" name="L592" href="#L592">592</a>             properties.remove(BUNDLE_PLUGIN_EXTENSION + key);
<a class="jxr_linenumber" name="L593" href="#L593">593</a>             properties.remove(BUNDLE_PLUGIN_PREPEND_EXTENSION + key);
<a class="jxr_linenumber" name="L594" href="#L594">594</a>         }
<a class="jxr_linenumber" name="L595" href="#L595">595</a> 
<a class="jxr_linenumber" name="L596" href="#L596">596</a>         <strong class="jxr_keyword">if</strong> (properties.getProperty(<span class="jxr_string">"Bundle-Activator"</span>) != <strong class="jxr_keyword">null</strong>
<a class="jxr_linenumber" name="L597" href="#L597">597</a>                 &amp;&amp; properties.getProperty(<span class="jxr_string">"Bundle-Activator"</span>).isEmpty())
<a class="jxr_linenumber" name="L598" href="#L598">598</a>         {
<a class="jxr_linenumber" name="L599" href="#L599">599</a>             properties.remove(<span class="jxr_string">"Bundle-Activator"</span>);
<a class="jxr_linenumber" name="L600" href="#L600">600</a>         }
<a class="jxr_linenumber" name="L601" href="#L601">601</a>         <strong class="jxr_keyword">if</strong> (properties.containsKey(<span class="jxr_string">"-disable-plugin"</span>))
<a class="jxr_linenumber" name="L602" href="#L602">602</a>         {
<a class="jxr_linenumber" name="L603" href="#L603">603</a>             String[] disabled = properties.remove(<span class="jxr_string">"-disable-plugin"</span>).toString().replaceAll(<span class="jxr_string">" "</span>, <span class="jxr_string">""</span>).split(<span class="jxr_string">","</span>);
<a class="jxr_linenumber" name="L604" href="#L604">604</a>             String[] enabled = properties.getProperty(Analyzer.PLUGIN, <span class="jxr_string">""</span>).replaceAll(<span class="jxr_string">" "</span>, <span class="jxr_string">""</span>).split(<span class="jxr_string">","</span>);
<a class="jxr_linenumber" name="L605" href="#L605">605</a>             Set&lt;String&gt; plugin = <strong class="jxr_keyword">new</strong> LinkedHashSet&lt;String&gt;();
<a class="jxr_linenumber" name="L606" href="#L606">606</a>             plugin.addAll(Arrays.asList(enabled));
<a class="jxr_linenumber" name="L607" href="#L607">607</a>             plugin.removeAll(Arrays.asList(disabled));
<a class="jxr_linenumber" name="L608" href="#L608">608</a>             StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="L609" href="#L609">609</a>             <strong class="jxr_keyword">for</strong> (String s : plugin)
<a class="jxr_linenumber" name="L610" href="#L610">610</a>             {
<a class="jxr_linenumber" name="L611" href="#L611">611</a>                 <strong class="jxr_keyword">if</strong> (sb.length() &gt; 0)
<a class="jxr_linenumber" name="L612" href="#L612">612</a>                 {
<a class="jxr_linenumber" name="L613" href="#L613">613</a>                     sb.append(<span class="jxr_string">","</span>);
<a class="jxr_linenumber" name="L614" href="#L614">614</a>                 }
<a class="jxr_linenumber" name="L615" href="#L615">615</a>                 sb.append(s);
<a class="jxr_linenumber" name="L616" href="#L616">616</a>             }
<a class="jxr_linenumber" name="L617" href="#L617">617</a>             properties.setProperty(Analyzer.PLUGIN, sb.toString());
<a class="jxr_linenumber" name="L618" href="#L618">618</a>         }
<a class="jxr_linenumber" name="L619" href="#L619">619</a> 
<a class="jxr_linenumber" name="L620" href="#L620">620</a>         Builder builder = <strong class="jxr_keyword">new</strong> Builder();
<a class="jxr_linenumber" name="L621" href="#L621">621</a>         <strong class="jxr_keyword">synchronized</strong> ( BundlePlugin.<strong class="jxr_keyword">class</strong> ) <em class="jxr_comment">// protect setBase...getBndLastModified which uses static DateFormat</em>
<a class="jxr_linenumber" name="L622" href="#L622">622</a>         {
<a class="jxr_linenumber" name="L623" href="#L623">623</a>             builder.setBase( getBase( currentProject ) );
<a class="jxr_linenumber" name="L624" href="#L624">624</a>         }
<a class="jxr_linenumber" name="L625" href="#L625">625</a>         builder.setProperties( sanitize( properties ) );
<a class="jxr_linenumber" name="L626" href="#L626">626</a>         <strong class="jxr_keyword">if</strong> ( classpath != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L627" href="#L627">627</a>         {
<a class="jxr_linenumber" name="L628" href="#L628">628</a>             builder.setClasspath( classpath );
<a class="jxr_linenumber" name="L629" href="#L629">629</a>         }
<a class="jxr_linenumber" name="L630" href="#L630">630</a> 
<a class="jxr_linenumber" name="L631" href="#L631">631</a>         <strong class="jxr_keyword">return</strong> builder;
<a class="jxr_linenumber" name="L632" href="#L632">632</a>     }
<a class="jxr_linenumber" name="L633" href="#L633">633</a> 
<a class="jxr_linenumber" name="L634" href="#L634">634</a> 
<a class="jxr_linenumber" name="L635" href="#L635">635</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> Properties sanitize( Properties properties )
<a class="jxr_linenumber" name="L636" href="#L636">636</a>     {
<a class="jxr_linenumber" name="L637" href="#L637">637</a>         <em class="jxr_comment">// convert any non-String keys/values to Strings</em>
<a class="jxr_linenumber" name="L638" href="#L638">638</a>         Properties sanitizedEntries = <strong class="jxr_keyword">new</strong> Properties();
<a class="jxr_linenumber" name="L639" href="#L639">639</a>         <strong class="jxr_keyword">for</strong> ( Iterator&lt;Map.Entry&lt;Object,Object&gt;&gt; itr = properties.entrySet().iterator(); itr.hasNext(); )
<a class="jxr_linenumber" name="L640" href="#L640">640</a>         {
<a class="jxr_linenumber" name="L641" href="#L641">641</a>             Map.Entry&lt;Object,Object&gt; entry = itr.next();
<a class="jxr_linenumber" name="L642" href="#L642">642</a>             <strong class="jxr_keyword">if</strong> ( entry.getKey() instanceof String == false )
<a class="jxr_linenumber" name="L643" href="#L643">643</a>             {
<a class="jxr_linenumber" name="L644" href="#L644">644</a>                 String key = sanitize(entry.getKey());
<a class="jxr_linenumber" name="L645" href="#L645">645</a>                 <strong class="jxr_keyword">if</strong> ( !properties.containsKey( key ) )
<a class="jxr_linenumber" name="L646" href="#L646">646</a>                 {
<a class="jxr_linenumber" name="L647" href="#L647">647</a>                     sanitizedEntries.setProperty( key, sanitize( entry.getValue() ) );
<a class="jxr_linenumber" name="L648" href="#L648">648</a>                 }
<a class="jxr_linenumber" name="L649" href="#L649">649</a>                 itr.remove();
<a class="jxr_linenumber" name="L650" href="#L650">650</a>             }
<a class="jxr_linenumber" name="L651" href="#L651">651</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( entry.getValue() instanceof String == false )
<a class="jxr_linenumber" name="L652" href="#L652">652</a>             {
<a class="jxr_linenumber" name="L653" href="#L653">653</a>                 entry.setValue( sanitize( entry.getValue() ) );
<a class="jxr_linenumber" name="L654" href="#L654">654</a>             }
<a class="jxr_linenumber" name="L655" href="#L655">655</a>         }
<a class="jxr_linenumber" name="L656" href="#L656">656</a>         properties.putAll( sanitizedEntries );
<a class="jxr_linenumber" name="L657" href="#L657">657</a>         <strong class="jxr_keyword">return</strong> properties;
<a class="jxr_linenumber" name="L658" href="#L658">658</a>     }
<a class="jxr_linenumber" name="L659" href="#L659">659</a> 
<a class="jxr_linenumber" name="L660" href="#L660">660</a> 
<a class="jxr_linenumber" name="L661" href="#L661">661</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String sanitize( Object value )
<a class="jxr_linenumber" name="L662" href="#L662">662</a>     {
<a class="jxr_linenumber" name="L663" href="#L663">663</a>         <strong class="jxr_keyword">if</strong> ( value instanceof String )
<a class="jxr_linenumber" name="L664" href="#L664">664</a>         {
<a class="jxr_linenumber" name="L665" href="#L665">665</a>             <strong class="jxr_keyword">return</strong> ( String ) value;
<a class="jxr_linenumber" name="L666" href="#L666">666</a>         }
<a class="jxr_linenumber" name="L667" href="#L667">667</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( value instanceof Iterable )
<a class="jxr_linenumber" name="L668" href="#L668">668</a>         {
<a class="jxr_linenumber" name="L669" href="#L669">669</a>             String delim = <span class="jxr_string">""</span>;
<a class="jxr_linenumber" name="L670" href="#L670">670</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="L671" href="#L671">671</a>             <strong class="jxr_keyword">for</strong> ( Object i : ( Iterable&lt;?&gt; ) value )
<a class="jxr_linenumber" name="L672" href="#L672">672</a>             {
<a class="jxr_linenumber" name="L673" href="#L673">673</a>                 buf.append( delim ).append( i );
<a class="jxr_linenumber" name="L674" href="#L674">674</a>                 delim = <span class="jxr_string">", "</span>;
<a class="jxr_linenumber" name="L675" href="#L675">675</a>             }
<a class="jxr_linenumber" name="L676" href="#L676">676</a>             <strong class="jxr_keyword">return</strong> buf.toString();
<a class="jxr_linenumber" name="L677" href="#L677">677</a>         }
<a class="jxr_linenumber" name="L678" href="#L678">678</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( value.getClass().isArray() )
<a class="jxr_linenumber" name="L679" href="#L679">679</a>         {
<a class="jxr_linenumber" name="L680" href="#L680">680</a>             String delim = <span class="jxr_string">""</span>;
<a class="jxr_linenumber" name="L681" href="#L681">681</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="L682" href="#L682">682</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0, len = Array.getLength( value ); i &lt; len; i++ )
<a class="jxr_linenumber" name="L683" href="#L683">683</a>             {
<a class="jxr_linenumber" name="L684" href="#L684">684</a>                 buf.append( delim ).append( Array.get( value, i ) );
<a class="jxr_linenumber" name="L685" href="#L685">685</a>                 delim = <span class="jxr_string">", "</span>;
<a class="jxr_linenumber" name="L686" href="#L686">686</a>             }
<a class="jxr_linenumber" name="L687" href="#L687">687</a>             <strong class="jxr_keyword">return</strong> buf.toString();
<a class="jxr_linenumber" name="L688" href="#L688">688</a>         }
<a class="jxr_linenumber" name="L689" href="#L689">689</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L690" href="#L690">690</a>         {
<a class="jxr_linenumber" name="L691" href="#L691">691</a>             <strong class="jxr_keyword">return</strong> String.valueOf( value );
<a class="jxr_linenumber" name="L692" href="#L692">692</a>         }
<a class="jxr_linenumber" name="L693" href="#L693">693</a>     }
<a class="jxr_linenumber" name="L694" href="#L694">694</a> 
<a class="jxr_linenumber" name="L695" href="#L695">695</a> 
<a class="jxr_linenumber" name="L696" href="#L696">696</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addMavenInstructions( MavenProject currentProject, DependencyNode dependencyGraph, Builder builder ) <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L697" href="#L697">697</a>     {
<a class="jxr_linenumber" name="L698" href="#L698">698</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getBasedir() != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L699" href="#L699">699</a>         {
<a class="jxr_linenumber" name="L700" href="#L700">700</a>             <em class="jxr_comment">// update BND instructions to add included Maven resources</em>
<a class="jxr_linenumber" name="L701" href="#L701">701</a>             includeMavenResources(currentProject, builder, getLog());
<a class="jxr_linenumber" name="L702" href="#L702">702</a> 
<a class="jxr_linenumber" name="L703" href="#L703">703</a>             <em class="jxr_comment">// Fixup error messages</em>
<a class="jxr_linenumber" name="L704" href="#L704">704</a>             includeJava9Fixups(currentProject, builder);
<a class="jxr_linenumber" name="L705" href="#L705">705</a> 
<a class="jxr_linenumber" name="L706" href="#L706">706</a>             <em class="jxr_comment">// calculate default export/private settings based on sources</em>
<a class="jxr_linenumber" name="L707" href="#L707">707</a>             addLocalPackages(outputDirectory, builder);
<a class="jxr_linenumber" name="L708" href="#L708">708</a> 
<a class="jxr_linenumber" name="L709" href="#L709">709</a>             <em class="jxr_comment">// tell BND where the current project source resides</em>
<a class="jxr_linenumber" name="L710" href="#L710">710</a>             addMavenSourcePath(currentProject, builder, getLog());
<a class="jxr_linenumber" name="L711" href="#L711">711</a>         }
<a class="jxr_linenumber" name="L712" href="#L712">712</a> 
<a class="jxr_linenumber" name="L713" href="#L713">713</a>         <em class="jxr_comment">// update BND instructions to embed selected Maven dependencies</em>
<a class="jxr_linenumber" name="L714" href="#L714">714</a>         Collection&lt;Artifact&gt; embeddableArtifacts = getEmbeddableArtifacts( currentProject, dependencyGraph, builder );
<a class="jxr_linenumber" name="L715" href="#L715">715</a>         <a href="../../../../org/apache/felix/bundleplugin/DependencyEmbedder.html">DependencyEmbedder</a> dependencyEmbedder = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyEmbedder.html">DependencyEmbedder</a>(getLog(), dependencyGraph, embeddableArtifacts);
<a class="jxr_linenumber" name="L716" href="#L716">716</a>         dependencyEmbedder.processHeaders(builder);
<a class="jxr_linenumber" name="L717" href="#L717">717</a> 
<a class="jxr_linenumber" name="L718" href="#L718">718</a>         Collection&lt;Artifact&gt; embeddedArtifacts = dependencyEmbedder.getEmbeddedArtifacts();
<a class="jxr_linenumber" name="L719" href="#L719">719</a>         <strong class="jxr_keyword">if</strong> ( !embeddedArtifacts.isEmpty() &amp;&amp; createDependencyReducedPom )
<a class="jxr_linenumber" name="L720" href="#L720">720</a>         {
<a class="jxr_linenumber" name="L721" href="#L721">721</a>             Set&lt;String&gt; embeddedIds = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;();
<a class="jxr_linenumber" name="L722" href="#L722">722</a>             <strong class="jxr_keyword">for</strong> ( Artifact artifact : embeddedArtifacts )
<a class="jxr_linenumber" name="L723" href="#L723">723</a>             {
<a class="jxr_linenumber" name="L724" href="#L724">724</a>                 embeddedIds.add( getId( artifact ) );
<a class="jxr_linenumber" name="L725" href="#L725">725</a>             }
<a class="jxr_linenumber" name="L726" href="#L726">726</a>             createDependencyReducedPom( embeddedIds );
<a class="jxr_linenumber" name="L727" href="#L727">727</a> 
<a class="jxr_linenumber" name="L728" href="#L728">728</a>         }
<a class="jxr_linenumber" name="L729" href="#L729">729</a> 
<a class="jxr_linenumber" name="L730" href="#L730">730</a>         <strong class="jxr_keyword">if</strong> ( dumpInstructions != <strong class="jxr_keyword">null</strong> || getLog().isDebugEnabled() )
<a class="jxr_linenumber" name="L731" href="#L731">731</a>         {
<a class="jxr_linenumber" name="L732" href="#L732">732</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="L733" href="#L733">733</a>             getLog().debug( <span class="jxr_string">"BND Instructions:"</span> + NL + dumpInstructions( builder.getProperties(), buf ) );
<a class="jxr_linenumber" name="L734" href="#L734">734</a>             <strong class="jxr_keyword">if</strong> ( dumpInstructions != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L735" href="#L735">735</a>             {
<a class="jxr_linenumber" name="L736" href="#L736">736</a>                 getLog().info( <span class="jxr_string">"Writing BND instructions to "</span> + dumpInstructions );
<a class="jxr_linenumber" name="L737" href="#L737">737</a>                 dumpInstructions.getParentFile().mkdirs();
<a class="jxr_linenumber" name="L738" href="#L738">738</a>                 FileUtils.fileWrite( dumpInstructions, <span class="jxr_string">"# BND instructions"</span> + NL + buf );
<a class="jxr_linenumber" name="L739" href="#L739">739</a>             }
<a class="jxr_linenumber" name="L740" href="#L740">740</a>         }
<a class="jxr_linenumber" name="L741" href="#L741">741</a> 
<a class="jxr_linenumber" name="L742" href="#L742">742</a> 
<a class="jxr_linenumber" name="L743" href="#L743">743</a> 
<a class="jxr_linenumber" name="L744" href="#L744">744</a>         <strong class="jxr_keyword">if</strong> ( dumpClasspath != <strong class="jxr_keyword">null</strong> || getLog().isDebugEnabled() )
<a class="jxr_linenumber" name="L745" href="#L745">745</a>         {
<a class="jxr_linenumber" name="L746" href="#L746">746</a>             StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="L747" href="#L747">747</a>             getLog().debug(<span class="jxr_string">"BND Classpath:"</span> + NL + dumpClasspath(builder.getClasspath(), buf));
<a class="jxr_linenumber" name="L748" href="#L748">748</a>             <strong class="jxr_keyword">if</strong> ( dumpClasspath != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L749" href="#L749">749</a>             {
<a class="jxr_linenumber" name="L750" href="#L750">750</a>                 getLog().info( <span class="jxr_string">"Writing BND classpath to "</span> + dumpClasspath );
<a class="jxr_linenumber" name="L751" href="#L751">751</a>                 dumpClasspath.getParentFile().mkdirs();
<a class="jxr_linenumber" name="L752" href="#L752">752</a>                 FileUtils.fileWrite( dumpClasspath, <span class="jxr_string">"# BND classpath"</span> + NL + buf );
<a class="jxr_linenumber" name="L753" href="#L753">753</a>             }
<a class="jxr_linenumber" name="L754" href="#L754">754</a>         }
<a class="jxr_linenumber" name="L755" href="#L755">755</a>     }
<a class="jxr_linenumber" name="L756" href="#L756">756</a> 
<a class="jxr_linenumber" name="L757" href="#L757">757</a> 
<a class="jxr_linenumber" name="L758" href="#L758">758</a>     <em class="jxr_comment">// We need to find the direct dependencies that have been included in the uber JAR so that we can modify the</em>
<a class="jxr_linenumber" name="L759" href="#L759">759</a>     <em class="jxr_comment">// POM accordingly.</em>
<a class="jxr_linenumber" name="L760" href="#L760">760</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> createDependencyReducedPom( Set&lt;String&gt; artifactsToRemove )
<a class="jxr_linenumber" name="L761" href="#L761">761</a>             <strong class="jxr_keyword">throws</strong> IOException, DependencyTreeBuilderException, ProjectBuildingException
<a class="jxr_linenumber" name="L762" href="#L762">762</a>     {
<a class="jxr_linenumber" name="L763" href="#L763">763</a>         Model model = project.getOriginalModel();
<a class="jxr_linenumber" name="L764" href="#L764">764</a>         List&lt;Dependency&gt; dependencies = <strong class="jxr_keyword">new</strong> ArrayList&lt;Dependency&gt;();
<a class="jxr_linenumber" name="L765" href="#L765">765</a> 
<a class="jxr_linenumber" name="L766" href="#L766">766</a>         <strong class="jxr_keyword">boolean</strong> modified = false;
<a class="jxr_linenumber" name="L767" href="#L767">767</a> 
<a class="jxr_linenumber" name="L768" href="#L768">768</a>         List&lt;Dependency&gt; transitiveDeps = <strong class="jxr_keyword">new</strong> ArrayList&lt;Dependency&gt;();
<a class="jxr_linenumber" name="L769" href="#L769">769</a> 
<a class="jxr_linenumber" name="L770" href="#L770">770</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = project.getArtifacts().iterator(); it.hasNext(); )
<a class="jxr_linenumber" name="L771" href="#L771">771</a>         {
<a class="jxr_linenumber" name="L772" href="#L772">772</a>             Artifact artifact = (Artifact) it.next();
<a class="jxr_linenumber" name="L773" href="#L773">773</a> 
<a class="jxr_linenumber" name="L774" href="#L774">774</a>             <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"pom"</span>.equals( artifact.getType() ) )
<a class="jxr_linenumber" name="L775" href="#L775">775</a>             {
<a class="jxr_linenumber" name="L776" href="#L776">776</a>                 <em class="jxr_comment">// don't include pom type dependencies in dependency reduced pom</em>
<a class="jxr_linenumber" name="L777" href="#L777">777</a>                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L778" href="#L778">778</a>             }
<a class="jxr_linenumber" name="L779" href="#L779">779</a> 
<a class="jxr_linenumber" name="L780" href="#L780">780</a>             <em class="jxr_comment">//promote</em>
<a class="jxr_linenumber" name="L781" href="#L781">781</a>             Dependency dep = <strong class="jxr_keyword">new</strong> Dependency();
<a class="jxr_linenumber" name="L782" href="#L782">782</a>             dep.setArtifactId( artifact.getArtifactId() );
<a class="jxr_linenumber" name="L783" href="#L783">783</a>             <strong class="jxr_keyword">if</strong> ( artifact.hasClassifier() )
<a class="jxr_linenumber" name="L784" href="#L784">784</a>             {
<a class="jxr_linenumber" name="L785" href="#L785">785</a>                 dep.setClassifier( artifact.getClassifier() );
<a class="jxr_linenumber" name="L786" href="#L786">786</a>             }
<a class="jxr_linenumber" name="L787" href="#L787">787</a>             dep.setGroupId( artifact.getGroupId() );
<a class="jxr_linenumber" name="L788" href="#L788">788</a>             dep.setOptional( artifact.isOptional() );
<a class="jxr_linenumber" name="L789" href="#L789">789</a>             dep.setScope( artifact.getScope() );
<a class="jxr_linenumber" name="L790" href="#L790">790</a>             dep.setType( artifact.getType() );
<a class="jxr_linenumber" name="L791" href="#L791">791</a>             dep.setVersion( artifact.getVersion() );
<a class="jxr_linenumber" name="L792" href="#L792">792</a> 
<a class="jxr_linenumber" name="L793" href="#L793">793</a>             <em class="jxr_comment">//we'll figure out the exclusions in a bit.</em>
<a class="jxr_linenumber" name="L794" href="#L794">794</a> 
<a class="jxr_linenumber" name="L795" href="#L795">795</a>             transitiveDeps.add( dep );
<a class="jxr_linenumber" name="L796" href="#L796">796</a>         }
<a class="jxr_linenumber" name="L797" href="#L797">797</a>         List&lt;Dependency&gt; origDeps = project.getDependencies();
<a class="jxr_linenumber" name="L798" href="#L798">798</a> 
<a class="jxr_linenumber" name="L799" href="#L799">799</a>         <strong class="jxr_keyword">for</strong> ( Iterator&lt;Dependency&gt; i = origDeps.iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L800" href="#L800">800</a>         {
<a class="jxr_linenumber" name="L801" href="#L801">801</a>             Dependency d = i.next();
<a class="jxr_linenumber" name="L802" href="#L802">802</a> 
<a class="jxr_linenumber" name="L803" href="#L803">803</a>             dependencies.add( d );
<a class="jxr_linenumber" name="L804" href="#L804">804</a> 
<a class="jxr_linenumber" name="L805" href="#L805">805</a>             String id = getId( d );
<a class="jxr_linenumber" name="L806" href="#L806">806</a> 
<a class="jxr_linenumber" name="L807" href="#L807">807</a>             <strong class="jxr_keyword">if</strong> ( artifactsToRemove.contains( id ) )
<a class="jxr_linenumber" name="L808" href="#L808">808</a>             {
<a class="jxr_linenumber" name="L809" href="#L809">809</a>                 modified = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L810" href="#L810">810</a> 
<a class="jxr_linenumber" name="L811" href="#L811">811</a>                 dependencies.remove( d );
<a class="jxr_linenumber" name="L812" href="#L812">812</a>             }
<a class="jxr_linenumber" name="L813" href="#L813">813</a>         }
<a class="jxr_linenumber" name="L814" href="#L814">814</a> 
<a class="jxr_linenumber" name="L815" href="#L815">815</a>         <em class="jxr_comment">// Check to see if we have a reduction and if so rewrite the POM.</em>
<a class="jxr_linenumber" name="L816" href="#L816">816</a>         <strong class="jxr_keyword">if</strong> ( modified )
<a class="jxr_linenumber" name="L817" href="#L817">817</a>         {
<a class="jxr_linenumber" name="L818" href="#L818">818</a>             <strong class="jxr_keyword">while</strong> ( modified )
<a class="jxr_linenumber" name="L819" href="#L819">819</a>             {
<a class="jxr_linenumber" name="L820" href="#L820">820</a> 
<a class="jxr_linenumber" name="L821" href="#L821">821</a>                 model.setDependencies( dependencies );
<a class="jxr_linenumber" name="L822" href="#L822">822</a> 
<a class="jxr_linenumber" name="L823" href="#L823">823</a>                 <strong class="jxr_keyword">if</strong> ( dependencyReducedPomLocation == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L824" href="#L824">824</a>                 {
<a class="jxr_linenumber" name="L825" href="#L825">825</a>                     <em class="jxr_comment">// MSHADE-123: We can't default to 'target' because it messes up uses of ${project.basedir}</em>
<a class="jxr_linenumber" name="L826" href="#L826">826</a>                     dependencyReducedPomLocation = <strong class="jxr_keyword">new</strong> File ( project.getBasedir(), <span class="jxr_string">"dependency-reduced-pom.xml"</span> );
<a class="jxr_linenumber" name="L827" href="#L827">827</a>                 }
<a class="jxr_linenumber" name="L828" href="#L828">828</a> 
<a class="jxr_linenumber" name="L829" href="#L829">829</a>                 File f = dependencyReducedPomLocation;
<a class="jxr_linenumber" name="L830" href="#L830">830</a>                 <strong class="jxr_keyword">if</strong> ( f.exists() )
<a class="jxr_linenumber" name="L831" href="#L831">831</a>                 {
<a class="jxr_linenumber" name="L832" href="#L832">832</a>                     f.delete();
<a class="jxr_linenumber" name="L833" href="#L833">833</a>                 }
<a class="jxr_linenumber" name="L834" href="#L834">834</a> 
<a class="jxr_linenumber" name="L835" href="#L835">835</a>                 Writer w = WriterFactory.newXmlWriter( f );
<a class="jxr_linenumber" name="L836" href="#L836">836</a> 
<a class="jxr_linenumber" name="L837" href="#L837">837</a>                 String origRelativePath = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L838" href="#L838">838</a>                 String replaceRelativePath = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L839" href="#L839">839</a>                 <strong class="jxr_keyword">if</strong> ( model.getParent() != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L840" href="#L840">840</a>                 {
<a class="jxr_linenumber" name="L841" href="#L841">841</a>                     origRelativePath = model.getParent().getRelativePath();
<a class="jxr_linenumber" name="L842" href="#L842">842</a> 
<a class="jxr_linenumber" name="L843" href="#L843">843</a>                 }
<a class="jxr_linenumber" name="L844" href="#L844">844</a>                 replaceRelativePath = origRelativePath;
<a class="jxr_linenumber" name="L845" href="#L845">845</a> 
<a class="jxr_linenumber" name="L846" href="#L846">846</a>                 <strong class="jxr_keyword">if</strong> ( origRelativePath == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L847" href="#L847">847</a>                 {
<a class="jxr_linenumber" name="L848" href="#L848">848</a>                     origRelativePath = <span class="jxr_string">"../pom.xml"</span>;
<a class="jxr_linenumber" name="L849" href="#L849">849</a>                 }
<a class="jxr_linenumber" name="L850" href="#L850">850</a> 
<a class="jxr_linenumber" name="L851" href="#L851">851</a>                 <strong class="jxr_keyword">if</strong> ( model.getParent() != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L852" href="#L852">852</a>                 {
<a class="jxr_linenumber" name="L853" href="#L853">853</a>                     File parentFile = <strong class="jxr_keyword">new</strong> File( project.getBasedir(), model.getParent().getRelativePath() ).getCanonicalFile();
<a class="jxr_linenumber" name="L854" href="#L854">854</a>                     <strong class="jxr_keyword">if</strong> ( !parentFile.isFile() )
<a class="jxr_linenumber" name="L855" href="#L855">855</a>                     {
<a class="jxr_linenumber" name="L856" href="#L856">856</a>                         parentFile = <strong class="jxr_keyword">new</strong> File( parentFile, <span class="jxr_string">"pom.xml"</span>);
<a class="jxr_linenumber" name="L857" href="#L857">857</a>                     }
<a class="jxr_linenumber" name="L858" href="#L858">858</a> 
<a class="jxr_linenumber" name="L859" href="#L859">859</a>                     parentFile = parentFile.getCanonicalFile();
<a class="jxr_linenumber" name="L860" href="#L860">860</a> 
<a class="jxr_linenumber" name="L861" href="#L861">861</a>                     String relPath = RelativizePath.convertToRelativePath( parentFile, f );
<a class="jxr_linenumber" name="L862" href="#L862">862</a>                     model.getParent().setRelativePath( relPath );
<a class="jxr_linenumber" name="L863" href="#L863">863</a>                 }
<a class="jxr_linenumber" name="L864" href="#L864">864</a> 
<a class="jxr_linenumber" name="L865" href="#L865">865</a>                 <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L866" href="#L866">866</a>                 {
<a class="jxr_linenumber" name="L867" href="#L867">867</a>                     PomWriter.write( w, model, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L868" href="#L868">868</a>                 }
<a class="jxr_linenumber" name="L869" href="#L869">869</a>                 <strong class="jxr_keyword">finally</strong>
<a class="jxr_linenumber" name="L870" href="#L870">870</a>                 {
<a class="jxr_linenumber" name="L871" href="#L871">871</a>                     <strong class="jxr_keyword">if</strong> ( model.getParent() != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L872" href="#L872">872</a>                     {
<a class="jxr_linenumber" name="L873" href="#L873">873</a>                         model.getParent().setRelativePath( replaceRelativePath );
<a class="jxr_linenumber" name="L874" href="#L874">874</a>                     }
<a class="jxr_linenumber" name="L875" href="#L875">875</a>                     w.close();
<a class="jxr_linenumber" name="L876" href="#L876">876</a>                 }
<a class="jxr_linenumber" name="L877" href="#L877">877</a> 
<a class="jxr_linenumber" name="L878" href="#L878">878</a>                 MavenProject p2 = mavenProjectBuilder.build( f, localRepository, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L879" href="#L879">879</a>                 modified = updateExcludesInDeps( p2, dependencies, transitiveDeps );
<a class="jxr_linenumber" name="L880" href="#L880">880</a> 
<a class="jxr_linenumber" name="L881" href="#L881">881</a>             }
<a class="jxr_linenumber" name="L882" href="#L882">882</a> 
<a class="jxr_linenumber" name="L883" href="#L883">883</a>             project.setFile( dependencyReducedPomLocation );
<a class="jxr_linenumber" name="L884" href="#L884">884</a>         }
<a class="jxr_linenumber" name="L885" href="#L885">885</a>     }
<a class="jxr_linenumber" name="L886" href="#L886">886</a> 
<a class="jxr_linenumber" name="L887" href="#L887">887</a>     <strong class="jxr_keyword">private</strong> String getId( Artifact artifact )
<a class="jxr_linenumber" name="L888" href="#L888">888</a>     {
<a class="jxr_linenumber" name="L889" href="#L889">889</a>         <strong class="jxr_keyword">return</strong> getId( artifact.getGroupId(), artifact.getArtifactId(), artifact.getType(), artifact.getClassifier() );
<a class="jxr_linenumber" name="L890" href="#L890">890</a>     }
<a class="jxr_linenumber" name="L891" href="#L891">891</a> 
<a class="jxr_linenumber" name="L892" href="#L892">892</a>     <strong class="jxr_keyword">private</strong> String getId( Dependency dependency )
<a class="jxr_linenumber" name="L893" href="#L893">893</a>     {
<a class="jxr_linenumber" name="L894" href="#L894">894</a>         <strong class="jxr_keyword">return</strong> getId( dependency.getGroupId(), dependency.getArtifactId(), dependency.getType(),
<a class="jxr_linenumber" name="L895" href="#L895">895</a>                 dependency.getClassifier() );
<a class="jxr_linenumber" name="L896" href="#L896">896</a>     }
<a class="jxr_linenumber" name="L897" href="#L897">897</a> 
<a class="jxr_linenumber" name="L898" href="#L898">898</a>     <strong class="jxr_keyword">private</strong> String getId( String groupId, String artifactId, String type, String classifier )
<a class="jxr_linenumber" name="L899" href="#L899">899</a>     {
<a class="jxr_linenumber" name="L900" href="#L900">900</a>         <strong class="jxr_keyword">return</strong> groupId + <span class="jxr_string">":"</span> + artifactId + <span class="jxr_string">":"</span> + type + <span class="jxr_string">":"</span> + ( ( classifier != <strong class="jxr_keyword">null</strong> ) ? classifier : <span class="jxr_string">""</span> );
<a class="jxr_linenumber" name="L901" href="#L901">901</a>     }
<a class="jxr_linenumber" name="L902" href="#L902">902</a> 
<a class="jxr_linenumber" name="L903" href="#L903">903</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> updateExcludesInDeps( MavenProject project, List&lt;Dependency&gt; dependencies, List&lt;Dependency&gt; transitiveDeps )
<a class="jxr_linenumber" name="L904" href="#L904">904</a>             <strong class="jxr_keyword">throws</strong> DependencyTreeBuilderException
<a class="jxr_linenumber" name="L905" href="#L905">905</a>     {
<a class="jxr_linenumber" name="L906" href="#L906">906</a>         org.apache.maven.shared.dependency.tree.DependencyNode node = dependencyTreeBuilder.buildDependencyTree(project, localRepository, artifactFactory,
<a class="jxr_linenumber" name="L907" href="#L907">907</a>                 artifactMetadataSource, <strong class="jxr_keyword">null</strong>,
<a class="jxr_linenumber" name="L908" href="#L908">908</a>                 artifactCollector);
<a class="jxr_linenumber" name="L909" href="#L909">909</a>         <strong class="jxr_keyword">boolean</strong> modified = false;
<a class="jxr_linenumber" name="L910" href="#L910">910</a>         Iterator it = node.getChildren().listIterator();
<a class="jxr_linenumber" name="L911" href="#L911">911</a>         <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L912" href="#L912">912</a>         {
<a class="jxr_linenumber" name="L913" href="#L913">913</a>             org.apache.maven.shared.dependency.tree.DependencyNode n2 = (org.apache.maven.shared.dependency.tree.DependencyNode) it.next();
<a class="jxr_linenumber" name="L914" href="#L914">914</a>             Iterator it2 = n2.getChildren().listIterator();
<a class="jxr_linenumber" name="L915" href="#L915">915</a>             <strong class="jxr_keyword">while</strong> ( it2.hasNext() )
<a class="jxr_linenumber" name="L916" href="#L916">916</a>             {
<a class="jxr_linenumber" name="L917" href="#L917">917</a>                 org.apache.maven.shared.dependency.tree.DependencyNode n3 = (org.apache.maven.shared.dependency.tree.DependencyNode) it2.next();
<a class="jxr_linenumber" name="L918" href="#L918">918</a>                 <em class="jxr_comment">//anything two levels deep that is marked "included"</em>
<a class="jxr_linenumber" name="L919" href="#L919">919</a>                 <em class="jxr_comment">//is stuff that was excluded by the original poms, make sure it</em>
<a class="jxr_linenumber" name="L920" href="#L920">920</a>                 <em class="jxr_comment">//remains excluded IF promoting transitives.</em>
<a class="jxr_linenumber" name="L921" href="#L921">921</a>                 <strong class="jxr_keyword">if</strong> ( n3.getState() == org.apache.maven.shared.dependency.tree.DependencyNode.INCLUDED )
<a class="jxr_linenumber" name="L922" href="#L922">922</a>                 {
<a class="jxr_linenumber" name="L923" href="#L923">923</a>                     <em class="jxr_comment">//check if it really isn't in the list of original dependencies.  Maven</em>
<a class="jxr_linenumber" name="L924" href="#L924">924</a>                     <em class="jxr_comment">//prior to 2.0.8 may grab versions from transients instead of</em>
<a class="jxr_linenumber" name="L925" href="#L925">925</a>                     <em class="jxr_comment">//from the direct deps in which case they would be marked included</em>
<a class="jxr_linenumber" name="L926" href="#L926">926</a>                     <em class="jxr_comment">//instead of OMITTED_FOR_DUPLICATE</em>
<a class="jxr_linenumber" name="L927" href="#L927">927</a> 
<a class="jxr_linenumber" name="L928" href="#L928">928</a>                     <em class="jxr_comment">//also, if not promoting the transitives, level 2's would be included</em>
<a class="jxr_linenumber" name="L929" href="#L929">929</a>                     <strong class="jxr_keyword">boolean</strong> found = false;
<a class="jxr_linenumber" name="L930" href="#L930">930</a>                     <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> x = 0; x &lt; transitiveDeps.size(); x++ )
<a class="jxr_linenumber" name="L931" href="#L931">931</a>                     {
<a class="jxr_linenumber" name="L932" href="#L932">932</a>                         Dependency dep = transitiveDeps.get( x );
<a class="jxr_linenumber" name="L933" href="#L933">933</a>                         <strong class="jxr_keyword">if</strong> ( dep.getArtifactId().equals( n3.getArtifact().getArtifactId() ) &amp;&amp; dep.getGroupId().equals(
<a class="jxr_linenumber" name="L934" href="#L934">934</a>                                 n3.getArtifact().getGroupId() ) )
<a class="jxr_linenumber" name="L935" href="#L935">935</a>                         {
<a class="jxr_linenumber" name="L936" href="#L936">936</a>                             found = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L937" href="#L937">937</a>                         }
<a class="jxr_linenumber" name="L938" href="#L938">938</a> 
<a class="jxr_linenumber" name="L939" href="#L939">939</a>                     }
<a class="jxr_linenumber" name="L940" href="#L940">940</a> 
<a class="jxr_linenumber" name="L941" href="#L941">941</a>                     <strong class="jxr_keyword">if</strong> ( !found )
<a class="jxr_linenumber" name="L942" href="#L942">942</a>                     {
<a class="jxr_linenumber" name="L943" href="#L943">943</a>                         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> x = 0; x &lt; dependencies.size(); x++ )
<a class="jxr_linenumber" name="L944" href="#L944">944</a>                         {
<a class="jxr_linenumber" name="L945" href="#L945">945</a>                             Dependency dep = dependencies.get( x );
<a class="jxr_linenumber" name="L946" href="#L946">946</a>                             <strong class="jxr_keyword">if</strong> ( dep.getArtifactId().equals( n2.getArtifact().getArtifactId() )
<a class="jxr_linenumber" name="L947" href="#L947">947</a>                                     &amp;&amp; dep.getGroupId().equals( n2.getArtifact().getGroupId() ) )
<a class="jxr_linenumber" name="L948" href="#L948">948</a>                             {
<a class="jxr_linenumber" name="L949" href="#L949">949</a>                                 Exclusion exclusion = <strong class="jxr_keyword">new</strong> Exclusion();
<a class="jxr_linenumber" name="L950" href="#L950">950</a>                                 exclusion.setArtifactId( n3.getArtifact().getArtifactId() );
<a class="jxr_linenumber" name="L951" href="#L951">951</a>                                 exclusion.setGroupId( n3.getArtifact().getGroupId() );
<a class="jxr_linenumber" name="L952" href="#L952">952</a>                                 dep.addExclusion( exclusion );
<a class="jxr_linenumber" name="L953" href="#L953">953</a>                                 modified = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L954" href="#L954">954</a>                                 <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="L955" href="#L955">955</a>                             }
<a class="jxr_linenumber" name="L956" href="#L956">956</a>                         }
<a class="jxr_linenumber" name="L957" href="#L957">957</a>                     }
<a class="jxr_linenumber" name="L958" href="#L958">958</a>                 }
<a class="jxr_linenumber" name="L959" href="#L959">959</a>             }
<a class="jxr_linenumber" name="L960" href="#L960">960</a>         }
<a class="jxr_linenumber" name="L961" href="#L961">961</a>         <strong class="jxr_keyword">return</strong> modified;
<a class="jxr_linenumber" name="L962" href="#L962">962</a>     }
<a class="jxr_linenumber" name="L963" href="#L963">963</a> 
<a class="jxr_linenumber" name="L964" href="#L964">964</a> 
<a class="jxr_linenumber" name="L965" href="#L965">965</a>     <strong class="jxr_keyword">protected</strong> Builder buildOSGiBundle( MavenProject currentProject, DependencyNode dependencyGraph, Map&lt;String, String&gt; originalInstructions, Properties properties,
<a class="jxr_linenumber" name="L966" href="#L966">966</a>         Jar[] classpath ) <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L967" href="#L967">967</a>     {
<a class="jxr_linenumber" name="L968" href="#L968">968</a>         Builder builder = getOSGiBuilder( currentProject, originalInstructions, properties, classpath );
<a class="jxr_linenumber" name="L969" href="#L969">969</a> 
<a class="jxr_linenumber" name="L970" href="#L970">970</a>         addMavenInstructions( currentProject, dependencyGraph, builder );
<a class="jxr_linenumber" name="L971" href="#L971">971</a> 
<a class="jxr_linenumber" name="L972" href="#L972">972</a>         builder.build();
<a class="jxr_linenumber" name="L973" href="#L973">973</a> 
<a class="jxr_linenumber" name="L974" href="#L974">974</a>         mergeMavenManifest(currentProject, dependencyGraph, builder);
<a class="jxr_linenumber" name="L975" href="#L975">975</a> 
<a class="jxr_linenumber" name="L976" href="#L976">976</a>         <strong class="jxr_keyword">return</strong> builder;
<a class="jxr_linenumber" name="L977" href="#L977">977</a>     }
<a class="jxr_linenumber" name="L978" href="#L978">978</a> 
<a class="jxr_linenumber" name="L979" href="#L979">979</a> 
<a class="jxr_linenumber" name="L980" href="#L980">980</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpInstructions( Properties properties, StringBuilder buf )
<a class="jxr_linenumber" name="L981" href="#L981">981</a>     {
<a class="jxr_linenumber" name="L982" href="#L982">982</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L983" href="#L983">983</a>         {
<a class="jxr_linenumber" name="L984" href="#L984">984</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
<a class="jxr_linenumber" name="L985" href="#L985">985</a>             Properties stringProperties = <strong class="jxr_keyword">new</strong> Properties();
<a class="jxr_linenumber" name="L986" href="#L986">986</a>             <strong class="jxr_keyword">for</strong> ( Enumeration&lt;String&gt; e = (Enumeration&lt;String&gt;) properties.propertyNames(); e.hasMoreElements(); )
<a class="jxr_linenumber" name="L987" href="#L987">987</a>             {
<a class="jxr_linenumber" name="L988" href="#L988">988</a>                 <em class="jxr_comment">// we can only store String properties</em>
<a class="jxr_linenumber" name="L989" href="#L989">989</a>                 String key = e.nextElement();
<a class="jxr_linenumber" name="L990" href="#L990">990</a>                 String value = properties.getProperty( key );
<a class="jxr_linenumber" name="L991" href="#L991">991</a>                 <strong class="jxr_keyword">if</strong> ( value != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L992" href="#L992">992</a>                 {
<a class="jxr_linenumber" name="L993" href="#L993">993</a>                     stringProperties.setProperty( key, value );
<a class="jxr_linenumber" name="L994" href="#L994">994</a>                 }
<a class="jxr_linenumber" name="L995" href="#L995">995</a>             }
<a class="jxr_linenumber" name="L996" href="#L996">996</a>             ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
<a class="jxr_linenumber" name="L997" href="#L997">997</a>             stringProperties.store( out, <strong class="jxr_keyword">null</strong> ); <em class="jxr_comment">// properties encoding is 8859_1</em>
<a class="jxr_linenumber" name="L998" href="#L998">998</a>             buf.append( out.toString( <span class="jxr_string">"8859_1"</span> ) );
<a class="jxr_linenumber" name="L999" href="#L999">999</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
<a class="jxr_linenumber" name="L1000" href="#L1000">1000</a>         }
<a class="jxr_linenumber" name="L1001" href="#L1001">1001</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
<a class="jxr_linenumber" name="L1002" href="#L1002">1002</a>         {
<a class="jxr_linenumber" name="L1003" href="#L1003">1003</a>             <em class="jxr_comment">// ignore...</em>
<a class="jxr_linenumber" name="L1004" href="#L1004">1004</a>         }
<a class="jxr_linenumber" name="L1005" href="#L1005">1005</a>         <strong class="jxr_keyword">return</strong> buf;
<a class="jxr_linenumber" name="L1006" href="#L1006">1006</a>     }
<a class="jxr_linenumber" name="L1007" href="#L1007">1007</a> 
<a class="jxr_linenumber" name="L1008" href="#L1008">1008</a> 
<a class="jxr_linenumber" name="L1009" href="#L1009">1009</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpClasspath( List&lt;Jar&gt; classpath, StringBuilder buf )
<a class="jxr_linenumber" name="L1010" href="#L1010">1010</a>     {
<a class="jxr_linenumber" name="L1011" href="#L1011">1011</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L1012" href="#L1012">1012</a>         {
<a class="jxr_linenumber" name="L1013" href="#L1013">1013</a>             buf.append(<span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL);
<a class="jxr_linenumber" name="L1014" href="#L1014">1014</a>             buf.append( <span class="jxr_string">"-classpath:&#92;&#92;"</span> + NL );
<a class="jxr_linenumber" name="L1015" href="#L1015">1015</a>             <strong class="jxr_keyword">for</strong> ( Iterator&lt;Jar&gt; i = classpath.iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L1016" href="#L1016">1016</a>             {
<a class="jxr_linenumber" name="L1017" href="#L1017">1017</a>                 File path = i.next().getSource();
<a class="jxr_linenumber" name="L1018" href="#L1018">1018</a>                 <strong class="jxr_keyword">if</strong> ( path != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1019" href="#L1019">1019</a>                 {
<a class="jxr_linenumber" name="L1020" href="#L1020">1020</a>                     buf.append( ' ' + path.toString() + ( i.hasNext() ? <span class="jxr_string">",&#92;&#92;"</span> : <span class="jxr_string">""</span> ) + NL );
<a class="jxr_linenumber" name="L1021" href="#L1021">1021</a>                 }
<a class="jxr_linenumber" name="L1022" href="#L1022">1022</a>             }
<a class="jxr_linenumber" name="L1023" href="#L1023">1023</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
<a class="jxr_linenumber" name="L1024" href="#L1024">1024</a>         }
<a class="jxr_linenumber" name="L1025" href="#L1025">1025</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
<a class="jxr_linenumber" name="L1026" href="#L1026">1026</a>         {
<a class="jxr_linenumber" name="L1027" href="#L1027">1027</a>             <em class="jxr_comment">// ignore...</em>
<a class="jxr_linenumber" name="L1028" href="#L1028">1028</a>         }
<a class="jxr_linenumber" name="L1029" href="#L1029">1029</a>         <strong class="jxr_keyword">return</strong> buf;
<a class="jxr_linenumber" name="L1030" href="#L1030">1030</a>     }
<a class="jxr_linenumber" name="L1031" href="#L1031">1031</a> 
<a class="jxr_linenumber" name="L1032" href="#L1032">1032</a> 
<a class="jxr_linenumber" name="L1033" href="#L1033">1033</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> StringBuilder dumpManifest( Manifest manifest, StringBuilder buf )
<a class="jxr_linenumber" name="L1034" href="#L1034">1034</a>     {
<a class="jxr_linenumber" name="L1035" href="#L1035">1035</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L1036" href="#L1036">1036</a>         {
<a class="jxr_linenumber" name="L1037" href="#L1037">1037</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
<a class="jxr_linenumber" name="L1038" href="#L1038">1038</a>             ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
<a class="jxr_linenumber" name="L1039" href="#L1039">1039</a>             ManifestWriter.outputManifest(manifest, out, <strong class="jxr_keyword">true</strong>); <em class="jxr_comment">// manifest encoding is UTF8</em>
<a class="jxr_linenumber" name="L1040" href="#L1040">1040</a>             buf.append( out.toString( <span class="jxr_string">"UTF8"</span> ) );
<a class="jxr_linenumber" name="L1041" href="#L1041">1041</a>             buf.append( <span class="jxr_string">"#-----------------------------------------------------------------------"</span> + NL );
<a class="jxr_linenumber" name="L1042" href="#L1042">1042</a>         }
<a class="jxr_linenumber" name="L1043" href="#L1043">1043</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
<a class="jxr_linenumber" name="L1044" href="#L1044">1044</a>         {
<a class="jxr_linenumber" name="L1045" href="#L1045">1045</a>             <em class="jxr_comment">// ignore...</em>
<a class="jxr_linenumber" name="L1046" href="#L1046">1046</a>         }
<a class="jxr_linenumber" name="L1047" href="#L1047">1047</a>         <strong class="jxr_keyword">return</strong> buf;
<a class="jxr_linenumber" name="L1048" href="#L1048">1048</a>     }
<a class="jxr_linenumber" name="L1049" href="#L1049">1049</a> 
<a class="jxr_linenumber" name="L1050" href="#L1050">1050</a> 
<a class="jxr_linenumber" name="L1051" href="#L1051">1051</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> includeMavenResources( MavenProject currentProject, Analyzer analyzer, Log log )
<a class="jxr_linenumber" name="L1052" href="#L1052">1052</a>     {
<a class="jxr_linenumber" name="L1053" href="#L1053">1053</a>         <em class="jxr_comment">// pass maven resource paths onto BND analyzer</em>
<a class="jxr_linenumber" name="L1054" href="#L1054">1054</a>         <strong class="jxr_keyword">final</strong> String mavenResourcePaths = getMavenResourcePaths( currentProject, false );
<a class="jxr_linenumber" name="L1055" href="#L1055">1055</a>         <strong class="jxr_keyword">final</strong> String mavenTestResourcePaths = getMavenResourcePaths( currentProject, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L1056" href="#L1056">1056</a>         <strong class="jxr_keyword">final</strong> String includeResource = analyzer.getProperty( Analyzer.INCLUDE_RESOURCE );
<a class="jxr_linenumber" name="L1057" href="#L1057">1057</a>         <strong class="jxr_keyword">if</strong> ( includeResource != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1058" href="#L1058">1058</a>         {
<a class="jxr_linenumber" name="L1059" href="#L1059">1059</a>             <strong class="jxr_keyword">if</strong> ( includeResource.contains( MAVEN_RESOURCES ) || includeResource.contains( MAVEN_TEST_RESOURCES ) )
<a class="jxr_linenumber" name="L1060" href="#L1060">1060</a>             {
<a class="jxr_linenumber" name="L1061" href="#L1061">1061</a>                 String combinedResource = StringUtils.replace( includeResource, MAVEN_RESOURCES, mavenResourcePaths );
<a class="jxr_linenumber" name="L1062" href="#L1062">1062</a>                 combinedResource = StringUtils.replace( combinedResource, MAVEN_TEST_RESOURCES, mavenTestResourcePaths );
<a class="jxr_linenumber" name="L1063" href="#L1063">1063</a>                 <strong class="jxr_keyword">if</strong> ( combinedResource.length() &gt; 0 )
<a class="jxr_linenumber" name="L1064" href="#L1064">1064</a>                 {
<a class="jxr_linenumber" name="L1065" href="#L1065">1065</a>                     analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, combinedResource );
<a class="jxr_linenumber" name="L1066" href="#L1066">1066</a>                 }
<a class="jxr_linenumber" name="L1067" href="#L1067">1067</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1068" href="#L1068">1068</a>                 {
<a class="jxr_linenumber" name="L1069" href="#L1069">1069</a>                     analyzer.unsetProperty( Analyzer.INCLUDE_RESOURCE );
<a class="jxr_linenumber" name="L1070" href="#L1070">1070</a>                 }
<a class="jxr_linenumber" name="L1071" href="#L1071">1071</a>             }
<a class="jxr_linenumber" name="L1072" href="#L1072">1072</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() &gt; 0 )
<a class="jxr_linenumber" name="L1073" href="#L1073">1073</a>             {
<a class="jxr_linenumber" name="L1074" href="#L1074">1074</a>                 log.warn( Analyzer.INCLUDE_RESOURCE + <span class="jxr_string">": overriding "</span> + mavenResourcePaths + <span class="jxr_string">" with "</span> + includeResource
<a class="jxr_linenumber" name="L1075" href="#L1075">1075</a>                         + <span class="jxr_string">" (add "</span> + MAVEN_RESOURCES + <span class="jxr_string">" if you want to include the maven resources)"</span> );
<a class="jxr_linenumber" name="L1076" href="#L1076">1076</a>             }
<a class="jxr_linenumber" name="L1077" href="#L1077">1077</a>         }
<a class="jxr_linenumber" name="L1078" href="#L1078">1078</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenResourcePaths.length() &gt; 0 )
<a class="jxr_linenumber" name="L1079" href="#L1079">1079</a>         {
<a class="jxr_linenumber" name="L1080" href="#L1080">1080</a>             analyzer.setProperty( Analyzer.INCLUDE_RESOURCE, mavenResourcePaths );
<a class="jxr_linenumber" name="L1081" href="#L1081">1081</a>         }
<a class="jxr_linenumber" name="L1082" href="#L1082">1082</a>     }
<a class="jxr_linenumber" name="L1083" href="#L1083">1083</a> 
<a class="jxr_linenumber" name="L1084" href="#L1084">1084</a> 
<a class="jxr_linenumber" name="L1085" href="#L1085">1085</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> mergeMavenManifest( MavenProject currentProject, DependencyNode dependencyGraph, Builder builder ) <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L1086" href="#L1086">1086</a>     {
<a class="jxr_linenumber" name="L1087" href="#L1087">1087</a>         Jar jar = builder.getJar();
<a class="jxr_linenumber" name="L1088" href="#L1088">1088</a> 
<a class="jxr_linenumber" name="L1089" href="#L1089">1089</a>         <strong class="jxr_keyword">if</strong> ( getLog().isDebugEnabled() )
<a class="jxr_linenumber" name="L1090" href="#L1090">1090</a>         {
<a class="jxr_linenumber" name="L1091" href="#L1091">1091</a>             getLog().debug( <span class="jxr_string">"BND Manifest:"</span> + NL + dumpManifest( jar.getManifest(), <strong class="jxr_keyword">new</strong> StringBuilder() ) );
<a class="jxr_linenumber" name="L1092" href="#L1092">1092</a>         }
<a class="jxr_linenumber" name="L1093" href="#L1093">1093</a> 
<a class="jxr_linenumber" name="L1094" href="#L1094">1094</a>         <strong class="jxr_keyword">boolean</strong> addMavenDescriptor = currentProject.getBasedir() != <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1095" href="#L1095">1095</a> 
<a class="jxr_linenumber" name="L1096" href="#L1096">1096</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L1097" href="#L1097">1097</a>         {
<a class="jxr_linenumber" name="L1098" href="#L1098">1098</a>             <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L1099" href="#L1099">1099</a> <em class="jxr_comment">             * Grab customized manifest entries from the maven-jar-plugin configuration</em>
<a class="jxr_linenumber" name="L1100" href="#L1100">1100</a> <em class="jxr_comment">             */</em>
<a class="jxr_linenumber" name="L1101" href="#L1101">1101</a>             MavenArchiveConfiguration archiveConfig = JarPluginConfiguration.getArchiveConfiguration( currentProject );
<a class="jxr_linenumber" name="L1102" href="#L1102">1102</a>             String mavenManifestText = <strong class="jxr_keyword">new</strong> MavenArchiver().getManifest( currentProject, archiveConfig ).toString();
<a class="jxr_linenumber" name="L1103" href="#L1103">1103</a>             addMavenDescriptor = addMavenDescriptor &amp;&amp; archiveConfig.isAddMavenDescriptor();
<a class="jxr_linenumber" name="L1104" href="#L1104">1104</a> 
<a class="jxr_linenumber" name="L1105" href="#L1105">1105</a>             Manifest mavenManifest = <strong class="jxr_keyword">new</strong> Manifest();
<a class="jxr_linenumber" name="L1106" href="#L1106">1106</a> 
<a class="jxr_linenumber" name="L1107" href="#L1107">1107</a>             <em class="jxr_comment">// First grab the external manifest file (if specified and different to target location)</em>
<a class="jxr_linenumber" name="L1108" href="#L1108">1108</a>             File externalManifestFile = archiveConfig.getManifestFile();
<a class="jxr_linenumber" name="L1109" href="#L1109">1109</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != externalManifestFile )
<a class="jxr_linenumber" name="L1110" href="#L1110">1110</a>             {
<a class="jxr_linenumber" name="L1111" href="#L1111">1111</a>                 <strong class="jxr_keyword">if</strong> ( !externalManifestFile.isAbsolute() )
<a class="jxr_linenumber" name="L1112" href="#L1112">1112</a>                 {
<a class="jxr_linenumber" name="L1113" href="#L1113">1113</a>                     externalManifestFile = <strong class="jxr_keyword">new</strong> File( currentProject.getBasedir(), externalManifestFile.getPath() );
<a class="jxr_linenumber" name="L1114" href="#L1114">1114</a>                 }
<a class="jxr_linenumber" name="L1115" href="#L1115">1115</a>                 <strong class="jxr_keyword">if</strong> ( externalManifestFile.exists() &amp;&amp; !externalManifestFile.equals( <strong class="jxr_keyword">new</strong> File( manifestLocation, <span class="jxr_string">"MANIFEST.MF"</span> ) ) )
<a class="jxr_linenumber" name="L1116" href="#L1116">1116</a>                 {
<a class="jxr_linenumber" name="L1117" href="#L1117">1117</a>                     InputStream mis = <strong class="jxr_keyword">new</strong> FileInputStream( externalManifestFile );
<a class="jxr_linenumber" name="L1118" href="#L1118">1118</a>                     mavenManifest.read( mis );
<a class="jxr_linenumber" name="L1119" href="#L1119">1119</a>                     mis.close();
<a class="jxr_linenumber" name="L1120" href="#L1120">1120</a>                 }
<a class="jxr_linenumber" name="L1121" href="#L1121">1121</a>             }
<a class="jxr_linenumber" name="L1122" href="#L1122">1122</a> 
<a class="jxr_linenumber" name="L1123" href="#L1123">1123</a>             <em class="jxr_comment">// Then apply customized entries from the jar plugin; note: manifest encoding is UTF8</em>
<a class="jxr_linenumber" name="L1124" href="#L1124">1124</a>             mavenManifest.read( <strong class="jxr_keyword">new</strong> ByteArrayInputStream( mavenManifestText.getBytes( <span class="jxr_string">"UTF8"</span> ) ) );
<a class="jxr_linenumber" name="L1125" href="#L1125">1125</a> 
<a class="jxr_linenumber" name="L1126" href="#L1126">1126</a>             <strong class="jxr_keyword">if</strong> ( !archiveConfig.isManifestSectionsEmpty() )
<a class="jxr_linenumber" name="L1127" href="#L1127">1127</a>             {
<a class="jxr_linenumber" name="L1128" href="#L1128">1128</a>                 <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L1129" href="#L1129">1129</a> <em class="jxr_comment">                 * Add customized manifest sections (for some reason MavenArchiver doesn't do this for us)</em>
<a class="jxr_linenumber" name="L1130" href="#L1130">1130</a> <em class="jxr_comment">                 */</em>
<a class="jxr_linenumber" name="L1131" href="#L1131">1131</a>                 List&lt;ManifestSection&gt; sections = archiveConfig.getManifestSections();
<a class="jxr_linenumber" name="L1132" href="#L1132">1132</a>                 <strong class="jxr_keyword">for</strong> ( Iterator&lt;ManifestSection&gt; i = sections.iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L1133" href="#L1133">1133</a>                 {
<a class="jxr_linenumber" name="L1134" href="#L1134">1134</a>                     ManifestSection section = i.next();
<a class="jxr_linenumber" name="L1135" href="#L1135">1135</a>                     Attributes attributes = <strong class="jxr_keyword">new</strong> Attributes();
<a class="jxr_linenumber" name="L1136" href="#L1136">1136</a> 
<a class="jxr_linenumber" name="L1137" href="#L1137">1137</a>                     <strong class="jxr_keyword">if</strong> ( !section.isManifestEntriesEmpty() )
<a class="jxr_linenumber" name="L1138" href="#L1138">1138</a>                     {
<a class="jxr_linenumber" name="L1139" href="#L1139">1139</a>                         Map&lt;String, String&gt; entries = section.getManifestEntries();
<a class="jxr_linenumber" name="L1140" href="#L1140">1140</a>                         <strong class="jxr_keyword">for</strong> ( Iterator&lt;Map.Entry&lt;String, String&gt;&gt; j = entries.entrySet().iterator(); j.hasNext(); )
<a class="jxr_linenumber" name="L1141" href="#L1141">1141</a>                         {
<a class="jxr_linenumber" name="L1142" href="#L1142">1142</a>                             Map.Entry&lt;String, String&gt; entry = j.next();
<a class="jxr_linenumber" name="L1143" href="#L1143">1143</a>                             attributes.putValue( entry.getKey(), entry.getValue() );
<a class="jxr_linenumber" name="L1144" href="#L1144">1144</a>                         }
<a class="jxr_linenumber" name="L1145" href="#L1145">1145</a>                     }
<a class="jxr_linenumber" name="L1146" href="#L1146">1146</a> 
<a class="jxr_linenumber" name="L1147" href="#L1147">1147</a>                     mavenManifest.getEntries().put( section.getName(), attributes );
<a class="jxr_linenumber" name="L1148" href="#L1148">1148</a>                 }
<a class="jxr_linenumber" name="L1149" href="#L1149">1149</a>             }
<a class="jxr_linenumber" name="L1150" href="#L1150">1150</a> 
<a class="jxr_linenumber" name="L1151" href="#L1151">1151</a>             Attributes mainMavenAttributes = mavenManifest.getMainAttributes();
<a class="jxr_linenumber" name="L1152" href="#L1152">1152</a>             mainMavenAttributes.putValue( <span class="jxr_string">"Created-By"</span>, <span class="jxr_string">"Apache Maven Bundle Plugin"</span> );
<a class="jxr_linenumber" name="L1153" href="#L1153">1153</a> 
<a class="jxr_linenumber" name="L1154" href="#L1154">1154</a>             String[] removeHeaders = builder.getProperty( Constants.REMOVEHEADERS, <span class="jxr_string">""</span> ).split( <span class="jxr_string">","</span> );
<a class="jxr_linenumber" name="L1155" href="#L1155">1155</a> 
<a class="jxr_linenumber" name="L1156" href="#L1156">1156</a>             <em class="jxr_comment">// apply -removeheaders to the custom manifest</em>
<a class="jxr_linenumber" name="L1157" href="#L1157">1157</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; removeHeaders.length; i++ )
<a class="jxr_linenumber" name="L1158" href="#L1158">1158</a>             {
<a class="jxr_linenumber" name="L1159" href="#L1159">1159</a>                 <strong class="jxr_keyword">for</strong> ( Iterator&lt;Object&gt; j = mainMavenAttributes.keySet().iterator(); j.hasNext(); )
<a class="jxr_linenumber" name="L1160" href="#L1160">1160</a>                 {
<a class="jxr_linenumber" name="L1161" href="#L1161">1161</a>                     <strong class="jxr_keyword">if</strong> ( j.next().toString().matches( removeHeaders[i].trim() ) )
<a class="jxr_linenumber" name="L1162" href="#L1162">1162</a>                     {
<a class="jxr_linenumber" name="L1163" href="#L1163">1163</a>                         j.remove();
<a class="jxr_linenumber" name="L1164" href="#L1164">1164</a>                     }
<a class="jxr_linenumber" name="L1165" href="#L1165">1165</a>                 }
<a class="jxr_linenumber" name="L1166" href="#L1166">1166</a>             }
<a class="jxr_linenumber" name="L1167" href="#L1167">1167</a> 
<a class="jxr_linenumber" name="L1168" href="#L1168">1168</a>             <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L1169" href="#L1169">1169</a> <em class="jxr_comment">             * Overlay generated bundle manifest with customized entries</em>
<a class="jxr_linenumber" name="L1170" href="#L1170">1170</a> <em class="jxr_comment">             */</em>
<a class="jxr_linenumber" name="L1171" href="#L1171">1171</a>             Properties properties = builder.getProperties();
<a class="jxr_linenumber" name="L1172" href="#L1172">1172</a>             Manifest bundleManifest = jar.getManifest();
<a class="jxr_linenumber" name="L1173" href="#L1173">1173</a>             <strong class="jxr_keyword">if</strong> ( properties.containsKey( <span class="jxr_string">"Merge-Headers"</span> ) )
<a class="jxr_linenumber" name="L1174" href="#L1174">1174</a>             {
<a class="jxr_linenumber" name="L1175" href="#L1175">1175</a>                 Instructions instructions = <strong class="jxr_keyword">new</strong> Instructions( ExtList.from(builder.getProperty(<span class="jxr_string">"Merge-Headers"</span>)) );
<a class="jxr_linenumber" name="L1176" href="#L1176">1176</a>                 mergeManifest( instructions, bundleManifest, mavenManifest );
<a class="jxr_linenumber" name="L1177" href="#L1177">1177</a>             }
<a class="jxr_linenumber" name="L1178" href="#L1178">1178</a>             <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1179" href="#L1179">1179</a>             {
<a class="jxr_linenumber" name="L1180" href="#L1180">1180</a>                 bundleManifest.getMainAttributes().putAll( mainMavenAttributes );
<a class="jxr_linenumber" name="L1181" href="#L1181">1181</a>                 bundleManifest.getEntries().putAll( mavenManifest.getEntries() );
<a class="jxr_linenumber" name="L1182" href="#L1182">1182</a>             }
<a class="jxr_linenumber" name="L1183" href="#L1183">1183</a> 
<a class="jxr_linenumber" name="L1184" href="#L1184">1184</a>             <em class="jxr_comment">// adjust the import package attributes so that optional dependencies use</em>
<a class="jxr_linenumber" name="L1185" href="#L1185">1185</a>             <em class="jxr_comment">// optional resolution.</em>
<a class="jxr_linenumber" name="L1186" href="#L1186">1186</a>             String importPackages = bundleManifest.getMainAttributes().getValue( <span class="jxr_string">"Import-Package"</span> );
<a class="jxr_linenumber" name="L1187" href="#L1187">1187</a>             <strong class="jxr_keyword">if</strong> ( importPackages != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1188" href="#L1188">1188</a>             {
<a class="jxr_linenumber" name="L1189" href="#L1189">1189</a>                 Set optionalPackages = getOptionalPackages( currentProject, dependencyGraph );
<a class="jxr_linenumber" name="L1190" href="#L1190">1190</a> 
<a class="jxr_linenumber" name="L1191" href="#L1191">1191</a>                 Map&lt;String, ? <strong class="jxr_keyword">extends</strong> Map&lt;String, String&gt;&gt; values;
<a class="jxr_linenumber" name="L1192" href="#L1192">1192</a>                 <strong class="jxr_keyword">try</strong> (Analyzer analyzer = <strong class="jxr_keyword">new</strong> Analyzer()) {
<a class="jxr_linenumber" name="L1193" href="#L1193">1193</a>                     values = analyzer.parseHeader( importPackages );
<a class="jxr_linenumber" name="L1194" href="#L1194">1194</a>                 }
<a class="jxr_linenumber" name="L1195" href="#L1195">1195</a>                 <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, ? <strong class="jxr_keyword">extends</strong> Map&lt;String, String&gt;&gt; entry : values.entrySet() )
<a class="jxr_linenumber" name="L1196" href="#L1196">1196</a>                 {
<a class="jxr_linenumber" name="L1197" href="#L1197">1197</a>                     String pkg = entry.getKey();
<a class="jxr_linenumber" name="L1198" href="#L1198">1198</a>                     Map&lt;String, String&gt; options = entry.getValue();
<a class="jxr_linenumber" name="L1199" href="#L1199">1199</a>                     <strong class="jxr_keyword">if</strong> ( !options.containsKey( <span class="jxr_string">"resolution:"</span> ) &amp;&amp; optionalPackages.contains( pkg ) )
<a class="jxr_linenumber" name="L1200" href="#L1200">1200</a>                     {
<a class="jxr_linenumber" name="L1201" href="#L1201">1201</a>                         options.put( <span class="jxr_string">"resolution:"</span>, <span class="jxr_string">"optional"</span> );
<a class="jxr_linenumber" name="L1202" href="#L1202">1202</a>                     }
<a class="jxr_linenumber" name="L1203" href="#L1203">1203</a>                 }
<a class="jxr_linenumber" name="L1204" href="#L1204">1204</a>                 String result = Processor.printClauses( values );
<a class="jxr_linenumber" name="L1205" href="#L1205">1205</a>                 bundleManifest.getMainAttributes().putValue( <span class="jxr_string">"Import-Package"</span>, result );
<a class="jxr_linenumber" name="L1206" href="#L1206">1206</a>             }
<a class="jxr_linenumber" name="L1207" href="#L1207">1207</a> 
<a class="jxr_linenumber" name="L1208" href="#L1208">1208</a>             jar.setManifest( bundleManifest );
<a class="jxr_linenumber" name="L1209" href="#L1209">1209</a>         }
<a class="jxr_linenumber" name="L1210" href="#L1210">1210</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
<a class="jxr_linenumber" name="L1211" href="#L1211">1211</a>         {
<a class="jxr_linenumber" name="L1212" href="#L1212">1212</a>             getLog().warn( <span class="jxr_string">"Unable to merge Maven manifest: "</span> + e.getLocalizedMessage() );
<a class="jxr_linenumber" name="L1213" href="#L1213">1213</a>         }
<a class="jxr_linenumber" name="L1214" href="#L1214">1214</a> 
<a class="jxr_linenumber" name="L1215" href="#L1215">1215</a>         <strong class="jxr_keyword">if</strong> ( addMavenDescriptor )
<a class="jxr_linenumber" name="L1216" href="#L1216">1216</a>         {
<a class="jxr_linenumber" name="L1217" href="#L1217">1217</a>             doMavenMetadata( currentProject, jar );
<a class="jxr_linenumber" name="L1218" href="#L1218">1218</a>         }
<a class="jxr_linenumber" name="L1219" href="#L1219">1219</a> 
<a class="jxr_linenumber" name="L1220" href="#L1220">1220</a>         <strong class="jxr_keyword">if</strong> ( getLog().isDebugEnabled() )
<a class="jxr_linenumber" name="L1221" href="#L1221">1221</a>         {
<a class="jxr_linenumber" name="L1222" href="#L1222">1222</a>             getLog().debug( <span class="jxr_string">"Final Manifest:"</span> + NL + dumpManifest( jar.getManifest(), <strong class="jxr_keyword">new</strong> StringBuilder() ) );
<a class="jxr_linenumber" name="L1223" href="#L1223">1223</a>         }
<a class="jxr_linenumber" name="L1224" href="#L1224">1224</a> 
<a class="jxr_linenumber" name="L1225" href="#L1225">1225</a>         builder.setJar( jar );
<a class="jxr_linenumber" name="L1226" href="#L1226">1226</a>     }
<a class="jxr_linenumber" name="L1227" href="#L1227">1227</a> 
<a class="jxr_linenumber" name="L1228" href="#L1228">1228</a> 
<a class="jxr_linenumber" name="L1229" href="#L1229">1229</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> mergeManifest( Instructions instructions, Manifest... manifests ) <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="L1230" href="#L1230">1230</a>     {
<a class="jxr_linenumber" name="L1231" href="#L1231">1231</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = manifests.length - 2; i &gt;= 0; i-- )
<a class="jxr_linenumber" name="L1232" href="#L1232">1232</a>         {
<a class="jxr_linenumber" name="L1233" href="#L1233">1233</a>             Manifest mergedManifest = manifests[i];
<a class="jxr_linenumber" name="L1234" href="#L1234">1234</a>             Manifest manifest = manifests[i + 1];
<a class="jxr_linenumber" name="L1235" href="#L1235">1235</a>             Attributes mergedMainAttributes = mergedManifest.getMainAttributes();
<a class="jxr_linenumber" name="L1236" href="#L1236">1236</a>             Attributes mainAttributes = manifest.getMainAttributes();
<a class="jxr_linenumber" name="L1237" href="#L1237">1237</a>             Attributes filteredMainAttributes = filterAttributes( instructions, mainAttributes, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1238" href="#L1238">1238</a>             <strong class="jxr_keyword">if</strong> ( !filteredMainAttributes.isEmpty() )
<a class="jxr_linenumber" name="L1239" href="#L1239">1239</a>             {
<a class="jxr_linenumber" name="L1240" href="#L1240">1240</a>                 mergeAttributes( mergedMainAttributes, filteredMainAttributes );
<a class="jxr_linenumber" name="L1241" href="#L1241">1241</a>             }
<a class="jxr_linenumber" name="L1242" href="#L1242">1242</a>             Map&lt;String, Attributes&gt; mergedEntries = mergedManifest.getEntries();
<a class="jxr_linenumber" name="L1243" href="#L1243">1243</a>             Map&lt;String, Attributes&gt; entries = manifest.getEntries();
<a class="jxr_linenumber" name="L1244" href="#L1244">1244</a>             <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, Attributes&gt; entry : entries.entrySet() )
<a class="jxr_linenumber" name="L1245" href="#L1245">1245</a>             {
<a class="jxr_linenumber" name="L1246" href="#L1246">1246</a>                 String name = entry.getKey();
<a class="jxr_linenumber" name="L1247" href="#L1247">1247</a>                 Attributes attributes = entry.getValue();
<a class="jxr_linenumber" name="L1248" href="#L1248">1248</a>                 Attributes filteredAttributes = filterAttributes( instructions, attributes, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1249" href="#L1249">1249</a>                 <strong class="jxr_keyword">if</strong> ( !filteredAttributes.isEmpty() )
<a class="jxr_linenumber" name="L1250" href="#L1250">1250</a>                 {
<a class="jxr_linenumber" name="L1251" href="#L1251">1251</a>                     Attributes mergedAttributes = mergedManifest.getAttributes( name );
<a class="jxr_linenumber" name="L1252" href="#L1252">1252</a>                     <strong class="jxr_keyword">if</strong> ( mergedAttributes != <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L1253" href="#L1253">1253</a>                     {
<a class="jxr_linenumber" name="L1254" href="#L1254">1254</a>                         mergeAttributes(mergedAttributes, filteredAttributes);
<a class="jxr_linenumber" name="L1255" href="#L1255">1255</a>                     }
<a class="jxr_linenumber" name="L1256" href="#L1256">1256</a>                     <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1257" href="#L1257">1257</a>                     {
<a class="jxr_linenumber" name="L1258" href="#L1258">1258</a>                         mergedEntries.put(name, filteredAttributes);
<a class="jxr_linenumber" name="L1259" href="#L1259">1259</a>                     }
<a class="jxr_linenumber" name="L1260" href="#L1260">1260</a>                 }
<a class="jxr_linenumber" name="L1261" href="#L1261">1261</a>             }
<a class="jxr_linenumber" name="L1262" href="#L1262">1262</a>         }
<a class="jxr_linenumber" name="L1263" href="#L1263">1263</a>     }
<a class="jxr_linenumber" name="L1264" href="#L1264">1264</a> 
<a class="jxr_linenumber" name="L1265" href="#L1265">1265</a> 
<a class="jxr_linenumber" name="L1266" href="#L1266">1266</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1267" href="#L1267">1267</a> <em class="jxr_javadoccomment">     * @see Analyzer#filter</em>
<a class="jxr_linenumber" name="L1268" href="#L1268">1268</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1269" href="#L1269">1269</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Attributes filterAttributes(Instructions instructions, Attributes source, Set&lt;Instruction&gt; nomatch) {
<a class="jxr_linenumber" name="L1270" href="#L1270">1270</a>         Attributes result = <strong class="jxr_keyword">new</strong> Attributes();
<a class="jxr_linenumber" name="L1271" href="#L1271">1271</a>         Map&lt;String, Object&gt; keys = <strong class="jxr_keyword">new</strong> TreeMap&lt;String, Object&gt;();
<a class="jxr_linenumber" name="L1272" href="#L1272">1272</a>         <strong class="jxr_keyword">for</strong> ( Object key : source.keySet() )
<a class="jxr_linenumber" name="L1273" href="#L1273">1273</a>         {
<a class="jxr_linenumber" name="L1274" href="#L1274">1274</a>             keys.put( key.toString(), key );
<a class="jxr_linenumber" name="L1275" href="#L1275">1275</a>         }
<a class="jxr_linenumber" name="L1276" href="#L1276">1276</a> 
<a class="jxr_linenumber" name="L1277" href="#L1277">1277</a>         List&lt;Instruction&gt; filters = <strong class="jxr_keyword">new</strong> ArrayList&lt;Instruction&gt;( instructions.keySet() );
<a class="jxr_linenumber" name="L1278" href="#L1278">1278</a>         <strong class="jxr_keyword">if</strong> (nomatch == <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L1279" href="#L1279">1279</a>         {
<a class="jxr_linenumber" name="L1280" href="#L1280">1280</a>             nomatch = Create.set();
<a class="jxr_linenumber" name="L1281" href="#L1281">1281</a>         }
<a class="jxr_linenumber" name="L1282" href="#L1282">1282</a>         <strong class="jxr_keyword">for</strong> ( Instruction instruction : filters ) {
<a class="jxr_linenumber" name="L1283" href="#L1283">1283</a>             <strong class="jxr_keyword">boolean</strong> match = false;
<a class="jxr_linenumber" name="L1284" href="#L1284">1284</a>             <strong class="jxr_keyword">for</strong> (Iterator&lt;Map.Entry&lt;String, Object&gt;&gt; i = keys.entrySet().iterator(); i.hasNext();)
<a class="jxr_linenumber" name="L1285" href="#L1285">1285</a>             {
<a class="jxr_linenumber" name="L1286" href="#L1286">1286</a>                 Map.Entry&lt;String, Object&gt; entry = i.next();
<a class="jxr_linenumber" name="L1287" href="#L1287">1287</a>                 String key = entry.getKey();
<a class="jxr_linenumber" name="L1288" href="#L1288">1288</a>                 <strong class="jxr_keyword">if</strong> ( instruction.matches( key ) )
<a class="jxr_linenumber" name="L1289" href="#L1289">1289</a>                 {
<a class="jxr_linenumber" name="L1290" href="#L1290">1290</a>                     match = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L1291" href="#L1291">1291</a>                     <strong class="jxr_keyword">if</strong> (!instruction.isNegated()) {
<a class="jxr_linenumber" name="L1292" href="#L1292">1292</a>                         Object name = entry.getValue();
<a class="jxr_linenumber" name="L1293" href="#L1293">1293</a>                         Object value = source.get( name );
<a class="jxr_linenumber" name="L1294" href="#L1294">1294</a>                         result.put( name, value );
<a class="jxr_linenumber" name="L1295" href="#L1295">1295</a>                     }
<a class="jxr_linenumber" name="L1296" href="#L1296">1296</a>                     i.remove(); <em class="jxr_comment">// Can never match again for another pattern</em>
<a class="jxr_linenumber" name="L1297" href="#L1297">1297</a>                 }
<a class="jxr_linenumber" name="L1298" href="#L1298">1298</a>             }
<a class="jxr_linenumber" name="L1299" href="#L1299">1299</a>             <strong class="jxr_keyword">if</strong> (!match &amp;&amp; !instruction.isAny())
<a class="jxr_linenumber" name="L1300" href="#L1300">1300</a>                 nomatch.add(instruction);
<a class="jxr_linenumber" name="L1301" href="#L1301">1301</a>         }
<a class="jxr_linenumber" name="L1302" href="#L1302">1302</a> 
<a class="jxr_linenumber" name="L1303" href="#L1303">1303</a>         <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L1304" href="#L1304">1304</a> <em class="jxr_comment">         * Tricky. If we have umatched instructions they might indicate that we</em>
<a class="jxr_linenumber" name="L1305" href="#L1305">1305</a> <em class="jxr_comment">         * want to have multiple decorators for the same package. So we check</em>
<a class="jxr_linenumber" name="L1306" href="#L1306">1306</a> <em class="jxr_comment">         * the unmatched against the result list. If then then match and have</em>
<a class="jxr_linenumber" name="L1307" href="#L1307">1307</a> <em class="jxr_comment">         * actually interesting properties then we merge them</em>
<a class="jxr_linenumber" name="L1308" href="#L1308">1308</a> <em class="jxr_comment">         */</em>
<a class="jxr_linenumber" name="L1309" href="#L1309">1309</a> 
<a class="jxr_linenumber" name="L1310" href="#L1310">1310</a>         <strong class="jxr_keyword">for</strong> (Iterator&lt;Instruction&gt; i = nomatch.iterator(); i.hasNext();) {
<a class="jxr_linenumber" name="L1311" href="#L1311">1311</a>             Instruction instruction = i.next();
<a class="jxr_linenumber" name="L1312" href="#L1312">1312</a> 
<a class="jxr_linenumber" name="L1313" href="#L1313">1313</a>             <em class="jxr_comment">// We assume the user knows what he is</em>
<a class="jxr_linenumber" name="L1314" href="#L1314">1314</a>             <em class="jxr_comment">// doing and inserted a literal. So</em>
<a class="jxr_linenumber" name="L1315" href="#L1315">1315</a>             <em class="jxr_comment">// we ignore any not matched literals</em>
<a class="jxr_linenumber" name="L1316" href="#L1316">1316</a>             <em class="jxr_comment">// #252, we should not be negated to make it a constant</em>
<a class="jxr_linenumber" name="L1317" href="#L1317">1317</a>             <strong class="jxr_keyword">if</strong> (instruction.isLiteral() &amp;&amp; !instruction.isNegated()) {
<a class="jxr_linenumber" name="L1318" href="#L1318">1318</a>                 Object key = keys.get( instruction.getLiteral() );
<a class="jxr_linenumber" name="L1319" href="#L1319">1319</a>                 <strong class="jxr_keyword">if</strong> ( key != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1320" href="#L1320">1320</a>                 {
<a class="jxr_linenumber" name="L1321" href="#L1321">1321</a>                     Object value = source.get( key );
<a class="jxr_linenumber" name="L1322" href="#L1322">1322</a>                     result.put( key, value );
<a class="jxr_linenumber" name="L1323" href="#L1323">1323</a>                 }
<a class="jxr_linenumber" name="L1324" href="#L1324">1324</a>                 i.remove();
<a class="jxr_linenumber" name="L1325" href="#L1325">1325</a>                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L1326" href="#L1326">1326</a>             }
<a class="jxr_linenumber" name="L1327" href="#L1327">1327</a> 
<a class="jxr_linenumber" name="L1328" href="#L1328">1328</a>             <em class="jxr_comment">// Not matching a negated instruction looks</em>
<a class="jxr_linenumber" name="L1329" href="#L1329">1329</a>             <em class="jxr_comment">// like an error ... Though so, but</em>
<a class="jxr_linenumber" name="L1330" href="#L1330">1330</a>             <em class="jxr_comment">// in the second phase of Export-Package</em>
<a class="jxr_linenumber" name="L1331" href="#L1331">1331</a>             <em class="jxr_comment">// the !package will never match anymore.</em>
<a class="jxr_linenumber" name="L1332" href="#L1332">1332</a>             <strong class="jxr_keyword">if</strong> (instruction.isNegated()) {
<a class="jxr_linenumber" name="L1333" href="#L1333">1333</a>                 i.remove();
<a class="jxr_linenumber" name="L1334" href="#L1334">1334</a>                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L1335" href="#L1335">1335</a>             }
<a class="jxr_linenumber" name="L1336" href="#L1336">1336</a> 
<a class="jxr_linenumber" name="L1337" href="#L1337">1337</a>             <em class="jxr_comment">// An optional instruction should not generate</em>
<a class="jxr_linenumber" name="L1338" href="#L1338">1338</a>             <em class="jxr_comment">// an error</em>
<a class="jxr_linenumber" name="L1339" href="#L1339">1339</a>             <strong class="jxr_keyword">if</strong> (instruction.isOptional()) {
<a class="jxr_linenumber" name="L1340" href="#L1340">1340</a>                 i.remove();
<a class="jxr_linenumber" name="L1341" href="#L1341">1341</a>                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L1342" href="#L1342">1342</a>             }
<a class="jxr_linenumber" name="L1343" href="#L1343">1343</a>         }
<a class="jxr_linenumber" name="L1344" href="#L1344">1344</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="L1345" href="#L1345">1345</a>     }
<a class="jxr_linenumber" name="L1346" href="#L1346">1346</a> 
<a class="jxr_linenumber" name="L1347" href="#L1347">1347</a> 
<a class="jxr_linenumber" name="L1348" href="#L1348">1348</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> mergeAttributes( Attributes... attributesArray ) <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="L1349" href="#L1349">1349</a>     {
<a class="jxr_linenumber" name="L1350" href="#L1350">1350</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = attributesArray.length - 2; i &gt;= 0; i-- )
<a class="jxr_linenumber" name="L1351" href="#L1351">1351</a>         {
<a class="jxr_linenumber" name="L1352" href="#L1352">1352</a>             Attributes mergedAttributes = attributesArray[i];
<a class="jxr_linenumber" name="L1353" href="#L1353">1353</a>             Attributes attributes = attributesArray[i + 1];
<a class="jxr_linenumber" name="L1354" href="#L1354">1354</a>             <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;Object, Object&gt; entry : attributes.entrySet() )
<a class="jxr_linenumber" name="L1355" href="#L1355">1355</a>             {
<a class="jxr_linenumber" name="L1356" href="#L1356">1356</a>                 Object name = entry.getKey();
<a class="jxr_linenumber" name="L1357" href="#L1357">1357</a>                 String value = (String) entry.getValue();
<a class="jxr_linenumber" name="L1358" href="#L1358">1358</a>                 String oldValue = (String) mergedAttributes.put( name, value );
<a class="jxr_linenumber" name="L1359" href="#L1359">1359</a>                 <strong class="jxr_keyword">if</strong> ( oldValue != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1360" href="#L1360">1360</a>                 {
<a class="jxr_linenumber" name="L1361" href="#L1361">1361</a>                     Parameters mergedClauses = OSGiHeader.parseHeader(oldValue);
<a class="jxr_linenumber" name="L1362" href="#L1362">1362</a>                     Parameters clauses = OSGiHeader.parseHeader( value );
<a class="jxr_linenumber" name="L1363" href="#L1363">1363</a>                     <strong class="jxr_keyword">if</strong> ( !mergedClauses.isEqual( clauses) )
<a class="jxr_linenumber" name="L1364" href="#L1364">1364</a>                     {
<a class="jxr_linenumber" name="L1365" href="#L1365">1365</a>                         <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String, Attrs&gt; clauseEntry : clauses.entrySet() )
<a class="jxr_linenumber" name="L1366" href="#L1366">1366</a>                         {
<a class="jxr_linenumber" name="L1367" href="#L1367">1367</a>                             String clause = clauseEntry.getKey();
<a class="jxr_linenumber" name="L1368" href="#L1368">1368</a>                             Attrs attrs = clauseEntry.getValue();
<a class="jxr_linenumber" name="L1369" href="#L1369">1369</a>                             Attrs mergedAttrs = mergedClauses.get( clause );
<a class="jxr_linenumber" name="L1370" href="#L1370">1370</a>                             <strong class="jxr_keyword">if</strong> ( mergedAttrs == <strong class="jxr_keyword">null</strong>)
<a class="jxr_linenumber" name="L1371" href="#L1371">1371</a>                             {
<a class="jxr_linenumber" name="L1372" href="#L1372">1372</a>                                 mergedClauses.put( clause, attrs );
<a class="jxr_linenumber" name="L1373" href="#L1373">1373</a>                             }
<a class="jxr_linenumber" name="L1374" href="#L1374">1374</a>                             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( !mergedAttrs.isEqual(attrs) )
<a class="jxr_linenumber" name="L1375" href="#L1375">1375</a>                             {
<a class="jxr_linenumber" name="L1376" href="#L1376">1376</a>                                 <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;String,String&gt; adentry : attrs.entrySet() )
<a class="jxr_linenumber" name="L1377" href="#L1377">1377</a>                                 {
<a class="jxr_linenumber" name="L1378" href="#L1378">1378</a>                                     String adname = adentry.getKey();
<a class="jxr_linenumber" name="L1379" href="#L1379">1379</a>                                     String ad = adentry.getValue();
<a class="jxr_linenumber" name="L1380" href="#L1380">1380</a>                                     <strong class="jxr_keyword">if</strong> ( mergedAttrs.containsKey( adname ) )
<a class="jxr_linenumber" name="L1381" href="#L1381">1381</a>                                     {
<a class="jxr_linenumber" name="L1382" href="#L1382">1382</a>                                         Attrs.Type type = attrs.getType( adname );
<a class="jxr_linenumber" name="L1383" href="#L1383">1383</a>                                         <strong class="jxr_keyword">switch</strong> (type)
<a class="jxr_linenumber" name="L1384" href="#L1384">1384</a>                                         {
<a class="jxr_linenumber" name="L1385" href="#L1385">1385</a>                                             <strong class="jxr_keyword">case</strong> VERSIONS:
<a class="jxr_linenumber" name="L1386" href="#L1386">1386</a>                                             <strong class="jxr_keyword">case</strong> STRINGS:
<a class="jxr_linenumber" name="L1387" href="#L1387">1387</a>                                             <strong class="jxr_keyword">case</strong> LONGS:
<a class="jxr_linenumber" name="L1388" href="#L1388">1388</a>                                             <strong class="jxr_keyword">case</strong> DOUBLES:
<a class="jxr_linenumber" name="L1389" href="#L1389">1389</a>                                                 ExtList&lt;String&gt; mergedAd = ExtList.from( mergedAttrs.get( adname ) );
<a class="jxr_linenumber" name="L1390" href="#L1390">1390</a>                                                 ExtList.from( ad ).addAll( ExtList.from( ad ) );
<a class="jxr_linenumber" name="L1391" href="#L1391">1391</a>                                                 mergedAttrs.put(adname, mergedAd.join() );
<a class="jxr_linenumber" name="L1392" href="#L1392">1392</a>                                                 <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="L1393" href="#L1393">1393</a>                                         }
<a class="jxr_linenumber" name="L1394" href="#L1394">1394</a>                                     }
<a class="jxr_linenumber" name="L1395" href="#L1395">1395</a>                                     <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1396" href="#L1396">1396</a>                                     {
<a class="jxr_linenumber" name="L1397" href="#L1397">1397</a>                                         mergedAttrs.put( adname, ad );
<a class="jxr_linenumber" name="L1398" href="#L1398">1398</a>                                     }
<a class="jxr_linenumber" name="L1399" href="#L1399">1399</a>                                 }
<a class="jxr_linenumber" name="L1400" href="#L1400">1400</a>                             }
<a class="jxr_linenumber" name="L1401" href="#L1401">1401</a>                         }
<a class="jxr_linenumber" name="L1402" href="#L1402">1402</a>                         mergedAttributes.put( name, Processor.printClauses( mergedClauses ) );
<a class="jxr_linenumber" name="L1403" href="#L1403">1403</a>                     }
<a class="jxr_linenumber" name="L1404" href="#L1404">1404</a>                 }
<a class="jxr_linenumber" name="L1405" href="#L1405">1405</a>             }
<a class="jxr_linenumber" name="L1406" href="#L1406">1406</a>         }
<a class="jxr_linenumber" name="L1407" href="#L1407">1407</a>     }
<a class="jxr_linenumber" name="L1408" href="#L1408">1408</a> 
<a class="jxr_linenumber" name="L1409" href="#L1409">1409</a> 
<a class="jxr_linenumber" name="L1410" href="#L1410">1410</a>     <strong class="jxr_keyword">protected</strong> Set&lt;String&gt; getOptionalPackages( MavenProject currentProject, DependencyNode dependencyGraph ) <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException
<a class="jxr_linenumber" name="L1411" href="#L1411">1411</a>     {
<a class="jxr_linenumber" name="L1412" href="#L1412">1412</a>         ArrayList&lt;Artifact&gt; inscope = <strong class="jxr_keyword">new</strong> ArrayList&lt;Artifact&gt;();
<a class="jxr_linenumber" name="L1413" href="#L1413">1413</a>         <strong class="jxr_keyword">final</strong> Collection&lt;Artifact&gt; artifacts = getSelectedDependencies( dependencyGraph, currentProject.getArtifacts() );
<a class="jxr_linenumber" name="L1414" href="#L1414">1414</a>         <strong class="jxr_keyword">for</strong> ( Iterator&lt;Artifact&gt; it = artifacts.iterator(); it.hasNext(); )
<a class="jxr_linenumber" name="L1415" href="#L1415">1415</a>         {
<a class="jxr_linenumber" name="L1416" href="#L1416">1416</a>             Artifact artifact = it.next();
<a class="jxr_linenumber" name="L1417" href="#L1417">1417</a>             <strong class="jxr_keyword">if</strong> ( artifact.getArtifactHandler().isAddedToClasspath() )
<a class="jxr_linenumber" name="L1418" href="#L1418">1418</a>             {
<a class="jxr_linenumber" name="L1419" href="#L1419">1419</a>                 inscope.add( artifact );
<a class="jxr_linenumber" name="L1420" href="#L1420">1420</a>             }
<a class="jxr_linenumber" name="L1421" href="#L1421">1421</a>         }
<a class="jxr_linenumber" name="L1422" href="#L1422">1422</a> 
<a class="jxr_linenumber" name="L1423" href="#L1423">1423</a>         HashSet&lt;String&gt; optionalArtifactIds = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;();
<a class="jxr_linenumber" name="L1424" href="#L1424">1424</a>         <strong class="jxr_keyword">for</strong> ( Iterator&lt;Artifact&gt; it = inscope.iterator(); it.hasNext(); )
<a class="jxr_linenumber" name="L1425" href="#L1425">1425</a>         {
<a class="jxr_linenumber" name="L1426" href="#L1426">1426</a>             Artifact artifact = it.next();
<a class="jxr_linenumber" name="L1427" href="#L1427">1427</a>             <strong class="jxr_keyword">if</strong> ( artifact.isOptional() )
<a class="jxr_linenumber" name="L1428" href="#L1428">1428</a>             {
<a class="jxr_linenumber" name="L1429" href="#L1429">1429</a>                 String id = artifact.toString();
<a class="jxr_linenumber" name="L1430" href="#L1430">1430</a>                 <strong class="jxr_keyword">if</strong> ( artifact.getScope() != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1431" href="#L1431">1431</a>                 {
<a class="jxr_linenumber" name="L1432" href="#L1432">1432</a>                     <em class="jxr_comment">// strip the scope...</em>
<a class="jxr_linenumber" name="L1433" href="#L1433">1433</a>                     id = id.replaceFirst( <span class="jxr_string">":[^:]*$"</span>, <span class="jxr_string">""</span> );
<a class="jxr_linenumber" name="L1434" href="#L1434">1434</a>                 }
<a class="jxr_linenumber" name="L1435" href="#L1435">1435</a>                 optionalArtifactIds.add( id );
<a class="jxr_linenumber" name="L1436" href="#L1436">1436</a>             }
<a class="jxr_linenumber" name="L1437" href="#L1437">1437</a> 
<a class="jxr_linenumber" name="L1438" href="#L1438">1438</a>         }
<a class="jxr_linenumber" name="L1439" href="#L1439">1439</a> 
<a class="jxr_linenumber" name="L1440" href="#L1440">1440</a>         HashSet&lt;String&gt; required = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;();
<a class="jxr_linenumber" name="L1441" href="#L1441">1441</a>         HashSet&lt;String&gt; optional = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;();
<a class="jxr_linenumber" name="L1442" href="#L1442">1442</a>         <strong class="jxr_keyword">for</strong> ( Iterator&lt;Artifact&gt; it = inscope.iterator(); it.hasNext(); )
<a class="jxr_linenumber" name="L1443" href="#L1443">1443</a>         {
<a class="jxr_linenumber" name="L1444" href="#L1444">1444</a>             Artifact artifact = it.next();
<a class="jxr_linenumber" name="L1445" href="#L1445">1445</a>             File file = getFile( artifact );
<a class="jxr_linenumber" name="L1446" href="#L1446">1446</a>             <strong class="jxr_keyword">if</strong> ( file == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1447" href="#L1447">1447</a>             {
<a class="jxr_linenumber" name="L1448" href="#L1448">1448</a>                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L1449" href="#L1449">1449</a>             }
<a class="jxr_linenumber" name="L1450" href="#L1450">1450</a> 
<a class="jxr_linenumber" name="L1451" href="#L1451">1451</a>             Jar jar = <strong class="jxr_keyword">new</strong> Jar( artifact.getArtifactId(), file );
<a class="jxr_linenumber" name="L1452" href="#L1452">1452</a>             <strong class="jxr_keyword">if</strong> ( isTransitivelyOptional( optionalArtifactIds, artifact ) )
<a class="jxr_linenumber" name="L1453" href="#L1453">1453</a>             {
<a class="jxr_linenumber" name="L1454" href="#L1454">1454</a>                 optional.addAll( jar.getPackages() );
<a class="jxr_linenumber" name="L1455" href="#L1455">1455</a>             }
<a class="jxr_linenumber" name="L1456" href="#L1456">1456</a>             <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1457" href="#L1457">1457</a>             {
<a class="jxr_linenumber" name="L1458" href="#L1458">1458</a>                 required.addAll( jar.getPackages() );
<a class="jxr_linenumber" name="L1459" href="#L1459">1459</a>             }
<a class="jxr_linenumber" name="L1460" href="#L1460">1460</a>             jar.close();
<a class="jxr_linenumber" name="L1461" href="#L1461">1461</a>         }
<a class="jxr_linenumber" name="L1462" href="#L1462">1462</a> 
<a class="jxr_linenumber" name="L1463" href="#L1463">1463</a>         optional.removeAll( required );
<a class="jxr_linenumber" name="L1464" href="#L1464">1464</a>         <strong class="jxr_keyword">return</strong> optional;
<a class="jxr_linenumber" name="L1465" href="#L1465">1465</a>     }
<a class="jxr_linenumber" name="L1466" href="#L1466">1466</a> 
<a class="jxr_linenumber" name="L1467" href="#L1467">1467</a> 
<a class="jxr_linenumber" name="L1468" href="#L1468">1468</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1469" href="#L1469">1469</a> <em class="jxr_javadoccomment">     * Check to see if any dependency along the dependency trail of</em>
<a class="jxr_linenumber" name="L1470" href="#L1470">1470</a> <em class="jxr_javadoccomment">     * the artifact is optional.</em>
<a class="jxr_linenumber" name="L1471" href="#L1471">1471</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1472" href="#L1472">1472</a> <em class="jxr_javadoccomment">     * @param artifact</em>
<a class="jxr_linenumber" name="L1473" href="#L1473">1473</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1474" href="#L1474">1474</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isTransitivelyOptional( HashSet&lt;String&gt; optionalArtifactIds, Artifact artifact )
<a class="jxr_linenumber" name="L1475" href="#L1475">1475</a>     {
<a class="jxr_linenumber" name="L1476" href="#L1476">1476</a>         List&lt;String&gt; trail = artifact.getDependencyTrail();
<a class="jxr_linenumber" name="L1477" href="#L1477">1477</a>         <strong class="jxr_keyword">for</strong> ( Iterator&lt;String&gt; iterator = trail.iterator(); iterator.hasNext(); )
<a class="jxr_linenumber" name="L1478" href="#L1478">1478</a>         {
<a class="jxr_linenumber" name="L1479" href="#L1479">1479</a>             String next = iterator.next();
<a class="jxr_linenumber" name="L1480" href="#L1480">1480</a>             <strong class="jxr_keyword">if</strong> ( optionalArtifactIds.contains( next ) )
<a class="jxr_linenumber" name="L1481" href="#L1481">1481</a>             {
<a class="jxr_linenumber" name="L1482" href="#L1482">1482</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L1483" href="#L1483">1483</a>             }
<a class="jxr_linenumber" name="L1484" href="#L1484">1484</a>         }
<a class="jxr_linenumber" name="L1485" href="#L1485">1485</a>         <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L1486" href="#L1486">1486</a>     }
<a class="jxr_linenumber" name="L1487" href="#L1487">1487</a> 
<a class="jxr_linenumber" name="L1488" href="#L1488">1488</a> 
<a class="jxr_linenumber" name="L1489" href="#L1489">1489</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> unpackBundle( File jarFile )
<a class="jxr_linenumber" name="L1490" href="#L1490">1490</a>     {
<a class="jxr_linenumber" name="L1491" href="#L1491">1491</a>         File outputDir = getOutputDirectory();
<a class="jxr_linenumber" name="L1492" href="#L1492">1492</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == outputDir )
<a class="jxr_linenumber" name="L1493" href="#L1493">1493</a>         {
<a class="jxr_linenumber" name="L1494" href="#L1494">1494</a>             outputDir = <strong class="jxr_keyword">new</strong> File( getBuildDirectory(), <span class="jxr_string">"classes"</span> );
<a class="jxr_linenumber" name="L1495" href="#L1495">1495</a>         }
<a class="jxr_linenumber" name="L1496" href="#L1496">1496</a> 
<a class="jxr_linenumber" name="L1497" href="#L1497">1497</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L1498" href="#L1498">1498</a>         {
<a class="jxr_linenumber" name="L1499" href="#L1499">1499</a>             <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L1500" href="#L1500">1500</a> <em class="jxr_comment">             * this directory must exist before unpacking, otherwise the plexus</em>
<a class="jxr_linenumber" name="L1501" href="#L1501">1501</a> <em class="jxr_comment">             * unarchiver decides to use the current working directory instead!</em>
<a class="jxr_linenumber" name="L1502" href="#L1502">1502</a> <em class="jxr_comment">             */</em>
<a class="jxr_linenumber" name="L1503" href="#L1503">1503</a>             <strong class="jxr_keyword">if</strong> ( !outputDir.exists() )
<a class="jxr_linenumber" name="L1504" href="#L1504">1504</a>             {
<a class="jxr_linenumber" name="L1505" href="#L1505">1505</a>                 outputDir.mkdirs();
<a class="jxr_linenumber" name="L1506" href="#L1506">1506</a>             }
<a class="jxr_linenumber" name="L1507" href="#L1507">1507</a> 
<a class="jxr_linenumber" name="L1508" href="#L1508">1508</a>             UnArchiver unArchiver = m_archiverManager.getUnArchiver( <span class="jxr_string">"jar"</span> );
<a class="jxr_linenumber" name="L1509" href="#L1509">1509</a>             unArchiver.setDestDirectory( outputDir );
<a class="jxr_linenumber" name="L1510" href="#L1510">1510</a>             unArchiver.setSourceFile( jarFile );
<a class="jxr_linenumber" name="L1511" href="#L1511">1511</a>             unArchiver.extract();
<a class="jxr_linenumber" name="L1512" href="#L1512">1512</a>         }
<a class="jxr_linenumber" name="L1513" href="#L1513">1513</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
<a class="jxr_linenumber" name="L1514" href="#L1514">1514</a>         {
<a class="jxr_linenumber" name="L1515" href="#L1515">1515</a>             getLog().error( <span class="jxr_string">"Problem unpacking "</span> + jarFile + <span class="jxr_string">" to "</span> + outputDir, e );
<a class="jxr_linenumber" name="L1516" href="#L1516">1516</a>         }
<a class="jxr_linenumber" name="L1517" href="#L1517">1517</a>     }
<a class="jxr_linenumber" name="L1518" href="#L1518">1518</a> 
<a class="jxr_linenumber" name="L1519" href="#L1519">1519</a> 
<a class="jxr_linenumber" name="L1520" href="#L1520">1520</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String removeTagFromInstruction( String instruction, String tag )
<a class="jxr_linenumber" name="L1521" href="#L1521">1521</a>     {
<a class="jxr_linenumber" name="L1522" href="#L1522">1522</a>         StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer();
<a class="jxr_linenumber" name="L1523" href="#L1523">1523</a> 
<a class="jxr_linenumber" name="L1524" href="#L1524">1524</a>         String[] clauses = instruction.split( <span class="jxr_string">","</span> );
<a class="jxr_linenumber" name="L1525" href="#L1525">1525</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; clauses.length; i++ )
<a class="jxr_linenumber" name="L1526" href="#L1526">1526</a>         {
<a class="jxr_linenumber" name="L1527" href="#L1527">1527</a>             String clause = clauses[i].trim();
<a class="jxr_linenumber" name="L1528" href="#L1528">1528</a>             <strong class="jxr_keyword">if</strong> ( !tag.equals( clause ) )
<a class="jxr_linenumber" name="L1529" href="#L1529">1529</a>             {
<a class="jxr_linenumber" name="L1530" href="#L1530">1530</a>                 <strong class="jxr_keyword">if</strong> ( buf.length() &gt; 0 )
<a class="jxr_linenumber" name="L1531" href="#L1531">1531</a>                 {
<a class="jxr_linenumber" name="L1532" href="#L1532">1532</a>                     buf.append( ',' );
<a class="jxr_linenumber" name="L1533" href="#L1533">1533</a>                 }
<a class="jxr_linenumber" name="L1534" href="#L1534">1534</a>                 buf.append( clause );
<a class="jxr_linenumber" name="L1535" href="#L1535">1535</a>             }
<a class="jxr_linenumber" name="L1536" href="#L1536">1536</a>         }
<a class="jxr_linenumber" name="L1537" href="#L1537">1537</a> 
<a class="jxr_linenumber" name="L1538" href="#L1538">1538</a>         <strong class="jxr_keyword">return</strong> buf.toString();
<a class="jxr_linenumber" name="L1539" href="#L1539">1539</a>     }
<a class="jxr_linenumber" name="L1540" href="#L1540">1540</a> 
<a class="jxr_linenumber" name="L1541" href="#L1541">1541</a> 
<a class="jxr_linenumber" name="L1542" href="#L1542">1542</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> Map&lt;String, String&gt; getProperties( Model projectModel, String prefix )
<a class="jxr_linenumber" name="L1543" href="#L1543">1543</a>     {
<a class="jxr_linenumber" name="L1544" href="#L1544">1544</a>         Map&lt;String, String&gt; properties = <strong class="jxr_keyword">new</strong> LinkedHashMap&lt;String, String&gt;();
<a class="jxr_linenumber" name="L1545" href="#L1545">1545</a>         Method methods[] = Model.<strong class="jxr_keyword">class</strong>.getDeclaredMethods();
<a class="jxr_linenumber" name="L1546" href="#L1546">1546</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; methods.length; i++ )
<a class="jxr_linenumber" name="L1547" href="#L1547">1547</a>         {
<a class="jxr_linenumber" name="L1548" href="#L1548">1548</a>             String name = methods[i].getName();
<a class="jxr_linenumber" name="L1549" href="#L1549">1549</a>             <strong class="jxr_keyword">if</strong> ( name.startsWith( <span class="jxr_string">"get"</span> ) )
<a class="jxr_linenumber" name="L1550" href="#L1550">1550</a>             {
<a class="jxr_linenumber" name="L1551" href="#L1551">1551</a>                 <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L1552" href="#L1552">1552</a>                 {
<a class="jxr_linenumber" name="L1553" href="#L1553">1553</a>                     Object v = methods[i].invoke( projectModel, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L1554" href="#L1554">1554</a>                     <strong class="jxr_keyword">if</strong> ( v != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1555" href="#L1555">1555</a>                     {
<a class="jxr_linenumber" name="L1556" href="#L1556">1556</a>                         name = prefix + Character.toLowerCase( name.charAt( 3 ) ) + name.substring( 4 );
<a class="jxr_linenumber" name="L1557" href="#L1557">1557</a>                         <strong class="jxr_keyword">if</strong> ( v.getClass().isArray() )
<a class="jxr_linenumber" name="L1558" href="#L1558">1558</a>                             properties.put( name, Arrays.asList( ( Object[] ) v ).toString() );
<a class="jxr_linenumber" name="L1559" href="#L1559">1559</a>                         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1560" href="#L1560">1560</a>                             properties.put( name, v.toString() );
<a class="jxr_linenumber" name="L1561" href="#L1561">1561</a> 
<a class="jxr_linenumber" name="L1562" href="#L1562">1562</a>                     }
<a class="jxr_linenumber" name="L1563" href="#L1563">1563</a>                 }
<a class="jxr_linenumber" name="L1564" href="#L1564">1564</a>                 <strong class="jxr_keyword">catch</strong> ( Exception e )
<a class="jxr_linenumber" name="L1565" href="#L1565">1565</a>                 {
<a class="jxr_linenumber" name="L1566" href="#L1566">1566</a>                     <em class="jxr_comment">// too bad</em>
<a class="jxr_linenumber" name="L1567" href="#L1567">1567</a>                 }
<a class="jxr_linenumber" name="L1568" href="#L1568">1568</a>             }
<a class="jxr_linenumber" name="L1569" href="#L1569">1569</a>         }
<a class="jxr_linenumber" name="L1570" href="#L1570">1570</a>         <strong class="jxr_keyword">return</strong> properties;
<a class="jxr_linenumber" name="L1571" href="#L1571">1571</a>     }
<a class="jxr_linenumber" name="L1572" href="#L1572">1572</a> 
<a class="jxr_linenumber" name="L1573" href="#L1573">1573</a> 
<a class="jxr_linenumber" name="L1574" href="#L1574">1574</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> StringBuffer printLicenses( List&lt;License&gt; licenses )
<a class="jxr_linenumber" name="L1575" href="#L1575">1575</a>     {
<a class="jxr_linenumber" name="L1576" href="#L1576">1576</a>         <strong class="jxr_keyword">if</strong> ( licenses == <strong class="jxr_keyword">null</strong> || licenses.size() == 0 )
<a class="jxr_linenumber" name="L1577" href="#L1577">1577</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1578" href="#L1578">1578</a>         StringBuffer sb = <strong class="jxr_keyword">new</strong> StringBuffer();
<a class="jxr_linenumber" name="L1579" href="#L1579">1579</a>         String del = <span class="jxr_string">""</span>;
<a class="jxr_linenumber" name="L1580" href="#L1580">1580</a>         <strong class="jxr_keyword">for</strong> ( Iterator&lt;License&gt; i = licenses.iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L1581" href="#L1581">1581</a>         {
<a class="jxr_linenumber" name="L1582" href="#L1582">1582</a>             License l = i.next();
<a class="jxr_linenumber" name="L1583" href="#L1583">1583</a>             String url = l.getUrl();
<a class="jxr_linenumber" name="L1584" href="#L1584">1584</a>             <strong class="jxr_keyword">if</strong> ( url == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1585" href="#L1585">1585</a>                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L1586" href="#L1586">1586</a>             sb.append( del );
<a class="jxr_linenumber" name="L1587" href="#L1587">1587</a>             sb.append( url );
<a class="jxr_linenumber" name="L1588" href="#L1588">1588</a>             del = <span class="jxr_string">", "</span>;
<a class="jxr_linenumber" name="L1589" href="#L1589">1589</a>         }
<a class="jxr_linenumber" name="L1590" href="#L1590">1590</a>         <strong class="jxr_keyword">if</strong> ( sb.length() == 0 )
<a class="jxr_linenumber" name="L1591" href="#L1591">1591</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L1592" href="#L1592">1592</a>         <strong class="jxr_keyword">return</strong> sb;
<a class="jxr_linenumber" name="L1593" href="#L1593">1593</a>     }
<a class="jxr_linenumber" name="L1594" href="#L1594">1594</a> 
<a class="jxr_linenumber" name="L1595" href="#L1595">1595</a> 
<a class="jxr_linenumber" name="L1596" href="#L1596">1596</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1597" href="#L1597">1597</a> <em class="jxr_javadoccomment">     * @param jar</em>
<a class="jxr_linenumber" name="L1598" href="#L1598">1598</a> <em class="jxr_javadoccomment">     * @throws IOException</em>
<a class="jxr_linenumber" name="L1599" href="#L1599">1599</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1600" href="#L1600">1600</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> doMavenMetadata( MavenProject currentProject, Jar jar ) <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="L1601" href="#L1601">1601</a>     {
<a class="jxr_linenumber" name="L1602" href="#L1602">1602</a>         String path = <span class="jxr_string">"META-INF/maven/"</span> + currentProject.getGroupId() + <span class="jxr_string">"/"</span> + currentProject.getArtifactId();
<a class="jxr_linenumber" name="L1603" href="#L1603">1603</a> 
<a class="jxr_linenumber" name="L1604" href="#L1604">1604</a>         File pomFile = currentProject.getFile();
<a class="jxr_linenumber" name="L1605" href="#L1605">1605</a>         <strong class="jxr_keyword">if</strong> ( pomFile == <strong class="jxr_keyword">null</strong> || !pomFile.exists() )
<a class="jxr_linenumber" name="L1606" href="#L1606">1606</a>         {
<a class="jxr_linenumber" name="L1607" href="#L1607">1607</a>             pomFile = <strong class="jxr_keyword">new</strong> File( currentProject.getBasedir(), <span class="jxr_string">"pom.xml"</span> );
<a class="jxr_linenumber" name="L1608" href="#L1608">1608</a>         }
<a class="jxr_linenumber" name="L1609" href="#L1609">1609</a>         <strong class="jxr_keyword">if</strong> ( pomFile.exists() )
<a class="jxr_linenumber" name="L1610" href="#L1610">1610</a>         {
<a class="jxr_linenumber" name="L1611" href="#L1611">1611</a>             jar.putResource( path + <span class="jxr_string">"/pom.xml"</span>, <strong class="jxr_keyword">new</strong> FileResource( pomFile ) );
<a class="jxr_linenumber" name="L1612" href="#L1612">1612</a>         }
<a class="jxr_linenumber" name="L1613" href="#L1613">1613</a> 
<a class="jxr_linenumber" name="L1614" href="#L1614">1614</a>         Properties p = <strong class="jxr_keyword">new</strong> Properties();
<a class="jxr_linenumber" name="L1615" href="#L1615">1615</a>         p.put( <span class="jxr_string">"version"</span>, currentProject.getVersion() );
<a class="jxr_linenumber" name="L1616" href="#L1616">1616</a>         p.put( <span class="jxr_string">"groupId"</span>, currentProject.getGroupId() );
<a class="jxr_linenumber" name="L1617" href="#L1617">1617</a>         p.put( <span class="jxr_string">"artifactId"</span>, currentProject.getArtifactId() );
<a class="jxr_linenumber" name="L1618" href="#L1618">1618</a>         ByteArrayOutputStream out = <strong class="jxr_keyword">new</strong> ByteArrayOutputStream();
<a class="jxr_linenumber" name="L1619" href="#L1619">1619</a>         p.store( out, <span class="jxr_string">"Generated by org.apache.felix.bundleplugin"</span> );
<a class="jxr_linenumber" name="L1620" href="#L1620">1620</a>         jar.putResource( path + <span class="jxr_string">"/pom.properties"</span>, <strong class="jxr_keyword">new</strong> EmbeddedResource( out.toByteArray(), System.currentTimeMillis() ) );
<a class="jxr_linenumber" name="L1621" href="#L1621">1621</a>     }
<a class="jxr_linenumber" name="L1622" href="#L1622">1622</a> 
<a class="jxr_linenumber" name="L1623" href="#L1623">1623</a> 
<a class="jxr_linenumber" name="L1624" href="#L1624">1624</a>     <strong class="jxr_keyword">protected</strong> Jar[] getClasspath( MavenProject currentProject, DependencyNode dependencyGraph ) <strong class="jxr_keyword">throws</strong> IOException, MojoExecutionException
<a class="jxr_linenumber" name="L1625" href="#L1625">1625</a>     {
<a class="jxr_linenumber" name="L1626" href="#L1626">1626</a>         List&lt;Jar&gt; list = <strong class="jxr_keyword">new</strong> ArrayList&lt;Jar&gt;();
<a class="jxr_linenumber" name="L1627" href="#L1627">1627</a> 
<a class="jxr_linenumber" name="L1628" href="#L1628">1628</a>         <strong class="jxr_keyword">if</strong> ( getOutputDirectory() != <strong class="jxr_keyword">null</strong> &amp;&amp; getOutputDirectory().exists() )
<a class="jxr_linenumber" name="L1629" href="#L1629">1629</a>         {
<a class="jxr_linenumber" name="L1630" href="#L1630">1630</a>             list.add( <strong class="jxr_keyword">new</strong> Jar( <span class="jxr_string">"."</span>, getOutputDirectory() ) );
<a class="jxr_linenumber" name="L1631" href="#L1631">1631</a>         }
<a class="jxr_linenumber" name="L1632" href="#L1632">1632</a> 
<a class="jxr_linenumber" name="L1633" href="#L1633">1633</a>         <strong class="jxr_keyword">final</strong> Collection&lt;Artifact&gt; artifacts = getSelectedDependencies( dependencyGraph, currentProject.getArtifacts() );
<a class="jxr_linenumber" name="L1634" href="#L1634">1634</a>         <strong class="jxr_keyword">for</strong> ( Iterator&lt;Artifact&gt; it = artifacts.iterator(); it.hasNext(); )
<a class="jxr_linenumber" name="L1635" href="#L1635">1635</a>         {
<a class="jxr_linenumber" name="L1636" href="#L1636">1636</a>             Artifact artifact = it.next();
<a class="jxr_linenumber" name="L1637" href="#L1637">1637</a>             <strong class="jxr_keyword">if</strong> ( artifact.getArtifactHandler().isAddedToClasspath() &amp;&amp; !Artifact.SCOPE_TEST.equals( artifact.getScope() ) )
<a class="jxr_linenumber" name="L1638" href="#L1638">1638</a>             {
<a class="jxr_linenumber" name="L1639" href="#L1639">1639</a>                 File file = getFile( artifact );
<a class="jxr_linenumber" name="L1640" href="#L1640">1640</a>                 <strong class="jxr_keyword">if</strong> ( file == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1641" href="#L1641">1641</a>                 {
<a class="jxr_linenumber" name="L1642" href="#L1642">1642</a>                     getLog().warn(
<a class="jxr_linenumber" name="L1643" href="#L1643">1643</a>                         <span class="jxr_string">"File is not available for artifact "</span> + artifact + <span class="jxr_string">" in project "</span>
<a class="jxr_linenumber" name="L1644" href="#L1644">1644</a>                             + currentProject.getArtifact() );
<a class="jxr_linenumber" name="L1645" href="#L1645">1645</a>                     <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L1646" href="#L1646">1646</a>                 }
<a class="jxr_linenumber" name="L1647" href="#L1647">1647</a>                 Jar jar = <strong class="jxr_keyword">new</strong> Jar( artifact.getArtifactId(), file );
<a class="jxr_linenumber" name="L1648" href="#L1648">1648</a>                 list.add( jar );
<a class="jxr_linenumber" name="L1649" href="#L1649">1649</a>             }
<a class="jxr_linenumber" name="L1650" href="#L1650">1650</a>         }
<a class="jxr_linenumber" name="L1651" href="#L1651">1651</a>         Jar[] cp = <strong class="jxr_keyword">new</strong> Jar[list.size()];
<a class="jxr_linenumber" name="L1652" href="#L1652">1652</a>         list.toArray( cp );
<a class="jxr_linenumber" name="L1653" href="#L1653">1653</a>         <strong class="jxr_keyword">return</strong> cp;
<a class="jxr_linenumber" name="L1654" href="#L1654">1654</a>     }
<a class="jxr_linenumber" name="L1655" href="#L1655">1655</a> 
<a class="jxr_linenumber" name="L1656" href="#L1656">1656</a> 
<a class="jxr_linenumber" name="L1657" href="#L1657">1657</a>     <strong class="jxr_keyword">private</strong> Collection&lt;Artifact&gt; getSelectedDependencies( DependencyNode dependencyGraph, Collection&lt;Artifact&gt; artifacts ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
<a class="jxr_linenumber" name="L1658" href="#L1658">1658</a>     {
<a class="jxr_linenumber" name="L1659" href="#L1659">1659</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> == excludeDependencies || excludeDependencies.length() == 0 )
<a class="jxr_linenumber" name="L1660" href="#L1660">1660</a>         {
<a class="jxr_linenumber" name="L1661" href="#L1661">1661</a>             <strong class="jxr_keyword">return</strong> artifacts;
<a class="jxr_linenumber" name="L1662" href="#L1662">1662</a>         }
<a class="jxr_linenumber" name="L1663" href="#L1663">1663</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"true"</span>.equalsIgnoreCase( excludeDependencies ) )
<a class="jxr_linenumber" name="L1664" href="#L1664">1664</a>         {
<a class="jxr_linenumber" name="L1665" href="#L1665">1665</a>             <strong class="jxr_keyword">return</strong> Collections.emptyList();
<a class="jxr_linenumber" name="L1666" href="#L1666">1666</a>         }
<a class="jxr_linenumber" name="L1667" href="#L1667">1667</a> 
<a class="jxr_linenumber" name="L1668" href="#L1668">1668</a>         Collection&lt;Artifact&gt; selectedDependencies = <strong class="jxr_keyword">new</strong> LinkedHashSet&lt;Artifact&gt;( artifacts );
<a class="jxr_linenumber" name="L1669" href="#L1669">1669</a>         <a href="../../../../org/apache/felix/bundleplugin/DependencyExcluder.html">DependencyExcluder</a> excluder = <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/felix/bundleplugin/DependencyExcluder.html">DependencyExcluder</a>( dependencyGraph, artifacts );
<a class="jxr_linenumber" name="L1670" href="#L1670">1670</a>         excluder.processHeaders( excludeDependencies );
<a class="jxr_linenumber" name="L1671" href="#L1671">1671</a>         selectedDependencies.removeAll( excluder.getExcludedArtifacts() );
<a class="jxr_linenumber" name="L1672" href="#L1672">1672</a> 
<a class="jxr_linenumber" name="L1673" href="#L1673">1673</a>         <strong class="jxr_keyword">return</strong> selectedDependencies;
<a class="jxr_linenumber" name="L1674" href="#L1674">1674</a>     }
<a class="jxr_linenumber" name="L1675" href="#L1675">1675</a> 
<a class="jxr_linenumber" name="L1676" href="#L1676">1676</a> 
<a class="jxr_linenumber" name="L1677" href="#L1677">1677</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1678" href="#L1678">1678</a> <em class="jxr_javadoccomment">     * Get the file for an Artifact</em>
<a class="jxr_linenumber" name="L1679" href="#L1679">1679</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1680" href="#L1680">1680</a> <em class="jxr_javadoccomment">     * @param artifact</em>
<a class="jxr_linenumber" name="L1681" href="#L1681">1681</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1682" href="#L1682">1682</a>     <strong class="jxr_keyword">protected</strong> File getFile( Artifact artifact )
<a class="jxr_linenumber" name="L1683" href="#L1683">1683</a>     {
<a class="jxr_linenumber" name="L1684" href="#L1684">1684</a>         <strong class="jxr_keyword">return</strong> artifact.getFile();
<a class="jxr_linenumber" name="L1685" href="#L1685">1685</a>     }
<a class="jxr_linenumber" name="L1686" href="#L1686">1686</a> 
<a class="jxr_linenumber" name="L1687" href="#L1687">1687</a> 
<a class="jxr_linenumber" name="L1688" href="#L1688">1688</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> header( Properties properties, String key, Object value )
<a class="jxr_linenumber" name="L1689" href="#L1689">1689</a>     {
<a class="jxr_linenumber" name="L1690" href="#L1690">1690</a>         <strong class="jxr_keyword">if</strong> ( value == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1691" href="#L1691">1691</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L1692" href="#L1692">1692</a> 
<a class="jxr_linenumber" name="L1693" href="#L1693">1693</a>         <strong class="jxr_keyword">if</strong> ( value instanceof Collection &amp;&amp; ( ( Collection ) value ).isEmpty() )
<a class="jxr_linenumber" name="L1694" href="#L1694">1694</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L1695" href="#L1695">1695</a> 
<a class="jxr_linenumber" name="L1696" href="#L1696">1696</a>         properties.put( key, value.toString().replaceAll( <span class="jxr_string">"[\r\n]"</span>, <span class="jxr_string">""</span> ) );
<a class="jxr_linenumber" name="L1697" href="#L1697">1697</a>     }
<a class="jxr_linenumber" name="L1698" href="#L1698">1698</a> 
<a class="jxr_linenumber" name="L1699" href="#L1699">1699</a> 
<a class="jxr_linenumber" name="L1700" href="#L1700">1700</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1701" href="#L1701">1701</a> <em class="jxr_javadoccomment">     * Convert a Maven version into an OSGi compliant version</em>
<a class="jxr_linenumber" name="L1702" href="#L1702">1702</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L1703" href="#L1703">1703</a> <em class="jxr_javadoccomment">     * @param version Maven version</em>
<a class="jxr_linenumber" name="L1704" href="#L1704">1704</a> <em class="jxr_javadoccomment">     * @return the OSGi version</em>
<a class="jxr_linenumber" name="L1705" href="#L1705">1705</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1706" href="#L1706">1706</a>     <strong class="jxr_keyword">protected</strong> String convertVersionToOsgi( String version )
<a class="jxr_linenumber" name="L1707" href="#L1707">1707</a>     {
<a class="jxr_linenumber" name="L1708" href="#L1708">1708</a>         <strong class="jxr_keyword">return</strong> getMaven2OsgiConverter().getVersion( version );
<a class="jxr_linenumber" name="L1709" href="#L1709">1709</a>     }
<a class="jxr_linenumber" name="L1710" href="#L1710">1710</a> 
<a class="jxr_linenumber" name="L1711" href="#L1711">1711</a> 
<a class="jxr_linenumber" name="L1712" href="#L1712">1712</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L1713" href="#L1713">1713</a> <em class="jxr_javadoccomment">     * TODO this should return getMaven2Osgi().getBundleFileName( project.getArtifact() )</em>
<a class="jxr_linenumber" name="L1714" href="#L1714">1714</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L1715" href="#L1715">1715</a>     <strong class="jxr_keyword">protected</strong> String getBundleName( MavenProject currentProject )
<a class="jxr_linenumber" name="L1716" href="#L1716">1716</a>     {
<a class="jxr_linenumber" name="L1717" href="#L1717">1717</a>         String extension;
<a class="jxr_linenumber" name="L1718" href="#L1718">1718</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L1719" href="#L1719">1719</a>         {
<a class="jxr_linenumber" name="L1720" href="#L1720">1720</a>             extension = currentProject.getArtifact().getArtifactHandler().getExtension();
<a class="jxr_linenumber" name="L1721" href="#L1721">1721</a>         }
<a class="jxr_linenumber" name="L1722" href="#L1722">1722</a>         <strong class="jxr_keyword">catch</strong> ( Throwable e )
<a class="jxr_linenumber" name="L1723" href="#L1723">1723</a>         {
<a class="jxr_linenumber" name="L1724" href="#L1724">1724</a>             extension = currentProject.getArtifact().getType();
<a class="jxr_linenumber" name="L1725" href="#L1725">1725</a>         }
<a class="jxr_linenumber" name="L1726" href="#L1726">1726</a>         <strong class="jxr_keyword">if</strong> ( StringUtils.isEmpty( extension ) || <span class="jxr_string">"bundle"</span>.equals( extension ) || <span class="jxr_string">"pom"</span>.equals( extension ) )
<a class="jxr_linenumber" name="L1727" href="#L1727">1727</a>         {
<a class="jxr_linenumber" name="L1728" href="#L1728">1728</a>             extension = <span class="jxr_string">"jar"</span>; <em class="jxr_comment">// just in case maven gets confused</em>
<a class="jxr_linenumber" name="L1729" href="#L1729">1729</a>         }
<a class="jxr_linenumber" name="L1730" href="#L1730">1730</a>         <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">null</strong> != classifier &amp;&amp; classifier.trim().length() &gt; 0 )
<a class="jxr_linenumber" name="L1731" href="#L1731">1731</a>         {
<a class="jxr_linenumber" name="L1732" href="#L1732">1732</a>             <strong class="jxr_keyword">return</strong> finalName + '-' + classifier + '.' + extension;
<a class="jxr_linenumber" name="L1733" href="#L1733">1733</a>         }
<a class="jxr_linenumber" name="L1734" href="#L1734">1734</a>         <strong class="jxr_keyword">return</strong> finalName + '.' + extension;
<a class="jxr_linenumber" name="L1735" href="#L1735">1735</a>     }
<a class="jxr_linenumber" name="L1736" href="#L1736">1736</a> 
<a class="jxr_linenumber" name="L1737" href="#L1737">1737</a> 
<a class="jxr_linenumber" name="L1738" href="#L1738">1738</a>     <strong class="jxr_keyword">protected</strong> String getBuildDirectory()
<a class="jxr_linenumber" name="L1739" href="#L1739">1739</a>     {
<a class="jxr_linenumber" name="L1740" href="#L1740">1740</a>         <strong class="jxr_keyword">return</strong> buildDirectory;
<a class="jxr_linenumber" name="L1741" href="#L1741">1741</a>     }
<a class="jxr_linenumber" name="L1742" href="#L1742">1742</a> 
<a class="jxr_linenumber" name="L1743" href="#L1743">1743</a> 
<a class="jxr_linenumber" name="L1744" href="#L1744">1744</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setBuildDirectory( String _buildirectory )
<a class="jxr_linenumber" name="L1745" href="#L1745">1745</a>     {
<a class="jxr_linenumber" name="L1746" href="#L1746">1746</a>         buildDirectory = _buildirectory;
<a class="jxr_linenumber" name="L1747" href="#L1747">1747</a>     }
<a class="jxr_linenumber" name="L1748" href="#L1748">1748</a> 
<a class="jxr_linenumber" name="L1749" href="#L1749">1749</a> 
<a class="jxr_linenumber" name="L1750" href="#L1750">1750</a>     <strong class="jxr_keyword">protected</strong> Properties getDefaultProperties( MavenProject currentProject )
<a class="jxr_linenumber" name="L1751" href="#L1751">1751</a>     {
<a class="jxr_linenumber" name="L1752" href="#L1752">1752</a>         Properties properties = <strong class="jxr_keyword">new</strong> Properties();
<a class="jxr_linenumber" name="L1753" href="#L1753">1753</a> 
<a class="jxr_linenumber" name="L1754" href="#L1754">1754</a>         String bsn;
<a class="jxr_linenumber" name="L1755" href="#L1755">1755</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L1756" href="#L1756">1756</a>         {
<a class="jxr_linenumber" name="L1757" href="#L1757">1757</a>             bsn = getMaven2OsgiConverter().getBundleSymbolicName( currentProject.getArtifact() );
<a class="jxr_linenumber" name="L1758" href="#L1758">1758</a>         }
<a class="jxr_linenumber" name="L1759" href="#L1759">1759</a>         <strong class="jxr_keyword">catch</strong> ( Exception e )
<a class="jxr_linenumber" name="L1760" href="#L1760">1760</a>         {
<a class="jxr_linenumber" name="L1761" href="#L1761">1761</a>             bsn = currentProject.getGroupId() + <span class="jxr_string">"."</span> + currentProject.getArtifactId();
<a class="jxr_linenumber" name="L1762" href="#L1762">1762</a>         }
<a class="jxr_linenumber" name="L1763" href="#L1763">1763</a> 
<a class="jxr_linenumber" name="L1764" href="#L1764">1764</a>         <em class="jxr_comment">// Setup defaults</em>
<a class="jxr_linenumber" name="L1765" href="#L1765">1765</a>         properties.put( MAVEN_SYMBOLICNAME, bsn );
<a class="jxr_linenumber" name="L1766" href="#L1766">1766</a>         properties.put( Analyzer.BUNDLE_SYMBOLICNAME, bsn );
<a class="jxr_linenumber" name="L1767" href="#L1767">1767</a>         properties.put( Analyzer.IMPORT_PACKAGE, <span class="jxr_string">"*"</span> );
<a class="jxr_linenumber" name="L1768" href="#L1768">1768</a>         properties.put( Analyzer.BUNDLE_VERSION, getMaven2OsgiConverter().getVersion( currentProject.getVersion() ) );
<a class="jxr_linenumber" name="L1769" href="#L1769">1769</a> 
<a class="jxr_linenumber" name="L1770" href="#L1770">1770</a>         <em class="jxr_comment">// remove the extraneous Include-Resource and Private-Package entries from generated manifest</em>
<a class="jxr_linenumber" name="L1771" href="#L1771">1771</a>         properties.put( Constants.REMOVEHEADERS, Analyzer.INCLUDE_RESOURCE + ',' + Analyzer.PRIVATE_PACKAGE );
<a class="jxr_linenumber" name="L1772" href="#L1772">1772</a> 
<a class="jxr_linenumber" name="L1773" href="#L1773">1773</a>         header( properties, Analyzer.BUNDLE_DESCRIPTION, currentProject.getDescription() );
<a class="jxr_linenumber" name="L1774" href="#L1774">1774</a>         StringBuffer licenseText = printLicenses( currentProject.getLicenses() );
<a class="jxr_linenumber" name="L1775" href="#L1775">1775</a>         <strong class="jxr_keyword">if</strong> ( licenseText != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1776" href="#L1776">1776</a>         {
<a class="jxr_linenumber" name="L1777" href="#L1777">1777</a>             header( properties, Analyzer.BUNDLE_LICENSE, licenseText );
<a class="jxr_linenumber" name="L1778" href="#L1778">1778</a>         }
<a class="jxr_linenumber" name="L1779" href="#L1779">1779</a>         header( properties, Analyzer.BUNDLE_NAME, currentProject.getName() );
<a class="jxr_linenumber" name="L1780" href="#L1780">1780</a> 
<a class="jxr_linenumber" name="L1781" href="#L1781">1781</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization() != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1782" href="#L1782">1782</a>         {
<a class="jxr_linenumber" name="L1783" href="#L1783">1783</a>             <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization().getName() != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1784" href="#L1784">1784</a>             {
<a class="jxr_linenumber" name="L1785" href="#L1785">1785</a>                 String organizationName = currentProject.getOrganization().getName();
<a class="jxr_linenumber" name="L1786" href="#L1786">1786</a>                 header( properties, Analyzer.BUNDLE_VENDOR, organizationName );
<a class="jxr_linenumber" name="L1787" href="#L1787">1787</a>                 properties.put( <span class="jxr_string">"project.organization.name"</span>, organizationName );
<a class="jxr_linenumber" name="L1788" href="#L1788">1788</a>                 properties.put( <span class="jxr_string">"pom.organization.name"</span>, organizationName );
<a class="jxr_linenumber" name="L1789" href="#L1789">1789</a>             }
<a class="jxr_linenumber" name="L1790" href="#L1790">1790</a>             <strong class="jxr_keyword">if</strong> ( currentProject.getOrganization().getUrl() != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1791" href="#L1791">1791</a>             {
<a class="jxr_linenumber" name="L1792" href="#L1792">1792</a>                 String organizationUrl = currentProject.getOrganization().getUrl();
<a class="jxr_linenumber" name="L1793" href="#L1793">1793</a>                 header( properties, Analyzer.BUNDLE_DOCURL, organizationUrl );
<a class="jxr_linenumber" name="L1794" href="#L1794">1794</a>                 properties.put( <span class="jxr_string">"project.organization.url"</span>, organizationUrl );
<a class="jxr_linenumber" name="L1795" href="#L1795">1795</a>                 properties.put( <span class="jxr_string">"pom.organization.url"</span>, organizationUrl );
<a class="jxr_linenumber" name="L1796" href="#L1796">1796</a>             }
<a class="jxr_linenumber" name="L1797" href="#L1797">1797</a>         }
<a class="jxr_linenumber" name="L1798" href="#L1798">1798</a> 
<a class="jxr_linenumber" name="L1799" href="#L1799">1799</a>         properties.putAll( currentProject.getProperties() );
<a class="jxr_linenumber" name="L1800" href="#L1800">1800</a>         properties.putAll( currentProject.getModel().getProperties() );
<a class="jxr_linenumber" name="L1801" href="#L1801">1801</a> 
<a class="jxr_linenumber" name="L1802" href="#L1802">1802</a>         <strong class="jxr_keyword">for</strong> ( Iterator&lt;String&gt; i = currentProject.getFilters().iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L1803" href="#L1803">1803</a>         {
<a class="jxr_linenumber" name="L1804" href="#L1804">1804</a>             File filterFile = <strong class="jxr_keyword">new</strong> File( i.next() );
<a class="jxr_linenumber" name="L1805" href="#L1805">1805</a>             <strong class="jxr_keyword">if</strong> ( filterFile.isFile() )
<a class="jxr_linenumber" name="L1806" href="#L1806">1806</a>             {
<a class="jxr_linenumber" name="L1807" href="#L1807">1807</a>                 properties.putAll( PropertyUtils.loadProperties( filterFile ) );
<a class="jxr_linenumber" name="L1808" href="#L1808">1808</a>             }
<a class="jxr_linenumber" name="L1809" href="#L1809">1809</a>         }
<a class="jxr_linenumber" name="L1810" href="#L1810">1810</a> 
<a class="jxr_linenumber" name="L1811" href="#L1811">1811</a>         <strong class="jxr_keyword">if</strong> ( m_mavenSession != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1812" href="#L1812">1812</a>         {
<a class="jxr_linenumber" name="L1813" href="#L1813">1813</a>             <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L1814" href="#L1814">1814</a>             {
<a class="jxr_linenumber" name="L1815" href="#L1815">1815</a>                 <em class="jxr_comment">// don't pass upper-case session settings to bnd as they end up in the manifest</em>
<a class="jxr_linenumber" name="L1816" href="#L1816">1816</a>                 Properties sessionProperties = m_mavenSession.getExecutionProperties();
<a class="jxr_linenumber" name="L1817" href="#L1817">1817</a>                 <strong class="jxr_keyword">for</strong> ( Enumeration&lt;String&gt; e = (Enumeration&lt;String&gt;) sessionProperties.propertyNames(); e.hasMoreElements(); )
<a class="jxr_linenumber" name="L1818" href="#L1818">1818</a>                 {
<a class="jxr_linenumber" name="L1819" href="#L1819">1819</a>                     String key = e.nextElement();
<a class="jxr_linenumber" name="L1820" href="#L1820">1820</a>                     <strong class="jxr_keyword">if</strong> ( key.length() &gt; 0 &amp;&amp; !Character.isUpperCase( key.charAt( 0 ) ) )
<a class="jxr_linenumber" name="L1821" href="#L1821">1821</a>                     {
<a class="jxr_linenumber" name="L1822" href="#L1822">1822</a>                         properties.put( key, sessionProperties.getProperty( key ) );
<a class="jxr_linenumber" name="L1823" href="#L1823">1823</a>                     }
<a class="jxr_linenumber" name="L1824" href="#L1824">1824</a>                 }
<a class="jxr_linenumber" name="L1825" href="#L1825">1825</a>             }
<a class="jxr_linenumber" name="L1826" href="#L1826">1826</a>             <strong class="jxr_keyword">catch</strong> ( Exception e )
<a class="jxr_linenumber" name="L1827" href="#L1827">1827</a>             {
<a class="jxr_linenumber" name="L1828" href="#L1828">1828</a>                 getLog().warn( <span class="jxr_string">"Problem with Maven session properties: "</span> + e.getLocalizedMessage() );
<a class="jxr_linenumber" name="L1829" href="#L1829">1829</a>             }
<a class="jxr_linenumber" name="L1830" href="#L1830">1830</a>         }
<a class="jxr_linenumber" name="L1831" href="#L1831">1831</a> 
<a class="jxr_linenumber" name="L1832" href="#L1832">1832</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"project.build."</span> ) );
<a class="jxr_linenumber" name="L1833" href="#L1833">1833</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"pom."</span> ) );
<a class="jxr_linenumber" name="L1834" href="#L1834">1834</a>         properties.putAll( getProperties( currentProject.getModel(), <span class="jxr_string">"project."</span> ) );
<a class="jxr_linenumber" name="L1835" href="#L1835">1835</a> 
<a class="jxr_linenumber" name="L1836" href="#L1836">1836</a>         properties.put( <span class="jxr_string">"project.baseDir"</span>, getBase( currentProject ) );
<a class="jxr_linenumber" name="L1837" href="#L1837">1837</a>         properties.put( <span class="jxr_string">"project.build.directory"</span>, getBuildDirectory() );
<a class="jxr_linenumber" name="L1838" href="#L1838">1838</a>         properties.put( <span class="jxr_string">"project.build.outputdirectory"</span>, getOutputDirectory() );
<a class="jxr_linenumber" name="L1839" href="#L1839">1839</a> 
<a class="jxr_linenumber" name="L1840" href="#L1840">1840</a>         properties.put( <span class="jxr_string">"classifier"</span>, classifier == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">""</span> : classifier );
<a class="jxr_linenumber" name="L1841" href="#L1841">1841</a> 
<a class="jxr_linenumber" name="L1842" href="#L1842">1842</a>         <em class="jxr_comment">// Add default plugins</em>
<a class="jxr_linenumber" name="L1843" href="#L1843">1843</a>         header( properties, Analyzer.PLUGIN, BlueprintPlugin.<strong class="jxr_keyword">class</strong>.getName() + <span class="jxr_string">","</span>
<a class="jxr_linenumber" name="L1844" href="#L1844">1844</a>                                            + SpringXMLType.<strong class="jxr_keyword">class</strong>.getName() + <span class="jxr_string">","</span>
<a class="jxr_linenumber" name="L1845" href="#L1845">1845</a>                                            + JpaPlugin.<strong class="jxr_keyword">class</strong>.getName() );
<a class="jxr_linenumber" name="L1846" href="#L1846">1846</a> 
<a class="jxr_linenumber" name="L1847" href="#L1847">1847</a>         <strong class="jxr_keyword">return</strong> properties;
<a class="jxr_linenumber" name="L1848" href="#L1848">1848</a>     }
<a class="jxr_linenumber" name="L1849" href="#L1849">1849</a> 
<a class="jxr_linenumber" name="L1850" href="#L1850">1850</a> 
<a class="jxr_linenumber" name="L1851" href="#L1851">1851</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> File getBase( MavenProject currentProject )
<a class="jxr_linenumber" name="L1852" href="#L1852">1852</a>     {
<a class="jxr_linenumber" name="L1853" href="#L1853">1853</a>         <strong class="jxr_keyword">return</strong> currentProject.getBasedir() != <strong class="jxr_keyword">null</strong> ? currentProject.getBasedir() : <strong class="jxr_keyword">new</strong> File( <span class="jxr_string">""</span> );
<a class="jxr_linenumber" name="L1854" href="#L1854">1854</a>     }
<a class="jxr_linenumber" name="L1855" href="#L1855">1855</a> 
<a class="jxr_linenumber" name="L1856" href="#L1856">1856</a> 
<a class="jxr_linenumber" name="L1857" href="#L1857">1857</a>     <strong class="jxr_keyword">protected</strong> File getOutputDirectory()
<a class="jxr_linenumber" name="L1858" href="#L1858">1858</a>     {
<a class="jxr_linenumber" name="L1859" href="#L1859">1859</a>         <strong class="jxr_keyword">return</strong> outputDirectory;
<a class="jxr_linenumber" name="L1860" href="#L1860">1860</a>     }
<a class="jxr_linenumber" name="L1861" href="#L1861">1861</a> 
<a class="jxr_linenumber" name="L1862" href="#L1862">1862</a> 
<a class="jxr_linenumber" name="L1863" href="#L1863">1863</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setOutputDirectory( File _outputDirectory )
<a class="jxr_linenumber" name="L1864" href="#L1864">1864</a>     {
<a class="jxr_linenumber" name="L1865" href="#L1865">1865</a>         outputDirectory = _outputDirectory;
<a class="jxr_linenumber" name="L1866" href="#L1866">1866</a>     }
<a class="jxr_linenumber" name="L1867" href="#L1867">1867</a> 
<a class="jxr_linenumber" name="L1868" href="#L1868">1868</a> 
<a class="jxr_linenumber" name="L1869" href="#L1869">1869</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> addLocalPackages( File outputDirectory, Analyzer analyzer ) <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="L1870" href="#L1870">1870</a>     {
<a class="jxr_linenumber" name="L1871" href="#L1871">1871</a>         Packages packages = <strong class="jxr_keyword">new</strong> Packages();
<a class="jxr_linenumber" name="L1872" href="#L1872">1872</a> 
<a class="jxr_linenumber" name="L1873" href="#L1873">1873</a>         <strong class="jxr_keyword">if</strong> ( outputDirectory != <strong class="jxr_keyword">null</strong> &amp;&amp; outputDirectory.isDirectory() )
<a class="jxr_linenumber" name="L1874" href="#L1874">1874</a>         {
<a class="jxr_linenumber" name="L1875" href="#L1875">1875</a>             <em class="jxr_comment">// scan classes directory for potential packages</em>
<a class="jxr_linenumber" name="L1876" href="#L1876">1876</a>             DirectoryScanner scanner = <strong class="jxr_keyword">new</strong> DirectoryScanner();
<a class="jxr_linenumber" name="L1877" href="#L1877">1877</a>             scanner.setBasedir( outputDirectory );
<a class="jxr_linenumber" name="L1878" href="#L1878">1878</a>             scanner.setIncludes( <strong class="jxr_keyword">new</strong> String[]
<a class="jxr_linenumber" name="L1879" href="#L1879">1879</a>                 { <span class="jxr_string">"**/*.class"</span> } );
<a class="jxr_linenumber" name="L1880" href="#L1880">1880</a> 
<a class="jxr_linenumber" name="L1881" href="#L1881">1881</a>             scanner.addDefaultExcludes();
<a class="jxr_linenumber" name="L1882" href="#L1882">1882</a>             scanner.scan();
<a class="jxr_linenumber" name="L1883" href="#L1883">1883</a> 
<a class="jxr_linenumber" name="L1884" href="#L1884">1884</a>             String[] paths = scanner.getIncludedFiles();
<a class="jxr_linenumber" name="L1885" href="#L1885">1885</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; paths.length; i++ )
<a class="jxr_linenumber" name="L1886" href="#L1886">1886</a>             {
<a class="jxr_linenumber" name="L1887" href="#L1887">1887</a>                 packages.put( analyzer.getPackageRef( getPackageName( paths[i] ) ) );
<a class="jxr_linenumber" name="L1888" href="#L1888">1888</a>             }
<a class="jxr_linenumber" name="L1889" href="#L1889">1889</a>         }
<a class="jxr_linenumber" name="L1890" href="#L1890">1890</a> 
<a class="jxr_linenumber" name="L1891" href="#L1891">1891</a>         Packages exportedPkgs = <strong class="jxr_keyword">new</strong> Packages();
<a class="jxr_linenumber" name="L1892" href="#L1892">1892</a>         Packages privatePkgs = <strong class="jxr_keyword">new</strong> Packages();
<a class="jxr_linenumber" name="L1893" href="#L1893">1893</a> 
<a class="jxr_linenumber" name="L1894" href="#L1894">1894</a>         <strong class="jxr_keyword">boolean</strong> noprivatePackages = <span class="jxr_string">"!*"</span>.equals( analyzer.getProperty( Analyzer.PRIVATE_PACKAGE ) );
<a class="jxr_linenumber" name="L1895" href="#L1895">1895</a> 
<a class="jxr_linenumber" name="L1896" href="#L1896">1896</a>         <strong class="jxr_keyword">for</strong> ( PackageRef pkg : packages.keySet() )
<a class="jxr_linenumber" name="L1897" href="#L1897">1897</a>         {
<a class="jxr_linenumber" name="L1898" href="#L1898">1898</a>             <em class="jxr_comment">// mark all source packages as private by default (can be overridden by export list)</em>
<a class="jxr_linenumber" name="L1899" href="#L1899">1899</a>             privatePkgs.put( pkg );
<a class="jxr_linenumber" name="L1900" href="#L1900">1900</a> 
<a class="jxr_linenumber" name="L1901" href="#L1901">1901</a>             <em class="jxr_comment">// we can't export the default package (".") and we shouldn't export internal packages</em>
<a class="jxr_linenumber" name="L1902" href="#L1902">1902</a>             String fqn = pkg.getFQN();
<a class="jxr_linenumber" name="L1903" href="#L1903">1903</a>             <strong class="jxr_keyword">if</strong> ( noprivatePackages || !( <span class="jxr_string">"."</span>.equals( fqn ) || fqn.contains( <span class="jxr_string">".internal"</span> ) || fqn.contains( <span class="jxr_string">".impl"</span> ) ) )
<a class="jxr_linenumber" name="L1904" href="#L1904">1904</a>             {
<a class="jxr_linenumber" name="L1905" href="#L1905">1905</a>                 exportedPkgs.put( pkg );
<a class="jxr_linenumber" name="L1906" href="#L1906">1906</a>             }
<a class="jxr_linenumber" name="L1907" href="#L1907">1907</a>         }
<a class="jxr_linenumber" name="L1908" href="#L1908">1908</a> 
<a class="jxr_linenumber" name="L1909" href="#L1909">1909</a>         Properties properties = analyzer.getProperties();
<a class="jxr_linenumber" name="L1910" href="#L1910">1910</a>         String exported = properties.getProperty( Analyzer.EXPORT_PACKAGE );
<a class="jxr_linenumber" name="L1911" href="#L1911">1911</a>         <strong class="jxr_keyword">if</strong> ( exported == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1912" href="#L1912">1912</a>         {
<a class="jxr_linenumber" name="L1913" href="#L1913">1913</a>             <strong class="jxr_keyword">if</strong> ( !properties.containsKey( Analyzer.EXPORT_CONTENTS ) )
<a class="jxr_linenumber" name="L1914" href="#L1914">1914</a>             {
<a class="jxr_linenumber" name="L1915" href="#L1915">1915</a>                 <em class="jxr_comment">// no -exportcontents overriding the exports, so use our computed list</em>
<a class="jxr_linenumber" name="L1916" href="#L1916">1916</a>                 <strong class="jxr_keyword">for</strong> ( Attrs attrs : exportedPkgs.values() )
<a class="jxr_linenumber" name="L1917" href="#L1917">1917</a>                 {
<a class="jxr_linenumber" name="L1918" href="#L1918">1918</a>                     attrs.put( Constants.SPLIT_PACKAGE_DIRECTIVE, <span class="jxr_string">"merge-first"</span> );
<a class="jxr_linenumber" name="L1919" href="#L1919">1919</a>                 }
<a class="jxr_linenumber" name="L1920" href="#L1920">1920</a>                 properties.setProperty( Analyzer.EXPORT_PACKAGE, Processor.printClauses( exportedPkgs ) );
<a class="jxr_linenumber" name="L1921" href="#L1921">1921</a>             }
<a class="jxr_linenumber" name="L1922" href="#L1922">1922</a>             <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1923" href="#L1923">1923</a>             {
<a class="jxr_linenumber" name="L1924" href="#L1924">1924</a>                 <em class="jxr_comment">// leave Export-Package empty (but non-null) as we have -exportcontents</em>
<a class="jxr_linenumber" name="L1925" href="#L1925">1925</a>                 properties.setProperty( Analyzer.EXPORT_PACKAGE, <span class="jxr_string">""</span> );
<a class="jxr_linenumber" name="L1926" href="#L1926">1926</a>             }
<a class="jxr_linenumber" name="L1927" href="#L1927">1927</a>         }
<a class="jxr_linenumber" name="L1928" href="#L1928">1928</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( exported.indexOf( LOCAL_PACKAGES ) &gt;= 0 )
<a class="jxr_linenumber" name="L1929" href="#L1929">1929</a>         {
<a class="jxr_linenumber" name="L1930" href="#L1930">1930</a>             String newExported = StringUtils.replace( exported, LOCAL_PACKAGES, Processor.printClauses( exportedPkgs ) );
<a class="jxr_linenumber" name="L1931" href="#L1931">1931</a>             properties.setProperty( Analyzer.EXPORT_PACKAGE, newExported );
<a class="jxr_linenumber" name="L1932" href="#L1932">1932</a>         }
<a class="jxr_linenumber" name="L1933" href="#L1933">1933</a> 
<a class="jxr_linenumber" name="L1934" href="#L1934">1934</a>         String internal = properties.getProperty( Analyzer.PRIVATE_PACKAGE );
<a class="jxr_linenumber" name="L1935" href="#L1935">1935</a>         <strong class="jxr_keyword">if</strong> ( internal == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1936" href="#L1936">1936</a>         {
<a class="jxr_linenumber" name="L1937" href="#L1937">1937</a>             <strong class="jxr_keyword">if</strong> ( !privatePkgs.isEmpty() )
<a class="jxr_linenumber" name="L1938" href="#L1938">1938</a>             {
<a class="jxr_linenumber" name="L1939" href="#L1939">1939</a>                 <strong class="jxr_keyword">for</strong> ( Attrs attrs : privatePkgs.values() )
<a class="jxr_linenumber" name="L1940" href="#L1940">1940</a>                 {
<a class="jxr_linenumber" name="L1941" href="#L1941">1941</a>                     attrs.put( Constants.SPLIT_PACKAGE_DIRECTIVE, <span class="jxr_string">"merge-first"</span> );
<a class="jxr_linenumber" name="L1942" href="#L1942">1942</a>                 }
<a class="jxr_linenumber" name="L1943" href="#L1943">1943</a>                 properties.setProperty( Analyzer.PRIVATE_PACKAGE, Processor.printClauses( privatePkgs ) );
<a class="jxr_linenumber" name="L1944" href="#L1944">1944</a>             }
<a class="jxr_linenumber" name="L1945" href="#L1945">1945</a>             <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L1946" href="#L1946">1946</a>             {
<a class="jxr_linenumber" name="L1947" href="#L1947">1947</a>                 <em class="jxr_comment">// if there are really no private packages then use "!*" as this will keep the Bnd Tool happy</em>
<a class="jxr_linenumber" name="L1948" href="#L1948">1948</a>                 properties.setProperty( Analyzer.PRIVATE_PACKAGE, <span class="jxr_string">"!*"</span> );
<a class="jxr_linenumber" name="L1949" href="#L1949">1949</a>             }
<a class="jxr_linenumber" name="L1950" href="#L1950">1950</a>         }
<a class="jxr_linenumber" name="L1951" href="#L1951">1951</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( internal.indexOf( LOCAL_PACKAGES ) &gt;= 0 )
<a class="jxr_linenumber" name="L1952" href="#L1952">1952</a>         {
<a class="jxr_linenumber" name="L1953" href="#L1953">1953</a>             String newInternal = StringUtils.replace( internal, LOCAL_PACKAGES, Processor.printClauses( privatePkgs ) );
<a class="jxr_linenumber" name="L1954" href="#L1954">1954</a>             properties.setProperty( Analyzer.PRIVATE_PACKAGE, newInternal );
<a class="jxr_linenumber" name="L1955" href="#L1955">1955</a>         }
<a class="jxr_linenumber" name="L1956" href="#L1956">1956</a>     }
<a class="jxr_linenumber" name="L1957" href="#L1957">1957</a> 
<a class="jxr_linenumber" name="L1958" href="#L1958">1958</a> 
<a class="jxr_linenumber" name="L1959" href="#L1959">1959</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String getPackageName( String filename )
<a class="jxr_linenumber" name="L1960" href="#L1960">1960</a>     {
<a class="jxr_linenumber" name="L1961" href="#L1961">1961</a>         <strong class="jxr_keyword">int</strong> n = filename.lastIndexOf( File.separatorChar );
<a class="jxr_linenumber" name="L1962" href="#L1962">1962</a>         <strong class="jxr_keyword">return</strong> n &lt; 0 ? <span class="jxr_string">"."</span> : filename.substring( 0, n ).replace( File.separatorChar, '.' );
<a class="jxr_linenumber" name="L1963" href="#L1963">1963</a>     }
<a class="jxr_linenumber" name="L1964" href="#L1964">1964</a> 
<a class="jxr_linenumber" name="L1965" href="#L1965">1965</a> 
<a class="jxr_linenumber" name="L1966" href="#L1966">1966</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;Resource&gt; getMavenResources( MavenProject currentProject, <strong class="jxr_keyword">boolean</strong> test )
<a class="jxr_linenumber" name="L1967" href="#L1967">1967</a>     {
<a class="jxr_linenumber" name="L1968" href="#L1968">1968</a>         List&lt;Resource&gt; resources = <strong class="jxr_keyword">new</strong> ArrayList&lt;Resource&gt;( test ? currentProject.getTestResources() : currentProject.getResources() );
<a class="jxr_linenumber" name="L1969" href="#L1969">1969</a> 
<a class="jxr_linenumber" name="L1970" href="#L1970">1970</a>         <strong class="jxr_keyword">if</strong> ( currentProject.getCompileSourceRoots() != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L1971" href="#L1971">1971</a>         {
<a class="jxr_linenumber" name="L1972" href="#L1972">1972</a>             <em class="jxr_comment">// also scan for any "packageinfo" files lurking in the source folders</em>
<a class="jxr_linenumber" name="L1973" href="#L1973">1973</a>             <strong class="jxr_keyword">final</strong> List&lt;String&gt; packageInfoIncludes = Collections.singletonList( <span class="jxr_string">"**/packageinfo"</span> );
<a class="jxr_linenumber" name="L1974" href="#L1974">1974</a>             <strong class="jxr_keyword">for</strong> ( Iterator&lt;String&gt; i = currentProject.getCompileSourceRoots().iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L1975" href="#L1975">1975</a>             {
<a class="jxr_linenumber" name="L1976" href="#L1976">1976</a>                 String sourceRoot = i.next();
<a class="jxr_linenumber" name="L1977" href="#L1977">1977</a>                 Resource packageInfoResource = <strong class="jxr_keyword">new</strong> Resource();
<a class="jxr_linenumber" name="L1978" href="#L1978">1978</a>                 packageInfoResource.setDirectory( sourceRoot );
<a class="jxr_linenumber" name="L1979" href="#L1979">1979</a>                 packageInfoResource.setIncludes( packageInfoIncludes );
<a class="jxr_linenumber" name="L1980" href="#L1980">1980</a>                 resources.add( packageInfoResource );
<a class="jxr_linenumber" name="L1981" href="#L1981">1981</a>             }
<a class="jxr_linenumber" name="L1982" href="#L1982">1982</a>         }
<a class="jxr_linenumber" name="L1983" href="#L1983">1983</a> 
<a class="jxr_linenumber" name="L1984" href="#L1984">1984</a>         <strong class="jxr_keyword">return</strong> resources;
<a class="jxr_linenumber" name="L1985" href="#L1985">1985</a>     }
<a class="jxr_linenumber" name="L1986" href="#L1986">1986</a> 
<a class="jxr_linenumber" name="L1987" href="#L1987">1987</a> 
<a class="jxr_linenumber" name="L1988" href="#L1988">1988</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> String getMavenResourcePaths( MavenProject currentProject, <strong class="jxr_keyword">boolean</strong> test )
<a class="jxr_linenumber" name="L1989" href="#L1989">1989</a>     {
<a class="jxr_linenumber" name="L1990" href="#L1990">1990</a>         <strong class="jxr_keyword">final</strong> String basePath = currentProject.getBasedir().getAbsolutePath();
<a class="jxr_linenumber" name="L1991" href="#L1991">1991</a> 
<a class="jxr_linenumber" name="L1992" href="#L1992">1992</a>         Set&lt;String&gt; pathSet = <strong class="jxr_keyword">new</strong> LinkedHashSet&lt;String&gt;();
<a class="jxr_linenumber" name="L1993" href="#L1993">1993</a>         <strong class="jxr_keyword">for</strong> ( Iterator&lt;Resource&gt; i = getMavenResources( currentProject, test ).iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L1994" href="#L1994">1994</a>         {
<a class="jxr_linenumber" name="L1995" href="#L1995">1995</a>             Resource resource = i.next();
<a class="jxr_linenumber" name="L1996" href="#L1996">1996</a> 
<a class="jxr_linenumber" name="L1997" href="#L1997">1997</a>             <strong class="jxr_keyword">final</strong> String sourcePath = resource.getDirectory();
<a class="jxr_linenumber" name="L1998" href="#L1998">1998</a>             <strong class="jxr_keyword">final</strong> String targetPath = resource.getTargetPath();
<a class="jxr_linenumber" name="L1999" href="#L1999">1999</a> 
<a class="jxr_linenumber" name="L2000" href="#L2000">2000</a>             <em class="jxr_comment">// ignore empty or non-local resources</em>
<a class="jxr_linenumber" name="L2001" href="#L2001">2001</a>             <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">new</strong> File( sourcePath ).exists() &amp;&amp; ( ( targetPath == <strong class="jxr_keyword">null</strong> ) || ( targetPath.indexOf( <span class="jxr_string">".."</span> ) &lt; 0 ) ) )
<a class="jxr_linenumber" name="L2002" href="#L2002">2002</a>             {
<a class="jxr_linenumber" name="L2003" href="#L2003">2003</a>                 DirectoryScanner scanner = <strong class="jxr_keyword">new</strong> DirectoryScanner();
<a class="jxr_linenumber" name="L2004" href="#L2004">2004</a> 
<a class="jxr_linenumber" name="L2005" href="#L2005">2005</a>                 scanner.setBasedir( sourcePath );
<a class="jxr_linenumber" name="L2006" href="#L2006">2006</a>                 <strong class="jxr_keyword">if</strong> ( resource.getIncludes() != <strong class="jxr_keyword">null</strong> &amp;&amp; !resource.getIncludes().isEmpty() )
<a class="jxr_linenumber" name="L2007" href="#L2007">2007</a>                 {
<a class="jxr_linenumber" name="L2008" href="#L2008">2008</a>                     scanner.setIncludes( resource.getIncludes().toArray( EMPTY_STRING_ARRAY ) );
<a class="jxr_linenumber" name="L2009" href="#L2009">2009</a>                 }
<a class="jxr_linenumber" name="L2010" href="#L2010">2010</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L2011" href="#L2011">2011</a>                 {
<a class="jxr_linenumber" name="L2012" href="#L2012">2012</a>                     scanner.setIncludes( DEFAULT_INCLUDES );
<a class="jxr_linenumber" name="L2013" href="#L2013">2013</a>                 }
<a class="jxr_linenumber" name="L2014" href="#L2014">2014</a> 
<a class="jxr_linenumber" name="L2015" href="#L2015">2015</a>                 <strong class="jxr_keyword">if</strong> ( resource.getExcludes() != <strong class="jxr_keyword">null</strong> &amp;&amp; !resource.getExcludes().isEmpty() )
<a class="jxr_linenumber" name="L2016" href="#L2016">2016</a>                 {
<a class="jxr_linenumber" name="L2017" href="#L2017">2017</a>                     scanner.setExcludes( resource.getExcludes().toArray( EMPTY_STRING_ARRAY ) );
<a class="jxr_linenumber" name="L2018" href="#L2018">2018</a>                 }
<a class="jxr_linenumber" name="L2019" href="#L2019">2019</a> 
<a class="jxr_linenumber" name="L2020" href="#L2020">2020</a>                 scanner.addDefaultExcludes();
<a class="jxr_linenumber" name="L2021" href="#L2021">2021</a>                 scanner.scan();
<a class="jxr_linenumber" name="L2022" href="#L2022">2022</a> 
<a class="jxr_linenumber" name="L2023" href="#L2023">2023</a>                 List&lt;String&gt; includedFiles = Arrays.asList( scanner.getIncludedFiles() );
<a class="jxr_linenumber" name="L2024" href="#L2024">2024</a> 
<a class="jxr_linenumber" name="L2025" href="#L2025">2025</a>                 <strong class="jxr_keyword">for</strong> ( Iterator&lt;String&gt; j = includedFiles.iterator(); j.hasNext(); )
<a class="jxr_linenumber" name="L2026" href="#L2026">2026</a>                 {
<a class="jxr_linenumber" name="L2027" href="#L2027">2027</a>                     String name = j.next();
<a class="jxr_linenumber" name="L2028" href="#L2028">2028</a>                     String path = sourcePath + '/' + name;
<a class="jxr_linenumber" name="L2029" href="#L2029">2029</a> 
<a class="jxr_linenumber" name="L2030" href="#L2030">2030</a>                     <em class="jxr_comment">// make relative to project</em>
<a class="jxr_linenumber" name="L2031" href="#L2031">2031</a>                     <strong class="jxr_keyword">if</strong> ( path.startsWith( basePath ) )
<a class="jxr_linenumber" name="L2032" href="#L2032">2032</a>                     {
<a class="jxr_linenumber" name="L2033" href="#L2033">2033</a>                         <strong class="jxr_keyword">if</strong> ( path.length() == basePath.length() )
<a class="jxr_linenumber" name="L2034" href="#L2034">2034</a>                         {
<a class="jxr_linenumber" name="L2035" href="#L2035">2035</a>                             path = <span class="jxr_string">"."</span>;
<a class="jxr_linenumber" name="L2036" href="#L2036">2036</a>                         }
<a class="jxr_linenumber" name="L2037" href="#L2037">2037</a>                         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L2038" href="#L2038">2038</a>                         {
<a class="jxr_linenumber" name="L2039" href="#L2039">2039</a>                             path = path.substring( basePath.length() + 1 );
<a class="jxr_linenumber" name="L2040" href="#L2040">2040</a>                         }
<a class="jxr_linenumber" name="L2041" href="#L2041">2041</a>                     }
<a class="jxr_linenumber" name="L2042" href="#L2042">2042</a> 
<a class="jxr_linenumber" name="L2043" href="#L2043">2043</a>                     <em class="jxr_comment">// replace windows backslash with a slash</em>
<a class="jxr_linenumber" name="L2044" href="#L2044">2044</a>                     <em class="jxr_comment">// this is a workaround for a problem with bnd 0.0.189</em>
<a class="jxr_linenumber" name="L2045" href="#L2045">2045</a>                     <strong class="jxr_keyword">if</strong> ( File.separatorChar != '/' )
<a class="jxr_linenumber" name="L2046" href="#L2046">2046</a>                     {
<a class="jxr_linenumber" name="L2047" href="#L2047">2047</a>                         name = name.replace( File.separatorChar, '/' );
<a class="jxr_linenumber" name="L2048" href="#L2048">2048</a>                         path = path.replace( File.separatorChar, '/' );
<a class="jxr_linenumber" name="L2049" href="#L2049">2049</a>                     }
<a class="jxr_linenumber" name="L2050" href="#L2050">2050</a> 
<a class="jxr_linenumber" name="L2051" href="#L2051">2051</a>                     <em class="jxr_comment">// copy to correct place</em>
<a class="jxr_linenumber" name="L2052" href="#L2052">2052</a>                     path = name + '=' + path;
<a class="jxr_linenumber" name="L2053" href="#L2053">2053</a>                     <strong class="jxr_keyword">if</strong> ( targetPath != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L2054" href="#L2054">2054</a>                     {
<a class="jxr_linenumber" name="L2055" href="#L2055">2055</a>                         path = targetPath + '/' + path;
<a class="jxr_linenumber" name="L2056" href="#L2056">2056</a>                     }
<a class="jxr_linenumber" name="L2057" href="#L2057">2057</a> 
<a class="jxr_linenumber" name="L2058" href="#L2058">2058</a>                     <em class="jxr_comment">// use Bnd filtering?</em>
<a class="jxr_linenumber" name="L2059" href="#L2059">2059</a>                     <strong class="jxr_keyword">if</strong> ( resource.isFiltering() )
<a class="jxr_linenumber" name="L2060" href="#L2060">2060</a>                     {
<a class="jxr_linenumber" name="L2061" href="#L2061">2061</a>                         path = '{' + path + '}';
<a class="jxr_linenumber" name="L2062" href="#L2062">2062</a>                     }
<a class="jxr_linenumber" name="L2063" href="#L2063">2063</a> 
<a class="jxr_linenumber" name="L2064" href="#L2064">2064</a>                     pathSet.add( path );
<a class="jxr_linenumber" name="L2065" href="#L2065">2065</a>                 }
<a class="jxr_linenumber" name="L2066" href="#L2066">2066</a>             }
<a class="jxr_linenumber" name="L2067" href="#L2067">2067</a>         }
<a class="jxr_linenumber" name="L2068" href="#L2068">2068</a> 
<a class="jxr_linenumber" name="L2069" href="#L2069">2069</a>         StringBuffer resourcePaths = <strong class="jxr_keyword">new</strong> StringBuffer();
<a class="jxr_linenumber" name="L2070" href="#L2070">2070</a>         <strong class="jxr_keyword">for</strong> ( Iterator&lt;String&gt; i = pathSet.iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L2071" href="#L2071">2071</a>         {
<a class="jxr_linenumber" name="L2072" href="#L2072">2072</a>             resourcePaths.append( i.next() );
<a class="jxr_linenumber" name="L2073" href="#L2073">2073</a>             <strong class="jxr_keyword">if</strong> ( i.hasNext() )
<a class="jxr_linenumber" name="L2074" href="#L2074">2074</a>             {
<a class="jxr_linenumber" name="L2075" href="#L2075">2075</a>                 resourcePaths.append( ',' );
<a class="jxr_linenumber" name="L2076" href="#L2076">2076</a>             }
<a class="jxr_linenumber" name="L2077" href="#L2077">2077</a>         }
<a class="jxr_linenumber" name="L2078" href="#L2078">2078</a> 
<a class="jxr_linenumber" name="L2079" href="#L2079">2079</a>         <strong class="jxr_keyword">return</strong> resourcePaths.toString();
<a class="jxr_linenumber" name="L2080" href="#L2080">2080</a>     }
<a class="jxr_linenumber" name="L2081" href="#L2081">2081</a> 
<a class="jxr_linenumber" name="L2082" href="#L2082">2082</a> 
<a class="jxr_linenumber" name="L2083" href="#L2083">2083</a>     <strong class="jxr_keyword">protected</strong> Collection&lt;Artifact&gt; getEmbeddableArtifacts( MavenProject currentProject, DependencyNode dependencyGraph, Analyzer analyzer )
<a class="jxr_linenumber" name="L2084" href="#L2084">2084</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
<a class="jxr_linenumber" name="L2085" href="#L2085">2085</a>     {
<a class="jxr_linenumber" name="L2086" href="#L2086">2086</a>         <strong class="jxr_keyword">final</strong> Collection&lt;Artifact&gt; artifacts;
<a class="jxr_linenumber" name="L2087" href="#L2087">2087</a> 
<a class="jxr_linenumber" name="L2088" href="#L2088">2088</a>         String embedTransitive = analyzer.getProperty( DependencyEmbedder.EMBED_TRANSITIVE );
<a class="jxr_linenumber" name="L2089" href="#L2089">2089</a>         <strong class="jxr_keyword">if</strong> ( Boolean.valueOf( embedTransitive ).booleanValue() )
<a class="jxr_linenumber" name="L2090" href="#L2090">2090</a>         {
<a class="jxr_linenumber" name="L2091" href="#L2091">2091</a>             <em class="jxr_comment">// includes transitive dependencies</em>
<a class="jxr_linenumber" name="L2092" href="#L2092">2092</a>             artifacts = currentProject.getArtifacts();
<a class="jxr_linenumber" name="L2093" href="#L2093">2093</a>         }
<a class="jxr_linenumber" name="L2094" href="#L2094">2094</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L2095" href="#L2095">2095</a>         {
<a class="jxr_linenumber" name="L2096" href="#L2096">2096</a>             <em class="jxr_comment">// only includes direct dependencies</em>
<a class="jxr_linenumber" name="L2097" href="#L2097">2097</a>             artifacts = currentProject.getDependencyArtifacts();
<a class="jxr_linenumber" name="L2098" href="#L2098">2098</a>         }
<a class="jxr_linenumber" name="L2099" href="#L2099">2099</a> 
<a class="jxr_linenumber" name="L2100" href="#L2100">2100</a>         <strong class="jxr_keyword">return</strong> getSelectedDependencies( dependencyGraph, artifacts );
<a class="jxr_linenumber" name="L2101" href="#L2101">2101</a>     }
<a class="jxr_linenumber" name="L2102" href="#L2102">2102</a> 
<a class="jxr_linenumber" name="L2103" href="#L2103">2103</a> 
<a class="jxr_linenumber" name="L2104" href="#L2104">2104</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> addMavenSourcePath( MavenProject currentProject, Analyzer analyzer, Log log )
<a class="jxr_linenumber" name="L2105" href="#L2105">2105</a>     {
<a class="jxr_linenumber" name="L2106" href="#L2106">2106</a>         <em class="jxr_comment">// pass maven source paths onto BND analyzer</em>
<a class="jxr_linenumber" name="L2107" href="#L2107">2107</a>         StringBuilder mavenSourcePaths = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="L2108" href="#L2108">2108</a>         StringBuilder mavenTestSourcePaths = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="L2109" href="#L2109">2109</a>         Map&lt;StringBuilder, List&lt;String&gt;&gt; map = <strong class="jxr_keyword">new</strong> HashMap&lt;StringBuilder, List&lt;String&gt;&gt;(2);
<a class="jxr_linenumber" name="L2110" href="#L2110">2110</a>         map.put(mavenSourcePaths, currentProject.getCompileSourceRoots() );
<a class="jxr_linenumber" name="L2111" href="#L2111">2111</a>         map.put(mavenTestSourcePaths, currentProject.getTestCompileSourceRoots() );
<a class="jxr_linenumber" name="L2112" href="#L2112">2112</a>         <strong class="jxr_keyword">for</strong> ( Map.Entry&lt;StringBuilder, List&lt;String&gt;&gt; entry : map.entrySet() )
<a class="jxr_linenumber" name="L2113" href="#L2113">2113</a>         {
<a class="jxr_linenumber" name="L2114" href="#L2114">2114</a>             List&lt;String&gt; compileSourceRoots = entry.getValue();
<a class="jxr_linenumber" name="L2115" href="#L2115">2115</a>             <strong class="jxr_keyword">if</strong> ( compileSourceRoots != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L2116" href="#L2116">2116</a>             {
<a class="jxr_linenumber" name="L2117" href="#L2117">2117</a>                 StringBuilder sourcePaths = entry.getKey();
<a class="jxr_linenumber" name="L2118" href="#L2118">2118</a>                 <strong class="jxr_keyword">for</strong> ( Iterator&lt;String&gt; i = compileSourceRoots.iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L2119" href="#L2119">2119</a>                 {
<a class="jxr_linenumber" name="L2120" href="#L2120">2120</a>                     <strong class="jxr_keyword">if</strong> ( sourcePaths.length() &gt; 0 )
<a class="jxr_linenumber" name="L2121" href="#L2121">2121</a>                     {
<a class="jxr_linenumber" name="L2122" href="#L2122">2122</a>                         sourcePaths.append( ',' );
<a class="jxr_linenumber" name="L2123" href="#L2123">2123</a>                     }
<a class="jxr_linenumber" name="L2124" href="#L2124">2124</a>                     sourcePaths.append( i.next() );
<a class="jxr_linenumber" name="L2125" href="#L2125">2125</a>                 }
<a class="jxr_linenumber" name="L2126" href="#L2126">2126</a>             }
<a class="jxr_linenumber" name="L2127" href="#L2127">2127</a>         }
<a class="jxr_linenumber" name="L2128" href="#L2128">2128</a>         <strong class="jxr_keyword">final</strong> String sourcePath = analyzer.getProperty( Analyzer.SOURCEPATH );
<a class="jxr_linenumber" name="L2129" href="#L2129">2129</a>         <strong class="jxr_keyword">if</strong> ( sourcePath != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L2130" href="#L2130">2130</a>         {
<a class="jxr_linenumber" name="L2131" href="#L2131">2131</a>             <strong class="jxr_keyword">if</strong> ( sourcePath.contains(MAVEN_SOURCES) || sourcePath.contains(MAVEN_TEST_RESOURCES) )
<a class="jxr_linenumber" name="L2132" href="#L2132">2132</a>             {
<a class="jxr_linenumber" name="L2133" href="#L2133">2133</a>                 String combinedSource = StringUtils.replace( sourcePath, MAVEN_SOURCES, mavenSourcePaths.toString() );
<a class="jxr_linenumber" name="L2134" href="#L2134">2134</a>                 combinedSource = StringUtils.replace( combinedSource, MAVEN_TEST_SOURCES, mavenTestSourcePaths.toString() );
<a class="jxr_linenumber" name="L2135" href="#L2135">2135</a>                 <strong class="jxr_keyword">if</strong> ( combinedSource.length() &gt; 0 )
<a class="jxr_linenumber" name="L2136" href="#L2136">2136</a>                 {
<a class="jxr_linenumber" name="L2137" href="#L2137">2137</a>                     analyzer.setProperty( Analyzer.SOURCEPATH, combinedSource );
<a class="jxr_linenumber" name="L2138" href="#L2138">2138</a>                 }
<a class="jxr_linenumber" name="L2139" href="#L2139">2139</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L2140" href="#L2140">2140</a>                 {
<a class="jxr_linenumber" name="L2141" href="#L2141">2141</a>                     analyzer.unsetProperty( Analyzer.SOURCEPATH );
<a class="jxr_linenumber" name="L2142" href="#L2142">2142</a>                 }
<a class="jxr_linenumber" name="L2143" href="#L2143">2143</a>             }
<a class="jxr_linenumber" name="L2144" href="#L2144">2144</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenSourcePaths.length() &gt; 0 )
<a class="jxr_linenumber" name="L2145" href="#L2145">2145</a>             {
<a class="jxr_linenumber" name="L2146" href="#L2146">2146</a>                 log.warn( Analyzer.SOURCEPATH + <span class="jxr_string">": overriding "</span> + mavenSourcePaths + <span class="jxr_string">" with "</span> + sourcePath + <span class="jxr_string">" (add "</span>
<a class="jxr_linenumber" name="L2147" href="#L2147">2147</a>                     + MAVEN_SOURCES + <span class="jxr_string">" if you want to include the maven sources)"</span> );
<a class="jxr_linenumber" name="L2148" href="#L2148">2148</a>             }
<a class="jxr_linenumber" name="L2149" href="#L2149">2149</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenTestSourcePaths.length() &gt; 0 )
<a class="jxr_linenumber" name="L2150" href="#L2150">2150</a>             {
<a class="jxr_linenumber" name="L2151" href="#L2151">2151</a>                 log.warn( Analyzer.SOURCEPATH + <span class="jxr_string">": overriding "</span> + mavenTestSourcePaths + <span class="jxr_string">" with "</span> + sourcePath + <span class="jxr_string">" (add "</span>
<a class="jxr_linenumber" name="L2152" href="#L2152">2152</a>                         + MAVEN_TEST_SOURCES + <span class="jxr_string">" if you want to include the maven test sources)"</span> );
<a class="jxr_linenumber" name="L2153" href="#L2153">2153</a>             }
<a class="jxr_linenumber" name="L2154" href="#L2154">2154</a>         }
<a class="jxr_linenumber" name="L2155" href="#L2155">2155</a>         <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( mavenSourcePaths.length() &gt; 0 )
<a class="jxr_linenumber" name="L2156" href="#L2156">2156</a>         {
<a class="jxr_linenumber" name="L2157" href="#L2157">2157</a>             analyzer.setProperty( Analyzer.SOURCEPATH, mavenSourcePaths.toString() );
<a class="jxr_linenumber" name="L2158" href="#L2158">2158</a>         }
<a class="jxr_linenumber" name="L2159" href="#L2159">2159</a>     }
<a class="jxr_linenumber" name="L2160" href="#L2160">2160</a> 
<a class="jxr_linenumber" name="L2161" href="#L2161">2161</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2162" href="#L2162">2162</a> <em class="jxr_javadoccomment">     * Downgrade the message "Classes found in the wrong directory" to a warning. This allows the plugin</em>
<a class="jxr_linenumber" name="L2163" href="#L2163">2163</a> <em class="jxr_javadoccomment">     * to process a multi-release JAR (see JEP 238, <a href="http://openjdk.java.net/jeps/238)" target="alexandria_uri">http://openjdk.java.net/jeps/238)</a>.</em>
<a class="jxr_linenumber" name="L2164" href="#L2164">2164</a> <em class="jxr_javadoccomment">     * </em>
<a class="jxr_linenumber" name="L2165" href="#L2165">2165</a> <em class="jxr_javadoccomment">     * Note that the version-specific paths will NOT be visible at runtime nor processed by bnd for</em>
<a class="jxr_linenumber" name="L2166" href="#L2166">2166</a> <em class="jxr_javadoccomment">     * imported packages etc. This will not be possible until a runtime solution for multi-release</em>
<a class="jxr_linenumber" name="L2167" href="#L2167">2167</a> <em class="jxr_javadoccomment">     * JARs exists in OSGi. This fix only allows these JARs to be processed at all and to be usable on</em>
<a class="jxr_linenumber" name="L2168" href="#L2168">2168</a> <em class="jxr_javadoccomment">     * Java 8 (and below), and also on Java 9 where the version-specific customizations are optional.</em>
<a class="jxr_linenumber" name="L2169" href="#L2169">2169</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L2170" href="#L2170">2170</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> includeJava9Fixups(MavenProject currentProject, Analyzer analyzer)
<a class="jxr_linenumber" name="L2171" href="#L2171">2171</a>     {
<a class="jxr_linenumber" name="L2172" href="#L2172">2172</a>         <strong class="jxr_keyword">final</strong> String classesInWrongDirError = <span class="jxr_string">"Classes found in the wrong directory"</span>;
<a class="jxr_linenumber" name="L2173" href="#L2173">2173</a>         <strong class="jxr_keyword">final</strong> String newFixup = <span class="jxr_string">"Classes found in the wrong directory;"</span>
<a class="jxr_linenumber" name="L2174" href="#L2174">2174</a>             + Analyzer.FIXUPMESSAGES_IS_DIRECTIVE + <span class="jxr_string">"="</span>
<a class="jxr_linenumber" name="L2175" href="#L2175">2175</a>             + Analyzer.FIXUPMESSAGES_IS_WARNING;
<a class="jxr_linenumber" name="L2176" href="#L2176">2176</a> 
<a class="jxr_linenumber" name="L2177" href="#L2177">2177</a>         String fixups = analyzer.getProperty(Analyzer.FIXUPMESSAGES);
<a class="jxr_linenumber" name="L2178" href="#L2178">2178</a>         <strong class="jxr_keyword">if</strong> (fixups != <strong class="jxr_keyword">null</strong> &amp;&amp; !fixups.isEmpty()) {
<a class="jxr_linenumber" name="L2179" href="#L2179">2179</a>             <strong class="jxr_keyword">if</strong> (!fixups.contains(classesInWrongDirError)) {
<a class="jxr_linenumber" name="L2180" href="#L2180">2180</a>                 fixups += <span class="jxr_string">","</span> + newFixup;
<a class="jxr_linenumber" name="L2181" href="#L2181">2181</a>             }
<a class="jxr_linenumber" name="L2182" href="#L2182">2182</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L2183" href="#L2183">2183</a>             fixups = newFixup;
<a class="jxr_linenumber" name="L2184" href="#L2184">2184</a>         }
<a class="jxr_linenumber" name="L2185" href="#L2185">2185</a>         analyzer.setProperty(Analyzer.FIXUPMESSAGES, fixups);
<a class="jxr_linenumber" name="L2186" href="#L2186">2186</a>     }
<a class="jxr_linenumber" name="L2187" href="#L2187">2187</a> 
<a class="jxr_linenumber" name="L2188" href="#L2188">2188</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2006&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>
