You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by st...@apache.org on 2014/02/21 14:53:48 UTC

svn commit: r898771 [21/23] - in /websites/production/maven/content/plugins-archives/maven-gpg-plugin-LATEST: ./ apidocs/ apidocs/org/apache/maven/plugin/gpg/ apidocs/org/apache/maven/plugin/gpg/class-use/ apidocs/resources/ cobertura/ css/ examples/ x...

Modified: websites/production/maven/content/plugins-archives/maven-gpg-plugin-LATEST/xref/org/apache/maven/plugin/gpg/HelpMojo.html
==============================================================================
--- websites/production/maven/content/plugins-archives/maven-gpg-plugin-LATEST/xref/org/apache/maven/plugin/gpg/HelpMojo.html (original)
+++ websites/production/maven/content/plugins-archives/maven-gpg-plugin-LATEST/xref/org/apache/maven/plugin/gpg/HelpMojo.html Fri Feb 21 13:53:47 2014
@@ -10,483 +10,442 @@
 
 <a class="jxr_linenumber" name="1" href="#1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.maven.plugin.gpg;
 <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-gpg-plugin.&lt;br/&gt; Call &lt;pre&gt;  mvn gpg: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 Fri Aug 26 22:26:35 IST 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/gpg/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-gpg-plugin:1.4"</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 GPG Plugin"</span>, 0 );
-<a class="jxr_linenumber" name="73" href="#73">73</a>          append( sb, <span class="jxr_string">"Signs the project artifacts with GnuPG."</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 3 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">"gpg:help"</span>, 0 );
-<a class="jxr_linenumber" name="85" href="#85">85</a>              append( sb, <span class="jxr_string">"Display help information on maven-gpg-plugin.\nCall\n\u00a0\u00a0mvn\u00a0gpg: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">"sign"</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">"gpg:sign"</span>, 0 );
-<a class="jxr_linenumber" name="117" href="#117">117</a>             append( sb, <span class="jxr_string">"Sign project artifact, the POM, and attached artifacts with GnuPG for deployment."</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">"ascDirectory (Default: ${project.build.directory}/gpg)"</span>, 2 );
-<a class="jxr_linenumber" name="125" href="#125">125</a>                 append( sb, <span class="jxr_string">"The directory where to store signature files."</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">"defaultKeyring (Default: true)"</span>, 2 );
-<a class="jxr_linenumber" name="129" href="#129">129</a>                 append( sb, <span class="jxr_string">"Whether to add the default keyrings from gpg\'s home directory to the list of used keyrings."</span>, 3 );
-<a class="jxr_linenumber" name="130" href="#130">130</a>                 append( sb, <span class="jxr_string">"Expression: ${gpg.defaultKeyring}"</span>, 3 );
-<a class="jxr_linenumber" name="131" href="#131">131</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="3" href="#3">3</a>   <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.AbstractMojo;
+<a class="jxr_linenumber" name="4" href="#4">4</a>   <strong class="jxr_keyword">import</strong> org.apache.maven.plugin.MojoExecutionException;
+<a class="jxr_linenumber" name="5" href="#5">5</a>   <strong class="jxr_keyword">import</strong> org.apache.maven.plugins.annotations.Mojo;
+<a class="jxr_linenumber" name="6" href="#6">6</a>   <strong class="jxr_keyword">import</strong> org.apache.maven.plugins.annotations.Parameter;
+<a class="jxr_linenumber" name="7" href="#7">7</a>   
+<a class="jxr_linenumber" name="8" href="#8">8</a>   <strong class="jxr_keyword">import</strong> org.w3c.dom.Document;
+<a class="jxr_linenumber" name="9" href="#9">9</a>   <strong class="jxr_keyword">import</strong> org.w3c.dom.Element;
+<a class="jxr_linenumber" name="10" href="#10">10</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.Node;
+<a class="jxr_linenumber" name="11" href="#11">11</a>  <strong class="jxr_keyword">import</strong> org.w3c.dom.NodeList;
+<a class="jxr_linenumber" name="12" href="#12">12</a>  <strong class="jxr_keyword">import</strong> org.xml.sax.SAXException;
+<a class="jxr_linenumber" name="13" href="#13">13</a>  
+<a class="jxr_linenumber" name="14" href="#14">14</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilder;
+<a class="jxr_linenumber" name="15" href="#15">15</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.DocumentBuilderFactory;
+<a class="jxr_linenumber" name="16" href="#16">16</a>  <strong class="jxr_keyword">import</strong> javax.xml.parsers.ParserConfigurationException;
+<a class="jxr_linenumber" name="17" href="#17">17</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">import</strong> java.io.InputStream;
+<a class="jxr_linenumber" name="19" href="#19">19</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<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"> * Display help information on maven-gpg-plugin.&lt;br/&gt;</em>
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <em class="jxr_javadoccomment"> * Call &lt;code&gt;mvn gpg:help -Ddetail=true -Dgoal=&amp;lt;goal-name&amp;gt;&lt;/code&gt; to display parameter details.</em>
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <em class="jxr_javadoccomment"> * @author</em>
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <em class="jxr_javadoccomment"> * @version</em>
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="29" href="#29">29</a>  @Mojo( name = <span class="jxr_string">"help"</span>, requiresProject = false, threadSafe = <strong class="jxr_keyword">true</strong> )
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/maven/plugin/gpg/HelpMojo.html">HelpMojo</a>
+<a class="jxr_linenumber" name="31" href="#31">31</a>      <strong class="jxr_keyword">extends</strong> AbstractMojo
+<a class="jxr_linenumber" name="32" href="#32">32</a>  {
+<a class="jxr_linenumber" name="33" href="#33">33</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="34" href="#34">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="35" href="#35">35</a>  <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="37" href="#37">37</a>      @Parameter( property = <span class="jxr_string">"detail"</span>, defaultValue = <span class="jxr_string">"false"</span> )
+<a class="jxr_linenumber" name="38" href="#38">38</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> detail;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  
+<a class="jxr_linenumber" name="40" href="#40">40</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="41" href="#41">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="42" href="#42">42</a>  <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="44" href="#44">44</a>      @Parameter( property = <span class="jxr_string">"goal"</span> )
+<a class="jxr_linenumber" name="45" href="#45">45</a>      <strong class="jxr_keyword">private</strong> java.lang.String goal;
+<a class="jxr_linenumber" name="46" href="#46">46</a>  
+<a class="jxr_linenumber" name="47" href="#47">47</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <em class="jxr_javadoccomment">     * The maximum length of a display line, should be positive.</em>
+<a class="jxr_linenumber" name="49" href="#49">49</a>  <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="51" href="#51">51</a>      @Parameter( property = <span class="jxr_string">"lineLength"</span>, defaultValue = <span class="jxr_string">"80"</span> )
+<a class="jxr_linenumber" name="52" href="#52">52</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> lineLength;
+<a class="jxr_linenumber" name="53" href="#53">53</a>  
+<a class="jxr_linenumber" name="54" href="#54">54</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="55" href="#55">55</a>  <em class="jxr_javadoccomment">     * The number of spaces per indentation level, should be positive.</em>
+<a class="jxr_linenumber" name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="58" href="#58">58</a>      @Parameter( property = <span class="jxr_string">"indentSize"</span>, defaultValue = <span class="jxr_string">"2"</span> )
+<a class="jxr_linenumber" name="59" href="#59">59</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> indentSize;
+<a class="jxr_linenumber" name="60" href="#60">60</a>  
+<a class="jxr_linenumber" name="61" href="#61">61</a>      <em class="jxr_comment">// groupId/artifactId/plugin-help.xml</em>
+<a class="jxr_linenumber" name="62" href="#62">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-gpg-plugin/plugin-help.xml"</span>;
+<a class="jxr_linenumber" name="63" href="#63">63</a>  
+<a class="jxr_linenumber" name="64" href="#64">64</a>      <strong class="jxr_keyword">private</strong> Document build()
+<a class="jxr_linenumber" name="65" href="#65">65</a>          <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="66" href="#66">66</a>      {
+<a class="jxr_linenumber" name="67" href="#67">67</a>          getLog().debug( <span class="jxr_string">"load plugin-help.xml: "</span> + PLUGIN_HELP_PATH );
+<a class="jxr_linenumber" name="68" href="#68">68</a>          InputStream is = getClass().getResourceAsStream( PLUGIN_HELP_PATH );
+<a class="jxr_linenumber" name="69" href="#69">69</a>          <strong class="jxr_keyword">try</strong>
+<a class="jxr_linenumber" name="70" href="#70">70</a>          {
+<a class="jxr_linenumber" name="71" href="#71">71</a>              DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+<a class="jxr_linenumber" name="72" href="#72">72</a>              DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+<a class="jxr_linenumber" name="73" href="#73">73</a>              <strong class="jxr_keyword">return</strong> dBuilder.parse( is );
+<a class="jxr_linenumber" name="74" href="#74">74</a>          }
+<a class="jxr_linenumber" name="75" href="#75">75</a>          <strong class="jxr_keyword">catch</strong> ( IOException e )
+<a class="jxr_linenumber" name="76" href="#76">76</a>          {
+<a class="jxr_linenumber" name="77" href="#77">77</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( e.getMessage(), e );
+<a class="jxr_linenumber" name="78" href="#78">78</a>          }
+<a class="jxr_linenumber" name="79" href="#79">79</a>          <strong class="jxr_keyword">catch</strong> ( ParserConfigurationException e )
+<a class="jxr_linenumber" name="80" href="#80">80</a>          {
+<a class="jxr_linenumber" name="81" href="#81">81</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( e.getMessage(), e );
+<a class="jxr_linenumber" name="82" href="#82">82</a>          }
+<a class="jxr_linenumber" name="83" href="#83">83</a>          <strong class="jxr_keyword">catch</strong> ( SAXException e )
+<a class="jxr_linenumber" name="84" href="#84">84</a>          {
+<a class="jxr_linenumber" name="85" href="#85">85</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MojoExecutionException( e.getMessage(), e );
+<a class="jxr_linenumber" name="86" href="#86">86</a>          }
+<a class="jxr_linenumber" name="87" href="#87">87</a>      }
+<a class="jxr_linenumber" name="88" href="#88">88</a>  
+<a class="jxr_linenumber" name="89" href="#89">89</a>      <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * {@inheritDoc}</em>
+<a class="jxr_linenumber" name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="92" href="#92">92</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> execute()
+<a class="jxr_linenumber" name="93" href="#93">93</a>          <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="94" href="#94">94</a>      {
+<a class="jxr_linenumber" name="95" href="#95">95</a>          <strong class="jxr_keyword">if</strong> ( lineLength &lt;= 0 )
+<a class="jxr_linenumber" name="96" href="#96">96</a>          {
+<a class="jxr_linenumber" name="97" href="#97">97</a>              getLog().warn( <span class="jxr_string">"The parameter 'lineLength' should be positive, using '80' as default."</span> );
+<a class="jxr_linenumber" name="98" href="#98">98</a>              lineLength = 80;
+<a class="jxr_linenumber" name="99" href="#99">99</a>          }
+<a class="jxr_linenumber" name="100" href="#100">100</a>         <strong class="jxr_keyword">if</strong> ( indentSize &lt;= 0 )
+<a class="jxr_linenumber" name="101" href="#101">101</a>         {
+<a class="jxr_linenumber" name="102" href="#102">102</a>             getLog().warn( <span class="jxr_string">"The parameter 'indentSize' should be positive, using '2' as default."</span> );
+<a class="jxr_linenumber" name="103" href="#103">103</a>             indentSize = 2;
+<a class="jxr_linenumber" name="104" href="#104">104</a>         }
+<a class="jxr_linenumber" name="105" href="#105">105</a> 
+<a class="jxr_linenumber" name="106" href="#106">106</a>         Document doc = build();
+<a class="jxr_linenumber" name="107" href="#107">107</a> 
+<a class="jxr_linenumber" name="108" href="#108">108</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder();
+<a class="jxr_linenumber" name="109" href="#109">109</a>         Node plugin = getSingleChild( doc, <span class="jxr_string">"plugin"</span> );
+<a class="jxr_linenumber" name="110" href="#110">110</a> 
+<a class="jxr_linenumber" name="111" href="#111">111</a> 
+<a class="jxr_linenumber" name="112" href="#112">112</a>         String name = getValue( plugin, <span class="jxr_string">"name"</span> );
+<a class="jxr_linenumber" name="113" href="#113">113</a>         String version = getValue( plugin, <span class="jxr_string">"version"</span> );
+<a class="jxr_linenumber" name="114" href="#114">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="115" href="#115">115</a>         <strong class="jxr_keyword">if</strong> ( isNotEmpty( name ) &amp;&amp; !name.contains( id ) )
+<a class="jxr_linenumber" name="116" href="#116">116</a>         {
+<a class="jxr_linenumber" name="117" href="#117">117</a>             append( sb, name + <span class="jxr_string">" "</span> + version, 0 );
+<a class="jxr_linenumber" name="118" href="#118">118</a>         }
+<a class="jxr_linenumber" name="119" href="#119">119</a>         <strong class="jxr_keyword">else</strong>
+<a class="jxr_linenumber" name="120" href="#120">120</a>         {
+<a class="jxr_linenumber" name="121" href="#121">121</a>             <strong class="jxr_keyword">if</strong> ( isNotEmpty( name ) )
+<a class="jxr_linenumber" name="122" href="#122">122</a>             {
+<a class="jxr_linenumber" name="123" href="#123">123</a>                 append( sb, name, 0 );
+<a class="jxr_linenumber" name="124" href="#124">124</a>             }
+<a class="jxr_linenumber" name="125" href="#125">125</a>             <strong class="jxr_keyword">else</strong>
+<a class="jxr_linenumber" name="126" href="#126">126</a>             {
+<a class="jxr_linenumber" name="127" href="#127">127</a>                 append( sb, id, 0 );
+<a class="jxr_linenumber" name="128" href="#128">128</a>             }
+<a class="jxr_linenumber" name="129" href="#129">129</a>         }
+<a class="jxr_linenumber" name="130" href="#130">130</a>         append( sb, getValue( plugin, <span class="jxr_string">"description"</span> ), 1 );
+<a class="jxr_linenumber" name="131" href="#131">131</a>         append( sb, <span class="jxr_string">""</span>, 0 );
 <a class="jxr_linenumber" name="132" href="#132">132</a> 
-<a class="jxr_linenumber" name="133" href="#133">133</a>                 append( sb, <span class="jxr_string">"excludes"</span>, 2 );
-<a class="jxr_linenumber" name="134" href="#134">134</a>                 append( sb, <span class="jxr_string">"A list of files to exclude from being signed. Can contain Ant-style wildcards and double wildcards. The default excludes are **/*.md5 **/*.sha1 **/*.asc."</span>, 3 );
-<a class="jxr_linenumber" name="135" href="#135">135</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="136" href="#136">136</a> 
-<a class="jxr_linenumber" name="137" href="#137">137</a>                 append( sb, <span class="jxr_string">"executable"</span>, 2 );
-<a class="jxr_linenumber" name="138" href="#138">138</a>                 append( sb, <span class="jxr_string">"The path to the GnuPG executable to use for artifact signing. Defaults to either \'gpg\' or \'gpg.exe\' depending on the operating system."</span>, 3 );
-<a class="jxr_linenumber" name="139" href="#139">139</a>                 append( sb, <span class="jxr_string">"Expression: ${gpg.executable}"</span>, 3 );
-<a class="jxr_linenumber" name="140" href="#140">140</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="141" href="#141">141</a> 
-<a class="jxr_linenumber" name="142" href="#142">142</a>                 append( sb, <span class="jxr_string">"homedir"</span>, 2 );
-<a class="jxr_linenumber" name="143" href="#143">143</a>                 append( sb, <span class="jxr_string">"The directory from which gpg will load keyrings. If not specified, gpg will use the value configured for its installation, e.g. ~/.gnupg or %APPDATA%/gnupg."</span>, 3 );
-<a class="jxr_linenumber" name="144" href="#144">144</a>                 append( sb, <span class="jxr_string">"Expression: ${gpg.homedir}"</span>, 3 );
-<a class="jxr_linenumber" name="145" href="#145">145</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="146" href="#146">146</a> 
-<a class="jxr_linenumber" name="147" href="#147">147</a>                 append( sb, <span class="jxr_string">"keyname"</span>, 2 );
-<a class="jxr_linenumber" name="148" href="#148">148</a>                 append( sb, <span class="jxr_string">"The \'name\' of the key to sign with. Passed to gpg as --local-user."</span>, 3 );
-<a class="jxr_linenumber" name="149" href="#149">149</a>                 append( sb, <span class="jxr_string">"Expression: ${gpg.keyname}"</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">"passphrase"</span>, 2 );
-<a class="jxr_linenumber" name="153" href="#153">153</a>                 append( sb, <span class="jxr_string">"The passphrase to use when signing."</span>, 3 );
-<a class="jxr_linenumber" name="154" href="#154">154</a>                 append( sb, <span class="jxr_string">"Expression: ${gpg.passphrase}"</span>, 3 );
-<a class="jxr_linenumber" name="155" href="#155">155</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="133" href="#133">133</a>         <em class="jxr_comment">//&lt;goalPrefix&gt;plugin&lt;/goalPrefix&gt;</em>
+<a class="jxr_linenumber" name="134" href="#134">134</a>         String goalPrefix = getValue( plugin, <span class="jxr_string">"goalPrefix"</span> );
+<a class="jxr_linenumber" name="135" href="#135">135</a> 
+<a class="jxr_linenumber" name="136" href="#136">136</a>         Node mojos1 = getSingleChild( plugin, <span class="jxr_string">"mojos"</span> );
+<a class="jxr_linenumber" name="137" href="#137">137</a> 
+<a class="jxr_linenumber" name="138" href="#138">138</a>         List&lt;Node&gt; mojos = findNamedChild( mojos1, <span class="jxr_string">"mojo"</span> );
+<a class="jxr_linenumber" name="139" href="#139">139</a> 
+<a class="jxr_linenumber" name="140" href="#140">140</a>         <strong class="jxr_keyword">if</strong> ( goal == <strong class="jxr_keyword">null</strong> || goal.length() &lt;= 0 )
+<a class="jxr_linenumber" name="141" href="#141">141</a>         {
+<a class="jxr_linenumber" name="142" href="#142">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="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> 
+<a class="jxr_linenumber" name="146" href="#146">146</a>         <strong class="jxr_keyword">for</strong> ( Node mojo : mojos )
+<a class="jxr_linenumber" name="147" href="#147">147</a>         {
+<a class="jxr_linenumber" name="148" href="#148">148</a>             writeGoal( sb, goalPrefix, (Element) mojo );
+<a class="jxr_linenumber" name="149" href="#149">149</a>         }
+<a class="jxr_linenumber" name="150" href="#150">150</a> 
+<a class="jxr_linenumber" name="151" href="#151">151</a>         <strong class="jxr_keyword">if</strong> ( getLog().isInfoEnabled() )
+<a class="jxr_linenumber" name="152" href="#152">152</a>         {
+<a class="jxr_linenumber" name="153" href="#153">153</a>             getLog().info( sb.toString() );
+<a class="jxr_linenumber" name="154" href="#154">154</a>         }
+<a class="jxr_linenumber" name="155" href="#155">155</a>     }
 <a class="jxr_linenumber" name="156" href="#156">156</a> 
-<a class="jxr_linenumber" name="157" href="#157">157</a>                 append( sb, <span class="jxr_string">"publicKeyring"</span>, 2 );
-<a class="jxr_linenumber" name="158" href="#158">158</a>                 append( sb, <span class="jxr_string">"The path to a public keyring to add to the list of keyrings. By default, only the pubring.gpg from gpg\'s home directory is considered. Use this option (and defaultKeyring if required) to use a different public key. Note: Relative paths are resolved against gpg\'s home directory, not the project base directory."</span>, 3 );
-<a class="jxr_linenumber" name="159" href="#159">159</a>                 append( sb, <span class="jxr_string">"Expression: ${gpg.publicKeyring}"</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">"secretKeyring"</span>, 2 );
-<a class="jxr_linenumber" name="163" href="#163">163</a>                 append( sb, <span class="jxr_string">"The path to a secret keyring to add to the list of keyrings. By default, only the secring.gpg from gpg\'s home directory is considered. Use this option (in combination with publicKeyring and defaultKeyring if required) to use a different secret key. Note: Relative paths are resolved against gpg\'s home directory, not the project base directory."</span>, 3 );
-<a class="jxr_linenumber" name="164" href="#164">164</a>                 append( sb, <span class="jxr_string">"Expression: ${gpg.secretKeyring}"</span>, 3 );
-<a class="jxr_linenumber" name="165" href="#165">165</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="166" href="#166">166</a> 
-<a class="jxr_linenumber" name="167" href="#167">167</a>                 append( sb, <span class="jxr_string">"skip (Default: false)"</span>, 2 );
-<a class="jxr_linenumber" name="168" href="#168">168</a>                 append( sb, <span class="jxr_string">"Skip doing the gpg signing."</span>, 3 );
-<a class="jxr_linenumber" name="169" href="#169">169</a>                 append( sb, <span class="jxr_string">"Expression: ${gpg.skip}"</span>, 3 );
-<a class="jxr_linenumber" name="170" href="#170">170</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="171" href="#171">171</a> 
-<a class="jxr_linenumber" name="172" href="#172">172</a>                 append( sb, <span class="jxr_string">"useAgent (Default: false)"</span>, 2 );
-<a class="jxr_linenumber" name="173" href="#173">173</a>                 append( sb, <span class="jxr_string">"Passes --use-agent or --no-use-agent to gpg. If using an agent, the passphrase is optional as the agent will provide it. For gpg2, specify true as --no-use-agent was removed in gpg2 and doesn\'t ask for a passphrase anymore."</span>, 3 );
-<a class="jxr_linenumber" name="174" href="#174">174</a>                 append( sb, <span class="jxr_string">"Expression: ${gpg.useagent}"</span>, 3 );
-<a class="jxr_linenumber" name="175" href="#175">175</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="176" href="#176">176</a>             }
-<a class="jxr_linenumber" name="177" href="#177">177</a>         }
-<a class="jxr_linenumber" name="178" href="#178">178</a> 
-<a class="jxr_linenumber" name="179" href="#179">179</a>         <strong class="jxr_keyword">if</strong> ( goal == <strong class="jxr_keyword">null</strong> || goal.length() &lt;= 0 || <span class="jxr_string">"sign-and-deploy-file"</span>.equals( goal ) )
-<a class="jxr_linenumber" name="180" href="#180">180</a>         {
-<a class="jxr_linenumber" name="181" href="#181">181</a>             append( sb, <span class="jxr_string">"gpg:sign-and-deploy-file"</span>, 0 );
-<a class="jxr_linenumber" name="182" href="#182">182</a>             append( sb, <span class="jxr_string">"Signs artifacts and installs the artifact in the remote repository."</span>, 1 );
-<a class="jxr_linenumber" name="183" href="#183">183</a>             append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="184" href="#184">184</a>             <strong class="jxr_keyword">if</strong> ( detail )
-<a class="jxr_linenumber" name="185" href="#185">185</a>             {
-<a class="jxr_linenumber" name="186" href="#186">186</a>                 append( sb, <span class="jxr_string">"Available parameters:"</span>, 1 );
-<a class="jxr_linenumber" name="187" href="#187">187</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="188" href="#188">188</a> 
-<a class="jxr_linenumber" name="189" href="#189">189</a>                 append( sb, <span class="jxr_string">"artifactId"</span>, 2 );
-<a class="jxr_linenumber" name="190" href="#190">190</a>                 append( sb, <span class="jxr_string">"ArtifactId of the artifact to be deployed. Retrieved from POM file if specified."</span>, 3 );
-<a class="jxr_linenumber" name="191" href="#191">191</a>                 append( sb, <span class="jxr_string">"Expression: ${artifactId}"</span>, 3 );
-<a class="jxr_linenumber" name="192" href="#192">192</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="193" href="#193">193</a> 
-<a class="jxr_linenumber" name="194" href="#194">194</a>                 append( sb, <span class="jxr_string">"ascDirectory"</span>, 2 );
-<a class="jxr_linenumber" name="195" href="#195">195</a>                 append( sb, <span class="jxr_string">"The directory where to store signature files."</span>, 3 );
-<a class="jxr_linenumber" name="196" href="#196">196</a>                 append( sb, <span class="jxr_string">"Expression: ${gpg.ascDirectory}"</span>, 3 );
-<a class="jxr_linenumber" name="197" href="#197">197</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>     <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="159" href="#159">159</a>     {
+<a class="jxr_linenumber" name="160" href="#160">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="161" href="#161">161</a>     }
+<a class="jxr_linenumber" name="162" href="#162">162</a> 
+<a class="jxr_linenumber" name="163" href="#163">163</a>     <strong class="jxr_keyword">private</strong> String getValue( Node node, String elementName )
+<a class="jxr_linenumber" name="164" href="#164">164</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="165" href="#165">165</a>     {
+<a class="jxr_linenumber" name="166" href="#166">166</a>         <strong class="jxr_keyword">return</strong> getSingleChild( node, elementName ).getTextContent();
+<a class="jxr_linenumber" name="167" href="#167">167</a>     }
+<a class="jxr_linenumber" name="168" href="#168">168</a> 
+<a class="jxr_linenumber" name="169" href="#169">169</a>     <strong class="jxr_keyword">private</strong> Node getSingleChild( Node node, String elementName )
+<a class="jxr_linenumber" name="170" href="#170">170</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="171" href="#171">171</a>     {
+<a class="jxr_linenumber" name="172" href="#172">172</a>         List&lt;Node&gt; namedChild = findNamedChild( node, elementName );
+<a class="jxr_linenumber" name="173" href="#173">173</a>         <strong class="jxr_keyword">if</strong> ( namedChild.isEmpty() )
+<a class="jxr_linenumber" name="174" href="#174">174</a>         {
+<a class="jxr_linenumber" name="175" href="#175">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="176" href="#176">176</a>         }
+<a class="jxr_linenumber" name="177" href="#177">177</a>         <strong class="jxr_keyword">if</strong> ( namedChild.size() &gt; 1 )
+<a class="jxr_linenumber" name="178" href="#178">178</a>         {
+<a class="jxr_linenumber" name="179" href="#179">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="180" href="#180">180</a>         }
+<a class="jxr_linenumber" name="181" href="#181">181</a>         <strong class="jxr_keyword">return</strong> namedChild.get( 0 );
+<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">private</strong> List&lt;Node&gt; findNamedChild( Node node, String elementName )
+<a class="jxr_linenumber" name="185" href="#185">185</a>     {
+<a class="jxr_linenumber" name="186" href="#186">186</a>         List&lt;Node&gt; result = <strong class="jxr_keyword">new</strong> ArrayList&lt;Node&gt;();
+<a class="jxr_linenumber" name="187" href="#187">187</a>         NodeList childNodes = node.getChildNodes();
+<a class="jxr_linenumber" name="188" href="#188">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="189" href="#189">189</a>         {
+<a class="jxr_linenumber" name="190" href="#190">190</a>             Node item = childNodes.item( i );
+<a class="jxr_linenumber" name="191" href="#191">191</a>             <strong class="jxr_keyword">if</strong> ( elementName.equals( item.getNodeName() ) )
+<a class="jxr_linenumber" name="192" href="#192">192</a>             {
+<a class="jxr_linenumber" name="193" href="#193">193</a>                 result.add( item );
+<a class="jxr_linenumber" name="194" href="#194">194</a>             }
+<a class="jxr_linenumber" name="195" href="#195">195</a>         }
+<a class="jxr_linenumber" name="196" href="#196">196</a>         <strong class="jxr_keyword">return</strong> result;
+<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>                 append( sb, <span class="jxr_string">"classifier"</span>, 2 );
-<a class="jxr_linenumber" name="200" href="#200">200</a>                 append( sb, <span class="jxr_string">"Add classifier to the artifact"</span>, 3 );
-<a class="jxr_linenumber" name="201" href="#201">201</a>                 append( sb, <span class="jxr_string">"Expression: ${classifier}"</span>, 3 );
-<a class="jxr_linenumber" name="202" href="#202">202</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="203" href="#203">203</a> 
-<a class="jxr_linenumber" name="204" href="#204">204</a>                 append( sb, <span class="jxr_string">"classifiers"</span>, 2 );
-<a class="jxr_linenumber" name="205" href="#205">205</a>                 append( sb, <span class="jxr_string">"A comma separated list of classifiers for each of the extra side artifacts to deploy. If there is a mis-match in the number of entries in files or types, then an error will be raised."</span>, 3 );
-<a class="jxr_linenumber" name="206" href="#206">206</a>                 append( sb, <span class="jxr_string">"Expression: ${classifiers}"</span>, 3 );
-<a class="jxr_linenumber" name="207" href="#207">207</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="208" href="#208">208</a> 
-<a class="jxr_linenumber" name="209" href="#209">209</a>                 append( sb, <span class="jxr_string">"defaultKeyring (Default: true)"</span>, 2 );
-<a class="jxr_linenumber" name="210" href="#210">210</a>                 append( sb, <span class="jxr_string">"Whether to add the default keyrings from gpg\'s home directory to the list of used keyrings."</span>, 3 );
-<a class="jxr_linenumber" name="211" href="#211">211</a>                 append( sb, <span class="jxr_string">"Expression: ${gpg.defaultKeyring}"</span>, 3 );
-<a class="jxr_linenumber" name="212" href="#212">212</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="199" href="#199">199</a>     <strong class="jxr_keyword">private</strong> Node findSingleChild( Node node, String elementName )
+<a class="jxr_linenumber" name="200" href="#200">200</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="201" href="#201">201</a>     {
+<a class="jxr_linenumber" name="202" href="#202">202</a>         List&lt;Node&gt; elementsByTagName = findNamedChild( node, elementName );
+<a class="jxr_linenumber" name="203" href="#203">203</a>         <strong class="jxr_keyword">if</strong> ( elementsByTagName.isEmpty() )
+<a class="jxr_linenumber" name="204" href="#204">204</a>         {
+<a class="jxr_linenumber" name="205" href="#205">205</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="206" href="#206">206</a>         }
+<a class="jxr_linenumber" name="207" href="#207">207</a>         <strong class="jxr_keyword">if</strong> ( elementsByTagName.size() &gt; 1 )
+<a class="jxr_linenumber" name="208" href="#208">208</a>         {
+<a class="jxr_linenumber" name="209" href="#209">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="210" href="#210">210</a>         }
+<a class="jxr_linenumber" name="211" href="#211">211</a>         <strong class="jxr_keyword">return</strong> elementsByTagName.get( 0 );
+<a class="jxr_linenumber" name="212" href="#212">212</a>     }
 <a class="jxr_linenumber" name="213" href="#213">213</a> 
-<a class="jxr_linenumber" name="214" href="#214">214</a>                 append( sb, <span class="jxr_string">"description"</span>, 2 );
-<a class="jxr_linenumber" name="215" href="#215">215</a>                 append( sb, <span class="jxr_string">"Description passed to a generated POM file (in case of generatePom=true)."</span>, 3 );
-<a class="jxr_linenumber" name="216" href="#216">216</a>                 append( sb, <span class="jxr_string">"Expression: ${generatePom.description}"</span>, 3 );
-<a class="jxr_linenumber" name="217" href="#217">217</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="218" href="#218">218</a> 
-<a class="jxr_linenumber" name="219" href="#219">219</a>                 append( sb, <span class="jxr_string">"executable"</span>, 2 );
-<a class="jxr_linenumber" name="220" href="#220">220</a>                 append( sb, <span class="jxr_string">"The path to the GnuPG executable to use for artifact signing. Defaults to either \'gpg\' or \'gpg.exe\' depending on the operating system."</span>, 3 );
-<a class="jxr_linenumber" name="221" href="#221">221</a>                 append( sb, <span class="jxr_string">"Expression: ${gpg.executable}"</span>, 3 );
-<a class="jxr_linenumber" name="222" href="#222">222</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="223" href="#223">223</a> 
-<a class="jxr_linenumber" name="224" href="#224">224</a>                 append( sb, <span class="jxr_string">"file"</span>, 2 );
-<a class="jxr_linenumber" name="225" href="#225">225</a>                 append( sb, <span class="jxr_string">"File to be deployed."</span>, 3 );
-<a class="jxr_linenumber" name="226" href="#226">226</a>                 append( sb, <span class="jxr_string">"Required: Yes"</span>, 3 );
-<a class="jxr_linenumber" name="227" href="#227">227</a>                 append( sb, <span class="jxr_string">"Expression: ${file}"</span>, 3 );
-<a class="jxr_linenumber" name="228" href="#228">228</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="229" href="#229">229</a> 
-<a class="jxr_linenumber" name="230" href="#230">230</a>                 append( sb, <span class="jxr_string">"files"</span>, 2 );
-<a class="jxr_linenumber" name="231" href="#231">231</a>                 append( sb, <span class="jxr_string">"A comma separated list of files for each of the extra side artifacts to deploy. If there is a mis-match in the number of entries in types or classifiers, then an error will be raised."</span>, 3 );
-<a class="jxr_linenumber" name="232" href="#232">232</a>                 append( sb, <span class="jxr_string">"Expression: ${files}"</span>, 3 );
-<a class="jxr_linenumber" name="233" href="#233">233</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="234" href="#234">234</a> 
-<a class="jxr_linenumber" name="235" href="#235">235</a>                 append( sb, <span class="jxr_string">"generatePom (Default: true)"</span>, 2 );
-<a class="jxr_linenumber" name="236" href="#236">236</a>                 append( sb, <span class="jxr_string">"Upload a POM for this artifact. Will generate a default POM if none is supplied with the pomFile argument."</span>, 3 );
-<a class="jxr_linenumber" name="237" href="#237">237</a>                 append( sb, <span class="jxr_string">"Expression: ${generatePom}"</span>, 3 );
-<a class="jxr_linenumber" name="238" href="#238">238</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="239" href="#239">239</a> 
-<a class="jxr_linenumber" name="240" href="#240">240</a>                 append( sb, <span class="jxr_string">"groupId"</span>, 2 );
-<a class="jxr_linenumber" name="241" href="#241">241</a>                 append( sb, <span class="jxr_string">"GroupId of the artifact to be deployed. Retrieved from POM file if specified."</span>, 3 );
-<a class="jxr_linenumber" name="242" href="#242">242</a>                 append( sb, <span class="jxr_string">"Expression: ${groupId}"</span>, 3 );
-<a class="jxr_linenumber" name="243" href="#243">243</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="244" href="#244">244</a> 
-<a class="jxr_linenumber" name="245" href="#245">245</a>                 append( sb, <span class="jxr_string">"homedir"</span>, 2 );
-<a class="jxr_linenumber" name="246" href="#246">246</a>                 append( sb, <span class="jxr_string">"The directory from which gpg will load keyrings. If not specified, gpg will use the value configured for its installation, e.g. ~/.gnupg or %APPDATA%/gnupg."</span>, 3 );
-<a class="jxr_linenumber" name="247" href="#247">247</a>                 append( sb, <span class="jxr_string">"Expression: ${gpg.homedir}"</span>, 3 );
-<a class="jxr_linenumber" name="248" href="#248">248</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="249" href="#249">249</a> 
-<a class="jxr_linenumber" name="250" href="#250">250</a>                 append( sb, <span class="jxr_string">"javadoc"</span>, 2 );
-<a class="jxr_linenumber" name="251" href="#251">251</a>                 append( sb, <span class="jxr_string">"The bundled API docs for the artifact."</span>, 3 );
-<a class="jxr_linenumber" name="252" href="#252">252</a>                 append( sb, <span class="jxr_string">"Expression: ${javadoc}"</span>, 3 );
-<a class="jxr_linenumber" name="253" href="#253">253</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="254" href="#254">254</a> 
-<a class="jxr_linenumber" name="255" href="#255">255</a>                 append( sb, <span class="jxr_string">"keyname"</span>, 2 );
-<a class="jxr_linenumber" name="256" href="#256">256</a>                 append( sb, <span class="jxr_string">"The \'name\' of the key to sign with. Passed to gpg as --local-user."</span>, 3 );
-<a class="jxr_linenumber" name="257" href="#257">257</a>                 append( sb, <span class="jxr_string">"Expression: ${gpg.keyname}"</span>, 3 );
-<a class="jxr_linenumber" name="258" href="#258">258</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="214" href="#214">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="215" href="#215">215</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="216" href="#216">216</a>     {
+<a class="jxr_linenumber" name="217" href="#217">217</a>         String mojoGoal = getValue( mojo, <span class="jxr_string">"goal"</span> );
+<a class="jxr_linenumber" name="218" href="#218">218</a>         Node configurationElement = findSingleChild( mojo, <span class="jxr_string">"configuration"</span> );
+<a class="jxr_linenumber" name="219" href="#219">219</a> 		Node description = findSingleChild( mojo, <span class="jxr_string">"description"</span> );
+<a class="jxr_linenumber" name="220" href="#220">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="221" href="#221">221</a>         {
+<a class="jxr_linenumber" name="222" href="#222">222</a>             append( sb, goalPrefix + <span class="jxr_string">":"</span> + mojoGoal, 0 );
+<a class="jxr_linenumber" name="223" href="#223">223</a>             Node deprecated = findSingleChild( mojo, <span class="jxr_string">"deprecated"</span> );
+<a class="jxr_linenumber" name="224" href="#224">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="225" href="#225">225</a>             {
+<a class="jxr_linenumber" name="226" href="#226">226</a>                 append( sb, <span class="jxr_string">"Deprecated. "</span> + deprecated, 1 );
+<a class="jxr_linenumber" name="227" href="#227">227</a>                 <strong class="jxr_keyword">if</strong> ( detail &amp;&amp; description != <strong class="jxr_keyword">null</strong> )
+<a class="jxr_linenumber" name="228" href="#228">228</a>                 {
+<a class="jxr_linenumber" name="229" href="#229">229</a>                     append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="230" href="#230">230</a>                     append( sb, description.getTextContent(), 1 );
+<a class="jxr_linenumber" name="231" href="#231">231</a>                 }
+<a class="jxr_linenumber" name="232" href="#232">232</a>             }
+<a class="jxr_linenumber" name="233" href="#233">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="234" href="#234">234</a>             {
+<a class="jxr_linenumber" name="235" href="#235">235</a>                 append( sb, description.getTextContent(), 1 );
+<a class="jxr_linenumber" name="236" href="#236">236</a>             }
+<a class="jxr_linenumber" name="237" href="#237">237</a>             append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="238" href="#238">238</a> 
+<a class="jxr_linenumber" name="239" href="#239">239</a>             <strong class="jxr_keyword">if</strong> ( detail )
+<a class="jxr_linenumber" name="240" href="#240">240</a>             {
+<a class="jxr_linenumber" name="241" href="#241">241</a>                 Node parametersNode = getSingleChild( mojo, <span class="jxr_string">"parameters"</span> );
+<a class="jxr_linenumber" name="242" href="#242">242</a>                 List&lt;Node&gt; parameters = findNamedChild( parametersNode, <span class="jxr_string">"parameter"</span> );
+<a class="jxr_linenumber" name="243" href="#243">243</a>                 append( sb, <span class="jxr_string">"Available parameters:"</span>, 1 );
+<a class="jxr_linenumber" name="244" href="#244">244</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="245" href="#245">245</a> 
+<a class="jxr_linenumber" name="246" href="#246">246</a>                 <strong class="jxr_keyword">for</strong> ( Node parameter : parameters )
+<a class="jxr_linenumber" name="247" href="#247">247</a>                 {
+<a class="jxr_linenumber" name="248" href="#248">248</a>                     writeParameter( sb, parameter, configurationElement );
+<a class="jxr_linenumber" name="249" href="#249">249</a>                 }
+<a class="jxr_linenumber" name="250" href="#250">250</a>             }
+<a class="jxr_linenumber" name="251" href="#251">251</a>         }
+<a class="jxr_linenumber" name="252" href="#252">252</a>     }
+<a class="jxr_linenumber" name="253" href="#253">253</a> 
+<a class="jxr_linenumber" name="254" href="#254">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="255" href="#255">255</a>         <strong class="jxr_keyword">throws</strong> MojoExecutionException
+<a class="jxr_linenumber" name="256" href="#256">256</a>     {
+<a class="jxr_linenumber" name="257" href="#257">257</a>         String parameterName = getValue( parameter, <span class="jxr_string">"name"</span> );
+<a class="jxr_linenumber" name="258" href="#258">258</a>         String parameterDescription = getValue( parameter, <span class="jxr_string">"description"</span> );
 <a class="jxr_linenumber" name="259" href="#259">259</a> 
-<a class="jxr_linenumber" name="260" href="#260">260</a>                 append( sb, <span class="jxr_string">"packaging"</span>, 2 );
-<a class="jxr_linenumber" name="261" href="#261">261</a>                 append( sb, <span class="jxr_string">"Type of the artifact to be deployed. Retrieved from POM file if specified. Defaults to file extension if not specified via command line or POM."</span>, 3 );
-<a class="jxr_linenumber" name="262" href="#262">262</a>                 append( sb, <span class="jxr_string">"Expression: ${packaging}"</span>, 3 );
-<a class="jxr_linenumber" name="263" href="#263">263</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="264" href="#264">264</a> 
-<a class="jxr_linenumber" name="265" href="#265">265</a>                 append( sb, <span class="jxr_string">"passphrase"</span>, 2 );
-<a class="jxr_linenumber" name="266" href="#266">266</a>                 append( sb, <span class="jxr_string">"The passphrase to use when signing."</span>, 3 );
-<a class="jxr_linenumber" name="267" href="#267">267</a>                 append( sb, <span class="jxr_string">"Expression: ${gpg.passphrase}"</span>, 3 );
-<a class="jxr_linenumber" name="268" href="#268">268</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="269" href="#269">269</a> 
-<a class="jxr_linenumber" name="270" href="#270">270</a>                 append( sb, <span class="jxr_string">"pomFile"</span>, 2 );
-<a class="jxr_linenumber" name="271" href="#271">271</a>                 append( sb, <span class="jxr_string">"Location of an existing POM file to be deployed alongside the main artifact, given by the ${file} parameter."</span>, 3 );
-<a class="jxr_linenumber" name="272" href="#272">272</a>                 append( sb, <span class="jxr_string">"Expression: ${pomFile}"</span>, 3 );
-<a class="jxr_linenumber" name="273" href="#273">273</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="274" href="#274">274</a> 
-<a class="jxr_linenumber" name="275" href="#275">275</a>                 append( sb, <span class="jxr_string">"publicKeyring"</span>, 2 );
-<a class="jxr_linenumber" name="276" href="#276">276</a>                 append( sb, <span class="jxr_string">"The path to a public keyring to add to the list of keyrings. By default, only the pubring.gpg from gpg\'s home directory is considered. Use this option (and defaultKeyring if required) to use a different public key. Note: Relative paths are resolved against gpg\'s home directory, not the project base directory."</span>, 3 );
-<a class="jxr_linenumber" name="277" href="#277">277</a>                 append( sb, <span class="jxr_string">"Expression: ${gpg.publicKeyring}"</span>, 3 );
-<a class="jxr_linenumber" name="278" href="#278">278</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="279" href="#279">279</a> 
-<a class="jxr_linenumber" name="280" href="#280">280</a>                 append( sb, <span class="jxr_string">"repositoryId (Default: remote-repository)"</span>, 2 );
-<a class="jxr_linenumber" name="281" href="#281">281</a>                 append( sb, <span class="jxr_string">"Server Id to map on the &lt;id&gt; under &lt;server&gt; section of settings.xml. In most cases, this parameter will be required for authentication."</span>, 3 );
-<a class="jxr_linenumber" name="282" href="#282">282</a>                 append( sb, <span class="jxr_string">"Required: Yes"</span>, 3 );
-<a class="jxr_linenumber" name="283" href="#283">283</a>                 append( sb, <span class="jxr_string">"Expression: ${repositoryId}"</span>, 3 );
-<a class="jxr_linenumber" name="284" href="#284">284</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="260" href="#260">260</a>         Node fieldConfigurationElement = findSingleChild( configurationElement, parameterName );
+<a class="jxr_linenumber" name="261" href="#261">261</a> 
+<a class="jxr_linenumber" name="262" href="#262">262</a>         String parameterDefaultValue = <span class="jxr_string">""</span>;
+<a class="jxr_linenumber" name="263" href="#263">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="264" href="#264">264</a>         {
+<a class="jxr_linenumber" name="265" href="#265">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="266" href="#266">266</a>         }
+<a class="jxr_linenumber" name="267" href="#267">267</a>         append( sb, parameterName + parameterDefaultValue, 2 );
+<a class="jxr_linenumber" name="268" href="#268">268</a>         Node deprecated = findSingleChild( parameter, <span class="jxr_string">"deprecated"</span> );
+<a class="jxr_linenumber" name="269" href="#269">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="270" href="#270">270</a>         {
+<a class="jxr_linenumber" name="271" href="#271">271</a>             append( sb, <span class="jxr_string">"Deprecated. "</span> + deprecated.getNodeValue(), 3 );
+<a class="jxr_linenumber" name="272" href="#272">272</a>             append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="273" href="#273">273</a>         }
+<a class="jxr_linenumber" name="274" href="#274">274</a>         append( sb, parameterDescription, 3 );
+<a class="jxr_linenumber" name="275" href="#275">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="276" href="#276">276</a>         {
+<a class="jxr_linenumber" name="277" href="#277">277</a>             append( sb, <span class="jxr_string">"Required: Yes"</span>, 3 );
+<a class="jxr_linenumber" name="278" href="#278">278</a>         }
+<a class="jxr_linenumber" name="279" href="#279">279</a>         Node expression = findSingleChild( parameter, <span class="jxr_string">"expression"</span> );
+<a class="jxr_linenumber" name="280" href="#280">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="281" href="#281">281</a>         {
+<a class="jxr_linenumber" name="282" href="#282">282</a>         	String property = getPropertyFromExpression( expression.getNodeValue() );
+<a class="jxr_linenumber" name="283" href="#283">283</a>             append( sb, <span class="jxr_string">"User property: "</span> + property, 3 );
+<a class="jxr_linenumber" name="284" href="#284">284</a>         }
 <a class="jxr_linenumber" name="285" href="#285">285</a> 
-<a class="jxr_linenumber" name="286" href="#286">286</a>                 append( sb, <span class="jxr_string">"repositoryLayout (Default: default)"</span>, 2 );
-<a class="jxr_linenumber" name="287" href="#287">287</a>                 append( sb, <span class="jxr_string">"The type of remote repository layout to deploy to. Try legacy for a Maven 1.x-style repository layout."</span>, 3 );
-<a class="jxr_linenumber" name="288" href="#288">288</a>                 append( sb, <span class="jxr_string">"Expression: ${repositoryLayout}"</span>, 3 );
-<a class="jxr_linenumber" name="289" href="#289">289</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="290" href="#290">290</a> 
-<a class="jxr_linenumber" name="291" href="#291">291</a>                 append( sb, <span class="jxr_string">"retryFailedDeploymentCount (Default: 1)"</span>, 2 );
-<a class="jxr_linenumber" name="292" href="#292">292</a>                 append( sb, <span class="jxr_string">"Parameter used to control how many times a failed deployment will be retried before giving up and failing. If a value outside the range 1-10 is specified it will be pulled to the nearest value within the range 1-10."</span>, 3 );
-<a class="jxr_linenumber" name="293" href="#293">293</a>                 append( sb, <span class="jxr_string">"Expression: ${retryFailedDeploymentCount}"</span>, 3 );
-<a class="jxr_linenumber" name="294" href="#294">294</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="295" href="#295">295</a> 
-<a class="jxr_linenumber" name="296" href="#296">296</a>                 append( sb, <span class="jxr_string">"secretKeyring"</span>, 2 );
-<a class="jxr_linenumber" name="297" href="#297">297</a>                 append( sb, <span class="jxr_string">"The path to a secret keyring to add to the list of keyrings. By default, only the secring.gpg from gpg\'s home directory is considered. Use this option (in combination with publicKeyring and defaultKeyring if required) to use a different secret key. Note: Relative paths are resolved against gpg\'s home directory, not the project base directory."</span>, 3 );
-<a class="jxr_linenumber" name="298" href="#298">298</a>                 append( sb, <span class="jxr_string">"Expression: ${gpg.secretKeyring}"</span>, 3 );
-<a class="jxr_linenumber" name="299" href="#299">299</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="300" href="#300">300</a> 
-<a class="jxr_linenumber" name="301" href="#301">301</a>                 append( sb, <span class="jxr_string">"sources"</span>, 2 );
-<a class="jxr_linenumber" name="302" href="#302">302</a>                 append( sb, <span class="jxr_string">"The bundled sources for the artifact."</span>, 3 );
-<a class="jxr_linenumber" name="303" href="#303">303</a>                 append( sb, <span class="jxr_string">"Expression: ${sources}"</span>, 3 );
-<a class="jxr_linenumber" name="304" href="#304">304</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="305" href="#305">305</a> 
-<a class="jxr_linenumber" name="306" href="#306">306</a>                 append( sb, <span class="jxr_string">"types"</span>, 2 );
-<a class="jxr_linenumber" name="307" href="#307">307</a>                 append( sb, <span class="jxr_string">"A comma separated list of types for each of the extra side artifacts to deploy. If there is a mis-match in the number of entries in files or classifiers, then an error will be raised."</span>, 3 );
-<a class="jxr_linenumber" name="308" href="#308">308</a>                 append( sb, <span class="jxr_string">"Expression: ${types}"</span>, 3 );
-<a class="jxr_linenumber" name="309" href="#309">309</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="310" href="#310">310</a> 
-<a class="jxr_linenumber" name="311" href="#311">311</a>                 append( sb, <span class="jxr_string">"uniqueVersion (Default: true)"</span>, 2 );
-<a class="jxr_linenumber" name="312" href="#312">312</a>                 append( sb, <span class="jxr_string">"Whether to deploy snapshots with a unique version or not."</span>, 3 );
-<a class="jxr_linenumber" name="313" href="#313">313</a>                 append( sb, <span class="jxr_string">"Expression: ${uniqueVersion}"</span>, 3 );
-<a class="jxr_linenumber" name="314" href="#314">314</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="315" href="#315">315</a> 
-<a class="jxr_linenumber" name="316" href="#316">316</a>                 append( sb, <span class="jxr_string">"updateReleaseInfo (Default: false)"</span>, 2 );
-<a class="jxr_linenumber" name="317" href="#317">317</a>                 append( sb, <span class="jxr_string">"Parameter used to update the metadata to make the artifact as release."</span>, 3 );
-<a class="jxr_linenumber" name="318" href="#318">318</a>                 append( sb, <span class="jxr_string">"Expression: ${updateReleaseInfo}"</span>, 3 );
-<a class="jxr_linenumber" name="319" href="#319">319</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="320" href="#320">320</a> 
-<a class="jxr_linenumber" name="321" href="#321">321</a>                 append( sb, <span class="jxr_string">"url"</span>, 2 );
-<a class="jxr_linenumber" name="322" href="#322">322</a>                 append( sb, <span class="jxr_string">"URL where the artifact will be deployed.\nie ( file:///C:/m2-repo or scp://host.com/path/to/repo )"</span>, 3 );
-<a class="jxr_linenumber" name="323" href="#323">323</a>                 append( sb, <span class="jxr_string">"Required: Yes"</span>, 3 );
-<a class="jxr_linenumber" name="324" href="#324">324</a>                 append( sb, <span class="jxr_string">"Expression: ${url}"</span>, 3 );
-<a class="jxr_linenumber" name="325" href="#325">325</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="326" href="#326">326</a> 
-<a class="jxr_linenumber" name="327" href="#327">327</a>                 append( sb, <span class="jxr_string">"useAgent (Default: false)"</span>, 2 );
-<a class="jxr_linenumber" name="328" href="#328">328</a>                 append( sb, <span class="jxr_string">"Passes --use-agent or --no-use-agent to gpg. If using an agent, the passphrase is optional as the agent will provide it. For gpg2, specify true as --no-use-agent was removed in gpg2 and doesn\'t ask for a passphrase anymore."</span>, 3 );
-<a class="jxr_linenumber" name="329" href="#329">329</a>                 append( sb, <span class="jxr_string">"Expression: ${gpg.useagent}"</span>, 3 );
-<a class="jxr_linenumber" name="330" href="#330">330</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="331" href="#331">331</a> 
-<a class="jxr_linenumber" name="332" href="#332">332</a>                 append( sb, <span class="jxr_string">"version"</span>, 2 );
-<a class="jxr_linenumber" name="333" href="#333">333</a>                 append( sb, <span class="jxr_string">"Version of the artifact to be deployed. Retrieved from POM file if specified."</span>, 3 );
-<a class="jxr_linenumber" name="334" href="#334">334</a>                 append( sb, <span class="jxr_string">"Expression: ${version}"</span>, 3 );
-<a class="jxr_linenumber" name="335" href="#335">335</a>                 append( sb, <span class="jxr_string">""</span>, 0 );
-<a class="jxr_linenumber" name="336" href="#336">336</a>             }
-<a class="jxr_linenumber" name="337" href="#337">337</a>         }
-<a class="jxr_linenumber" name="338" href="#338">338</a> 
-<a class="jxr_linenumber" name="339" href="#339">339</a>         <strong class="jxr_keyword">if</strong> ( getLog().isInfoEnabled() )
-<a class="jxr_linenumber" name="340" href="#340">340</a>         {
-<a class="jxr_linenumber" name="341" href="#341">341</a>             getLog().info( sb.toString() );
-<a class="jxr_linenumber" name="342" href="#342">342</a>         }
-<a class="jxr_linenumber" name="343" href="#343">343</a>     }
-<a class="jxr_linenumber" name="344" href="#344">344</a> 
-<a class="jxr_linenumber" name="345" href="#345">345</a>     <em class="jxr_javadoccomment">/**</em>
-<a class="jxr_linenumber" name="346" href="#346">346</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="347" href="#347">347</a> <em class="jxr_javadoccomment">     *</em>
-<a class="jxr_linenumber" name="348" href="#348">348</a> <em class="jxr_javadoccomment">     * @param str String to repeat</em>
-<a class="jxr_linenumber" name="349" href="#349">349</a> <em class="jxr_javadoccomment">     * @param repeat number of times to repeat str</em>
-<a class="jxr_linenumber" name="350" href="#350">350</a> <em class="jxr_javadoccomment">     * @return String with repeated String</em>
-<a class="jxr_linenumber" name="351" href="#351">351</a> <em class="jxr_javadoccomment">     * @throws NegativeArraySizeException if &lt;code&gt;repeat &lt; 0&lt;/code&gt;</em>
-<a class="jxr_linenumber" name="352" href="#352">352</a> <em class="jxr_javadoccomment">     * @throws NullPointerException if str is &lt;code&gt;null&lt;/code&gt;</em>
-<a class="jxr_linenumber" name="353" href="#353">353</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="354" href="#354">354</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="355" href="#355">355</a>     {
-<a class="jxr_linenumber" name="356" href="#356">356</a>         StringBuffer buffer = <strong class="jxr_keyword">new</strong> StringBuffer( repeat * str.length() );
-<a class="jxr_linenumber" name="357" href="#357">357</a> 
-<a class="jxr_linenumber" name="358" href="#358">358</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; repeat; i++ )
-<a class="jxr_linenumber" name="359" href="#359">359</a>         {
-<a class="jxr_linenumber" name="360" href="#360">360</a>             buffer.append( str );
-<a class="jxr_linenumber" name="361" href="#361">361</a>         }
-<a class="jxr_linenumber" name="362" href="#362">362</a> 
-<a class="jxr_linenumber" name="363" href="#363">363</a>         <strong class="jxr_keyword">return</strong> buffer.toString();
-<a class="jxr_linenumber" name="364" href="#364">364</a>     }
-<a class="jxr_linenumber" name="365" href="#365">365</a> 
-<a class="jxr_linenumber" name="366" href="#366">366</a>     <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> </em>
-<a class="jxr_linenumber" name="367" href="#367">367</a> <em class="jxr_javadoccomment">     * Append a description to the buffer by respecting the indentSize and lineLength parameters.</em>
-<a class="jxr_linenumber" name="368" href="#368">368</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="369" href="#369">369</a> <em class="jxr_javadoccomment">     * </em>
-<a class="jxr_linenumber" name="370" href="#370">370</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="371" href="#371">371</a> <em class="jxr_javadoccomment">     * @param description The description, not &lt;code&gt;null&lt;/code&gt;.</em>
-<a class="jxr_linenumber" name="372" href="#372">372</a> <em class="jxr_javadoccomment">     * @param indent The base indentation level of each line, must not be negative.</em>
-<a class="jxr_linenumber" name="373" href="#373">373</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="374" href="#374">374</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="375" href="#375">375</a>     {
-<a class="jxr_linenumber" name="376" href="#376">376</a>         <strong class="jxr_keyword">for</strong> ( Iterator it = toLines( description, indent, indentSize, lineLength ).iterator(); it.hasNext(); )
-<a class="jxr_linenumber" name="377" href="#377">377</a>         {
-<a class="jxr_linenumber" name="378" href="#378">378</a>             sb.append( it.next().toString() ).append( '\n' );
-<a class="jxr_linenumber" name="379" href="#379">379</a>         }
-<a class="jxr_linenumber" name="380" href="#380">380</a>     }
-<a class="jxr_linenumber" name="381" href="#381">381</a> 
-<a class="jxr_linenumber" name="382" href="#382">382</a>     <em class="jxr_javadoccomment">/**</em><em class="jxr_javadoccomment"> </em>
-<a class="jxr_linenumber" name="383" href="#383">383</a> <em class="jxr_javadoccomment">     * Splits the specified text into lines of convenient display length.</em>
-<a class="jxr_linenumber" name="384" href="#384">384</a> <em class="jxr_javadoccomment">     * </em>
-<a class="jxr_linenumber" name="385" href="#385">385</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="386" href="#386">386</a> <em class="jxr_javadoccomment">     * @param indent The base indentation level of each line, must not be negative.</em>
-<a class="jxr_linenumber" name="387" href="#387">387</a> <em class="jxr_javadoccomment">     * @param indentSize The size of each indentation, must not be negative.</em>
-<a class="jxr_linenumber" name="388" href="#388">388</a> <em class="jxr_javadoccomment">     * @param lineLength The length of the line, must not be negative.</em>
-<a class="jxr_linenumber" name="389" href="#389">389</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="390" href="#390">390</a> <em class="jxr_javadoccomment">     * @throws NegativeArraySizeException if &lt;code&gt;indent &lt; 0&lt;/code&gt;</em>
-<a class="jxr_linenumber" name="391" href="#391">391</a> <em class="jxr_javadoccomment">     */</em>
-<a class="jxr_linenumber" name="392" href="#392">392</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="393" href="#393">393</a>     {
-<a class="jxr_linenumber" name="394" href="#394">394</a>         List&lt;String&gt; lines = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
-<a class="jxr_linenumber" name="395" href="#395">395</a> 
-<a class="jxr_linenumber" name="396" href="#396">396</a>         String ind = repeat( <span class="jxr_string">"\t"</span>, indent );
-<a class="jxr_linenumber" name="397" href="#397">397</a>         String[] plainLines = text.split( <span class="jxr_string">"(\r\n)|(\r)|(\n)"</span> );
-<a class="jxr_linenumber" name="398" href="#398">398</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="399" href="#399">399</a>         {
-<a class="jxr_linenumber" name="400" href="#400">400</a>             toLines( lines, ind + plainLines[i], indentSize, lineLength );
-<a class="jxr_linenumber" name="401" href="#401">401</a>         }
+<a class="jxr_linenumber" name="286" href="#286">286</a>         append( sb, <span class="jxr_string">""</span>, 0 );
+<a class="jxr_linenumber" name="287" href="#287">287</a>     }
+<a class="jxr_linenumber" name="288" href="#288">288</a> 
+<a class="jxr_linenumber" name="289" href="#289">289</a>     <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="290" href="#290">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="291" href="#291">291</a> <em class="jxr_javadoccomment">     *</em>
+<a class="jxr_linenumber" name="292" href="#292">292</a> <em class="jxr_javadoccomment">     * @param str    String to repeat</em>
+<a class="jxr_linenumber" name="293" href="#293">293</a> <em class="jxr_javadoccomment">     * @param repeat number of times to repeat str</em>
+<a class="jxr_linenumber" name="294" href="#294">294</a> <em class="jxr_javadoccomment">     * @return String with repeated String</em>
+<a class="jxr_linenumber" name="295" href="#295">295</a> <em class="jxr_javadoccomment">     * @throws NegativeArraySizeException if &lt;code&gt;repeat &lt; 0&lt;/code&gt;</em>
+<a class="jxr_linenumber" name="296" href="#296">296</a> <em class="jxr_javadoccomment">     * @throws NullPointerException       if str is &lt;code&gt;null&lt;/code&gt;</em>
+<a class="jxr_linenumber" name="297" href="#297">297</a> <em class="jxr_javadoccomment">     */</em>
+<a class="jxr_linenumber" name="298" href="#298">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="299" href="#299">299</a>     {
+<a class="jxr_linenumber" name="300" href="#300">300</a>         StringBuilder buffer = <strong class="jxr_keyword">new</strong> StringBuilder( repeat * str.length() );
+<a class="jxr_linenumber" name="301" href="#301">301</a> 
+<a class="jxr_linenumber" name="302" href="#302">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="303" href="#303">303</a>         {
+<a class="jxr_linenumber" name="304" href="#304">304</a>             buffer.append( str );
+<a class="jxr_linenumber" name="305" href="#305">305</a>         }
+<a class="jxr_linenumber" name="306" href="#306">306</a> 
+<a class="jxr_linenumber" name="307" href="#307">307</a>         <strong class="jxr_keyword">return</strong> buffer.toString();
+<a class="jxr_linenumber" name="308" href="#308">308</a>     }
+<a class="jxr_linenumber" name="309" href="#309">309</a> 

[... 210 lines stripped ...]