You are viewing a plain text version of this content. The canonical link for it is here.
Posted to site-commits@maven.apache.org by kh...@apache.org on 2014/12/20 15:35:35 UTC

svn commit: r933455 [24/25] - in /websites/production/maven/content/plugins-archives/maven-antrun-plugin-LATEST: ./ apidocs/ apidocs/org/apache/maven/ant/tasks/ apidocs/org/apache/maven/ant/tasks/class-use/ apidocs/org/apache/maven/ant/tasks/support/ a...

Modified: websites/production/maven/content/plugins-archives/maven-antrun-plugin-LATEST/xref/org/apache/maven/plugin/antrun/HelpMojo.html
==============================================================================
--- websites/production/maven/content/plugins-archives/maven-antrun-plugin-LATEST/xref/org/apache/maven/plugin/antrun/HelpMojo.html (original)
+++ websites/production/maven/content/plugins-archives/maven-antrun-plugin-LATEST/xref/org/apache/maven/plugin/antrun/HelpMojo.html Sat Dec 20 14:35:34 2014
@@ -1,328 +1,464 @@
 <!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" />
+<head><meta http-equiv="content-type" content="text/html; charset=UTF-8" />
 <title>HelpMojo xref</title>
 <link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
 </head>
 <body>
 <div id="overview"><a href="../../../../../../apidocs/org/apache/maven/plugin/antrun/HelpMojo.html">View Javadoc</a></div><pre>
-
-<a class="jxr_linenumber" name="1" href="#1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.maven.plugin.antrun;
-<a class="jxr_linenumber" name="2" href="#2">2</a>   
-<a class="jxr_linenumber" name="3" href="#3">3</a>   <strong class="jxr_keyword">import</strong> java.util.ArrayList;
-<a class="jxr_linenumber" name="4" href="#4">4</a>   <strong class="jxr_keyword">import</strong> java.util.Iterator;
-<a class="jxr_linenumber" name="5" href="#5">5</a>   <strong class="jxr_keyword">import</strong> java.util.List;
-<a class="jxr_linenumber" name="6" href="#6">6</a>   
-<a class="jxr_linenumber" name="7" href="#7">7</a>   <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
-<a class="jxr_linenumber" name="8" href="#8">8</a>   <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
-<a class="jxr_linenumber" name="9" href="#9">9</a>   
-<a class="jxr_linenumber" name="10" href="#10">10</a>  <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="11" href="#11">11</a>  <em class="jxr_javadoccomment"> * Display help information on maven-antrun-plugin.&lt;br/&gt; Call &lt;pre&gt;  mvn antrun:help -Ddetail=true -Dgoal=&amp;lt;goal-name&amp;gt;&lt;/pre&gt; to display parameter details.</em>
-<a class="jxr_linenumber" name="12" href="#12">12</a>  <em class="jxr_javadoccomment"> *</em>
-<a class="jxr_linenumber" name="13" href="#13">13</a>  <em class="jxr_javadoccomment"> * @version generated on Mon Oct 31 20:24:41 EDT 2011</em>
-<a class="jxr_linenumber" name="14" href="#14">14</a>  <em class="jxr_javadoccomment"> * @author org.apache.maven.tools.plugin.generator.PluginHelpGenerator (version 2.8)</em>
-<a class="jxr_linenumber" name="15" href="#15">15</a>  <em class="jxr_javadoccomment"> * @goal help</em>
-<a class="jxr_linenumber" name="16" href="#16">16</a>  <em class="jxr_javadoccomment"> * @requiresProject false</em>
-<a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_javadoccomment"> * @threadSafe</em>
-<a class="jxr_linenumber" name="18" href="#18">18</a>  <em class="jxr_javadoccomment"> */</em>
-<a class="jxr_linenumber" name="19" href="#19">19</a>  @SuppressWarnings( <span class="jxr_string">"all"</span> )
-<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/maven/plugin/antrun/HelpMojo.html">HelpMojo</a>
-<a class="jxr_linenumber" name="21" href="#21">21</a>      <strong class="jxr_keyword">extends</strong> AbstractMojo
-<a class="jxr_linenumber" name="22" href="#22">22</a>  {
-<a class="jxr_linenumber" name="23" href="#23">23</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="24" href="#24">24</a>  <em class="jxr_javadoccomment">     * If &lt;code&gt;true&lt;/code&gt;, display all settable properties for each goal.</em>
-<a class="jxr_linenumber" name="25" href="#25">25</a>  <em class="jxr_javadoccomment">     * </em>
-<a class="jxr_linenumber" name="26" href="#26">26</a>  <em class="jxr_javadoccomment">     * @parameter expression="${detail}" default-value="false"</em>
-<a class="jxr_linenumber" name="27" href="#27">27</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="28" href="#28">28</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> detail;
-<a class="jxr_linenumber" name="29" href="#29">29</a>  
-<a class="jxr_linenumber" name="30" href="#30">30</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="31" href="#31">31</a>  <em class="jxr_javadoccomment">     * The name of the goal for which to show help. If unspecified, all goals will be displayed.</em>
-<a class="jxr_linenumber" name="32" href="#32">32</a>  <em class="jxr_javadoccomment">     * </em>
-<a class="jxr_linenumber" name="33" href="#33">33</a>  <em class="jxr_javadoccomment">     * @parameter expression="${goal}"</em>
-<a class="jxr_linenumber" name="34" href="#34">34</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="35" href="#35">35</a>      <strong class="jxr_keyword">private</strong> java.lang.String goal;
-<a class="jxr_linenumber" name="36" href="#36">36</a>  
-<a class="jxr_linenumber" name="37" href="#37">37</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="38" href="#38">38</a>  <em class="jxr_javadoccomment">     * The maximum length of a display line, should be positive.</em>
-<a class="jxr_linenumber" name="39" href="#39">39</a>  <em class="jxr_javadoccomment">     * </em>
-<a class="jxr_linenumber" name="40" href="#40">40</a>  <em class="jxr_javadoccomment">     * @parameter expression="${lineLength}" default-value="80"</em>
-<a class="jxr_linenumber" name="41" href="#41">41</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="42" href="#42">42</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> lineLength;
-<a class="jxr_linenumber" name="43" href="#43">43</a>  
-<a class="jxr_linenumber" name="44" href="#44">44</a>      <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="45" href="#45">45</a>  <em class="jxr_javadoccomment">     * The number of spaces per indentation level, should be positive.</em>
-<a class="jxr_linenumber" name="46" href="#46">46</a>  <em class="jxr_javadoccomment">     * </em>
-<a class="jxr_linenumber" name="47" href="#47">47</a>  <em class="jxr_javadoccomment">     * @parameter expression="${indentSize}" default-value="2"</em>
-<a class="jxr_linenumber" name="48" href="#48">48</a>  <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="49" href="#49">49</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> indentSize;
-<a class="jxr_linenumber" name="50" href="#50">50</a>  
-<a class="jxr_linenumber" name="51" href="#51">51</a>  
-<a class="jxr_linenumber" name="52" href="#52">52</a>      <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> {@inheritDoc} */</em>
-<a class="jxr_linenumber" name="53" href="#53">53</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute()
-<a class="jxr_linenumber" name="54" href="#54">54</a>          <strong class="jxr_keyword">throws</strong> MojoExecutionException
-<a class="jxr_linenumber" name="55" href="#55">55</a>      {
-<a class="jxr_linenumber" name="56" href="#56">56</a>          <strong class="jxr_keyword">if</strong> ( lineLength &lt;= 0 )
-<a class="jxr_linenumber" name="57" href="#57">57</a>          {
-<a class="jxr_linenumber" name="58" href="#58">58</a>              getLog().warn( <span class="jxr_string">"The parameter 'lineLength' should be positive, using '80' as default."</span> );
-<a class="jxr_linenumber" name="59" href="#59">59</a>              lineLength = 80;
-<a class="jxr_linenumber" name="60" href="#60">60</a>          }
-<a class="jxr_linenumber" name="61" href="#61">61</a>          <strong class="jxr_keyword">if</strong> ( indentSize &lt;= 0 )
-<a class="jxr_linenumber" name="62" href="#62">62</a>          {
-<a class="jxr_linenumber" name="63" href="#63">63</a>              getLog().warn( <span class="jxr_string">"The parameter 'indentSize' should be positive, using '2' as default."</span> );
-<a class="jxr_linenumber" name="64" href="#64">64</a>              indentSize = 2;
-<a class="jxr_linenumber" name="65" href="#65">65</a>          }
-<a class="jxr_linenumber" name="66" href="#66">66</a>  
-<a class="jxr_linenumber" name="67" href="#67">67</a>          StringBuffer sb = <strong class="jxr_keyword">new</strong> StringBuffer();
-<a class="jxr_linenumber" name="68" href="#68">68</a>  
-<a class="jxr_linenumber" name="69" href="#69">69</a>          append( sb, <span class="jxr_string">"org.apache.maven.plugins:maven-antrun-plugin:1.7"</span>, 0 );
-<a class="jxr_linenumber" name="70" href="#70">70</a>          append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="71" href="#71">71</a>  
-<a class="jxr_linenumber" name="72" href="#72">72</a>          append( sb, <span class="jxr_string">"Maven AntRun Plugin"</span>, 0 );
-<a class="jxr_linenumber" name="73" href="#73">73</a>          append( sb, <span class="jxr_string">"Runs Ant scripts embedded in the POM"</span>, 1 );
-<a class="jxr_linenumber" name="74" href="#74">74</a>          append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="75" href="#75">75</a>  
-<a class="jxr_linenumber" name="76" href="#76">76</a>          <strong class="jxr_keyword">if</strong> ( goal == <strong class="jxr_keyword">null</strong> || goal.length() &lt;= 0 )
-<a class="jxr_linenumber" name="77" href="#77">77</a>          {
-<a class="jxr_linenumber" name="78" href="#78">78</a>              append( sb, <span class="jxr_string">"This plugin has 2 goals:"</span>, 0 );
-<a class="jxr_linenumber" name="79" href="#79">79</a>              append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="80" href="#80">80</a>          }
-<a class="jxr_linenumber" name="81" href="#81">81</a>  
-<a class="jxr_linenumber" name="82" href="#82">82</a>          <strong class="jxr_keyword">if</strong> ( goal == <strong class="jxr_keyword">null</strong> || goal.length() &lt;= 0 || <span class="jxr_string">"help"</span>.equals( goal ) )
-<a class="jxr_linenumber" name="83" href="#83">83</a>          {
-<a class="jxr_linenumber" name="84" href="#84">84</a>              append( sb, <span class="jxr_string">"antrun:help"</span>, 0 );
-<a class="jxr_linenumber" name="85" href="#85">85</a>              append( sb, <span class="jxr_string">"Display help information on maven-antrun-plugin.\nCall\n\u00a0\u00a0mvn\u00a0antrun:help\u00a0-Ddetail=true\u00a0-Dgoal=&lt;goal-name&gt;\nto display parameter details."</span>, 1 );
-<a class="jxr_linenumber" name="86" href="#86">86</a>              append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="87" href="#87">87</a>              <strong class="jxr_keyword">if</strong> ( detail )
-<a class="jxr_linenumber" name="88" href="#88">88</a>              {
-<a class="jxr_linenumber" name="89" href="#89">89</a>                  append( sb, <span class="jxr_string">"Available parameters:"</span>, 1 );
-<a class="jxr_linenumber" name="90" href="#90">90</a>                  append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="91" href="#91">91</a>  
-<a class="jxr_linenumber" name="92" href="#92">92</a>                  append( sb, <span class="jxr_string">"detail (Default: false)"</span>, 2 );
-<a class="jxr_linenumber" name="93" href="#93">93</a>                  append( sb, <span class="jxr_string">"If true, display all settable properties for each goal."</span>, 3 );
-<a class="jxr_linenumber" name="94" href="#94">94</a>                  append( sb, <span class="jxr_string">"Expression: ${detail}"</span>, 3 );
-<a class="jxr_linenumber" name="95" href="#95">95</a>                  append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="96" href="#96">96</a>  
-<a class="jxr_linenumber" name="97" href="#97">97</a>                  append( sb, <span class="jxr_string">"goal"</span>, 2 );
-<a class="jxr_linenumber" name="98" href="#98">98</a>                  append( sb, <span class="jxr_string">"The name of the goal for which to show help. If unspecified, all goals will be displayed."</span>, 3 );
-<a class="jxr_linenumber" name="99" href="#99">99</a>                  append( sb, <span class="jxr_string">"Expression: ${goal}"</span>, 3 );
-<a class="jxr_linenumber" name="100" href="#100">100</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="101" href="#101">101</a> 
-<a class="jxr_linenumber" name="102" href="#102">102</a>                 append( sb, <span class="jxr_string">"indentSize (Default: 2)"</span>, 2 );
-<a class="jxr_linenumber" name="103" href="#103">103</a>                 append( sb, <span class="jxr_string">"The number of spaces per indentation level, should be positive."</span>, 3 );
-<a class="jxr_linenumber" name="104" href="#104">104</a>                 append( sb, <span class="jxr_string">"Expression: ${indentSize}"</span>, 3 );
-<a class="jxr_linenumber" name="105" href="#105">105</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="106" href="#106">106</a> 
-<a class="jxr_linenumber" name="107" href="#107">107</a>                 append( sb, <span class="jxr_string">"lineLength (Default: 80)"</span>, 2 );
-<a class="jxr_linenumber" name="108" href="#108">108</a>                 append( sb, <span class="jxr_string">"The maximum length of a display line, should be positive."</span>, 3 );
-<a class="jxr_linenumber" name="109" href="#109">109</a>                 append( sb, <span class="jxr_string">"Expression: ${lineLength}"</span>, 3 );
-<a class="jxr_linenumber" name="110" href="#110">110</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="111" href="#111">111</a>             }
-<a class="jxr_linenumber" name="112" href="#112">112</a>         }
-<a class="jxr_linenumber" name="113" href="#113">113</a> 
-<a class="jxr_linenumber" name="114" href="#114">114</a>         <strong class="jxr_keyword">if</strong> ( goal == <strong class="jxr_keyword">null</strong> || goal.length() &lt;= 0 || <span class="jxr_string">"run"</span>.equals( goal ) )
-<a class="jxr_linenumber" name="115" href="#115">115</a>         {
-<a class="jxr_linenumber" name="116" href="#116">116</a>             append( sb, <span class="jxr_string">"antrun:run"</span>, 0 );
-<a class="jxr_linenumber" name="117" href="#117">117</a>             append( sb, <span class="jxr_string">"Maven AntRun Mojo.\nThis plugin provides the capability of calling Ant tasks from a POM by running the nested ant tasks inside the &lt;tasks/&gt; parameter. It is encouraged to move the actual tasks to a separate build.xml file and call that file with an &lt;ant/&gt; task."</span>, 1 );
-<a class="jxr_linenumber" name="118" href="#118">118</a>             append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="119" href="#119">119</a>             <strong class="jxr_keyword">if</strong> ( detail )
-<a class="jxr_linenumber" name="120" href="#120">120</a>             {
-<a class="jxr_linenumber" name="121" href="#121">121</a>                 append( sb, <span class="jxr_string">"Available parameters:"</span>, 1 );
-<a class="jxr_linenumber" name="122" href="#122">122</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="123" href="#123">123</a> 
-<a class="jxr_linenumber" name="124" href="#124">124</a>                 append( sb, <span class="jxr_string">"customTaskPrefix"</span>, 2 );
-<a class="jxr_linenumber" name="125" href="#125">125</a>                 append( sb, <span class="jxr_string">"The xml tag prefix to use for the built in Ant tasks. This prefix needs to be prepended to each task referenced in the antrun target config. For example, a prefix of \'mvn\' means that the attachartifact task is referenced by \'&lt;mvn:attachartifact&gt;\' The default value of an empty string means that no prefix is used for the tasks."</span>, 3 );
-<a class="jxr_linenumber" name="126" href="#126">126</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="127" href="#127">127</a> 
-<a class="jxr_linenumber" name="128" href="#128">128</a>                 append( sb, <span class="jxr_string">"exportAntProperties (Default: false)"</span>, 2 );
-<a class="jxr_linenumber" name="129" href="#129">129</a>                 append( sb, <span class="jxr_string">"Specifies whether the Ant properties should be propagated to the Maven properties."</span>, 3 );
-<a class="jxr_linenumber" name="130" href="#130">130</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="131" href="#131">131</a> 
-<a class="jxr_linenumber" name="132" href="#132">132</a>                 append( sb, <span class="jxr_string">"failOnError (Default: true)"</span>, 2 );
-<a class="jxr_linenumber" name="133" href="#133">133</a>                 append( sb, <span class="jxr_string">"Specifies whether a failure in the ant build leads to a failure of the Maven build. If this value is \'true\', the Maven build will proceed even if the ant build fails. If it is \'false\', then the Maven build fails if the ant build fails."</span>, 3 );
-<a class="jxr_linenumber" name="134" href="#134">134</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="135" href="#135">135</a> 
-<a class="jxr_linenumber" name="136" href="#136">136</a>                 append( sb, <span class="jxr_string">"propertyPrefix"</span>, 2 );
-<a class="jxr_linenumber" name="137" href="#137">137</a>                 append( sb, <span class="jxr_string">"String to prepend to project and dependency property names."</span>, 3 );
-<a class="jxr_linenumber" name="138" href="#138">138</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="139" href="#139">139</a> 
-<a class="jxr_linenumber" name="140" href="#140">140</a>                 append( sb, <span class="jxr_string">"skip (Default: false)"</span>, 2 );
-<a class="jxr_linenumber" name="141" href="#141">141</a>                 append( sb, <span class="jxr_string">"Specifies whether the Antrun execution should be skipped."</span>, 3 );
-<a class="jxr_linenumber" name="142" href="#142">142</a>                 append( sb, <span class="jxr_string">"Expression: ${maven.antrun.skip}"</span>, 3 );
-<a class="jxr_linenumber" name="143" href="#143">143</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="144" href="#144">144</a> 
-<a class="jxr_linenumber" name="145" href="#145">145</a>                 append( sb, <span class="jxr_string">"sourceRoot"</span>, 2 );
-<a class="jxr_linenumber" name="146" href="#146">146</a>                 append( sb, <span class="jxr_string">"Deprecated. Use the build-helper-maven-plugin to bind source directories"</span>, 3 );
-<a class="jxr_linenumber" name="147" href="#147">147</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="148" href="#148">148</a>                 append( sb, <span class="jxr_string">"This folder is added to the list of those folders containing source to be compiled. Use this if your ant script generates source code."</span>, 3 );
-<a class="jxr_linenumber" name="149" href="#149">149</a>                 append( sb, <span class="jxr_string">"Expression: ${sourceRoot}"</span>, 3 );
-<a class="jxr_linenumber" name="150" href="#150">150</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="151" href="#151">151</a> 
-<a class="jxr_linenumber" name="152" href="#152">152</a>                 append( sb, <span class="jxr_string">"target"</span>, 2 );
-<a class="jxr_linenumber" name="153" href="#153">153</a>                 append( sb, <span class="jxr_string">"The XML for the Ant target. You can add anything you can add between &lt;target&gt; and &lt;/target&gt; in a build.xml."</span>, 3 );
-<a class="jxr_linenumber" name="154" href="#154">154</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="155" href="#155">155</a> 
-<a class="jxr_linenumber" name="156" href="#156">156</a>                 append( sb, <span class="jxr_string">"tasks"</span>, 2 );
-<a class="jxr_linenumber" name="157" href="#157">157</a>                 append( sb, <span class="jxr_string">"Deprecated. Use target instead"</span>, 3 );
-<a class="jxr_linenumber" name="158" href="#158">158</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="159" href="#159">159</a>                 append( sb, <span class="jxr_string">"The XML for the Ant task. You can add anything you can add between &lt;target&gt; and &lt;/target&gt; in a build.xml."</span>, 3 );
-<a class="jxr_linenumber" name="160" href="#160">160</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="161" href="#161">161</a> 
-<a class="jxr_linenumber" name="162" href="#162">162</a>                 append( sb, <span class="jxr_string">"testSourceRoot"</span>, 2 );
-<a class="jxr_linenumber" name="163" href="#163">163</a>                 append( sb, <span class="jxr_string">"Deprecated. Use the build-helper-maven-plugin to bind test source directories"</span>, 3 );
-<a class="jxr_linenumber" name="164" href="#164">164</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="165" href="#165">165</a>                 append( sb, <span class="jxr_string">"This folder is added to the list of those folders containing source to be compiled for testing. Use this if your ant script generates test source code."</span>, 3 );
-<a class="jxr_linenumber" name="166" href="#166">166</a>                 append( sb, <span class="jxr_string">"Expression: ${testSourceRoot}"</span>, 3 );
-<a class="jxr_linenumber" name="167" href="#167">167</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="168" href="#168">168</a> 
-<a class="jxr_linenumber" name="169" href="#169">169</a>                 append( sb, <span class="jxr_string">"versionsPropertyName (Default: maven.project.dependencies.versions)"</span>, 2 );
-<a class="jxr_linenumber" name="170" href="#170">170</a>                 append( sb, <span class="jxr_string">"The name of a property containing the list of all dependency versions. This is used for the removing the versions from the filenames."</span>, 3 );
-<a class="jxr_linenumber" name="171" href="#171">171</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="172" href="#172">172</a>             }
-<a class="jxr_linenumber" name="173" href="#173">173</a>         }
-<a class="jxr_linenumber" name="174" href="#174">174</a> 
-<a class="jxr_linenumber" name="175" href="#175">175</a>         <strong class="jxr_keyword">if</strong> ( getLog().isInfoEnabled() )
-<a class="jxr_linenumber" name="176" href="#176">176</a>         {
-<a class="jxr_linenumber" name="177" href="#177">177</a>             getLog().info( sb.toString() );
-<a class="jxr_linenumber" name="178" href="#178">178</a>         }
-<a class="jxr_linenumber" name="179" href="#179">179</a>     }
-<a class="jxr_linenumber" name="180" href="#180">180</a> 
-<a class="jxr_linenumber" name="181" href="#181">181</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="182" href="#182">182</a> <em class="jxr_javadoccomment">     * &lt;p&gt;Repeat a String &lt;code&gt;n&lt;/code&gt; times to form a new string.&lt;/p&gt;</em>
-<a class="jxr_linenumber" name="183" href="#183">183</a> <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="184" href="#184">184</a> <em class="jxr_javadoccomment">     * @param str String to repeat</em>
-<a class="jxr_linenumber" name="185" href="#185">185</a> <em class="jxr_javadoccomment">     * @param repeat number of times to repeat str</em>
-<a class="jxr_linenumber" name="186" href="#186">186</a> <em class="jxr_javadoccomment">     * @return String with repeated String</em>
-<a class="jxr_linenumber" name="187" href="#187">187</a> <em class="jxr_javadoccomment">     * @throws NegativeArraySizeException if &lt;code&gt;repeat &lt; 0&lt;/code&gt;</em>
-<a class="jxr_linenumber" name="188" href="#188">188</a> <em class="jxr_javadoccomment">     * @throws NullPointerException if str is &lt;code&gt;null&lt;/code&gt;</em>
-<a class="jxr_linenumber" name="189" href="#189">189</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="190" href="#190">190</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String repeat( String str, <strong class="jxr_keyword">int</strong> repeat )
-<a class="jxr_linenumber" name="191" href="#191">191</a>     {
-<a class="jxr_linenumber" name="192" href="#192">192</a>         StringBuffer buffer = <strong class="jxr_keyword">new</strong> StringBuffer( repeat * str.length() );
-<a class="jxr_linenumber" name="193" href="#193">193</a> 
-<a class="jxr_linenumber" name="194" href="#194">194</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; repeat; i++ )
-<a class="jxr_linenumber" name="195" href="#195">195</a>         {
-<a class="jxr_linenumber" name="196" href="#196">196</a>             buffer.append( str );
-<a class="jxr_linenumber" name="197" href="#197">197</a>         }
-<a class="jxr_linenumber" name="198" href="#198">198</a> 
-<a class="jxr_linenumber" name="199" href="#199">199</a>         <strong class="jxr_keyword">return</strong> buffer.toString();
-<a class="jxr_linenumber" name="200" href="#200">200</a>     }
-<a class="jxr_linenumber" name="201" href="#201">201</a> 
-<a class="jxr_linenumber" name="202" href="#202">202</a>     <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> </em>
-<a class="jxr_linenumber" name="203" href="#203">203</a> <em class="jxr_javadoccomment">     * Append a description to the buffer by respecting the indentSize and lineLength parameters.</em>
-<a class="jxr_linenumber" name="204" href="#204">204</a> <em class="jxr_javadoccomment">     * &lt;b&gt;Note&lt;/b&gt;: The last character is always a new line.</em>
-<a class="jxr_linenumber" name="205" href="#205">205</a> <em class="jxr_javadoccomment">     * </em>
-<a class="jxr_linenumber" name="206" href="#206">206</a> <em class="jxr_javadoccomment">     * @param sb The buffer to append the description, not &lt;code&gt;null&lt;/code&gt;.</em>
-<a class="jxr_linenumber" name="207" href="#207">207</a> <em class="jxr_javadoccomment">     * @param description The description, not &lt;code&gt;null&lt;/code&gt;.</em>
-<a class="jxr_linenumber" name="208" href="#208">208</a> <em class="jxr_javadoccomment">     * @param indent The base indentation level of each line, must not be negative.</em>
-<a class="jxr_linenumber" name="209" href="#209">209</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="210" href="#210">210</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> append( StringBuffer sb, String description, <strong class="jxr_keyword">int</strong> indent )
-<a class="jxr_linenumber" name="211" href="#211">211</a>     {
-<a class="jxr_linenumber" name="212" href="#212">212</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = toLines( description, indent, indentSize, lineLength ).iterator(); it.hasNext(); )
-<a class="jxr_linenumber" name="213" href="#213">213</a>         {
-<a class="jxr_linenumber" name="214" href="#214">214</a>             sb.append( it.next().toString() ).append( '\n' );
-<a class="jxr_linenumber" name="215" href="#215">215</a>         }
-<a class="jxr_linenumber" name="216" href="#216">216</a>     }
-<a class="jxr_linenumber" name="217" href="#217">217</a> 
-<a class="jxr_linenumber" name="218" href="#218">218</a>     <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> </em>
-<a class="jxr_linenumber" name="219" href="#219">219</a> <em class="jxr_javadoccomment">     * Splits the specified text into lines of convenient display length.</em>
-<a class="jxr_linenumber" name="220" href="#220">220</a> <em class="jxr_javadoccomment">     * </em>
-<a class="jxr_linenumber" name="221" href="#221">221</a> <em class="jxr_javadoccomment">     * @param text The text to split into lines, must not be &lt;code&gt;null&lt;/code&gt;.</em>
-<a class="jxr_linenumber" name="222" href="#222">222</a> <em class="jxr_javadoccomment">     * @param indent The base indentation level of each line, must not be negative.</em>
-<a class="jxr_linenumber" name="223" href="#223">223</a> <em class="jxr_javadoccomment">     * @param indentSize The size of each indentation, must not be negative.</em>
-<a class="jxr_linenumber" name="224" href="#224">224</a> <em class="jxr_javadoccomment">     * @param lineLength The length of the line, must not be negative.</em>
-<a class="jxr_linenumber" name="225" href="#225">225</a> <em class="jxr_javadoccomment">     * @return The sequence of display lines, never &lt;code&gt;null&lt;/code&gt;.</em>
-<a class="jxr_linenumber" name="226" href="#226">226</a> <em class="jxr_javadoccomment">     * @throws NegativeArraySizeException if &lt;code&gt;indent &lt; 0&lt;/code&gt;</em>
-<a class="jxr_linenumber" name="227" href="#227">227</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="228" href="#228">228</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List toLines( String text, <strong class="jxr_keyword">int</strong> indent, <strong class="jxr_keyword">int</strong> indentSize, <strong class="jxr_keyword">int</strong> lineLength )
-<a class="jxr_linenumber" name="229" href="#229">229</a>     {
-<a class="jxr_linenumber" name="230" href="#230">230</a>         List&lt;String&gt; lines = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
-<a class="jxr_linenumber" name="231" href="#231">231</a> 
-<a class="jxr_linenumber" name="232" href="#232">232</a>         String ind = repeat( <span class="jxr_string">"\t"</span>, indent );
-<a class="jxr_linenumber" name="233" href="#233">233</a>         String[] plainLines = text.split( <span class="jxr_string">"(\r\n)|(\r)|(\n)"</span> );
-<a class="jxr_linenumber" name="234" href="#234">234</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; plainLines.length; i++ )
-<a class="jxr_linenumber" name="235" href="#235">235</a>         {
-<a class="jxr_linenumber" name="236" href="#236">236</a>             toLines( lines, ind + plainLines[i], indentSize, lineLength );
-<a class="jxr_linenumber" name="237" href="#237">237</a>         }
-<a class="jxr_linenumber" name="238" href="#238">238</a> 
-<a class="jxr_linenumber" name="239" href="#239">239</a>         <strong class="jxr_keyword">return</strong> lines;
-<a class="jxr_linenumber" name="240" href="#240">240</a>     }
-<a class="jxr_linenumber" name="241" href="#241">241</a> 
-<a class="jxr_linenumber" name="242" href="#242">242</a>     <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> </em>
-<a class="jxr_linenumber" name="243" href="#243">243</a> <em class="jxr_javadoccomment">     * Adds the specified line to the output sequence, performing line wrapping if necessary.</em>
-<a class="jxr_linenumber" name="244" href="#244">244</a> <em class="jxr_javadoccomment">     * </em>
-<a class="jxr_linenumber" name="245" href="#245">245</a> <em class="jxr_javadoccomment">     * @param lines The sequence of display lines, must not be &lt;code&gt;null&lt;/code&gt;.</em>
-<a class="jxr_linenumber" name="246" href="#246">246</a> <em class="jxr_javadoccomment">     * @param line The line to add, must not be &lt;code&gt;null&lt;/code&gt;.</em>
-<a class="jxr_linenumber" name="247" href="#247">247</a> <em class="jxr_javadoccomment">     * @param indentSize The size of each indentation, must not be negative.</em>
-<a class="jxr_linenumber" name="248" href="#248">248</a> <em class="jxr_javadoccomment">     * @param lineLength The length of the line, must not be negative.</em>
-<a class="jxr_linenumber" name="249" href="#249">249</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="250" href="#250">250</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> toLines( List&lt;String&gt; lines, String line, <strong class="jxr_keyword">int</strong> indentSize, <strong class="jxr_keyword">int</strong> lineLength )
-<a class="jxr_linenumber" name="251" href="#251">251</a>     {
-<a class="jxr_linenumber" name="252" href="#252">252</a>         <strong class="jxr_keyword">int</strong> lineIndent = getIndentLevel( line );
-<a class="jxr_linenumber" name="253" href="#253">253</a>         StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer( 256 );
-<a class="jxr_linenumber" name="254" href="#254">254</a>         String[] tokens = line.split( <span class="jxr_string">" +"</span> );
-<a class="jxr_linenumber" name="255" href="#255">255</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; tokens.length; i++ )
-<a class="jxr_linenumber" name="256" href="#256">256</a>         {
-<a class="jxr_linenumber" name="257" href="#257">257</a>             String token = tokens[i];
-<a class="jxr_linenumber" name="258" href="#258">258</a>             <strong class="jxr_keyword">if</strong> ( i &gt; 0 )
-<a class="jxr_linenumber" name="259" href="#259">259</a>             {
-<a class="jxr_linenumber" name="260" href="#260">260</a>                 <strong class="jxr_keyword">if</strong> ( buf.length() + token.length() &gt;= lineLength )
-<a class="jxr_linenumber" name="261" href="#261">261</a>                 {
-<a class="jxr_linenumber" name="262" href="#262">262</a>                     lines.add( buf.toString() );
-<a class="jxr_linenumber" name="263" href="#263">263</a>                     buf.setLength( 0 );
-<a class="jxr_linenumber" name="264" href="#264">264</a>                     buf.append( repeat( <span class="jxr_string">" "</span>, lineIndent * indentSize ) );
-<a class="jxr_linenumber" name="265" href="#265">265</a>                 }
-<a class="jxr_linenumber" name="266" href="#266">266</a>                 <strong class="jxr_keyword">else</strong>
-<a class="jxr_linenumber" name="267" href="#267">267</a>                 {
-<a class="jxr_linenumber" name="268" href="#268">268</a>                     buf.append( ' ' );
-<a class="jxr_linenumber" name="269" href="#269">269</a>                 }
-<a class="jxr_linenumber" name="270" href="#270">270</a>             }
-<a class="jxr_linenumber" name="271" href="#271">271</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> j = 0; j &lt; token.length(); j++ )
-<a class="jxr_linenumber" name="272" href="#272">272</a>             {
-<a class="jxr_linenumber" name="273" href="#273">273</a>                 <strong class="jxr_keyword">char</strong> c = token.charAt( j );
-<a class="jxr_linenumber" name="274" href="#274">274</a>                 <strong class="jxr_keyword">if</strong> ( c == '\t' )
-<a class="jxr_linenumber" name="275" href="#275">275</a>                 {
-<a class="jxr_linenumber" name="276" href="#276">276</a>                     buf.append( repeat( <span class="jxr_string">" "</span>, indentSize - buf.length() % indentSize ) );
-<a class="jxr_linenumber" name="277" href="#277">277</a>                 }
-<a class="jxr_linenumber" name="278" href="#278">278</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( c == '\u00A0' )
-<a class="jxr_linenumber" name="279" href="#279">279</a>                 {
-<a class="jxr_linenumber" name="280" href="#280">280</a>                     buf.append( ' ' );
-<a class="jxr_linenumber" name="281" href="#281">281</a>                 }
-<a class="jxr_linenumber" name="282" href="#282">282</a>                 <strong class="jxr_keyword">else</strong>
-<a class="jxr_linenumber" name="283" href="#283">283</a>                 {
-<a class="jxr_linenumber" name="284" href="#284">284</a>                     buf.append( c );
-<a class="jxr_linenumber" name="285" href="#285">285</a>                 }
-<a class="jxr_linenumber" name="286" href="#286">286</a>             }
-<a class="jxr_linenumber" name="287" href="#287">287</a>         }
-<a class="jxr_linenumber" name="288" href="#288">288</a>         lines.add( buf.toString() );
-<a class="jxr_linenumber" name="289" href="#289">289</a>     }
-<a class="jxr_linenumber" name="290" href="#290">290</a> 
-<a class="jxr_linenumber" name="291" href="#291">291</a>     <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> </em>
-<a class="jxr_linenumber" name="292" href="#292">292</a> <em class="jxr_javadoccomment">     * Gets the indentation level of the specified line.</em>
-<a class="jxr_linenumber" name="293" href="#293">293</a> <em class="jxr_javadoccomment">     * </em>
-<a class="jxr_linenumber" name="294" href="#294">294</a> <em class="jxr_javadoccomment">     * @param line The line whose indentation level should be retrieved, must not be &lt;code&gt;null&lt;/code&gt;.</em>
-<a class="jxr_linenumber" name="295" href="#295">295</a> <em class="jxr_javadoccomment">     * @return The indentation level of the line.</em>
-<a class="jxr_linenumber" name="296" href="#296">296</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="297" href="#297">297</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> getIndentLevel( String line )
-<a class="jxr_linenumber" name="298" href="#298">298</a>     {
-<a class="jxr_linenumber" name="299" href="#299">299</a>         <strong class="jxr_keyword">int</strong> level = 0;
-<a class="jxr_linenumber" name="300" href="#300">300</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; line.length() &amp;&amp; line.charAt( i ) == '\t'; i++ )
-<a class="jxr_linenumber" name="301" href="#301">301</a>         {
-<a class="jxr_linenumber" name="302" href="#302">302</a>             level++;
-<a class="jxr_linenumber" name="303" href="#303">303</a>         }
-<a class="jxr_linenumber" name="304" href="#304">304</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = level + 1; i &lt;= level + 4 &amp;&amp; i &lt; line.length(); i++ )
-<a class="jxr_linenumber" name="305" href="#305">305</a>         {
-<a class="jxr_linenumber" name="306" href="#306">306</a>             <strong class="jxr_keyword">if</strong> ( line.charAt( i ) == '\t' )
-<a class="jxr_linenumber" name="307" href="#307">307</a>             {
-<a class="jxr_linenumber" name="308" href="#308">308</a>                 level++;
-<a class="jxr_linenumber" name="309" href="#309">309</a>                 <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="310" href="#310">310</a>             }
-<a class="jxr_linenumber" name="311" href="#311">311</a>         }
-<a class="jxr_linenumber" name="312" href="#312">312</a>         <strong class="jxr_keyword">return</strong> level;
-<a class="jxr_linenumber" name="313" href="#313">313</a>     }
-<a class="jxr_linenumber" name="314" href="#314">314</a> }
+<a class="jxr_linenumber" name="L1" href="#L1">1</a>   
+<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <strong class="jxr_keyword">package</strong> org.apache.maven.plugin.antrun;
+<a class="jxr_linenumber" name="L3" href="#L3">3</a>   
+<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <strong class="jxr_keyword">import</strong> org.apache.maven.plugins.annotations.Mojo;
+<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <strong class="jxr_keyword">import</strong> org.apache.maven.plugins.annotations.Parameter;
+<a class="jxr_linenumber" name="L8" href="#L8">8</a>   
+<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <strong class="jxr_keyword">import</strong> org.w3c.dom.Document;
+<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Element;
+<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Node;
+<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.NodeList;
+<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <strong class="jxr_keyword">import</strong> org.xml.sax.SAXException;
+<a class="jxr_linenumber" name="L14" href="#L14">14</a>  
+<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilder;
+<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilderFactory;
+<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.ParserConfigurationException;
+<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
+<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
+<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a class="jxr_linenumber" name="L22" href="#L22">22</a>  
+<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <em class="jxr_javadoccomment"> * Display help information on maven-antrun-plugin.&lt;br&gt;</em>
+<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <em class="jxr_javadoccomment"> * Call &lt;code&gt;mvn antrun:help -Ddetail=true -Dgoal=&amp;lt;goal-name&amp;gt;&lt;/code&gt; to display parameter details.</em>
+<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <em class="jxr_javadoccomment"> * @author maven-plugin-tools</em>
+<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L28" href="#L28">28</a>  @Mojo( name = <span class="jxr_string">"help"</span>, requiresProject = false, threadSafe = <strong class="jxr_keyword">true</strong> )
+<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/maven/plugin/antrun/HelpMojo.html">HelpMojo</a>
+<a class="jxr_linenumber" name="L30" href="#L30">30</a>      <strong class="jxr_keyword">extends</strong> AbstractMojo
+<a class="jxr_linenumber" name="L31" href="#L31">31</a>  {
+<a class="jxr_linenumber" name="L32" href="#L32">32</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <em class="jxr_javadoccomment">     * If &lt;code&gt;true&lt;/code&gt;, display all settable properties for each goal.</em>
+<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L36" href="#L36">36</a>      @Parameter( property = <span class="jxr_string">"detail"</span>, defaultValue = <span class="jxr_string">"false"</span> )
+<a class="jxr_linenumber" name="L37" href="#L37">37</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> detail;
+<a class="jxr_linenumber" name="L38" href="#L38">38</a>  
+<a class="jxr_linenumber" name="L39" href="#L39">39</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <em class="jxr_javadoccomment">     * The name of the goal for which to show help. If unspecified, all goals will be displayed.</em>
+<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L43" href="#L43">43</a>      @Parameter( property = <span class="jxr_string">"goal"</span> )
+<a class="jxr_linenumber" name="L44" href="#L44">44</a>      <strong class="jxr_keyword">private</strong> java.lang.String goal;
+<a class="jxr_linenumber" name="L45" href="#L45">45</a>  
+<a class="jxr_linenumber" name="L46" href="#L46">46</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <em class="jxr_javadoccomment">     * The maximum length of a display line, should be positive.</em>
+<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L50" href="#L50">50</a>      @Parameter( property = <span class="jxr_string">"lineLength"</span>, defaultValue = <span class="jxr_string">"80"</span> )
+<a class="jxr_linenumber" name="L51" href="#L51">51</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> lineLength;
+<a class="jxr_linenumber" name="L52" href="#L52">52</a>  
+<a class="jxr_linenumber" name="L53" href="#L53">53</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <em class="jxr_javadoccomment">     * The number of spaces per indentation level, should be positive.</em>
+<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L56" href="#L56">56</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L57" href="#L57">57</a>      @Parameter( property = <span class="jxr_string">"indentSize"</span>, defaultValue = <span class="jxr_string">"2"</span> )
+<a class="jxr_linenumber" name="L58" href="#L58">58</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> indentSize;
+<a class="jxr_linenumber" name="L59" href="#L59">59</a>  
+<a class="jxr_linenumber" name="L60" href="#L60">60</a>      <em class="jxr_comment">// groupId/artifactId/plugin-help.xml</em>
+<a class="jxr_linenumber" name="L61" href="#L61">61</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PLUGIN_HELP_PATH = <span class="jxr_string">"/META-INF/maven/org.apache.maven.plugins/maven-antrun-plugin/plugin-help.xml"</span>;
+<a class="jxr_linenumber" name="L62" href="#L62">62</a>  
+<a class="jxr_linenumber" name="L63" href="#L63">63</a>      <strong class="jxr_keyword">private</strong> Document build()
+<a class="jxr_linenumber" name="L64" href="#L64">64</a>          <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="L65" href="#L65">65</a>      {
+<a class="jxr_linenumber" name="L66" href="#L66">66</a>          getLog().debug( <span class="jxr_string">"load plugin-help.xml: "</span> + PLUGIN_HELP_PATH );
+<a class="jxr_linenumber" name="L67" href="#L67">67</a>          InputStream is = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L68" href="#L68">68</a>          <strong class="jxr_keyword">try</strong>
+<a class="jxr_linenumber" name="L69" href="#L69">69</a>          {
+<a class="jxr_linenumber" name="L70" href="#L70">70</a>              is = getClass().getResourceAsStream( PLUGIN_HELP_PATH );
+<a class="jxr_linenumber" name="L71" href="#L71">71</a>              DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+<a class="jxr_linenumber" name="L72" href="#L72">72</a>              DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+<a class="jxr_linenumber" name="L73" href="#L73">73</a>              <strong class="jxr_keyword">return</strong> dBuilder.parse( is );
+<a class="jxr_linenumber" name="L74" href="#L74">74</a>          }
+<a class="jxr_linenumber" name="L75" href="#L75">75</a>          <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a class="jxr_linenumber" name="L76" href="#L76">76</a>          {
+<a class="jxr_linenumber" name="L77" href="#L77">77</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( e.getMessage(), e );
+<a class="jxr_linenumber" name="L78" href="#L78">78</a>          }
+<a class="jxr_linenumber" name="L79" href="#L79">79</a>          <strong class="jxr_keyword">catch</strong> ( ParserConfigurationException e )
+<a class="jxr_linenumber" name="L80" href="#L80">80</a>          {
+<a class="jxr_linenumber" name="L81" href="#L81">81</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( e.getMessage(), e );
+<a class="jxr_linenumber" name="L82" href="#L82">82</a>          }
+<a class="jxr_linenumber" name="L83" href="#L83">83</a>          <strong class="jxr_keyword">catch</strong> ( SAXException e )
+<a class="jxr_linenumber" name="L84" href="#L84">84</a>          {
+<a class="jxr_linenumber" name="L85" href="#L85">85</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( e.getMessage(), e );
+<a class="jxr_linenumber" name="L86" href="#L86">86</a>          }
+<a class="jxr_linenumber" name="L87" href="#L87">87</a>          <strong class="jxr_keyword">finally</strong>
+<a class="jxr_linenumber" name="L88" href="#L88">88</a>          {
+<a class="jxr_linenumber" name="L89" href="#L89">89</a>              <strong class="jxr_keyword">if</strong> ( is != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="L90" href="#L90">90</a>              {
+<a class="jxr_linenumber" name="L91" href="#L91">91</a>                  <strong class="jxr_keyword">try</strong>
+<a class="jxr_linenumber" name="L92" href="#L92">92</a>                  {
+<a class="jxr_linenumber" name="L93" href="#L93">93</a>                      is.close();
+<a class="jxr_linenumber" name="L94" href="#L94">94</a>                  }
+<a class="jxr_linenumber" name="L95" href="#L95">95</a>                  <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a class="jxr_linenumber" name="L96" href="#L96">96</a>                  {
+<a class="jxr_linenumber" name="L97" href="#L97">97</a>                      <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( e.getMessage(), e );
+<a class="jxr_linenumber" name="L98" href="#L98">98</a>                  }
+<a class="jxr_linenumber" name="L99" href="#L99">99</a>              }
+<a class="jxr_linenumber" name="L100" href="#L100">100</a>         }
+<a class="jxr_linenumber" name="L101" href="#L101">101</a>     }
+<a class="jxr_linenumber" name="L102" href="#L102">102</a> 
+<a class="jxr_linenumber" name="L103" href="#L103">103</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L104" href="#L104">104</a> <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a class="jxr_linenumber" name="L105" href="#L105">105</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L106" href="#L106">106</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute()
+<a class="jxr_linenumber" name="L107" href="#L107">107</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="L108" href="#L108">108</a>     {
+<a class="jxr_linenumber" name="L109" href="#L109">109</a>         <strong class="jxr_keyword">if</strong> ( lineLength &lt;= 0 )
+<a class="jxr_linenumber" name="L110" href="#L110">110</a>         {
+<a class="jxr_linenumber" name="L111" href="#L111">111</a>             getLog().warn( <span class="jxr_string">"The parameter 'lineLength' should be positive, using '80' as default."</span> );
+<a class="jxr_linenumber" name="L112" href="#L112">112</a>             lineLength = 80;
+<a class="jxr_linenumber" name="L113" href="#L113">113</a>         }
+<a class="jxr_linenumber" name="L114" href="#L114">114</a>         <strong class="jxr_keyword">if</strong> ( indentSize &lt;= 0 )
+<a class="jxr_linenumber" name="L115" href="#L115">115</a>         {
+<a class="jxr_linenumber" name="L116" href="#L116">116</a>             getLog().warn( <span class="jxr_string">"The parameter 'indentSize' should be positive, using '2' as default."</span> );
+<a class="jxr_linenumber" name="L117" href="#L117">117</a>             indentSize = 2;
+<a class="jxr_linenumber" name="L118" href="#L118">118</a>         }
+<a class="jxr_linenumber" name="L119" href="#L119">119</a> 
+<a class="jxr_linenumber" name="L120" href="#L120">120</a>         Document doc = build();
+<a class="jxr_linenumber" name="L121" href="#L121">121</a> 
+<a class="jxr_linenumber" name="L122" href="#L122">122</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a class="jxr_linenumber" name="L123" href="#L123">123</a>         Node plugin = getSingleChild( doc, <span class="jxr_string">"plugin"</span> );
+<a class="jxr_linenumber" name="L124" href="#L124">124</a> 
+<a class="jxr_linenumber" name="L125" href="#L125">125</a> 
+<a class="jxr_linenumber" name="L126" href="#L126">126</a>         String name = getValue( plugin, <span class="jxr_string">"name"</span> );
+<a class="jxr_linenumber" name="L127" href="#L127">127</a>         String version = getValue( plugin, <span class="jxr_string">"version"</span> );
+<a class="jxr_linenumber" name="L128" href="#L128">128</a>         String id = getValue( plugin, <span class="jxr_string">"groupId"</span> ) + <span class="jxr_string">":"</span> + getValue( plugin, <span class="jxr_string">"artifactId"</span> ) + <span class="jxr_string">":"</span> + version;
+<a class="jxr_linenumber" name="L129" href="#L129">129</a>         <strong class="jxr_keyword">if</strong> ( isNotEmpty( name ) &amp;&amp; !name.contains( id ) )
+<a class="jxr_linenumber" name="L130" href="#L130">130</a>         {
+<a class="jxr_linenumber" name="L131" href="#L131">131</a>             append( sb, name + <span class="jxr_string">" "</span> + version, 0 );
+<a class="jxr_linenumber" name="L132" href="#L132">132</a>         }
+<a class="jxr_linenumber" name="L133" href="#L133">133</a>         <strong class="jxr_keyword">else</strong>
+<a class="jxr_linenumber" name="L134" href="#L134">134</a>         {
+<a class="jxr_linenumber" name="L135" href="#L135">135</a>             <strong class="jxr_keyword">if</strong> ( isNotEmpty( name ) )
+<a class="jxr_linenumber" name="L136" href="#L136">136</a>             {
+<a class="jxr_linenumber" name="L137" href="#L137">137</a>                 append( sb, name, 0 );
+<a class="jxr_linenumber" name="L138" href="#L138">138</a>             }
+<a class="jxr_linenumber" name="L139" href="#L139">139</a>             <strong class="jxr_keyword">else</strong>
+<a class="jxr_linenumber" name="L140" href="#L140">140</a>             {
+<a class="jxr_linenumber" name="L141" href="#L141">141</a>                 append( sb, id, 0 );
+<a class="jxr_linenumber" name="L142" href="#L142">142</a>             }
+<a class="jxr_linenumber" name="L143" href="#L143">143</a>         }
+<a class="jxr_linenumber" name="L144" href="#L144">144</a>         append( sb, getValue( plugin, <span class="jxr_string">"description"</span> ), 1 );
+<a class="jxr_linenumber" name="L145" href="#L145">145</a>         append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="L146" href="#L146">146</a> 
+<a class="jxr_linenumber" name="L147" href="#L147">147</a>         <em class="jxr_comment">//&lt;goalPrefix&gt;plugin&lt;/goalPrefix&gt;</em>
+<a class="jxr_linenumber" name="L148" href="#L148">148</a>         String goalPrefix = getValue( plugin, <span class="jxr_string">"goalPrefix"</span> );
+<a class="jxr_linenumber" name="L149" href="#L149">149</a> 
+<a class="jxr_linenumber" name="L150" href="#L150">150</a>         Node mojos1 = getSingleChild( plugin, <span class="jxr_string">"mojos"</span> );
+<a class="jxr_linenumber" name="L151" href="#L151">151</a> 
+<a class="jxr_linenumber" name="L152" href="#L152">152</a>         List&lt;Node&gt; mojos = findNamedChild( mojos1, <span class="jxr_string">"mojo"</span> );
+<a class="jxr_linenumber" name="L153" href="#L153">153</a> 
+<a class="jxr_linenumber" name="L154" href="#L154">154</a>         <strong class="jxr_keyword">if</strong> ( goal == <strong class="jxr_keyword">null</strong> || goal.length() &lt;= 0 )
+<a class="jxr_linenumber" name="L155" href="#L155">155</a>         {
+<a class="jxr_linenumber" name="L156" href="#L156">156</a>             append( sb, <span class="jxr_string">"This plugin has "</span> + mojos.size() + ( mojos.size() &gt; 1 ? <span class="jxr_string">" goals:"</span> : <span class="jxr_string">" goal:"</span> ), 0 );
+<a class="jxr_linenumber" name="L157" href="#L157">157</a>             append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="L158" href="#L158">158</a>         }
+<a class="jxr_linenumber" name="L159" href="#L159">159</a> 
+<a class="jxr_linenumber" name="L160" href="#L160">160</a>         <strong class="jxr_keyword">for</strong> ( Node mojo : mojos )
+<a class="jxr_linenumber" name="L161" href="#L161">161</a>         {
+<a class="jxr_linenumber" name="L162" href="#L162">162</a>             writeGoal( sb, goalPrefix, (Element) mojo );
+<a class="jxr_linenumber" name="L163" href="#L163">163</a>         }
+<a class="jxr_linenumber" name="L164" href="#L164">164</a> 
+<a class="jxr_linenumber" name="L165" href="#L165">165</a>         <strong class="jxr_keyword">if</strong> ( getLog().isInfoEnabled() )
+<a class="jxr_linenumber" name="L166" href="#L166">166</a>         {
+<a class="jxr_linenumber" name="L167" href="#L167">167</a>             getLog().info( sb.toString() );
+<a class="jxr_linenumber" name="L168" href="#L168">168</a>         }
+<a class="jxr_linenumber" name="L169" href="#L169">169</a>     }
+<a class="jxr_linenumber" name="L170" href="#L170">170</a> 
+<a class="jxr_linenumber" name="L171" href="#L171">171</a> 
+<a class="jxr_linenumber" name="L172" href="#L172">172</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">boolean</strong> isNotEmpty( String string )
+<a class="jxr_linenumber" name="L173" href="#L173">173</a>     {
+<a class="jxr_linenumber" name="L174" href="#L174">174</a>         <strong class="jxr_keyword">return</strong> string != <strong class="jxr_keyword">null</strong> &amp;&amp; string.length() &gt; 0;
+<a class="jxr_linenumber" name="L175" href="#L175">175</a>     }
+<a class="jxr_linenumber" name="L176" href="#L176">176</a> 
+<a class="jxr_linenumber" name="L177" href="#L177">177</a>     <strong class="jxr_keyword">private</strong> String getValue( Node node, String elementName )
+<a class="jxr_linenumber" name="L178" href="#L178">178</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="L179" href="#L179">179</a>     {
+<a class="jxr_linenumber" name="L180" href="#L180">180</a>         <strong class="jxr_keyword">return</strong> getSingleChild( node, elementName ).getTextContent();
+<a class="jxr_linenumber" name="L181" href="#L181">181</a>     }
+<a class="jxr_linenumber" name="L182" href="#L182">182</a> 
+<a class="jxr_linenumber" name="L183" href="#L183">183</a>     <strong class="jxr_keyword">private</strong> Node getSingleChild( Node node, String elementName )
+<a class="jxr_linenumber" name="L184" href="#L184">184</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="L185" href="#L185">185</a>     {
+<a class="jxr_linenumber" name="L186" href="#L186">186</a>         List&lt;Node&gt; namedChild = findNamedChild( node, elementName );
+<a class="jxr_linenumber" name="L187" href="#L187">187</a>         <strong class="jxr_keyword">if</strong> ( namedChild.isEmpty() )
+<a class="jxr_linenumber" name="L188" href="#L188">188</a>         {
+<a class="jxr_linenumber" name="L189" href="#L189">189</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Could not find "</span> + elementName + <span class="jxr_string">" in plugin-help.xml"</span> );
+<a class="jxr_linenumber" name="L190" href="#L190">190</a>         }
+<a class="jxr_linenumber" name="L191" href="#L191">191</a>         <strong class="jxr_keyword">if</strong> ( namedChild.size() &gt; 1 )
+<a class="jxr_linenumber" name="L192" href="#L192">192</a>         {
+<a class="jxr_linenumber" name="L193" href="#L193">193</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Multiple "</span> + elementName + <span class="jxr_string">" in plugin-help.xml"</span> );
+<a class="jxr_linenumber" name="L194" href="#L194">194</a>         }
+<a class="jxr_linenumber" name="L195" href="#L195">195</a>         <strong class="jxr_keyword">return</strong> namedChild.get( 0 );
+<a class="jxr_linenumber" name="L196" href="#L196">196</a>     }
+<a class="jxr_linenumber" name="L197" href="#L197">197</a> 
+<a class="jxr_linenumber" name="L198" href="#L198">198</a>     <strong class="jxr_keyword">private</strong> List&lt;Node&gt; findNamedChild( Node node, String elementName )
+<a class="jxr_linenumber" name="L199" href="#L199">199</a>     {
+<a class="jxr_linenumber" name="L200" href="#L200">200</a>         List&lt;Node&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;Node&gt;();
+<a class="jxr_linenumber" name="L201" href="#L201">201</a>         NodeList childNodes = node.getChildNodes();
+<a class="jxr_linenumber" name="L202" href="#L202">202</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; childNodes.getLength(); i++ )
+<a class="jxr_linenumber" name="L203" href="#L203">203</a>         {
+<a class="jxr_linenumber" name="L204" href="#L204">204</a>             Node item = childNodes.item( i );
+<a class="jxr_linenumber" name="L205" href="#L205">205</a>             <strong class="jxr_keyword">if</strong> ( elementName.equals( item.getNodeName() ) )
+<a class="jxr_linenumber" name="L206" href="#L206">206</a>             {
+<a class="jxr_linenumber" name="L207" href="#L207">207</a>                 result.add( item );
+<a class="jxr_linenumber" name="L208" href="#L208">208</a>             }
+<a class="jxr_linenumber" name="L209" href="#L209">209</a>         }
+<a class="jxr_linenumber" name="L210" href="#L210">210</a>         <strong class="jxr_keyword">return</strong> result;
+<a class="jxr_linenumber" name="L211" href="#L211">211</a>     }
+<a class="jxr_linenumber" name="L212" href="#L212">212</a> 
+<a class="jxr_linenumber" name="L213" href="#L213">213</a>     <strong class="jxr_keyword">private</strong> Node findSingleChild( Node node, String elementName )
+<a class="jxr_linenumber" name="L214" href="#L214">214</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="L215" href="#L215">215</a>     {
+<a class="jxr_linenumber" name="L216" href="#L216">216</a>         List&lt;Node&gt; elementsByTagName = findNamedChild( node, elementName );
+<a class="jxr_linenumber" name="L217" href="#L217">217</a>         <strong class="jxr_keyword">if</strong> ( elementsByTagName.isEmpty() )
+<a class="jxr_linenumber" name="L218" href="#L218">218</a>         {
+<a class="jxr_linenumber" name="L219" href="#L219">219</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L220" href="#L220">220</a>         }
+<a class="jxr_linenumber" name="L221" href="#L221">221</a>         <strong class="jxr_keyword">if</strong> ( elementsByTagName.size() &gt; 1 )
+<a class="jxr_linenumber" name="L222" href="#L222">222</a>         {
+<a class="jxr_linenumber" name="L223" href="#L223">223</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( <span class="jxr_string">"Multiple "</span> + elementName + <span class="jxr_string">"in plugin-help.xml"</span> );
+<a class="jxr_linenumber" name="L224" href="#L224">224</a>         }
+<a class="jxr_linenumber" name="L225" href="#L225">225</a>         <strong class="jxr_keyword">return</strong> elementsByTagName.get( 0 );
+<a class="jxr_linenumber" name="L226" href="#L226">226</a>     }
+<a class="jxr_linenumber" name="L227" href="#L227">227</a> 
+<a class="jxr_linenumber" name="L228" href="#L228">228</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeGoal( StringBuilder sb, String goalPrefix, Element mojo )
+<a class="jxr_linenumber" name="L229" href="#L229">229</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="L230" href="#L230">230</a>     {
+<a class="jxr_linenumber" name="L231" href="#L231">231</a>         String mojoGoal = getValue( mojo, <span class="jxr_string">"goal"</span> );
+<a class="jxr_linenumber" name="L232" href="#L232">232</a>         Node configurationElement = findSingleChild( mojo, <span class="jxr_string">"configuration"</span> );
+<a class="jxr_linenumber" name="L233" href="#L233">233</a> 		Node description = findSingleChild( mojo, <span class="jxr_string">"description"</span> );
+<a class="jxr_linenumber" name="L234" href="#L234">234</a>         <strong class="jxr_keyword">if</strong> ( goal == <strong class="jxr_keyword">null</strong> || goal.length() &lt;= 0 || mojoGoal.equals( goal ) )
+<a class="jxr_linenumber" name="L235" href="#L235">235</a>         {
+<a class="jxr_linenumber" name="L236" href="#L236">236</a>             append( sb, goalPrefix + <span class="jxr_string">":"</span> + mojoGoal, 0 );
+<a class="jxr_linenumber" name="L237" href="#L237">237</a>             Node deprecated = findSingleChild( mojo, <span class="jxr_string">"deprecated"</span> );
+<a class="jxr_linenumber" name="L238" href="#L238">238</a>             <strong class="jxr_keyword">if</strong> ( ( deprecated != <strong class="jxr_keyword">null</strong> ) &amp;&amp; isNotEmpty( deprecated.getTextContent() ) )
+<a class="jxr_linenumber" name="L239" href="#L239">239</a>             {
+<a class="jxr_linenumber" name="L240" href="#L240">240</a>                 append( sb, <span class="jxr_string">"Deprecated. "</span> + deprecated.getTextContent(), 1 );
+<a class="jxr_linenumber" name="L241" href="#L241">241</a>                 <strong class="jxr_keyword">if</strong> ( detail &amp;&amp; description != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="L242" href="#L242">242</a>                 {
+<a class="jxr_linenumber" name="L243" href="#L243">243</a>                     append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="L244" href="#L244">244</a>                     append( sb, description.getTextContent(), 1 );
+<a class="jxr_linenumber" name="L245" href="#L245">245</a>                 }
+<a class="jxr_linenumber" name="L246" href="#L246">246</a>             }
+<a class="jxr_linenumber" name="L247" href="#L247">247</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( description != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="L248" href="#L248">248</a>             {
+<a class="jxr_linenumber" name="L249" href="#L249">249</a>                 append( sb, description.getTextContent(), 1 );
+<a class="jxr_linenumber" name="L250" href="#L250">250</a>             }
+<a class="jxr_linenumber" name="L251" href="#L251">251</a>             append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="L252" href="#L252">252</a> 
+<a class="jxr_linenumber" name="L253" href="#L253">253</a>             <strong class="jxr_keyword">if</strong> ( detail )
+<a class="jxr_linenumber" name="L254" href="#L254">254</a>             {
+<a class="jxr_linenumber" name="L255" href="#L255">255</a>                 Node parametersNode = getSingleChild( mojo, <span class="jxr_string">"parameters"</span> );
+<a class="jxr_linenumber" name="L256" href="#L256">256</a>                 List&lt;Node&gt; parameters = findNamedChild( parametersNode, <span class="jxr_string">"parameter"</span> );
+<a class="jxr_linenumber" name="L257" href="#L257">257</a>                 append( sb, <span class="jxr_string">"Available parameters:"</span>, 1 );
+<a class="jxr_linenumber" name="L258" href="#L258">258</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="L259" href="#L259">259</a> 
+<a class="jxr_linenumber" name="L260" href="#L260">260</a>                 <strong class="jxr_keyword">for</strong> ( Node parameter : parameters )
+<a class="jxr_linenumber" name="L261" href="#L261">261</a>                 {
+<a class="jxr_linenumber" name="L262" href="#L262">262</a>                     writeParameter( sb, parameter, configurationElement );
+<a class="jxr_linenumber" name="L263" href="#L263">263</a>                 }
+<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> 
+<a class="jxr_linenumber" name="L268" href="#L268">268</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeParameter( StringBuilder sb, Node parameter, Node configurationElement )
+<a class="jxr_linenumber" name="L269" href="#L269">269</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="L270" href="#L270">270</a>     {
+<a class="jxr_linenumber" name="L271" href="#L271">271</a>         String parameterName = getValue( parameter, <span class="jxr_string">"name"</span> );
+<a class="jxr_linenumber" name="L272" href="#L272">272</a>         String parameterDescription = getValue( parameter, <span class="jxr_string">"description"</span> );
+<a class="jxr_linenumber" name="L273" href="#L273">273</a> 
+<a class="jxr_linenumber" name="L274" href="#L274">274</a>         Element fieldConfigurationElement = (Element)findSingleChild( configurationElement, parameterName );
+<a class="jxr_linenumber" name="L275" href="#L275">275</a> 
+<a class="jxr_linenumber" name="L276" href="#L276">276</a>         String parameterDefaultValue = <span class="jxr_string">""</span>;
+<a class="jxr_linenumber" name="L277" href="#L277">277</a>         <strong class="jxr_keyword">if</strong> ( fieldConfigurationElement != <strong class="jxr_keyword">null</strong> &amp;&amp; fieldConfigurationElement.hasAttribute( <span class="jxr_string">"default-value"</span> ) )
+<a class="jxr_linenumber" name="L278" href="#L278">278</a>         {
+<a class="jxr_linenumber" name="L279" href="#L279">279</a>             parameterDefaultValue = <span class="jxr_string">" (Default: "</span> + fieldConfigurationElement.getAttribute( <span class="jxr_string">"default-value"</span> ) + <span class="jxr_string">")"</span>;
+<a class="jxr_linenumber" name="L280" href="#L280">280</a>         }
+<a class="jxr_linenumber" name="L281" href="#L281">281</a>         append( sb, parameterName + parameterDefaultValue, 2 );
+<a class="jxr_linenumber" name="L282" href="#L282">282</a>         Node deprecated = findSingleChild( parameter, <span class="jxr_string">"deprecated"</span> );
+<a class="jxr_linenumber" name="L283" href="#L283">283</a>         <strong class="jxr_keyword">if</strong> ( ( deprecated != <strong class="jxr_keyword">null</strong> ) &amp;&amp; isNotEmpty( deprecated.getTextContent() ) )
+<a class="jxr_linenumber" name="L284" href="#L284">284</a>         {
+<a class="jxr_linenumber" name="L285" href="#L285">285</a>             append( sb, <span class="jxr_string">"Deprecated. "</span> + deprecated.getTextContent(), 3 );
+<a class="jxr_linenumber" name="L286" href="#L286">286</a>             append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="L287" href="#L287">287</a>         }
+<a class="jxr_linenumber" name="L288" href="#L288">288</a>         append( sb, parameterDescription, 3 );
+<a class="jxr_linenumber" name="L289" href="#L289">289</a>         <strong class="jxr_keyword">if</strong> ( <span class="jxr_string">"true"</span>.equals( getValue( parameter, <span class="jxr_string">"required"</span> ) ) )
+<a class="jxr_linenumber" name="L290" href="#L290">290</a>         {
+<a class="jxr_linenumber" name="L291" href="#L291">291</a>             append( sb, <span class="jxr_string">"Required: Yes"</span>, 3 );
+<a class="jxr_linenumber" name="L292" href="#L292">292</a>         }
+<a class="jxr_linenumber" name="L293" href="#L293">293</a>         <strong class="jxr_keyword">if</strong> ( ( fieldConfigurationElement != <strong class="jxr_keyword">null</strong> ) &amp;&amp; isNotEmpty( fieldConfigurationElement.getTextContent() ) )
+<a class="jxr_linenumber" name="L294" href="#L294">294</a>         {
+<a class="jxr_linenumber" name="L295" href="#L295">295</a>         	String property = getPropertyFromExpression( fieldConfigurationElement.getTextContent() );
+<a class="jxr_linenumber" name="L296" href="#L296">296</a>             append( sb, <span class="jxr_string">"User property: "</span> + property, 3 );
+<a class="jxr_linenumber" name="L297" href="#L297">297</a>         }
+<a class="jxr_linenumber" name="L298" href="#L298">298</a> 
+<a class="jxr_linenumber" name="L299" href="#L299">299</a>         append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="L300" href="#L300">300</a>     }
+<a class="jxr_linenumber" name="L301" href="#L301">301</a> 
+<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> <em class="jxr_javadoccomment">     * &lt;p&gt;Repeat a String &lt;code&gt;n&lt;/code&gt; times to form a new string.&lt;/p&gt;</em>
+<a class="jxr_linenumber" name="L304" href="#L304">304</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L305" href="#L305">305</a> <em class="jxr_javadoccomment">     * @param str    String to repeat</em>
+<a class="jxr_linenumber" name="L306" href="#L306">306</a> <em class="jxr_javadoccomment">     * @param repeat number of times to repeat str</em>
+<a class="jxr_linenumber" name="L307" href="#L307">307</a> <em class="jxr_javadoccomment">     * @return String with repeated String</em>
+<a class="jxr_linenumber" name="L308" href="#L308">308</a> <em class="jxr_javadoccomment">     * @throws NegativeArraySizeException if &lt;code&gt;repeat &lt; 0&lt;/code&gt;</em>
+<a class="jxr_linenumber" name="L309" href="#L309">309</a> <em class="jxr_javadoccomment">     * @throws NullPointerException       if str is &lt;code&gt;null&lt;/code&gt;</em>
+<a class="jxr_linenumber" name="L310" href="#L310">310</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L311" href="#L311">311</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String repeat( String str, <strong class="jxr_keyword">int</strong> repeat )
+<a class="jxr_linenumber" name="L312" href="#L312">312</a>     {
+<a class="jxr_linenumber" name="L313" href="#L313">313</a>         StringBuilder buffer = <strong class="jxr_keyword">new</strong> StringBuilder( repeat * str.length() );
+<a class="jxr_linenumber" name="L314" href="#L314">314</a> 
+<a class="jxr_linenumber" name="L315" href="#L315">315</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; repeat; i++ )
+<a class="jxr_linenumber" name="L316" href="#L316">316</a>         {
+<a class="jxr_linenumber" name="L317" href="#L317">317</a>             buffer.append( str );
+<a class="jxr_linenumber" name="L318" href="#L318">318</a>         }
+<a class="jxr_linenumber" name="L319" href="#L319">319</a> 
+<a class="jxr_linenumber" name="L320" href="#L320">320</a>         <strong class="jxr_keyword">return</strong> buffer.toString();
+<a class="jxr_linenumber" name="L321" href="#L321">321</a>     }
+<a class="jxr_linenumber" name="L322" href="#L322">322</a> 
+<a class="jxr_linenumber" name="L323" href="#L323">323</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L324" href="#L324">324</a> <em class="jxr_javadoccomment">     * Append a description to the buffer by respecting the indentSize and lineLength parameters.</em>
+<a class="jxr_linenumber" name="L325" href="#L325">325</a> <em class="jxr_javadoccomment">     * &lt;b&gt;Note&lt;/b&gt;: The last character is always a new line.</em>
+<a class="jxr_linenumber" name="L326" href="#L326">326</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L327" href="#L327">327</a> <em class="jxr_javadoccomment">     * @param sb          The buffer to append the description, not &lt;code&gt;null&lt;/code&gt;.</em>
+<a class="jxr_linenumber" name="L328" href="#L328">328</a> <em class="jxr_javadoccomment">     * @param description The description, not &lt;code&gt;null&lt;/code&gt;.</em>
+<a class="jxr_linenumber" name="L329" href="#L329">329</a> <em class="jxr_javadoccomment">     * @param indent      The base indentation level of each line, must not be negative.</em>
+<a class="jxr_linenumber" name="L330" href="#L330">330</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L331" href="#L331">331</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> append( StringBuilder sb, String description, <strong class="jxr_keyword">int</strong> indent )
+<a class="jxr_linenumber" name="L332" href="#L332">332</a>     {
+<a class="jxr_linenumber" name="L333" href="#L333">333</a>         <strong class="jxr_keyword">for</strong> ( String line : toLines( description, indent, indentSize, lineLength ) )
+<a class="jxr_linenumber" name="L334" href="#L334">334</a>         {
+<a class="jxr_linenumber" name="L335" href="#L335">335</a>             sb.append( line ).append( '\n' );
+<a class="jxr_linenumber" name="L336" href="#L336">336</a>         }
+<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>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L340" href="#L340">340</a> <em class="jxr_javadoccomment">     * Splits the specified text into lines of convenient display length.</em>
+<a class="jxr_linenumber" name="L341" href="#L341">341</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L342" href="#L342">342</a> <em class="jxr_javadoccomment">     * @param text       The text to split into lines, must not be &lt;code&gt;null&lt;/code&gt;.</em>
+<a class="jxr_linenumber" name="L343" href="#L343">343</a> <em class="jxr_javadoccomment">     * @param indent     The base indentation level of each line, must not be negative.</em>
+<a class="jxr_linenumber" name="L344" href="#L344">344</a> <em class="jxr_javadoccomment">     * @param indentSize The size of each indentation, must not be negative.</em>
+<a class="jxr_linenumber" name="L345" href="#L345">345</a> <em class="jxr_javadoccomment">     * @param lineLength The length of the line, must not be negative.</em>
+<a class="jxr_linenumber" name="L346" href="#L346">346</a> <em class="jxr_javadoccomment">     * @return The sequence of display lines, never &lt;code&gt;null&lt;/code&gt;.</em>
+<a class="jxr_linenumber" name="L347" href="#L347">347</a> <em class="jxr_javadoccomment">     * @throws NegativeArraySizeException if &lt;code&gt;indent &lt; 0&lt;/code&gt;</em>
+<a class="jxr_linenumber" name="L348" href="#L348">348</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L349" href="#L349">349</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> List&lt;String&gt; toLines( String text, <strong class="jxr_keyword">int</strong> indent, <strong class="jxr_keyword">int</strong> indentSize, <strong class="jxr_keyword">int</strong> lineLength )
+<a class="jxr_linenumber" name="L350" href="#L350">350</a>     {
+<a class="jxr_linenumber" name="L351" href="#L351">351</a>         List&lt;String&gt; lines = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
+<a class="jxr_linenumber" name="L352" href="#L352">352</a> 
+<a class="jxr_linenumber" name="L353" href="#L353">353</a>         String ind = repeat( <span class="jxr_string">"\t"</span>, indent );
+<a class="jxr_linenumber" name="L354" href="#L354">354</a> 
+<a class="jxr_linenumber" name="L355" href="#L355">355</a>         String[] plainLines = text.split( <span class="jxr_string">"(\r\n)|(\r)|(\n)"</span> );
+<a class="jxr_linenumber" name="L356" href="#L356">356</a> 
+<a class="jxr_linenumber" name="L357" href="#L357">357</a>         <strong class="jxr_keyword">for</strong> ( String plainLine : plainLines )
+<a class="jxr_linenumber" name="L358" href="#L358">358</a>         {
+<a class="jxr_linenumber" name="L359" href="#L359">359</a>             toLines( lines, ind + plainLine, indentSize, lineLength );
+<a class="jxr_linenumber" name="L360" href="#L360">360</a>         }
+<a class="jxr_linenumber" name="L361" href="#L361">361</a> 
+<a class="jxr_linenumber" name="L362" href="#L362">362</a>         <strong class="jxr_keyword">return</strong> lines;
+<a class="jxr_linenumber" name="L363" href="#L363">363</a>     }
+<a class="jxr_linenumber" name="L364" href="#L364">364</a> 
+<a class="jxr_linenumber" name="L365" href="#L365">365</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L366" href="#L366">366</a> <em class="jxr_javadoccomment">     * Adds the specified line to the output sequence, performing line wrapping if necessary.</em>
+<a class="jxr_linenumber" name="L367" href="#L367">367</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L368" href="#L368">368</a> <em class="jxr_javadoccomment">     * @param lines      The sequence of display lines, must not be &lt;code&gt;null&lt;/code&gt;.</em>
+<a class="jxr_linenumber" name="L369" href="#L369">369</a> <em class="jxr_javadoccomment">     * @param line       The line to add, must not be &lt;code&gt;null&lt;/code&gt;.</em>
+<a class="jxr_linenumber" name="L370" href="#L370">370</a> <em class="jxr_javadoccomment">     * @param indentSize The size of each indentation, must not be negative.</em>
+<a class="jxr_linenumber" name="L371" href="#L371">371</a> <em class="jxr_javadoccomment">     * @param lineLength The length of the line, must not be negative.</em>
+<a class="jxr_linenumber" name="L372" href="#L372">372</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L373" href="#L373">373</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> toLines( List&lt;String&gt; lines, String line, <strong class="jxr_keyword">int</strong> indentSize, <strong class="jxr_keyword">int</strong> lineLength )
+<a class="jxr_linenumber" name="L374" href="#L374">374</a>     {
+<a class="jxr_linenumber" name="L375" href="#L375">375</a>         <strong class="jxr_keyword">int</strong> lineIndent = getIndentLevel( line );
+<a class="jxr_linenumber" name="L376" href="#L376">376</a>         StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder( 256 );
+<a class="jxr_linenumber" name="L377" href="#L377">377</a> 
+<a class="jxr_linenumber" name="L378" href="#L378">378</a>         String[] tokens = line.split( <span class="jxr_string">" +"</span> );
+<a class="jxr_linenumber" name="L379" href="#L379">379</a> 
+<a class="jxr_linenumber" name="L380" href="#L380">380</a>         <strong class="jxr_keyword">for</strong> ( String token : tokens )
+<a class="jxr_linenumber" name="L381" href="#L381">381</a>         {
+<a class="jxr_linenumber" name="L382" href="#L382">382</a>             <strong class="jxr_keyword">if</strong> ( buf.length() &gt; 0 )
+<a class="jxr_linenumber" name="L383" href="#L383">383</a>             {
+<a class="jxr_linenumber" name="L384" href="#L384">384</a>                 <strong class="jxr_keyword">if</strong> ( buf.length() + token.length() &gt;= lineLength )
+<a class="jxr_linenumber" name="L385" href="#L385">385</a>                 {
+<a class="jxr_linenumber" name="L386" href="#L386">386</a>                     lines.add( buf.toString() );
+<a class="jxr_linenumber" name="L387" href="#L387">387</a>                     buf.setLength( 0 );
+<a class="jxr_linenumber" name="L388" href="#L388">388</a>                     buf.append( repeat( <span class="jxr_string">" "</span>, lineIndent * indentSize ) );
+<a class="jxr_linenumber" name="L389" href="#L389">389</a>                 }
+<a class="jxr_linenumber" name="L390" href="#L390">390</a>                 <strong class="jxr_keyword">else</strong>
+<a class="jxr_linenumber" name="L391" href="#L391">391</a>                 {
+<a class="jxr_linenumber" name="L392" href="#L392">392</a>                     buf.append( ' ' );
+<a class="jxr_linenumber" name="L393" href="#L393">393</a>                 }
+<a class="jxr_linenumber" name="L394" href="#L394">394</a>             }
+<a class="jxr_linenumber" name="L395" href="#L395">395</a> 
+<a class="jxr_linenumber" name="L396" href="#L396">396</a>             <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> j = 0; j &lt; token.length(); j++ )
+<a class="jxr_linenumber" name="L397" href="#L397">397</a>             {
+<a class="jxr_linenumber" name="L398" href="#L398">398</a>                 <strong class="jxr_keyword">char</strong> c = token.charAt( j );
+<a class="jxr_linenumber" name="L399" href="#L399">399</a>                 <strong class="jxr_keyword">if</strong> ( c == '\t' )
+<a class="jxr_linenumber" name="L400" href="#L400">400</a>                 {
+<a class="jxr_linenumber" name="L401" href="#L401">401</a>                     buf.append( repeat( <span class="jxr_string">" "</span>, indentSize - buf.length() % indentSize ) );
+<a class="jxr_linenumber" name="L402" href="#L402">402</a>                 }
+<a class="jxr_linenumber" name="L403" href="#L403">403</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( c == '\u00A0' )
+<a class="jxr_linenumber" name="L404" href="#L404">404</a>                 {
+<a class="jxr_linenumber" name="L405" href="#L405">405</a>                     buf.append( ' ' );
+<a class="jxr_linenumber" name="L406" href="#L406">406</a>                 }
+<a class="jxr_linenumber" name="L407" href="#L407">407</a>                 <strong class="jxr_keyword">else</strong>
+<a class="jxr_linenumber" name="L408" href="#L408">408</a>                 {
+<a class="jxr_linenumber" name="L409" href="#L409">409</a>                     buf.append( c );
+<a class="jxr_linenumber" name="L410" href="#L410">410</a>                 }
+<a class="jxr_linenumber" name="L411" href="#L411">411</a>             }
+<a class="jxr_linenumber" name="L412" href="#L412">412</a>         }
+<a class="jxr_linenumber" name="L413" href="#L413">413</a>         lines.add( buf.toString() );
+<a class="jxr_linenumber" name="L414" href="#L414">414</a>     }
+<a class="jxr_linenumber" name="L415" href="#L415">415</a> 
+<a class="jxr_linenumber" name="L416" href="#L416">416</a>     <em class="jxr_javadoccomment">/**</em>

[... 45 lines stripped ...]