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/09/22 08:49:38 UTC

svn commit: r923159 [26/27] - in /websites/production/maven/content/plugins-archives/maven-clean-plugin-LATEST: ./ apidocs/ apidocs/org/apache/maven/plugin/clean/ apidocs/org/apache/maven/plugin/clean/class-use/ apidocs/resources/ cobertura/ css/ examp...

Modified: websites/production/maven/content/plugins-archives/maven-clean-plugin-LATEST/xref/org/apache/maven/plugin/clean/HelpMojo.html
==============================================================================
--- websites/production/maven/content/plugins-archives/maven-clean-plugin-LATEST/xref/org/apache/maven/plugin/clean/HelpMojo.html (original)
+++ websites/production/maven/content/plugins-archives/maven-clean-plugin-LATEST/xref/org/apache/maven/plugin/clean/HelpMojo.html Mon Sep 22 06:49:35 2014
@@ -1,312 +1,451 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
-<title>HelpMojo xref</title>
-<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
-</head>
-<body>
-<div id="overview"><a href="../../../../../../apidocs/org/apache/maven/plugin/clean/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.clean;
-<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-clean-plugin.&lt;br/&gt; Call &lt;pre&gt;  mvn clean: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 Wed Jan 02 22:39:51 CET 2013</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/clean/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-clean-plugin:2.5"</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 Clean Plugin"</span>, 0 );
-<a class="jxr_linenumber" name="73" href="#73">73</a>          append( sb, <span class="jxr_string">"The Maven Clean Plugin is a plugin that removes files generated at build-time in a project\'s directory."</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">"clean"</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">"clean:clean"</span>, 0 );
-<a class="jxr_linenumber" name="85" href="#85">85</a>              append( sb, <span class="jxr_string">"Goal which cleans the build.\nThis attempts to clean a project\'s working directory of the files that were generated at build-time. By default, it discovers and deletes the directories configured in project.build.directory, project.build.outputDirectory, project.build.testOutputDirectory, and project.reporting.outputDirectory.\n\nFiles outside the default may also be included in the deletion by configuring the filesets tag.\n"</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">"excludeDefaultDirectories (Default: false)"</span>, 2 );
-<a class="jxr_linenumber" name="93" href="#93">93</a>                  append( sb, <span class="jxr_string">"Disables the deletion of the default output directories configured for a project. If set to true, only the files/directories selected via the parameter filesets will be deleted."</span>, 3 );
-<a class="jxr_linenumber" name="94" href="#94">94</a>                  append( sb, <span class="jxr_string">"Expression: ${clean.excludeDefaultDirectories}"</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">"failOnError (Default: true)"</span>, 2 );
-<a class="jxr_linenumber" name="98" href="#98">98</a>                  append( sb, <span class="jxr_string">"Indicates whether the build will continue even if there are clean errors."</span>, 3 );
-<a class="jxr_linenumber" name="99" href="#99">99</a>                  append( sb, <span class="jxr_string">"Expression: ${maven.clean.failOnError}"</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">"filesets"</span>, 2 );
-<a class="jxr_linenumber" name="103" href="#103">103</a>                 append( sb, <span class="jxr_string">"The list of file sets to delete, in addition to the default directories. For example:\n&lt;filesets&gt;\n\u00a0\u00a0&lt;fileset&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;directory&gt;src/main/generated&lt;/directory&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;followSymlinks&gt;false&lt;/followSymlinks&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;useDefaultExcludes&gt;true&lt;/useDefaultExcludes&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;includes&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;include&gt;*.java&lt;/include&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;/includes&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;excludes&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;exclude&gt;Template*&lt;/exclude&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;/excludes&gt;\n\u00a0\u00a0&lt;/fileset&gt;\n&lt;/filesets&gt;\n"</span>, 3 );
-<a class="jxr_linenumber" name="104" href="#104">104</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="105" href="#105">105</a> 
-<a class="jxr_linenumber" name="106" href="#106">106</a>                 append( sb, <span class="jxr_string">"followSymLinks (Default: false)"</span>, 2 );
-<a class="jxr_linenumber" name="107" href="#107">107</a>                 append( sb, <span class="jxr_string">"Sets whether the plugin should follow symbolic links while deleting files from the default output directories of the project. Not following symlinks requires more IO operations and heap memory, regardless whether symlinks are actually present. So projects with a huge output directory that knowingly does not contain symlinks can improve performance by setting this parameter to true."</span>, 3 );
-<a class="jxr_linenumber" name="108" href="#108">108</a>                 append( sb, <span class="jxr_string">"Expression: ${clean.followSymLinks}"</span>, 3 );
-<a class="jxr_linenumber" name="109" href="#109">109</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="110" href="#110">110</a> 
-<a class="jxr_linenumber" name="111" href="#111">111</a>                 append( sb, <span class="jxr_string">"retryOnError (Default: true)"</span>, 2 );
-<a class="jxr_linenumber" name="112" href="#112">112</a>                 append( sb, <span class="jxr_string">"Indicates whether the plugin should undertake additional attempts (after a short delay) to delete a file if the first attempt failed. This is meant to help deleting files that are temporarily locked by third-party tools like virus scanners or search indexing."</span>, 3 );
-<a class="jxr_linenumber" name="113" href="#113">113</a>                 append( sb, <span class="jxr_string">"Expression: ${maven.clean.retryOnError}"</span>, 3 );
-<a class="jxr_linenumber" name="114" href="#114">114</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<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">"skip (Default: false)"</span>, 2 );
-<a class="jxr_linenumber" name="117" href="#117">117</a>                 append( sb, <span class="jxr_string">"Disables the plugin execution."</span>, 3 );
-<a class="jxr_linenumber" name="118" href="#118">118</a>                 append( sb, <span class="jxr_string">"Expression: ${clean.skip}"</span>, 3 );
-<a class="jxr_linenumber" name="119" href="#119">119</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<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">"verbose"</span>, 2 );
-<a class="jxr_linenumber" name="122" href="#122">122</a>                 append( sb, <span class="jxr_string">"Sets whether the plugin runs in verbose mode. As of plugin version 2.3, the default value is derived from Maven\'s global debug flag (compare command line switch -X)."</span>, 3 );
-<a class="jxr_linenumber" name="123" href="#123">123</a>                 append( sb, <span class="jxr_string">"Expression: ${clean.verbose}"</span>, 3 );
-<a class="jxr_linenumber" name="124" href="#124">124</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="125" href="#125">125</a>             }
-<a class="jxr_linenumber" name="126" href="#126">126</a>         }
-<a class="jxr_linenumber" name="127" href="#127">127</a> 
-<a class="jxr_linenumber" name="128" href="#128">128</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="129" href="#129">129</a>         {
-<a class="jxr_linenumber" name="130" href="#130">130</a>             append( sb, <span class="jxr_string">"clean:help"</span>, 0 );
-<a class="jxr_linenumber" name="131" href="#131">131</a>             append( sb, <span class="jxr_string">"Display help information on maven-clean-plugin.\nCall\n\u00a0\u00a0mvn\u00a0clean:help\u00a0-Ddetail=true\u00a0-Dgoal=&lt;goal-name&gt;\nto display parameter details."</span>, 1 );
-<a class="jxr_linenumber" name="132" href="#132">132</a>             append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="133" href="#133">133</a>             <strong class="jxr_keyword">if</strong> ( detail )
-<a class="jxr_linenumber" name="134" href="#134">134</a>             {
-<a class="jxr_linenumber" name="135" href="#135">135</a>                 append( sb, <span class="jxr_string">"Available parameters:"</span>, 1 );
-<a class="jxr_linenumber" name="136" href="#136">136</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="137" href="#137">137</a> 
-<a class="jxr_linenumber" name="138" href="#138">138</a>                 append( sb, <span class="jxr_string">"detail (Default: false)"</span>, 2 );
-<a class="jxr_linenumber" name="139" href="#139">139</a>                 append( sb, <span class="jxr_string">"If true, display all settable properties for each goal."</span>, 3 );
-<a class="jxr_linenumber" name="140" href="#140">140</a>                 append( sb, <span class="jxr_string">"Expression: ${detail}"</span>, 3 );
-<a class="jxr_linenumber" name="141" href="#141">141</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="142" href="#142">142</a> 
-<a class="jxr_linenumber" name="143" href="#143">143</a>                 append( sb, <span class="jxr_string">"goal"</span>, 2 );
-<a class="jxr_linenumber" name="144" href="#144">144</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="145" href="#145">145</a>                 append( sb, <span class="jxr_string">"Expression: ${goal}"</span>, 3 );
-<a class="jxr_linenumber" name="146" href="#146">146</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="147" href="#147">147</a> 
-<a class="jxr_linenumber" name="148" href="#148">148</a>                 append( sb, <span class="jxr_string">"indentSize (Default: 2)"</span>, 2 );
-<a class="jxr_linenumber" name="149" href="#149">149</a>                 append( sb, <span class="jxr_string">"The number of spaces per indentation level, should be positive."</span>, 3 );
-<a class="jxr_linenumber" name="150" href="#150">150</a>                 append( sb, <span class="jxr_string">"Expression: ${indentSize}"</span>, 3 );
-<a class="jxr_linenumber" name="151" href="#151">151</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="152" href="#152">152</a> 
-<a class="jxr_linenumber" name="153" href="#153">153</a>                 append( sb, <span class="jxr_string">"lineLength (Default: 80)"</span>, 2 );
-<a class="jxr_linenumber" name="154" href="#154">154</a>                 append( sb, <span class="jxr_string">"The maximum length of a display line, should be positive."</span>, 3 );
-<a class="jxr_linenumber" name="155" href="#155">155</a>                 append( sb, <span class="jxr_string">"Expression: ${lineLength}"</span>, 3 );
-<a class="jxr_linenumber" name="156" href="#156">156</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="157" href="#157">157</a>             }
-<a class="jxr_linenumber" name="158" href="#158">158</a>         }
-<a class="jxr_linenumber" name="159" href="#159">159</a> 
-<a class="jxr_linenumber" name="160" href="#160">160</a>         <strong class="jxr_keyword">if</strong> ( getLog().isInfoEnabled() )
-<a class="jxr_linenumber" name="161" href="#161">161</a>         {
-<a class="jxr_linenumber" name="162" href="#162">162</a>             getLog().info( sb.toString() );
-<a class="jxr_linenumber" name="163" href="#163">163</a>         }
-<a class="jxr_linenumber" name="164" href="#164">164</a>     }
-<a class="jxr_linenumber" name="165" href="#165">165</a> 
-<a class="jxr_linenumber" name="166" href="#166">166</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="167" href="#167">167</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="168" href="#168">168</a> <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="169" href="#169">169</a> <em class="jxr_javadoccomment">     * @param str String to repeat</em>
-<a class="jxr_linenumber" name="170" href="#170">170</a> <em class="jxr_javadoccomment">     * @param repeat number of times to repeat str</em>
-<a class="jxr_linenumber" name="171" href="#171">171</a> <em class="jxr_javadoccomment">     * @return String with repeated String</em>
-<a class="jxr_linenumber" name="172" href="#172">172</a> <em class="jxr_javadoccomment">     * @throws NegativeArraySizeException if &lt;code&gt;repeat &lt; 0&lt;/code&gt;</em>
-<a class="jxr_linenumber" name="173" href="#173">173</a> <em class="jxr_javadoccomment">     * @throws NullPointerException if str is &lt;code&gt;null&lt;/code&gt;</em>
-<a class="jxr_linenumber" name="174" href="#174">174</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="175" href="#175">175</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="176" href="#176">176</a>     {
-<a class="jxr_linenumber" name="177" href="#177">177</a>         StringBuffer buffer = <strong class="jxr_keyword">new</strong> StringBuffer( repeat * str.length() );
-<a class="jxr_linenumber" name="178" href="#178">178</a> 
-<a class="jxr_linenumber" name="179" href="#179">179</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; repeat; i++ )
-<a class="jxr_linenumber" name="180" href="#180">180</a>         {
-<a class="jxr_linenumber" name="181" href="#181">181</a>             buffer.append( str );
-<a class="jxr_linenumber" name="182" href="#182">182</a>         }
-<a class="jxr_linenumber" name="183" href="#183">183</a> 
-<a class="jxr_linenumber" name="184" href="#184">184</a>         <strong class="jxr_keyword">return</strong> buffer.toString();
-<a class="jxr_linenumber" name="185" href="#185">185</a>     }
-<a class="jxr_linenumber" name="186" href="#186">186</a> 
-<a class="jxr_linenumber" name="187" href="#187">187</a>     <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> </em>
-<a class="jxr_linenumber" name="188" href="#188">188</a> <em class="jxr_javadoccomment">     * Append a description to the buffer by respecting the indentSize and lineLength parameters.</em>
-<a class="jxr_linenumber" name="189" href="#189">189</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="190" href="#190">190</a> <em class="jxr_javadoccomment">     * </em>
-<a class="jxr_linenumber" name="191" href="#191">191</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="192" href="#192">192</a> <em class="jxr_javadoccomment">     * @param description The description, not &lt;code&gt;null&lt;/code&gt;.</em>
-<a class="jxr_linenumber" name="193" href="#193">193</a> <em class="jxr_javadoccomment">     * @param indent The base indentation level of each line, must not be negative.</em>
-<a class="jxr_linenumber" name="194" href="#194">194</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="195" href="#195">195</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="196" href="#196">196</a>     {
-<a class="jxr_linenumber" name="197" href="#197">197</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = toLines( description, indent, indentSize, lineLength ).iterator(); it.hasNext(); )
-<a class="jxr_linenumber" name="198" href="#198">198</a>         {
-<a class="jxr_linenumber" name="199" href="#199">199</a>             sb.append( it.next().toString() ).append( '\n' );
-<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> 
-<a class="jxr_linenumber" name="203" href="#203">203</a>     <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> </em>
-<a class="jxr_linenumber" name="204" href="#204">204</a> <em class="jxr_javadoccomment">     * Splits the specified text into lines of convenient display length.</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 text The text to split into lines, must not be &lt;code&gt;null&lt;/code&gt;.</em>
-<a class="jxr_linenumber" name="207" href="#207">207</a> <em class="jxr_javadoccomment">     * @param indent The base indentation level of each line, must not be negative.</em>
-<a class="jxr_linenumber" name="208" href="#208">208</a> <em class="jxr_javadoccomment">     * @param indentSize The size of each indentation, must not be negative.</em>
-<a class="jxr_linenumber" name="209" href="#209">209</a> <em class="jxr_javadoccomment">     * @param lineLength The length of the line, must not be negative.</em>
-<a class="jxr_linenumber" name="210" href="#210">210</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="211" href="#211">211</a> <em class="jxr_javadoccomment">     * @throws NegativeArraySizeException if &lt;code&gt;indent &lt; 0&lt;/code&gt;</em>
-<a class="jxr_linenumber" name="212" href="#212">212</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="213" href="#213">213</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="214" href="#214">214</a>     {
-<a class="jxr_linenumber" name="215" href="#215">215</a>         List&lt;String&gt; lines = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
-<a class="jxr_linenumber" name="216" href="#216">216</a> 
-<a class="jxr_linenumber" name="217" href="#217">217</a>         String ind = repeat( <span class="jxr_string">"\t"</span>, indent );
-<a class="jxr_linenumber" name="218" href="#218">218</a>         String[] plainLines = text.split( <span class="jxr_string">"(\r\n)|(\r)|(\n)"</span> );
-<a class="jxr_linenumber" name="219" href="#219">219</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="220" href="#220">220</a>         {
-<a class="jxr_linenumber" name="221" href="#221">221</a>             toLines( lines, ind + plainLines[i], indentSize, lineLength );
-<a class="jxr_linenumber" name="222" href="#222">222</a>         }
-<a class="jxr_linenumber" name="223" href="#223">223</a> 
-<a class="jxr_linenumber" name="224" href="#224">224</a>         <strong class="jxr_keyword">return</strong> lines;
-<a class="jxr_linenumber" name="225" href="#225">225</a>     }
-<a class="jxr_linenumber" name="226" href="#226">226</a> 
-<a class="jxr_linenumber" name="227" href="#227">227</a>     <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> </em>
-<a class="jxr_linenumber" name="228" href="#228">228</a> <em class="jxr_javadoccomment">     * Adds the specified line to the output sequence, performing line wrapping if necessary.</em>
-<a class="jxr_linenumber" name="229" href="#229">229</a> <em class="jxr_javadoccomment">     * </em>
-<a class="jxr_linenumber" name="230" href="#230">230</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="231" href="#231">231</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="232" href="#232">232</a> <em class="jxr_javadoccomment">     * @param indentSize The size of each indentation, must not be negative.</em>
-<a class="jxr_linenumber" name="233" href="#233">233</a> <em class="jxr_javadoccomment">     * @param lineLength The length of the line, must not be negative.</em>
-<a class="jxr_linenumber" name="234" href="#234">234</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="235" href="#235">235</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="236" href="#236">236</a>     {
-<a class="jxr_linenumber" name="237" href="#237">237</a>         <strong class="jxr_keyword">int</strong> lineIndent = getIndentLevel( line );
-<a class="jxr_linenumber" name="238" href="#238">238</a>         StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer( 256 );
-<a class="jxr_linenumber" name="239" href="#239">239</a>         String[] tokens = line.split( <span class="jxr_string">" +"</span> );
-<a class="jxr_linenumber" name="240" href="#240">240</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="241" href="#241">241</a>         {
-<a class="jxr_linenumber" name="242" href="#242">242</a>             String token = tokens[i];
-<a class="jxr_linenumber" name="243" href="#243">243</a>             <strong class="jxr_keyword">if</strong> ( i &gt; 0 )
-<a class="jxr_linenumber" name="244" href="#244">244</a>             {
-<a class="jxr_linenumber" name="245" href="#245">245</a>                 <strong class="jxr_keyword">if</strong> ( buf.length() + token.length() &gt;= lineLength )
-<a class="jxr_linenumber" name="246" href="#246">246</a>                 {
-<a class="jxr_linenumber" name="247" href="#247">247</a>                     lines.add( buf.toString() );
-<a class="jxr_linenumber" name="248" href="#248">248</a>                     buf.setLength( 0 );
-<a class="jxr_linenumber" name="249" href="#249">249</a>                     buf.append( repeat( <span class="jxr_string">" "</span>, lineIndent * indentSize ) );
-<a class="jxr_linenumber" name="250" href="#250">250</a>                 }
-<a class="jxr_linenumber" name="251" href="#251">251</a>                 <strong class="jxr_keyword">else</strong>
-<a class="jxr_linenumber" name="252" href="#252">252</a>                 {
-<a class="jxr_linenumber" name="253" href="#253">253</a>                     buf.append( ' ' );
-<a class="jxr_linenumber" name="254" href="#254">254</a>                 }
-<a class="jxr_linenumber" name="255" href="#255">255</a>             }
-<a class="jxr_linenumber" name="256" href="#256">256</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="257" href="#257">257</a>             {
-<a class="jxr_linenumber" name="258" href="#258">258</a>                 <strong class="jxr_keyword">char</strong> c = token.charAt( j );
-<a class="jxr_linenumber" name="259" href="#259">259</a>                 <strong class="jxr_keyword">if</strong> ( c == '\t' )
-<a class="jxr_linenumber" name="260" href="#260">260</a>                 {
-<a class="jxr_linenumber" name="261" href="#261">261</a>                     buf.append( repeat( <span class="jxr_string">" "</span>, indentSize - buf.length() % indentSize ) );
-<a class="jxr_linenumber" name="262" href="#262">262</a>                 }
-<a class="jxr_linenumber" name="263" href="#263">263</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( c == '\u00A0' )
-<a class="jxr_linenumber" name="264" href="#264">264</a>                 {
-<a class="jxr_linenumber" name="265" href="#265">265</a>                     buf.append( ' ' );
-<a class="jxr_linenumber" name="266" href="#266">266</a>                 }
-<a class="jxr_linenumber" name="267" href="#267">267</a>                 <strong class="jxr_keyword">else</strong>
-<a class="jxr_linenumber" name="268" href="#268">268</a>                 {
-<a class="jxr_linenumber" name="269" href="#269">269</a>                     buf.append( c );
-<a class="jxr_linenumber" name="270" href="#270">270</a>                 }
-<a class="jxr_linenumber" name="271" href="#271">271</a>             }
-<a class="jxr_linenumber" name="272" href="#272">272</a>         }
-<a class="jxr_linenumber" name="273" href="#273">273</a>         lines.add( buf.toString() );
-<a class="jxr_linenumber" name="274" href="#274">274</a>     }
-<a class="jxr_linenumber" name="275" href="#275">275</a> 
-<a class="jxr_linenumber" name="276" href="#276">276</a>     <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> </em>
-<a class="jxr_linenumber" name="277" href="#277">277</a> <em class="jxr_javadoccomment">     * Gets the indentation level of the specified line.</em>
-<a class="jxr_linenumber" name="278" href="#278">278</a> <em class="jxr_javadoccomment">     * </em>
-<a class="jxr_linenumber" name="279" href="#279">279</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="280" href="#280">280</a> <em class="jxr_javadoccomment">     * @return The indentation level of the line.</em>
-<a class="jxr_linenumber" name="281" href="#281">281</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="282" href="#282">282</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="283" href="#283">283</a>     {
-<a class="jxr_linenumber" name="284" href="#284">284</a>         <strong class="jxr_keyword">int</strong> level = 0;
-<a class="jxr_linenumber" name="285" href="#285">285</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="286" href="#286">286</a>         {
-<a class="jxr_linenumber" name="287" href="#287">287</a>             level++;
-<a class="jxr_linenumber" name="288" href="#288">288</a>         }
-<a class="jxr_linenumber" name="289" href="#289">289</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="290" href="#290">290</a>         {
-<a class="jxr_linenumber" name="291" href="#291">291</a>             <strong class="jxr_keyword">if</strong> ( line.charAt( i ) == '\t' )
-<a class="jxr_linenumber" name="292" href="#292">292</a>             {
-<a class="jxr_linenumber" name="293" href="#293">293</a>                 level++;
-<a class="jxr_linenumber" name="294" href="#294">294</a>                 <strong class="jxr_keyword">break</strong>;
-<a class="jxr_linenumber" name="295" href="#295">295</a>             }
-<a class="jxr_linenumber" name="296" href="#296">296</a>         }
-<a class="jxr_linenumber" name="297" href="#297">297</a>         <strong class="jxr_keyword">return</strong> level;
-<a class="jxr_linenumber" name="298" href="#298">298</a>     }
-<a class="jxr_linenumber" name="299" href="#299">299</a> }
-</pre>
-<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head><meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<title>HelpMojo xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
+</head>
+<body>
+<div id="overview"><a href="../../../../../../apidocs/org/apache/maven/plugin/clean/HelpMojo.html">View Javadoc</a></div><pre>
+<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.maven.plugin.clean;
+<a class="jxr_linenumber" name="L2" href="#L2">2</a>   
+<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <strong class="jxr_keyword">import</strong> org.apache.maven.plugins.annotations.Mojo;
+<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <strong class="jxr_keyword">import</strong> org.apache.maven.plugins.annotations.Parameter;
+<a class="jxr_linenumber" name="L7" href="#L7">7</a>   
+<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <strong class="jxr_keyword">import</strong> org.w3c.dom.Document;
+<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <strong class="jxr_keyword">import</strong> org.w3c.dom.Element;
+<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Node;
+<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.NodeList;
+<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <strong class="jxr_keyword">import</strong> org.xml.sax.SAXException;
+<a class="jxr_linenumber" name="L13" href="#L13">13</a>  
+<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilder;
+<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilderFactory;
+<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.ParserConfigurationException;
+<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
+<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
+<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<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-clean-plugin.&lt;br/&gt;</em>
+<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <em class="jxr_javadoccomment"> * Call &lt;code&gt;mvn clean: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</em>
+<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <em class="jxr_javadoccomment"> * @version</em>
+<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="L29" href="#L29">29</a>  @Mojo( name = <span class="jxr_string">"help"</span>, requiresProject = false, threadSafe = <strong class="jxr_keyword">true</strong> )
+<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/maven/plugin/clean/HelpMojo.html">HelpMojo</a>
+<a class="jxr_linenumber" name="L31" href="#L31">31</a>      <strong class="jxr_keyword">extends</strong> AbstractMojo
+<a class="jxr_linenumber" name="L32" href="#L32">32</a>  {
+<a class="jxr_linenumber" name="L33" href="#L33">33</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L34" href="#L34">34</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="L35" href="#L35">35</a>  <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L37" href="#L37">37</a>      @Parameter( property = <span class="jxr_string">"detail"</span>, defaultValue = <span class="jxr_string">"false"</span> )
+<a class="jxr_linenumber" name="L38" href="#L38">38</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> detail;
+<a class="jxr_linenumber" name="L39" href="#L39">39</a>  
+<a class="jxr_linenumber" name="L40" href="#L40">40</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <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="L42" href="#L42">42</a>  <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L44" href="#L44">44</a>      @Parameter( property = <span class="jxr_string">"goal"</span> )
+<a class="jxr_linenumber" name="L45" href="#L45">45</a>      <strong class="jxr_keyword">private</strong> java.lang.String goal;
+<a class="jxr_linenumber" name="L46" href="#L46">46</a>  
+<a class="jxr_linenumber" name="L47" href="#L47">47</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <em class="jxr_javadoccomment">     * The maximum length of a display line, should be positive.</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>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L51" href="#L51">51</a>      @Parameter( property = <span class="jxr_string">"lineLength"</span>, defaultValue = <span class="jxr_string">"80"</span> )
+<a class="jxr_linenumber" name="L52" href="#L52">52</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> lineLength;
+<a class="jxr_linenumber" name="L53" href="#L53">53</a>  
+<a class="jxr_linenumber" name="L54" href="#L54">54</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <em class="jxr_javadoccomment">     * The number of spaces per indentation level, should be positive.</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>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L58" href="#L58">58</a>      @Parameter( property = <span class="jxr_string">"indentSize"</span>, defaultValue = <span class="jxr_string">"2"</span> )
+<a class="jxr_linenumber" name="L59" href="#L59">59</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> indentSize;
+<a class="jxr_linenumber" name="L60" href="#L60">60</a>  
+<a class="jxr_linenumber" name="L61" href="#L61">61</a>      <em class="jxr_comment">// groupId/artifactId/plugin-help.xml</em>
+<a class="jxr_linenumber" name="L62" href="#L62">62</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-clean-plugin/plugin-help.xml"</span>;
+<a class="jxr_linenumber" name="L63" href="#L63">63</a>  
+<a class="jxr_linenumber" name="L64" href="#L64">64</a>      <strong class="jxr_keyword">private</strong> Document build()
+<a class="jxr_linenumber" name="L65" href="#L65">65</a>          <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="L66" href="#L66">66</a>      {
+<a class="jxr_linenumber" name="L67" href="#L67">67</a>          getLog().debug( <span class="jxr_string">"load plugin-help.xml: "</span> + PLUGIN_HELP_PATH );
+<a class="jxr_linenumber" name="L68" href="#L68">68</a>          InputStream is = getClass().getResourceAsStream( PLUGIN_HELP_PATH );
+<a class="jxr_linenumber" name="L69" href="#L69">69</a>          <strong class="jxr_keyword">try</strong>
+<a class="jxr_linenumber" name="L70" href="#L70">70</a>          {
+<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>      }
+<a class="jxr_linenumber" name="L88" href="#L88">88</a>  
+<a class="jxr_linenumber" name="L89" href="#L89">89</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L90" href="#L90">90</a>  <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a class="jxr_linenumber" name="L91" href="#L91">91</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L92" href="#L92">92</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute()
+<a class="jxr_linenumber" name="L93" href="#L93">93</a>          <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="L94" href="#L94">94</a>      {
+<a class="jxr_linenumber" name="L95" href="#L95">95</a>          <strong class="jxr_keyword">if</strong> ( lineLength &lt;= 0 )
+<a class="jxr_linenumber" name="L96" href="#L96">96</a>          {
+<a class="jxr_linenumber" name="L97" href="#L97">97</a>              getLog().warn( <span class="jxr_string">"The parameter 'lineLength' should be positive, using '80' as default."</span> );
+<a class="jxr_linenumber" name="L98" href="#L98">98</a>              lineLength = 80;
+<a class="jxr_linenumber" name="L99" href="#L99">99</a>          }
+<a class="jxr_linenumber" name="L100" href="#L100">100</a>         <strong class="jxr_keyword">if</strong> ( indentSize &lt;= 0 )
+<a class="jxr_linenumber" name="L101" href="#L101">101</a>         {
+<a class="jxr_linenumber" name="L102" href="#L102">102</a>             getLog().warn( <span class="jxr_string">"The parameter 'indentSize' should be positive, using '2' as default."</span> );
+<a class="jxr_linenumber" name="L103" href="#L103">103</a>             indentSize = 2;
+<a class="jxr_linenumber" name="L104" href="#L104">104</a>         }
+<a class="jxr_linenumber" name="L105" href="#L105">105</a> 
+<a class="jxr_linenumber" name="L106" href="#L106">106</a>         Document doc = build();
+<a class="jxr_linenumber" name="L107" href="#L107">107</a> 
+<a class="jxr_linenumber" name="L108" href="#L108">108</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a class="jxr_linenumber" name="L109" href="#L109">109</a>         Node plugin = getSingleChild( doc, <span class="jxr_string">"plugin"</span> );
+<a class="jxr_linenumber" name="L110" href="#L110">110</a> 
+<a class="jxr_linenumber" name="L111" href="#L111">111</a> 
+<a class="jxr_linenumber" name="L112" href="#L112">112</a>         String name = getValue( plugin, <span class="jxr_string">"name"</span> );
+<a class="jxr_linenumber" name="L113" href="#L113">113</a>         String version = getValue( plugin, <span class="jxr_string">"version"</span> );
+<a class="jxr_linenumber" name="L114" href="#L114">114</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="L115" href="#L115">115</a>         <strong class="jxr_keyword">if</strong> ( isNotEmpty( name ) &amp;&amp; !name.contains( id ) )
+<a class="jxr_linenumber" name="L116" href="#L116">116</a>         {
+<a class="jxr_linenumber" name="L117" href="#L117">117</a>             append( sb, name + <span class="jxr_string">" "</span> + version, 0 );
+<a class="jxr_linenumber" name="L118" href="#L118">118</a>         }
+<a class="jxr_linenumber" name="L119" href="#L119">119</a>         <strong class="jxr_keyword">else</strong>
+<a class="jxr_linenumber" name="L120" href="#L120">120</a>         {
+<a class="jxr_linenumber" name="L121" href="#L121">121</a>             <strong class="jxr_keyword">if</strong> ( isNotEmpty( name ) )
+<a class="jxr_linenumber" name="L122" href="#L122">122</a>             {
+<a class="jxr_linenumber" name="L123" href="#L123">123</a>                 append( sb, name, 0 );
+<a class="jxr_linenumber" name="L124" href="#L124">124</a>             }
+<a class="jxr_linenumber" name="L125" href="#L125">125</a>             <strong class="jxr_keyword">else</strong>
+<a class="jxr_linenumber" name="L126" href="#L126">126</a>             {
+<a class="jxr_linenumber" name="L127" href="#L127">127</a>                 append( sb, id, 0 );
+<a class="jxr_linenumber" name="L128" href="#L128">128</a>             }
+<a class="jxr_linenumber" name="L129" href="#L129">129</a>         }
+<a class="jxr_linenumber" name="L130" href="#L130">130</a>         append( sb, getValue( plugin, <span class="jxr_string">"description"</span> ), 1 );
+<a class="jxr_linenumber" name="L131" href="#L131">131</a>         append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="L132" href="#L132">132</a> 
+<a class="jxr_linenumber" name="L133" href="#L133">133</a>         <em class="jxr_comment">//&lt;goalPrefix&gt;plugin&lt;/goalPrefix&gt;</em>
+<a class="jxr_linenumber" name="L134" href="#L134">134</a>         String goalPrefix = getValue( plugin, <span class="jxr_string">"goalPrefix"</span> );
+<a class="jxr_linenumber" name="L135" href="#L135">135</a> 
+<a class="jxr_linenumber" name="L136" href="#L136">136</a>         Node mojos1 = getSingleChild( plugin, <span class="jxr_string">"mojos"</span> );
+<a class="jxr_linenumber" name="L137" href="#L137">137</a> 
+<a class="jxr_linenumber" name="L138" href="#L138">138</a>         List&lt;Node&gt; mojos = findNamedChild( mojos1, <span class="jxr_string">"mojo"</span> );
+<a class="jxr_linenumber" name="L139" href="#L139">139</a> 
+<a class="jxr_linenumber" name="L140" href="#L140">140</a>         <strong class="jxr_keyword">if</strong> ( goal == <strong class="jxr_keyword">null</strong> || goal.length() &lt;= 0 )
+<a class="jxr_linenumber" name="L141" href="#L141">141</a>         {
+<a class="jxr_linenumber" name="L142" href="#L142">142</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="L143" href="#L143">143</a>             append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="L144" href="#L144">144</a>         }
+<a class="jxr_linenumber" name="L145" href="#L145">145</a> 
+<a class="jxr_linenumber" name="L146" href="#L146">146</a>         <strong class="jxr_keyword">for</strong> ( Node mojo : mojos )
+<a class="jxr_linenumber" name="L147" href="#L147">147</a>         {
+<a class="jxr_linenumber" name="L148" href="#L148">148</a>             writeGoal( sb, goalPrefix, (Element) mojo );
+<a class="jxr_linenumber" name="L149" href="#L149">149</a>         }
+<a class="jxr_linenumber" name="L150" href="#L150">150</a> 
+<a class="jxr_linenumber" name="L151" href="#L151">151</a>         <strong class="jxr_keyword">if</strong> ( getLog().isInfoEnabled() )
+<a class="jxr_linenumber" name="L152" href="#L152">152</a>         {
+<a class="jxr_linenumber" name="L153" href="#L153">153</a>             getLog().info( sb.toString() );
+<a class="jxr_linenumber" name="L154" href="#L154">154</a>         }
+<a class="jxr_linenumber" name="L155" href="#L155">155</a>     }
+<a class="jxr_linenumber" name="L156" href="#L156">156</a> 
+<a class="jxr_linenumber" name="L157" href="#L157">157</a> 
+<a class="jxr_linenumber" name="L158" href="#L158">158</a>     <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="L159" href="#L159">159</a>     {
+<a class="jxr_linenumber" name="L160" href="#L160">160</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="L161" href="#L161">161</a>     }
+<a class="jxr_linenumber" name="L162" href="#L162">162</a> 
+<a class="jxr_linenumber" name="L163" href="#L163">163</a>     <strong class="jxr_keyword">private</strong> String getValue( Node node, String elementName )
+<a class="jxr_linenumber" name="L164" href="#L164">164</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="L165" href="#L165">165</a>     {
+<a class="jxr_linenumber" name="L166" href="#L166">166</a>         <strong class="jxr_keyword">return</strong> getSingleChild( node, elementName ).getTextContent();
+<a class="jxr_linenumber" name="L167" href="#L167">167</a>     }
+<a class="jxr_linenumber" name="L168" href="#L168">168</a> 
+<a class="jxr_linenumber" name="L169" href="#L169">169</a>     <strong class="jxr_keyword">private</strong> Node getSingleChild( Node node, String elementName )
+<a class="jxr_linenumber" name="L170" href="#L170">170</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="L171" href="#L171">171</a>     {
+<a class="jxr_linenumber" name="L172" href="#L172">172</a>         List&lt;Node&gt; namedChild = findNamedChild( node, elementName );
+<a class="jxr_linenumber" name="L173" href="#L173">173</a>         <strong class="jxr_keyword">if</strong> ( namedChild.isEmpty() )
+<a class="jxr_linenumber" name="L174" href="#L174">174</a>         {
+<a class="jxr_linenumber" name="L175" href="#L175">175</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="L176" href="#L176">176</a>         }
+<a class="jxr_linenumber" name="L177" href="#L177">177</a>         <strong class="jxr_keyword">if</strong> ( namedChild.size() &gt; 1 )
+<a class="jxr_linenumber" name="L178" href="#L178">178</a>         {
+<a class="jxr_linenumber" name="L179" href="#L179">179</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="L180" href="#L180">180</a>         }
+<a class="jxr_linenumber" name="L181" href="#L181">181</a>         <strong class="jxr_keyword">return</strong> namedChild.get( 0 );
+<a class="jxr_linenumber" name="L182" href="#L182">182</a>     }
+<a class="jxr_linenumber" name="L183" href="#L183">183</a> 
+<a class="jxr_linenumber" name="L184" href="#L184">184</a>     <strong class="jxr_keyword">private</strong> List&lt;Node&gt; findNamedChild( Node node, String elementName )
+<a class="jxr_linenumber" name="L185" href="#L185">185</a>     {
+<a class="jxr_linenumber" name="L186" href="#L186">186</a>         List&lt;Node&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;Node&gt;();
+<a class="jxr_linenumber" name="L187" href="#L187">187</a>         NodeList childNodes = node.getChildNodes();
+<a class="jxr_linenumber" name="L188" href="#L188">188</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="L189" href="#L189">189</a>         {
+<a class="jxr_linenumber" name="L190" href="#L190">190</a>             Node item = childNodes.item( i );
+<a class="jxr_linenumber" name="L191" href="#L191">191</a>             <strong class="jxr_keyword">if</strong> ( elementName.equals( item.getNodeName() ) )
+<a class="jxr_linenumber" name="L192" href="#L192">192</a>             {
+<a class="jxr_linenumber" name="L193" href="#L193">193</a>                 result.add( item );
+<a class="jxr_linenumber" name="L194" href="#L194">194</a>             }
+<a class="jxr_linenumber" name="L195" href="#L195">195</a>         }
+<a class="jxr_linenumber" name="L196" href="#L196">196</a>         <strong class="jxr_keyword">return</strong> result;
+<a class="jxr_linenumber" name="L197" href="#L197">197</a>     }
+<a class="jxr_linenumber" name="L198" href="#L198">198</a> 
+<a class="jxr_linenumber" name="L199" href="#L199">199</a>     <strong class="jxr_keyword">private</strong> Node findSingleChild( Node node, String elementName )
+<a class="jxr_linenumber" name="L200" href="#L200">200</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="L201" href="#L201">201</a>     {
+<a class="jxr_linenumber" name="L202" href="#L202">202</a>         List&lt;Node&gt; elementsByTagName = findNamedChild( node, elementName );
+<a class="jxr_linenumber" name="L203" href="#L203">203</a>         <strong class="jxr_keyword">if</strong> ( elementsByTagName.isEmpty() )
+<a class="jxr_linenumber" name="L204" href="#L204">204</a>         {
+<a class="jxr_linenumber" name="L205" href="#L205">205</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="L206" href="#L206">206</a>         }
+<a class="jxr_linenumber" name="L207" href="#L207">207</a>         <strong class="jxr_keyword">if</strong> ( elementsByTagName.size() &gt; 1 )
+<a class="jxr_linenumber" name="L208" href="#L208">208</a>         {
+<a class="jxr_linenumber" name="L209" href="#L209">209</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="L210" href="#L210">210</a>         }
+<a class="jxr_linenumber" name="L211" href="#L211">211</a>         <strong class="jxr_keyword">return</strong> elementsByTagName.get( 0 );
+<a class="jxr_linenumber" name="L212" href="#L212">212</a>     }
+<a class="jxr_linenumber" name="L213" href="#L213">213</a> 
+<a class="jxr_linenumber" name="L214" href="#L214">214</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="L215" href="#L215">215</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="L216" href="#L216">216</a>     {
+<a class="jxr_linenumber" name="L217" href="#L217">217</a>         String mojoGoal = getValue( mojo, <span class="jxr_string">"goal"</span> );
+<a class="jxr_linenumber" name="L218" href="#L218">218</a>         Node configurationElement = findSingleChild( mojo, <span class="jxr_string">"configuration"</span> );
+<a class="jxr_linenumber" name="L219" href="#L219">219</a> 		Node description = findSingleChild( mojo, <span class="jxr_string">"description"</span> );
+<a class="jxr_linenumber" name="L220" href="#L220">220</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="L221" href="#L221">221</a>         {
+<a class="jxr_linenumber" name="L222" href="#L222">222</a>             append( sb, goalPrefix + <span class="jxr_string">":"</span> + mojoGoal, 0 );
+<a class="jxr_linenumber" name="L223" href="#L223">223</a>             Node deprecated = findSingleChild( mojo, <span class="jxr_string">"deprecated"</span> );
+<a class="jxr_linenumber" name="L224" href="#L224">224</a>             <strong class="jxr_keyword">if</strong> ( ( deprecated != <strong class="jxr_keyword">null</strong> ) &amp;&amp; isNotEmpty( deprecated.getNodeValue() ) )
+<a class="jxr_linenumber" name="L225" href="#L225">225</a>             {
+<a class="jxr_linenumber" name="L226" href="#L226">226</a>                 append( sb, <span class="jxr_string">"Deprecated. "</span> + deprecated, 1 );
+<a class="jxr_linenumber" name="L227" href="#L227">227</a>                 <strong class="jxr_keyword">if</strong> ( detail &amp;&amp; description != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="L228" href="#L228">228</a>                 {
+<a class="jxr_linenumber" name="L229" href="#L229">229</a>                     append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="L230" href="#L230">230</a>                     append( sb, description.getTextContent(), 1 );
+<a class="jxr_linenumber" name="L231" href="#L231">231</a>                 }
+<a class="jxr_linenumber" name="L232" href="#L232">232</a>             }
+<a class="jxr_linenumber" name="L233" href="#L233">233</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (description != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="L234" href="#L234">234</a>             {
+<a class="jxr_linenumber" name="L235" href="#L235">235</a>                 append( sb, description.getTextContent(), 1 );
+<a class="jxr_linenumber" name="L236" href="#L236">236</a>             }
+<a class="jxr_linenumber" name="L237" href="#L237">237</a>             append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="L238" href="#L238">238</a> 
+<a class="jxr_linenumber" name="L239" href="#L239">239</a>             <strong class="jxr_keyword">if</strong> ( detail )
+<a class="jxr_linenumber" name="L240" href="#L240">240</a>             {
+<a class="jxr_linenumber" name="L241" href="#L241">241</a>                 Node parametersNode = getSingleChild( mojo, <span class="jxr_string">"parameters"</span> );
+<a class="jxr_linenumber" name="L242" href="#L242">242</a>                 List&lt;Node&gt; parameters = findNamedChild( parametersNode, <span class="jxr_string">"parameter"</span> );
+<a class="jxr_linenumber" name="L243" href="#L243">243</a>                 append( sb, <span class="jxr_string">"Available parameters:"</span>, 1 );
+<a class="jxr_linenumber" name="L244" href="#L244">244</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="L245" href="#L245">245</a> 
+<a class="jxr_linenumber" name="L246" href="#L246">246</a>                 <strong class="jxr_keyword">for</strong> ( Node parameter : parameters )
+<a class="jxr_linenumber" name="L247" href="#L247">247</a>                 {
+<a class="jxr_linenumber" name="L248" href="#L248">248</a>                     writeParameter( sb, parameter, configurationElement );
+<a class="jxr_linenumber" name="L249" href="#L249">249</a>                 }
+<a class="jxr_linenumber" name="L250" href="#L250">250</a>             }
+<a class="jxr_linenumber" name="L251" href="#L251">251</a>         }
+<a class="jxr_linenumber" name="L252" href="#L252">252</a>     }
+<a class="jxr_linenumber" name="L253" href="#L253">253</a> 
+<a class="jxr_linenumber" name="L254" href="#L254">254</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> writeParameter( StringBuilder sb, Node parameter, Node configurationElement )
+<a class="jxr_linenumber" name="L255" href="#L255">255</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="L256" href="#L256">256</a>     {
+<a class="jxr_linenumber" name="L257" href="#L257">257</a>         String parameterName = getValue( parameter, <span class="jxr_string">"name"</span> );
+<a class="jxr_linenumber" name="L258" href="#L258">258</a>         String parameterDescription = getValue( parameter, <span class="jxr_string">"description"</span> );
+<a class="jxr_linenumber" name="L259" href="#L259">259</a> 
+<a class="jxr_linenumber" name="L260" href="#L260">260</a>         Node fieldConfigurationElement = findSingleChild( configurationElement, parameterName );
+<a class="jxr_linenumber" name="L261" href="#L261">261</a> 
+<a class="jxr_linenumber" name="L262" href="#L262">262</a>         String parameterDefaultValue = <span class="jxr_string">""</span>;
+<a class="jxr_linenumber" name="L263" href="#L263">263</a>         <strong class="jxr_keyword">if</strong> ( fieldConfigurationElement != <strong class="jxr_keyword">null</strong> &amp;&amp; fieldConfigurationElement.getNodeValue() != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="L264" href="#L264">264</a>         {
+<a class="jxr_linenumber" name="L265" href="#L265">265</a>             parameterDefaultValue = <span class="jxr_string">" (Default: "</span> + ((Element)fieldConfigurationElement).getAttribute( <span class="jxr_string">"default-value"</span> ) + <span class="jxr_string">")"</span>;
+<a class="jxr_linenumber" name="L266" href="#L266">266</a>         }
+<a class="jxr_linenumber" name="L267" href="#L267">267</a>         append( sb, parameterName + parameterDefaultValue, 2 );
+<a class="jxr_linenumber" name="L268" href="#L268">268</a>         Node deprecated = findSingleChild( parameter, <span class="jxr_string">"deprecated"</span> );
+<a class="jxr_linenumber" name="L269" href="#L269">269</a>         <strong class="jxr_keyword">if</strong> ( ( deprecated != <strong class="jxr_keyword">null</strong> ) &amp;&amp; isNotEmpty( deprecated.getNodeValue() ) )
+<a class="jxr_linenumber" name="L270" href="#L270">270</a>         {
+<a class="jxr_linenumber" name="L271" href="#L271">271</a>             append( sb, <span class="jxr_string">"Deprecated. "</span> + deprecated.getNodeValue(), 3 );
+<a class="jxr_linenumber" name="L272" href="#L272">272</a>             append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="L273" href="#L273">273</a>         }
+<a class="jxr_linenumber" name="L274" href="#L274">274</a>         append( sb, parameterDescription, 3 );
+<a class="jxr_linenumber" name="L275" href="#L275">275</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="L276" href="#L276">276</a>         {
+<a class="jxr_linenumber" name="L277" href="#L277">277</a>             append( sb, <span class="jxr_string">"Required: Yes"</span>, 3 );
+<a class="jxr_linenumber" name="L278" href="#L278">278</a>         }
+<a class="jxr_linenumber" name="L279" href="#L279">279</a>         Node expression = findSingleChild( parameter, <span class="jxr_string">"expression"</span> );
+<a class="jxr_linenumber" name="L280" href="#L280">280</a>         <strong class="jxr_keyword">if</strong> ( ( expression != <strong class="jxr_keyword">null</strong> ) &amp;&amp; isNotEmpty( expression.getNodeValue() ) )
+<a class="jxr_linenumber" name="L281" href="#L281">281</a>         {
+<a class="jxr_linenumber" name="L282" href="#L282">282</a>         	String property = getPropertyFromExpression( expression.getNodeValue() );
+<a class="jxr_linenumber" name="L283" href="#L283">283</a>             append( sb, <span class="jxr_string">"User property: "</span> + property, 3 );
+<a class="jxr_linenumber" name="L284" href="#L284">284</a>         }
+<a class="jxr_linenumber" name="L285" href="#L285">285</a> 
+<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> 
+<a class="jxr_linenumber" name="L289" href="#L289">289</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L290" href="#L290">290</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="L291" href="#L291">291</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L292" href="#L292">292</a> <em class="jxr_javadoccomment">     * @param str    String to repeat</em>
+<a class="jxr_linenumber" name="L293" href="#L293">293</a> <em class="jxr_javadoccomment">     * @param repeat number of times to repeat str</em>
+<a class="jxr_linenumber" name="L294" href="#L294">294</a> <em class="jxr_javadoccomment">     * @return String with repeated String</em>
+<a class="jxr_linenumber" name="L295" href="#L295">295</a> <em class="jxr_javadoccomment">     * @throws NegativeArraySizeException if &lt;code&gt;repeat &lt; 0&lt;/code&gt;</em>
+<a class="jxr_linenumber" name="L296" href="#L296">296</a> <em class="jxr_javadoccomment">     * @throws NullPointerException       if str is &lt;code&gt;null&lt;/code&gt;</em>
+<a class="jxr_linenumber" name="L297" href="#L297">297</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L298" href="#L298">298</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="L299" href="#L299">299</a>     {
+<a class="jxr_linenumber" name="L300" href="#L300">300</a>         StringBuilder buffer = <strong class="jxr_keyword">new</strong> StringBuilder( repeat * str.length() );
+<a class="jxr_linenumber" name="L301" href="#L301">301</a> 
+<a class="jxr_linenumber" name="L302" href="#L302">302</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; repeat; i++ )
+<a class="jxr_linenumber" name="L303" href="#L303">303</a>         {
+<a class="jxr_linenumber" name="L304" href="#L304">304</a>             buffer.append( str );
+<a class="jxr_linenumber" name="L305" href="#L305">305</a>         }
+<a class="jxr_linenumber" name="L306" href="#L306">306</a> 
+<a class="jxr_linenumber" name="L307" href="#L307">307</a>         <strong class="jxr_keyword">return</strong> buffer.toString();
+<a class="jxr_linenumber" name="L308" href="#L308">308</a>     }
+<a class="jxr_linenumber" name="L309" href="#L309">309</a> 
+<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> <em class="jxr_javadoccomment">     * Append a description to the buffer by respecting the indentSize and lineLength parameters.</em>
+<a class="jxr_linenumber" name="L312" href="#L312">312</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="L313" href="#L313">313</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L314" href="#L314">314</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="L315" href="#L315">315</a> <em class="jxr_javadoccomment">     * @param description The description, not &lt;code&gt;null&lt;/code&gt;.</em>
+<a class="jxr_linenumber" name="L316" href="#L316">316</a> <em class="jxr_javadoccomment">     * @param indent      The base indentation level of each line, must not be negative.</em>
+<a class="jxr_linenumber" name="L317" href="#L317">317</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L318" href="#L318">318</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="L319" href="#L319">319</a>     {
+<a class="jxr_linenumber" name="L320" href="#L320">320</a>         <strong class="jxr_keyword">for</strong> ( String line : toLines( description, indent, indentSize, lineLength ) )
+<a class="jxr_linenumber" name="L321" href="#L321">321</a>         {
+<a class="jxr_linenumber" name="L322" href="#L322">322</a>             sb.append( line ).append( '\n' );
+<a class="jxr_linenumber" name="L323" href="#L323">323</a>         }
+<a class="jxr_linenumber" name="L324" href="#L324">324</a>     }
+<a class="jxr_linenumber" name="L325" href="#L325">325</a> 
+<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">     * Splits the specified text into lines of convenient display length.</em>
+<a class="jxr_linenumber" name="L328" href="#L328">328</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L329" href="#L329">329</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="L330" href="#L330">330</a> <em class="jxr_javadoccomment">     * @param indent     The base indentation level of each line, must not be negative.</em>
+<a class="jxr_linenumber" name="L331" href="#L331">331</a> <em class="jxr_javadoccomment">     * @param indentSize The size of each indentation, must not be negative.</em>
+<a class="jxr_linenumber" name="L332" href="#L332">332</a> <em class="jxr_javadoccomment">     * @param lineLength The length of the line, must not be negative.</em>
+<a class="jxr_linenumber" name="L333" href="#L333">333</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="L334" href="#L334">334</a> <em class="jxr_javadoccomment">     * @throws NegativeArraySizeException if &lt;code&gt;indent &lt; 0&lt;/code&gt;</em>
+<a class="jxr_linenumber" name="L335" href="#L335">335</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L336" href="#L336">336</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="L337" href="#L337">337</a>     {
+<a class="jxr_linenumber" name="L338" href="#L338">338</a>         List&lt;String&gt; lines = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
+<a class="jxr_linenumber" name="L339" href="#L339">339</a> 
+<a class="jxr_linenumber" name="L340" href="#L340">340</a>         String ind = repeat( <span class="jxr_string">"\t"</span>, indent );
+<a class="jxr_linenumber" name="L341" href="#L341">341</a> 
+<a class="jxr_linenumber" name="L342" href="#L342">342</a>         String[] plainLines = text.split( <span class="jxr_string">"(\r\n)|(\r)|(\n)"</span> );
+<a class="jxr_linenumber" name="L343" href="#L343">343</a> 
+<a class="jxr_linenumber" name="L344" href="#L344">344</a>         <strong class="jxr_keyword">for</strong> ( String plainLine : plainLines )
+<a class="jxr_linenumber" name="L345" href="#L345">345</a>         {
+<a class="jxr_linenumber" name="L346" href="#L346">346</a>             toLines( lines, ind + plainLine, indentSize, lineLength );
+<a class="jxr_linenumber" name="L347" href="#L347">347</a>         }
+<a class="jxr_linenumber" name="L348" href="#L348">348</a> 
+<a class="jxr_linenumber" name="L349" href="#L349">349</a>         <strong class="jxr_keyword">return</strong> lines;
+<a class="jxr_linenumber" name="L350" href="#L350">350</a>     }
+<a class="jxr_linenumber" name="L351" href="#L351">351</a> 
+<a class="jxr_linenumber" name="L352" href="#L352">352</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L353" href="#L353">353</a> <em class="jxr_javadoccomment">     * Adds the specified line to the output sequence, performing line wrapping if necessary.</em>
+<a class="jxr_linenumber" name="L354" href="#L354">354</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L355" href="#L355">355</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="L356" href="#L356">356</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="L357" href="#L357">357</a> <em class="jxr_javadoccomment">     * @param indentSize The size of each indentation, must not be negative.</em>
+<a class="jxr_linenumber" name="L358" href="#L358">358</a> <em class="jxr_javadoccomment">     * @param lineLength The length of the line, must not be negative.</em>
+<a class="jxr_linenumber" name="L359" href="#L359">359</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L360" href="#L360">360</a>     <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="L361" href="#L361">361</a>     {
+<a class="jxr_linenumber" name="L362" href="#L362">362</a>         <strong class="jxr_keyword">int</strong> lineIndent = getIndentLevel( line );
+<a class="jxr_linenumber" name="L363" href="#L363">363</a>         StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder( 256 );
+<a class="jxr_linenumber" name="L364" href="#L364">364</a> 
+<a class="jxr_linenumber" name="L365" href="#L365">365</a>         String[] tokens = line.split( <span class="jxr_string">" +"</span> );
+<a class="jxr_linenumber" name="L366" href="#L366">366</a> 
+<a class="jxr_linenumber" name="L367" href="#L367">367</a>         <strong class="jxr_keyword">for</strong> ( String token : tokens )
+<a class="jxr_linenumber" name="L368" href="#L368">368</a>         {
+<a class="jxr_linenumber" name="L369" href="#L369">369</a>             <strong class="jxr_keyword">if</strong> ( buf.length() &gt; 0 )
+<a class="jxr_linenumber" name="L370" href="#L370">370</a>             {
+<a class="jxr_linenumber" name="L371" href="#L371">371</a>                 <strong class="jxr_keyword">if</strong> ( buf.length() + token.length() &gt;= lineLength )
+<a class="jxr_linenumber" name="L372" href="#L372">372</a>                 {
+<a class="jxr_linenumber" name="L373" href="#L373">373</a>                     lines.add( buf.toString() );
+<a class="jxr_linenumber" name="L374" href="#L374">374</a>                     buf.setLength( 0 );
+<a class="jxr_linenumber" name="L375" href="#L375">375</a>                     buf.append( repeat( <span class="jxr_string">" "</span>, lineIndent * indentSize ) );
+<a class="jxr_linenumber" name="L376" href="#L376">376</a>                 }
+<a class="jxr_linenumber" name="L377" href="#L377">377</a>                 <strong class="jxr_keyword">else</strong>
+<a class="jxr_linenumber" name="L378" href="#L378">378</a>                 {
+<a class="jxr_linenumber" name="L379" href="#L379">379</a>                     buf.append( ' ' );
+<a class="jxr_linenumber" name="L380" href="#L380">380</a>                 }
+<a class="jxr_linenumber" name="L381" href="#L381">381</a>             }
+<a class="jxr_linenumber" name="L382" href="#L382">382</a> 
+<a class="jxr_linenumber" name="L383" href="#L383">383</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="L384" href="#L384">384</a>             {
+<a class="jxr_linenumber" name="L385" href="#L385">385</a>                 <strong class="jxr_keyword">char</strong> c = token.charAt( j );
+<a class="jxr_linenumber" name="L386" href="#L386">386</a>                 <strong class="jxr_keyword">if</strong> ( c == '\t' )
+<a class="jxr_linenumber" name="L387" href="#L387">387</a>                 {
+<a class="jxr_linenumber" name="L388" href="#L388">388</a>                     buf.append( repeat( <span class="jxr_string">" "</span>, indentSize - buf.length() % 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> <strong class="jxr_keyword">if</strong> ( c == '\u00A0' )
+<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>                 <strong class="jxr_keyword">else</strong>
+<a class="jxr_linenumber" name="L395" href="#L395">395</a>                 {
+<a class="jxr_linenumber" name="L396" href="#L396">396</a>                     buf.append( c );
+<a class="jxr_linenumber" name="L397" href="#L397">397</a>                 }
+<a class="jxr_linenumber" name="L398" href="#L398">398</a>             }
+<a class="jxr_linenumber" name="L399" href="#L399">399</a>         }
+<a class="jxr_linenumber" name="L400" href="#L400">400</a>         lines.add( buf.toString() );
+<a class="jxr_linenumber" name="L401" href="#L401">401</a>     }
+<a class="jxr_linenumber" name="L402" href="#L402">402</a> 
+<a class="jxr_linenumber" name="L403" href="#L403">403</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="L404" href="#L404">404</a> <em class="jxr_javadoccomment">     * Gets the indentation level of the specified line.</em>
+<a class="jxr_linenumber" name="L405" href="#L405">405</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="L406" href="#L406">406</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="L407" href="#L407">407</a> <em class="jxr_javadoccomment">     * @return The indentation level of the line.</em>
+<a class="jxr_linenumber" name="L408" href="#L408">408</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="L409" href="#L409">409</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="L410" href="#L410">410</a>     {
+<a class="jxr_linenumber" name="L411" href="#L411">411</a>         <strong class="jxr_keyword">int</strong> level = 0;
+<a class="jxr_linenumber" name="L412" href="#L412">412</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="L413" href="#L413">413</a>         {
+<a class="jxr_linenumber" name="L414" href="#L414">414</a>             level++;
+<a class="jxr_linenumber" name="L415" href="#L415">415</a>         }

[... 30 lines stripped ...]