001package org.jomc.mojo;
002
003import java.util.ArrayList;
004import java.util.Iterator;
005import java.util.List;
006
007import org.apache.maven.plugin.AbstractMojo;
008import org.apache.maven.plugin.MojoExecutionException;
009
010/**
011 * 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.
012 *
013 * @version generated on Wed Jan 02 16:43:23 CET 2013
014 * @author org.apache.maven.tools.plugin.generator.PluginHelpGenerator (version 2.9)
015 * @goal help
016 * @requiresProject false
017 * @threadSafe
018 */
019@SuppressWarnings( "all" )
020public class HelpMojo
021    extends AbstractMojo
022{
023    /**
024     * If <code>true</code>, display all settable properties for each goal.
025     * 
026     * @parameter expression="${detail}" default-value="false"
027     */
028    private boolean detail;
029
030    /**
031     * The name of the goal for which to show help. If unspecified, all goals will be displayed.
032     * 
033     * @parameter expression="${goal}"
034     */
035    private java.lang.String goal;
036
037    /**
038     * The maximum length of a display line, should be positive.
039     * 
040     * @parameter expression="${lineLength}" default-value="80"
041     */
042    private int lineLength;
043
044    /**
045     * The number of spaces per indentation level, should be positive.
046     * 
047     * @parameter expression="${indentSize}" default-value="2"
048     */
049    private int indentSize;
050
051
052    /** {@inheritDoc} */
053    public void execute()
054        throws MojoExecutionException
055    {
056        if ( lineLength <= 0 )
057        {
058            getLog().warn( "The parameter 'lineLength' should be positive, using '80' as default." );
059            lineLength = 80;
060        }
061        if ( indentSize <= 0 )
062        {
063            getLog().warn( "The parameter 'indentSize' should be positive, using '2' as default." );
064            indentSize = 2;
065        }
066
067        StringBuffer sb = new StringBuffer();
068
069        append( sb, "org.jomc:maven-jomc-plugin:1.4", 0 );
070        append( sb, "", 0 );
071
072        append( sb, "JOMC \u2051 Maven Plugin", 0 );
073        append( sb, "Object management and configuration tools for Apache Maven.", 1 );
074        append( sb, "", 0 );
075
076        if ( goal == null || goal.length() <= 0 )
077        {
078            append( sb, "This plugin has 21 goals:", 0 );
079            append( sb, "", 0 );
080        }
081
082        if ( goal == null || goal.length() <= 0 || "attach-main-module".equals( goal ) )
083        {
084            append( sb, "jomc:attach-main-module", 0 );
085            append( sb, "Attaches a project\'s main module artifact.", 1 );
086            append( sb, "", 0 );
087            if ( detail )
088            {
089                append( sb, "Available parameters:", 1 );
090                append( sb, "", 0 );
091
092                append( sb, "attachMainModuleExecutionStrategy (Default: once-per-session)", 2 );
093                append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
094                append( sb, "Expression: ${jomc.attachMainModuleExecutionStrategy}", 3 );
095                append( sb, "", 0 );
096
097                append( sb, "mainModuleArtifactClassifier (Default: jomc-module)", 2 );
098                append( sb, "Classifier of the attached module artifact.", 3 );
099                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}