<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>AntPlugin xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
<a name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.felix.bundleplugin;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.io.FileOutputStream;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.io.OutputStream;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
<a name="27" href="#27">27</a>  
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.project.MavenProject;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.FileUtils;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.IOUtil;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.codehaus.plexus.util.StringUtils;
<a name="33" href="#33">33</a>  
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Builder;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> aQute.bnd.osgi.Jar;
<a name="36" href="#36">36</a>  
<a name="37" href="#37">37</a>  
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment">/**</em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> * Generate Ant script to create the bundle (you should run ant:ant first).</em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> *</em>
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * @goal ant</em>
<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * @requiresDependencyResolution test</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * @description generate Ant script to create the bundle</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> */</em>
<a name="45" href="#45">45</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/felix/bundleplugin/AntPlugin.html">AntPlugin</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/felix/bundleplugin/BundlePlugin.html">BundlePlugin</a>
<a name="46" href="#46">46</a>  {
<a name="47" href="#47">47</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String BUILD_XML = <span class="jxr_string">"/build.xml"</span>;
<a name="48" href="#48">48</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String BUILD_BND = <span class="jxr_string">"/maven-build.bnd"</span>;
<a name="49" href="#49">49</a>  
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> execute( MavenProject currentProject, Map originalInstructions, Properties properties,
<a name="52" href="#52">52</a>          Jar[] classpath ) <strong class="jxr_keyword">throws</strong> MojoExecutionException
<a name="53" href="#53">53</a>      {
<a name="54" href="#54">54</a>          <strong class="jxr_keyword">final</strong> String artifactId = getProject().getArtifactId();
<a name="55" href="#55">55</a>          <strong class="jxr_keyword">final</strong> String baseDir = getProject().getBasedir().getPath();
<a name="56" href="#56">56</a>  
<a name="57" href="#57">57</a>          <strong class="jxr_keyword">try</strong>
<a name="58" href="#58">58</a>          {
<a name="59" href="#59">59</a>              <em class="jxr_comment">// assemble bundle as usual, but don't save it - this way we have all the instructions we need</em>
<a name="60" href="#60">60</a>              Builder builder = buildOSGiBundle( currentProject, originalInstructions, properties, classpath );
<a name="61" href="#61">61</a>              Properties bndProperties = builder.getProperties();
<a name="62" href="#62">62</a>  
<a name="63" href="#63">63</a>              <em class="jxr_comment">// cleanup and remove all non-strings from the builder properties</em>
<a name="64" href="#64">64</a>              <strong class="jxr_keyword">for</strong> ( Iterator i = bndProperties.values().iterator(); i.hasNext(); )
<a name="65" href="#65">65</a>              {
<a name="66" href="#66">66</a>                  <strong class="jxr_keyword">if</strong> ( !( i.next() instanceof String ) )
<a name="67" href="#67">67</a>                  {
<a name="68" href="#68">68</a>                      i.remove();
<a name="69" href="#69">69</a>                  }
<a name="70" href="#70">70</a>              }
<a name="71" href="#71">71</a>  
<a name="72" href="#72">72</a>              <em class="jxr_comment">// save the BND generated bundle to the same output directory that maven uses</em>
<a name="73" href="#73">73</a>              bndProperties.setProperty( <span class="jxr_string">"-output"</span>, <span class="jxr_string">"${maven.build.dir}/${maven.build.finalName}.jar"</span> );
<a name="74" href="#74">74</a>  
<a name="75" href="#75">75</a>              OutputStream out = <strong class="jxr_keyword">new</strong> FileOutputStream( baseDir + BUILD_BND );
<a name="76" href="#76">76</a>              bndProperties.store( out, <span class="jxr_string">" Merged BND Instructions"</span> );
<a name="77" href="#77">77</a>              IOUtil.close( out );
<a name="78" href="#78">78</a>  
<a name="79" href="#79">79</a>              <em class="jxr_comment">// modify build template</em>
<a name="80" href="#80">80</a>              String buildXml = IOUtil.toString( getClass().getResourceAsStream( BUILD_XML ) );
<a name="81" href="#81">81</a>              buildXml = StringUtils.replace( buildXml, <span class="jxr_string">"BND_VERSION"</span>, builder.getVersion() );
<a name="82" href="#82">82</a>              buildXml = StringUtils.replace( buildXml, <span class="jxr_string">"ARTIFACT_ID"</span>, artifactId );
<a name="83" href="#83">83</a>  
<a name="84" href="#84">84</a>              FileUtils.fileWrite( baseDir + BUILD_XML, buildXml );
<a name="85" href="#85">85</a>  
<a name="86" href="#86">86</a>              <em class="jxr_comment">// cleanup...</em>
<a name="87" href="#87">87</a>              builder.close();
<a name="88" href="#88">88</a>          }
<a name="89" href="#89">89</a>          <strong class="jxr_keyword">catch</strong> ( Exception e )
<a name="90" href="#90">90</a>          {
<a name="91" href="#91">91</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Problem creating Ant script"</span>, e );
<a name="92" href="#92">92</a>          }
<a name="93" href="#93">93</a>  
<a name="94" href="#94">94</a>          getLog().info( <span class="jxr_string">"Wrote Ant bundle project for "</span> + artifactId + <span class="jxr_string">" to "</span> + baseDir );
<a name="95" href="#95">95</a>      }
<a name="96" href="#96">96</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

