View Javadoc

1   package org.jomc.mojo;
2   
3   import java.util.ArrayList;
4   import java.util.Iterator;
5   import java.util.List;
6   
7   import org.apache.maven.plugin.AbstractMojo;
8   import org.apache.maven.plugin.MojoExecutionException;
9   
10  /**
11   * Display help information on maven-jomc-plugin.<br/> Call <pre>  mvn jomc:help -Ddetail=true -Dgoal=&lt;goal-name&gt;</pre> to display parameter details.
12   *
13   * @version generated on Wed Jan 02 16:43:23 CET 2013
14   * @author org.apache.maven.tools.plugin.generator.PluginHelpGenerator (version 2.9)
15   * @goal help
16   * @requiresProject false
17   * @threadSafe
18   */
19  @SuppressWarnings( "all" )
20  public class HelpMojo
21      extends AbstractMojo
22  {
23      /**
24       * If <code>true</code>, display all settable properties for each goal.
25       * 
26       * @parameter expression="${detail}" default-value="false"
27       */
28      private boolean detail;
29  
30      /**
31       * The name of the goal for which to show help. If unspecified, all goals will be displayed.
32       * 
33       * @parameter expression="${goal}"
34       */
35      private java.lang.String goal;
36  
37      /**
38       * The maximum length of a display line, should be positive.
39       * 
40       * @parameter expression="${lineLength}" default-value="80"
41       */
42      private int lineLength;
43  
44      /**
45       * The number of spaces per indentation level, should be positive.
46       * 
47       * @parameter expression="${indentSize}" default-value="2"
48       */
49      private int indentSize;
50  
51  
52      /** {@inheritDoc} */
53      public void execute()
54          throws MojoExecutionException
55      {
56          if ( lineLength <= 0 )
57          {
58              getLog().warn( "The parameter 'lineLength' should be positive, using '80' as default." );
59              lineLength = 80;
60          }
61          if ( indentSize <= 0 )
62          {
63              getLog().warn( "The parameter 'indentSize' should be positive, using '2' as default." );
64              indentSize = 2;
65          }
66  
67          StringBuffer sb = new StringBuffer();
68  
69          append( sb, "org.jomc:maven-jomc-plugin:1.4", 0 );
70          append( sb, "", 0 );
71  
72          append( sb, "JOMC \u2051 Maven Plugin", 0 );
73          append( sb, "Object management and configuration tools for Apache Maven.", 1 );
74          append( sb, "", 0 );
75  
76          if ( goal == null || goal.length() <= 0 )
77          {
78              append( sb, "This plugin has 21 goals:", 0 );
79              append( sb, "", 0 );
80          }
81  
82          if ( goal == null || goal.length() <= 0 || "attach-main-module".equals( goal ) )
83          {
84              append( sb, "jomc:attach-main-module", 0 );
85              append( sb, "Attaches a project\'s main module artifact.", 1 );
86              append( sb, "", 0 );
87              if ( detail )
88              {
89                  append( sb, "Available parameters:", 1 );
90                  append( sb, "", 0 );
91  
92                  append( sb, "attachMainModuleExecutionStrategy (Default: once-per-session)", 2 );
93                  append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
94                  append( sb, "Expression: ${jomc.attachMainModuleExecutionStrategy}", 3 );
95                  append( sb, "", 0 );
96  
97                  append( sb, "mainModuleArtifactClassifier (Default: jomc-module)", 2 );
98                  append( sb, "Classifier of the attached module artifact.", 3 );
99                  append( sb, "Expression: ${jomc.mainModuleArtifactClassifier}", 3 );
100                 append( sb, "", 0 );
101 
102                 append( sb, "mainModuleArtifactFile (Default: ${project.build.outputDirectory}/META-INF/jomc.xml)", 2 );
103                 append( sb, "File of the attached module artifact.", 3 );
104                 append( sb, "Expression: ${jomc.mainModuleArtifactFile}", 3 );
105                 append( sb, "", 0 );
106 
107                 append( sb, "mainModuleArtifactType (Default: xml)", 2 );
108                 append( sb, "Type of the attached module artifact.", 3 );
109                 append( sb, "Expression: ${jomc.mainModuleArtifactType}", 3 );
110                 append( sb, "", 0 );
111 
112                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
113                 append( sb, "Directory holding the session related files of the project.", 3 );
114                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
115                 append( sb, "", 0 );
116 
117                 append( sb, "verbose (Default: false)", 2 );
118                 append( sb, "Controls verbosity of the plugin.", 3 );
119                 append( sb, "Expression: ${jomc.verbose}", 3 );
120                 append( sb, "", 0 );
121             }
122         }
123 
124         if ( goal == null || goal.length() <= 0 || "attach-test-module".equals( goal ) )
125         {
126             append( sb, "jomc:attach-test-module", 0 );
127             append( sb, "Attaches a project\'s test module artifact.", 1 );
128             append( sb, "", 0 );
129             if ( detail )
130             {
131                 append( sb, "Available parameters:", 1 );
132                 append( sb, "", 0 );
133 
134                 append( sb, "attachTestModuleExecutionStrategy (Default: once-per-session)", 2 );
135                 append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
136                 append( sb, "Expression: ${jomc.attachTestModuleExecutionStrategy}", 3 );
137                 append( sb, "", 0 );
138 
139                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
140                 append( sb, "Directory holding the session related files of the project.", 3 );
141                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
142                 append( sb, "", 0 );
143 
144                 append( sb, "testModuleArtifactClassifier (Default: jomc-test-module)", 2 );
145                 append( sb, "Classifier of the attached module artifact.", 3 );
146                 append( sb, "Expression: ${jomc.testModuleArtifactClassifier}", 3 );
147                 append( sb, "", 0 );
148 
149                 append( sb, "testModuleArtifactFile (Default: ${project.build.testOutputDirectory}/META-INF/jomc.xml)", 2 );
150                 append( sb, "File of the attached module artifact.", 3 );
151                 append( sb, "Expression: ${jomc.testModuleArtifactFile}", 3 );
152                 append( sb, "", 0 );
153 
154                 append( sb, "testModuleArtifactType (Default: xml)", 2 );
155                 append( sb, "Type of the attached module artifact.", 3 );
156                 append( sb, "Expression: ${jomc.testModuleArtifactType}", 3 );
157                 append( sb, "", 0 );
158 
159                 append( sb, "verbose (Default: false)", 2 );
160                 append( sb, "Controls verbosity of the plugin.", 3 );
161                 append( sb, "Expression: ${jomc.verbose}", 3 );
162                 append( sb, "", 0 );
163             }
164         }
165 
166         if ( goal == null || goal.length() <= 0 || "commit-main-classes".equals( goal ) )
167         {
168             append( sb, "jomc:commit-main-classes", 0 );
169             append( sb, "Commits model objects to a projects\' main classes.", 1 );
170             append( sb, "", 0 );
171             if ( detail )
172             {
173                 append( sb, "Available parameters:", 1 );
174                 append( sb, "", 0 );
175 
176                 append( sb, "classesDirectory", 2 );
177                 append( sb, "Directory holding the compiled class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'outputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
178                 append( sb, "", 0 );
179 
180                 append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
181                 append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
182                 append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
183                 append( sb, "", 0 );
184 
185                 append( sb, "classProcessingEnabled (Default: true)", 2 );
186                 append( sb, "Controls processing of class files.", 3 );
187                 append( sb, "Expression: ${jomc.classProcessing}", 3 );
188                 append( sb, "", 0 );
189 
190                 append( sb, "commitMainClassesExecutionStrategy (Default: once-per-session)", 2 );
191                 append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
192                 append( sb, "Expression: ${jomc.commitMainClassesExecutionStrategy}", 3 );
193                 append( sb, "", 0 );
194 
195                 append( sb, "defaultTemplateEncoding", 2 );
196                 append( sb, "The encoding to use for reading templates.", 3 );
197                 append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
198                 append( sb, "", 0 );
199 
200                 append( sb, "defaultTemplateProfile", 2 );
201                 append( sb, "The default template profile to use when accessing templates.", 3 );
202                 append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
203                 append( sb, "", 0 );
204 
205                 append( sb, "indentation", 2 );
206                 append( sb, "The indentation string (\'\\t\' for tab).", 3 );
207                 append( sb, "Expression: ${jomc.indentation}", 3 );
208                 append( sb, "", 0 );
209 
210                 append( sb, "javaValidationEnabled (Default: true)", 2 );
211                 append( sb, "Flag controlling Java validation.", 3 );
212                 append( sb, "Expression: ${jomc.javaValidationEnabled}", 3 );
213                 append( sb, "", 0 );
214 
215                 append( sb, "lineSeparator", 2 );
216                 append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
217                 append( sb, "Expression: ${jomc.lineSeparator}", 3 );
218                 append( sb, "", 0 );
219 
220                 append( sb, "locale", 2 );
221                 append( sb, "The locale.\n<locale>\n\u00a0\u00a0<language>Lowercase\u00a0two-letter\u00a0ISO-639\u00a0code.</language>\n\u00a0\u00a0<country>Uppercase\u00a0two-letter\u00a0ISO-3166\u00a0code.</country>\n\u00a0\u00a0<variant>Vendor\u00a0and\u00a0browser\u00a0specific\u00a0code.</variant>\n</locale>\n", 3 );
222                 append( sb, "", 0 );
223 
224                 append( sb, "model (Default: http://jomc.org/model)", 2 );
225                 append( sb, "The identifier of the model to process.", 3 );
226                 append( sb, "Expression: ${jomc.model}", 3 );
227                 append( sb, "", 0 );
228 
229                 append( sb, "modelContextAttributes", 2 );
230                 append( sb, "ModelContext attributes.\n<modelContextAttributes>\n\u00a0\u00a0<modelContextAttribute>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0attribute.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0attribute.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0attributes\'s\u00a0object.</type>\n\u00a0\u00a0</modelContextAttribute>\n</modelContextAttributes>\n", 3 );
231                 append( sb, "", 0 );
232 
233                 append( sb, "modelContextFactoryClassName", 2 );
234                 append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
235                 append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
236                 append( sb, "", 0 );
237 
238                 append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
239                 append( sb, "Controls model object class path resolution.", 3 );
240                 append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
241                 append( sb, "", 0 );
242 
243                 append( sb, "modelObjectStylesheet", 2 );
244                 append( sb, "XSLT document to use for transforming model objects.\nThe value of the parameter is a location to search a XSLT document at. First the value is used to search the class path of the plugin. If a class path resource is found, a XSLT document is loaded from that resource. If no class path resource is found, an attempt is made to parse the value to an URL. Succeeding that, an XSLT document is loaded from that URL (since version 1.2). Failing that, the value is interpreted as a file name of a XSLT document to load relative to the base directory of the project. If that file exists, a XSLT document is loaded from that file. If no XSLT document is found at the given location, a build failure is produced.\n\nNote: When upgrading to version 1.2, any project dependencies holding XSLT documents referenced by this parameter need to be added to the plugins\' dependencies.\n\nDeprecated: As of JOMC 1.2, please use the \'modelObjectStylesheetResources\' parameter. This parameter will be removed in version 2.0.\n", 3 );
245                 append( sb, "", 0 );
246 
247                 append( sb, "modelObjectStylesheetResources", 2 );
248                 append( sb, "XSLT documents to use for transforming model objects.\n<modelObjectStylesheetResources>\n\u00a0\u00a0<modelObjectStylesheetResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0XSLT\u00a0document.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0XSLT\u00a0document\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0\u00a0\u00a0<transformationParameterResources>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0</transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0</transformationParameterResources>\n\u00a0\u00a0\u00a0\u00a0<transformationParameters>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0</transformationParameter>\n\u00a0\u00a0\u00a0\u00a0</transformationParameters>\n\u00a0\u00a0\u00a0\u00a0<transformationOutputProperties>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0</transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0</transformationOutputProperties>\n\u00a0\u00a0</modelObjectStylesheetResource>\n</modelObjectStylesheetResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
249                 append( sb, "", 0 );
250 
251                 append( sb, "modelProcessingEnabled (Default: true)", 2 );
252                 append( sb, "Controls processing of models.", 3 );
253                 append( sb, "Expression: ${jomc.modelProcessing}", 3 );
254                 append( sb, "", 0 );
255 
256                 append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
257                 append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
258                 append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
259                 append( sb, "", 0 );
260 
261                 append( sb, "modletLocation", 2 );
262                 append( sb, "The location to search for modlets.", 3 );
263                 append( sb, "Expression: ${jomc.modletLocation}", 3 );
264                 append( sb, "", 0 );
265 
266                 append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
267                 append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
268                 append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
269                 append( sb, "", 0 );
270 
271                 append( sb, "modletSchemaSystemId", 2 );
272                 append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
273                 append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
274                 append( sb, "", 0 );
275 
276                 append( sb, "moduleLocation", 2 );
277                 append( sb, "The location to search for modules.", 3 );
278                 append( sb, "Expression: ${jomc.moduleLocation}", 3 );
279                 append( sb, "", 0 );
280 
281                 append( sb, "moduleName (Default: ${project.name})", 2 );
282                 append( sb, "Name of the module to process.", 3 );
283                 append( sb, "Expression: ${jomc.moduleName}", 3 );
284                 append( sb, "", 0 );
285 
286                 append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
287                 append( sb, "Output directory of the project.", 3 );
288                 append( sb, "Expression: ${jomc.outputDirectory}", 3 );
289                 append( sb, "", 0 );
290 
291                 append( sb, "platformProviderLocation", 2 );
292                 append( sb, "The location to search for platform providers.", 3 );
293                 append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
294                 append( sb, "", 0 );
295 
296                 append( sb, "providerLocation", 2 );
297                 append( sb, "The location to search for providers.", 3 );
298                 append( sb, "Expression: ${jomc.providerLocation}", 3 );
299                 append( sb, "", 0 );
300 
301                 append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
302                 append( sb, "Directory holding the reports of the project.", 3 );
303                 append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
304                 append( sb, "", 0 );
305 
306                 append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
307                 append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
308                 append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
309                 append( sb, "", 0 );
310 
311                 append( sb, "resourceProcessingEnabled (Default: true)", 2 );
312                 append( sb, "Controls processing of resource files.", 3 );
313                 append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
314                 append( sb, "", 0 );
315 
316                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
317                 append( sb, "Directory holding the session related files of the project.", 3 );
318                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
319                 append( sb, "", 0 );
320 
321                 append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
322                 append( sb, "Directory holding the source files of the project.", 3 );
323                 append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
324                 append( sb, "", 0 );
325 
326                 append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
327                 append( sb, "The encoding to use for reading and writing files.", 3 );
328                 append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
329                 append( sb, "", 0 );
330 
331                 append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
332                 append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
333                 append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
334                 append( sb, "", 0 );
335 
336                 append( sb, "sourceProcessingEnabled (Default: true)", 2 );
337                 append( sb, "Controls processing of source code files.", 3 );
338                 append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
339                 append( sb, "", 0 );
340 
341                 append( sb, "templateEncoding", 2 );
342                 append( sb, "The encoding to use for reading templates.\nDeprecated: As of JOMC 1.3, please use the \'defaultTemplateEncoding\' parameter. This parameter will be removed in version 2.0.\n", 3 );
343                 append( sb, "Expression: ${jomc.templateEncoding}", 3 );
344                 append( sb, "", 0 );
345 
346                 append( sb, "templateLocation", 2 );
347                 append( sb, "Location to search for templates in addition to searching the class path of the plugin.\nFirst an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a directory name relative to the base directory of the project. If that directory exists, that directory is used. If nothing is found at the given location, a warning message is logged.\n", 3 );
348                 append( sb, "Expression: ${jomc.templateLocation}", 3 );
349                 append( sb, "", 0 );
350 
351                 append( sb, "templateParameterResources", 2 );
352                 append( sb, "Template parameter resources.\n<templateParameterResources>\n\u00a0\u00a0<templateParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</templateParameterResource>\n</templateParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
353                 append( sb, "", 0 );
354 
355                 append( sb, "templateParameters", 2 );
356                 append( sb, "Template parameters.\n<templateParameters>\n\u00a0\u00a0<templateParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</templateParameter>\n</templateParameters>\n", 3 );
357                 append( sb, "", 0 );
358 
359                 append( sb, "templateProfile", 2 );
360                 append( sb, "The template profile to use when accessing templates.", 3 );
361                 append( sb, "Expression: ${jomc.templateProfile}", 3 );
362                 append( sb, "", 0 );
363 
364                 append( sb, "testClassesDirectory", 2 );
365                 append( sb, "Directory holding the compiled test class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'testOutputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
366                 append( sb, "", 0 );
367 
368                 append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
369                 append( sb, "Name of the test module to process.", 3 );
370                 append( sb, "Expression: ${jomc.testModuleName}", 3 );
371                 append( sb, "", 0 );
372 
373                 append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
374                 append( sb, "Test output directory of the project.", 3 );
375                 append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
376                 append( sb, "", 0 );
377 
378                 append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
379                 append( sb, "Directory holding the test source files of the project.", 3 );
380                 append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
381                 append( sb, "", 0 );
382 
383                 append( sb, "transformationOutputProperties", 2 );
384                 append( sb, "Global transformation output properties.\n<transformationOutputProperties>\n\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</transformationOutputProperty>\n</transformationOutputProperties>\n", 3 );
385                 append( sb, "", 0 );
386 
387                 append( sb, "transformationParameterResources", 2 );
388                 append( sb, "Global transformation parameter resources.\n<transformationParameterResources>\n\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</transformationParameterResource>\n</transformationParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
389                 append( sb, "", 0 );
390 
391                 append( sb, "transformationParameters", 2 );
392                 append( sb, "Global transformation parameters.\n<transformationParameters>\n\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</transformationParameter>\n</transformationParameters>\n", 3 );
393                 append( sb, "", 0 );
394 
395                 append( sb, "transformerLocation", 2 );
396                 append( sb, "The location to search for transformers.", 3 );
397                 append( sb, "Expression: ${jomc.transformerLocation}", 3 );
398                 append( sb, "", 0 );
399 
400                 append( sb, "velocityProperties", 2 );
401                 append( sb, "Velocity runtime properties.\n<velocityProperties>\n\u00a0\u00a0<velocityProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</velocityProperty>\n</velocityProperties>\n", 3 );
402                 append( sb, "", 0 );
403 
404                 append( sb, "velocityPropertyResources", 2 );
405                 append( sb, "Velocity runtime property resources.\n<velocityPropertyResources>\n\u00a0\u00a0<velocityPropertyResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</velocityPropertyResource>\n</velocityPropertyResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
406                 append( sb, "", 0 );
407 
408                 append( sb, "verbose (Default: false)", 2 );
409                 append( sb, "Controls verbosity of the plugin.", 3 );
410                 append( sb, "Expression: ${jomc.verbose}", 3 );
411                 append( sb, "", 0 );
412             }
413         }
414 
415         if ( goal == null || goal.length() <= 0 || "commit-test-classes".equals( goal ) )
416         {
417             append( sb, "jomc:commit-test-classes", 0 );
418             append( sb, "Commits model objects to a projects\' test classes.", 1 );
419             append( sb, "", 0 );
420             if ( detail )
421             {
422                 append( sb, "Available parameters:", 1 );
423                 append( sb, "", 0 );
424 
425                 append( sb, "classesDirectory", 2 );
426                 append( sb, "Directory holding the compiled class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'outputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
427                 append( sb, "", 0 );
428 
429                 append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
430                 append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
431                 append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
432                 append( sb, "", 0 );
433 
434                 append( sb, "classProcessingEnabled (Default: true)", 2 );
435                 append( sb, "Controls processing of class files.", 3 );
436                 append( sb, "Expression: ${jomc.classProcessing}", 3 );
437                 append( sb, "", 0 );
438 
439                 append( sb, "commitTestClassesExecutionStrategy (Default: once-per-session)", 2 );
440                 append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
441                 append( sb, "Expression: ${jomc.commitTestClassesExecutionStrategy}", 3 );
442                 append( sb, "", 0 );
443 
444                 append( sb, "defaultTemplateEncoding", 2 );
445                 append( sb, "The encoding to use for reading templates.", 3 );
446                 append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
447                 append( sb, "", 0 );
448 
449                 append( sb, "defaultTemplateProfile", 2 );
450                 append( sb, "The default template profile to use when accessing templates.", 3 );
451                 append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
452                 append( sb, "", 0 );
453 
454                 append( sb, "indentation", 2 );
455                 append( sb, "The indentation string (\'\\t\' for tab).", 3 );
456                 append( sb, "Expression: ${jomc.indentation}", 3 );
457                 append( sb, "", 0 );
458 
459                 append( sb, "javaValidationEnabled (Default: true)", 2 );
460                 append( sb, "Flag controlling Java validation.", 3 );
461                 append( sb, "Expression: ${jomc.javaValidationEnabled}", 3 );
462                 append( sb, "", 0 );
463 
464                 append( sb, "lineSeparator", 2 );
465                 append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
466                 append( sb, "Expression: ${jomc.lineSeparator}", 3 );
467                 append( sb, "", 0 );
468 
469                 append( sb, "locale", 2 );
470                 append( sb, "The locale.\n<locale>\n\u00a0\u00a0<language>Lowercase\u00a0two-letter\u00a0ISO-639\u00a0code.</language>\n\u00a0\u00a0<country>Uppercase\u00a0two-letter\u00a0ISO-3166\u00a0code.</country>\n\u00a0\u00a0<variant>Vendor\u00a0and\u00a0browser\u00a0specific\u00a0code.</variant>\n</locale>\n", 3 );
471                 append( sb, "", 0 );
472 
473                 append( sb, "model (Default: http://jomc.org/model)", 2 );
474                 append( sb, "The identifier of the model to process.", 3 );
475                 append( sb, "Expression: ${jomc.model}", 3 );
476                 append( sb, "", 0 );
477 
478                 append( sb, "modelContextAttributes", 2 );
479                 append( sb, "ModelContext attributes.\n<modelContextAttributes>\n\u00a0\u00a0<modelContextAttribute>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0attribute.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0attribute.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0attributes\'s\u00a0object.</type>\n\u00a0\u00a0</modelContextAttribute>\n</modelContextAttributes>\n", 3 );
480                 append( sb, "", 0 );
481 
482                 append( sb, "modelContextFactoryClassName", 2 );
483                 append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
484                 append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
485                 append( sb, "", 0 );
486 
487                 append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
488                 append( sb, "Controls model object class path resolution.", 3 );
489                 append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
490                 append( sb, "", 0 );
491 
492                 append( sb, "modelObjectStylesheet", 2 );
493                 append( sb, "XSLT document to use for transforming model objects.\nThe value of the parameter is a location to search a XSLT document at. First the value is used to search the class path of the plugin. If a class path resource is found, a XSLT document is loaded from that resource. If no class path resource is found, an attempt is made to parse the value to an URL. Succeeding that, an XSLT document is loaded from that URL (since version 1.2). Failing that, the value is interpreted as a file name of a XSLT document to load relative to the base directory of the project. If that file exists, a XSLT document is loaded from that file. If no XSLT document is found at the given location, a build failure is produced.\n\nNote: When upgrading to version 1.2, any project dependencies holding XSLT documents referenced by this parameter need to be added to the plugins\' dependencies.\n\nDeprecated: As of JOMC 1.2, please use the \'modelObjectStylesheetResources\' parameter. This parameter will be removed in version 2.0.\n", 3 );
494                 append( sb, "", 0 );
495 
496                 append( sb, "modelObjectStylesheetResources", 2 );
497                 append( sb, "XSLT documents to use for transforming model objects.\n<modelObjectStylesheetResources>\n\u00a0\u00a0<modelObjectStylesheetResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0XSLT\u00a0document.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0XSLT\u00a0document\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0\u00a0\u00a0<transformationParameterResources>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0</transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0</transformationParameterResources>\n\u00a0\u00a0\u00a0\u00a0<transformationParameters>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0</transformationParameter>\n\u00a0\u00a0\u00a0\u00a0</transformationParameters>\n\u00a0\u00a0\u00a0\u00a0<transformationOutputProperties>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0</transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0</transformationOutputProperties>\n\u00a0\u00a0</modelObjectStylesheetResource>\n</modelObjectStylesheetResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
498                 append( sb, "", 0 );
499 
500                 append( sb, "modelProcessingEnabled (Default: true)", 2 );
501                 append( sb, "Controls processing of models.", 3 );
502                 append( sb, "Expression: ${jomc.modelProcessing}", 3 );
503                 append( sb, "", 0 );
504 
505                 append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
506                 append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
507                 append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
508                 append( sb, "", 0 );
509 
510                 append( sb, "modletLocation", 2 );
511                 append( sb, "The location to search for modlets.", 3 );
512                 append( sb, "Expression: ${jomc.modletLocation}", 3 );
513                 append( sb, "", 0 );
514 
515                 append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
516                 append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
517                 append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
518                 append( sb, "", 0 );
519 
520                 append( sb, "modletSchemaSystemId", 2 );
521                 append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
522                 append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
523                 append( sb, "", 0 );
524 
525                 append( sb, "moduleLocation", 2 );
526                 append( sb, "The location to search for modules.", 3 );
527                 append( sb, "Expression: ${jomc.moduleLocation}", 3 );
528                 append( sb, "", 0 );
529 
530                 append( sb, "moduleName (Default: ${project.name})", 2 );
531                 append( sb, "Name of the module to process.", 3 );
532                 append( sb, "Expression: ${jomc.moduleName}", 3 );
533                 append( sb, "", 0 );
534 
535                 append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
536                 append( sb, "Output directory of the project.", 3 );
537                 append( sb, "Expression: ${jomc.outputDirectory}", 3 );
538                 append( sb, "", 0 );
539 
540                 append( sb, "platformProviderLocation", 2 );
541                 append( sb, "The location to search for platform providers.", 3 );
542                 append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
543                 append( sb, "", 0 );
544 
545                 append( sb, "providerLocation", 2 );
546                 append( sb, "The location to search for providers.", 3 );
547                 append( sb, "Expression: ${jomc.providerLocation}", 3 );
548                 append( sb, "", 0 );
549 
550                 append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
551                 append( sb, "Directory holding the reports of the project.", 3 );
552                 append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
553                 append( sb, "", 0 );
554 
555                 append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
556                 append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
557                 append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
558                 append( sb, "", 0 );
559 
560                 append( sb, "resourceProcessingEnabled (Default: true)", 2 );
561                 append( sb, "Controls processing of resource files.", 3 );
562                 append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
563                 append( sb, "", 0 );
564 
565                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
566                 append( sb, "Directory holding the session related files of the project.", 3 );
567                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
568                 append( sb, "", 0 );
569 
570                 append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
571                 append( sb, "Directory holding the source files of the project.", 3 );
572                 append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
573                 append( sb, "", 0 );
574 
575                 append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
576                 append( sb, "The encoding to use for reading and writing files.", 3 );
577                 append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
578                 append( sb, "", 0 );
579 
580                 append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
581                 append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
582                 append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
583                 append( sb, "", 0 );
584 
585                 append( sb, "sourceProcessingEnabled (Default: true)", 2 );
586                 append( sb, "Controls processing of source code files.", 3 );
587                 append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
588                 append( sb, "", 0 );
589 
590                 append( sb, "templateEncoding", 2 );
591                 append( sb, "The encoding to use for reading templates.\nDeprecated: As of JOMC 1.3, please use the \'defaultTemplateEncoding\' parameter. This parameter will be removed in version 2.0.\n", 3 );
592                 append( sb, "Expression: ${jomc.templateEncoding}", 3 );
593                 append( sb, "", 0 );
594 
595                 append( sb, "templateLocation", 2 );
596                 append( sb, "Location to search for templates in addition to searching the class path of the plugin.\nFirst an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a directory name relative to the base directory of the project. If that directory exists, that directory is used. If nothing is found at the given location, a warning message is logged.\n", 3 );
597                 append( sb, "Expression: ${jomc.templateLocation}", 3 );
598                 append( sb, "", 0 );
599 
600                 append( sb, "templateParameterResources", 2 );
601                 append( sb, "Template parameter resources.\n<templateParameterResources>\n\u00a0\u00a0<templateParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</templateParameterResource>\n</templateParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
602                 append( sb, "", 0 );
603 
604                 append( sb, "templateParameters", 2 );
605                 append( sb, "Template parameters.\n<templateParameters>\n\u00a0\u00a0<templateParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</templateParameter>\n</templateParameters>\n", 3 );
606                 append( sb, "", 0 );
607 
608                 append( sb, "templateProfile", 2 );
609                 append( sb, "The template profile to use when accessing templates.", 3 );
610                 append( sb, "Expression: ${jomc.templateProfile}", 3 );
611                 append( sb, "", 0 );
612 
613                 append( sb, "testClassesDirectory", 2 );
614                 append( sb, "Directory holding the compiled test class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'testOutputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
615                 append( sb, "", 0 );
616 
617                 append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
618                 append( sb, "Name of the test module to process.", 3 );
619                 append( sb, "Expression: ${jomc.testModuleName}", 3 );
620                 append( sb, "", 0 );
621 
622                 append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
623                 append( sb, "Test output directory of the project.", 3 );
624                 append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
625                 append( sb, "", 0 );
626 
627                 append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
628                 append( sb, "Directory holding the test source files of the project.", 3 );
629                 append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
630                 append( sb, "", 0 );
631 
632                 append( sb, "transformationOutputProperties", 2 );
633                 append( sb, "Global transformation output properties.\n<transformationOutputProperties>\n\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</transformationOutputProperty>\n</transformationOutputProperties>\n", 3 );
634                 append( sb, "", 0 );
635 
636                 append( sb, "transformationParameterResources", 2 );
637                 append( sb, "Global transformation parameter resources.\n<transformationParameterResources>\n\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</transformationParameterResource>\n</transformationParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
638                 append( sb, "", 0 );
639 
640                 append( sb, "transformationParameters", 2 );
641                 append( sb, "Global transformation parameters.\n<transformationParameters>\n\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</transformationParameter>\n</transformationParameters>\n", 3 );
642                 append( sb, "", 0 );
643 
644                 append( sb, "transformerLocation", 2 );
645                 append( sb, "The location to search for transformers.", 3 );
646                 append( sb, "Expression: ${jomc.transformerLocation}", 3 );
647                 append( sb, "", 0 );
648 
649                 append( sb, "velocityProperties", 2 );
650                 append( sb, "Velocity runtime properties.\n<velocityProperties>\n\u00a0\u00a0<velocityProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</velocityProperty>\n</velocityProperties>\n", 3 );
651                 append( sb, "", 0 );
652 
653                 append( sb, "velocityPropertyResources", 2 );
654                 append( sb, "Velocity runtime property resources.\n<velocityPropertyResources>\n\u00a0\u00a0<velocityPropertyResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</velocityPropertyResource>\n</velocityPropertyResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
655                 append( sb, "", 0 );
656 
657                 append( sb, "verbose (Default: false)", 2 );
658                 append( sb, "Controls verbosity of the plugin.", 3 );
659                 append( sb, "Expression: ${jomc.verbose}", 3 );
660                 append( sb, "", 0 );
661             }
662         }
663 
664         if ( goal == null || goal.length() <= 0 || "help".equals( goal ) )
665         {
666             append( sb, "jomc:help", 0 );
667             append( sb, "Display help information on maven-jomc-plugin.\nCall\n\u00a0\u00a0mvn\u00a0jomc:help\u00a0-Ddetail=true\u00a0-Dgoal=<goal-name>\nto display parameter details.", 1 );
668             append( sb, "", 0 );
669             if ( detail )
670             {
671                 append( sb, "Available parameters:", 1 );
672                 append( sb, "", 0 );
673 
674                 append( sb, "detail (Default: false)", 2 );
675                 append( sb, "If true, display all settable properties for each goal.", 3 );
676                 append( sb, "Expression: ${detail}", 3 );
677                 append( sb, "", 0 );
678 
679                 append( sb, "goal", 2 );
680                 append( sb, "The name of the goal for which to show help. If unspecified, all goals will be displayed.", 3 );
681                 append( sb, "Expression: ${goal}", 3 );
682                 append( sb, "", 0 );
683 
684                 append( sb, "indentSize (Default: 2)", 2 );
685                 append( sb, "The number of spaces per indentation level, should be positive.", 3 );
686                 append( sb, "Expression: ${indentSize}", 3 );
687                 append( sb, "", 0 );
688 
689                 append( sb, "lineLength (Default: 80)", 2 );
690                 append( sb, "The maximum length of a display line, should be positive.", 3 );
691                 append( sb, "Expression: ${lineLength}", 3 );
692                 append( sb, "", 0 );
693             }
694         }
695 
696         if ( goal == null || goal.length() <= 0 || "manage-main-sources".equals( goal ) )
697         {
698             append( sb, "jomc:manage-main-sources", 0 );
699             append( sb, "Manages a projects\' main source files.", 1 );
700             append( sb, "", 0 );
701             if ( detail )
702             {
703                 append( sb, "Available parameters:", 1 );
704                 append( sb, "", 0 );
705 
706                 append( sb, "classesDirectory", 2 );
707                 append( sb, "Directory holding the compiled class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'outputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
708                 append( sb, "", 0 );
709 
710                 append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
711                 append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
712                 append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
713                 append( sb, "", 0 );
714 
715                 append( sb, "classProcessingEnabled (Default: true)", 2 );
716                 append( sb, "Controls processing of class files.", 3 );
717                 append( sb, "Expression: ${jomc.classProcessing}", 3 );
718                 append( sb, "", 0 );
719 
720                 append( sb, "defaultTemplateEncoding", 2 );
721                 append( sb, "The encoding to use for reading templates.", 3 );
722                 append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
723                 append( sb, "", 0 );
724 
725                 append( sb, "defaultTemplateProfile", 2 );
726                 append( sb, "The default template profile to use when accessing templates.", 3 );
727                 append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
728                 append( sb, "", 0 );
729 
730                 append( sb, "indentation", 2 );
731                 append( sb, "The indentation string (\'\\t\' for tab).", 3 );
732                 append( sb, "Expression: ${jomc.indentation}", 3 );
733                 append( sb, "", 0 );
734 
735                 append( sb, "javaValidationEnabled (Default: true)", 2 );
736                 append( sb, "Flag controlling Java validation.", 3 );
737                 append( sb, "Expression: ${jomc.javaValidationEnabled}", 3 );
738                 append( sb, "", 0 );
739 
740                 append( sb, "lineSeparator", 2 );
741                 append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
742                 append( sb, "Expression: ${jomc.lineSeparator}", 3 );
743                 append( sb, "", 0 );
744 
745                 append( sb, "locale", 2 );
746                 append( sb, "The locale.\n<locale>\n\u00a0\u00a0<language>Lowercase\u00a0two-letter\u00a0ISO-639\u00a0code.</language>\n\u00a0\u00a0<country>Uppercase\u00a0two-letter\u00a0ISO-3166\u00a0code.</country>\n\u00a0\u00a0<variant>Vendor\u00a0and\u00a0browser\u00a0specific\u00a0code.</variant>\n</locale>\n", 3 );
747                 append( sb, "", 0 );
748 
749                 append( sb, "manageMainSourcesExecutionStrategy (Default: once-per-session)", 2 );
750                 append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
751                 append( sb, "Expression: ${jomc.manageMainSourcesExecutionStrategy}", 3 );
752                 append( sb, "", 0 );
753 
754                 append( sb, "model (Default: http://jomc.org/model)", 2 );
755                 append( sb, "The identifier of the model to process.", 3 );
756                 append( sb, "Expression: ${jomc.model}", 3 );
757                 append( sb, "", 0 );
758 
759                 append( sb, "modelContextAttributes", 2 );
760                 append( sb, "ModelContext attributes.\n<modelContextAttributes>\n\u00a0\u00a0<modelContextAttribute>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0attribute.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0attribute.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0attributes\'s\u00a0object.</type>\n\u00a0\u00a0</modelContextAttribute>\n</modelContextAttributes>\n", 3 );
761                 append( sb, "", 0 );
762 
763                 append( sb, "modelContextFactoryClassName", 2 );
764                 append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
765                 append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
766                 append( sb, "", 0 );
767 
768                 append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
769                 append( sb, "Controls model object class path resolution.", 3 );
770                 append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
771                 append( sb, "", 0 );
772 
773                 append( sb, "modelProcessingEnabled (Default: true)", 2 );
774                 append( sb, "Controls processing of models.", 3 );
775                 append( sb, "Expression: ${jomc.modelProcessing}", 3 );
776                 append( sb, "", 0 );
777 
778                 append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
779                 append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
780                 append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
781                 append( sb, "", 0 );
782 
783                 append( sb, "modletLocation", 2 );
784                 append( sb, "The location to search for modlets.", 3 );
785                 append( sb, "Expression: ${jomc.modletLocation}", 3 );
786                 append( sb, "", 0 );
787 
788                 append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
789                 append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
790                 append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
791                 append( sb, "", 0 );
792 
793                 append( sb, "modletSchemaSystemId", 2 );
794                 append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
795                 append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
796                 append( sb, "", 0 );
797 
798                 append( sb, "moduleLocation", 2 );
799                 append( sb, "The location to search for modules.", 3 );
800                 append( sb, "Expression: ${jomc.moduleLocation}", 3 );
801                 append( sb, "", 0 );
802 
803                 append( sb, "moduleName (Default: ${project.name})", 2 );
804                 append( sb, "Name of the module to process.", 3 );
805                 append( sb, "Expression: ${jomc.moduleName}", 3 );
806                 append( sb, "", 0 );
807 
808                 append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
809                 append( sb, "Output directory of the project.", 3 );
810                 append( sb, "Expression: ${jomc.outputDirectory}", 3 );
811                 append( sb, "", 0 );
812 
813                 append( sb, "platformProviderLocation", 2 );
814                 append( sb, "The location to search for platform providers.", 3 );
815                 append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
816                 append( sb, "", 0 );
817 
818                 append( sb, "providerLocation", 2 );
819                 append( sb, "The location to search for providers.", 3 );
820                 append( sb, "Expression: ${jomc.providerLocation}", 3 );
821                 append( sb, "", 0 );
822 
823                 append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
824                 append( sb, "Directory holding the reports of the project.", 3 );
825                 append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
826                 append( sb, "", 0 );
827 
828                 append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
829                 append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
830                 append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
831                 append( sb, "", 0 );
832 
833                 append( sb, "resourceProcessingEnabled (Default: true)", 2 );
834                 append( sb, "Controls processing of resource files.", 3 );
835                 append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
836                 append( sb, "", 0 );
837 
838                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
839                 append( sb, "Directory holding the session related files of the project.", 3 );
840                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
841                 append( sb, "", 0 );
842 
843                 append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
844                 append( sb, "Directory holding the source files of the project.", 3 );
845                 append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
846                 append( sb, "", 0 );
847 
848                 append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
849                 append( sb, "The encoding to use for reading and writing files.", 3 );
850                 append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
851                 append( sb, "", 0 );
852 
853                 append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
854                 append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
855                 append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
856                 append( sb, "", 0 );
857 
858                 append( sb, "sourceProcessingEnabled (Default: true)", 2 );
859                 append( sb, "Controls processing of source code files.", 3 );
860                 append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
861                 append( sb, "", 0 );
862 
863                 append( sb, "templateEncoding", 2 );
864                 append( sb, "The encoding to use for reading templates.\nDeprecated: As of JOMC 1.3, please use the \'defaultTemplateEncoding\' parameter. This parameter will be removed in version 2.0.\n", 3 );
865                 append( sb, "Expression: ${jomc.templateEncoding}", 3 );
866                 append( sb, "", 0 );
867 
868                 append( sb, "templateLocation", 2 );
869                 append( sb, "Location to search for templates in addition to searching the class path of the plugin.\nFirst an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a directory name relative to the base directory of the project. If that directory exists, that directory is used. If nothing is found at the given location, a warning message is logged.\n", 3 );
870                 append( sb, "Expression: ${jomc.templateLocation}", 3 );
871                 append( sb, "", 0 );
872 
873                 append( sb, "templateParameterResources", 2 );
874                 append( sb, "Template parameter resources.\n<templateParameterResources>\n\u00a0\u00a0<templateParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</templateParameterResource>\n</templateParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
875                 append( sb, "", 0 );
876 
877                 append( sb, "templateParameters", 2 );
878                 append( sb, "Template parameters.\n<templateParameters>\n\u00a0\u00a0<templateParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</templateParameter>\n</templateParameters>\n", 3 );
879                 append( sb, "", 0 );
880 
881                 append( sb, "templateProfile", 2 );
882                 append( sb, "The template profile to use when accessing templates.", 3 );
883                 append( sb, "Expression: ${jomc.templateProfile}", 3 );
884                 append( sb, "", 0 );
885 
886                 append( sb, "testClassesDirectory", 2 );
887                 append( sb, "Directory holding the compiled test class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'testOutputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
888                 append( sb, "", 0 );
889 
890                 append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
891                 append( sb, "Name of the test module to process.", 3 );
892                 append( sb, "Expression: ${jomc.testModuleName}", 3 );
893                 append( sb, "", 0 );
894 
895                 append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
896                 append( sb, "Test output directory of the project.", 3 );
897                 append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
898                 append( sb, "", 0 );
899 
900                 append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
901                 append( sb, "Directory holding the test source files of the project.", 3 );
902                 append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
903                 append( sb, "", 0 );
904 
905                 append( sb, "transformationOutputProperties", 2 );
906                 append( sb, "Global transformation output properties.\n<transformationOutputProperties>\n\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</transformationOutputProperty>\n</transformationOutputProperties>\n", 3 );
907                 append( sb, "", 0 );
908 
909                 append( sb, "transformationParameterResources", 2 );
910                 append( sb, "Global transformation parameter resources.\n<transformationParameterResources>\n\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</transformationParameterResource>\n</transformationParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
911                 append( sb, "", 0 );
912 
913                 append( sb, "transformationParameters", 2 );
914                 append( sb, "Global transformation parameters.\n<transformationParameters>\n\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</transformationParameter>\n</transformationParameters>\n", 3 );
915                 append( sb, "", 0 );
916 
917                 append( sb, "transformerLocation", 2 );
918                 append( sb, "The location to search for transformers.", 3 );
919                 append( sb, "Expression: ${jomc.transformerLocation}", 3 );
920                 append( sb, "", 0 );
921 
922                 append( sb, "velocityProperties", 2 );
923                 append( sb, "Velocity runtime properties.\n<velocityProperties>\n\u00a0\u00a0<velocityProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</velocityProperty>\n</velocityProperties>\n", 3 );
924                 append( sb, "", 0 );
925 
926                 append( sb, "velocityPropertyResources", 2 );
927                 append( sb, "Velocity runtime property resources.\n<velocityPropertyResources>\n\u00a0\u00a0<velocityPropertyResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</velocityPropertyResource>\n</velocityPropertyResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
928                 append( sb, "", 0 );
929 
930                 append( sb, "verbose (Default: false)", 2 );
931                 append( sb, "Controls verbosity of the plugin.", 3 );
932                 append( sb, "Expression: ${jomc.verbose}", 3 );
933                 append( sb, "", 0 );
934             }
935         }
936 
937         if ( goal == null || goal.length() <= 0 || "manage-test-sources".equals( goal ) )
938         {
939             append( sb, "jomc:manage-test-sources", 0 );
940             append( sb, "Manages a projects\' test source files.", 1 );
941             append( sb, "", 0 );
942             if ( detail )
943             {
944                 append( sb, "Available parameters:", 1 );
945                 append( sb, "", 0 );
946 
947                 append( sb, "classesDirectory", 2 );
948                 append( sb, "Directory holding the compiled class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'outputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
949                 append( sb, "", 0 );
950 
951                 append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
952                 append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
953                 append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
954                 append( sb, "", 0 );
955 
956                 append( sb, "classProcessingEnabled (Default: true)", 2 );
957                 append( sb, "Controls processing of class files.", 3 );
958                 append( sb, "Expression: ${jomc.classProcessing}", 3 );
959                 append( sb, "", 0 );
960 
961                 append( sb, "defaultTemplateEncoding", 2 );
962                 append( sb, "The encoding to use for reading templates.", 3 );
963                 append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
964                 append( sb, "", 0 );
965 
966                 append( sb, "defaultTemplateProfile", 2 );
967                 append( sb, "The default template profile to use when accessing templates.", 3 );
968                 append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
969                 append( sb, "", 0 );
970 
971                 append( sb, "indentation", 2 );
972                 append( sb, "The indentation string (\'\\t\' for tab).", 3 );
973                 append( sb, "Expression: ${jomc.indentation}", 3 );
974                 append( sb, "", 0 );
975 
976                 append( sb, "javaValidationEnabled (Default: true)", 2 );
977                 append( sb, "Flag controlling Java validation.", 3 );
978                 append( sb, "Expression: ${jomc.javaValidationEnabled}", 3 );
979                 append( sb, "", 0 );
980 
981                 append( sb, "lineSeparator", 2 );
982                 append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
983                 append( sb, "Expression: ${jomc.lineSeparator}", 3 );
984                 append( sb, "", 0 );
985 
986                 append( sb, "locale", 2 );
987                 append( sb, "The locale.\n<locale>\n\u00a0\u00a0<language>Lowercase\u00a0two-letter\u00a0ISO-639\u00a0code.</language>\n\u00a0\u00a0<country>Uppercase\u00a0two-letter\u00a0ISO-3166\u00a0code.</country>\n\u00a0\u00a0<variant>Vendor\u00a0and\u00a0browser\u00a0specific\u00a0code.</variant>\n</locale>\n", 3 );
988                 append( sb, "", 0 );
989 
990                 append( sb, "manageTestSourcesExecutionStrategy (Default: once-per-session)", 2 );
991                 append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
992                 append( sb, "Expression: ${jomc.manageTestSourcesExecutionStrategy}", 3 );
993                 append( sb, "", 0 );
994 
995                 append( sb, "model (Default: http://jomc.org/model)", 2 );
996                 append( sb, "The identifier of the model to process.", 3 );
997                 append( sb, "Expression: ${jomc.model}", 3 );
998                 append( sb, "", 0 );
999 
1000                 append( sb, "modelContextAttributes", 2 );
1001                 append( sb, "ModelContext attributes.\n<modelContextAttributes>\n\u00a0\u00a0<modelContextAttribute>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0attribute.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0attribute.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0attributes\'s\u00a0object.</type>\n\u00a0\u00a0</modelContextAttribute>\n</modelContextAttributes>\n", 3 );
1002                 append( sb, "", 0 );
1003 
1004                 append( sb, "modelContextFactoryClassName", 2 );
1005                 append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
1006                 append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
1007                 append( sb, "", 0 );
1008 
1009                 append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
1010                 append( sb, "Controls model object class path resolution.", 3 );
1011                 append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
1012                 append( sb, "", 0 );
1013 
1014                 append( sb, "modelProcessingEnabled (Default: true)", 2 );
1015                 append( sb, "Controls processing of models.", 3 );
1016                 append( sb, "Expression: ${jomc.modelProcessing}", 3 );
1017                 append( sb, "", 0 );
1018 
1019                 append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
1020                 append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
1021                 append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
1022                 append( sb, "", 0 );
1023 
1024                 append( sb, "modletLocation", 2 );
1025                 append( sb, "The location to search for modlets.", 3 );
1026                 append( sb, "Expression: ${jomc.modletLocation}", 3 );
1027                 append( sb, "", 0 );
1028 
1029                 append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
1030                 append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
1031                 append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
1032                 append( sb, "", 0 );
1033 
1034                 append( sb, "modletSchemaSystemId", 2 );
1035                 append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
1036                 append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
1037                 append( sb, "", 0 );
1038 
1039                 append( sb, "moduleLocation", 2 );
1040                 append( sb, "The location to search for modules.", 3 );
1041                 append( sb, "Expression: ${jomc.moduleLocation}", 3 );
1042                 append( sb, "", 0 );
1043 
1044                 append( sb, "moduleName (Default: ${project.name})", 2 );
1045                 append( sb, "Name of the module to process.", 3 );
1046                 append( sb, "Expression: ${jomc.moduleName}", 3 );
1047                 append( sb, "", 0 );
1048 
1049                 append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
1050                 append( sb, "Output directory of the project.", 3 );
1051                 append( sb, "Expression: ${jomc.outputDirectory}", 3 );
1052                 append( sb, "", 0 );
1053 
1054                 append( sb, "platformProviderLocation", 2 );
1055                 append( sb, "The location to search for platform providers.", 3 );
1056                 append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
1057                 append( sb, "", 0 );
1058 
1059                 append( sb, "providerLocation", 2 );
1060                 append( sb, "The location to search for providers.", 3 );
1061                 append( sb, "Expression: ${jomc.providerLocation}", 3 );
1062                 append( sb, "", 0 );
1063 
1064                 append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
1065                 append( sb, "Directory holding the reports of the project.", 3 );
1066                 append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
1067                 append( sb, "", 0 );
1068 
1069                 append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
1070                 append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
1071                 append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
1072                 append( sb, "", 0 );
1073 
1074                 append( sb, "resourceProcessingEnabled (Default: true)", 2 );
1075                 append( sb, "Controls processing of resource files.", 3 );
1076                 append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
1077                 append( sb, "", 0 );
1078 
1079                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
1080                 append( sb, "Directory holding the session related files of the project.", 3 );
1081                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
1082                 append( sb, "", 0 );
1083 
1084                 append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
1085                 append( sb, "Directory holding the source files of the project.", 3 );
1086                 append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
1087                 append( sb, "", 0 );
1088 
1089                 append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
1090                 append( sb, "The encoding to use for reading and writing files.", 3 );
1091                 append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
1092                 append( sb, "", 0 );
1093 
1094                 append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
1095                 append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
1096                 append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
1097                 append( sb, "", 0 );
1098 
1099                 append( sb, "sourceProcessingEnabled (Default: true)", 2 );
1100                 append( sb, "Controls processing of source code files.", 3 );
1101                 append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
1102                 append( sb, "", 0 );
1103 
1104                 append( sb, "templateEncoding", 2 );
1105                 append( sb, "The encoding to use for reading templates.\nDeprecated: As of JOMC 1.3, please use the \'defaultTemplateEncoding\' parameter. This parameter will be removed in version 2.0.\n", 3 );
1106                 append( sb, "Expression: ${jomc.templateEncoding}", 3 );
1107                 append( sb, "", 0 );
1108 
1109                 append( sb, "templateLocation", 2 );
1110                 append( sb, "Location to search for templates in addition to searching the class path of the plugin.\nFirst an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a directory name relative to the base directory of the project. If that directory exists, that directory is used. If nothing is found at the given location, a warning message is logged.\n", 3 );
1111                 append( sb, "Expression: ${jomc.templateLocation}", 3 );
1112                 append( sb, "", 0 );
1113 
1114                 append( sb, "templateParameterResources", 2 );
1115                 append( sb, "Template parameter resources.\n<templateParameterResources>\n\u00a0\u00a0<templateParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</templateParameterResource>\n</templateParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
1116                 append( sb, "", 0 );
1117 
1118                 append( sb, "templateParameters", 2 );
1119                 append( sb, "Template parameters.\n<templateParameters>\n\u00a0\u00a0<templateParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</templateParameter>\n</templateParameters>\n", 3 );
1120                 append( sb, "", 0 );
1121 
1122                 append( sb, "templateProfile", 2 );
1123                 append( sb, "The template profile to use when accessing templates.", 3 );
1124                 append( sb, "Expression: ${jomc.templateProfile}", 3 );
1125                 append( sb, "", 0 );
1126 
1127                 append( sb, "testClassesDirectory", 2 );
1128                 append( sb, "Directory holding the compiled test class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'testOutputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
1129                 append( sb, "", 0 );
1130 
1131                 append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
1132                 append( sb, "Name of the test module to process.", 3 );
1133                 append( sb, "Expression: ${jomc.testModuleName}", 3 );
1134                 append( sb, "", 0 );
1135 
1136                 append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
1137                 append( sb, "Test output directory of the project.", 3 );
1138                 append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
1139                 append( sb, "", 0 );
1140 
1141                 append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
1142                 append( sb, "Directory holding the test source files of the project.", 3 );
1143                 append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
1144                 append( sb, "", 0 );
1145 
1146                 append( sb, "transformationOutputProperties", 2 );
1147                 append( sb, "Global transformation output properties.\n<transformationOutputProperties>\n\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</transformationOutputProperty>\n</transformationOutputProperties>\n", 3 );
1148                 append( sb, "", 0 );
1149 
1150                 append( sb, "transformationParameterResources", 2 );
1151                 append( sb, "Global transformation parameter resources.\n<transformationParameterResources>\n\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</transformationParameterResource>\n</transformationParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
1152                 append( sb, "", 0 );
1153 
1154                 append( sb, "transformationParameters", 2 );
1155                 append( sb, "Global transformation parameters.\n<transformationParameters>\n\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</transformationParameter>\n</transformationParameters>\n", 3 );
1156                 append( sb, "", 0 );
1157 
1158                 append( sb, "transformerLocation", 2 );
1159                 append( sb, "The location to search for transformers.", 3 );
1160                 append( sb, "Expression: ${jomc.transformerLocation}", 3 );
1161                 append( sb, "", 0 );
1162 
1163                 append( sb, "velocityProperties", 2 );
1164                 append( sb, "Velocity runtime properties.\n<velocityProperties>\n\u00a0\u00a0<velocityProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</velocityProperty>\n</velocityProperties>\n", 3 );
1165                 append( sb, "", 0 );
1166 
1167                 append( sb, "velocityPropertyResources", 2 );
1168                 append( sb, "Velocity runtime property resources.\n<velocityPropertyResources>\n\u00a0\u00a0<velocityPropertyResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</velocityPropertyResource>\n</velocityPropertyResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
1169                 append( sb, "", 0 );
1170 
1171                 append( sb, "verbose (Default: false)", 2 );
1172                 append( sb, "Controls verbosity of the plugin.", 3 );
1173                 append( sb, "Expression: ${jomc.verbose}", 3 );
1174                 append( sb, "", 0 );
1175             }
1176         }
1177 
1178         if ( goal == null || goal.length() <= 0 || "show-main-instance".equals( goal ) )
1179         {
1180             append( sb, "jomc:show-main-instance", 0 );
1181             append( sb, "Displays a project\'s main instance.", 1 );
1182             append( sb, "", 0 );
1183             if ( detail )
1184             {
1185                 append( sb, "Available parameters:", 1 );
1186                 append( sb, "", 0 );
1187 
1188                 append( sb, "classesDirectory", 2 );
1189                 append( sb, "Directory holding the compiled class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'outputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
1190                 append( sb, "", 0 );
1191 
1192                 append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
1193                 append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
1194                 append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
1195                 append( sb, "", 0 );
1196 
1197                 append( sb, "classProcessingEnabled (Default: true)", 2 );
1198                 append( sb, "Controls processing of class files.", 3 );
1199                 append( sb, "Expression: ${jomc.classProcessing}", 3 );
1200                 append( sb, "", 0 );
1201 
1202                 append( sb, "defaultTemplateEncoding", 2 );
1203                 append( sb, "The encoding to use for reading templates.", 3 );
1204                 append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
1205                 append( sb, "", 0 );
1206 
1207                 append( sb, "defaultTemplateProfile", 2 );
1208                 append( sb, "The default template profile to use when accessing templates.", 3 );
1209                 append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
1210                 append( sb, "", 0 );
1211 
1212                 append( sb, "document", 2 );
1213                 append( sb, "File to write the model to.", 3 );
1214                 append( sb, "Expression: ${jomc.document}", 3 );
1215                 append( sb, "", 0 );
1216 
1217                 append( sb, "documentEncoding (Default: ${project.build.sourceEncoding})", 2 );
1218                 append( sb, "Encoding of the document to write.", 3 );
1219                 append( sb, "Expression: ${jomc.documentEncoding}", 3 );
1220                 append( sb, "", 0 );
1221 
1222                 append( sb, "identifier", 2 );
1223                 append( sb, "Identifier of the instance to show.", 3 );
1224                 append( sb, "Required: Yes", 3 );
1225                 append( sb, "Expression: ${jomc.identifier}", 3 );
1226                 append( sb, "", 0 );
1227 
1228                 append( sb, "indentation", 2 );
1229                 append( sb, "The indentation string (\'\\t\' for tab).", 3 );
1230                 append( sb, "Expression: ${jomc.indentation}", 3 );
1231                 append( sb, "", 0 );
1232 
1233                 append( sb, "javaValidationEnabled (Default: true)", 2 );
1234                 append( sb, "Flag controlling Java validation.", 3 );
1235                 append( sb, "Expression: ${jomc.javaValidationEnabled}", 3 );
1236                 append( sb, "", 0 );
1237 
1238                 append( sb, "lineSeparator", 2 );
1239                 append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
1240                 append( sb, "Expression: ${jomc.lineSeparator}", 3 );
1241                 append( sb, "", 0 );
1242 
1243                 append( sb, "locale", 2 );
1244                 append( sb, "The locale.\n<locale>\n\u00a0\u00a0<language>Lowercase\u00a0two-letter\u00a0ISO-639\u00a0code.</language>\n\u00a0\u00a0<country>Uppercase\u00a0two-letter\u00a0ISO-3166\u00a0code.</country>\n\u00a0\u00a0<variant>Vendor\u00a0and\u00a0browser\u00a0specific\u00a0code.</variant>\n</locale>\n", 3 );
1245                 append( sb, "", 0 );
1246 
1247                 append( sb, "model (Default: http://jomc.org/model)", 2 );
1248                 append( sb, "The identifier of the model to process.", 3 );
1249                 append( sb, "Expression: ${jomc.model}", 3 );
1250                 append( sb, "", 0 );
1251 
1252                 append( sb, "modelContextAttributes", 2 );
1253                 append( sb, "ModelContext attributes.\n<modelContextAttributes>\n\u00a0\u00a0<modelContextAttribute>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0attribute.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0attribute.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0attributes\'s\u00a0object.</type>\n\u00a0\u00a0</modelContextAttribute>\n</modelContextAttributes>\n", 3 );
1254                 append( sb, "", 0 );
1255 
1256                 append( sb, "modelContextFactoryClassName", 2 );
1257                 append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
1258                 append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
1259                 append( sb, "", 0 );
1260 
1261                 append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
1262                 append( sb, "Controls model object class path resolution.", 3 );
1263                 append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
1264                 append( sb, "", 0 );
1265 
1266                 append( sb, "modelProcessingEnabled (Default: true)", 2 );
1267                 append( sb, "Controls processing of models.", 3 );
1268                 append( sb, "Expression: ${jomc.modelProcessing}", 3 );
1269                 append( sb, "", 0 );
1270 
1271                 append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
1272                 append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
1273                 append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
1274                 append( sb, "", 0 );
1275 
1276                 append( sb, "modletLocation", 2 );
1277                 append( sb, "The location to search for modlets.", 3 );
1278                 append( sb, "Expression: ${jomc.modletLocation}", 3 );
1279                 append( sb, "", 0 );
1280 
1281                 append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
1282                 append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
1283                 append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
1284                 append( sb, "", 0 );
1285 
1286                 append( sb, "modletSchemaSystemId", 2 );
1287                 append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
1288                 append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
1289                 append( sb, "", 0 );
1290 
1291                 append( sb, "moduleLocation", 2 );
1292                 append( sb, "The location to search for modules.", 3 );
1293                 append( sb, "Expression: ${jomc.moduleLocation}", 3 );
1294                 append( sb, "", 0 );
1295 
1296                 append( sb, "moduleName (Default: ${project.name})", 2 );
1297                 append( sb, "Name of the module to process.", 3 );
1298                 append( sb, "Expression: ${jomc.moduleName}", 3 );
1299                 append( sb, "", 0 );
1300 
1301                 append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
1302                 append( sb, "Output directory of the project.", 3 );
1303                 append( sb, "Expression: ${jomc.outputDirectory}", 3 );
1304                 append( sb, "", 0 );
1305 
1306                 append( sb, "platformProviderLocation", 2 );
1307                 append( sb, "The location to search for platform providers.", 3 );
1308                 append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
1309                 append( sb, "", 0 );
1310 
1311                 append( sb, "providerLocation", 2 );
1312                 append( sb, "The location to search for providers.", 3 );
1313                 append( sb, "Expression: ${jomc.providerLocation}", 3 );
1314                 append( sb, "", 0 );
1315 
1316                 append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
1317                 append( sb, "Directory holding the reports of the project.", 3 );
1318                 append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
1319                 append( sb, "", 0 );
1320 
1321                 append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
1322                 append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
1323                 append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
1324                 append( sb, "", 0 );
1325 
1326                 append( sb, "resourceProcessingEnabled (Default: true)", 2 );
1327                 append( sb, "Controls processing of resource files.", 3 );
1328                 append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
1329                 append( sb, "", 0 );
1330 
1331                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
1332                 append( sb, "Directory holding the session related files of the project.", 3 );
1333                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
1334                 append( sb, "", 0 );
1335 
1336                 append( sb, "showMainInstanceExecutionStrategy (Default: once-per-session)", 2 );
1337                 append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
1338                 append( sb, "Expression: ${jomc.showMainInstanceExecutionStrategy}", 3 );
1339                 append( sb, "", 0 );
1340 
1341                 append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
1342                 append( sb, "Directory holding the source files of the project.", 3 );
1343                 append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
1344                 append( sb, "", 0 );
1345 
1346                 append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
1347                 append( sb, "The encoding to use for reading and writing files.", 3 );
1348                 append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
1349                 append( sb, "", 0 );
1350 
1351                 append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
1352                 append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
1353                 append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
1354                 append( sb, "", 0 );
1355 
1356                 append( sb, "sourceProcessingEnabled (Default: true)", 2 );
1357                 append( sb, "Controls processing of source code files.", 3 );
1358                 append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
1359                 append( sb, "", 0 );
1360 
1361                 append( sb, "templateEncoding", 2 );
1362                 append( sb, "The encoding to use for reading templates.\nDeprecated: As of JOMC 1.3, please use the \'defaultTemplateEncoding\' parameter. This parameter will be removed in version 2.0.\n", 3 );
1363                 append( sb, "Expression: ${jomc.templateEncoding}", 3 );
1364                 append( sb, "", 0 );
1365 
1366                 append( sb, "templateLocation", 2 );
1367                 append( sb, "Location to search for templates in addition to searching the class path of the plugin.\nFirst an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a directory name relative to the base directory of the project. If that directory exists, that directory is used. If nothing is found at the given location, a warning message is logged.\n", 3 );
1368                 append( sb, "Expression: ${jomc.templateLocation}", 3 );
1369                 append( sb, "", 0 );
1370 
1371                 append( sb, "templateParameterResources", 2 );
1372                 append( sb, "Template parameter resources.\n<templateParameterResources>\n\u00a0\u00a0<templateParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</templateParameterResource>\n</templateParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
1373                 append( sb, "", 0 );
1374 
1375                 append( sb, "templateParameters", 2 );
1376                 append( sb, "Template parameters.\n<templateParameters>\n\u00a0\u00a0<templateParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</templateParameter>\n</templateParameters>\n", 3 );
1377                 append( sb, "", 0 );
1378 
1379                 append( sb, "templateProfile", 2 );
1380                 append( sb, "The template profile to use when accessing templates.", 3 );
1381                 append( sb, "Expression: ${jomc.templateProfile}", 3 );
1382                 append( sb, "", 0 );
1383 
1384                 append( sb, "testClassesDirectory", 2 );
1385                 append( sb, "Directory holding the compiled test class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'testOutputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
1386                 append( sb, "", 0 );
1387 
1388                 append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
1389                 append( sb, "Name of the test module to process.", 3 );
1390                 append( sb, "Expression: ${jomc.testModuleName}", 3 );
1391                 append( sb, "", 0 );
1392 
1393                 append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
1394                 append( sb, "Test output directory of the project.", 3 );
1395                 append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
1396                 append( sb, "", 0 );
1397 
1398                 append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
1399                 append( sb, "Directory holding the test source files of the project.", 3 );
1400                 append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
1401                 append( sb, "", 0 );
1402 
1403                 append( sb, "transformationOutputProperties", 2 );
1404                 append( sb, "Global transformation output properties.\n<transformationOutputProperties>\n\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</transformationOutputProperty>\n</transformationOutputProperties>\n", 3 );
1405                 append( sb, "", 0 );
1406 
1407                 append( sb, "transformationParameterResources", 2 );
1408                 append( sb, "Global transformation parameter resources.\n<transformationParameterResources>\n\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</transformationParameterResource>\n</transformationParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
1409                 append( sb, "", 0 );
1410 
1411                 append( sb, "transformationParameters", 2 );
1412                 append( sb, "Global transformation parameters.\n<transformationParameters>\n\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</transformationParameter>\n</transformationParameters>\n", 3 );
1413                 append( sb, "", 0 );
1414 
1415                 append( sb, "transformerLocation", 2 );
1416                 append( sb, "The location to search for transformers.", 3 );
1417                 append( sb, "Expression: ${jomc.transformerLocation}", 3 );
1418                 append( sb, "", 0 );
1419 
1420                 append( sb, "velocityProperties", 2 );
1421                 append( sb, "Velocity runtime properties.\n<velocityProperties>\n\u00a0\u00a0<velocityProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</velocityProperty>\n</velocityProperties>\n", 3 );
1422                 append( sb, "", 0 );
1423 
1424                 append( sb, "velocityPropertyResources", 2 );
1425                 append( sb, "Velocity runtime property resources.\n<velocityPropertyResources>\n\u00a0\u00a0<velocityPropertyResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</velocityPropertyResource>\n</velocityPropertyResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
1426                 append( sb, "", 0 );
1427 
1428                 append( sb, "verbose (Default: false)", 2 );
1429                 append( sb, "Controls verbosity of the plugin.", 3 );
1430                 append( sb, "Expression: ${jomc.verbose}", 3 );
1431                 append( sb, "", 0 );
1432             }
1433         }
1434 
1435         if ( goal == null || goal.length() <= 0 || "show-main-model".equals( goal ) )
1436         {
1437             append( sb, "jomc:show-main-model", 0 );
1438             append( sb, "Displays a project\'s main model.", 1 );
1439             append( sb, "", 0 );
1440             if ( detail )
1441             {
1442                 append( sb, "Available parameters:", 1 );
1443                 append( sb, "", 0 );
1444 
1445                 append( sb, "classesDirectory", 2 );
1446                 append( sb, "Directory holding the compiled class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'outputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
1447                 append( sb, "", 0 );
1448 
1449                 append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
1450                 append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
1451                 append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
1452                 append( sb, "", 0 );
1453 
1454                 append( sb, "classProcessingEnabled (Default: true)", 2 );
1455                 append( sb, "Controls processing of class files.", 3 );
1456                 append( sb, "Expression: ${jomc.classProcessing}", 3 );
1457                 append( sb, "", 0 );
1458 
1459                 append( sb, "defaultTemplateEncoding", 2 );
1460                 append( sb, "The encoding to use for reading templates.", 3 );
1461                 append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
1462                 append( sb, "", 0 );
1463 
1464                 append( sb, "defaultTemplateProfile", 2 );
1465                 append( sb, "The default template profile to use when accessing templates.", 3 );
1466                 append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
1467                 append( sb, "", 0 );
1468 
1469                 append( sb, "document", 2 );
1470                 append( sb, "File to write the model to.", 3 );
1471                 append( sb, "Expression: ${jomc.document}", 3 );
1472                 append( sb, "", 0 );
1473 
1474                 append( sb, "documentEncoding (Default: ${project.build.sourceEncoding})", 2 );
1475                 append( sb, "Encoding of the document to write.", 3 );
1476                 append( sb, "Expression: ${jomc.documentEncoding}", 3 );
1477                 append( sb, "", 0 );
1478 
1479                 append( sb, "indentation", 2 );
1480                 append( sb, "The indentation string (\'\\t\' for tab).", 3 );
1481                 append( sb, "Expression: ${jomc.indentation}", 3 );
1482                 append( sb, "", 0 );
1483 
1484                 append( sb, "javaValidationEnabled (Default: true)", 2 );
1485                 append( sb, "Flag controlling Java validation.", 3 );
1486                 append( sb, "Expression: ${jomc.javaValidationEnabled}", 3 );
1487                 append( sb, "", 0 );
1488 
1489                 append( sb, "lineSeparator", 2 );
1490                 append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
1491                 append( sb, "Expression: ${jomc.lineSeparator}", 3 );
1492                 append( sb, "", 0 );
1493 
1494                 append( sb, "locale", 2 );
1495                 append( sb, "The locale.\n<locale>\n\u00a0\u00a0<language>Lowercase\u00a0two-letter\u00a0ISO-639\u00a0code.</language>\n\u00a0\u00a0<country>Uppercase\u00a0two-letter\u00a0ISO-3166\u00a0code.</country>\n\u00a0\u00a0<variant>Vendor\u00a0and\u00a0browser\u00a0specific\u00a0code.</variant>\n</locale>\n", 3 );
1496                 append( sb, "", 0 );
1497 
1498                 append( sb, "model (Default: http://jomc.org/model)", 2 );
1499                 append( sb, "The identifier of the model to process.", 3 );
1500                 append( sb, "Expression: ${jomc.model}", 3 );
1501                 append( sb, "", 0 );
1502 
1503                 append( sb, "modelContextAttributes", 2 );
1504                 append( sb, "ModelContext attributes.\n<modelContextAttributes>\n\u00a0\u00a0<modelContextAttribute>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0attribute.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0attribute.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0attributes\'s\u00a0object.</type>\n\u00a0\u00a0</modelContextAttribute>\n</modelContextAttributes>\n", 3 );
1505                 append( sb, "", 0 );
1506 
1507                 append( sb, "modelContextFactoryClassName", 2 );
1508                 append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
1509                 append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
1510                 append( sb, "", 0 );
1511 
1512                 append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
1513                 append( sb, "Controls model object class path resolution.", 3 );
1514                 append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
1515                 append( sb, "", 0 );
1516 
1517                 append( sb, "modelProcessingEnabled (Default: true)", 2 );
1518                 append( sb, "Controls processing of models.", 3 );
1519                 append( sb, "Expression: ${jomc.modelProcessing}", 3 );
1520                 append( sb, "", 0 );
1521 
1522                 append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
1523                 append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
1524                 append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
1525                 append( sb, "", 0 );
1526 
1527                 append( sb, "modletLocation", 2 );
1528                 append( sb, "The location to search for modlets.", 3 );
1529                 append( sb, "Expression: ${jomc.modletLocation}", 3 );
1530                 append( sb, "", 0 );
1531 
1532                 append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
1533                 append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
1534                 append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
1535                 append( sb, "", 0 );
1536 
1537                 append( sb, "modletSchemaSystemId", 2 );
1538                 append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
1539                 append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
1540                 append( sb, "", 0 );
1541 
1542                 append( sb, "moduleLocation", 2 );
1543                 append( sb, "The location to search for modules.", 3 );
1544                 append( sb, "Expression: ${jomc.moduleLocation}", 3 );
1545                 append( sb, "", 0 );
1546 
1547                 append( sb, "moduleName (Default: ${project.name})", 2 );
1548                 append( sb, "Name of the module to process.", 3 );
1549                 append( sb, "Expression: ${jomc.moduleName}", 3 );
1550                 append( sb, "", 0 );
1551 
1552                 append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
1553                 append( sb, "Output directory of the project.", 3 );
1554                 append( sb, "Expression: ${jomc.outputDirectory}", 3 );
1555                 append( sb, "", 0 );
1556 
1557                 append( sb, "platformProviderLocation", 2 );
1558                 append( sb, "The location to search for platform providers.", 3 );
1559                 append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
1560                 append( sb, "", 0 );
1561 
1562                 append( sb, "providerLocation", 2 );
1563                 append( sb, "The location to search for providers.", 3 );
1564                 append( sb, "Expression: ${jomc.providerLocation}", 3 );
1565                 append( sb, "", 0 );
1566 
1567                 append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
1568                 append( sb, "Directory holding the reports of the project.", 3 );
1569                 append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
1570                 append( sb, "", 0 );
1571 
1572                 append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
1573                 append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
1574                 append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
1575                 append( sb, "", 0 );
1576 
1577                 append( sb, "resourceProcessingEnabled (Default: true)", 2 );
1578                 append( sb, "Controls processing of resource files.", 3 );
1579                 append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
1580                 append( sb, "", 0 );
1581 
1582                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
1583                 append( sb, "Directory holding the session related files of the project.", 3 );
1584                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
1585                 append( sb, "", 0 );
1586 
1587                 append( sb, "showMainModelExecutionStrategy (Default: once-per-session)", 2 );
1588                 append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
1589                 append( sb, "Expression: ${jomc.showMainModelExecutionStrategy}", 3 );
1590                 append( sb, "", 0 );
1591 
1592                 append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
1593                 append( sb, "Directory holding the source files of the project.", 3 );
1594                 append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
1595                 append( sb, "", 0 );
1596 
1597                 append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
1598                 append( sb, "The encoding to use for reading and writing files.", 3 );
1599                 append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
1600                 append( sb, "", 0 );
1601 
1602                 append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
1603                 append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
1604                 append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
1605                 append( sb, "", 0 );
1606 
1607                 append( sb, "sourceProcessingEnabled (Default: true)", 2 );
1608                 append( sb, "Controls processing of source code files.", 3 );
1609                 append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
1610                 append( sb, "", 0 );
1611 
1612                 append( sb, "templateEncoding", 2 );
1613                 append( sb, "The encoding to use for reading templates.\nDeprecated: As of JOMC 1.3, please use the \'defaultTemplateEncoding\' parameter. This parameter will be removed in version 2.0.\n", 3 );
1614                 append( sb, "Expression: ${jomc.templateEncoding}", 3 );
1615                 append( sb, "", 0 );
1616 
1617                 append( sb, "templateLocation", 2 );
1618                 append( sb, "Location to search for templates in addition to searching the class path of the plugin.\nFirst an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a directory name relative to the base directory of the project. If that directory exists, that directory is used. If nothing is found at the given location, a warning message is logged.\n", 3 );
1619                 append( sb, "Expression: ${jomc.templateLocation}", 3 );
1620                 append( sb, "", 0 );
1621 
1622                 append( sb, "templateParameterResources", 2 );
1623                 append( sb, "Template parameter resources.\n<templateParameterResources>\n\u00a0\u00a0<templateParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</templateParameterResource>\n</templateParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
1624                 append( sb, "", 0 );
1625 
1626                 append( sb, "templateParameters", 2 );
1627                 append( sb, "Template parameters.\n<templateParameters>\n\u00a0\u00a0<templateParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</templateParameter>\n</templateParameters>\n", 3 );
1628                 append( sb, "", 0 );
1629 
1630                 append( sb, "templateProfile", 2 );
1631                 append( sb, "The template profile to use when accessing templates.", 3 );
1632                 append( sb, "Expression: ${jomc.templateProfile}", 3 );
1633                 append( sb, "", 0 );
1634 
1635                 append( sb, "testClassesDirectory", 2 );
1636                 append( sb, "Directory holding the compiled test class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'testOutputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
1637                 append( sb, "", 0 );
1638 
1639                 append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
1640                 append( sb, "Name of the test module to process.", 3 );
1641                 append( sb, "Expression: ${jomc.testModuleName}", 3 );
1642                 append( sb, "", 0 );
1643 
1644                 append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
1645                 append( sb, "Test output directory of the project.", 3 );
1646                 append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
1647                 append( sb, "", 0 );
1648 
1649                 append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
1650                 append( sb, "Directory holding the test source files of the project.", 3 );
1651                 append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
1652                 append( sb, "", 0 );
1653 
1654                 append( sb, "transformationOutputProperties", 2 );
1655                 append( sb, "Global transformation output properties.\n<transformationOutputProperties>\n\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</transformationOutputProperty>\n</transformationOutputProperties>\n", 3 );
1656                 append( sb, "", 0 );
1657 
1658                 append( sb, "transformationParameterResources", 2 );
1659                 append( sb, "Global transformation parameter resources.\n<transformationParameterResources>\n\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</transformationParameterResource>\n</transformationParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
1660                 append( sb, "", 0 );
1661 
1662                 append( sb, "transformationParameters", 2 );
1663                 append( sb, "Global transformation parameters.\n<transformationParameters>\n\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</transformationParameter>\n</transformationParameters>\n", 3 );
1664                 append( sb, "", 0 );
1665 
1666                 append( sb, "transformerLocation", 2 );
1667                 append( sb, "The location to search for transformers.", 3 );
1668                 append( sb, "Expression: ${jomc.transformerLocation}", 3 );
1669                 append( sb, "", 0 );
1670 
1671                 append( sb, "velocityProperties", 2 );
1672                 append( sb, "Velocity runtime properties.\n<velocityProperties>\n\u00a0\u00a0<velocityProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</velocityProperty>\n</velocityProperties>\n", 3 );
1673                 append( sb, "", 0 );
1674 
1675                 append( sb, "velocityPropertyResources", 2 );
1676                 append( sb, "Velocity runtime property resources.\n<velocityPropertyResources>\n\u00a0\u00a0<velocityPropertyResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</velocityPropertyResource>\n</velocityPropertyResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
1677                 append( sb, "", 0 );
1678 
1679                 append( sb, "verbose (Default: false)", 2 );
1680                 append( sb, "Controls verbosity of the plugin.", 3 );
1681                 append( sb, "Expression: ${jomc.verbose}", 3 );
1682                 append( sb, "", 0 );
1683             }
1684         }
1685 
1686         if ( goal == null || goal.length() <= 0 || "show-main-specification".equals( goal ) )
1687         {
1688             append( sb, "jomc:show-main-specification", 0 );
1689             append( sb, "Displays a project\'s main specification.", 1 );
1690             append( sb, "", 0 );
1691             if ( detail )
1692             {
1693                 append( sb, "Available parameters:", 1 );
1694                 append( sb, "", 0 );
1695 
1696                 append( sb, "classesDirectory", 2 );
1697                 append( sb, "Directory holding the compiled class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'outputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
1698                 append( sb, "", 0 );
1699 
1700                 append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
1701                 append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
1702                 append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
1703                 append( sb, "", 0 );
1704 
1705                 append( sb, "classProcessingEnabled (Default: true)", 2 );
1706                 append( sb, "Controls processing of class files.", 3 );
1707                 append( sb, "Expression: ${jomc.classProcessing}", 3 );
1708                 append( sb, "", 0 );
1709 
1710                 append( sb, "defaultTemplateEncoding", 2 );
1711                 append( sb, "The encoding to use for reading templates.", 3 );
1712                 append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
1713                 append( sb, "", 0 );
1714 
1715                 append( sb, "defaultTemplateProfile", 2 );
1716                 append( sb, "The default template profile to use when accessing templates.", 3 );
1717                 append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
1718                 append( sb, "", 0 );
1719 
1720                 append( sb, "document", 2 );
1721                 append( sb, "File to write the model to.", 3 );
1722                 append( sb, "Expression: ${jomc.document}", 3 );
1723                 append( sb, "", 0 );
1724 
1725                 append( sb, "documentEncoding (Default: ${project.build.sourceEncoding})", 2 );
1726                 append( sb, "Encoding of the document to write.", 3 );
1727                 append( sb, "Expression: ${jomc.documentEncoding}", 3 );
1728                 append( sb, "", 0 );
1729 
1730                 append( sb, "identifier", 2 );
1731                 append( sb, "Identifier of the specification to show.", 3 );
1732                 append( sb, "Required: Yes", 3 );
1733                 append( sb, "Expression: ${jomc.identifier}", 3 );
1734                 append( sb, "", 0 );
1735 
1736                 append( sb, "indentation", 2 );
1737                 append( sb, "The indentation string (\'\\t\' for tab).", 3 );
1738                 append( sb, "Expression: ${jomc.indentation}", 3 );
1739                 append( sb, "", 0 );
1740 
1741                 append( sb, "javaValidationEnabled (Default: true)", 2 );
1742                 append( sb, "Flag controlling Java validation.", 3 );
1743                 append( sb, "Expression: ${jomc.javaValidationEnabled}", 3 );
1744                 append( sb, "", 0 );
1745 
1746                 append( sb, "lineSeparator", 2 );
1747                 append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
1748                 append( sb, "Expression: ${jomc.lineSeparator}", 3 );
1749                 append( sb, "", 0 );
1750 
1751                 append( sb, "locale", 2 );
1752                 append( sb, "The locale.\n<locale>\n\u00a0\u00a0<language>Lowercase\u00a0two-letter\u00a0ISO-639\u00a0code.</language>\n\u00a0\u00a0<country>Uppercase\u00a0two-letter\u00a0ISO-3166\u00a0code.</country>\n\u00a0\u00a0<variant>Vendor\u00a0and\u00a0browser\u00a0specific\u00a0code.</variant>\n</locale>\n", 3 );
1753                 append( sb, "", 0 );
1754 
1755                 append( sb, "model (Default: http://jomc.org/model)", 2 );
1756                 append( sb, "The identifier of the model to process.", 3 );
1757                 append( sb, "Expression: ${jomc.model}", 3 );
1758                 append( sb, "", 0 );
1759 
1760                 append( sb, "modelContextAttributes", 2 );
1761                 append( sb, "ModelContext attributes.\n<modelContextAttributes>\n\u00a0\u00a0<modelContextAttribute>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0attribute.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0attribute.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0attributes\'s\u00a0object.</type>\n\u00a0\u00a0</modelContextAttribute>\n</modelContextAttributes>\n", 3 );
1762                 append( sb, "", 0 );
1763 
1764                 append( sb, "modelContextFactoryClassName", 2 );
1765                 append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
1766                 append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
1767                 append( sb, "", 0 );
1768 
1769                 append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
1770                 append( sb, "Controls model object class path resolution.", 3 );
1771                 append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
1772                 append( sb, "", 0 );
1773 
1774                 append( sb, "modelProcessingEnabled (Default: true)", 2 );
1775                 append( sb, "Controls processing of models.", 3 );
1776                 append( sb, "Expression: ${jomc.modelProcessing}", 3 );
1777                 append( sb, "", 0 );
1778 
1779                 append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
1780                 append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
1781                 append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
1782                 append( sb, "", 0 );
1783 
1784                 append( sb, "modletLocation", 2 );
1785                 append( sb, "The location to search for modlets.", 3 );
1786                 append( sb, "Expression: ${jomc.modletLocation}", 3 );
1787                 append( sb, "", 0 );
1788 
1789                 append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
1790                 append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
1791                 append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
1792                 append( sb, "", 0 );
1793 
1794                 append( sb, "modletSchemaSystemId", 2 );
1795                 append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
1796                 append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
1797                 append( sb, "", 0 );
1798 
1799                 append( sb, "moduleLocation", 2 );
1800                 append( sb, "The location to search for modules.", 3 );
1801                 append( sb, "Expression: ${jomc.moduleLocation}", 3 );
1802                 append( sb, "", 0 );
1803 
1804                 append( sb, "moduleName (Default: ${project.name})", 2 );
1805                 append( sb, "Name of the module to process.", 3 );
1806                 append( sb, "Expression: ${jomc.moduleName}", 3 );
1807                 append( sb, "", 0 );
1808 
1809                 append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
1810                 append( sb, "Output directory of the project.", 3 );
1811                 append( sb, "Expression: ${jomc.outputDirectory}", 3 );
1812                 append( sb, "", 0 );
1813 
1814                 append( sb, "platformProviderLocation", 2 );
1815                 append( sb, "The location to search for platform providers.", 3 );
1816                 append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
1817                 append( sb, "", 0 );
1818 
1819                 append( sb, "providerLocation", 2 );
1820                 append( sb, "The location to search for providers.", 3 );
1821                 append( sb, "Expression: ${jomc.providerLocation}", 3 );
1822                 append( sb, "", 0 );
1823 
1824                 append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
1825                 append( sb, "Directory holding the reports of the project.", 3 );
1826                 append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
1827                 append( sb, "", 0 );
1828 
1829                 append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
1830                 append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
1831                 append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
1832                 append( sb, "", 0 );
1833 
1834                 append( sb, "resourceProcessingEnabled (Default: true)", 2 );
1835                 append( sb, "Controls processing of resource files.", 3 );
1836                 append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
1837                 append( sb, "", 0 );
1838 
1839                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
1840                 append( sb, "Directory holding the session related files of the project.", 3 );
1841                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
1842                 append( sb, "", 0 );
1843 
1844                 append( sb, "showMainSpecificationExecutionStrategy (Default: once-per-session)", 2 );
1845                 append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
1846                 append( sb, "Expression: ${jomc.showMainSpecificationExecutionStrategy}", 3 );
1847                 append( sb, "", 0 );
1848 
1849                 append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
1850                 append( sb, "Directory holding the source files of the project.", 3 );
1851                 append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
1852                 append( sb, "", 0 );
1853 
1854                 append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
1855                 append( sb, "The encoding to use for reading and writing files.", 3 );
1856                 append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
1857                 append( sb, "", 0 );
1858 
1859                 append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
1860                 append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
1861                 append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
1862                 append( sb, "", 0 );
1863 
1864                 append( sb, "sourceProcessingEnabled (Default: true)", 2 );
1865                 append( sb, "Controls processing of source code files.", 3 );
1866                 append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
1867                 append( sb, "", 0 );
1868 
1869                 append( sb, "templateEncoding", 2 );
1870                 append( sb, "The encoding to use for reading templates.\nDeprecated: As of JOMC 1.3, please use the \'defaultTemplateEncoding\' parameter. This parameter will be removed in version 2.0.\n", 3 );
1871                 append( sb, "Expression: ${jomc.templateEncoding}", 3 );
1872                 append( sb, "", 0 );
1873 
1874                 append( sb, "templateLocation", 2 );
1875                 append( sb, "Location to search for templates in addition to searching the class path of the plugin.\nFirst an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a directory name relative to the base directory of the project. If that directory exists, that directory is used. If nothing is found at the given location, a warning message is logged.\n", 3 );
1876                 append( sb, "Expression: ${jomc.templateLocation}", 3 );
1877                 append( sb, "", 0 );
1878 
1879                 append( sb, "templateParameterResources", 2 );
1880                 append( sb, "Template parameter resources.\n<templateParameterResources>\n\u00a0\u00a0<templateParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</templateParameterResource>\n</templateParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
1881                 append( sb, "", 0 );
1882 
1883                 append( sb, "templateParameters", 2 );
1884                 append( sb, "Template parameters.\n<templateParameters>\n\u00a0\u00a0<templateParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</templateParameter>\n</templateParameters>\n", 3 );
1885                 append( sb, "", 0 );
1886 
1887                 append( sb, "templateProfile", 2 );
1888                 append( sb, "The template profile to use when accessing templates.", 3 );
1889                 append( sb, "Expression: ${jomc.templateProfile}", 3 );
1890                 append( sb, "", 0 );
1891 
1892                 append( sb, "testClassesDirectory", 2 );
1893                 append( sb, "Directory holding the compiled test class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'testOutputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
1894                 append( sb, "", 0 );
1895 
1896                 append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
1897                 append( sb, "Name of the test module to process.", 3 );
1898                 append( sb, "Expression: ${jomc.testModuleName}", 3 );
1899                 append( sb, "", 0 );
1900 
1901                 append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
1902                 append( sb, "Test output directory of the project.", 3 );
1903                 append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
1904                 append( sb, "", 0 );
1905 
1906                 append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
1907                 append( sb, "Directory holding the test source files of the project.", 3 );
1908                 append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
1909                 append( sb, "", 0 );
1910 
1911                 append( sb, "transformationOutputProperties", 2 );
1912                 append( sb, "Global transformation output properties.\n<transformationOutputProperties>\n\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</transformationOutputProperty>\n</transformationOutputProperties>\n", 3 );
1913                 append( sb, "", 0 );
1914 
1915                 append( sb, "transformationParameterResources", 2 );
1916                 append( sb, "Global transformation parameter resources.\n<transformationParameterResources>\n\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</transformationParameterResource>\n</transformationParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
1917                 append( sb, "", 0 );
1918 
1919                 append( sb, "transformationParameters", 2 );
1920                 append( sb, "Global transformation parameters.\n<transformationParameters>\n\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</transformationParameter>\n</transformationParameters>\n", 3 );
1921                 append( sb, "", 0 );
1922 
1923                 append( sb, "transformerLocation", 2 );
1924                 append( sb, "The location to search for transformers.", 3 );
1925                 append( sb, "Expression: ${jomc.transformerLocation}", 3 );
1926                 append( sb, "", 0 );
1927 
1928                 append( sb, "velocityProperties", 2 );
1929                 append( sb, "Velocity runtime properties.\n<velocityProperties>\n\u00a0\u00a0<velocityProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</velocityProperty>\n</velocityProperties>\n", 3 );
1930                 append( sb, "", 0 );
1931 
1932                 append( sb, "velocityPropertyResources", 2 );
1933                 append( sb, "Velocity runtime property resources.\n<velocityPropertyResources>\n\u00a0\u00a0<velocityPropertyResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</velocityPropertyResource>\n</velocityPropertyResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
1934                 append( sb, "", 0 );
1935 
1936                 append( sb, "verbose (Default: false)", 2 );
1937                 append( sb, "Controls verbosity of the plugin.", 3 );
1938                 append( sb, "Expression: ${jomc.verbose}", 3 );
1939                 append( sb, "", 0 );
1940             }
1941         }
1942 
1943         if ( goal == null || goal.length() <= 0 || "show-test-instance".equals( goal ) )
1944         {
1945             append( sb, "jomc:show-test-instance", 0 );
1946             append( sb, "Displays a project\'s test instance.", 1 );
1947             append( sb, "", 0 );
1948             if ( detail )
1949             {
1950                 append( sb, "Available parameters:", 1 );
1951                 append( sb, "", 0 );
1952 
1953                 append( sb, "classesDirectory", 2 );
1954                 append( sb, "Directory holding the compiled class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'outputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
1955                 append( sb, "", 0 );
1956 
1957                 append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
1958                 append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
1959                 append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
1960                 append( sb, "", 0 );
1961 
1962                 append( sb, "classProcessingEnabled (Default: true)", 2 );
1963                 append( sb, "Controls processing of class files.", 3 );
1964                 append( sb, "Expression: ${jomc.classProcessing}", 3 );
1965                 append( sb, "", 0 );
1966 
1967                 append( sb, "defaultTemplateEncoding", 2 );
1968                 append( sb, "The encoding to use for reading templates.", 3 );
1969                 append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
1970                 append( sb, "", 0 );
1971 
1972                 append( sb, "defaultTemplateProfile", 2 );
1973                 append( sb, "The default template profile to use when accessing templates.", 3 );
1974                 append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
1975                 append( sb, "", 0 );
1976 
1977                 append( sb, "document", 2 );
1978                 append( sb, "File to write the model to.", 3 );
1979                 append( sb, "Expression: ${jomc.document}", 3 );
1980                 append( sb, "", 0 );
1981 
1982                 append( sb, "documentEncoding (Default: ${project.build.sourceEncoding})", 2 );
1983                 append( sb, "Encoding of the document to write.", 3 );
1984                 append( sb, "Expression: ${jomc.documentEncoding}", 3 );
1985                 append( sb, "", 0 );
1986 
1987                 append( sb, "identifier", 2 );
1988                 append( sb, "Identifier of the instance to show.", 3 );
1989                 append( sb, "Required: Yes", 3 );
1990                 append( sb, "Expression: ${jomc.identifier}", 3 );
1991                 append( sb, "", 0 );
1992 
1993                 append( sb, "indentation", 2 );
1994                 append( sb, "The indentation string (\'\\t\' for tab).", 3 );
1995                 append( sb, "Expression: ${jomc.indentation}", 3 );
1996                 append( sb, "", 0 );
1997 
1998                 append( sb, "javaValidationEnabled (Default: true)", 2 );
1999                 append( sb, "Flag controlling Java validation.", 3 );
2000                 append( sb, "Expression: ${jomc.javaValidationEnabled}", 3 );
2001                 append( sb, "", 0 );
2002 
2003                 append( sb, "lineSeparator", 2 );
2004                 append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
2005                 append( sb, "Expression: ${jomc.lineSeparator}", 3 );
2006                 append( sb, "", 0 );
2007 
2008                 append( sb, "locale", 2 );
2009                 append( sb, "The locale.\n<locale>\n\u00a0\u00a0<language>Lowercase\u00a0two-letter\u00a0ISO-639\u00a0code.</language>\n\u00a0\u00a0<country>Uppercase\u00a0two-letter\u00a0ISO-3166\u00a0code.</country>\n\u00a0\u00a0<variant>Vendor\u00a0and\u00a0browser\u00a0specific\u00a0code.</variant>\n</locale>\n", 3 );
2010                 append( sb, "", 0 );
2011 
2012                 append( sb, "model (Default: http://jomc.org/model)", 2 );
2013                 append( sb, "The identifier of the model to process.", 3 );
2014                 append( sb, "Expression: ${jomc.model}", 3 );
2015                 append( sb, "", 0 );
2016 
2017                 append( sb, "modelContextAttributes", 2 );
2018                 append( sb, "ModelContext attributes.\n<modelContextAttributes>\n\u00a0\u00a0<modelContextAttribute>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0attribute.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0attribute.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0attributes\'s\u00a0object.</type>\n\u00a0\u00a0</modelContextAttribute>\n</modelContextAttributes>\n", 3 );
2019                 append( sb, "", 0 );
2020 
2021                 append( sb, "modelContextFactoryClassName", 2 );
2022                 append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
2023                 append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
2024                 append( sb, "", 0 );
2025 
2026                 append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
2027                 append( sb, "Controls model object class path resolution.", 3 );
2028                 append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
2029                 append( sb, "", 0 );
2030 
2031                 append( sb, "modelProcessingEnabled (Default: true)", 2 );
2032                 append( sb, "Controls processing of models.", 3 );
2033                 append( sb, "Expression: ${jomc.modelProcessing}", 3 );
2034                 append( sb, "", 0 );
2035 
2036                 append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
2037                 append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
2038                 append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
2039                 append( sb, "", 0 );
2040 
2041                 append( sb, "modletLocation", 2 );
2042                 append( sb, "The location to search for modlets.", 3 );
2043                 append( sb, "Expression: ${jomc.modletLocation}", 3 );
2044                 append( sb, "", 0 );
2045 
2046                 append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
2047                 append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
2048                 append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
2049                 append( sb, "", 0 );
2050 
2051                 append( sb, "modletSchemaSystemId", 2 );
2052                 append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
2053                 append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
2054                 append( sb, "", 0 );
2055 
2056                 append( sb, "moduleLocation", 2 );
2057                 append( sb, "The location to search for modules.", 3 );
2058                 append( sb, "Expression: ${jomc.moduleLocation}", 3 );
2059                 append( sb, "", 0 );
2060 
2061                 append( sb, "moduleName (Default: ${project.name})", 2 );
2062                 append( sb, "Name of the module to process.", 3 );
2063                 append( sb, "Expression: ${jomc.moduleName}", 3 );
2064                 append( sb, "", 0 );
2065 
2066                 append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
2067                 append( sb, "Output directory of the project.", 3 );
2068                 append( sb, "Expression: ${jomc.outputDirectory}", 3 );
2069                 append( sb, "", 0 );
2070 
2071                 append( sb, "platformProviderLocation", 2 );
2072                 append( sb, "The location to search for platform providers.", 3 );
2073                 append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
2074                 append( sb, "", 0 );
2075 
2076                 append( sb, "providerLocation", 2 );
2077                 append( sb, "The location to search for providers.", 3 );
2078                 append( sb, "Expression: ${jomc.providerLocation}", 3 );
2079                 append( sb, "", 0 );
2080 
2081                 append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
2082                 append( sb, "Directory holding the reports of the project.", 3 );
2083                 append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
2084                 append( sb, "", 0 );
2085 
2086                 append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
2087                 append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
2088                 append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
2089                 append( sb, "", 0 );
2090 
2091                 append( sb, "resourceProcessingEnabled (Default: true)", 2 );
2092                 append( sb, "Controls processing of resource files.", 3 );
2093                 append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
2094                 append( sb, "", 0 );
2095 
2096                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
2097                 append( sb, "Directory holding the session related files of the project.", 3 );
2098                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
2099                 append( sb, "", 0 );
2100 
2101                 append( sb, "showTestInstanceExecutionStrategy (Default: once-per-session)", 2 );
2102                 append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
2103                 append( sb, "Expression: ${jomc.showTestInstanceExecutionStrategy}", 3 );
2104                 append( sb, "", 0 );
2105 
2106                 append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
2107                 append( sb, "Directory holding the source files of the project.", 3 );
2108                 append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
2109                 append( sb, "", 0 );
2110 
2111                 append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
2112                 append( sb, "The encoding to use for reading and writing files.", 3 );
2113                 append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
2114                 append( sb, "", 0 );
2115 
2116                 append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
2117                 append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
2118                 append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
2119                 append( sb, "", 0 );
2120 
2121                 append( sb, "sourceProcessingEnabled (Default: true)", 2 );
2122                 append( sb, "Controls processing of source code files.", 3 );
2123                 append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
2124                 append( sb, "", 0 );
2125 
2126                 append( sb, "templateEncoding", 2 );
2127                 append( sb, "The encoding to use for reading templates.\nDeprecated: As of JOMC 1.3, please use the \'defaultTemplateEncoding\' parameter. This parameter will be removed in version 2.0.\n", 3 );
2128                 append( sb, "Expression: ${jomc.templateEncoding}", 3 );
2129                 append( sb, "", 0 );
2130 
2131                 append( sb, "templateLocation", 2 );
2132                 append( sb, "Location to search for templates in addition to searching the class path of the plugin.\nFirst an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a directory name relative to the base directory of the project. If that directory exists, that directory is used. If nothing is found at the given location, a warning message is logged.\n", 3 );
2133                 append( sb, "Expression: ${jomc.templateLocation}", 3 );
2134                 append( sb, "", 0 );
2135 
2136                 append( sb, "templateParameterResources", 2 );
2137                 append( sb, "Template parameter resources.\n<templateParameterResources>\n\u00a0\u00a0<templateParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</templateParameterResource>\n</templateParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
2138                 append( sb, "", 0 );
2139 
2140                 append( sb, "templateParameters", 2 );
2141                 append( sb, "Template parameters.\n<templateParameters>\n\u00a0\u00a0<templateParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</templateParameter>\n</templateParameters>\n", 3 );
2142                 append( sb, "", 0 );
2143 
2144                 append( sb, "templateProfile", 2 );
2145                 append( sb, "The template profile to use when accessing templates.", 3 );
2146                 append( sb, "Expression: ${jomc.templateProfile}", 3 );
2147                 append( sb, "", 0 );
2148 
2149                 append( sb, "testClassesDirectory", 2 );
2150                 append( sb, "Directory holding the compiled test class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'testOutputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
2151                 append( sb, "", 0 );
2152 
2153                 append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
2154                 append( sb, "Name of the test module to process.", 3 );
2155                 append( sb, "Expression: ${jomc.testModuleName}", 3 );
2156                 append( sb, "", 0 );
2157 
2158                 append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
2159                 append( sb, "Test output directory of the project.", 3 );
2160                 append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
2161                 append( sb, "", 0 );
2162 
2163                 append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
2164                 append( sb, "Directory holding the test source files of the project.", 3 );
2165                 append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
2166                 append( sb, "", 0 );
2167 
2168                 append( sb, "transformationOutputProperties", 2 );
2169                 append( sb, "Global transformation output properties.\n<transformationOutputProperties>\n\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</transformationOutputProperty>\n</transformationOutputProperties>\n", 3 );
2170                 append( sb, "", 0 );
2171 
2172                 append( sb, "transformationParameterResources", 2 );
2173                 append( sb, "Global transformation parameter resources.\n<transformationParameterResources>\n\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</transformationParameterResource>\n</transformationParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
2174                 append( sb, "", 0 );
2175 
2176                 append( sb, "transformationParameters", 2 );
2177                 append( sb, "Global transformation parameters.\n<transformationParameters>\n\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</transformationParameter>\n</transformationParameters>\n", 3 );
2178                 append( sb, "", 0 );
2179 
2180                 append( sb, "transformerLocation", 2 );
2181                 append( sb, "The location to search for transformers.", 3 );
2182                 append( sb, "Expression: ${jomc.transformerLocation}", 3 );
2183                 append( sb, "", 0 );
2184 
2185                 append( sb, "velocityProperties", 2 );
2186                 append( sb, "Velocity runtime properties.\n<velocityProperties>\n\u00a0\u00a0<velocityProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</velocityProperty>\n</velocityProperties>\n", 3 );
2187                 append( sb, "", 0 );
2188 
2189                 append( sb, "velocityPropertyResources", 2 );
2190                 append( sb, "Velocity runtime property resources.\n<velocityPropertyResources>\n\u00a0\u00a0<velocityPropertyResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</velocityPropertyResource>\n</velocityPropertyResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
2191                 append( sb, "", 0 );
2192 
2193                 append( sb, "verbose (Default: false)", 2 );
2194                 append( sb, "Controls verbosity of the plugin.", 3 );
2195                 append( sb, "Expression: ${jomc.verbose}", 3 );
2196                 append( sb, "", 0 );
2197             }
2198         }
2199 
2200         if ( goal == null || goal.length() <= 0 || "show-test-model".equals( goal ) )
2201         {
2202             append( sb, "jomc:show-test-model", 0 );
2203             append( sb, "Displays a project\'s test model.", 1 );
2204             append( sb, "", 0 );
2205             if ( detail )
2206             {
2207                 append( sb, "Available parameters:", 1 );
2208                 append( sb, "", 0 );
2209 
2210                 append( sb, "classesDirectory", 2 );
2211                 append( sb, "Directory holding the compiled class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'outputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
2212                 append( sb, "", 0 );
2213 
2214                 append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
2215                 append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
2216                 append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
2217                 append( sb, "", 0 );
2218 
2219                 append( sb, "classProcessingEnabled (Default: true)", 2 );
2220                 append( sb, "Controls processing of class files.", 3 );
2221                 append( sb, "Expression: ${jomc.classProcessing}", 3 );
2222                 append( sb, "", 0 );
2223 
2224                 append( sb, "defaultTemplateEncoding", 2 );
2225                 append( sb, "The encoding to use for reading templates.", 3 );
2226                 append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
2227                 append( sb, "", 0 );
2228 
2229                 append( sb, "defaultTemplateProfile", 2 );
2230                 append( sb, "The default template profile to use when accessing templates.", 3 );
2231                 append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
2232                 append( sb, "", 0 );
2233 
2234                 append( sb, "document", 2 );
2235                 append( sb, "File to write the model to.", 3 );
2236                 append( sb, "Expression: ${jomc.document}", 3 );
2237                 append( sb, "", 0 );
2238 
2239                 append( sb, "documentEncoding (Default: ${project.build.sourceEncoding})", 2 );
2240                 append( sb, "Encoding of the document to write.", 3 );
2241                 append( sb, "Expression: ${jomc.documentEncoding}", 3 );
2242                 append( sb, "", 0 );
2243 
2244                 append( sb, "indentation", 2 );
2245                 append( sb, "The indentation string (\'\\t\' for tab).", 3 );
2246                 append( sb, "Expression: ${jomc.indentation}", 3 );
2247                 append( sb, "", 0 );
2248 
2249                 append( sb, "javaValidationEnabled (Default: true)", 2 );
2250                 append( sb, "Flag controlling Java validation.", 3 );
2251                 append( sb, "Expression: ${jomc.javaValidationEnabled}", 3 );
2252                 append( sb, "", 0 );
2253 
2254                 append( sb, "lineSeparator", 2 );
2255                 append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
2256                 append( sb, "Expression: ${jomc.lineSeparator}", 3 );
2257                 append( sb, "", 0 );
2258 
2259                 append( sb, "locale", 2 );
2260                 append( sb, "The locale.\n<locale>\n\u00a0\u00a0<language>Lowercase\u00a0two-letter\u00a0ISO-639\u00a0code.</language>\n\u00a0\u00a0<country>Uppercase\u00a0two-letter\u00a0ISO-3166\u00a0code.</country>\n\u00a0\u00a0<variant>Vendor\u00a0and\u00a0browser\u00a0specific\u00a0code.</variant>\n</locale>\n", 3 );
2261                 append( sb, "", 0 );
2262 
2263                 append( sb, "model (Default: http://jomc.org/model)", 2 );
2264                 append( sb, "The identifier of the model to process.", 3 );
2265                 append( sb, "Expression: ${jomc.model}", 3 );
2266                 append( sb, "", 0 );
2267 
2268                 append( sb, "modelContextAttributes", 2 );
2269                 append( sb, "ModelContext attributes.\n<modelContextAttributes>\n\u00a0\u00a0<modelContextAttribute>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0attribute.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0attribute.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0attributes\'s\u00a0object.</type>\n\u00a0\u00a0</modelContextAttribute>\n</modelContextAttributes>\n", 3 );
2270                 append( sb, "", 0 );
2271 
2272                 append( sb, "modelContextFactoryClassName", 2 );
2273                 append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
2274                 append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
2275                 append( sb, "", 0 );
2276 
2277                 append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
2278                 append( sb, "Controls model object class path resolution.", 3 );
2279                 append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
2280                 append( sb, "", 0 );
2281 
2282                 append( sb, "modelProcessingEnabled (Default: true)", 2 );
2283                 append( sb, "Controls processing of models.", 3 );
2284                 append( sb, "Expression: ${jomc.modelProcessing}", 3 );
2285                 append( sb, "", 0 );
2286 
2287                 append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
2288                 append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
2289                 append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
2290                 append( sb, "", 0 );
2291 
2292                 append( sb, "modletLocation", 2 );
2293                 append( sb, "The location to search for modlets.", 3 );
2294                 append( sb, "Expression: ${jomc.modletLocation}", 3 );
2295                 append( sb, "", 0 );
2296 
2297                 append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
2298                 append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
2299                 append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
2300                 append( sb, "", 0 );
2301 
2302                 append( sb, "modletSchemaSystemId", 2 );
2303                 append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
2304                 append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
2305                 append( sb, "", 0 );
2306 
2307                 append( sb, "moduleLocation", 2 );
2308                 append( sb, "The location to search for modules.", 3 );
2309                 append( sb, "Expression: ${jomc.moduleLocation}", 3 );
2310                 append( sb, "", 0 );
2311 
2312                 append( sb, "moduleName (Default: ${project.name})", 2 );
2313                 append( sb, "Name of the module to process.", 3 );
2314                 append( sb, "Expression: ${jomc.moduleName}", 3 );
2315                 append( sb, "", 0 );
2316 
2317                 append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
2318                 append( sb, "Output directory of the project.", 3 );
2319                 append( sb, "Expression: ${jomc.outputDirectory}", 3 );
2320                 append( sb, "", 0 );
2321 
2322                 append( sb, "platformProviderLocation", 2 );
2323                 append( sb, "The location to search for platform providers.", 3 );
2324                 append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
2325                 append( sb, "", 0 );
2326 
2327                 append( sb, "providerLocation", 2 );
2328                 append( sb, "The location to search for providers.", 3 );
2329                 append( sb, "Expression: ${jomc.providerLocation}", 3 );
2330                 append( sb, "", 0 );
2331 
2332                 append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
2333                 append( sb, "Directory holding the reports of the project.", 3 );
2334                 append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
2335                 append( sb, "", 0 );
2336 
2337                 append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
2338                 append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
2339                 append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
2340                 append( sb, "", 0 );
2341 
2342                 append( sb, "resourceProcessingEnabled (Default: true)", 2 );
2343                 append( sb, "Controls processing of resource files.", 3 );
2344                 append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
2345                 append( sb, "", 0 );
2346 
2347                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
2348                 append( sb, "Directory holding the session related files of the project.", 3 );
2349                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
2350                 append( sb, "", 0 );
2351 
2352                 append( sb, "showTestModelExecutionStrategy (Default: once-per-session)", 2 );
2353                 append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
2354                 append( sb, "Expression: ${jomc.showTestModelExecutionStrategy}", 3 );
2355                 append( sb, "", 0 );
2356 
2357                 append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
2358                 append( sb, "Directory holding the source files of the project.", 3 );
2359                 append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
2360                 append( sb, "", 0 );
2361 
2362                 append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
2363                 append( sb, "The encoding to use for reading and writing files.", 3 );
2364                 append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
2365                 append( sb, "", 0 );
2366 
2367                 append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
2368                 append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
2369                 append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
2370                 append( sb, "", 0 );
2371 
2372                 append( sb, "sourceProcessingEnabled (Default: true)", 2 );
2373                 append( sb, "Controls processing of source code files.", 3 );
2374                 append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
2375                 append( sb, "", 0 );
2376 
2377                 append( sb, "templateEncoding", 2 );
2378                 append( sb, "The encoding to use for reading templates.\nDeprecated: As of JOMC 1.3, please use the \'defaultTemplateEncoding\' parameter. This parameter will be removed in version 2.0.\n", 3 );
2379                 append( sb, "Expression: ${jomc.templateEncoding}", 3 );
2380                 append( sb, "", 0 );
2381 
2382                 append( sb, "templateLocation", 2 );
2383                 append( sb, "Location to search for templates in addition to searching the class path of the plugin.\nFirst an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a directory name relative to the base directory of the project. If that directory exists, that directory is used. If nothing is found at the given location, a warning message is logged.\n", 3 );
2384                 append( sb, "Expression: ${jomc.templateLocation}", 3 );
2385                 append( sb, "", 0 );
2386 
2387                 append( sb, "templateParameterResources", 2 );
2388                 append( sb, "Template parameter resources.\n<templateParameterResources>\n\u00a0\u00a0<templateParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</templateParameterResource>\n</templateParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
2389                 append( sb, "", 0 );
2390 
2391                 append( sb, "templateParameters", 2 );
2392                 append( sb, "Template parameters.\n<templateParameters>\n\u00a0\u00a0<templateParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</templateParameter>\n</templateParameters>\n", 3 );
2393                 append( sb, "", 0 );
2394 
2395                 append( sb, "templateProfile", 2 );
2396                 append( sb, "The template profile to use when accessing templates.", 3 );
2397                 append( sb, "Expression: ${jomc.templateProfile}", 3 );
2398                 append( sb, "", 0 );
2399 
2400                 append( sb, "testClassesDirectory", 2 );
2401                 append( sb, "Directory holding the compiled test class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'testOutputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
2402                 append( sb, "", 0 );
2403 
2404                 append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
2405                 append( sb, "Name of the test module to process.", 3 );
2406                 append( sb, "Expression: ${jomc.testModuleName}", 3 );
2407                 append( sb, "", 0 );
2408 
2409                 append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
2410                 append( sb, "Test output directory of the project.", 3 );
2411                 append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
2412                 append( sb, "", 0 );
2413 
2414                 append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
2415                 append( sb, "Directory holding the test source files of the project.", 3 );
2416                 append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
2417                 append( sb, "", 0 );
2418 
2419                 append( sb, "transformationOutputProperties", 2 );
2420                 append( sb, "Global transformation output properties.\n<transformationOutputProperties>\n\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</transformationOutputProperty>\n</transformationOutputProperties>\n", 3 );
2421                 append( sb, "", 0 );
2422 
2423                 append( sb, "transformationParameterResources", 2 );
2424                 append( sb, "Global transformation parameter resources.\n<transformationParameterResources>\n\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</transformationParameterResource>\n</transformationParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
2425                 append( sb, "", 0 );
2426 
2427                 append( sb, "transformationParameters", 2 );
2428                 append( sb, "Global transformation parameters.\n<transformationParameters>\n\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</transformationParameter>\n</transformationParameters>\n", 3 );
2429                 append( sb, "", 0 );
2430 
2431                 append( sb, "transformerLocation", 2 );
2432                 append( sb, "The location to search for transformers.", 3 );
2433                 append( sb, "Expression: ${jomc.transformerLocation}", 3 );
2434                 append( sb, "", 0 );
2435 
2436                 append( sb, "velocityProperties", 2 );
2437                 append( sb, "Velocity runtime properties.\n<velocityProperties>\n\u00a0\u00a0<velocityProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</velocityProperty>\n</velocityProperties>\n", 3 );
2438                 append( sb, "", 0 );
2439 
2440                 append( sb, "velocityPropertyResources", 2 );
2441                 append( sb, "Velocity runtime property resources.\n<velocityPropertyResources>\n\u00a0\u00a0<velocityPropertyResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</velocityPropertyResource>\n</velocityPropertyResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
2442                 append( sb, "", 0 );
2443 
2444                 append( sb, "verbose (Default: false)", 2 );
2445                 append( sb, "Controls verbosity of the plugin.", 3 );
2446                 append( sb, "Expression: ${jomc.verbose}", 3 );
2447                 append( sb, "", 0 );
2448             }
2449         }
2450 
2451         if ( goal == null || goal.length() <= 0 || "show-test-specification".equals( goal ) )
2452         {
2453             append( sb, "jomc:show-test-specification", 0 );
2454             append( sb, "Displays a project\'s test specification.", 1 );
2455             append( sb, "", 0 );
2456             if ( detail )
2457             {
2458                 append( sb, "Available parameters:", 1 );
2459                 append( sb, "", 0 );
2460 
2461                 append( sb, "classesDirectory", 2 );
2462                 append( sb, "Directory holding the compiled class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'outputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
2463                 append( sb, "", 0 );
2464 
2465                 append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
2466                 append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
2467                 append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
2468                 append( sb, "", 0 );
2469 
2470                 append( sb, "classProcessingEnabled (Default: true)", 2 );
2471                 append( sb, "Controls processing of class files.", 3 );
2472                 append( sb, "Expression: ${jomc.classProcessing}", 3 );
2473                 append( sb, "", 0 );
2474 
2475                 append( sb, "defaultTemplateEncoding", 2 );
2476                 append( sb, "The encoding to use for reading templates.", 3 );
2477                 append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
2478                 append( sb, "", 0 );
2479 
2480                 append( sb, "defaultTemplateProfile", 2 );
2481                 append( sb, "The default template profile to use when accessing templates.", 3 );
2482                 append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
2483                 append( sb, "", 0 );
2484 
2485                 append( sb, "document", 2 );
2486                 append( sb, "File to write the model to.", 3 );
2487                 append( sb, "Expression: ${jomc.document}", 3 );
2488                 append( sb, "", 0 );
2489 
2490                 append( sb, "documentEncoding (Default: ${project.build.sourceEncoding})", 2 );
2491                 append( sb, "Encoding of the document to write.", 3 );
2492                 append( sb, "Expression: ${jomc.documentEncoding}", 3 );
2493                 append( sb, "", 0 );
2494 
2495                 append( sb, "identifier", 2 );
2496                 append( sb, "Identifier of the specification to show.", 3 );
2497                 append( sb, "Required: Yes", 3 );
2498                 append( sb, "Expression: ${jomc.identifier}", 3 );
2499                 append( sb, "", 0 );
2500 
2501                 append( sb, "indentation", 2 );
2502                 append( sb, "The indentation string (\'\\t\' for tab).", 3 );
2503                 append( sb, "Expression: ${jomc.indentation}", 3 );
2504                 append( sb, "", 0 );
2505 
2506                 append( sb, "javaValidationEnabled (Default: true)", 2 );
2507                 append( sb, "Flag controlling Java validation.", 3 );
2508                 append( sb, "Expression: ${jomc.javaValidationEnabled}", 3 );
2509                 append( sb, "", 0 );
2510 
2511                 append( sb, "lineSeparator", 2 );
2512                 append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
2513                 append( sb, "Expression: ${jomc.lineSeparator}", 3 );
2514                 append( sb, "", 0 );
2515 
2516                 append( sb, "locale", 2 );
2517                 append( sb, "The locale.\n<locale>\n\u00a0\u00a0<language>Lowercase\u00a0two-letter\u00a0ISO-639\u00a0code.</language>\n\u00a0\u00a0<country>Uppercase\u00a0two-letter\u00a0ISO-3166\u00a0code.</country>\n\u00a0\u00a0<variant>Vendor\u00a0and\u00a0browser\u00a0specific\u00a0code.</variant>\n</locale>\n", 3 );
2518                 append( sb, "", 0 );
2519 
2520                 append( sb, "model (Default: http://jomc.org/model)", 2 );
2521                 append( sb, "The identifier of the model to process.", 3 );
2522                 append( sb, "Expression: ${jomc.model}", 3 );
2523                 append( sb, "", 0 );
2524 
2525                 append( sb, "modelContextAttributes", 2 );
2526                 append( sb, "ModelContext attributes.\n<modelContextAttributes>\n\u00a0\u00a0<modelContextAttribute>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0attribute.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0attribute.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0attributes\'s\u00a0object.</type>\n\u00a0\u00a0</modelContextAttribute>\n</modelContextAttributes>\n", 3 );
2527                 append( sb, "", 0 );
2528 
2529                 append( sb, "modelContextFactoryClassName", 2 );
2530                 append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
2531                 append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
2532                 append( sb, "", 0 );
2533 
2534                 append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
2535                 append( sb, "Controls model object class path resolution.", 3 );
2536                 append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
2537                 append( sb, "", 0 );
2538 
2539                 append( sb, "modelProcessingEnabled (Default: true)", 2 );
2540                 append( sb, "Controls processing of models.", 3 );
2541                 append( sb, "Expression: ${jomc.modelProcessing}", 3 );
2542                 append( sb, "", 0 );
2543 
2544                 append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
2545                 append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
2546                 append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
2547                 append( sb, "", 0 );
2548 
2549                 append( sb, "modletLocation", 2 );
2550                 append( sb, "The location to search for modlets.", 3 );
2551                 append( sb, "Expression: ${jomc.modletLocation}", 3 );
2552                 append( sb, "", 0 );
2553 
2554                 append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
2555                 append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
2556                 append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
2557                 append( sb, "", 0 );
2558 
2559                 append( sb, "modletSchemaSystemId", 2 );
2560                 append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
2561                 append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
2562                 append( sb, "", 0 );
2563 
2564                 append( sb, "moduleLocation", 2 );
2565                 append( sb, "The location to search for modules.", 3 );
2566                 append( sb, "Expression: ${jomc.moduleLocation}", 3 );
2567                 append( sb, "", 0 );
2568 
2569                 append( sb, "moduleName (Default: ${project.name})", 2 );
2570                 append( sb, "Name of the module to process.", 3 );
2571                 append( sb, "Expression: ${jomc.moduleName}", 3 );
2572                 append( sb, "", 0 );
2573 
2574                 append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
2575                 append( sb, "Output directory of the project.", 3 );
2576                 append( sb, "Expression: ${jomc.outputDirectory}", 3 );
2577                 append( sb, "", 0 );
2578 
2579                 append( sb, "platformProviderLocation", 2 );
2580                 append( sb, "The location to search for platform providers.", 3 );
2581                 append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
2582                 append( sb, "", 0 );
2583 
2584                 append( sb, "providerLocation", 2 );
2585                 append( sb, "The location to search for providers.", 3 );
2586                 append( sb, "Expression: ${jomc.providerLocation}", 3 );
2587                 append( sb, "", 0 );
2588 
2589                 append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
2590                 append( sb, "Directory holding the reports of the project.", 3 );
2591                 append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
2592                 append( sb, "", 0 );
2593 
2594                 append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
2595                 append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
2596                 append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
2597                 append( sb, "", 0 );
2598 
2599                 append( sb, "resourceProcessingEnabled (Default: true)", 2 );
2600                 append( sb, "Controls processing of resource files.", 3 );
2601                 append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
2602                 append( sb, "", 0 );
2603 
2604                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
2605                 append( sb, "Directory holding the session related files of the project.", 3 );
2606                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
2607                 append( sb, "", 0 );
2608 
2609                 append( sb, "showTestSpecificationExecutionStrategy (Default: once-per-session)", 2 );
2610                 append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
2611                 append( sb, "Expression: ${jomc.showTestSpecificationExecutionStrategy}", 3 );
2612                 append( sb, "", 0 );
2613 
2614                 append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
2615                 append( sb, "Directory holding the source files of the project.", 3 );
2616                 append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
2617                 append( sb, "", 0 );
2618 
2619                 append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
2620                 append( sb, "The encoding to use for reading and writing files.", 3 );
2621                 append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
2622                 append( sb, "", 0 );
2623 
2624                 append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
2625                 append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
2626                 append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
2627                 append( sb, "", 0 );
2628 
2629                 append( sb, "sourceProcessingEnabled (Default: true)", 2 );
2630                 append( sb, "Controls processing of source code files.", 3 );
2631                 append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
2632                 append( sb, "", 0 );
2633 
2634                 append( sb, "templateEncoding", 2 );
2635                 append( sb, "The encoding to use for reading templates.\nDeprecated: As of JOMC 1.3, please use the \'defaultTemplateEncoding\' parameter. This parameter will be removed in version 2.0.\n", 3 );
2636                 append( sb, "Expression: ${jomc.templateEncoding}", 3 );
2637                 append( sb, "", 0 );
2638 
2639                 append( sb, "templateLocation", 2 );
2640                 append( sb, "Location to search for templates in addition to searching the class path of the plugin.\nFirst an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a directory name relative to the base directory of the project. If that directory exists, that directory is used. If nothing is found at the given location, a warning message is logged.\n", 3 );
2641                 append( sb, "Expression: ${jomc.templateLocation}", 3 );
2642                 append( sb, "", 0 );
2643 
2644                 append( sb, "templateParameterResources", 2 );
2645                 append( sb, "Template parameter resources.\n<templateParameterResources>\n\u00a0\u00a0<templateParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</templateParameterResource>\n</templateParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
2646                 append( sb, "", 0 );
2647 
2648                 append( sb, "templateParameters", 2 );
2649                 append( sb, "Template parameters.\n<templateParameters>\n\u00a0\u00a0<templateParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</templateParameter>\n</templateParameters>\n", 3 );
2650                 append( sb, "", 0 );
2651 
2652                 append( sb, "templateProfile", 2 );
2653                 append( sb, "The template profile to use when accessing templates.", 3 );
2654                 append( sb, "Expression: ${jomc.templateProfile}", 3 );
2655                 append( sb, "", 0 );
2656 
2657                 append( sb, "testClassesDirectory", 2 );
2658                 append( sb, "Directory holding the compiled test class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'testOutputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
2659                 append( sb, "", 0 );
2660 
2661                 append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
2662                 append( sb, "Name of the test module to process.", 3 );
2663                 append( sb, "Expression: ${jomc.testModuleName}", 3 );
2664                 append( sb, "", 0 );
2665 
2666                 append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
2667                 append( sb, "Test output directory of the project.", 3 );
2668                 append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
2669                 append( sb, "", 0 );
2670 
2671                 append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
2672                 append( sb, "Directory holding the test source files of the project.", 3 );
2673                 append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
2674                 append( sb, "", 0 );
2675 
2676                 append( sb, "transformationOutputProperties", 2 );
2677                 append( sb, "Global transformation output properties.\n<transformationOutputProperties>\n\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</transformationOutputProperty>\n</transformationOutputProperties>\n", 3 );
2678                 append( sb, "", 0 );
2679 
2680                 append( sb, "transformationParameterResources", 2 );
2681                 append( sb, "Global transformation parameter resources.\n<transformationParameterResources>\n\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</transformationParameterResource>\n</transformationParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
2682                 append( sb, "", 0 );
2683 
2684                 append( sb, "transformationParameters", 2 );
2685                 append( sb, "Global transformation parameters.\n<transformationParameters>\n\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</transformationParameter>\n</transformationParameters>\n", 3 );
2686                 append( sb, "", 0 );
2687 
2688                 append( sb, "transformerLocation", 2 );
2689                 append( sb, "The location to search for transformers.", 3 );
2690                 append( sb, "Expression: ${jomc.transformerLocation}", 3 );
2691                 append( sb, "", 0 );
2692 
2693                 append( sb, "velocityProperties", 2 );
2694                 append( sb, "Velocity runtime properties.\n<velocityProperties>\n\u00a0\u00a0<velocityProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</velocityProperty>\n</velocityProperties>\n", 3 );
2695                 append( sb, "", 0 );
2696 
2697                 append( sb, "velocityPropertyResources", 2 );
2698                 append( sb, "Velocity runtime property resources.\n<velocityPropertyResources>\n\u00a0\u00a0<velocityPropertyResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</velocityPropertyResource>\n</velocityPropertyResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
2699                 append( sb, "", 0 );
2700 
2701                 append( sb, "verbose (Default: false)", 2 );
2702                 append( sb, "Controls verbosity of the plugin.", 3 );
2703                 append( sb, "Expression: ${jomc.verbose}", 3 );
2704                 append( sb, "", 0 );
2705             }
2706         }
2707 
2708         if ( goal == null || goal.length() <= 0 || "validate-main-classes".equals( goal ) )
2709         {
2710             append( sb, "jomc:validate-main-classes", 0 );
2711             append( sb, "Validates a projects\' main class file model objects.", 1 );
2712             append( sb, "", 0 );
2713             if ( detail )
2714             {
2715                 append( sb, "Available parameters:", 1 );
2716                 append( sb, "", 0 );
2717 
2718                 append( sb, "classesDirectory", 2 );
2719                 append( sb, "Directory holding the compiled class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'outputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
2720                 append( sb, "", 0 );
2721 
2722                 append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
2723                 append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
2724                 append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
2725                 append( sb, "", 0 );
2726 
2727                 append( sb, "classProcessingEnabled (Default: true)", 2 );
2728                 append( sb, "Controls processing of class files.", 3 );
2729                 append( sb, "Expression: ${jomc.classProcessing}", 3 );
2730                 append( sb, "", 0 );
2731 
2732                 append( sb, "defaultTemplateEncoding", 2 );
2733                 append( sb, "The encoding to use for reading templates.", 3 );
2734                 append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
2735                 append( sb, "", 0 );
2736 
2737                 append( sb, "defaultTemplateProfile", 2 );
2738                 append( sb, "The default template profile to use when accessing templates.", 3 );
2739                 append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
2740                 append( sb, "", 0 );
2741 
2742                 append( sb, "indentation", 2 );
2743                 append( sb, "The indentation string (\'\\t\' for tab).", 3 );
2744                 append( sb, "Expression: ${jomc.indentation}", 3 );
2745                 append( sb, "", 0 );
2746 
2747                 append( sb, "javaValidationEnabled (Default: true)", 2 );
2748                 append( sb, "Flag controlling Java validation.", 3 );
2749                 append( sb, "Expression: ${jomc.javaValidationEnabled}", 3 );
2750                 append( sb, "", 0 );
2751 
2752                 append( sb, "lineSeparator", 2 );
2753                 append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
2754                 append( sb, "Expression: ${jomc.lineSeparator}", 3 );
2755                 append( sb, "", 0 );
2756 
2757                 append( sb, "locale", 2 );
2758                 append( sb, "The locale.\n<locale>\n\u00a0\u00a0<language>Lowercase\u00a0two-letter\u00a0ISO-639\u00a0code.</language>\n\u00a0\u00a0<country>Uppercase\u00a0two-letter\u00a0ISO-3166\u00a0code.</country>\n\u00a0\u00a0<variant>Vendor\u00a0and\u00a0browser\u00a0specific\u00a0code.</variant>\n</locale>\n", 3 );
2759                 append( sb, "", 0 );
2760 
2761                 append( sb, "model (Default: http://jomc.org/model)", 2 );
2762                 append( sb, "The identifier of the model to process.", 3 );
2763                 append( sb, "Expression: ${jomc.model}", 3 );
2764                 append( sb, "", 0 );
2765 
2766                 append( sb, "modelContextAttributes", 2 );
2767                 append( sb, "ModelContext attributes.\n<modelContextAttributes>\n\u00a0\u00a0<modelContextAttribute>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0attribute.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0attribute.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0attributes\'s\u00a0object.</type>\n\u00a0\u00a0</modelContextAttribute>\n</modelContextAttributes>\n", 3 );
2768                 append( sb, "", 0 );
2769 
2770                 append( sb, "modelContextFactoryClassName", 2 );
2771                 append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
2772                 append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
2773                 append( sb, "", 0 );
2774 
2775                 append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
2776                 append( sb, "Controls model object class path resolution.", 3 );
2777                 append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
2778                 append( sb, "", 0 );
2779 
2780                 append( sb, "modelProcessingEnabled (Default: true)", 2 );
2781                 append( sb, "Controls processing of models.", 3 );
2782                 append( sb, "Expression: ${jomc.modelProcessing}", 3 );
2783                 append( sb, "", 0 );
2784 
2785                 append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
2786                 append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
2787                 append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
2788                 append( sb, "", 0 );
2789 
2790                 append( sb, "modletLocation", 2 );
2791                 append( sb, "The location to search for modlets.", 3 );
2792                 append( sb, "Expression: ${jomc.modletLocation}", 3 );
2793                 append( sb, "", 0 );
2794 
2795                 append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
2796                 append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
2797                 append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
2798                 append( sb, "", 0 );
2799 
2800                 append( sb, "modletSchemaSystemId", 2 );
2801                 append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
2802                 append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
2803                 append( sb, "", 0 );
2804 
2805                 append( sb, "moduleLocation", 2 );
2806                 append( sb, "The location to search for modules.", 3 );
2807                 append( sb, "Expression: ${jomc.moduleLocation}", 3 );
2808                 append( sb, "", 0 );
2809 
2810                 append( sb, "moduleName (Default: ${project.name})", 2 );
2811                 append( sb, "Name of the module to process.", 3 );
2812                 append( sb, "Expression: ${jomc.moduleName}", 3 );
2813                 append( sb, "", 0 );
2814 
2815                 append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
2816                 append( sb, "Output directory of the project.", 3 );
2817                 append( sb, "Expression: ${jomc.outputDirectory}", 3 );
2818                 append( sb, "", 0 );
2819 
2820                 append( sb, "platformProviderLocation", 2 );
2821                 append( sb, "The location to search for platform providers.", 3 );
2822                 append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
2823                 append( sb, "", 0 );
2824 
2825                 append( sb, "providerLocation", 2 );
2826                 append( sb, "The location to search for providers.", 3 );
2827                 append( sb, "Expression: ${jomc.providerLocation}", 3 );
2828                 append( sb, "", 0 );
2829 
2830                 append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
2831                 append( sb, "Directory holding the reports of the project.", 3 );
2832                 append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
2833                 append( sb, "", 0 );
2834 
2835                 append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
2836                 append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
2837                 append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
2838                 append( sb, "", 0 );
2839 
2840                 append( sb, "resourceProcessingEnabled (Default: true)", 2 );
2841                 append( sb, "Controls processing of resource files.", 3 );
2842                 append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
2843                 append( sb, "", 0 );
2844 
2845                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
2846                 append( sb, "Directory holding the session related files of the project.", 3 );
2847                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
2848                 append( sb, "", 0 );
2849 
2850                 append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
2851                 append( sb, "Directory holding the source files of the project.", 3 );
2852                 append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
2853                 append( sb, "", 0 );
2854 
2855                 append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
2856                 append( sb, "The encoding to use for reading and writing files.", 3 );
2857                 append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
2858                 append( sb, "", 0 );
2859 
2860                 append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
2861                 append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
2862                 append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
2863                 append( sb, "", 0 );
2864 
2865                 append( sb, "sourceProcessingEnabled (Default: true)", 2 );
2866                 append( sb, "Controls processing of source code files.", 3 );
2867                 append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
2868                 append( sb, "", 0 );
2869 
2870                 append( sb, "templateEncoding", 2 );
2871                 append( sb, "The encoding to use for reading templates.\nDeprecated: As of JOMC 1.3, please use the \'defaultTemplateEncoding\' parameter. This parameter will be removed in version 2.0.\n", 3 );
2872                 append( sb, "Expression: ${jomc.templateEncoding}", 3 );
2873                 append( sb, "", 0 );
2874 
2875                 append( sb, "templateLocation", 2 );
2876                 append( sb, "Location to search for templates in addition to searching the class path of the plugin.\nFirst an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a directory name relative to the base directory of the project. If that directory exists, that directory is used. If nothing is found at the given location, a warning message is logged.\n", 3 );
2877                 append( sb, "Expression: ${jomc.templateLocation}", 3 );
2878                 append( sb, "", 0 );
2879 
2880                 append( sb, "templateParameterResources", 2 );
2881                 append( sb, "Template parameter resources.\n<templateParameterResources>\n\u00a0\u00a0<templateParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</templateParameterResource>\n</templateParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
2882                 append( sb, "", 0 );
2883 
2884                 append( sb, "templateParameters", 2 );
2885                 append( sb, "Template parameters.\n<templateParameters>\n\u00a0\u00a0<templateParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</templateParameter>\n</templateParameters>\n", 3 );
2886                 append( sb, "", 0 );
2887 
2888                 append( sb, "templateProfile", 2 );
2889                 append( sb, "The template profile to use when accessing templates.", 3 );
2890                 append( sb, "Expression: ${jomc.templateProfile}", 3 );
2891                 append( sb, "", 0 );
2892 
2893                 append( sb, "testClassesDirectory", 2 );
2894                 append( sb, "Directory holding the compiled test class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'testOutputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
2895                 append( sb, "", 0 );
2896 
2897                 append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
2898                 append( sb, "Name of the test module to process.", 3 );
2899                 append( sb, "Expression: ${jomc.testModuleName}", 3 );
2900                 append( sb, "", 0 );
2901 
2902                 append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
2903                 append( sb, "Test output directory of the project.", 3 );
2904                 append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
2905                 append( sb, "", 0 );
2906 
2907                 append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
2908                 append( sb, "Directory holding the test source files of the project.", 3 );
2909                 append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
2910                 append( sb, "", 0 );
2911 
2912                 append( sb, "transformationOutputProperties", 2 );
2913                 append( sb, "Global transformation output properties.\n<transformationOutputProperties>\n\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</transformationOutputProperty>\n</transformationOutputProperties>\n", 3 );
2914                 append( sb, "", 0 );
2915 
2916                 append( sb, "transformationParameterResources", 2 );
2917                 append( sb, "Global transformation parameter resources.\n<transformationParameterResources>\n\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</transformationParameterResource>\n</transformationParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
2918                 append( sb, "", 0 );
2919 
2920                 append( sb, "transformationParameters", 2 );
2921                 append( sb, "Global transformation parameters.\n<transformationParameters>\n\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</transformationParameter>\n</transformationParameters>\n", 3 );
2922                 append( sb, "", 0 );
2923 
2924                 append( sb, "transformerLocation", 2 );
2925                 append( sb, "The location to search for transformers.", 3 );
2926                 append( sb, "Expression: ${jomc.transformerLocation}", 3 );
2927                 append( sb, "", 0 );
2928 
2929                 append( sb, "validateMainClassesExecutionStrategy (Default: once-per-session)", 2 );
2930                 append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
2931                 append( sb, "Expression: ${jomc.validateMainClassesExecutionStrategy}", 3 );
2932                 append( sb, "", 0 );
2933 
2934                 append( sb, "velocityProperties", 2 );
2935                 append( sb, "Velocity runtime properties.\n<velocityProperties>\n\u00a0\u00a0<velocityProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</velocityProperty>\n</velocityProperties>\n", 3 );
2936                 append( sb, "", 0 );
2937 
2938                 append( sb, "velocityPropertyResources", 2 );
2939                 append( sb, "Velocity runtime property resources.\n<velocityPropertyResources>\n\u00a0\u00a0<velocityPropertyResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</velocityPropertyResource>\n</velocityPropertyResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
2940                 append( sb, "", 0 );
2941 
2942                 append( sb, "verbose (Default: false)", 2 );
2943                 append( sb, "Controls verbosity of the plugin.", 3 );
2944                 append( sb, "Expression: ${jomc.verbose}", 3 );
2945                 append( sb, "", 0 );
2946             }
2947         }
2948 
2949         if ( goal == null || goal.length() <= 0 || "validate-main-classpath".equals( goal ) )
2950         {
2951             append( sb, "jomc:validate-main-classpath", 0 );
2952             append( sb, "Validates a projects\' main classpath class file model objects.", 1 );
2953             append( sb, "", 0 );
2954             if ( detail )
2955             {
2956                 append( sb, "Available parameters:", 1 );
2957                 append( sb, "", 0 );
2958 
2959                 append( sb, "classesDirectory", 2 );
2960                 append( sb, "Directory holding the compiled class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'outputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
2961                 append( sb, "", 0 );
2962 
2963                 append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
2964                 append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
2965                 append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
2966                 append( sb, "", 0 );
2967 
2968                 append( sb, "classProcessingEnabled (Default: true)", 2 );
2969                 append( sb, "Controls processing of class files.", 3 );
2970                 append( sb, "Expression: ${jomc.classProcessing}", 3 );
2971                 append( sb, "", 0 );
2972 
2973                 append( sb, "defaultTemplateEncoding", 2 );
2974                 append( sb, "The encoding to use for reading templates.", 3 );
2975                 append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
2976                 append( sb, "", 0 );
2977 
2978                 append( sb, "defaultTemplateProfile", 2 );
2979                 append( sb, "The default template profile to use when accessing templates.", 3 );
2980                 append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
2981                 append( sb, "", 0 );
2982 
2983                 append( sb, "indentation", 2 );
2984                 append( sb, "The indentation string (\'\\t\' for tab).", 3 );
2985                 append( sb, "Expression: ${jomc.indentation}", 3 );
2986                 append( sb, "", 0 );
2987 
2988                 append( sb, "javaValidationEnabled (Default: true)", 2 );
2989                 append( sb, "Flag controlling Java validation.", 3 );
2990                 append( sb, "Expression: ${jomc.javaValidationEnabled}", 3 );
2991                 append( sb, "", 0 );
2992 
2993                 append( sb, "lineSeparator", 2 );
2994                 append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
2995                 append( sb, "Expression: ${jomc.lineSeparator}", 3 );
2996                 append( sb, "", 0 );
2997 
2998                 append( sb, "locale", 2 );
2999                 append( sb, "The locale.\n<locale>\n\u00a0\u00a0<language>Lowercase\u00a0two-letter\u00a0ISO-639\u00a0code.</language>\n\u00a0\u00a0<country>Uppercase\u00a0two-letter\u00a0ISO-3166\u00a0code.</country>\n\u00a0\u00a0<variant>Vendor\u00a0and\u00a0browser\u00a0specific\u00a0code.</variant>\n</locale>\n", 3 );
3000                 append( sb, "", 0 );
3001 
3002                 append( sb, "model (Default: http://jomc.org/model)", 2 );
3003                 append( sb, "The identifier of the model to process.", 3 );
3004                 append( sb, "Expression: ${jomc.model}", 3 );
3005                 append( sb, "", 0 );
3006 
3007                 append( sb, "modelContextAttributes", 2 );
3008                 append( sb, "ModelContext attributes.\n<modelContextAttributes>\n\u00a0\u00a0<modelContextAttribute>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0attribute.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0attribute.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0attributes\'s\u00a0object.</type>\n\u00a0\u00a0</modelContextAttribute>\n</modelContextAttributes>\n", 3 );
3009                 append( sb, "", 0 );
3010 
3011                 append( sb, "modelContextFactoryClassName", 2 );
3012                 append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
3013                 append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
3014                 append( sb, "", 0 );
3015 
3016                 append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
3017                 append( sb, "Controls model object class path resolution.", 3 );
3018                 append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
3019                 append( sb, "", 0 );
3020 
3021                 append( sb, "modelProcessingEnabled (Default: true)", 2 );
3022                 append( sb, "Controls processing of models.", 3 );
3023                 append( sb, "Expression: ${jomc.modelProcessing}", 3 );
3024                 append( sb, "", 0 );
3025 
3026                 append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
3027                 append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
3028                 append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
3029                 append( sb, "", 0 );
3030 
3031                 append( sb, "modletLocation", 2 );
3032                 append( sb, "The location to search for modlets.", 3 );
3033                 append( sb, "Expression: ${jomc.modletLocation}", 3 );
3034                 append( sb, "", 0 );
3035 
3036                 append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
3037                 append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
3038                 append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
3039                 append( sb, "", 0 );
3040 
3041                 append( sb, "modletSchemaSystemId", 2 );
3042                 append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
3043                 append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
3044                 append( sb, "", 0 );
3045 
3046                 append( sb, "moduleLocation", 2 );
3047                 append( sb, "The location to search for modules.", 3 );
3048                 append( sb, "Expression: ${jomc.moduleLocation}", 3 );
3049                 append( sb, "", 0 );
3050 
3051                 append( sb, "moduleName (Default: ${project.name})", 2 );
3052                 append( sb, "Name of the module to process.", 3 );
3053                 append( sb, "Expression: ${jomc.moduleName}", 3 );
3054                 append( sb, "", 0 );
3055 
3056                 append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
3057                 append( sb, "Output directory of the project.", 3 );
3058                 append( sb, "Expression: ${jomc.outputDirectory}", 3 );
3059                 append( sb, "", 0 );
3060 
3061                 append( sb, "platformProviderLocation", 2 );
3062                 append( sb, "The location to search for platform providers.", 3 );
3063                 append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
3064                 append( sb, "", 0 );
3065 
3066                 append( sb, "providerLocation", 2 );
3067                 append( sb, "The location to search for providers.", 3 );
3068                 append( sb, "Expression: ${jomc.providerLocation}", 3 );
3069                 append( sb, "", 0 );
3070 
3071                 append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
3072                 append( sb, "Directory holding the reports of the project.", 3 );
3073                 append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
3074                 append( sb, "", 0 );
3075 
3076                 append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
3077                 append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
3078                 append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
3079                 append( sb, "", 0 );
3080 
3081                 append( sb, "resourceProcessingEnabled (Default: true)", 2 );
3082                 append( sb, "Controls processing of resource files.", 3 );
3083                 append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
3084                 append( sb, "", 0 );
3085 
3086                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
3087                 append( sb, "Directory holding the session related files of the project.", 3 );
3088                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
3089                 append( sb, "", 0 );
3090 
3091                 append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
3092                 append( sb, "Directory holding the source files of the project.", 3 );
3093                 append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
3094                 append( sb, "", 0 );
3095 
3096                 append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
3097                 append( sb, "The encoding to use for reading and writing files.", 3 );
3098                 append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
3099                 append( sb, "", 0 );
3100 
3101                 append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
3102                 append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
3103                 append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
3104                 append( sb, "", 0 );
3105 
3106                 append( sb, "sourceProcessingEnabled (Default: true)", 2 );
3107                 append( sb, "Controls processing of source code files.", 3 );
3108                 append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
3109                 append( sb, "", 0 );
3110 
3111                 append( sb, "templateEncoding", 2 );
3112                 append( sb, "The encoding to use for reading templates.\nDeprecated: As of JOMC 1.3, please use the \'defaultTemplateEncoding\' parameter. This parameter will be removed in version 2.0.\n", 3 );
3113                 append( sb, "Expression: ${jomc.templateEncoding}", 3 );
3114                 append( sb, "", 0 );
3115 
3116                 append( sb, "templateLocation", 2 );
3117                 append( sb, "Location to search for templates in addition to searching the class path of the plugin.\nFirst an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a directory name relative to the base directory of the project. If that directory exists, that directory is used. If nothing is found at the given location, a warning message is logged.\n", 3 );
3118                 append( sb, "Expression: ${jomc.templateLocation}", 3 );
3119                 append( sb, "", 0 );
3120 
3121                 append( sb, "templateParameterResources", 2 );
3122                 append( sb, "Template parameter resources.\n<templateParameterResources>\n\u00a0\u00a0<templateParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</templateParameterResource>\n</templateParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
3123                 append( sb, "", 0 );
3124 
3125                 append( sb, "templateParameters", 2 );
3126                 append( sb, "Template parameters.\n<templateParameters>\n\u00a0\u00a0<templateParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</templateParameter>\n</templateParameters>\n", 3 );
3127                 append( sb, "", 0 );
3128 
3129                 append( sb, "templateProfile", 2 );
3130                 append( sb, "The template profile to use when accessing templates.", 3 );
3131                 append( sb, "Expression: ${jomc.templateProfile}", 3 );
3132                 append( sb, "", 0 );
3133 
3134                 append( sb, "testClassesDirectory", 2 );
3135                 append( sb, "Directory holding the compiled test class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'testOutputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
3136                 append( sb, "", 0 );
3137 
3138                 append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
3139                 append( sb, "Name of the test module to process.", 3 );
3140                 append( sb, "Expression: ${jomc.testModuleName}", 3 );
3141                 append( sb, "", 0 );
3142 
3143                 append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
3144                 append( sb, "Test output directory of the project.", 3 );
3145                 append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
3146                 append( sb, "", 0 );
3147 
3148                 append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
3149                 append( sb, "Directory holding the test source files of the project.", 3 );
3150                 append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
3151                 append( sb, "", 0 );
3152 
3153                 append( sb, "transformationOutputProperties", 2 );
3154                 append( sb, "Global transformation output properties.\n<transformationOutputProperties>\n\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</transformationOutputProperty>\n</transformationOutputProperties>\n", 3 );
3155                 append( sb, "", 0 );
3156 
3157                 append( sb, "transformationParameterResources", 2 );
3158                 append( sb, "Global transformation parameter resources.\n<transformationParameterResources>\n\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</transformationParameterResource>\n</transformationParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
3159                 append( sb, "", 0 );
3160 
3161                 append( sb, "transformationParameters", 2 );
3162                 append( sb, "Global transformation parameters.\n<transformationParameters>\n\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</transformationParameter>\n</transformationParameters>\n", 3 );
3163                 append( sb, "", 0 );
3164 
3165                 append( sb, "transformerLocation", 2 );
3166                 append( sb, "The location to search for transformers.", 3 );
3167                 append( sb, "Expression: ${jomc.transformerLocation}", 3 );
3168                 append( sb, "", 0 );
3169 
3170                 append( sb, "validateMainClasspathExecutionStrategy (Default: once-per-session)", 2 );
3171                 append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
3172                 append( sb, "Expression: ${jomc.validateMainClasspathExecutionStrategy}", 3 );
3173                 append( sb, "", 0 );
3174 
3175                 append( sb, "velocityProperties", 2 );
3176                 append( sb, "Velocity runtime properties.\n<velocityProperties>\n\u00a0\u00a0<velocityProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</velocityProperty>\n</velocityProperties>\n", 3 );
3177                 append( sb, "", 0 );
3178 
3179                 append( sb, "velocityPropertyResources", 2 );
3180                 append( sb, "Velocity runtime property resources.\n<velocityPropertyResources>\n\u00a0\u00a0<velocityPropertyResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</velocityPropertyResource>\n</velocityPropertyResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
3181                 append( sb, "", 0 );
3182 
3183                 append( sb, "verbose (Default: false)", 2 );
3184                 append( sb, "Controls verbosity of the plugin.", 3 );
3185                 append( sb, "Expression: ${jomc.verbose}", 3 );
3186                 append( sb, "", 0 );
3187             }
3188         }
3189 
3190         if ( goal == null || goal.length() <= 0 || "validate-main-model".equals( goal ) )
3191         {
3192             append( sb, "jomc:validate-main-model", 0 );
3193             append( sb, "Validates a project\'s main model.", 1 );
3194             append( sb, "", 0 );
3195             if ( detail )
3196             {
3197                 append( sb, "Available parameters:", 1 );
3198                 append( sb, "", 0 );
3199 
3200                 append( sb, "classesDirectory", 2 );
3201                 append( sb, "Directory holding the compiled class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'outputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
3202                 append( sb, "", 0 );
3203 
3204                 append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
3205                 append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
3206                 append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
3207                 append( sb, "", 0 );
3208 
3209                 append( sb, "classProcessingEnabled (Default: true)", 2 );
3210                 append( sb, "Controls processing of class files.", 3 );
3211                 append( sb, "Expression: ${jomc.classProcessing}", 3 );
3212                 append( sb, "", 0 );
3213 
3214                 append( sb, "defaultTemplateEncoding", 2 );
3215                 append( sb, "The encoding to use for reading templates.", 3 );
3216                 append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
3217                 append( sb, "", 0 );
3218 
3219                 append( sb, "defaultTemplateProfile", 2 );
3220                 append( sb, "The default template profile to use when accessing templates.", 3 );
3221                 append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
3222                 append( sb, "", 0 );
3223 
3224                 append( sb, "indentation", 2 );
3225                 append( sb, "The indentation string (\'\\t\' for tab).", 3 );
3226                 append( sb, "Expression: ${jomc.indentation}", 3 );
3227                 append( sb, "", 0 );
3228 
3229                 append( sb, "javaValidationEnabled (Default: true)", 2 );
3230                 append( sb, "Flag controlling Java validation.", 3 );
3231                 append( sb, "Expression: ${jomc.javaValidationEnabled}", 3 );
3232                 append( sb, "", 0 );
3233 
3234                 append( sb, "lineSeparator", 2 );
3235                 append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
3236                 append( sb, "Expression: ${jomc.lineSeparator}", 3 );
3237                 append( sb, "", 0 );
3238 
3239                 append( sb, "locale", 2 );
3240                 append( sb, "The locale.\n<locale>\n\u00a0\u00a0<language>Lowercase\u00a0two-letter\u00a0ISO-639\u00a0code.</language>\n\u00a0\u00a0<country>Uppercase\u00a0two-letter\u00a0ISO-3166\u00a0code.</country>\n\u00a0\u00a0<variant>Vendor\u00a0and\u00a0browser\u00a0specific\u00a0code.</variant>\n</locale>\n", 3 );
3241                 append( sb, "", 0 );
3242 
3243                 append( sb, "model (Default: http://jomc.org/model)", 2 );
3244                 append( sb, "The identifier of the model to process.", 3 );
3245                 append( sb, "Expression: ${jomc.model}", 3 );
3246                 append( sb, "", 0 );
3247 
3248                 append( sb, "modelContextAttributes", 2 );
3249                 append( sb, "ModelContext attributes.\n<modelContextAttributes>\n\u00a0\u00a0<modelContextAttribute>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0attribute.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0attribute.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0attributes\'s\u00a0object.</type>\n\u00a0\u00a0</modelContextAttribute>\n</modelContextAttributes>\n", 3 );
3250                 append( sb, "", 0 );
3251 
3252                 append( sb, "modelContextFactoryClassName", 2 );
3253                 append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
3254                 append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
3255                 append( sb, "", 0 );
3256 
3257                 append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
3258                 append( sb, "Controls model object class path resolution.", 3 );
3259                 append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
3260                 append( sb, "", 0 );
3261 
3262                 append( sb, "modelProcessingEnabled (Default: true)", 2 );
3263                 append( sb, "Controls processing of models.", 3 );
3264                 append( sb, "Expression: ${jomc.modelProcessing}", 3 );
3265                 append( sb, "", 0 );
3266 
3267                 append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
3268                 append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
3269                 append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
3270                 append( sb, "", 0 );
3271 
3272                 append( sb, "modletLocation", 2 );
3273                 append( sb, "The location to search for modlets.", 3 );
3274                 append( sb, "Expression: ${jomc.modletLocation}", 3 );
3275                 append( sb, "", 0 );
3276 
3277                 append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
3278                 append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
3279                 append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
3280                 append( sb, "", 0 );
3281 
3282                 append( sb, "modletSchemaSystemId", 2 );
3283                 append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
3284                 append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
3285                 append( sb, "", 0 );
3286 
3287                 append( sb, "moduleLocation", 2 );
3288                 append( sb, "The location to search for modules.", 3 );
3289                 append( sb, "Expression: ${jomc.moduleLocation}", 3 );
3290                 append( sb, "", 0 );
3291 
3292                 append( sb, "moduleName (Default: ${project.name})", 2 );
3293                 append( sb, "Name of the module to process.", 3 );
3294                 append( sb, "Expression: ${jomc.moduleName}", 3 );
3295                 append( sb, "", 0 );
3296 
3297                 append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
3298                 append( sb, "Output directory of the project.", 3 );
3299                 append( sb, "Expression: ${jomc.outputDirectory}", 3 );
3300                 append( sb, "", 0 );
3301 
3302                 append( sb, "platformProviderLocation", 2 );
3303                 append( sb, "The location to search for platform providers.", 3 );
3304                 append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
3305                 append( sb, "", 0 );
3306 
3307                 append( sb, "providerLocation", 2 );
3308                 append( sb, "The location to search for providers.", 3 );
3309                 append( sb, "Expression: ${jomc.providerLocation}", 3 );
3310                 append( sb, "", 0 );
3311 
3312                 append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
3313                 append( sb, "Directory holding the reports of the project.", 3 );
3314                 append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
3315                 append( sb, "", 0 );
3316 
3317                 append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
3318                 append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
3319                 append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
3320                 append( sb, "", 0 );
3321 
3322                 append( sb, "resourceProcessingEnabled (Default: true)", 2 );
3323                 append( sb, "Controls processing of resource files.", 3 );
3324                 append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
3325                 append( sb, "", 0 );
3326 
3327                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
3328                 append( sb, "Directory holding the session related files of the project.", 3 );
3329                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
3330                 append( sb, "", 0 );
3331 
3332                 append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
3333                 append( sb, "Directory holding the source files of the project.", 3 );
3334                 append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
3335                 append( sb, "", 0 );
3336 
3337                 append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
3338                 append( sb, "The encoding to use for reading and writing files.", 3 );
3339                 append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
3340                 append( sb, "", 0 );
3341 
3342                 append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
3343                 append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
3344                 append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
3345                 append( sb, "", 0 );
3346 
3347                 append( sb, "sourceProcessingEnabled (Default: true)", 2 );
3348                 append( sb, "Controls processing of source code files.", 3 );
3349                 append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
3350                 append( sb, "", 0 );
3351 
3352                 append( sb, "templateEncoding", 2 );
3353                 append( sb, "The encoding to use for reading templates.\nDeprecated: As of JOMC 1.3, please use the \'defaultTemplateEncoding\' parameter. This parameter will be removed in version 2.0.\n", 3 );
3354                 append( sb, "Expression: ${jomc.templateEncoding}", 3 );
3355                 append( sb, "", 0 );
3356 
3357                 append( sb, "templateLocation", 2 );
3358                 append( sb, "Location to search for templates in addition to searching the class path of the plugin.\nFirst an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a directory name relative to the base directory of the project. If that directory exists, that directory is used. If nothing is found at the given location, a warning message is logged.\n", 3 );
3359                 append( sb, "Expression: ${jomc.templateLocation}", 3 );
3360                 append( sb, "", 0 );
3361 
3362                 append( sb, "templateParameterResources", 2 );
3363                 append( sb, "Template parameter resources.\n<templateParameterResources>\n\u00a0\u00a0<templateParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</templateParameterResource>\n</templateParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
3364                 append( sb, "", 0 );
3365 
3366                 append( sb, "templateParameters", 2 );
3367                 append( sb, "Template parameters.\n<templateParameters>\n\u00a0\u00a0<templateParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</templateParameter>\n</templateParameters>\n", 3 );
3368                 append( sb, "", 0 );
3369 
3370                 append( sb, "templateProfile", 2 );
3371                 append( sb, "The template profile to use when accessing templates.", 3 );
3372                 append( sb, "Expression: ${jomc.templateProfile}", 3 );
3373                 append( sb, "", 0 );
3374 
3375                 append( sb, "testClassesDirectory", 2 );
3376                 append( sb, "Directory holding the compiled test class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'testOutputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
3377                 append( sb, "", 0 );
3378 
3379                 append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
3380                 append( sb, "Name of the test module to process.", 3 );
3381                 append( sb, "Expression: ${jomc.testModuleName}", 3 );
3382                 append( sb, "", 0 );
3383 
3384                 append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
3385                 append( sb, "Test output directory of the project.", 3 );
3386                 append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
3387                 append( sb, "", 0 );
3388 
3389                 append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
3390                 append( sb, "Directory holding the test source files of the project.", 3 );
3391                 append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
3392                 append( sb, "", 0 );
3393 
3394                 append( sb, "transformationOutputProperties", 2 );
3395                 append( sb, "Global transformation output properties.\n<transformationOutputProperties>\n\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</transformationOutputProperty>\n</transformationOutputProperties>\n", 3 );
3396                 append( sb, "", 0 );
3397 
3398                 append( sb, "transformationParameterResources", 2 );
3399                 append( sb, "Global transformation parameter resources.\n<transformationParameterResources>\n\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</transformationParameterResource>\n</transformationParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
3400                 append( sb, "", 0 );
3401 
3402                 append( sb, "transformationParameters", 2 );
3403                 append( sb, "Global transformation parameters.\n<transformationParameters>\n\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</transformationParameter>\n</transformationParameters>\n", 3 );
3404                 append( sb, "", 0 );
3405 
3406                 append( sb, "transformerLocation", 2 );
3407                 append( sb, "The location to search for transformers.", 3 );
3408                 append( sb, "Expression: ${jomc.transformerLocation}", 3 );
3409                 append( sb, "", 0 );
3410 
3411                 append( sb, "validateMainModelExecutionStrategy (Default: once-per-session)", 2 );
3412                 append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
3413                 append( sb, "Expression: ${jomc.validateMainModelExecutionStrategy}", 3 );
3414                 append( sb, "", 0 );
3415 
3416                 append( sb, "velocityProperties", 2 );
3417                 append( sb, "Velocity runtime properties.\n<velocityProperties>\n\u00a0\u00a0<velocityProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</velocityProperty>\n</velocityProperties>\n", 3 );
3418                 append( sb, "", 0 );
3419 
3420                 append( sb, "velocityPropertyResources", 2 );
3421                 append( sb, "Velocity runtime property resources.\n<velocityPropertyResources>\n\u00a0\u00a0<velocityPropertyResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</velocityPropertyResource>\n</velocityPropertyResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
3422                 append( sb, "", 0 );
3423 
3424                 append( sb, "verbose (Default: false)", 2 );
3425                 append( sb, "Controls verbosity of the plugin.", 3 );
3426                 append( sb, "Expression: ${jomc.verbose}", 3 );
3427                 append( sb, "", 0 );
3428             }
3429         }
3430 
3431         if ( goal == null || goal.length() <= 0 || "validate-test-classes".equals( goal ) )
3432         {
3433             append( sb, "jomc:validate-test-classes", 0 );
3434             append( sb, "Validates a projects\' test class file model objects.", 1 );
3435             append( sb, "", 0 );
3436             if ( detail )
3437             {
3438                 append( sb, "Available parameters:", 1 );
3439                 append( sb, "", 0 );
3440 
3441                 append( sb, "classesDirectory", 2 );
3442                 append( sb, "Directory holding the compiled class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'outputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
3443                 append( sb, "", 0 );
3444 
3445                 append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
3446                 append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
3447                 append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
3448                 append( sb, "", 0 );
3449 
3450                 append( sb, "classProcessingEnabled (Default: true)", 2 );
3451                 append( sb, "Controls processing of class files.", 3 );
3452                 append( sb, "Expression: ${jomc.classProcessing}", 3 );
3453                 append( sb, "", 0 );
3454 
3455                 append( sb, "defaultTemplateEncoding", 2 );
3456                 append( sb, "The encoding to use for reading templates.", 3 );
3457                 append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
3458                 append( sb, "", 0 );
3459 
3460                 append( sb, "defaultTemplateProfile", 2 );
3461                 append( sb, "The default template profile to use when accessing templates.", 3 );
3462                 append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
3463                 append( sb, "", 0 );
3464 
3465                 append( sb, "indentation", 2 );
3466                 append( sb, "The indentation string (\'\\t\' for tab).", 3 );
3467                 append( sb, "Expression: ${jomc.indentation}", 3 );
3468                 append( sb, "", 0 );
3469 
3470                 append( sb, "javaValidationEnabled (Default: true)", 2 );
3471                 append( sb, "Flag controlling Java validation.", 3 );
3472                 append( sb, "Expression: ${jomc.javaValidationEnabled}", 3 );
3473                 append( sb, "", 0 );
3474 
3475                 append( sb, "lineSeparator", 2 );
3476                 append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
3477                 append( sb, "Expression: ${jomc.lineSeparator}", 3 );
3478                 append( sb, "", 0 );
3479 
3480                 append( sb, "locale", 2 );
3481                 append( sb, "The locale.\n<locale>\n\u00a0\u00a0<language>Lowercase\u00a0two-letter\u00a0ISO-639\u00a0code.</language>\n\u00a0\u00a0<country>Uppercase\u00a0two-letter\u00a0ISO-3166\u00a0code.</country>\n\u00a0\u00a0<variant>Vendor\u00a0and\u00a0browser\u00a0specific\u00a0code.</variant>\n</locale>\n", 3 );
3482                 append( sb, "", 0 );
3483 
3484                 append( sb, "model (Default: http://jomc.org/model)", 2 );
3485                 append( sb, "The identifier of the model to process.", 3 );
3486                 append( sb, "Expression: ${jomc.model}", 3 );
3487                 append( sb, "", 0 );
3488 
3489                 append( sb, "modelContextAttributes", 2 );
3490                 append( sb, "ModelContext attributes.\n<modelContextAttributes>\n\u00a0\u00a0<modelContextAttribute>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0attribute.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0attribute.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0attributes\'s\u00a0object.</type>\n\u00a0\u00a0</modelContextAttribute>\n</modelContextAttributes>\n", 3 );
3491                 append( sb, "", 0 );
3492 
3493                 append( sb, "modelContextFactoryClassName", 2 );
3494                 append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
3495                 append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
3496                 append( sb, "", 0 );
3497 
3498                 append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
3499                 append( sb, "Controls model object class path resolution.", 3 );
3500                 append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
3501                 append( sb, "", 0 );
3502 
3503                 append( sb, "modelProcessingEnabled (Default: true)", 2 );
3504                 append( sb, "Controls processing of models.", 3 );
3505                 append( sb, "Expression: ${jomc.modelProcessing}", 3 );
3506                 append( sb, "", 0 );
3507 
3508                 append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
3509                 append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
3510                 append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
3511                 append( sb, "", 0 );
3512 
3513                 append( sb, "modletLocation", 2 );
3514                 append( sb, "The location to search for modlets.", 3 );
3515                 append( sb, "Expression: ${jomc.modletLocation}", 3 );
3516                 append( sb, "", 0 );
3517 
3518                 append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
3519                 append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
3520                 append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
3521                 append( sb, "", 0 );
3522 
3523                 append( sb, "modletSchemaSystemId", 2 );
3524                 append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
3525                 append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
3526                 append( sb, "", 0 );
3527 
3528                 append( sb, "moduleLocation", 2 );
3529                 append( sb, "The location to search for modules.", 3 );
3530                 append( sb, "Expression: ${jomc.moduleLocation}", 3 );
3531                 append( sb, "", 0 );
3532 
3533                 append( sb, "moduleName (Default: ${project.name})", 2 );
3534                 append( sb, "Name of the module to process.", 3 );
3535                 append( sb, "Expression: ${jomc.moduleName}", 3 );
3536                 append( sb, "", 0 );
3537 
3538                 append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
3539                 append( sb, "Output directory of the project.", 3 );
3540                 append( sb, "Expression: ${jomc.outputDirectory}", 3 );
3541                 append( sb, "", 0 );
3542 
3543                 append( sb, "platformProviderLocation", 2 );
3544                 append( sb, "The location to search for platform providers.", 3 );
3545                 append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
3546                 append( sb, "", 0 );
3547 
3548                 append( sb, "providerLocation", 2 );
3549                 append( sb, "The location to search for providers.", 3 );
3550                 append( sb, "Expression: ${jomc.providerLocation}", 3 );
3551                 append( sb, "", 0 );
3552 
3553                 append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
3554                 append( sb, "Directory holding the reports of the project.", 3 );
3555                 append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
3556                 append( sb, "", 0 );
3557 
3558                 append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
3559                 append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
3560                 append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
3561                 append( sb, "", 0 );
3562 
3563                 append( sb, "resourceProcessingEnabled (Default: true)", 2 );
3564                 append( sb, "Controls processing of resource files.", 3 );
3565                 append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
3566                 append( sb, "", 0 );
3567 
3568                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
3569                 append( sb, "Directory holding the session related files of the project.", 3 );
3570                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
3571                 append( sb, "", 0 );
3572 
3573                 append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
3574                 append( sb, "Directory holding the source files of the project.", 3 );
3575                 append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
3576                 append( sb, "", 0 );
3577 
3578                 append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
3579                 append( sb, "The encoding to use for reading and writing files.", 3 );
3580                 append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
3581                 append( sb, "", 0 );
3582 
3583                 append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
3584                 append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
3585                 append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
3586                 append( sb, "", 0 );
3587 
3588                 append( sb, "sourceProcessingEnabled (Default: true)", 2 );
3589                 append( sb, "Controls processing of source code files.", 3 );
3590                 append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
3591                 append( sb, "", 0 );
3592 
3593                 append( sb, "templateEncoding", 2 );
3594                 append( sb, "The encoding to use for reading templates.\nDeprecated: As of JOMC 1.3, please use the \'defaultTemplateEncoding\' parameter. This parameter will be removed in version 2.0.\n", 3 );
3595                 append( sb, "Expression: ${jomc.templateEncoding}", 3 );
3596                 append( sb, "", 0 );
3597 
3598                 append( sb, "templateLocation", 2 );
3599                 append( sb, "Location to search for templates in addition to searching the class path of the plugin.\nFirst an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a directory name relative to the base directory of the project. If that directory exists, that directory is used. If nothing is found at the given location, a warning message is logged.\n", 3 );
3600                 append( sb, "Expression: ${jomc.templateLocation}", 3 );
3601                 append( sb, "", 0 );
3602 
3603                 append( sb, "templateParameterResources", 2 );
3604                 append( sb, "Template parameter resources.\n<templateParameterResources>\n\u00a0\u00a0<templateParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</templateParameterResource>\n</templateParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
3605                 append( sb, "", 0 );
3606 
3607                 append( sb, "templateParameters", 2 );
3608                 append( sb, "Template parameters.\n<templateParameters>\n\u00a0\u00a0<templateParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</templateParameter>\n</templateParameters>\n", 3 );
3609                 append( sb, "", 0 );
3610 
3611                 append( sb, "templateProfile", 2 );
3612                 append( sb, "The template profile to use when accessing templates.", 3 );
3613                 append( sb, "Expression: ${jomc.templateProfile}", 3 );
3614                 append( sb, "", 0 );
3615 
3616                 append( sb, "testClassesDirectory", 2 );
3617                 append( sb, "Directory holding the compiled test class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'testOutputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
3618                 append( sb, "", 0 );
3619 
3620                 append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
3621                 append( sb, "Name of the test module to process.", 3 );
3622                 append( sb, "Expression: ${jomc.testModuleName}", 3 );
3623                 append( sb, "", 0 );
3624 
3625                 append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
3626                 append( sb, "Test output directory of the project.", 3 );
3627                 append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
3628                 append( sb, "", 0 );
3629 
3630                 append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
3631                 append( sb, "Directory holding the test source files of the project.", 3 );
3632                 append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
3633                 append( sb, "", 0 );
3634 
3635                 append( sb, "transformationOutputProperties", 2 );
3636                 append( sb, "Global transformation output properties.\n<transformationOutputProperties>\n\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</transformationOutputProperty>\n</transformationOutputProperties>\n", 3 );
3637                 append( sb, "", 0 );
3638 
3639                 append( sb, "transformationParameterResources", 2 );
3640                 append( sb, "Global transformation parameter resources.\n<transformationParameterResources>\n\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</transformationParameterResource>\n</transformationParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
3641                 append( sb, "", 0 );
3642 
3643                 append( sb, "transformationParameters", 2 );
3644                 append( sb, "Global transformation parameters.\n<transformationParameters>\n\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</transformationParameter>\n</transformationParameters>\n", 3 );
3645                 append( sb, "", 0 );
3646 
3647                 append( sb, "transformerLocation", 2 );
3648                 append( sb, "The location to search for transformers.", 3 );
3649                 append( sb, "Expression: ${jomc.transformerLocation}", 3 );
3650                 append( sb, "", 0 );
3651 
3652                 append( sb, "validateTestClassesExecutionStrategy (Default: once-per-session)", 2 );
3653                 append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
3654                 append( sb, "Expression: ${jomc.validateTestClassesExecutionStrategy}", 3 );
3655                 append( sb, "", 0 );
3656 
3657                 append( sb, "velocityProperties", 2 );
3658                 append( sb, "Velocity runtime properties.\n<velocityProperties>\n\u00a0\u00a0<velocityProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</velocityProperty>\n</velocityProperties>\n", 3 );
3659                 append( sb, "", 0 );
3660 
3661                 append( sb, "velocityPropertyResources", 2 );
3662                 append( sb, "Velocity runtime property resources.\n<velocityPropertyResources>\n\u00a0\u00a0<velocityPropertyResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</velocityPropertyResource>\n</velocityPropertyResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
3663                 append( sb, "", 0 );
3664 
3665                 append( sb, "verbose (Default: false)", 2 );
3666                 append( sb, "Controls verbosity of the plugin.", 3 );
3667                 append( sb, "Expression: ${jomc.verbose}", 3 );
3668                 append( sb, "", 0 );
3669             }
3670         }
3671 
3672         if ( goal == null || goal.length() <= 0 || "validate-test-classpath".equals( goal ) )
3673         {
3674             append( sb, "jomc:validate-test-classpath", 0 );
3675             append( sb, "Validates a projects\' test class path class file model objects.", 1 );
3676             append( sb, "", 0 );
3677             if ( detail )
3678             {
3679                 append( sb, "Available parameters:", 1 );
3680                 append( sb, "", 0 );
3681 
3682                 append( sb, "classesDirectory", 2 );
3683                 append( sb, "Directory holding the compiled class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'outputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
3684                 append( sb, "", 0 );
3685 
3686                 append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
3687                 append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
3688                 append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
3689                 append( sb, "", 0 );
3690 
3691                 append( sb, "classProcessingEnabled (Default: true)", 2 );
3692                 append( sb, "Controls processing of class files.", 3 );
3693                 append( sb, "Expression: ${jomc.classProcessing}", 3 );
3694                 append( sb, "", 0 );
3695 
3696                 append( sb, "defaultTemplateEncoding", 2 );
3697                 append( sb, "The encoding to use for reading templates.", 3 );
3698                 append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
3699                 append( sb, "", 0 );
3700 
3701                 append( sb, "defaultTemplateProfile", 2 );
3702                 append( sb, "The default template profile to use when accessing templates.", 3 );
3703                 append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
3704                 append( sb, "", 0 );
3705 
3706                 append( sb, "indentation", 2 );
3707                 append( sb, "The indentation string (\'\\t\' for tab).", 3 );
3708                 append( sb, "Expression: ${jomc.indentation}", 3 );
3709                 append( sb, "", 0 );
3710 
3711                 append( sb, "javaValidationEnabled (Default: true)", 2 );
3712                 append( sb, "Flag controlling Java validation.", 3 );
3713                 append( sb, "Expression: ${jomc.javaValidationEnabled}", 3 );
3714                 append( sb, "", 0 );
3715 
3716                 append( sb, "lineSeparator", 2 );
3717                 append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
3718                 append( sb, "Expression: ${jomc.lineSeparator}", 3 );
3719                 append( sb, "", 0 );
3720 
3721                 append( sb, "locale", 2 );
3722                 append( sb, "The locale.\n<locale>\n\u00a0\u00a0<language>Lowercase\u00a0two-letter\u00a0ISO-639\u00a0code.</language>\n\u00a0\u00a0<country>Uppercase\u00a0two-letter\u00a0ISO-3166\u00a0code.</country>\n\u00a0\u00a0<variant>Vendor\u00a0and\u00a0browser\u00a0specific\u00a0code.</variant>\n</locale>\n", 3 );
3723                 append( sb, "", 0 );
3724 
3725                 append( sb, "model (Default: http://jomc.org/model)", 2 );
3726                 append( sb, "The identifier of the model to process.", 3 );
3727                 append( sb, "Expression: ${jomc.model}", 3 );
3728                 append( sb, "", 0 );
3729 
3730                 append( sb, "modelContextAttributes", 2 );
3731                 append( sb, "ModelContext attributes.\n<modelContextAttributes>\n\u00a0\u00a0<modelContextAttribute>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0attribute.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0attribute.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0attributes\'s\u00a0object.</type>\n\u00a0\u00a0</modelContextAttribute>\n</modelContextAttributes>\n", 3 );
3732                 append( sb, "", 0 );
3733 
3734                 append( sb, "modelContextFactoryClassName", 2 );
3735                 append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
3736                 append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
3737                 append( sb, "", 0 );
3738 
3739                 append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
3740                 append( sb, "Controls model object class path resolution.", 3 );
3741                 append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
3742                 append( sb, "", 0 );
3743 
3744                 append( sb, "modelProcessingEnabled (Default: true)", 2 );
3745                 append( sb, "Controls processing of models.", 3 );
3746                 append( sb, "Expression: ${jomc.modelProcessing}", 3 );
3747                 append( sb, "", 0 );
3748 
3749                 append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
3750                 append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
3751                 append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
3752                 append( sb, "", 0 );
3753 
3754                 append( sb, "modletLocation", 2 );
3755                 append( sb, "The location to search for modlets.", 3 );
3756                 append( sb, "Expression: ${jomc.modletLocation}", 3 );
3757                 append( sb, "", 0 );
3758 
3759                 append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
3760                 append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
3761                 append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
3762                 append( sb, "", 0 );
3763 
3764                 append( sb, "modletSchemaSystemId", 2 );
3765                 append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
3766                 append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
3767                 append( sb, "", 0 );
3768 
3769                 append( sb, "moduleLocation", 2 );
3770                 append( sb, "The location to search for modules.", 3 );
3771                 append( sb, "Expression: ${jomc.moduleLocation}", 3 );
3772                 append( sb, "", 0 );
3773 
3774                 append( sb, "moduleName (Default: ${project.name})", 2 );
3775                 append( sb, "Name of the module to process.", 3 );
3776                 append( sb, "Expression: ${jomc.moduleName}", 3 );
3777                 append( sb, "", 0 );
3778 
3779                 append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
3780                 append( sb, "Output directory of the project.", 3 );
3781                 append( sb, "Expression: ${jomc.outputDirectory}", 3 );
3782                 append( sb, "", 0 );
3783 
3784                 append( sb, "platformProviderLocation", 2 );
3785                 append( sb, "The location to search for platform providers.", 3 );
3786                 append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
3787                 append( sb, "", 0 );
3788 
3789                 append( sb, "providerLocation", 2 );
3790                 append( sb, "The location to search for providers.", 3 );
3791                 append( sb, "Expression: ${jomc.providerLocation}", 3 );
3792                 append( sb, "", 0 );
3793 
3794                 append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
3795                 append( sb, "Directory holding the reports of the project.", 3 );
3796                 append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
3797                 append( sb, "", 0 );
3798 
3799                 append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
3800                 append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
3801                 append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
3802                 append( sb, "", 0 );
3803 
3804                 append( sb, "resourceProcessingEnabled (Default: true)", 2 );
3805                 append( sb, "Controls processing of resource files.", 3 );
3806                 append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
3807                 append( sb, "", 0 );
3808 
3809                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
3810                 append( sb, "Directory holding the session related files of the project.", 3 );
3811                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
3812                 append( sb, "", 0 );
3813 
3814                 append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
3815                 append( sb, "Directory holding the source files of the project.", 3 );
3816                 append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
3817                 append( sb, "", 0 );
3818 
3819                 append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
3820                 append( sb, "The encoding to use for reading and writing files.", 3 );
3821                 append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
3822                 append( sb, "", 0 );
3823 
3824                 append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
3825                 append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
3826                 append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
3827                 append( sb, "", 0 );
3828 
3829                 append( sb, "sourceProcessingEnabled (Default: true)", 2 );
3830                 append( sb, "Controls processing of source code files.", 3 );
3831                 append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
3832                 append( sb, "", 0 );
3833 
3834                 append( sb, "templateEncoding", 2 );
3835                 append( sb, "The encoding to use for reading templates.\nDeprecated: As of JOMC 1.3, please use the \'defaultTemplateEncoding\' parameter. This parameter will be removed in version 2.0.\n", 3 );
3836                 append( sb, "Expression: ${jomc.templateEncoding}", 3 );
3837                 append( sb, "", 0 );
3838 
3839                 append( sb, "templateLocation", 2 );
3840                 append( sb, "Location to search for templates in addition to searching the class path of the plugin.\nFirst an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a directory name relative to the base directory of the project. If that directory exists, that directory is used. If nothing is found at the given location, a warning message is logged.\n", 3 );
3841                 append( sb, "Expression: ${jomc.templateLocation}", 3 );
3842                 append( sb, "", 0 );
3843 
3844                 append( sb, "templateParameterResources", 2 );
3845                 append( sb, "Template parameter resources.\n<templateParameterResources>\n\u00a0\u00a0<templateParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</templateParameterResource>\n</templateParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
3846                 append( sb, "", 0 );
3847 
3848                 append( sb, "templateParameters", 2 );
3849                 append( sb, "Template parameters.\n<templateParameters>\n\u00a0\u00a0<templateParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</templateParameter>\n</templateParameters>\n", 3 );
3850                 append( sb, "", 0 );
3851 
3852                 append( sb, "templateProfile", 2 );
3853                 append( sb, "The template profile to use when accessing templates.", 3 );
3854                 append( sb, "Expression: ${jomc.templateProfile}", 3 );
3855                 append( sb, "", 0 );
3856 
3857                 append( sb, "testClassesDirectory", 2 );
3858                 append( sb, "Directory holding the compiled test class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'testOutputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
3859                 append( sb, "", 0 );
3860 
3861                 append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
3862                 append( sb, "Name of the test module to process.", 3 );
3863                 append( sb, "Expression: ${jomc.testModuleName}", 3 );
3864                 append( sb, "", 0 );
3865 
3866                 append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
3867                 append( sb, "Test output directory of the project.", 3 );
3868                 append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
3869                 append( sb, "", 0 );
3870 
3871                 append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
3872                 append( sb, "Directory holding the test source files of the project.", 3 );
3873                 append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
3874                 append( sb, "", 0 );
3875 
3876                 append( sb, "transformationOutputProperties", 2 );
3877                 append( sb, "Global transformation output properties.\n<transformationOutputProperties>\n\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</transformationOutputProperty>\n</transformationOutputProperties>\n", 3 );
3878                 append( sb, "", 0 );
3879 
3880                 append( sb, "transformationParameterResources", 2 );
3881                 append( sb, "Global transformation parameter resources.\n<transformationParameterResources>\n\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</transformationParameterResource>\n</transformationParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
3882                 append( sb, "", 0 );
3883 
3884                 append( sb, "transformationParameters", 2 );
3885                 append( sb, "Global transformation parameters.\n<transformationParameters>\n\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</transformationParameter>\n</transformationParameters>\n", 3 );
3886                 append( sb, "", 0 );
3887 
3888                 append( sb, "transformerLocation", 2 );
3889                 append( sb, "The location to search for transformers.", 3 );
3890                 append( sb, "Expression: ${jomc.transformerLocation}", 3 );
3891                 append( sb, "", 0 );
3892 
3893                 append( sb, "validateTestClasspathExecutionStrategy (Default: once-per-session)", 2 );
3894                 append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
3895                 append( sb, "Expression: ${jomc.validateTestClasspathExecutionStrategy}", 3 );
3896                 append( sb, "", 0 );
3897 
3898                 append( sb, "velocityProperties", 2 );
3899                 append( sb, "Velocity runtime properties.\n<velocityProperties>\n\u00a0\u00a0<velocityProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</velocityProperty>\n</velocityProperties>\n", 3 );
3900                 append( sb, "", 0 );
3901 
3902                 append( sb, "velocityPropertyResources", 2 );
3903                 append( sb, "Velocity runtime property resources.\n<velocityPropertyResources>\n\u00a0\u00a0<velocityPropertyResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</velocityPropertyResource>\n</velocityPropertyResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
3904                 append( sb, "", 0 );
3905 
3906                 append( sb, "verbose (Default: false)", 2 );
3907                 append( sb, "Controls verbosity of the plugin.", 3 );
3908                 append( sb, "Expression: ${jomc.verbose}", 3 );
3909                 append( sb, "", 0 );
3910             }
3911         }
3912 
3913         if ( goal == null || goal.length() <= 0 || "validate-test-model".equals( goal ) )
3914         {
3915             append( sb, "jomc:validate-test-model", 0 );
3916             append( sb, "Validates a project\'s test model.", 1 );
3917             append( sb, "", 0 );
3918             if ( detail )
3919             {
3920                 append( sb, "Available parameters:", 1 );
3921                 append( sb, "", 0 );
3922 
3923                 append( sb, "classesDirectory", 2 );
3924                 append( sb, "Directory holding the compiled class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'outputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
3925                 append( sb, "", 0 );
3926 
3927                 append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
3928                 append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
3929                 append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
3930                 append( sb, "", 0 );
3931 
3932                 append( sb, "classProcessingEnabled (Default: true)", 2 );
3933                 append( sb, "Controls processing of class files.", 3 );
3934                 append( sb, "Expression: ${jomc.classProcessing}", 3 );
3935                 append( sb, "", 0 );
3936 
3937                 append( sb, "defaultTemplateEncoding", 2 );
3938                 append( sb, "The encoding to use for reading templates.", 3 );
3939                 append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
3940                 append( sb, "", 0 );
3941 
3942                 append( sb, "defaultTemplateProfile", 2 );
3943                 append( sb, "The default template profile to use when accessing templates.", 3 );
3944                 append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
3945                 append( sb, "", 0 );
3946 
3947                 append( sb, "indentation", 2 );
3948                 append( sb, "The indentation string (\'\\t\' for tab).", 3 );
3949                 append( sb, "Expression: ${jomc.indentation}", 3 );
3950                 append( sb, "", 0 );
3951 
3952                 append( sb, "javaValidationEnabled (Default: true)", 2 );
3953                 append( sb, "Flag controlling Java validation.", 3 );
3954                 append( sb, "Expression: ${jomc.javaValidationEnabled}", 3 );
3955                 append( sb, "", 0 );
3956 
3957                 append( sb, "lineSeparator", 2 );
3958                 append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
3959                 append( sb, "Expression: ${jomc.lineSeparator}", 3 );
3960                 append( sb, "", 0 );
3961 
3962                 append( sb, "locale", 2 );
3963                 append( sb, "The locale.\n<locale>\n\u00a0\u00a0<language>Lowercase\u00a0two-letter\u00a0ISO-639\u00a0code.</language>\n\u00a0\u00a0<country>Uppercase\u00a0two-letter\u00a0ISO-3166\u00a0code.</country>\n\u00a0\u00a0<variant>Vendor\u00a0and\u00a0browser\u00a0specific\u00a0code.</variant>\n</locale>\n", 3 );
3964                 append( sb, "", 0 );
3965 
3966                 append( sb, "model (Default: http://jomc.org/model)", 2 );
3967                 append( sb, "The identifier of the model to process.", 3 );
3968                 append( sb, "Expression: ${jomc.model}", 3 );
3969                 append( sb, "", 0 );
3970 
3971                 append( sb, "modelContextAttributes", 2 );
3972                 append( sb, "ModelContext attributes.\n<modelContextAttributes>\n\u00a0\u00a0<modelContextAttribute>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0attribute.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0attribute.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0attributes\'s\u00a0object.</type>\n\u00a0\u00a0</modelContextAttribute>\n</modelContextAttributes>\n", 3 );
3973                 append( sb, "", 0 );
3974 
3975                 append( sb, "modelContextFactoryClassName", 2 );
3976                 append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
3977                 append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
3978                 append( sb, "", 0 );
3979 
3980                 append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
3981                 append( sb, "Controls model object class path resolution.", 3 );
3982                 append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
3983                 append( sb, "", 0 );
3984 
3985                 append( sb, "modelProcessingEnabled (Default: true)", 2 );
3986                 append( sb, "Controls processing of models.", 3 );
3987                 append( sb, "Expression: ${jomc.modelProcessing}", 3 );
3988                 append( sb, "", 0 );
3989 
3990                 append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
3991                 append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
3992                 append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
3993                 append( sb, "", 0 );
3994 
3995                 append( sb, "modletLocation", 2 );
3996                 append( sb, "The location to search for modlets.", 3 );
3997                 append( sb, "Expression: ${jomc.modletLocation}", 3 );
3998                 append( sb, "", 0 );
3999 
4000                 append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
4001                 append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
4002                 append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
4003                 append( sb, "", 0 );
4004 
4005                 append( sb, "modletSchemaSystemId", 2 );
4006                 append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
4007                 append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
4008                 append( sb, "", 0 );
4009 
4010                 append( sb, "moduleLocation", 2 );
4011                 append( sb, "The location to search for modules.", 3 );
4012                 append( sb, "Expression: ${jomc.moduleLocation}", 3 );
4013                 append( sb, "", 0 );
4014 
4015                 append( sb, "moduleName (Default: ${project.name})", 2 );
4016                 append( sb, "Name of the module to process.", 3 );
4017                 append( sb, "Expression: ${jomc.moduleName}", 3 );
4018                 append( sb, "", 0 );
4019 
4020                 append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
4021                 append( sb, "Output directory of the project.", 3 );
4022                 append( sb, "Expression: ${jomc.outputDirectory}", 3 );
4023                 append( sb, "", 0 );
4024 
4025                 append( sb, "platformProviderLocation", 2 );
4026                 append( sb, "The location to search for platform providers.", 3 );
4027                 append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
4028                 append( sb, "", 0 );
4029 
4030                 append( sb, "providerLocation", 2 );
4031                 append( sb, "The location to search for providers.", 3 );
4032                 append( sb, "Expression: ${jomc.providerLocation}", 3 );
4033                 append( sb, "", 0 );
4034 
4035                 append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
4036                 append( sb, "Directory holding the reports of the project.", 3 );
4037                 append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
4038                 append( sb, "", 0 );
4039 
4040                 append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
4041                 append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
4042                 append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
4043                 append( sb, "", 0 );
4044 
4045                 append( sb, "resourceProcessingEnabled (Default: true)", 2 );
4046                 append( sb, "Controls processing of resource files.", 3 );
4047                 append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
4048                 append( sb, "", 0 );
4049 
4050                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
4051                 append( sb, "Directory holding the session related files of the project.", 3 );
4052                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
4053                 append( sb, "", 0 );
4054 
4055                 append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
4056                 append( sb, "Directory holding the source files of the project.", 3 );
4057                 append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
4058                 append( sb, "", 0 );
4059 
4060                 append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
4061                 append( sb, "The encoding to use for reading and writing files.", 3 );
4062                 append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
4063                 append( sb, "", 0 );
4064 
4065                 append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
4066                 append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
4067                 append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
4068                 append( sb, "", 0 );
4069 
4070                 append( sb, "sourceProcessingEnabled (Default: true)", 2 );
4071                 append( sb, "Controls processing of source code files.", 3 );
4072                 append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
4073                 append( sb, "", 0 );
4074 
4075                 append( sb, "templateEncoding", 2 );
4076                 append( sb, "The encoding to use for reading templates.\nDeprecated: As of JOMC 1.3, please use the \'defaultTemplateEncoding\' parameter. This parameter will be removed in version 2.0.\n", 3 );
4077                 append( sb, "Expression: ${jomc.templateEncoding}", 3 );
4078                 append( sb, "", 0 );
4079 
4080                 append( sb, "templateLocation", 2 );
4081                 append( sb, "Location to search for templates in addition to searching the class path of the plugin.\nFirst an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a directory name relative to the base directory of the project. If that directory exists, that directory is used. If nothing is found at the given location, a warning message is logged.\n", 3 );
4082                 append( sb, "Expression: ${jomc.templateLocation}", 3 );
4083                 append( sb, "", 0 );
4084 
4085                 append( sb, "templateParameterResources", 2 );
4086                 append( sb, "Template parameter resources.\n<templateParameterResources>\n\u00a0\u00a0<templateParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</templateParameterResource>\n</templateParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
4087                 append( sb, "", 0 );
4088 
4089                 append( sb, "templateParameters", 2 );
4090                 append( sb, "Template parameters.\n<templateParameters>\n\u00a0\u00a0<templateParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</templateParameter>\n</templateParameters>\n", 3 );
4091                 append( sb, "", 0 );
4092 
4093                 append( sb, "templateProfile", 2 );
4094                 append( sb, "The template profile to use when accessing templates.", 3 );
4095                 append( sb, "Expression: ${jomc.templateProfile}", 3 );
4096                 append( sb, "", 0 );
4097 
4098                 append( sb, "testClassesDirectory", 2 );
4099                 append( sb, "Directory holding the compiled test class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'testOutputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
4100                 append( sb, "", 0 );
4101 
4102                 append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
4103                 append( sb, "Name of the test module to process.", 3 );
4104                 append( sb, "Expression: ${jomc.testModuleName}", 3 );
4105                 append( sb, "", 0 );
4106 
4107                 append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
4108                 append( sb, "Test output directory of the project.", 3 );
4109                 append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
4110                 append( sb, "", 0 );
4111 
4112                 append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
4113                 append( sb, "Directory holding the test source files of the project.", 3 );
4114                 append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
4115                 append( sb, "", 0 );
4116 
4117                 append( sb, "transformationOutputProperties", 2 );
4118                 append( sb, "Global transformation output properties.\n<transformationOutputProperties>\n\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</transformationOutputProperty>\n</transformationOutputProperties>\n", 3 );
4119                 append( sb, "", 0 );
4120 
4121                 append( sb, "transformationParameterResources", 2 );
4122                 append( sb, "Global transformation parameter resources.\n<transformationParameterResources>\n\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</transformationParameterResource>\n</transformationParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
4123                 append( sb, "", 0 );
4124 
4125                 append( sb, "transformationParameters", 2 );
4126                 append( sb, "Global transformation parameters.\n<transformationParameters>\n\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</transformationParameter>\n</transformationParameters>\n", 3 );
4127                 append( sb, "", 0 );
4128 
4129                 append( sb, "transformerLocation", 2 );
4130                 append( sb, "The location to search for transformers.", 3 );
4131                 append( sb, "Expression: ${jomc.transformerLocation}", 3 );
4132                 append( sb, "", 0 );
4133 
4134                 append( sb, "validateTestModelExecutionStrategy (Default: once-per-session)", 2 );
4135                 append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
4136                 append( sb, "Expression: ${jomc.validateTestModelExecutionStrategy}", 3 );
4137                 append( sb, "", 0 );
4138 
4139                 append( sb, "velocityProperties", 2 );
4140                 append( sb, "Velocity runtime properties.\n<velocityProperties>\n\u00a0\u00a0<velocityProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</velocityProperty>\n</velocityProperties>\n", 3 );
4141                 append( sb, "", 0 );
4142 
4143                 append( sb, "velocityPropertyResources", 2 );
4144                 append( sb, "Velocity runtime property resources.\n<velocityPropertyResources>\n\u00a0\u00a0<velocityPropertyResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</velocityPropertyResource>\n</velocityPropertyResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
4145                 append( sb, "", 0 );
4146 
4147                 append( sb, "verbose (Default: false)", 2 );
4148                 append( sb, "Controls verbosity of the plugin.", 3 );
4149                 append( sb, "Expression: ${jomc.verbose}", 3 );
4150                 append( sb, "", 0 );
4151             }
4152         }
4153 
4154         if ( goal == null || goal.length() <= 0 || "write-main-resources".equals( goal ) )
4155         {
4156             append( sb, "jomc:write-main-resources", 0 );
4157             append( sb, "Writes a projects\' main resource files.", 1 );
4158             append( sb, "", 0 );
4159             if ( detail )
4160             {
4161                 append( sb, "Available parameters:", 1 );
4162                 append( sb, "", 0 );
4163 
4164                 append( sb, "classesDirectory", 2 );
4165                 append( sb, "Directory holding the compiled class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'outputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
4166                 append( sb, "", 0 );
4167 
4168                 append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
4169                 append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
4170                 append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
4171                 append( sb, "", 0 );
4172 
4173                 append( sb, "classProcessingEnabled (Default: true)", 2 );
4174                 append( sb, "Controls processing of class files.", 3 );
4175                 append( sb, "Expression: ${jomc.classProcessing}", 3 );
4176                 append( sb, "", 0 );
4177 
4178                 append( sb, "defaultTemplateEncoding", 2 );
4179                 append( sb, "The encoding to use for reading templates.", 3 );
4180                 append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
4181                 append( sb, "", 0 );
4182 
4183                 append( sb, "defaultTemplateProfile", 2 );
4184                 append( sb, "The default template profile to use when accessing templates.", 3 );
4185                 append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
4186                 append( sb, "", 0 );
4187 
4188                 append( sb, "indentation", 2 );
4189                 append( sb, "The indentation string (\'\\t\' for tab).", 3 );
4190                 append( sb, "Expression: ${jomc.indentation}", 3 );
4191                 append( sb, "", 0 );
4192 
4193                 append( sb, "javaValidationEnabled (Default: true)", 2 );
4194                 append( sb, "Flag controlling Java validation.", 3 );
4195                 append( sb, "Expression: ${jomc.javaValidationEnabled}", 3 );
4196                 append( sb, "", 0 );
4197 
4198                 append( sb, "lineSeparator", 2 );
4199                 append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
4200                 append( sb, "Expression: ${jomc.lineSeparator}", 3 );
4201                 append( sb, "", 0 );
4202 
4203                 append( sb, "locale", 2 );
4204                 append( sb, "The locale.\n<locale>\n\u00a0\u00a0<language>Lowercase\u00a0two-letter\u00a0ISO-639\u00a0code.</language>\n\u00a0\u00a0<country>Uppercase\u00a0two-letter\u00a0ISO-3166\u00a0code.</country>\n\u00a0\u00a0<variant>Vendor\u00a0and\u00a0browser\u00a0specific\u00a0code.</variant>\n</locale>\n", 3 );
4205                 append( sb, "", 0 );
4206 
4207                 append( sb, "mainResourcesOutputDirectory (Default: ${project.build.directory}/generated-resources/jomc)", 2 );
4208                 append( sb, "Directory to write resource files to.", 3 );
4209                 append( sb, "Expression: ${jomc.mainResourcesOutputDirectory}", 3 );
4210                 append( sb, "", 0 );
4211 
4212                 append( sb, "model (Default: http://jomc.org/model)", 2 );
4213                 append( sb, "The identifier of the model to process.", 3 );
4214                 append( sb, "Expression: ${jomc.model}", 3 );
4215                 append( sb, "", 0 );
4216 
4217                 append( sb, "modelContextAttributes", 2 );
4218                 append( sb, "ModelContext attributes.\n<modelContextAttributes>\n\u00a0\u00a0<modelContextAttribute>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0attribute.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0attribute.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0attributes\'s\u00a0object.</type>\n\u00a0\u00a0</modelContextAttribute>\n</modelContextAttributes>\n", 3 );
4219                 append( sb, "", 0 );
4220 
4221                 append( sb, "modelContextFactoryClassName", 2 );
4222                 append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
4223                 append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
4224                 append( sb, "", 0 );
4225 
4226                 append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
4227                 append( sb, "Controls model object class path resolution.", 3 );
4228                 append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
4229                 append( sb, "", 0 );
4230 
4231                 append( sb, "modelProcessingEnabled (Default: true)", 2 );
4232                 append( sb, "Controls processing of models.", 3 );
4233                 append( sb, "Expression: ${jomc.modelProcessing}", 3 );
4234                 append( sb, "", 0 );
4235 
4236                 append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
4237                 append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
4238                 append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
4239                 append( sb, "", 0 );
4240 
4241                 append( sb, "modletLocation", 2 );
4242                 append( sb, "The location to search for modlets.", 3 );
4243                 append( sb, "Expression: ${jomc.modletLocation}", 3 );
4244                 append( sb, "", 0 );
4245 
4246                 append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
4247                 append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
4248                 append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
4249                 append( sb, "", 0 );
4250 
4251                 append( sb, "modletSchemaSystemId", 2 );
4252                 append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
4253                 append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
4254                 append( sb, "", 0 );
4255 
4256                 append( sb, "moduleLocation", 2 );
4257                 append( sb, "The location to search for modules.", 3 );
4258                 append( sb, "Expression: ${jomc.moduleLocation}", 3 );
4259                 append( sb, "", 0 );
4260 
4261                 append( sb, "moduleName (Default: ${project.name})", 2 );
4262                 append( sb, "Name of the module to process.", 3 );
4263                 append( sb, "Expression: ${jomc.moduleName}", 3 );
4264                 append( sb, "", 0 );
4265 
4266                 append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
4267                 append( sb, "Output directory of the project.", 3 );
4268                 append( sb, "Expression: ${jomc.outputDirectory}", 3 );
4269                 append( sb, "", 0 );
4270 
4271                 append( sb, "platformProviderLocation", 2 );
4272                 append( sb, "The location to search for platform providers.", 3 );
4273                 append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
4274                 append( sb, "", 0 );
4275 
4276                 append( sb, "providerLocation", 2 );
4277                 append( sb, "The location to search for providers.", 3 );
4278                 append( sb, "Expression: ${jomc.providerLocation}", 3 );
4279                 append( sb, "", 0 );
4280 
4281                 append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
4282                 append( sb, "Directory holding the reports of the project.", 3 );
4283                 append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
4284                 append( sb, "", 0 );
4285 
4286                 append( sb, "resourceBundleDefaultLanguage", 2 );
4287                 append( sb, "The language of the default language properties file of generated resource bundle properties resources.", 3 );
4288                 append( sb, "Expression: ${jomc.resourceBundleDefaultLanguage}", 3 );
4289                 append( sb, "", 0 );
4290 
4291                 append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
4292                 append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
4293                 append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
4294                 append( sb, "", 0 );
4295 
4296                 append( sb, "resourceProcessingEnabled (Default: true)", 2 );
4297                 append( sb, "Controls processing of resource files.", 3 );
4298                 append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
4299                 append( sb, "", 0 );
4300 
4301                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
4302                 append( sb, "Directory holding the session related files of the project.", 3 );
4303                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
4304                 append( sb, "", 0 );
4305 
4306                 append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
4307                 append( sb, "Directory holding the source files of the project.", 3 );
4308                 append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
4309                 append( sb, "", 0 );
4310 
4311                 append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
4312                 append( sb, "The encoding to use for reading and writing files.", 3 );
4313                 append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
4314                 append( sb, "", 0 );
4315 
4316                 append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
4317                 append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
4318                 append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
4319                 append( sb, "", 0 );
4320 
4321                 append( sb, "sourceProcessingEnabled (Default: true)", 2 );
4322                 append( sb, "Controls processing of source code files.", 3 );
4323                 append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
4324                 append( sb, "", 0 );
4325 
4326                 append( sb, "templateEncoding", 2 );
4327                 append( sb, "The encoding to use for reading templates.\nDeprecated: As of JOMC 1.3, please use the \'defaultTemplateEncoding\' parameter. This parameter will be removed in version 2.0.\n", 3 );
4328                 append( sb, "Expression: ${jomc.templateEncoding}", 3 );
4329                 append( sb, "", 0 );
4330 
4331                 append( sb, "templateLocation", 2 );
4332                 append( sb, "Location to search for templates in addition to searching the class path of the plugin.\nFirst an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a directory name relative to the base directory of the project. If that directory exists, that directory is used. If nothing is found at the given location, a warning message is logged.\n", 3 );
4333                 append( sb, "Expression: ${jomc.templateLocation}", 3 );
4334                 append( sb, "", 0 );
4335 
4336                 append( sb, "templateParameterResources", 2 );
4337                 append( sb, "Template parameter resources.\n<templateParameterResources>\n\u00a0\u00a0<templateParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</templateParameterResource>\n</templateParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
4338                 append( sb, "", 0 );
4339 
4340                 append( sb, "templateParameters", 2 );
4341                 append( sb, "Template parameters.\n<templateParameters>\n\u00a0\u00a0<templateParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</templateParameter>\n</templateParameters>\n", 3 );
4342                 append( sb, "", 0 );
4343 
4344                 append( sb, "templateProfile", 2 );
4345                 append( sb, "The template profile to use when accessing templates.", 3 );
4346                 append( sb, "Expression: ${jomc.templateProfile}", 3 );
4347                 append( sb, "", 0 );
4348 
4349                 append( sb, "testClassesDirectory", 2 );
4350                 append( sb, "Directory holding the compiled test class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'testOutputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
4351                 append( sb, "", 0 );
4352 
4353                 append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
4354                 append( sb, "Name of the test module to process.", 3 );
4355                 append( sb, "Expression: ${jomc.testModuleName}", 3 );
4356                 append( sb, "", 0 );
4357 
4358                 append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
4359                 append( sb, "Test output directory of the project.", 3 );
4360                 append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
4361                 append( sb, "", 0 );
4362 
4363                 append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
4364                 append( sb, "Directory holding the test source files of the project.", 3 );
4365                 append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
4366                 append( sb, "", 0 );
4367 
4368                 append( sb, "transformationOutputProperties", 2 );
4369                 append( sb, "Global transformation output properties.\n<transformationOutputProperties>\n\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</transformationOutputProperty>\n</transformationOutputProperties>\n", 3 );
4370                 append( sb, "", 0 );
4371 
4372                 append( sb, "transformationParameterResources", 2 );
4373                 append( sb, "Global transformation parameter resources.\n<transformationParameterResources>\n\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</transformationParameterResource>\n</transformationParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
4374                 append( sb, "", 0 );
4375 
4376                 append( sb, "transformationParameters", 2 );
4377                 append( sb, "Global transformation parameters.\n<transformationParameters>\n\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</transformationParameter>\n</transformationParameters>\n", 3 );
4378                 append( sb, "", 0 );
4379 
4380                 append( sb, "transformerLocation", 2 );
4381                 append( sb, "The location to search for transformers.", 3 );
4382                 append( sb, "Expression: ${jomc.transformerLocation}", 3 );
4383                 append( sb, "", 0 );
4384 
4385                 append( sb, "velocityProperties", 2 );
4386                 append( sb, "Velocity runtime properties.\n<velocityProperties>\n\u00a0\u00a0<velocityProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</velocityProperty>\n</velocityProperties>\n", 3 );
4387                 append( sb, "", 0 );
4388 
4389                 append( sb, "velocityPropertyResources", 2 );
4390                 append( sb, "Velocity runtime property resources.\n<velocityPropertyResources>\n\u00a0\u00a0<velocityPropertyResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</velocityPropertyResource>\n</velocityPropertyResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
4391                 append( sb, "", 0 );
4392 
4393                 append( sb, "verbose (Default: false)", 2 );
4394                 append( sb, "Controls verbosity of the plugin.", 3 );
4395                 append( sb, "Expression: ${jomc.verbose}", 3 );
4396                 append( sb, "", 0 );
4397 
4398                 append( sb, "writeMainResourcesExecutionStrategy (Default: once-per-session)", 2 );
4399                 append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
4400                 append( sb, "Expression: ${jomc.writeMainResourcesExecutionStrategy}", 3 );
4401                 append( sb, "", 0 );
4402             }
4403         }
4404 
4405         if ( goal == null || goal.length() <= 0 || "write-test-resources".equals( goal ) )
4406         {
4407             append( sb, "jomc:write-test-resources", 0 );
4408             append( sb, "Writes a projects\' test resource files.", 1 );
4409             append( sb, "", 0 );
4410             if ( detail )
4411             {
4412                 append( sb, "Available parameters:", 1 );
4413                 append( sb, "", 0 );
4414 
4415                 append( sb, "classesDirectory", 2 );
4416                 append( sb, "Directory holding the compiled class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'outputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
4417                 append( sb, "", 0 );
4418 
4419                 append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
4420                 append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
4421                 append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
4422                 append( sb, "", 0 );
4423 
4424                 append( sb, "classProcessingEnabled (Default: true)", 2 );
4425                 append( sb, "Controls processing of class files.", 3 );
4426                 append( sb, "Expression: ${jomc.classProcessing}", 3 );
4427                 append( sb, "", 0 );
4428 
4429                 append( sb, "defaultTemplateEncoding", 2 );
4430                 append( sb, "The encoding to use for reading templates.", 3 );
4431                 append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
4432                 append( sb, "", 0 );
4433 
4434                 append( sb, "defaultTemplateProfile", 2 );
4435                 append( sb, "The default template profile to use when accessing templates.", 3 );
4436                 append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
4437                 append( sb, "", 0 );
4438 
4439                 append( sb, "indentation", 2 );
4440                 append( sb, "The indentation string (\'\\t\' for tab).", 3 );
4441                 append( sb, "Expression: ${jomc.indentation}", 3 );
4442                 append( sb, "", 0 );
4443 
4444                 append( sb, "javaValidationEnabled (Default: true)", 2 );
4445                 append( sb, "Flag controlling Java validation.", 3 );
4446                 append( sb, "Expression: ${jomc.javaValidationEnabled}", 3 );
4447                 append( sb, "", 0 );
4448 
4449                 append( sb, "lineSeparator", 2 );
4450                 append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
4451                 append( sb, "Expression: ${jomc.lineSeparator}", 3 );
4452                 append( sb, "", 0 );
4453 
4454                 append( sb, "locale", 2 );
4455                 append( sb, "The locale.\n<locale>\n\u00a0\u00a0<language>Lowercase\u00a0two-letter\u00a0ISO-639\u00a0code.</language>\n\u00a0\u00a0<country>Uppercase\u00a0two-letter\u00a0ISO-3166\u00a0code.</country>\n\u00a0\u00a0<variant>Vendor\u00a0and\u00a0browser\u00a0specific\u00a0code.</variant>\n</locale>\n", 3 );
4456                 append( sb, "", 0 );
4457 
4458                 append( sb, "model (Default: http://jomc.org/model)", 2 );
4459                 append( sb, "The identifier of the model to process.", 3 );
4460                 append( sb, "Expression: ${jomc.model}", 3 );
4461                 append( sb, "", 0 );
4462 
4463                 append( sb, "modelContextAttributes", 2 );
4464                 append( sb, "ModelContext attributes.\n<modelContextAttributes>\n\u00a0\u00a0<modelContextAttribute>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0attribute.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0attribute.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0attributes\'s\u00a0object.</type>\n\u00a0\u00a0</modelContextAttribute>\n</modelContextAttributes>\n", 3 );
4465                 append( sb, "", 0 );
4466 
4467                 append( sb, "modelContextFactoryClassName", 2 );
4468                 append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
4469                 append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
4470                 append( sb, "", 0 );
4471 
4472                 append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
4473                 append( sb, "Controls model object class path resolution.", 3 );
4474                 append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
4475                 append( sb, "", 0 );
4476 
4477                 append( sb, "modelProcessingEnabled (Default: true)", 2 );
4478                 append( sb, "Controls processing of models.", 3 );
4479                 append( sb, "Expression: ${jomc.modelProcessing}", 3 );
4480                 append( sb, "", 0 );
4481 
4482                 append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
4483                 append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
4484                 append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
4485                 append( sb, "", 0 );
4486 
4487                 append( sb, "modletLocation", 2 );
4488                 append( sb, "The location to search for modlets.", 3 );
4489                 append( sb, "Expression: ${jomc.modletLocation}", 3 );
4490                 append( sb, "", 0 );
4491 
4492                 append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
4493                 append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
4494                 append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
4495                 append( sb, "", 0 );
4496 
4497                 append( sb, "modletSchemaSystemId", 2 );
4498                 append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
4499                 append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
4500                 append( sb, "", 0 );
4501 
4502                 append( sb, "moduleLocation", 2 );
4503                 append( sb, "The location to search for modules.", 3 );
4504                 append( sb, "Expression: ${jomc.moduleLocation}", 3 );
4505                 append( sb, "", 0 );
4506 
4507                 append( sb, "moduleName (Default: ${project.name})", 2 );
4508                 append( sb, "Name of the module to process.", 3 );
4509                 append( sb, "Expression: ${jomc.moduleName}", 3 );
4510                 append( sb, "", 0 );
4511 
4512                 append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
4513                 append( sb, "Output directory of the project.", 3 );
4514                 append( sb, "Expression: ${jomc.outputDirectory}", 3 );
4515                 append( sb, "", 0 );
4516 
4517                 append( sb, "platformProviderLocation", 2 );
4518                 append( sb, "The location to search for platform providers.", 3 );
4519                 append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
4520                 append( sb, "", 0 );
4521 
4522                 append( sb, "providerLocation", 2 );
4523                 append( sb, "The location to search for providers.", 3 );
4524                 append( sb, "Expression: ${jomc.providerLocation}", 3 );
4525                 append( sb, "", 0 );
4526 
4527                 append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
4528                 append( sb, "Directory holding the reports of the project.", 3 );
4529                 append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
4530                 append( sb, "", 0 );
4531 
4532                 append( sb, "resourceBundleDefaultLanguage", 2 );
4533                 append( sb, "The language of the default language properties file of generated resource bundle properties resources.", 3 );
4534                 append( sb, "Expression: ${jomc.resourceBundleDefaultLanguage}", 3 );
4535                 append( sb, "", 0 );
4536 
4537                 append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
4538                 append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
4539                 append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
4540                 append( sb, "", 0 );
4541 
4542                 append( sb, "resourceProcessingEnabled (Default: true)", 2 );
4543                 append( sb, "Controls processing of resource files.", 3 );
4544                 append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
4545                 append( sb, "", 0 );
4546 
4547                 append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
4548                 append( sb, "Directory holding the session related files of the project.", 3 );
4549                 append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
4550                 append( sb, "", 0 );
4551 
4552                 append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
4553                 append( sb, "Directory holding the source files of the project.", 3 );
4554                 append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
4555                 append( sb, "", 0 );
4556 
4557                 append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
4558                 append( sb, "The encoding to use for reading and writing files.", 3 );
4559                 append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
4560                 append( sb, "", 0 );
4561 
4562                 append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
4563                 append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
4564                 append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
4565                 append( sb, "", 0 );
4566 
4567                 append( sb, "sourceProcessingEnabled (Default: true)", 2 );
4568                 append( sb, "Controls processing of source code files.", 3 );
4569                 append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
4570                 append( sb, "", 0 );
4571 
4572                 append( sb, "templateEncoding", 2 );
4573                 append( sb, "The encoding to use for reading templates.\nDeprecated: As of JOMC 1.3, please use the \'defaultTemplateEncoding\' parameter. This parameter will be removed in version 2.0.\n", 3 );
4574                 append( sb, "Expression: ${jomc.templateEncoding}", 3 );
4575                 append( sb, "", 0 );
4576 
4577                 append( sb, "templateLocation", 2 );
4578                 append( sb, "Location to search for templates in addition to searching the class path of the plugin.\nFirst an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a directory name relative to the base directory of the project. If that directory exists, that directory is used. If nothing is found at the given location, a warning message is logged.\n", 3 );
4579                 append( sb, "Expression: ${jomc.templateLocation}", 3 );
4580                 append( sb, "", 0 );
4581 
4582                 append( sb, "templateParameterResources", 2 );
4583                 append( sb, "Template parameter resources.\n<templateParameterResources>\n\u00a0\u00a0<templateParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</templateParameterResource>\n</templateParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
4584                 append( sb, "", 0 );
4585 
4586                 append( sb, "templateParameters", 2 );
4587                 append( sb, "Template parameters.\n<templateParameters>\n\u00a0\u00a0<templateParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</templateParameter>\n</templateParameters>\n", 3 );
4588                 append( sb, "", 0 );
4589 
4590                 append( sb, "templateProfile", 2 );
4591                 append( sb, "The template profile to use when accessing templates.", 3 );
4592                 append( sb, "Expression: ${jomc.templateProfile}", 3 );
4593                 append( sb, "", 0 );
4594 
4595                 append( sb, "testClassesDirectory", 2 );
4596                 append( sb, "Directory holding the compiled test class files of the project.\nDeprecated: As of JOMC 1.1, please use the \'testOutputDirectory\' parameter. This parameter will be removed in version 2.0.\n", 3 );
4597                 append( sb, "", 0 );
4598 
4599                 append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
4600                 append( sb, "Name of the test module to process.", 3 );
4601                 append( sb, "Expression: ${jomc.testModuleName}", 3 );
4602                 append( sb, "", 0 );
4603 
4604                 append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
4605                 append( sb, "Test output directory of the project.", 3 );
4606                 append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
4607                 append( sb, "", 0 );
4608 
4609                 append( sb, "testResourcesOutputDirectory (Default: ${project.build.directory}/generated-test-resources/jomc)", 2 );
4610                 append( sb, "Directory to write test resource files to.", 3 );
4611                 append( sb, "Expression: ${jomc.testResourcesOutputDirectory}", 3 );
4612                 append( sb, "", 0 );
4613 
4614                 append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
4615                 append( sb, "Directory holding the test source files of the project.", 3 );
4616                 append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
4617                 append( sb, "", 0 );
4618 
4619                 append( sb, "transformationOutputProperties", 2 );
4620                 append( sb, "Global transformation output properties.\n<transformationOutputProperties>\n\u00a0\u00a0<transformationOutputProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</transformationOutputProperty>\n</transformationOutputProperties>\n", 3 );
4621                 append( sb, "", 0 );
4622 
4623                 append( sb, "transformationParameterResources", 2 );
4624                 append( sb, "Global transformation parameter resources.\n<transformationParameterResources>\n\u00a0\u00a0<transformationParameterResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</transformationParameterResource>\n</transformationParameterResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
4625                 append( sb, "", 0 );
4626 
4627                 append( sb, "transformationParameters", 2 );
4628                 append( sb, "Global transformation parameters.\n<transformationParameters>\n\u00a0\u00a0<transformationParameter>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0parameter.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0parameter.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0parameter\'s\u00a0object.</type>\n\u00a0\u00a0</transformationParameter>\n</transformationParameters>\n", 3 );
4629                 append( sb, "", 0 );
4630 
4631                 append( sb, "transformerLocation", 2 );
4632                 append( sb, "The location to search for transformers.", 3 );
4633                 append( sb, "Expression: ${jomc.transformerLocation}", 3 );
4634                 append( sb, "", 0 );
4635 
4636                 append( sb, "velocityProperties", 2 );
4637                 append( sb, "Velocity runtime properties.\n<velocityProperties>\n\u00a0\u00a0<velocityProperty>\n\u00a0\u00a0\u00a0\u00a0<key>The\u00a0name\u00a0of\u00a0the\u00a0property.</key>\n\u00a0\u00a0\u00a0\u00a0<value>The\u00a0value\u00a0of\u00a0the\u00a0property.</value>\n\u00a0\u00a0\u00a0\u00a0<type>The\u00a0name\u00a0of\u00a0the\u00a0class\u00a0of\u00a0the\u00a0properties\u00a0object.</type>\n\u00a0\u00a0</velocityProperty>\n</velocityProperties>\n", 3 );
4638                 append( sb, "", 0 );
4639 
4640                 append( sb, "velocityPropertyResources", 2 );
4641                 append( sb, "Velocity runtime property resources.\n<velocityPropertyResources>\n\u00a0\u00a0<velocityPropertyResource>\n\u00a0\u00a0\u00a0\u00a0<location>The\u00a0location\u00a0of\u00a0the\u00a0properties\u00a0resource.</location>\n\u00a0\u00a0\u00a0\u00a0<optional>Flag\u00a0indicating\u00a0the\u00a0properties\u00a0resource\u00a0is\u00a0optional.</optional>\n\u00a0\u00a0\u00a0\u00a0<format>The\u00a0format\u00a0of\u00a0the\u00a0properties\u00a0resource.</format>\n\u00a0\u00a0\u00a0\u00a0<connectTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</connectTimeout>\n\u00a0\u00a0\u00a0\u00a0<readTimeout>Timeout\u00a0value,\u00a0in\u00a0milliseconds.</readTimeout>\n\u00a0\u00a0</velocityPropertyResource>\n</velocityPropertyResources>\n\nThe location value is used to first search the class path of the plugin. If a class path resource is found, that resource is used. If no class path resource is found, an attempt is made to parse the location value to an URL. On successful parsing, that URL is used. Otherwise the location value is interpreted as a file name relative to the base directory of the project. If that file exists, that file is used. If nothing is found at the given location, depending on the optional flag, a warning message is logged or a build failure is produced.\n\nThe optional flag is used to flag the resource optional. When an optional resource is not found, a warning message is logged instead of producing a build failure.\nDefault value is: false\n\nThe format value is used to specify the format of the properties resource. Supported values are plain and xml.\nDefault value is: plain\n\nThe connectTimeout value is used to specify the timeout, in milliseconds, to be used when opening communications links to the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n\nThe readTimeout value is used to specify the timeout, in milliseconds, to be used when reading the resource. A timeout of zero is interpreted as an infinite timeout.\nDefault value is: 60000\n", 3 );
4642                 append( sb, "", 0 );
4643 
4644                 append( sb, "verbose (Default: false)", 2 );
4645                 append( sb, "Controls verbosity of the plugin.", 3 );
4646                 append( sb, "Expression: ${jomc.verbose}", 3 );
4647                 append( sb, "", 0 );
4648 
4649                 append( sb, "writeTestResourcesExecutionStrategy (Default: once-per-session)", 2 );
4650                 append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
4651                 append( sb, "Expression: ${jomc.writeTestResourcesExecutionStrategy}", 3 );
4652                 append( sb, "", 0 );
4653             }
4654         }
4655 
4656         if ( getLog().isInfoEnabled() )
4657         {
4658             getLog().info( sb.toString() );
4659         }
4660     }
4661 
4662     /**
4663      * <p>Repeat a String <code>n</code> times to form a new string.</p>
4664      *
4665      * @param str String to repeat
4666      * @param repeat number of times to repeat str
4667      * @return String with repeated String
4668      * @throws NegativeArraySizeException if <code>repeat < 0</code>
4669      * @throws NullPointerException if str is <code>null</code>
4670      */
4671     private static String repeat( String str, int repeat )
4672     {
4673         StringBuffer buffer = new StringBuffer( repeat * str.length() );
4674 
4675         for ( int i = 0; i < repeat; i++ )
4676         {
4677             buffer.append( str );
4678         }
4679 
4680         return buffer.toString();
4681     }
4682 
4683     /** 
4684      * Append a description to the buffer by respecting the indentSize and lineLength parameters.
4685      * <b>Note</b>: The last character is always a new line.
4686      * 
4687      * @param sb The buffer to append the description, not <code>null</code>.
4688      * @param description The description, not <code>null</code>.
4689      * @param indent The base indentation level of each line, must not be negative.
4690      */
4691     private void append( StringBuffer sb, String description, int indent )
4692     {
4693         for ( Iterator it = toLines( description, indent, indentSize, lineLength ).iterator(); it.hasNext(); )
4694         {
4695             sb.append( it.next().toString() ).append( '\n' );
4696         }
4697     }
4698 
4699     /** 
4700      * Splits the specified text into lines of convenient display length.
4701      * 
4702      * @param text The text to split into lines, must not be <code>null</code>.
4703      * @param indent The base indentation level of each line, must not be negative.
4704      * @param indentSize The size of each indentation, must not be negative.
4705      * @param lineLength The length of the line, must not be negative.
4706      * @return The sequence of display lines, never <code>null</code>.
4707      * @throws NegativeArraySizeException if <code>indent < 0</code>
4708      */
4709     private static List toLines( String text, int indent, int indentSize, int lineLength )
4710     {
4711         List<String> lines = new ArrayList<String>();
4712 
4713         String ind = repeat( "\t", indent );
4714         String[] plainLines = text.split( "(\r\n)|(\r)|(\n)" );
4715         for ( int i = 0; i < plainLines.length; i++ )
4716         {
4717             toLines( lines, ind + plainLines[i], indentSize, lineLength );
4718         }
4719 
4720         return lines;
4721     }
4722 
4723     /** 
4724      * Adds the specified line to the output sequence, performing line wrapping if necessary.
4725      * 
4726      * @param lines The sequence of display lines, must not be <code>null</code>.
4727      * @param line The line to add, must not be <code>null</code>.
4728      * @param indentSize The size of each indentation, must not be negative.
4729      * @param lineLength The length of the line, must not be negative.
4730      */
4731     private static void toLines( List<String> lines, String line, int indentSize, int lineLength )
4732     {
4733         int lineIndent = getIndentLevel( line );
4734         StringBuffer buf = new StringBuffer( 256 );
4735         String[] tokens = line.split( " +" );
4736         for ( int i = 0; i < tokens.length; i++ )
4737         {
4738             String token = tokens[i];
4739             if ( i > 0 )
4740             {
4741                 if ( buf.length() + token.length() >= lineLength )
4742                 {
4743                     lines.add( buf.toString() );
4744                     buf.setLength( 0 );
4745                     buf.append( repeat( " ", lineIndent * indentSize ) );
4746                 }
4747                 else
4748                 {
4749                     buf.append( ' ' );
4750                 }
4751             }
4752             for ( int j = 0; j < token.length(); j++ )
4753             {
4754                 char c = token.charAt( j );
4755                 if ( c == '\t' )
4756                 {
4757                     buf.append( repeat( " ", indentSize - buf.length() % indentSize ) );
4758                 }
4759                 else if ( c == '\u00A0' )
4760                 {
4761                     buf.append( ' ' );
4762                 }
4763                 else
4764                 {
4765                     buf.append( c );
4766                 }
4767             }
4768         }
4769         lines.add( buf.toString() );
4770     }
4771 
4772     /** 
4773      * Gets the indentation level of the specified line.
4774      * 
4775      * @param line The line whose indentation level should be retrieved, must not be <code>null</code>.
4776      * @return The indentation level of the line.
4777      */
4778     private static int getIndentLevel( String line )
4779     {
4780         int level = 0;
4781         for ( int i = 0; i < line.length() && line.charAt( i ) == '\t'; i++ )
4782         {
4783             level++;
4784         }
4785         for ( int i = level + 1; i <= level + 4 && i < line.length(); i++ )
4786         {
4787             if ( line.charAt( i ) == '\t' )
4788             {
4789                 level++;
4790                 break;
4791             }
4792         }
4793         return level;
4794     }
4795 }