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 Sun Jun 03 10:05:25 CEST 2012
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.3", 0 );
070        append( sb, "", 0 );
071
072        append( sb, "Maven JOMC 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, "lineSeparator", 2 );
211                append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
212                append( sb, "Expression: ${jomc.lineSeparator}", 3 );
213                append( sb, "", 0 );
214
215                append( sb, "locale", 2 );
216                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 );
217                append( sb, "", 0 );
218
219                append( sb, "model (Default: http://jomc.org/model)", 2 );
220                append( sb, "The identifier of the model to process.", 3 );
221                append( sb, "Expression: ${jomc.model}", 3 );
222                append( sb, "", 0 );
223
224                append( sb, "modelContextAttributes", 2 );
225                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 );
226                append( sb, "", 0 );
227
228                append( sb, "modelContextFactoryClassName", 2 );
229                append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
230                append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
231                append( sb, "", 0 );
232
233                append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
234                append( sb, "Controls model object class path resolution.", 3 );
235                append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
236                append( sb, "", 0 );
237
238                append( sb, "modelObjectStylesheet", 2 );
239                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 );
240                append( sb, "", 0 );
241
242                append( sb, "modelObjectStylesheetResources", 2 );
243                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 );
244                append( sb, "", 0 );
245
246                append( sb, "modelProcessingEnabled (Default: true)", 2 );
247                append( sb, "Controls processing of models.", 3 );
248                append( sb, "Expression: ${jomc.modelProcessing}", 3 );
249                append( sb, "", 0 );
250
251                append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
252                append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
253                append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
254                append( sb, "", 0 );
255
256                append( sb, "modletLocation", 2 );
257                append( sb, "The location to search for modlets.", 3 );
258                append( sb, "Expression: ${jomc.modletLocation}", 3 );
259                append( sb, "", 0 );
260
261                append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
262                append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
263                append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
264                append( sb, "", 0 );
265
266                append( sb, "modletSchemaSystemId", 2 );
267                append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
268                append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
269                append( sb, "", 0 );
270
271                append( sb, "moduleLocation", 2 );
272                append( sb, "The location to search for modules.", 3 );
273                append( sb, "Expression: ${jomc.moduleLocation}", 3 );
274                append( sb, "", 0 );
275
276                append( sb, "moduleName (Default: ${project.name})", 2 );
277                append( sb, "Name of the module to process.", 3 );
278                append( sb, "Expression: ${jomc.moduleName}", 3 );
279                append( sb, "", 0 );
280
281                append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
282                append( sb, "Output directory of the project.", 3 );
283                append( sb, "Expression: ${jomc.outputDirectory}", 3 );
284                append( sb, "", 0 );
285
286                append( sb, "platformProviderLocation", 2 );
287                append( sb, "The location to search for platform providers.", 3 );
288                append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
289                append( sb, "", 0 );
290
291                append( sb, "providerLocation", 2 );
292                append( sb, "The location to search for providers.", 3 );
293                append( sb, "Expression: ${jomc.providerLocation}", 3 );
294                append( sb, "", 0 );
295
296                append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
297                append( sb, "Directory holding the reports of the project.", 3 );
298                append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
299                append( sb, "", 0 );
300
301                append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
302                append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
303                append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
304                append( sb, "", 0 );
305
306                append( sb, "resourceProcessingEnabled (Default: true)", 2 );
307                append( sb, "Controls processing of resource files.", 3 );
308                append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
309                append( sb, "", 0 );
310
311                append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
312                append( sb, "Directory holding the session related files of the project.", 3 );
313                append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
314                append( sb, "", 0 );
315
316                append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
317                append( sb, "Directory holding the source files of the project.", 3 );
318                append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
319                append( sb, "", 0 );
320
321                append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
322                append( sb, "The encoding to use for reading and writing files.", 3 );
323                append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
324                append( sb, "", 0 );
325
326                append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
327                append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
328                append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
329                append( sb, "", 0 );
330
331                append( sb, "sourceProcessingEnabled (Default: true)", 2 );
332                append( sb, "Controls processing of source code files.", 3 );
333                append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
334                append( sb, "", 0 );
335
336                append( sb, "templateEncoding", 2 );
337                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 );
338                append( sb, "Expression: ${jomc.templateEncoding}", 3 );
339                append( sb, "", 0 );
340
341                append( sb, "templateLocation", 2 );
342                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 );
343                append( sb, "Expression: ${jomc.templateLocation}", 3 );
344                append( sb, "", 0 );
345
346                append( sb, "templateParameterResources", 2 );
347                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 );
348                append( sb, "", 0 );
349
350                append( sb, "templateParameters", 2 );
351                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 );
352                append( sb, "", 0 );
353
354                append( sb, "templateProfile", 2 );
355                append( sb, "The template profile to use when accessing templates.", 3 );
356                append( sb, "Expression: ${jomc.templateProfile}", 3 );
357                append( sb, "", 0 );
358
359                append( sb, "testClassesDirectory", 2 );
360                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 );
361                append( sb, "", 0 );
362
363                append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
364                append( sb, "Name of the test module to process.", 3 );
365                append( sb, "Expression: ${jomc.testModuleName}", 3 );
366                append( sb, "", 0 );
367
368                append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
369                append( sb, "Test output directory of the project.", 3 );
370                append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
371                append( sb, "", 0 );
372
373                append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
374                append( sb, "Directory holding the test source files of the project.", 3 );
375                append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
376                append( sb, "", 0 );
377
378                append( sb, "transformationOutputProperties", 2 );
379                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 );
380                append( sb, "", 0 );
381
382                append( sb, "transformationParameterResources", 2 );
383                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 );
384                append( sb, "", 0 );
385
386                append( sb, "transformationParameters", 2 );
387                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 );
388                append( sb, "", 0 );
389
390                append( sb, "transformerLocation", 2 );
391                append( sb, "The location to search for transformers.", 3 );
392                append( sb, "Expression: ${jomc.transformerLocation}", 3 );
393                append( sb, "", 0 );
394
395                append( sb, "velocityProperties", 2 );
396                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 );
397                append( sb, "", 0 );
398
399                append( sb, "velocityPropertyResources", 2 );
400                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 );
401                append( sb, "", 0 );
402
403                append( sb, "verbose (Default: false)", 2 );
404                append( sb, "Controls verbosity of the plugin.", 3 );
405                append( sb, "Expression: ${jomc.verbose}", 3 );
406                append( sb, "", 0 );
407            }
408        }
409
410        if ( goal == null || goal.length() <= 0 || "commit-test-classes".equals( goal ) )
411        {
412            append( sb, "jomc:commit-test-classes", 0 );
413            append( sb, "Commits model objects to a projects\' test classes.", 1 );
414            append( sb, "", 0 );
415            if ( detail )
416            {
417                append( sb, "Available parameters:", 1 );
418                append( sb, "", 0 );
419
420                append( sb, "classesDirectory", 2 );
421                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 );
422                append( sb, "", 0 );
423
424                append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
425                append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
426                append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
427                append( sb, "", 0 );
428
429                append( sb, "classProcessingEnabled (Default: true)", 2 );
430                append( sb, "Controls processing of class files.", 3 );
431                append( sb, "Expression: ${jomc.classProcessing}", 3 );
432                append( sb, "", 0 );
433
434                append( sb, "commitTestClassesExecutionStrategy (Default: once-per-session)", 2 );
435                append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
436                append( sb, "Expression: ${jomc.commitTestClassesExecutionStrategy}", 3 );
437                append( sb, "", 0 );
438
439                append( sb, "defaultTemplateEncoding", 2 );
440                append( sb, "The encoding to use for reading templates.", 3 );
441                append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
442                append( sb, "", 0 );
443
444                append( sb, "defaultTemplateProfile", 2 );
445                append( sb, "The default template profile to use when accessing templates.", 3 );
446                append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
447                append( sb, "", 0 );
448
449                append( sb, "indentation", 2 );
450                append( sb, "The indentation string (\'\\t\' for tab).", 3 );
451                append( sb, "Expression: ${jomc.indentation}", 3 );
452                append( sb, "", 0 );
453
454                append( sb, "lineSeparator", 2 );
455                append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
456                append( sb, "Expression: ${jomc.lineSeparator}", 3 );
457                append( sb, "", 0 );
458
459                append( sb, "locale", 2 );
460                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 );
461                append( sb, "", 0 );
462
463                append( sb, "model (Default: http://jomc.org/model)", 2 );
464                append( sb, "The identifier of the model to process.", 3 );
465                append( sb, "Expression: ${jomc.model}", 3 );
466                append( sb, "", 0 );
467
468                append( sb, "modelContextAttributes", 2 );
469                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 );
470                append( sb, "", 0 );
471
472                append( sb, "modelContextFactoryClassName", 2 );
473                append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
474                append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
475                append( sb, "", 0 );
476
477                append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
478                append( sb, "Controls model object class path resolution.", 3 );
479                append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
480                append( sb, "", 0 );
481
482                append( sb, "modelObjectStylesheet", 2 );
483                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 );
484                append( sb, "", 0 );
485
486                append( sb, "modelObjectStylesheetResources", 2 );
487                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 );
488                append( sb, "", 0 );
489
490                append( sb, "modelProcessingEnabled (Default: true)", 2 );
491                append( sb, "Controls processing of models.", 3 );
492                append( sb, "Expression: ${jomc.modelProcessing}", 3 );
493                append( sb, "", 0 );
494
495                append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
496                append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
497                append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
498                append( sb, "", 0 );
499
500                append( sb, "modletLocation", 2 );
501                append( sb, "The location to search for modlets.", 3 );
502                append( sb, "Expression: ${jomc.modletLocation}", 3 );
503                append( sb, "", 0 );
504
505                append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
506                append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
507                append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
508                append( sb, "", 0 );
509
510                append( sb, "modletSchemaSystemId", 2 );
511                append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
512                append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
513                append( sb, "", 0 );
514
515                append( sb, "moduleLocation", 2 );
516                append( sb, "The location to search for modules.", 3 );
517                append( sb, "Expression: ${jomc.moduleLocation}", 3 );
518                append( sb, "", 0 );
519
520                append( sb, "moduleName (Default: ${project.name})", 2 );
521                append( sb, "Name of the module to process.", 3 );
522                append( sb, "Expression: ${jomc.moduleName}", 3 );
523                append( sb, "", 0 );
524
525                append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
526                append( sb, "Output directory of the project.", 3 );
527                append( sb, "Expression: ${jomc.outputDirectory}", 3 );
528                append( sb, "", 0 );
529
530                append( sb, "platformProviderLocation", 2 );
531                append( sb, "The location to search for platform providers.", 3 );
532                append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
533                append( sb, "", 0 );
534
535                append( sb, "providerLocation", 2 );
536                append( sb, "The location to search for providers.", 3 );
537                append( sb, "Expression: ${jomc.providerLocation}", 3 );
538                append( sb, "", 0 );
539
540                append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
541                append( sb, "Directory holding the reports of the project.", 3 );
542                append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
543                append( sb, "", 0 );
544
545                append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
546                append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
547                append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
548                append( sb, "", 0 );
549
550                append( sb, "resourceProcessingEnabled (Default: true)", 2 );
551                append( sb, "Controls processing of resource files.", 3 );
552                append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
553                append( sb, "", 0 );
554
555                append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
556                append( sb, "Directory holding the session related files of the project.", 3 );
557                append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
558                append( sb, "", 0 );
559
560                append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
561                append( sb, "Directory holding the source files of the project.", 3 );
562                append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
563                append( sb, "", 0 );
564
565                append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
566                append( sb, "The encoding to use for reading and writing files.", 3 );
567                append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
568                append( sb, "", 0 );
569
570                append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
571                append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
572                append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
573                append( sb, "", 0 );
574
575                append( sb, "sourceProcessingEnabled (Default: true)", 2 );
576                append( sb, "Controls processing of source code files.", 3 );
577                append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
578                append( sb, "", 0 );
579
580                append( sb, "templateEncoding", 2 );
581                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 );
582                append( sb, "Expression: ${jomc.templateEncoding}", 3 );
583                append( sb, "", 0 );
584
585                append( sb, "templateLocation", 2 );
586                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 );
587                append( sb, "Expression: ${jomc.templateLocation}", 3 );
588                append( sb, "", 0 );
589
590                append( sb, "templateParameterResources", 2 );
591                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 );
592                append( sb, "", 0 );
593
594                append( sb, "templateParameters", 2 );
595                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 );
596                append( sb, "", 0 );
597
598                append( sb, "templateProfile", 2 );
599                append( sb, "The template profile to use when accessing templates.", 3 );
600                append( sb, "Expression: ${jomc.templateProfile}", 3 );
601                append( sb, "", 0 );
602
603                append( sb, "testClassesDirectory", 2 );
604                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 );
605                append( sb, "", 0 );
606
607                append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
608                append( sb, "Name of the test module to process.", 3 );
609                append( sb, "Expression: ${jomc.testModuleName}", 3 );
610                append( sb, "", 0 );
611
612                append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
613                append( sb, "Test output directory of the project.", 3 );
614                append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
615                append( sb, "", 0 );
616
617                append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
618                append( sb, "Directory holding the test source files of the project.", 3 );
619                append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
620                append( sb, "", 0 );
621
622                append( sb, "transformationOutputProperties", 2 );
623                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 );
624                append( sb, "", 0 );
625
626                append( sb, "transformationParameterResources", 2 );
627                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 );
628                append( sb, "", 0 );
629
630                append( sb, "transformationParameters", 2 );
631                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 );
632                append( sb, "", 0 );
633
634                append( sb, "transformerLocation", 2 );
635                append( sb, "The location to search for transformers.", 3 );
636                append( sb, "Expression: ${jomc.transformerLocation}", 3 );
637                append( sb, "", 0 );
638
639                append( sb, "velocityProperties", 2 );
640                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 );
641                append( sb, "", 0 );
642
643                append( sb, "velocityPropertyResources", 2 );
644                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 );
645                append( sb, "", 0 );
646
647                append( sb, "verbose (Default: false)", 2 );
648                append( sb, "Controls verbosity of the plugin.", 3 );
649                append( sb, "Expression: ${jomc.verbose}", 3 );
650                append( sb, "", 0 );
651            }
652        }
653
654        if ( goal == null || goal.length() <= 0 || "help".equals( goal ) )
655        {
656            append( sb, "jomc:help", 0 );
657            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 );
658            append( sb, "", 0 );
659            if ( detail )
660            {
661                append( sb, "Available parameters:", 1 );
662                append( sb, "", 0 );
663
664                append( sb, "detail (Default: false)", 2 );
665                append( sb, "If true, display all settable properties for each goal.", 3 );
666                append( sb, "Expression: ${detail}", 3 );
667                append( sb, "", 0 );
668
669                append( sb, "goal", 2 );
670                append( sb, "The name of the goal for which to show help. If unspecified, all goals will be displayed.", 3 );
671                append( sb, "Expression: ${goal}", 3 );
672                append( sb, "", 0 );
673
674                append( sb, "indentSize (Default: 2)", 2 );
675                append( sb, "The number of spaces per indentation level, should be positive.", 3 );
676                append( sb, "Expression: ${indentSize}", 3 );
677                append( sb, "", 0 );
678
679                append( sb, "lineLength (Default: 80)", 2 );
680                append( sb, "The maximum length of a display line, should be positive.", 3 );
681                append( sb, "Expression: ${lineLength}", 3 );
682                append( sb, "", 0 );
683            }
684        }
685
686        if ( goal == null || goal.length() <= 0 || "manage-main-sources".equals( goal ) )
687        {
688            append( sb, "jomc:manage-main-sources", 0 );
689            append( sb, "Manages a projects\' main source files.", 1 );
690            append( sb, "", 0 );
691            if ( detail )
692            {
693                append( sb, "Available parameters:", 1 );
694                append( sb, "", 0 );
695
696                append( sb, "classesDirectory", 2 );
697                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 );
698                append( sb, "", 0 );
699
700                append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
701                append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
702                append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
703                append( sb, "", 0 );
704
705                append( sb, "classProcessingEnabled (Default: true)", 2 );
706                append( sb, "Controls processing of class files.", 3 );
707                append( sb, "Expression: ${jomc.classProcessing}", 3 );
708                append( sb, "", 0 );
709
710                append( sb, "defaultTemplateEncoding", 2 );
711                append( sb, "The encoding to use for reading templates.", 3 );
712                append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
713                append( sb, "", 0 );
714
715                append( sb, "defaultTemplateProfile", 2 );
716                append( sb, "The default template profile to use when accessing templates.", 3 );
717                append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
718                append( sb, "", 0 );
719
720                append( sb, "indentation", 2 );
721                append( sb, "The indentation string (\'\\t\' for tab).", 3 );
722                append( sb, "Expression: ${jomc.indentation}", 3 );
723                append( sb, "", 0 );
724
725                append( sb, "lineSeparator", 2 );
726                append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
727                append( sb, "Expression: ${jomc.lineSeparator}", 3 );
728                append( sb, "", 0 );
729
730                append( sb, "locale", 2 );
731                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 );
732                append( sb, "", 0 );
733
734                append( sb, "manageMainSourcesExecutionStrategy (Default: once-per-session)", 2 );
735                append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
736                append( sb, "Expression: ${jomc.manageMainSourcesExecutionStrategy}", 3 );
737                append( sb, "", 0 );
738
739                append( sb, "model (Default: http://jomc.org/model)", 2 );
740                append( sb, "The identifier of the model to process.", 3 );
741                append( sb, "Expression: ${jomc.model}", 3 );
742                append( sb, "", 0 );
743
744                append( sb, "modelContextAttributes", 2 );
745                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 );
746                append( sb, "", 0 );
747
748                append( sb, "modelContextFactoryClassName", 2 );
749                append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
750                append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
751                append( sb, "", 0 );
752
753                append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
754                append( sb, "Controls model object class path resolution.", 3 );
755                append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
756                append( sb, "", 0 );
757
758                append( sb, "modelProcessingEnabled (Default: true)", 2 );
759                append( sb, "Controls processing of models.", 3 );
760                append( sb, "Expression: ${jomc.modelProcessing}", 3 );
761                append( sb, "", 0 );
762
763                append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
764                append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
765                append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
766                append( sb, "", 0 );
767
768                append( sb, "modletLocation", 2 );
769                append( sb, "The location to search for modlets.", 3 );
770                append( sb, "Expression: ${jomc.modletLocation}", 3 );
771                append( sb, "", 0 );
772
773                append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
774                append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
775                append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
776                append( sb, "", 0 );
777
778                append( sb, "modletSchemaSystemId", 2 );
779                append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
780                append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
781                append( sb, "", 0 );
782
783                append( sb, "moduleLocation", 2 );
784                append( sb, "The location to search for modules.", 3 );
785                append( sb, "Expression: ${jomc.moduleLocation}", 3 );
786                append( sb, "", 0 );
787
788                append( sb, "moduleName (Default: ${project.name})", 2 );
789                append( sb, "Name of the module to process.", 3 );
790                append( sb, "Expression: ${jomc.moduleName}", 3 );
791                append( sb, "", 0 );
792
793                append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
794                append( sb, "Output directory of the project.", 3 );
795                append( sb, "Expression: ${jomc.outputDirectory}", 3 );
796                append( sb, "", 0 );
797
798                append( sb, "platformProviderLocation", 2 );
799                append( sb, "The location to search for platform providers.", 3 );
800                append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
801                append( sb, "", 0 );
802
803                append( sb, "providerLocation", 2 );
804                append( sb, "The location to search for providers.", 3 );
805                append( sb, "Expression: ${jomc.providerLocation}", 3 );
806                append( sb, "", 0 );
807
808                append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
809                append( sb, "Directory holding the reports of the project.", 3 );
810                append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
811                append( sb, "", 0 );
812
813                append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
814                append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
815                append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
816                append( sb, "", 0 );
817
818                append( sb, "resourceProcessingEnabled (Default: true)", 2 );
819                append( sb, "Controls processing of resource files.", 3 );
820                append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
821                append( sb, "", 0 );
822
823                append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
824                append( sb, "Directory holding the session related files of the project.", 3 );
825                append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
826                append( sb, "", 0 );
827
828                append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
829                append( sb, "Directory holding the source files of the project.", 3 );
830                append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
831                append( sb, "", 0 );
832
833                append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
834                append( sb, "The encoding to use for reading and writing files.", 3 );
835                append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
836                append( sb, "", 0 );
837
838                append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
839                append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
840                append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
841                append( sb, "", 0 );
842
843                append( sb, "sourceProcessingEnabled (Default: true)", 2 );
844                append( sb, "Controls processing of source code files.", 3 );
845                append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
846                append( sb, "", 0 );
847
848                append( sb, "templateEncoding", 2 );
849                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 );
850                append( sb, "Expression: ${jomc.templateEncoding}", 3 );
851                append( sb, "", 0 );
852
853                append( sb, "templateLocation", 2 );
854                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 );
855                append( sb, "Expression: ${jomc.templateLocation}", 3 );
856                append( sb, "", 0 );
857
858                append( sb, "templateParameterResources", 2 );
859                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 );
860                append( sb, "", 0 );
861
862                append( sb, "templateParameters", 2 );
863                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 );
864                append( sb, "", 0 );
865
866                append( sb, "templateProfile", 2 );
867                append( sb, "The template profile to use when accessing templates.", 3 );
868                append( sb, "Expression: ${jomc.templateProfile}", 3 );
869                append( sb, "", 0 );
870
871                append( sb, "testClassesDirectory", 2 );
872                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 );
873                append( sb, "", 0 );
874
875                append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
876                append( sb, "Name of the test module to process.", 3 );
877                append( sb, "Expression: ${jomc.testModuleName}", 3 );
878                append( sb, "", 0 );
879
880                append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
881                append( sb, "Test output directory of the project.", 3 );
882                append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
883                append( sb, "", 0 );
884
885                append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
886                append( sb, "Directory holding the test source files of the project.", 3 );
887                append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
888                append( sb, "", 0 );
889
890                append( sb, "transformationOutputProperties", 2 );
891                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 );
892                append( sb, "", 0 );
893
894                append( sb, "transformationParameterResources", 2 );
895                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 );
896                append( sb, "", 0 );
897
898                append( sb, "transformationParameters", 2 );
899                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 );
900                append( sb, "", 0 );
901
902                append( sb, "transformerLocation", 2 );
903                append( sb, "The location to search for transformers.", 3 );
904                append( sb, "Expression: ${jomc.transformerLocation}", 3 );
905                append( sb, "", 0 );
906
907                append( sb, "velocityProperties", 2 );
908                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 );
909                append( sb, "", 0 );
910
911                append( sb, "velocityPropertyResources", 2 );
912                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 );
913                append( sb, "", 0 );
914
915                append( sb, "verbose (Default: false)", 2 );
916                append( sb, "Controls verbosity of the plugin.", 3 );
917                append( sb, "Expression: ${jomc.verbose}", 3 );
918                append( sb, "", 0 );
919            }
920        }
921
922        if ( goal == null || goal.length() <= 0 || "manage-test-sources".equals( goal ) )
923        {
924            append( sb, "jomc:manage-test-sources", 0 );
925            append( sb, "Manages a projects\' test source files.", 1 );
926            append( sb, "", 0 );
927            if ( detail )
928            {
929                append( sb, "Available parameters:", 1 );
930                append( sb, "", 0 );
931
932                append( sb, "classesDirectory", 2 );
933                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 );
934                append( sb, "", 0 );
935
936                append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
937                append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
938                append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
939                append( sb, "", 0 );
940
941                append( sb, "classProcessingEnabled (Default: true)", 2 );
942                append( sb, "Controls processing of class files.", 3 );
943                append( sb, "Expression: ${jomc.classProcessing}", 3 );
944                append( sb, "", 0 );
945
946                append( sb, "defaultTemplateEncoding", 2 );
947                append( sb, "The encoding to use for reading templates.", 3 );
948                append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
949                append( sb, "", 0 );
950
951                append( sb, "defaultTemplateProfile", 2 );
952                append( sb, "The default template profile to use when accessing templates.", 3 );
953                append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
954                append( sb, "", 0 );
955
956                append( sb, "indentation", 2 );
957                append( sb, "The indentation string (\'\\t\' for tab).", 3 );
958                append( sb, "Expression: ${jomc.indentation}", 3 );
959                append( sb, "", 0 );
960
961                append( sb, "lineSeparator", 2 );
962                append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
963                append( sb, "Expression: ${jomc.lineSeparator}", 3 );
964                append( sb, "", 0 );
965
966                append( sb, "locale", 2 );
967                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 );
968                append( sb, "", 0 );
969
970                append( sb, "manageTestSourcesExecutionStrategy (Default: once-per-session)", 2 );
971                append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
972                append( sb, "Expression: ${jomc.manageTestSourcesExecutionStrategy}", 3 );
973                append( sb, "", 0 );
974
975                append( sb, "model (Default: http://jomc.org/model)", 2 );
976                append( sb, "The identifier of the model to process.", 3 );
977                append( sb, "Expression: ${jomc.model}", 3 );
978                append( sb, "", 0 );
979
980                append( sb, "modelContextAttributes", 2 );
981                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 );
982                append( sb, "", 0 );
983
984                append( sb, "modelContextFactoryClassName", 2 );
985                append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
986                append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
987                append( sb, "", 0 );
988
989                append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
990                append( sb, "Controls model object class path resolution.", 3 );
991                append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
992                append( sb, "", 0 );
993
994                append( sb, "modelProcessingEnabled (Default: true)", 2 );
995                append( sb, "Controls processing of models.", 3 );
996                append( sb, "Expression: ${jomc.modelProcessing}", 3 );
997                append( sb, "", 0 );
998
999                append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
1000                append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
1001                append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
1002                append( sb, "", 0 );
1003
1004                append( sb, "modletLocation", 2 );
1005                append( sb, "The location to search for modlets.", 3 );
1006                append( sb, "Expression: ${jomc.modletLocation}", 3 );
1007                append( sb, "", 0 );
1008
1009                append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
1010                append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
1011                append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
1012                append( sb, "", 0 );
1013
1014                append( sb, "modletSchemaSystemId", 2 );
1015                append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
1016                append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
1017                append( sb, "", 0 );
1018
1019                append( sb, "moduleLocation", 2 );
1020                append( sb, "The location to search for modules.", 3 );
1021                append( sb, "Expression: ${jomc.moduleLocation}", 3 );
1022                append( sb, "", 0 );
1023
1024                append( sb, "moduleName (Default: ${project.name})", 2 );
1025                append( sb, "Name of the module to process.", 3 );
1026                append( sb, "Expression: ${jomc.moduleName}", 3 );
1027                append( sb, "", 0 );
1028
1029                append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
1030                append( sb, "Output directory of the project.", 3 );
1031                append( sb, "Expression: ${jomc.outputDirectory}", 3 );
1032                append( sb, "", 0 );
1033
1034                append( sb, "platformProviderLocation", 2 );
1035                append( sb, "The location to search for platform providers.", 3 );
1036                append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
1037                append( sb, "", 0 );
1038
1039                append( sb, "providerLocation", 2 );
1040                append( sb, "The location to search for providers.", 3 );
1041                append( sb, "Expression: ${jomc.providerLocation}", 3 );
1042                append( sb, "", 0 );
1043
1044                append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
1045                append( sb, "Directory holding the reports of the project.", 3 );
1046                append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
1047                append( sb, "", 0 );
1048
1049                append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
1050                append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
1051                append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
1052                append( sb, "", 0 );
1053
1054                append( sb, "resourceProcessingEnabled (Default: true)", 2 );
1055                append( sb, "Controls processing of resource files.", 3 );
1056                append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
1057                append( sb, "", 0 );
1058
1059                append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
1060                append( sb, "Directory holding the session related files of the project.", 3 );
1061                append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
1062                append( sb, "", 0 );
1063
1064                append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
1065                append( sb, "Directory holding the source files of the project.", 3 );
1066                append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
1067                append( sb, "", 0 );
1068
1069                append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
1070                append( sb, "The encoding to use for reading and writing files.", 3 );
1071                append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
1072                append( sb, "", 0 );
1073
1074                append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
1075                append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
1076                append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
1077                append( sb, "", 0 );
1078
1079                append( sb, "sourceProcessingEnabled (Default: true)", 2 );
1080                append( sb, "Controls processing of source code files.", 3 );
1081                append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
1082                append( sb, "", 0 );
1083
1084                append( sb, "templateEncoding", 2 );
1085                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 );
1086                append( sb, "Expression: ${jomc.templateEncoding}", 3 );
1087                append( sb, "", 0 );
1088
1089                append( sb, "templateLocation", 2 );
1090                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 );
1091                append( sb, "Expression: ${jomc.templateLocation}", 3 );
1092                append( sb, "", 0 );
1093
1094                append( sb, "templateParameterResources", 2 );
1095                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 );
1096                append( sb, "", 0 );
1097
1098                append( sb, "templateParameters", 2 );
1099                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 );
1100                append( sb, "", 0 );
1101
1102                append( sb, "templateProfile", 2 );
1103                append( sb, "The template profile to use when accessing templates.", 3 );
1104                append( sb, "Expression: ${jomc.templateProfile}", 3 );
1105                append( sb, "", 0 );
1106
1107                append( sb, "testClassesDirectory", 2 );
1108                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 );
1109                append( sb, "", 0 );
1110
1111                append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
1112                append( sb, "Name of the test module to process.", 3 );
1113                append( sb, "Expression: ${jomc.testModuleName}", 3 );
1114                append( sb, "", 0 );
1115
1116                append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
1117                append( sb, "Test output directory of the project.", 3 );
1118                append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
1119                append( sb, "", 0 );
1120
1121                append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
1122                append( sb, "Directory holding the test source files of the project.", 3 );
1123                append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
1124                append( sb, "", 0 );
1125
1126                append( sb, "transformationOutputProperties", 2 );
1127                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 );
1128                append( sb, "", 0 );
1129
1130                append( sb, "transformationParameterResources", 2 );
1131                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 );
1132                append( sb, "", 0 );
1133
1134                append( sb, "transformationParameters", 2 );
1135                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 );
1136                append( sb, "", 0 );
1137
1138                append( sb, "transformerLocation", 2 );
1139                append( sb, "The location to search for transformers.", 3 );
1140                append( sb, "Expression: ${jomc.transformerLocation}", 3 );
1141                append( sb, "", 0 );
1142
1143                append( sb, "velocityProperties", 2 );
1144                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 );
1145                append( sb, "", 0 );
1146
1147                append( sb, "velocityPropertyResources", 2 );
1148                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 );
1149                append( sb, "", 0 );
1150
1151                append( sb, "verbose (Default: false)", 2 );
1152                append( sb, "Controls verbosity of the plugin.", 3 );
1153                append( sb, "Expression: ${jomc.verbose}", 3 );
1154                append( sb, "", 0 );
1155            }
1156        }
1157
1158        if ( goal == null || goal.length() <= 0 || "show-main-instance".equals( goal ) )
1159        {
1160            append( sb, "jomc:show-main-instance", 0 );
1161            append( sb, "Displays a project\'s main instance.", 1 );
1162            append( sb, "", 0 );
1163            if ( detail )
1164            {
1165                append( sb, "Available parameters:", 1 );
1166                append( sb, "", 0 );
1167
1168                append( sb, "classesDirectory", 2 );
1169                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 );
1170                append( sb, "", 0 );
1171
1172                append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
1173                append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
1174                append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
1175                append( sb, "", 0 );
1176
1177                append( sb, "classProcessingEnabled (Default: true)", 2 );
1178                append( sb, "Controls processing of class files.", 3 );
1179                append( sb, "Expression: ${jomc.classProcessing}", 3 );
1180                append( sb, "", 0 );
1181
1182                append( sb, "defaultTemplateEncoding", 2 );
1183                append( sb, "The encoding to use for reading templates.", 3 );
1184                append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
1185                append( sb, "", 0 );
1186
1187                append( sb, "defaultTemplateProfile", 2 );
1188                append( sb, "The default template profile to use when accessing templates.", 3 );
1189                append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
1190                append( sb, "", 0 );
1191
1192                append( sb, "document", 2 );
1193                append( sb, "File to write the model to.", 3 );
1194                append( sb, "Expression: ${jomc.document}", 3 );
1195                append( sb, "", 0 );
1196
1197                append( sb, "documentEncoding (Default: ${project.build.sourceEncoding})", 2 );
1198                append( sb, "Encoding of the document to write.", 3 );
1199                append( sb, "Expression: ${jomc.documentEncoding}", 3 );
1200                append( sb, "", 0 );
1201
1202                append( sb, "identifier", 2 );
1203                append( sb, "Identifier of the instance to show.", 3 );
1204                append( sb, "Required: Yes", 3 );
1205                append( sb, "Expression: ${jomc.identifier}", 3 );
1206                append( sb, "", 0 );
1207
1208                append( sb, "indentation", 2 );
1209                append( sb, "The indentation string (\'\\t\' for tab).", 3 );
1210                append( sb, "Expression: ${jomc.indentation}", 3 );
1211                append( sb, "", 0 );
1212
1213                append( sb, "lineSeparator", 2 );
1214                append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
1215                append( sb, "Expression: ${jomc.lineSeparator}", 3 );
1216                append( sb, "", 0 );
1217
1218                append( sb, "locale", 2 );
1219                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 );
1220                append( sb, "", 0 );
1221
1222                append( sb, "model (Default: http://jomc.org/model)", 2 );
1223                append( sb, "The identifier of the model to process.", 3 );
1224                append( sb, "Expression: ${jomc.model}", 3 );
1225                append( sb, "", 0 );
1226
1227                append( sb, "modelContextAttributes", 2 );
1228                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 );
1229                append( sb, "", 0 );
1230
1231                append( sb, "modelContextFactoryClassName", 2 );
1232                append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
1233                append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
1234                append( sb, "", 0 );
1235
1236                append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
1237                append( sb, "Controls model object class path resolution.", 3 );
1238                append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
1239                append( sb, "", 0 );
1240
1241                append( sb, "modelProcessingEnabled (Default: true)", 2 );
1242                append( sb, "Controls processing of models.", 3 );
1243                append( sb, "Expression: ${jomc.modelProcessing}", 3 );
1244                append( sb, "", 0 );
1245
1246                append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
1247                append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
1248                append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
1249                append( sb, "", 0 );
1250
1251                append( sb, "modletLocation", 2 );
1252                append( sb, "The location to search for modlets.", 3 );
1253                append( sb, "Expression: ${jomc.modletLocation}", 3 );
1254                append( sb, "", 0 );
1255
1256                append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
1257                append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
1258                append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
1259                append( sb, "", 0 );
1260
1261                append( sb, "modletSchemaSystemId", 2 );
1262                append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
1263                append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
1264                append( sb, "", 0 );
1265
1266                append( sb, "moduleLocation", 2 );
1267                append( sb, "The location to search for modules.", 3 );
1268                append( sb, "Expression: ${jomc.moduleLocation}", 3 );
1269                append( sb, "", 0 );
1270
1271                append( sb, "moduleName (Default: ${project.name})", 2 );
1272                append( sb, "Name of the module to process.", 3 );
1273                append( sb, "Expression: ${jomc.moduleName}", 3 );
1274                append( sb, "", 0 );
1275
1276                append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
1277                append( sb, "Output directory of the project.", 3 );
1278                append( sb, "Expression: ${jomc.outputDirectory}", 3 );
1279                append( sb, "", 0 );
1280
1281                append( sb, "platformProviderLocation", 2 );
1282                append( sb, "The location to search for platform providers.", 3 );
1283                append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
1284                append( sb, "", 0 );
1285
1286                append( sb, "providerLocation", 2 );
1287                append( sb, "The location to search for providers.", 3 );
1288                append( sb, "Expression: ${jomc.providerLocation}", 3 );
1289                append( sb, "", 0 );
1290
1291                append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
1292                append( sb, "Directory holding the reports of the project.", 3 );
1293                append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
1294                append( sb, "", 0 );
1295
1296                append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
1297                append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
1298                append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
1299                append( sb, "", 0 );
1300
1301                append( sb, "resourceProcessingEnabled (Default: true)", 2 );
1302                append( sb, "Controls processing of resource files.", 3 );
1303                append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
1304                append( sb, "", 0 );
1305
1306                append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
1307                append( sb, "Directory holding the session related files of the project.", 3 );
1308                append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
1309                append( sb, "", 0 );
1310
1311                append( sb, "showMainInstanceExecutionStrategy (Default: once-per-session)", 2 );
1312                append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
1313                append( sb, "Expression: ${jomc.showMainInstanceExecutionStrategy}", 3 );
1314                append( sb, "", 0 );
1315
1316                append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
1317                append( sb, "Directory holding the source files of the project.", 3 );
1318                append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
1319                append( sb, "", 0 );
1320
1321                append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
1322                append( sb, "The encoding to use for reading and writing files.", 3 );
1323                append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
1324                append( sb, "", 0 );
1325
1326                append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
1327                append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
1328                append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
1329                append( sb, "", 0 );
1330
1331                append( sb, "sourceProcessingEnabled (Default: true)", 2 );
1332                append( sb, "Controls processing of source code files.", 3 );
1333                append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
1334                append( sb, "", 0 );
1335
1336                append( sb, "templateEncoding", 2 );
1337                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 );
1338                append( sb, "Expression: ${jomc.templateEncoding}", 3 );
1339                append( sb, "", 0 );
1340
1341                append( sb, "templateLocation", 2 );
1342                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 );
1343                append( sb, "Expression: ${jomc.templateLocation}", 3 );
1344                append( sb, "", 0 );
1345
1346                append( sb, "templateParameterResources", 2 );
1347                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 );
1348                append( sb, "", 0 );
1349
1350                append( sb, "templateParameters", 2 );
1351                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 );
1352                append( sb, "", 0 );
1353
1354                append( sb, "templateProfile", 2 );
1355                append( sb, "The template profile to use when accessing templates.", 3 );
1356                append( sb, "Expression: ${jomc.templateProfile}", 3 );
1357                append( sb, "", 0 );
1358
1359                append( sb, "testClassesDirectory", 2 );
1360                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 );
1361                append( sb, "", 0 );
1362
1363                append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
1364                append( sb, "Name of the test module to process.", 3 );
1365                append( sb, "Expression: ${jomc.testModuleName}", 3 );
1366                append( sb, "", 0 );
1367
1368                append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
1369                append( sb, "Test output directory of the project.", 3 );
1370                append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
1371                append( sb, "", 0 );
1372
1373                append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
1374                append( sb, "Directory holding the test source files of the project.", 3 );
1375                append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
1376                append( sb, "", 0 );
1377
1378                append( sb, "transformationOutputProperties", 2 );
1379                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 );
1380                append( sb, "", 0 );
1381
1382                append( sb, "transformationParameterResources", 2 );
1383                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 );
1384                append( sb, "", 0 );
1385
1386                append( sb, "transformationParameters", 2 );
1387                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 );
1388                append( sb, "", 0 );
1389
1390                append( sb, "transformerLocation", 2 );
1391                append( sb, "The location to search for transformers.", 3 );
1392                append( sb, "Expression: ${jomc.transformerLocation}", 3 );
1393                append( sb, "", 0 );
1394
1395                append( sb, "velocityProperties", 2 );
1396                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 );
1397                append( sb, "", 0 );
1398
1399                append( sb, "velocityPropertyResources", 2 );
1400                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 );
1401                append( sb, "", 0 );
1402
1403                append( sb, "verbose (Default: false)", 2 );
1404                append( sb, "Controls verbosity of the plugin.", 3 );
1405                append( sb, "Expression: ${jomc.verbose}", 3 );
1406                append( sb, "", 0 );
1407            }
1408        }
1409
1410        if ( goal == null || goal.length() <= 0 || "show-main-model".equals( goal ) )
1411        {
1412            append( sb, "jomc:show-main-model", 0 );
1413            append( sb, "Displays a project\'s main model.", 1 );
1414            append( sb, "", 0 );
1415            if ( detail )
1416            {
1417                append( sb, "Available parameters:", 1 );
1418                append( sb, "", 0 );
1419
1420                append( sb, "classesDirectory", 2 );
1421                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 );
1422                append( sb, "", 0 );
1423
1424                append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
1425                append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
1426                append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
1427                append( sb, "", 0 );
1428
1429                append( sb, "classProcessingEnabled (Default: true)", 2 );
1430                append( sb, "Controls processing of class files.", 3 );
1431                append( sb, "Expression: ${jomc.classProcessing}", 3 );
1432                append( sb, "", 0 );
1433
1434                append( sb, "defaultTemplateEncoding", 2 );
1435                append( sb, "The encoding to use for reading templates.", 3 );
1436                append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
1437                append( sb, "", 0 );
1438
1439                append( sb, "defaultTemplateProfile", 2 );
1440                append( sb, "The default template profile to use when accessing templates.", 3 );
1441                append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
1442                append( sb, "", 0 );
1443
1444                append( sb, "document", 2 );
1445                append( sb, "File to write the model to.", 3 );
1446                append( sb, "Expression: ${jomc.document}", 3 );
1447                append( sb, "", 0 );
1448
1449                append( sb, "documentEncoding (Default: ${project.build.sourceEncoding})", 2 );
1450                append( sb, "Encoding of the document to write.", 3 );
1451                append( sb, "Expression: ${jomc.documentEncoding}", 3 );
1452                append( sb, "", 0 );
1453
1454                append( sb, "indentation", 2 );
1455                append( sb, "The indentation string (\'\\t\' for tab).", 3 );
1456                append( sb, "Expression: ${jomc.indentation}", 3 );
1457                append( sb, "", 0 );
1458
1459                append( sb, "lineSeparator", 2 );
1460                append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
1461                append( sb, "Expression: ${jomc.lineSeparator}", 3 );
1462                append( sb, "", 0 );
1463
1464                append( sb, "locale", 2 );
1465                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 );
1466                append( sb, "", 0 );
1467
1468                append( sb, "model (Default: http://jomc.org/model)", 2 );
1469                append( sb, "The identifier of the model to process.", 3 );
1470                append( sb, "Expression: ${jomc.model}", 3 );
1471                append( sb, "", 0 );
1472
1473                append( sb, "modelContextAttributes", 2 );
1474                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 );
1475                append( sb, "", 0 );
1476
1477                append( sb, "modelContextFactoryClassName", 2 );
1478                append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
1479                append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
1480                append( sb, "", 0 );
1481
1482                append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
1483                append( sb, "Controls model object class path resolution.", 3 );
1484                append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
1485                append( sb, "", 0 );
1486
1487                append( sb, "modelProcessingEnabled (Default: true)", 2 );
1488                append( sb, "Controls processing of models.", 3 );
1489                append( sb, "Expression: ${jomc.modelProcessing}", 3 );
1490                append( sb, "", 0 );
1491
1492                append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
1493                append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
1494                append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
1495                append( sb, "", 0 );
1496
1497                append( sb, "modletLocation", 2 );
1498                append( sb, "The location to search for modlets.", 3 );
1499                append( sb, "Expression: ${jomc.modletLocation}", 3 );
1500                append( sb, "", 0 );
1501
1502                append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
1503                append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
1504                append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
1505                append( sb, "", 0 );
1506
1507                append( sb, "modletSchemaSystemId", 2 );
1508                append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
1509                append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
1510                append( sb, "", 0 );
1511
1512                append( sb, "moduleLocation", 2 );
1513                append( sb, "The location to search for modules.", 3 );
1514                append( sb, "Expression: ${jomc.moduleLocation}", 3 );
1515                append( sb, "", 0 );
1516
1517                append( sb, "moduleName (Default: ${project.name})", 2 );
1518                append( sb, "Name of the module to process.", 3 );
1519                append( sb, "Expression: ${jomc.moduleName}", 3 );
1520                append( sb, "", 0 );
1521
1522                append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
1523                append( sb, "Output directory of the project.", 3 );
1524                append( sb, "Expression: ${jomc.outputDirectory}", 3 );
1525                append( sb, "", 0 );
1526
1527                append( sb, "platformProviderLocation", 2 );
1528                append( sb, "The location to search for platform providers.", 3 );
1529                append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
1530                append( sb, "", 0 );
1531
1532                append( sb, "providerLocation", 2 );
1533                append( sb, "The location to search for providers.", 3 );
1534                append( sb, "Expression: ${jomc.providerLocation}", 3 );
1535                append( sb, "", 0 );
1536
1537                append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
1538                append( sb, "Directory holding the reports of the project.", 3 );
1539                append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
1540                append( sb, "", 0 );
1541
1542                append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
1543                append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
1544                append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
1545                append( sb, "", 0 );
1546
1547                append( sb, "resourceProcessingEnabled (Default: true)", 2 );
1548                append( sb, "Controls processing of resource files.", 3 );
1549                append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
1550                append( sb, "", 0 );
1551
1552                append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
1553                append( sb, "Directory holding the session related files of the project.", 3 );
1554                append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
1555                append( sb, "", 0 );
1556
1557                append( sb, "showMainModelExecutionStrategy (Default: once-per-session)", 2 );
1558                append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
1559                append( sb, "Expression: ${jomc.showMainModelExecutionStrategy}", 3 );
1560                append( sb, "", 0 );
1561
1562                append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
1563                append( sb, "Directory holding the source files of the project.", 3 );
1564                append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
1565                append( sb, "", 0 );
1566
1567                append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
1568                append( sb, "The encoding to use for reading and writing files.", 3 );
1569                append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
1570                append( sb, "", 0 );
1571
1572                append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
1573                append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
1574                append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
1575                append( sb, "", 0 );
1576
1577                append( sb, "sourceProcessingEnabled (Default: true)", 2 );
1578                append( sb, "Controls processing of source code files.", 3 );
1579                append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
1580                append( sb, "", 0 );
1581
1582                append( sb, "templateEncoding", 2 );
1583                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 );
1584                append( sb, "Expression: ${jomc.templateEncoding}", 3 );
1585                append( sb, "", 0 );
1586
1587                append( sb, "templateLocation", 2 );
1588                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 );
1589                append( sb, "Expression: ${jomc.templateLocation}", 3 );
1590                append( sb, "", 0 );
1591
1592                append( sb, "templateParameterResources", 2 );
1593                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 );
1594                append( sb, "", 0 );
1595
1596                append( sb, "templateParameters", 2 );
1597                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 );
1598                append( sb, "", 0 );
1599
1600                append( sb, "templateProfile", 2 );
1601                append( sb, "The template profile to use when accessing templates.", 3 );
1602                append( sb, "Expression: ${jomc.templateProfile}", 3 );
1603                append( sb, "", 0 );
1604
1605                append( sb, "testClassesDirectory", 2 );
1606                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 );
1607                append( sb, "", 0 );
1608
1609                append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
1610                append( sb, "Name of the test module to process.", 3 );
1611                append( sb, "Expression: ${jomc.testModuleName}", 3 );
1612                append( sb, "", 0 );
1613
1614                append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
1615                append( sb, "Test output directory of the project.", 3 );
1616                append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
1617                append( sb, "", 0 );
1618
1619                append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
1620                append( sb, "Directory holding the test source files of the project.", 3 );
1621                append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
1622                append( sb, "", 0 );
1623
1624                append( sb, "transformationOutputProperties", 2 );
1625                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 );
1626                append( sb, "", 0 );
1627
1628                append( sb, "transformationParameterResources", 2 );
1629                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 );
1630                append( sb, "", 0 );
1631
1632                append( sb, "transformationParameters", 2 );
1633                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 );
1634                append( sb, "", 0 );
1635
1636                append( sb, "transformerLocation", 2 );
1637                append( sb, "The location to search for transformers.", 3 );
1638                append( sb, "Expression: ${jomc.transformerLocation}", 3 );
1639                append( sb, "", 0 );
1640
1641                append( sb, "velocityProperties", 2 );
1642                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 );
1643                append( sb, "", 0 );
1644
1645                append( sb, "velocityPropertyResources", 2 );
1646                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 );
1647                append( sb, "", 0 );
1648
1649                append( sb, "verbose (Default: false)", 2 );
1650                append( sb, "Controls verbosity of the plugin.", 3 );
1651                append( sb, "Expression: ${jomc.verbose}", 3 );
1652                append( sb, "", 0 );
1653            }
1654        }
1655
1656        if ( goal == null || goal.length() <= 0 || "show-main-specification".equals( goal ) )
1657        {
1658            append( sb, "jomc:show-main-specification", 0 );
1659            append( sb, "Displays a project\'s main specification.", 1 );
1660            append( sb, "", 0 );
1661            if ( detail )
1662            {
1663                append( sb, "Available parameters:", 1 );
1664                append( sb, "", 0 );
1665
1666                append( sb, "classesDirectory", 2 );
1667                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 );
1668                append( sb, "", 0 );
1669
1670                append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
1671                append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
1672                append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
1673                append( sb, "", 0 );
1674
1675                append( sb, "classProcessingEnabled (Default: true)", 2 );
1676                append( sb, "Controls processing of class files.", 3 );
1677                append( sb, "Expression: ${jomc.classProcessing}", 3 );
1678                append( sb, "", 0 );
1679
1680                append( sb, "defaultTemplateEncoding", 2 );
1681                append( sb, "The encoding to use for reading templates.", 3 );
1682                append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
1683                append( sb, "", 0 );
1684
1685                append( sb, "defaultTemplateProfile", 2 );
1686                append( sb, "The default template profile to use when accessing templates.", 3 );
1687                append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
1688                append( sb, "", 0 );
1689
1690                append( sb, "document", 2 );
1691                append( sb, "File to write the model to.", 3 );
1692                append( sb, "Expression: ${jomc.document}", 3 );
1693                append( sb, "", 0 );
1694
1695                append( sb, "documentEncoding (Default: ${project.build.sourceEncoding})", 2 );
1696                append( sb, "Encoding of the document to write.", 3 );
1697                append( sb, "Expression: ${jomc.documentEncoding}", 3 );
1698                append( sb, "", 0 );
1699
1700                append( sb, "identifier", 2 );
1701                append( sb, "Identifier of the specification to show.", 3 );
1702                append( sb, "Required: Yes", 3 );
1703                append( sb, "Expression: ${jomc.identifier}", 3 );
1704                append( sb, "", 0 );
1705
1706                append( sb, "indentation", 2 );
1707                append( sb, "The indentation string (\'\\t\' for tab).", 3 );
1708                append( sb, "Expression: ${jomc.indentation}", 3 );
1709                append( sb, "", 0 );
1710
1711                append( sb, "lineSeparator", 2 );
1712                append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
1713                append( sb, "Expression: ${jomc.lineSeparator}", 3 );
1714                append( sb, "", 0 );
1715
1716                append( sb, "locale", 2 );
1717                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 );
1718                append( sb, "", 0 );
1719
1720                append( sb, "model (Default: http://jomc.org/model)", 2 );
1721                append( sb, "The identifier of the model to process.", 3 );
1722                append( sb, "Expression: ${jomc.model}", 3 );
1723                append( sb, "", 0 );
1724
1725                append( sb, "modelContextAttributes", 2 );
1726                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 );
1727                append( sb, "", 0 );
1728
1729                append( sb, "modelContextFactoryClassName", 2 );
1730                append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
1731                append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
1732                append( sb, "", 0 );
1733
1734                append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
1735                append( sb, "Controls model object class path resolution.", 3 );
1736                append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
1737                append( sb, "", 0 );
1738
1739                append( sb, "modelProcessingEnabled (Default: true)", 2 );
1740                append( sb, "Controls processing of models.", 3 );
1741                append( sb, "Expression: ${jomc.modelProcessing}", 3 );
1742                append( sb, "", 0 );
1743
1744                append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
1745                append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
1746                append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
1747                append( sb, "", 0 );
1748
1749                append( sb, "modletLocation", 2 );
1750                append( sb, "The location to search for modlets.", 3 );
1751                append( sb, "Expression: ${jomc.modletLocation}", 3 );
1752                append( sb, "", 0 );
1753
1754                append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
1755                append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
1756                append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
1757                append( sb, "", 0 );
1758
1759                append( sb, "modletSchemaSystemId", 2 );
1760                append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
1761                append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
1762                append( sb, "", 0 );
1763
1764                append( sb, "moduleLocation", 2 );
1765                append( sb, "The location to search for modules.", 3 );
1766                append( sb, "Expression: ${jomc.moduleLocation}", 3 );
1767                append( sb, "", 0 );
1768
1769                append( sb, "moduleName (Default: ${project.name})", 2 );
1770                append( sb, "Name of the module to process.", 3 );
1771                append( sb, "Expression: ${jomc.moduleName}", 3 );
1772                append( sb, "", 0 );
1773
1774                append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
1775                append( sb, "Output directory of the project.", 3 );
1776                append( sb, "Expression: ${jomc.outputDirectory}", 3 );
1777                append( sb, "", 0 );
1778
1779                append( sb, "platformProviderLocation", 2 );
1780                append( sb, "The location to search for platform providers.", 3 );
1781                append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
1782                append( sb, "", 0 );
1783
1784                append( sb, "providerLocation", 2 );
1785                append( sb, "The location to search for providers.", 3 );
1786                append( sb, "Expression: ${jomc.providerLocation}", 3 );
1787                append( sb, "", 0 );
1788
1789                append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
1790                append( sb, "Directory holding the reports of the project.", 3 );
1791                append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
1792                append( sb, "", 0 );
1793
1794                append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
1795                append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
1796                append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
1797                append( sb, "", 0 );
1798
1799                append( sb, "resourceProcessingEnabled (Default: true)", 2 );
1800                append( sb, "Controls processing of resource files.", 3 );
1801                append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
1802                append( sb, "", 0 );
1803
1804                append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
1805                append( sb, "Directory holding the session related files of the project.", 3 );
1806                append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
1807                append( sb, "", 0 );
1808
1809                append( sb, "showMainSpecificationExecutionStrategy (Default: once-per-session)", 2 );
1810                append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
1811                append( sb, "Expression: ${jomc.showMainSpecificationExecutionStrategy}", 3 );
1812                append( sb, "", 0 );
1813
1814                append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
1815                append( sb, "Directory holding the source files of the project.", 3 );
1816                append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
1817                append( sb, "", 0 );
1818
1819                append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
1820                append( sb, "The encoding to use for reading and writing files.", 3 );
1821                append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
1822                append( sb, "", 0 );
1823
1824                append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
1825                append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
1826                append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
1827                append( sb, "", 0 );
1828
1829                append( sb, "sourceProcessingEnabled (Default: true)", 2 );
1830                append( sb, "Controls processing of source code files.", 3 );
1831                append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
1832                append( sb, "", 0 );
1833
1834                append( sb, "templateEncoding", 2 );
1835                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 );
1836                append( sb, "Expression: ${jomc.templateEncoding}", 3 );
1837                append( sb, "", 0 );
1838
1839                append( sb, "templateLocation", 2 );
1840                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 );
1841                append( sb, "Expression: ${jomc.templateLocation}", 3 );
1842                append( sb, "", 0 );
1843
1844                append( sb, "templateParameterResources", 2 );
1845                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 );
1846                append( sb, "", 0 );
1847
1848                append( sb, "templateParameters", 2 );
1849                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 );
1850                append( sb, "", 0 );
1851
1852                append( sb, "templateProfile", 2 );
1853                append( sb, "The template profile to use when accessing templates.", 3 );
1854                append( sb, "Expression: ${jomc.templateProfile}", 3 );
1855                append( sb, "", 0 );
1856
1857                append( sb, "testClassesDirectory", 2 );
1858                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 );
1859                append( sb, "", 0 );
1860
1861                append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
1862                append( sb, "Name of the test module to process.", 3 );
1863                append( sb, "Expression: ${jomc.testModuleName}", 3 );
1864                append( sb, "", 0 );
1865
1866                append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
1867                append( sb, "Test output directory of the project.", 3 );
1868                append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
1869                append( sb, "", 0 );
1870
1871                append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
1872                append( sb, "Directory holding the test source files of the project.", 3 );
1873                append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
1874                append( sb, "", 0 );
1875
1876                append( sb, "transformationOutputProperties", 2 );
1877                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 );
1878                append( sb, "", 0 );
1879
1880                append( sb, "transformationParameterResources", 2 );
1881                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 );
1882                append( sb, "", 0 );
1883
1884                append( sb, "transformationParameters", 2 );
1885                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 );
1886                append( sb, "", 0 );
1887
1888                append( sb, "transformerLocation", 2 );
1889                append( sb, "The location to search for transformers.", 3 );
1890                append( sb, "Expression: ${jomc.transformerLocation}", 3 );
1891                append( sb, "", 0 );
1892
1893                append( sb, "velocityProperties", 2 );
1894                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 );
1895                append( sb, "", 0 );
1896
1897                append( sb, "velocityPropertyResources", 2 );
1898                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 );
1899                append( sb, "", 0 );
1900
1901                append( sb, "verbose (Default: false)", 2 );
1902                append( sb, "Controls verbosity of the plugin.", 3 );
1903                append( sb, "Expression: ${jomc.verbose}", 3 );
1904                append( sb, "", 0 );
1905            }
1906        }
1907
1908        if ( goal == null || goal.length() <= 0 || "show-test-instance".equals( goal ) )
1909        {
1910            append( sb, "jomc:show-test-instance", 0 );
1911            append( sb, "Displays a project\'s test instance.", 1 );
1912            append( sb, "", 0 );
1913            if ( detail )
1914            {
1915                append( sb, "Available parameters:", 1 );
1916                append( sb, "", 0 );
1917
1918                append( sb, "classesDirectory", 2 );
1919                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 );
1920                append( sb, "", 0 );
1921
1922                append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
1923                append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
1924                append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
1925                append( sb, "", 0 );
1926
1927                append( sb, "classProcessingEnabled (Default: true)", 2 );
1928                append( sb, "Controls processing of class files.", 3 );
1929                append( sb, "Expression: ${jomc.classProcessing}", 3 );
1930                append( sb, "", 0 );
1931
1932                append( sb, "defaultTemplateEncoding", 2 );
1933                append( sb, "The encoding to use for reading templates.", 3 );
1934                append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
1935                append( sb, "", 0 );
1936
1937                append( sb, "defaultTemplateProfile", 2 );
1938                append( sb, "The default template profile to use when accessing templates.", 3 );
1939                append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
1940                append( sb, "", 0 );
1941
1942                append( sb, "document", 2 );
1943                append( sb, "File to write the model to.", 3 );
1944                append( sb, "Expression: ${jomc.document}", 3 );
1945                append( sb, "", 0 );
1946
1947                append( sb, "documentEncoding (Default: ${project.build.sourceEncoding})", 2 );
1948                append( sb, "Encoding of the document to write.", 3 );
1949                append( sb, "Expression: ${jomc.documentEncoding}", 3 );
1950                append( sb, "", 0 );
1951
1952                append( sb, "identifier", 2 );
1953                append( sb, "Identifier of the instance to show.", 3 );
1954                append( sb, "Required: Yes", 3 );
1955                append( sb, "Expression: ${jomc.identifier}", 3 );
1956                append( sb, "", 0 );
1957
1958                append( sb, "indentation", 2 );
1959                append( sb, "The indentation string (\'\\t\' for tab).", 3 );
1960                append( sb, "Expression: ${jomc.indentation}", 3 );
1961                append( sb, "", 0 );
1962
1963                append( sb, "lineSeparator", 2 );
1964                append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
1965                append( sb, "Expression: ${jomc.lineSeparator}", 3 );
1966                append( sb, "", 0 );
1967
1968                append( sb, "locale", 2 );
1969                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 );
1970                append( sb, "", 0 );
1971
1972                append( sb, "model (Default: http://jomc.org/model)", 2 );
1973                append( sb, "The identifier of the model to process.", 3 );
1974                append( sb, "Expression: ${jomc.model}", 3 );
1975                append( sb, "", 0 );
1976
1977                append( sb, "modelContextAttributes", 2 );
1978                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 );
1979                append( sb, "", 0 );
1980
1981                append( sb, "modelContextFactoryClassName", 2 );
1982                append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
1983                append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
1984                append( sb, "", 0 );
1985
1986                append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
1987                append( sb, "Controls model object class path resolution.", 3 );
1988                append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
1989                append( sb, "", 0 );
1990
1991                append( sb, "modelProcessingEnabled (Default: true)", 2 );
1992                append( sb, "Controls processing of models.", 3 );
1993                append( sb, "Expression: ${jomc.modelProcessing}", 3 );
1994                append( sb, "", 0 );
1995
1996                append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
1997                append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
1998                append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
1999                append( sb, "", 0 );
2000
2001                append( sb, "modletLocation", 2 );
2002                append( sb, "The location to search for modlets.", 3 );
2003                append( sb, "Expression: ${jomc.modletLocation}", 3 );
2004                append( sb, "", 0 );
2005
2006                append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
2007                append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
2008                append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
2009                append( sb, "", 0 );
2010
2011                append( sb, "modletSchemaSystemId", 2 );
2012                append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
2013                append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
2014                append( sb, "", 0 );
2015
2016                append( sb, "moduleLocation", 2 );
2017                append( sb, "The location to search for modules.", 3 );
2018                append( sb, "Expression: ${jomc.moduleLocation}", 3 );
2019                append( sb, "", 0 );
2020
2021                append( sb, "moduleName (Default: ${project.name})", 2 );
2022                append( sb, "Name of the module to process.", 3 );
2023                append( sb, "Expression: ${jomc.moduleName}", 3 );
2024                append( sb, "", 0 );
2025
2026                append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
2027                append( sb, "Output directory of the project.", 3 );
2028                append( sb, "Expression: ${jomc.outputDirectory}", 3 );
2029                append( sb, "", 0 );
2030
2031                append( sb, "platformProviderLocation", 2 );
2032                append( sb, "The location to search for platform providers.", 3 );
2033                append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
2034                append( sb, "", 0 );
2035
2036                append( sb, "providerLocation", 2 );
2037                append( sb, "The location to search for providers.", 3 );
2038                append( sb, "Expression: ${jomc.providerLocation}", 3 );
2039                append( sb, "", 0 );
2040
2041                append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
2042                append( sb, "Directory holding the reports of the project.", 3 );
2043                append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
2044                append( sb, "", 0 );
2045
2046                append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
2047                append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
2048                append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
2049                append( sb, "", 0 );
2050
2051                append( sb, "resourceProcessingEnabled (Default: true)", 2 );
2052                append( sb, "Controls processing of resource files.", 3 );
2053                append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
2054                append( sb, "", 0 );
2055
2056                append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
2057                append( sb, "Directory holding the session related files of the project.", 3 );
2058                append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
2059                append( sb, "", 0 );
2060
2061                append( sb, "showTestInstanceExecutionStrategy (Default: once-per-session)", 2 );
2062                append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
2063                append( sb, "Expression: ${jomc.showTestInstanceExecutionStrategy}", 3 );
2064                append( sb, "", 0 );
2065
2066                append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
2067                append( sb, "Directory holding the source files of the project.", 3 );
2068                append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
2069                append( sb, "", 0 );
2070
2071                append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
2072                append( sb, "The encoding to use for reading and writing files.", 3 );
2073                append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
2074                append( sb, "", 0 );
2075
2076                append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
2077                append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
2078                append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
2079                append( sb, "", 0 );
2080
2081                append( sb, "sourceProcessingEnabled (Default: true)", 2 );
2082                append( sb, "Controls processing of source code files.", 3 );
2083                append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
2084                append( sb, "", 0 );
2085
2086                append( sb, "templateEncoding", 2 );
2087                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 );
2088                append( sb, "Expression: ${jomc.templateEncoding}", 3 );
2089                append( sb, "", 0 );
2090
2091                append( sb, "templateLocation", 2 );
2092                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 );
2093                append( sb, "Expression: ${jomc.templateLocation}", 3 );
2094                append( sb, "", 0 );
2095
2096                append( sb, "templateParameterResources", 2 );
2097                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 );
2098                append( sb, "", 0 );
2099
2100                append( sb, "templateParameters", 2 );
2101                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 );
2102                append( sb, "", 0 );
2103
2104                append( sb, "templateProfile", 2 );
2105                append( sb, "The template profile to use when accessing templates.", 3 );
2106                append( sb, "Expression: ${jomc.templateProfile}", 3 );
2107                append( sb, "", 0 );
2108
2109                append( sb, "testClassesDirectory", 2 );
2110                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 );
2111                append( sb, "", 0 );
2112
2113                append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
2114                append( sb, "Name of the test module to process.", 3 );
2115                append( sb, "Expression: ${jomc.testModuleName}", 3 );
2116                append( sb, "", 0 );
2117
2118                append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
2119                append( sb, "Test output directory of the project.", 3 );
2120                append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
2121                append( sb, "", 0 );
2122
2123                append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
2124                append( sb, "Directory holding the test source files of the project.", 3 );
2125                append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
2126                append( sb, "", 0 );
2127
2128                append( sb, "transformationOutputProperties", 2 );
2129                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 );
2130                append( sb, "", 0 );
2131
2132                append( sb, "transformationParameterResources", 2 );
2133                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 );
2134                append( sb, "", 0 );
2135
2136                append( sb, "transformationParameters", 2 );
2137                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 );
2138                append( sb, "", 0 );
2139
2140                append( sb, "transformerLocation", 2 );
2141                append( sb, "The location to search for transformers.", 3 );
2142                append( sb, "Expression: ${jomc.transformerLocation}", 3 );
2143                append( sb, "", 0 );
2144
2145                append( sb, "velocityProperties", 2 );
2146                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 );
2147                append( sb, "", 0 );
2148
2149                append( sb, "velocityPropertyResources", 2 );
2150                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 );
2151                append( sb, "", 0 );
2152
2153                append( sb, "verbose (Default: false)", 2 );
2154                append( sb, "Controls verbosity of the plugin.", 3 );
2155                append( sb, "Expression: ${jomc.verbose}", 3 );
2156                append( sb, "", 0 );
2157            }
2158        }
2159
2160        if ( goal == null || goal.length() <= 0 || "show-test-model".equals( goal ) )
2161        {
2162            append( sb, "jomc:show-test-model", 0 );
2163            append( sb, "Displays a project\'s test model.", 1 );
2164            append( sb, "", 0 );
2165            if ( detail )
2166            {
2167                append( sb, "Available parameters:", 1 );
2168                append( sb, "", 0 );
2169
2170                append( sb, "classesDirectory", 2 );
2171                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 );
2172                append( sb, "", 0 );
2173
2174                append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
2175                append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
2176                append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
2177                append( sb, "", 0 );
2178
2179                append( sb, "classProcessingEnabled (Default: true)", 2 );
2180                append( sb, "Controls processing of class files.", 3 );
2181                append( sb, "Expression: ${jomc.classProcessing}", 3 );
2182                append( sb, "", 0 );
2183
2184                append( sb, "defaultTemplateEncoding", 2 );
2185                append( sb, "The encoding to use for reading templates.", 3 );
2186                append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
2187                append( sb, "", 0 );
2188
2189                append( sb, "defaultTemplateProfile", 2 );
2190                append( sb, "The default template profile to use when accessing templates.", 3 );
2191                append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
2192                append( sb, "", 0 );
2193
2194                append( sb, "document", 2 );
2195                append( sb, "File to write the model to.", 3 );
2196                append( sb, "Expression: ${jomc.document}", 3 );
2197                append( sb, "", 0 );
2198
2199                append( sb, "documentEncoding (Default: ${project.build.sourceEncoding})", 2 );
2200                append( sb, "Encoding of the document to write.", 3 );
2201                append( sb, "Expression: ${jomc.documentEncoding}", 3 );
2202                append( sb, "", 0 );
2203
2204                append( sb, "indentation", 2 );
2205                append( sb, "The indentation string (\'\\t\' for tab).", 3 );
2206                append( sb, "Expression: ${jomc.indentation}", 3 );
2207                append( sb, "", 0 );
2208
2209                append( sb, "lineSeparator", 2 );
2210                append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
2211                append( sb, "Expression: ${jomc.lineSeparator}", 3 );
2212                append( sb, "", 0 );
2213
2214                append( sb, "locale", 2 );
2215                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 );
2216                append( sb, "", 0 );
2217
2218                append( sb, "model (Default: http://jomc.org/model)", 2 );
2219                append( sb, "The identifier of the model to process.", 3 );
2220                append( sb, "Expression: ${jomc.model}", 3 );
2221                append( sb, "", 0 );
2222
2223                append( sb, "modelContextAttributes", 2 );
2224                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 );
2225                append( sb, "", 0 );
2226
2227                append( sb, "modelContextFactoryClassName", 2 );
2228                append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
2229                append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
2230                append( sb, "", 0 );
2231
2232                append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
2233                append( sb, "Controls model object class path resolution.", 3 );
2234                append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
2235                append( sb, "", 0 );
2236
2237                append( sb, "modelProcessingEnabled (Default: true)", 2 );
2238                append( sb, "Controls processing of models.", 3 );
2239                append( sb, "Expression: ${jomc.modelProcessing}", 3 );
2240                append( sb, "", 0 );
2241
2242                append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
2243                append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
2244                append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
2245                append( sb, "", 0 );
2246
2247                append( sb, "modletLocation", 2 );
2248                append( sb, "The location to search for modlets.", 3 );
2249                append( sb, "Expression: ${jomc.modletLocation}", 3 );
2250                append( sb, "", 0 );
2251
2252                append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
2253                append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
2254                append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
2255                append( sb, "", 0 );
2256
2257                append( sb, "modletSchemaSystemId", 2 );
2258                append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
2259                append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
2260                append( sb, "", 0 );
2261
2262                append( sb, "moduleLocation", 2 );
2263                append( sb, "The location to search for modules.", 3 );
2264                append( sb, "Expression: ${jomc.moduleLocation}", 3 );
2265                append( sb, "", 0 );
2266
2267                append( sb, "moduleName (Default: ${project.name})", 2 );
2268                append( sb, "Name of the module to process.", 3 );
2269                append( sb, "Expression: ${jomc.moduleName}", 3 );
2270                append( sb, "", 0 );
2271
2272                append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
2273                append( sb, "Output directory of the project.", 3 );
2274                append( sb, "Expression: ${jomc.outputDirectory}", 3 );
2275                append( sb, "", 0 );
2276
2277                append( sb, "platformProviderLocation", 2 );
2278                append( sb, "The location to search for platform providers.", 3 );
2279                append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
2280                append( sb, "", 0 );
2281
2282                append( sb, "providerLocation", 2 );
2283                append( sb, "The location to search for providers.", 3 );
2284                append( sb, "Expression: ${jomc.providerLocation}", 3 );
2285                append( sb, "", 0 );
2286
2287                append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
2288                append( sb, "Directory holding the reports of the project.", 3 );
2289                append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
2290                append( sb, "", 0 );
2291
2292                append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
2293                append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
2294                append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
2295                append( sb, "", 0 );
2296
2297                append( sb, "resourceProcessingEnabled (Default: true)", 2 );
2298                append( sb, "Controls processing of resource files.", 3 );
2299                append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
2300                append( sb, "", 0 );
2301
2302                append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
2303                append( sb, "Directory holding the session related files of the project.", 3 );
2304                append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
2305                append( sb, "", 0 );
2306
2307                append( sb, "showTestModelExecutionStrategy (Default: once-per-session)", 2 );
2308                append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
2309                append( sb, "Expression: ${jomc.showTestModelExecutionStrategy}", 3 );
2310                append( sb, "", 0 );
2311
2312                append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
2313                append( sb, "Directory holding the source files of the project.", 3 );
2314                append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
2315                append( sb, "", 0 );
2316
2317                append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
2318                append( sb, "The encoding to use for reading and writing files.", 3 );
2319                append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
2320                append( sb, "", 0 );
2321
2322                append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
2323                append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
2324                append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
2325                append( sb, "", 0 );
2326
2327                append( sb, "sourceProcessingEnabled (Default: true)", 2 );
2328                append( sb, "Controls processing of source code files.", 3 );
2329                append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
2330                append( sb, "", 0 );
2331
2332                append( sb, "templateEncoding", 2 );
2333                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 );
2334                append( sb, "Expression: ${jomc.templateEncoding}", 3 );
2335                append( sb, "", 0 );
2336
2337                append( sb, "templateLocation", 2 );
2338                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 );
2339                append( sb, "Expression: ${jomc.templateLocation}", 3 );
2340                append( sb, "", 0 );
2341
2342                append( sb, "templateParameterResources", 2 );
2343                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 );
2344                append( sb, "", 0 );
2345
2346                append( sb, "templateParameters", 2 );
2347                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 );
2348                append( sb, "", 0 );
2349
2350                append( sb, "templateProfile", 2 );
2351                append( sb, "The template profile to use when accessing templates.", 3 );
2352                append( sb, "Expression: ${jomc.templateProfile}", 3 );
2353                append( sb, "", 0 );
2354
2355                append( sb, "testClassesDirectory", 2 );
2356                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 );
2357                append( sb, "", 0 );
2358
2359                append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
2360                append( sb, "Name of the test module to process.", 3 );
2361                append( sb, "Expression: ${jomc.testModuleName}", 3 );
2362                append( sb, "", 0 );
2363
2364                append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
2365                append( sb, "Test output directory of the project.", 3 );
2366                append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
2367                append( sb, "", 0 );
2368
2369                append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
2370                append( sb, "Directory holding the test source files of the project.", 3 );
2371                append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
2372                append( sb, "", 0 );
2373
2374                append( sb, "transformationOutputProperties", 2 );
2375                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 );
2376                append( sb, "", 0 );
2377
2378                append( sb, "transformationParameterResources", 2 );
2379                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 );
2380                append( sb, "", 0 );
2381
2382                append( sb, "transformationParameters", 2 );
2383                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 );
2384                append( sb, "", 0 );
2385
2386                append( sb, "transformerLocation", 2 );
2387                append( sb, "The location to search for transformers.", 3 );
2388                append( sb, "Expression: ${jomc.transformerLocation}", 3 );
2389                append( sb, "", 0 );
2390
2391                append( sb, "velocityProperties", 2 );
2392                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 );
2393                append( sb, "", 0 );
2394
2395                append( sb, "velocityPropertyResources", 2 );
2396                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 );
2397                append( sb, "", 0 );
2398
2399                append( sb, "verbose (Default: false)", 2 );
2400                append( sb, "Controls verbosity of the plugin.", 3 );
2401                append( sb, "Expression: ${jomc.verbose}", 3 );
2402                append( sb, "", 0 );
2403            }
2404        }
2405
2406        if ( goal == null || goal.length() <= 0 || "show-test-specification".equals( goal ) )
2407        {
2408            append( sb, "jomc:show-test-specification", 0 );
2409            append( sb, "Displays a project\'s test specification.", 1 );
2410            append( sb, "", 0 );
2411            if ( detail )
2412            {
2413                append( sb, "Available parameters:", 1 );
2414                append( sb, "", 0 );
2415
2416                append( sb, "classesDirectory", 2 );
2417                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 );
2418                append( sb, "", 0 );
2419
2420                append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
2421                append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
2422                append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
2423                append( sb, "", 0 );
2424
2425                append( sb, "classProcessingEnabled (Default: true)", 2 );
2426                append( sb, "Controls processing of class files.", 3 );
2427                append( sb, "Expression: ${jomc.classProcessing}", 3 );
2428                append( sb, "", 0 );
2429
2430                append( sb, "defaultTemplateEncoding", 2 );
2431                append( sb, "The encoding to use for reading templates.", 3 );
2432                append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
2433                append( sb, "", 0 );
2434
2435                append( sb, "defaultTemplateProfile", 2 );
2436                append( sb, "The default template profile to use when accessing templates.", 3 );
2437                append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
2438                append( sb, "", 0 );
2439
2440                append( sb, "document", 2 );
2441                append( sb, "File to write the model to.", 3 );
2442                append( sb, "Expression: ${jomc.document}", 3 );
2443                append( sb, "", 0 );
2444
2445                append( sb, "documentEncoding (Default: ${project.build.sourceEncoding})", 2 );
2446                append( sb, "Encoding of the document to write.", 3 );
2447                append( sb, "Expression: ${jomc.documentEncoding}", 3 );
2448                append( sb, "", 0 );
2449
2450                append( sb, "identifier", 2 );
2451                append( sb, "Identifier of the specification to show.", 3 );
2452                append( sb, "Required: Yes", 3 );
2453                append( sb, "Expression: ${jomc.identifier}", 3 );
2454                append( sb, "", 0 );
2455
2456                append( sb, "indentation", 2 );
2457                append( sb, "The indentation string (\'\\t\' for tab).", 3 );
2458                append( sb, "Expression: ${jomc.indentation}", 3 );
2459                append( sb, "", 0 );
2460
2461                append( sb, "lineSeparator", 2 );
2462                append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
2463                append( sb, "Expression: ${jomc.lineSeparator}", 3 );
2464                append( sb, "", 0 );
2465
2466                append( sb, "locale", 2 );
2467                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 );
2468                append( sb, "", 0 );
2469
2470                append( sb, "model (Default: http://jomc.org/model)", 2 );
2471                append( sb, "The identifier of the model to process.", 3 );
2472                append( sb, "Expression: ${jomc.model}", 3 );
2473                append( sb, "", 0 );
2474
2475                append( sb, "modelContextAttributes", 2 );
2476                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 );
2477                append( sb, "", 0 );
2478
2479                append( sb, "modelContextFactoryClassName", 2 );
2480                append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
2481                append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
2482                append( sb, "", 0 );
2483
2484                append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
2485                append( sb, "Controls model object class path resolution.", 3 );
2486                append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
2487                append( sb, "", 0 );
2488
2489                append( sb, "modelProcessingEnabled (Default: true)", 2 );
2490                append( sb, "Controls processing of models.", 3 );
2491                append( sb, "Expression: ${jomc.modelProcessing}", 3 );
2492                append( sb, "", 0 );
2493
2494                append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
2495                append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
2496                append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
2497                append( sb, "", 0 );
2498
2499                append( sb, "modletLocation", 2 );
2500                append( sb, "The location to search for modlets.", 3 );
2501                append( sb, "Expression: ${jomc.modletLocation}", 3 );
2502                append( sb, "", 0 );
2503
2504                append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
2505                append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
2506                append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
2507                append( sb, "", 0 );
2508
2509                append( sb, "modletSchemaSystemId", 2 );
2510                append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
2511                append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
2512                append( sb, "", 0 );
2513
2514                append( sb, "moduleLocation", 2 );
2515                append( sb, "The location to search for modules.", 3 );
2516                append( sb, "Expression: ${jomc.moduleLocation}", 3 );
2517                append( sb, "", 0 );
2518
2519                append( sb, "moduleName (Default: ${project.name})", 2 );
2520                append( sb, "Name of the module to process.", 3 );
2521                append( sb, "Expression: ${jomc.moduleName}", 3 );
2522                append( sb, "", 0 );
2523
2524                append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
2525                append( sb, "Output directory of the project.", 3 );
2526                append( sb, "Expression: ${jomc.outputDirectory}", 3 );
2527                append( sb, "", 0 );
2528
2529                append( sb, "platformProviderLocation", 2 );
2530                append( sb, "The location to search for platform providers.", 3 );
2531                append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
2532                append( sb, "", 0 );
2533
2534                append( sb, "providerLocation", 2 );
2535                append( sb, "The location to search for providers.", 3 );
2536                append( sb, "Expression: ${jomc.providerLocation}", 3 );
2537                append( sb, "", 0 );
2538
2539                append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
2540                append( sb, "Directory holding the reports of the project.", 3 );
2541                append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
2542                append( sb, "", 0 );
2543
2544                append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
2545                append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
2546                append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
2547                append( sb, "", 0 );
2548
2549                append( sb, "resourceProcessingEnabled (Default: true)", 2 );
2550                append( sb, "Controls processing of resource files.", 3 );
2551                append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
2552                append( sb, "", 0 );
2553
2554                append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
2555                append( sb, "Directory holding the session related files of the project.", 3 );
2556                append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
2557                append( sb, "", 0 );
2558
2559                append( sb, "showTestSpecificationExecutionStrategy (Default: once-per-session)", 2 );
2560                append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
2561                append( sb, "Expression: ${jomc.showTestSpecificationExecutionStrategy}", 3 );
2562                append( sb, "", 0 );
2563
2564                append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
2565                append( sb, "Directory holding the source files of the project.", 3 );
2566                append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
2567                append( sb, "", 0 );
2568
2569                append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
2570                append( sb, "The encoding to use for reading and writing files.", 3 );
2571                append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
2572                append( sb, "", 0 );
2573
2574                append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
2575                append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
2576                append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
2577                append( sb, "", 0 );
2578
2579                append( sb, "sourceProcessingEnabled (Default: true)", 2 );
2580                append( sb, "Controls processing of source code files.", 3 );
2581                append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
2582                append( sb, "", 0 );
2583
2584                append( sb, "templateEncoding", 2 );
2585                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 );
2586                append( sb, "Expression: ${jomc.templateEncoding}", 3 );
2587                append( sb, "", 0 );
2588
2589                append( sb, "templateLocation", 2 );
2590                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 );
2591                append( sb, "Expression: ${jomc.templateLocation}", 3 );
2592                append( sb, "", 0 );
2593
2594                append( sb, "templateParameterResources", 2 );
2595                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 );
2596                append( sb, "", 0 );
2597
2598                append( sb, "templateParameters", 2 );
2599                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 );
2600                append( sb, "", 0 );
2601
2602                append( sb, "templateProfile", 2 );
2603                append( sb, "The template profile to use when accessing templates.", 3 );
2604                append( sb, "Expression: ${jomc.templateProfile}", 3 );
2605                append( sb, "", 0 );
2606
2607                append( sb, "testClassesDirectory", 2 );
2608                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 );
2609                append( sb, "", 0 );
2610
2611                append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
2612                append( sb, "Name of the test module to process.", 3 );
2613                append( sb, "Expression: ${jomc.testModuleName}", 3 );
2614                append( sb, "", 0 );
2615
2616                append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
2617                append( sb, "Test output directory of the project.", 3 );
2618                append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
2619                append( sb, "", 0 );
2620
2621                append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
2622                append( sb, "Directory holding the test source files of the project.", 3 );
2623                append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
2624                append( sb, "", 0 );
2625
2626                append( sb, "transformationOutputProperties", 2 );
2627                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 );
2628                append( sb, "", 0 );
2629
2630                append( sb, "transformationParameterResources", 2 );
2631                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 );
2632                append( sb, "", 0 );
2633
2634                append( sb, "transformationParameters", 2 );
2635                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 );
2636                append( sb, "", 0 );
2637
2638                append( sb, "transformerLocation", 2 );
2639                append( sb, "The location to search for transformers.", 3 );
2640                append( sb, "Expression: ${jomc.transformerLocation}", 3 );
2641                append( sb, "", 0 );
2642
2643                append( sb, "velocityProperties", 2 );
2644                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 );
2645                append( sb, "", 0 );
2646
2647                append( sb, "velocityPropertyResources", 2 );
2648                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 );
2649                append( sb, "", 0 );
2650
2651                append( sb, "verbose (Default: false)", 2 );
2652                append( sb, "Controls verbosity of the plugin.", 3 );
2653                append( sb, "Expression: ${jomc.verbose}", 3 );
2654                append( sb, "", 0 );
2655            }
2656        }
2657
2658        if ( goal == null || goal.length() <= 0 || "validate-main-classes".equals( goal ) )
2659        {
2660            append( sb, "jomc:validate-main-classes", 0 );
2661            append( sb, "Validates a projects\' main class file model objects.", 1 );
2662            append( sb, "", 0 );
2663            if ( detail )
2664            {
2665                append( sb, "Available parameters:", 1 );
2666                append( sb, "", 0 );
2667
2668                append( sb, "classesDirectory", 2 );
2669                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 );
2670                append( sb, "", 0 );
2671
2672                append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
2673                append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
2674                append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
2675                append( sb, "", 0 );
2676
2677                append( sb, "classProcessingEnabled (Default: true)", 2 );
2678                append( sb, "Controls processing of class files.", 3 );
2679                append( sb, "Expression: ${jomc.classProcessing}", 3 );
2680                append( sb, "", 0 );
2681
2682                append( sb, "defaultTemplateEncoding", 2 );
2683                append( sb, "The encoding to use for reading templates.", 3 );
2684                append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
2685                append( sb, "", 0 );
2686
2687                append( sb, "defaultTemplateProfile", 2 );
2688                append( sb, "The default template profile to use when accessing templates.", 3 );
2689                append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
2690                append( sb, "", 0 );
2691
2692                append( sb, "indentation", 2 );
2693                append( sb, "The indentation string (\'\\t\' for tab).", 3 );
2694                append( sb, "Expression: ${jomc.indentation}", 3 );
2695                append( sb, "", 0 );
2696
2697                append( sb, "lineSeparator", 2 );
2698                append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
2699                append( sb, "Expression: ${jomc.lineSeparator}", 3 );
2700                append( sb, "", 0 );
2701
2702                append( sb, "locale", 2 );
2703                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 );
2704                append( sb, "", 0 );
2705
2706                append( sb, "model (Default: http://jomc.org/model)", 2 );
2707                append( sb, "The identifier of the model to process.", 3 );
2708                append( sb, "Expression: ${jomc.model}", 3 );
2709                append( sb, "", 0 );
2710
2711                append( sb, "modelContextAttributes", 2 );
2712                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 );
2713                append( sb, "", 0 );
2714
2715                append( sb, "modelContextFactoryClassName", 2 );
2716                append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
2717                append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
2718                append( sb, "", 0 );
2719
2720                append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
2721                append( sb, "Controls model object class path resolution.", 3 );
2722                append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
2723                append( sb, "", 0 );
2724
2725                append( sb, "modelProcessingEnabled (Default: true)", 2 );
2726                append( sb, "Controls processing of models.", 3 );
2727                append( sb, "Expression: ${jomc.modelProcessing}", 3 );
2728                append( sb, "", 0 );
2729
2730                append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
2731                append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
2732                append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
2733                append( sb, "", 0 );
2734
2735                append( sb, "modletLocation", 2 );
2736                append( sb, "The location to search for modlets.", 3 );
2737                append( sb, "Expression: ${jomc.modletLocation}", 3 );
2738                append( sb, "", 0 );
2739
2740                append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
2741                append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
2742                append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
2743                append( sb, "", 0 );
2744
2745                append( sb, "modletSchemaSystemId", 2 );
2746                append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
2747                append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
2748                append( sb, "", 0 );
2749
2750                append( sb, "moduleLocation", 2 );
2751                append( sb, "The location to search for modules.", 3 );
2752                append( sb, "Expression: ${jomc.moduleLocation}", 3 );
2753                append( sb, "", 0 );
2754
2755                append( sb, "moduleName (Default: ${project.name})", 2 );
2756                append( sb, "Name of the module to process.", 3 );
2757                append( sb, "Expression: ${jomc.moduleName}", 3 );
2758                append( sb, "", 0 );
2759
2760                append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
2761                append( sb, "Output directory of the project.", 3 );
2762                append( sb, "Expression: ${jomc.outputDirectory}", 3 );
2763                append( sb, "", 0 );
2764
2765                append( sb, "platformProviderLocation", 2 );
2766                append( sb, "The location to search for platform providers.", 3 );
2767                append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
2768                append( sb, "", 0 );
2769
2770                append( sb, "providerLocation", 2 );
2771                append( sb, "The location to search for providers.", 3 );
2772                append( sb, "Expression: ${jomc.providerLocation}", 3 );
2773                append( sb, "", 0 );
2774
2775                append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
2776                append( sb, "Directory holding the reports of the project.", 3 );
2777                append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
2778                append( sb, "", 0 );
2779
2780                append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
2781                append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
2782                append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
2783                append( sb, "", 0 );
2784
2785                append( sb, "resourceProcessingEnabled (Default: true)", 2 );
2786                append( sb, "Controls processing of resource files.", 3 );
2787                append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
2788                append( sb, "", 0 );
2789
2790                append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
2791                append( sb, "Directory holding the session related files of the project.", 3 );
2792                append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
2793                append( sb, "", 0 );
2794
2795                append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
2796                append( sb, "Directory holding the source files of the project.", 3 );
2797                append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
2798                append( sb, "", 0 );
2799
2800                append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
2801                append( sb, "The encoding to use for reading and writing files.", 3 );
2802                append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
2803                append( sb, "", 0 );
2804
2805                append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
2806                append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
2807                append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
2808                append( sb, "", 0 );
2809
2810                append( sb, "sourceProcessingEnabled (Default: true)", 2 );
2811                append( sb, "Controls processing of source code files.", 3 );
2812                append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
2813                append( sb, "", 0 );
2814
2815                append( sb, "templateEncoding", 2 );
2816                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 );
2817                append( sb, "Expression: ${jomc.templateEncoding}", 3 );
2818                append( sb, "", 0 );
2819
2820                append( sb, "templateLocation", 2 );
2821                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 );
2822                append( sb, "Expression: ${jomc.templateLocation}", 3 );
2823                append( sb, "", 0 );
2824
2825                append( sb, "templateParameterResources", 2 );
2826                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 );
2827                append( sb, "", 0 );
2828
2829                append( sb, "templateParameters", 2 );
2830                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 );
2831                append( sb, "", 0 );
2832
2833                append( sb, "templateProfile", 2 );
2834                append( sb, "The template profile to use when accessing templates.", 3 );
2835                append( sb, "Expression: ${jomc.templateProfile}", 3 );
2836                append( sb, "", 0 );
2837
2838                append( sb, "testClassesDirectory", 2 );
2839                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 );
2840                append( sb, "", 0 );
2841
2842                append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
2843                append( sb, "Name of the test module to process.", 3 );
2844                append( sb, "Expression: ${jomc.testModuleName}", 3 );
2845                append( sb, "", 0 );
2846
2847                append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
2848                append( sb, "Test output directory of the project.", 3 );
2849                append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
2850                append( sb, "", 0 );
2851
2852                append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
2853                append( sb, "Directory holding the test source files of the project.", 3 );
2854                append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
2855                append( sb, "", 0 );
2856
2857                append( sb, "transformationOutputProperties", 2 );
2858                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 );
2859                append( sb, "", 0 );
2860
2861                append( sb, "transformationParameterResources", 2 );
2862                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 );
2863                append( sb, "", 0 );
2864
2865                append( sb, "transformationParameters", 2 );
2866                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 );
2867                append( sb, "", 0 );
2868
2869                append( sb, "transformerLocation", 2 );
2870                append( sb, "The location to search for transformers.", 3 );
2871                append( sb, "Expression: ${jomc.transformerLocation}", 3 );
2872                append( sb, "", 0 );
2873
2874                append( sb, "validateMainClassesExecutionStrategy (Default: once-per-session)", 2 );
2875                append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
2876                append( sb, "Expression: ${jomc.validateMainClassesExecutionStrategy}", 3 );
2877                append( sb, "", 0 );
2878
2879                append( sb, "velocityProperties", 2 );
2880                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 );
2881                append( sb, "", 0 );
2882
2883                append( sb, "velocityPropertyResources", 2 );
2884                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 );
2885                append( sb, "", 0 );
2886
2887                append( sb, "verbose (Default: false)", 2 );
2888                append( sb, "Controls verbosity of the plugin.", 3 );
2889                append( sb, "Expression: ${jomc.verbose}", 3 );
2890                append( sb, "", 0 );
2891            }
2892        }
2893
2894        if ( goal == null || goal.length() <= 0 || "validate-main-classpath".equals( goal ) )
2895        {
2896            append( sb, "jomc:validate-main-classpath", 0 );
2897            append( sb, "Validates a projects\' main classpath class file model objects.", 1 );
2898            append( sb, "", 0 );
2899            if ( detail )
2900            {
2901                append( sb, "Available parameters:", 1 );
2902                append( sb, "", 0 );
2903
2904                append( sb, "classesDirectory", 2 );
2905                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 );
2906                append( sb, "", 0 );
2907
2908                append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
2909                append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
2910                append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
2911                append( sb, "", 0 );
2912
2913                append( sb, "classProcessingEnabled (Default: true)", 2 );
2914                append( sb, "Controls processing of class files.", 3 );
2915                append( sb, "Expression: ${jomc.classProcessing}", 3 );
2916                append( sb, "", 0 );
2917
2918                append( sb, "defaultTemplateEncoding", 2 );
2919                append( sb, "The encoding to use for reading templates.", 3 );
2920                append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
2921                append( sb, "", 0 );
2922
2923                append( sb, "defaultTemplateProfile", 2 );
2924                append( sb, "The default template profile to use when accessing templates.", 3 );
2925                append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
2926                append( sb, "", 0 );
2927
2928                append( sb, "indentation", 2 );
2929                append( sb, "The indentation string (\'\\t\' for tab).", 3 );
2930                append( sb, "Expression: ${jomc.indentation}", 3 );
2931                append( sb, "", 0 );
2932
2933                append( sb, "lineSeparator", 2 );
2934                append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
2935                append( sb, "Expression: ${jomc.lineSeparator}", 3 );
2936                append( sb, "", 0 );
2937
2938                append( sb, "locale", 2 );
2939                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 );
2940                append( sb, "", 0 );
2941
2942                append( sb, "model (Default: http://jomc.org/model)", 2 );
2943                append( sb, "The identifier of the model to process.", 3 );
2944                append( sb, "Expression: ${jomc.model}", 3 );
2945                append( sb, "", 0 );
2946
2947                append( sb, "modelContextAttributes", 2 );
2948                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 );
2949                append( sb, "", 0 );
2950
2951                append( sb, "modelContextFactoryClassName", 2 );
2952                append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
2953                append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
2954                append( sb, "", 0 );
2955
2956                append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
2957                append( sb, "Controls model object class path resolution.", 3 );
2958                append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
2959                append( sb, "", 0 );
2960
2961                append( sb, "modelProcessingEnabled (Default: true)", 2 );
2962                append( sb, "Controls processing of models.", 3 );
2963                append( sb, "Expression: ${jomc.modelProcessing}", 3 );
2964                append( sb, "", 0 );
2965
2966                append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
2967                append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
2968                append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
2969                append( sb, "", 0 );
2970
2971                append( sb, "modletLocation", 2 );
2972                append( sb, "The location to search for modlets.", 3 );
2973                append( sb, "Expression: ${jomc.modletLocation}", 3 );
2974                append( sb, "", 0 );
2975
2976                append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
2977                append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
2978                append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
2979                append( sb, "", 0 );
2980
2981                append( sb, "modletSchemaSystemId", 2 );
2982                append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
2983                append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
2984                append( sb, "", 0 );
2985
2986                append( sb, "moduleLocation", 2 );
2987                append( sb, "The location to search for modules.", 3 );
2988                append( sb, "Expression: ${jomc.moduleLocation}", 3 );
2989                append( sb, "", 0 );
2990
2991                append( sb, "moduleName (Default: ${project.name})", 2 );
2992                append( sb, "Name of the module to process.", 3 );
2993                append( sb, "Expression: ${jomc.moduleName}", 3 );
2994                append( sb, "", 0 );
2995
2996                append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
2997                append( sb, "Output directory of the project.", 3 );
2998                append( sb, "Expression: ${jomc.outputDirectory}", 3 );
2999                append( sb, "", 0 );
3000
3001                append( sb, "platformProviderLocation", 2 );
3002                append( sb, "The location to search for platform providers.", 3 );
3003                append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
3004                append( sb, "", 0 );
3005
3006                append( sb, "providerLocation", 2 );
3007                append( sb, "The location to search for providers.", 3 );
3008                append( sb, "Expression: ${jomc.providerLocation}", 3 );
3009                append( sb, "", 0 );
3010
3011                append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
3012                append( sb, "Directory holding the reports of the project.", 3 );
3013                append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
3014                append( sb, "", 0 );
3015
3016                append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
3017                append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
3018                append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
3019                append( sb, "", 0 );
3020
3021                append( sb, "resourceProcessingEnabled (Default: true)", 2 );
3022                append( sb, "Controls processing of resource files.", 3 );
3023                append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
3024                append( sb, "", 0 );
3025
3026                append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
3027                append( sb, "Directory holding the session related files of the project.", 3 );
3028                append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
3029                append( sb, "", 0 );
3030
3031                append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
3032                append( sb, "Directory holding the source files of the project.", 3 );
3033                append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
3034                append( sb, "", 0 );
3035
3036                append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
3037                append( sb, "The encoding to use for reading and writing files.", 3 );
3038                append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
3039                append( sb, "", 0 );
3040
3041                append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
3042                append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
3043                append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
3044                append( sb, "", 0 );
3045
3046                append( sb, "sourceProcessingEnabled (Default: true)", 2 );
3047                append( sb, "Controls processing of source code files.", 3 );
3048                append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
3049                append( sb, "", 0 );
3050
3051                append( sb, "templateEncoding", 2 );
3052                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 );
3053                append( sb, "Expression: ${jomc.templateEncoding}", 3 );
3054                append( sb, "", 0 );
3055
3056                append( sb, "templateLocation", 2 );
3057                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 );
3058                append( sb, "Expression: ${jomc.templateLocation}", 3 );
3059                append( sb, "", 0 );
3060
3061                append( sb, "templateParameterResources", 2 );
3062                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 );
3063                append( sb, "", 0 );
3064
3065                append( sb, "templateParameters", 2 );
3066                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 );
3067                append( sb, "", 0 );
3068
3069                append( sb, "templateProfile", 2 );
3070                append( sb, "The template profile to use when accessing templates.", 3 );
3071                append( sb, "Expression: ${jomc.templateProfile}", 3 );
3072                append( sb, "", 0 );
3073
3074                append( sb, "testClassesDirectory", 2 );
3075                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 );
3076                append( sb, "", 0 );
3077
3078                append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
3079                append( sb, "Name of the test module to process.", 3 );
3080                append( sb, "Expression: ${jomc.testModuleName}", 3 );
3081                append( sb, "", 0 );
3082
3083                append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
3084                append( sb, "Test output directory of the project.", 3 );
3085                append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
3086                append( sb, "", 0 );
3087
3088                append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
3089                append( sb, "Directory holding the test source files of the project.", 3 );
3090                append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
3091                append( sb, "", 0 );
3092
3093                append( sb, "transformationOutputProperties", 2 );
3094                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 );
3095                append( sb, "", 0 );
3096
3097                append( sb, "transformationParameterResources", 2 );
3098                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 );
3099                append( sb, "", 0 );
3100
3101                append( sb, "transformationParameters", 2 );
3102                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 );
3103                append( sb, "", 0 );
3104
3105                append( sb, "transformerLocation", 2 );
3106                append( sb, "The location to search for transformers.", 3 );
3107                append( sb, "Expression: ${jomc.transformerLocation}", 3 );
3108                append( sb, "", 0 );
3109
3110                append( sb, "validateMainClasspathExecutionStrategy (Default: once-per-session)", 2 );
3111                append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
3112                append( sb, "Expression: ${jomc.validateMainClasspathExecutionStrategy}", 3 );
3113                append( sb, "", 0 );
3114
3115                append( sb, "velocityProperties", 2 );
3116                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 );
3117                append( sb, "", 0 );
3118
3119                append( sb, "velocityPropertyResources", 2 );
3120                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 );
3121                append( sb, "", 0 );
3122
3123                append( sb, "verbose (Default: false)", 2 );
3124                append( sb, "Controls verbosity of the plugin.", 3 );
3125                append( sb, "Expression: ${jomc.verbose}", 3 );
3126                append( sb, "", 0 );
3127            }
3128        }
3129
3130        if ( goal == null || goal.length() <= 0 || "validate-main-model".equals( goal ) )
3131        {
3132            append( sb, "jomc:validate-main-model", 0 );
3133            append( sb, "Validates a project\'s main model.", 1 );
3134            append( sb, "", 0 );
3135            if ( detail )
3136            {
3137                append( sb, "Available parameters:", 1 );
3138                append( sb, "", 0 );
3139
3140                append( sb, "classesDirectory", 2 );
3141                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 );
3142                append( sb, "", 0 );
3143
3144                append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
3145                append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
3146                append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
3147                append( sb, "", 0 );
3148
3149                append( sb, "classProcessingEnabled (Default: true)", 2 );
3150                append( sb, "Controls processing of class files.", 3 );
3151                append( sb, "Expression: ${jomc.classProcessing}", 3 );
3152                append( sb, "", 0 );
3153
3154                append( sb, "defaultTemplateEncoding", 2 );
3155                append( sb, "The encoding to use for reading templates.", 3 );
3156                append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
3157                append( sb, "", 0 );
3158
3159                append( sb, "defaultTemplateProfile", 2 );
3160                append( sb, "The default template profile to use when accessing templates.", 3 );
3161                append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
3162                append( sb, "", 0 );
3163
3164                append( sb, "indentation", 2 );
3165                append( sb, "The indentation string (\'\\t\' for tab).", 3 );
3166                append( sb, "Expression: ${jomc.indentation}", 3 );
3167                append( sb, "", 0 );
3168
3169                append( sb, "lineSeparator", 2 );
3170                append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
3171                append( sb, "Expression: ${jomc.lineSeparator}", 3 );
3172                append( sb, "", 0 );
3173
3174                append( sb, "locale", 2 );
3175                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 );
3176                append( sb, "", 0 );
3177
3178                append( sb, "model (Default: http://jomc.org/model)", 2 );
3179                append( sb, "The identifier of the model to process.", 3 );
3180                append( sb, "Expression: ${jomc.model}", 3 );
3181                append( sb, "", 0 );
3182
3183                append( sb, "modelContextAttributes", 2 );
3184                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 );
3185                append( sb, "", 0 );
3186
3187                append( sb, "modelContextFactoryClassName", 2 );
3188                append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
3189                append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
3190                append( sb, "", 0 );
3191
3192                append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
3193                append( sb, "Controls model object class path resolution.", 3 );
3194                append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
3195                append( sb, "", 0 );
3196
3197                append( sb, "modelProcessingEnabled (Default: true)", 2 );
3198                append( sb, "Controls processing of models.", 3 );
3199                append( sb, "Expression: ${jomc.modelProcessing}", 3 );
3200                append( sb, "", 0 );
3201
3202                append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
3203                append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
3204                append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
3205                append( sb, "", 0 );
3206
3207                append( sb, "modletLocation", 2 );
3208                append( sb, "The location to search for modlets.", 3 );
3209                append( sb, "Expression: ${jomc.modletLocation}", 3 );
3210                append( sb, "", 0 );
3211
3212                append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
3213                append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
3214                append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
3215                append( sb, "", 0 );
3216
3217                append( sb, "modletSchemaSystemId", 2 );
3218                append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
3219                append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
3220                append( sb, "", 0 );
3221
3222                append( sb, "moduleLocation", 2 );
3223                append( sb, "The location to search for modules.", 3 );
3224                append( sb, "Expression: ${jomc.moduleLocation}", 3 );
3225                append( sb, "", 0 );
3226
3227                append( sb, "moduleName (Default: ${project.name})", 2 );
3228                append( sb, "Name of the module to process.", 3 );
3229                append( sb, "Expression: ${jomc.moduleName}", 3 );
3230                append( sb, "", 0 );
3231
3232                append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
3233                append( sb, "Output directory of the project.", 3 );
3234                append( sb, "Expression: ${jomc.outputDirectory}", 3 );
3235                append( sb, "", 0 );
3236
3237                append( sb, "platformProviderLocation", 2 );
3238                append( sb, "The location to search for platform providers.", 3 );
3239                append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
3240                append( sb, "", 0 );
3241
3242                append( sb, "providerLocation", 2 );
3243                append( sb, "The location to search for providers.", 3 );
3244                append( sb, "Expression: ${jomc.providerLocation}", 3 );
3245                append( sb, "", 0 );
3246
3247                append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
3248                append( sb, "Directory holding the reports of the project.", 3 );
3249                append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
3250                append( sb, "", 0 );
3251
3252                append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
3253                append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
3254                append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
3255                append( sb, "", 0 );
3256
3257                append( sb, "resourceProcessingEnabled (Default: true)", 2 );
3258                append( sb, "Controls processing of resource files.", 3 );
3259                append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
3260                append( sb, "", 0 );
3261
3262                append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
3263                append( sb, "Directory holding the session related files of the project.", 3 );
3264                append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
3265                append( sb, "", 0 );
3266
3267                append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
3268                append( sb, "Directory holding the source files of the project.", 3 );
3269                append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
3270                append( sb, "", 0 );
3271
3272                append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
3273                append( sb, "The encoding to use for reading and writing files.", 3 );
3274                append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
3275                append( sb, "", 0 );
3276
3277                append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
3278                append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
3279                append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
3280                append( sb, "", 0 );
3281
3282                append( sb, "sourceProcessingEnabled (Default: true)", 2 );
3283                append( sb, "Controls processing of source code files.", 3 );
3284                append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
3285                append( sb, "", 0 );
3286
3287                append( sb, "templateEncoding", 2 );
3288                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 );
3289                append( sb, "Expression: ${jomc.templateEncoding}", 3 );
3290                append( sb, "", 0 );
3291
3292                append( sb, "templateLocation", 2 );
3293                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 );
3294                append( sb, "Expression: ${jomc.templateLocation}", 3 );
3295                append( sb, "", 0 );
3296
3297                append( sb, "templateParameterResources", 2 );
3298                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 );
3299                append( sb, "", 0 );
3300
3301                append( sb, "templateParameters", 2 );
3302                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 );
3303                append( sb, "", 0 );
3304
3305                append( sb, "templateProfile", 2 );
3306                append( sb, "The template profile to use when accessing templates.", 3 );
3307                append( sb, "Expression: ${jomc.templateProfile}", 3 );
3308                append( sb, "", 0 );
3309
3310                append( sb, "testClassesDirectory", 2 );
3311                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 );
3312                append( sb, "", 0 );
3313
3314                append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
3315                append( sb, "Name of the test module to process.", 3 );
3316                append( sb, "Expression: ${jomc.testModuleName}", 3 );
3317                append( sb, "", 0 );
3318
3319                append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
3320                append( sb, "Test output directory of the project.", 3 );
3321                append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
3322                append( sb, "", 0 );
3323
3324                append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
3325                append( sb, "Directory holding the test source files of the project.", 3 );
3326                append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
3327                append( sb, "", 0 );
3328
3329                append( sb, "transformationOutputProperties", 2 );
3330                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 );
3331                append( sb, "", 0 );
3332
3333                append( sb, "transformationParameterResources", 2 );
3334                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 );
3335                append( sb, "", 0 );
3336
3337                append( sb, "transformationParameters", 2 );
3338                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 );
3339                append( sb, "", 0 );
3340
3341                append( sb, "transformerLocation", 2 );
3342                append( sb, "The location to search for transformers.", 3 );
3343                append( sb, "Expression: ${jomc.transformerLocation}", 3 );
3344                append( sb, "", 0 );
3345
3346                append( sb, "validateMainModelExecutionStrategy (Default: once-per-session)", 2 );
3347                append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
3348                append( sb, "Expression: ${jomc.validateMainModelExecutionStrategy}", 3 );
3349                append( sb, "", 0 );
3350
3351                append( sb, "velocityProperties", 2 );
3352                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 );
3353                append( sb, "", 0 );
3354
3355                append( sb, "velocityPropertyResources", 2 );
3356                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 );
3357                append( sb, "", 0 );
3358
3359                append( sb, "verbose (Default: false)", 2 );
3360                append( sb, "Controls verbosity of the plugin.", 3 );
3361                append( sb, "Expression: ${jomc.verbose}", 3 );
3362                append( sb, "", 0 );
3363            }
3364        }
3365
3366        if ( goal == null || goal.length() <= 0 || "validate-test-classes".equals( goal ) )
3367        {
3368            append( sb, "jomc:validate-test-classes", 0 );
3369            append( sb, "Validates a projects\' test class file model objects.", 1 );
3370            append( sb, "", 0 );
3371            if ( detail )
3372            {
3373                append( sb, "Available parameters:", 1 );
3374                append( sb, "", 0 );
3375
3376                append( sb, "classesDirectory", 2 );
3377                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 );
3378                append( sb, "", 0 );
3379
3380                append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
3381                append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
3382                append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
3383                append( sb, "", 0 );
3384
3385                append( sb, "classProcessingEnabled (Default: true)", 2 );
3386                append( sb, "Controls processing of class files.", 3 );
3387                append( sb, "Expression: ${jomc.classProcessing}", 3 );
3388                append( sb, "", 0 );
3389
3390                append( sb, "defaultTemplateEncoding", 2 );
3391                append( sb, "The encoding to use for reading templates.", 3 );
3392                append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
3393                append( sb, "", 0 );
3394
3395                append( sb, "defaultTemplateProfile", 2 );
3396                append( sb, "The default template profile to use when accessing templates.", 3 );
3397                append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
3398                append( sb, "", 0 );
3399
3400                append( sb, "indentation", 2 );
3401                append( sb, "The indentation string (\'\\t\' for tab).", 3 );
3402                append( sb, "Expression: ${jomc.indentation}", 3 );
3403                append( sb, "", 0 );
3404
3405                append( sb, "lineSeparator", 2 );
3406                append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
3407                append( sb, "Expression: ${jomc.lineSeparator}", 3 );
3408                append( sb, "", 0 );
3409
3410                append( sb, "locale", 2 );
3411                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 );
3412                append( sb, "", 0 );
3413
3414                append( sb, "model (Default: http://jomc.org/model)", 2 );
3415                append( sb, "The identifier of the model to process.", 3 );
3416                append( sb, "Expression: ${jomc.model}", 3 );
3417                append( sb, "", 0 );
3418
3419                append( sb, "modelContextAttributes", 2 );
3420                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 );
3421                append( sb, "", 0 );
3422
3423                append( sb, "modelContextFactoryClassName", 2 );
3424                append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
3425                append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
3426                append( sb, "", 0 );
3427
3428                append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
3429                append( sb, "Controls model object class path resolution.", 3 );
3430                append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
3431                append( sb, "", 0 );
3432
3433                append( sb, "modelProcessingEnabled (Default: true)", 2 );
3434                append( sb, "Controls processing of models.", 3 );
3435                append( sb, "Expression: ${jomc.modelProcessing}", 3 );
3436                append( sb, "", 0 );
3437
3438                append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
3439                append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
3440                append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
3441                append( sb, "", 0 );
3442
3443                append( sb, "modletLocation", 2 );
3444                append( sb, "The location to search for modlets.", 3 );
3445                append( sb, "Expression: ${jomc.modletLocation}", 3 );
3446                append( sb, "", 0 );
3447
3448                append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
3449                append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
3450                append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
3451                append( sb, "", 0 );
3452
3453                append( sb, "modletSchemaSystemId", 2 );
3454                append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
3455                append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
3456                append( sb, "", 0 );
3457
3458                append( sb, "moduleLocation", 2 );
3459                append( sb, "The location to search for modules.", 3 );
3460                append( sb, "Expression: ${jomc.moduleLocation}", 3 );
3461                append( sb, "", 0 );
3462
3463                append( sb, "moduleName (Default: ${project.name})", 2 );
3464                append( sb, "Name of the module to process.", 3 );
3465                append( sb, "Expression: ${jomc.moduleName}", 3 );
3466                append( sb, "", 0 );
3467
3468                append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
3469                append( sb, "Output directory of the project.", 3 );
3470                append( sb, "Expression: ${jomc.outputDirectory}", 3 );
3471                append( sb, "", 0 );
3472
3473                append( sb, "platformProviderLocation", 2 );
3474                append( sb, "The location to search for platform providers.", 3 );
3475                append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
3476                append( sb, "", 0 );
3477
3478                append( sb, "providerLocation", 2 );
3479                append( sb, "The location to search for providers.", 3 );
3480                append( sb, "Expression: ${jomc.providerLocation}", 3 );
3481                append( sb, "", 0 );
3482
3483                append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
3484                append( sb, "Directory holding the reports of the project.", 3 );
3485                append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
3486                append( sb, "", 0 );
3487
3488                append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
3489                append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
3490                append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
3491                append( sb, "", 0 );
3492
3493                append( sb, "resourceProcessingEnabled (Default: true)", 2 );
3494                append( sb, "Controls processing of resource files.", 3 );
3495                append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
3496                append( sb, "", 0 );
3497
3498                append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
3499                append( sb, "Directory holding the session related files of the project.", 3 );
3500                append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
3501                append( sb, "", 0 );
3502
3503                append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
3504                append( sb, "Directory holding the source files of the project.", 3 );
3505                append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
3506                append( sb, "", 0 );
3507
3508                append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
3509                append( sb, "The encoding to use for reading and writing files.", 3 );
3510                append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
3511                append( sb, "", 0 );
3512
3513                append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
3514                append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
3515                append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
3516                append( sb, "", 0 );
3517
3518                append( sb, "sourceProcessingEnabled (Default: true)", 2 );
3519                append( sb, "Controls processing of source code files.", 3 );
3520                append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
3521                append( sb, "", 0 );
3522
3523                append( sb, "templateEncoding", 2 );
3524                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 );
3525                append( sb, "Expression: ${jomc.templateEncoding}", 3 );
3526                append( sb, "", 0 );
3527
3528                append( sb, "templateLocation", 2 );
3529                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 );
3530                append( sb, "Expression: ${jomc.templateLocation}", 3 );
3531                append( sb, "", 0 );
3532
3533                append( sb, "templateParameterResources", 2 );
3534                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 );
3535                append( sb, "", 0 );
3536
3537                append( sb, "templateParameters", 2 );
3538                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 );
3539                append( sb, "", 0 );
3540
3541                append( sb, "templateProfile", 2 );
3542                append( sb, "The template profile to use when accessing templates.", 3 );
3543                append( sb, "Expression: ${jomc.templateProfile}", 3 );
3544                append( sb, "", 0 );
3545
3546                append( sb, "testClassesDirectory", 2 );
3547                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 );
3548                append( sb, "", 0 );
3549
3550                append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
3551                append( sb, "Name of the test module to process.", 3 );
3552                append( sb, "Expression: ${jomc.testModuleName}", 3 );
3553                append( sb, "", 0 );
3554
3555                append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
3556                append( sb, "Test output directory of the project.", 3 );
3557                append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
3558                append( sb, "", 0 );
3559
3560                append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
3561                append( sb, "Directory holding the test source files of the project.", 3 );
3562                append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
3563                append( sb, "", 0 );
3564
3565                append( sb, "transformationOutputProperties", 2 );
3566                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 );
3567                append( sb, "", 0 );
3568
3569                append( sb, "transformationParameterResources", 2 );
3570                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 );
3571                append( sb, "", 0 );
3572
3573                append( sb, "transformationParameters", 2 );
3574                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 );
3575                append( sb, "", 0 );
3576
3577                append( sb, "transformerLocation", 2 );
3578                append( sb, "The location to search for transformers.", 3 );
3579                append( sb, "Expression: ${jomc.transformerLocation}", 3 );
3580                append( sb, "", 0 );
3581
3582                append( sb, "validateTestClassesExecutionStrategy (Default: once-per-session)", 2 );
3583                append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
3584                append( sb, "Expression: ${jomc.validateTestClassesExecutionStrategy}", 3 );
3585                append( sb, "", 0 );
3586
3587                append( sb, "velocityProperties", 2 );
3588                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 );
3589                append( sb, "", 0 );
3590
3591                append( sb, "velocityPropertyResources", 2 );
3592                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 );
3593                append( sb, "", 0 );
3594
3595                append( sb, "verbose (Default: false)", 2 );
3596                append( sb, "Controls verbosity of the plugin.", 3 );
3597                append( sb, "Expression: ${jomc.verbose}", 3 );
3598                append( sb, "", 0 );
3599            }
3600        }
3601
3602        if ( goal == null || goal.length() <= 0 || "validate-test-classpath".equals( goal ) )
3603        {
3604            append( sb, "jomc:validate-test-classpath", 0 );
3605            append( sb, "Validates a projects\' test class path class file model objects.", 1 );
3606            append( sb, "", 0 );
3607            if ( detail )
3608            {
3609                append( sb, "Available parameters:", 1 );
3610                append( sb, "", 0 );
3611
3612                append( sb, "classesDirectory", 2 );
3613                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 );
3614                append( sb, "", 0 );
3615
3616                append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
3617                append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
3618                append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
3619                append( sb, "", 0 );
3620
3621                append( sb, "classProcessingEnabled (Default: true)", 2 );
3622                append( sb, "Controls processing of class files.", 3 );
3623                append( sb, "Expression: ${jomc.classProcessing}", 3 );
3624                append( sb, "", 0 );
3625
3626                append( sb, "defaultTemplateEncoding", 2 );
3627                append( sb, "The encoding to use for reading templates.", 3 );
3628                append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
3629                append( sb, "", 0 );
3630
3631                append( sb, "defaultTemplateProfile", 2 );
3632                append( sb, "The default template profile to use when accessing templates.", 3 );
3633                append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
3634                append( sb, "", 0 );
3635
3636                append( sb, "indentation", 2 );
3637                append( sb, "The indentation string (\'\\t\' for tab).", 3 );
3638                append( sb, "Expression: ${jomc.indentation}", 3 );
3639                append( sb, "", 0 );
3640
3641                append( sb, "lineSeparator", 2 );
3642                append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
3643                append( sb, "Expression: ${jomc.lineSeparator}", 3 );
3644                append( sb, "", 0 );
3645
3646                append( sb, "locale", 2 );
3647                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 );
3648                append( sb, "", 0 );
3649
3650                append( sb, "model (Default: http://jomc.org/model)", 2 );
3651                append( sb, "The identifier of the model to process.", 3 );
3652                append( sb, "Expression: ${jomc.model}", 3 );
3653                append( sb, "", 0 );
3654
3655                append( sb, "modelContextAttributes", 2 );
3656                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 );
3657                append( sb, "", 0 );
3658
3659                append( sb, "modelContextFactoryClassName", 2 );
3660                append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
3661                append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
3662                append( sb, "", 0 );
3663
3664                append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
3665                append( sb, "Controls model object class path resolution.", 3 );
3666                append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
3667                append( sb, "", 0 );
3668
3669                append( sb, "modelProcessingEnabled (Default: true)", 2 );
3670                append( sb, "Controls processing of models.", 3 );
3671                append( sb, "Expression: ${jomc.modelProcessing}", 3 );
3672                append( sb, "", 0 );
3673
3674                append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
3675                append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
3676                append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
3677                append( sb, "", 0 );
3678
3679                append( sb, "modletLocation", 2 );
3680                append( sb, "The location to search for modlets.", 3 );
3681                append( sb, "Expression: ${jomc.modletLocation}", 3 );
3682                append( sb, "", 0 );
3683
3684                append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
3685                append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
3686                append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
3687                append( sb, "", 0 );
3688
3689                append( sb, "modletSchemaSystemId", 2 );
3690                append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
3691                append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
3692                append( sb, "", 0 );
3693
3694                append( sb, "moduleLocation", 2 );
3695                append( sb, "The location to search for modules.", 3 );
3696                append( sb, "Expression: ${jomc.moduleLocation}", 3 );
3697                append( sb, "", 0 );
3698
3699                append( sb, "moduleName (Default: ${project.name})", 2 );
3700                append( sb, "Name of the module to process.", 3 );
3701                append( sb, "Expression: ${jomc.moduleName}", 3 );
3702                append( sb, "", 0 );
3703
3704                append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
3705                append( sb, "Output directory of the project.", 3 );
3706                append( sb, "Expression: ${jomc.outputDirectory}", 3 );
3707                append( sb, "", 0 );
3708
3709                append( sb, "platformProviderLocation", 2 );
3710                append( sb, "The location to search for platform providers.", 3 );
3711                append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
3712                append( sb, "", 0 );
3713
3714                append( sb, "providerLocation", 2 );
3715                append( sb, "The location to search for providers.", 3 );
3716                append( sb, "Expression: ${jomc.providerLocation}", 3 );
3717                append( sb, "", 0 );
3718
3719                append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
3720                append( sb, "Directory holding the reports of the project.", 3 );
3721                append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
3722                append( sb, "", 0 );
3723
3724                append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
3725                append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
3726                append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
3727                append( sb, "", 0 );
3728
3729                append( sb, "resourceProcessingEnabled (Default: true)", 2 );
3730                append( sb, "Controls processing of resource files.", 3 );
3731                append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
3732                append( sb, "", 0 );
3733
3734                append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
3735                append( sb, "Directory holding the session related files of the project.", 3 );
3736                append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
3737                append( sb, "", 0 );
3738
3739                append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
3740                append( sb, "Directory holding the source files of the project.", 3 );
3741                append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
3742                append( sb, "", 0 );
3743
3744                append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
3745                append( sb, "The encoding to use for reading and writing files.", 3 );
3746                append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
3747                append( sb, "", 0 );
3748
3749                append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
3750                append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
3751                append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
3752                append( sb, "", 0 );
3753
3754                append( sb, "sourceProcessingEnabled (Default: true)", 2 );
3755                append( sb, "Controls processing of source code files.", 3 );
3756                append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
3757                append( sb, "", 0 );
3758
3759                append( sb, "templateEncoding", 2 );
3760                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 );
3761                append( sb, "Expression: ${jomc.templateEncoding}", 3 );
3762                append( sb, "", 0 );
3763
3764                append( sb, "templateLocation", 2 );
3765                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 );
3766                append( sb, "Expression: ${jomc.templateLocation}", 3 );
3767                append( sb, "", 0 );
3768
3769                append( sb, "templateParameterResources", 2 );
3770                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 );
3771                append( sb, "", 0 );
3772
3773                append( sb, "templateParameters", 2 );
3774                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 );
3775                append( sb, "", 0 );
3776
3777                append( sb, "templateProfile", 2 );
3778                append( sb, "The template profile to use when accessing templates.", 3 );
3779                append( sb, "Expression: ${jomc.templateProfile}", 3 );
3780                append( sb, "", 0 );
3781
3782                append( sb, "testClassesDirectory", 2 );
3783                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 );
3784                append( sb, "", 0 );
3785
3786                append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
3787                append( sb, "Name of the test module to process.", 3 );
3788                append( sb, "Expression: ${jomc.testModuleName}", 3 );
3789                append( sb, "", 0 );
3790
3791                append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
3792                append( sb, "Test output directory of the project.", 3 );
3793                append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
3794                append( sb, "", 0 );
3795
3796                append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
3797                append( sb, "Directory holding the test source files of the project.", 3 );
3798                append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
3799                append( sb, "", 0 );
3800
3801                append( sb, "transformationOutputProperties", 2 );
3802                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 );
3803                append( sb, "", 0 );
3804
3805                append( sb, "transformationParameterResources", 2 );
3806                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 );
3807                append( sb, "", 0 );
3808
3809                append( sb, "transformationParameters", 2 );
3810                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 );
3811                append( sb, "", 0 );
3812
3813                append( sb, "transformerLocation", 2 );
3814                append( sb, "The location to search for transformers.", 3 );
3815                append( sb, "Expression: ${jomc.transformerLocation}", 3 );
3816                append( sb, "", 0 );
3817
3818                append( sb, "validateTestClasspathExecutionStrategy (Default: once-per-session)", 2 );
3819                append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
3820                append( sb, "Expression: ${jomc.validateTestClasspathExecutionStrategy}", 3 );
3821                append( sb, "", 0 );
3822
3823                append( sb, "velocityProperties", 2 );
3824                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 );
3825                append( sb, "", 0 );
3826
3827                append( sb, "velocityPropertyResources", 2 );
3828                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 );
3829                append( sb, "", 0 );
3830
3831                append( sb, "verbose (Default: false)", 2 );
3832                append( sb, "Controls verbosity of the plugin.", 3 );
3833                append( sb, "Expression: ${jomc.verbose}", 3 );
3834                append( sb, "", 0 );
3835            }
3836        }
3837
3838        if ( goal == null || goal.length() <= 0 || "validate-test-model".equals( goal ) )
3839        {
3840            append( sb, "jomc:validate-test-model", 0 );
3841            append( sb, "Validates a project\'s test model.", 1 );
3842            append( sb, "", 0 );
3843            if ( detail )
3844            {
3845                append( sb, "Available parameters:", 1 );
3846                append( sb, "", 0 );
3847
3848                append( sb, "classesDirectory", 2 );
3849                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 );
3850                append( sb, "", 0 );
3851
3852                append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
3853                append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
3854                append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
3855                append( sb, "", 0 );
3856
3857                append( sb, "classProcessingEnabled (Default: true)", 2 );
3858                append( sb, "Controls processing of class files.", 3 );
3859                append( sb, "Expression: ${jomc.classProcessing}", 3 );
3860                append( sb, "", 0 );
3861
3862                append( sb, "defaultTemplateEncoding", 2 );
3863                append( sb, "The encoding to use for reading templates.", 3 );
3864                append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
3865                append( sb, "", 0 );
3866
3867                append( sb, "defaultTemplateProfile", 2 );
3868                append( sb, "The default template profile to use when accessing templates.", 3 );
3869                append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
3870                append( sb, "", 0 );
3871
3872                append( sb, "indentation", 2 );
3873                append( sb, "The indentation string (\'\\t\' for tab).", 3 );
3874                append( sb, "Expression: ${jomc.indentation}", 3 );
3875                append( sb, "", 0 );
3876
3877                append( sb, "lineSeparator", 2 );
3878                append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
3879                append( sb, "Expression: ${jomc.lineSeparator}", 3 );
3880                append( sb, "", 0 );
3881
3882                append( sb, "locale", 2 );
3883                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 );
3884                append( sb, "", 0 );
3885
3886                append( sb, "model (Default: http://jomc.org/model)", 2 );
3887                append( sb, "The identifier of the model to process.", 3 );
3888                append( sb, "Expression: ${jomc.model}", 3 );
3889                append( sb, "", 0 );
3890
3891                append( sb, "modelContextAttributes", 2 );
3892                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 );
3893                append( sb, "", 0 );
3894
3895                append( sb, "modelContextFactoryClassName", 2 );
3896                append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
3897                append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
3898                append( sb, "", 0 );
3899
3900                append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
3901                append( sb, "Controls model object class path resolution.", 3 );
3902                append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
3903                append( sb, "", 0 );
3904
3905                append( sb, "modelProcessingEnabled (Default: true)", 2 );
3906                append( sb, "Controls processing of models.", 3 );
3907                append( sb, "Expression: ${jomc.modelProcessing}", 3 );
3908                append( sb, "", 0 );
3909
3910                append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
3911                append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
3912                append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
3913                append( sb, "", 0 );
3914
3915                append( sb, "modletLocation", 2 );
3916                append( sb, "The location to search for modlets.", 3 );
3917                append( sb, "Expression: ${jomc.modletLocation}", 3 );
3918                append( sb, "", 0 );
3919
3920                append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
3921                append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
3922                append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
3923                append( sb, "", 0 );
3924
3925                append( sb, "modletSchemaSystemId", 2 );
3926                append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
3927                append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
3928                append( sb, "", 0 );
3929
3930                append( sb, "moduleLocation", 2 );
3931                append( sb, "The location to search for modules.", 3 );
3932                append( sb, "Expression: ${jomc.moduleLocation}", 3 );
3933                append( sb, "", 0 );
3934
3935                append( sb, "moduleName (Default: ${project.name})", 2 );
3936                append( sb, "Name of the module to process.", 3 );
3937                append( sb, "Expression: ${jomc.moduleName}", 3 );
3938                append( sb, "", 0 );
3939
3940                append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
3941                append( sb, "Output directory of the project.", 3 );
3942                append( sb, "Expression: ${jomc.outputDirectory}", 3 );
3943                append( sb, "", 0 );
3944
3945                append( sb, "platformProviderLocation", 2 );
3946                append( sb, "The location to search for platform providers.", 3 );
3947                append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
3948                append( sb, "", 0 );
3949
3950                append( sb, "providerLocation", 2 );
3951                append( sb, "The location to search for providers.", 3 );
3952                append( sb, "Expression: ${jomc.providerLocation}", 3 );
3953                append( sb, "", 0 );
3954
3955                append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
3956                append( sb, "Directory holding the reports of the project.", 3 );
3957                append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
3958                append( sb, "", 0 );
3959
3960                append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
3961                append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
3962                append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
3963                append( sb, "", 0 );
3964
3965                append( sb, "resourceProcessingEnabled (Default: true)", 2 );
3966                append( sb, "Controls processing of resource files.", 3 );
3967                append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
3968                append( sb, "", 0 );
3969
3970                append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
3971                append( sb, "Directory holding the session related files of the project.", 3 );
3972                append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
3973                append( sb, "", 0 );
3974
3975                append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
3976                append( sb, "Directory holding the source files of the project.", 3 );
3977                append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
3978                append( sb, "", 0 );
3979
3980                append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
3981                append( sb, "The encoding to use for reading and writing files.", 3 );
3982                append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
3983                append( sb, "", 0 );
3984
3985                append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
3986                append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
3987                append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
3988                append( sb, "", 0 );
3989
3990                append( sb, "sourceProcessingEnabled (Default: true)", 2 );
3991                append( sb, "Controls processing of source code files.", 3 );
3992                append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
3993                append( sb, "", 0 );
3994
3995                append( sb, "templateEncoding", 2 );
3996                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 );
3997                append( sb, "Expression: ${jomc.templateEncoding}", 3 );
3998                append( sb, "", 0 );
3999
4000                append( sb, "templateLocation", 2 );
4001                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 );
4002                append( sb, "Expression: ${jomc.templateLocation}", 3 );
4003                append( sb, "", 0 );
4004
4005                append( sb, "templateParameterResources", 2 );
4006                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 );
4007                append( sb, "", 0 );
4008
4009                append( sb, "templateParameters", 2 );
4010                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 );
4011                append( sb, "", 0 );
4012
4013                append( sb, "templateProfile", 2 );
4014                append( sb, "The template profile to use when accessing templates.", 3 );
4015                append( sb, "Expression: ${jomc.templateProfile}", 3 );
4016                append( sb, "", 0 );
4017
4018                append( sb, "testClassesDirectory", 2 );
4019                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 );
4020                append( sb, "", 0 );
4021
4022                append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
4023                append( sb, "Name of the test module to process.", 3 );
4024                append( sb, "Expression: ${jomc.testModuleName}", 3 );
4025                append( sb, "", 0 );
4026
4027                append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
4028                append( sb, "Test output directory of the project.", 3 );
4029                append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
4030                append( sb, "", 0 );
4031
4032                append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
4033                append( sb, "Directory holding the test source files of the project.", 3 );
4034                append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
4035                append( sb, "", 0 );
4036
4037                append( sb, "transformationOutputProperties", 2 );
4038                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 );
4039                append( sb, "", 0 );
4040
4041                append( sb, "transformationParameterResources", 2 );
4042                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 );
4043                append( sb, "", 0 );
4044
4045                append( sb, "transformationParameters", 2 );
4046                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 );
4047                append( sb, "", 0 );
4048
4049                append( sb, "transformerLocation", 2 );
4050                append( sb, "The location to search for transformers.", 3 );
4051                append( sb, "Expression: ${jomc.transformerLocation}", 3 );
4052                append( sb, "", 0 );
4053
4054                append( sb, "validateTestModelExecutionStrategy (Default: once-per-session)", 2 );
4055                append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
4056                append( sb, "Expression: ${jomc.validateTestModelExecutionStrategy}", 3 );
4057                append( sb, "", 0 );
4058
4059                append( sb, "velocityProperties", 2 );
4060                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 );
4061                append( sb, "", 0 );
4062
4063                append( sb, "velocityPropertyResources", 2 );
4064                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 );
4065                append( sb, "", 0 );
4066
4067                append( sb, "verbose (Default: false)", 2 );
4068                append( sb, "Controls verbosity of the plugin.", 3 );
4069                append( sb, "Expression: ${jomc.verbose}", 3 );
4070                append( sb, "", 0 );
4071            }
4072        }
4073
4074        if ( goal == null || goal.length() <= 0 || "write-main-resources".equals( goal ) )
4075        {
4076            append( sb, "jomc:write-main-resources", 0 );
4077            append( sb, "Writes a projects\' main resource files.", 1 );
4078            append( sb, "", 0 );
4079            if ( detail )
4080            {
4081                append( sb, "Available parameters:", 1 );
4082                append( sb, "", 0 );
4083
4084                append( sb, "classesDirectory", 2 );
4085                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 );
4086                append( sb, "", 0 );
4087
4088                append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
4089                append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
4090                append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
4091                append( sb, "", 0 );
4092
4093                append( sb, "classProcessingEnabled (Default: true)", 2 );
4094                append( sb, "Controls processing of class files.", 3 );
4095                append( sb, "Expression: ${jomc.classProcessing}", 3 );
4096                append( sb, "", 0 );
4097
4098                append( sb, "defaultTemplateEncoding", 2 );
4099                append( sb, "The encoding to use for reading templates.", 3 );
4100                append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
4101                append( sb, "", 0 );
4102
4103                append( sb, "defaultTemplateProfile", 2 );
4104                append( sb, "The default template profile to use when accessing templates.", 3 );
4105                append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
4106                append( sb, "", 0 );
4107
4108                append( sb, "indentation", 2 );
4109                append( sb, "The indentation string (\'\\t\' for tab).", 3 );
4110                append( sb, "Expression: ${jomc.indentation}", 3 );
4111                append( sb, "", 0 );
4112
4113                append( sb, "lineSeparator", 2 );
4114                append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
4115                append( sb, "Expression: ${jomc.lineSeparator}", 3 );
4116                append( sb, "", 0 );
4117
4118                append( sb, "locale", 2 );
4119                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 );
4120                append( sb, "", 0 );
4121
4122                append( sb, "mainResourcesOutputDirectory (Default: ${project.build.directory}/generated-resources/jomc)", 2 );
4123                append( sb, "Directory to write resource files to.", 3 );
4124                append( sb, "Expression: ${jomc.mainResourcesOutputDirectory}", 3 );
4125                append( sb, "", 0 );
4126
4127                append( sb, "model (Default: http://jomc.org/model)", 2 );
4128                append( sb, "The identifier of the model to process.", 3 );
4129                append( sb, "Expression: ${jomc.model}", 3 );
4130                append( sb, "", 0 );
4131
4132                append( sb, "modelContextAttributes", 2 );
4133                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 );
4134                append( sb, "", 0 );
4135
4136                append( sb, "modelContextFactoryClassName", 2 );
4137                append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
4138                append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
4139                append( sb, "", 0 );
4140
4141                append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
4142                append( sb, "Controls model object class path resolution.", 3 );
4143                append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
4144                append( sb, "", 0 );
4145
4146                append( sb, "modelProcessingEnabled (Default: true)", 2 );
4147                append( sb, "Controls processing of models.", 3 );
4148                append( sb, "Expression: ${jomc.modelProcessing}", 3 );
4149                append( sb, "", 0 );
4150
4151                append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
4152                append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
4153                append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
4154                append( sb, "", 0 );
4155
4156                append( sb, "modletLocation", 2 );
4157                append( sb, "The location to search for modlets.", 3 );
4158                append( sb, "Expression: ${jomc.modletLocation}", 3 );
4159                append( sb, "", 0 );
4160
4161                append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
4162                append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
4163                append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
4164                append( sb, "", 0 );
4165
4166                append( sb, "modletSchemaSystemId", 2 );
4167                append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
4168                append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
4169                append( sb, "", 0 );
4170
4171                append( sb, "moduleLocation", 2 );
4172                append( sb, "The location to search for modules.", 3 );
4173                append( sb, "Expression: ${jomc.moduleLocation}", 3 );
4174                append( sb, "", 0 );
4175
4176                append( sb, "moduleName (Default: ${project.name})", 2 );
4177                append( sb, "Name of the module to process.", 3 );
4178                append( sb, "Expression: ${jomc.moduleName}", 3 );
4179                append( sb, "", 0 );
4180
4181                append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
4182                append( sb, "Output directory of the project.", 3 );
4183                append( sb, "Expression: ${jomc.outputDirectory}", 3 );
4184                append( sb, "", 0 );
4185
4186                append( sb, "platformProviderLocation", 2 );
4187                append( sb, "The location to search for platform providers.", 3 );
4188                append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
4189                append( sb, "", 0 );
4190
4191                append( sb, "providerLocation", 2 );
4192                append( sb, "The location to search for providers.", 3 );
4193                append( sb, "Expression: ${jomc.providerLocation}", 3 );
4194                append( sb, "", 0 );
4195
4196                append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
4197                append( sb, "Directory holding the reports of the project.", 3 );
4198                append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
4199                append( sb, "", 0 );
4200
4201                append( sb, "resourceBundleDefaultLanguage", 2 );
4202                append( sb, "The language of the default language properties file of generated resource bundle properties resources.", 3 );
4203                append( sb, "Expression: ${jomc.resourceBundleDefaultLanguage}", 3 );
4204                append( sb, "", 0 );
4205
4206                append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
4207                append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
4208                append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
4209                append( sb, "", 0 );
4210
4211                append( sb, "resourceProcessingEnabled (Default: true)", 2 );
4212                append( sb, "Controls processing of resource files.", 3 );
4213                append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
4214                append( sb, "", 0 );
4215
4216                append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
4217                append( sb, "Directory holding the session related files of the project.", 3 );
4218                append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
4219                append( sb, "", 0 );
4220
4221                append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
4222                append( sb, "Directory holding the source files of the project.", 3 );
4223                append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
4224                append( sb, "", 0 );
4225
4226                append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
4227                append( sb, "The encoding to use for reading and writing files.", 3 );
4228                append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
4229                append( sb, "", 0 );
4230
4231                append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
4232                append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
4233                append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
4234                append( sb, "", 0 );
4235
4236                append( sb, "sourceProcessingEnabled (Default: true)", 2 );
4237                append( sb, "Controls processing of source code files.", 3 );
4238                append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
4239                append( sb, "", 0 );
4240
4241                append( sb, "templateEncoding", 2 );
4242                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 );
4243                append( sb, "Expression: ${jomc.templateEncoding}", 3 );
4244                append( sb, "", 0 );
4245
4246                append( sb, "templateLocation", 2 );
4247                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 );
4248                append( sb, "Expression: ${jomc.templateLocation}", 3 );
4249                append( sb, "", 0 );
4250
4251                append( sb, "templateParameterResources", 2 );
4252                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 );
4253                append( sb, "", 0 );
4254
4255                append( sb, "templateParameters", 2 );
4256                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 );
4257                append( sb, "", 0 );
4258
4259                append( sb, "templateProfile", 2 );
4260                append( sb, "The template profile to use when accessing templates.", 3 );
4261                append( sb, "Expression: ${jomc.templateProfile}", 3 );
4262                append( sb, "", 0 );
4263
4264                append( sb, "testClassesDirectory", 2 );
4265                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 );
4266                append( sb, "", 0 );
4267
4268                append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
4269                append( sb, "Name of the test module to process.", 3 );
4270                append( sb, "Expression: ${jomc.testModuleName}", 3 );
4271                append( sb, "", 0 );
4272
4273                append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
4274                append( sb, "Test output directory of the project.", 3 );
4275                append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
4276                append( sb, "", 0 );
4277
4278                append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
4279                append( sb, "Directory holding the test source files of the project.", 3 );
4280                append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
4281                append( sb, "", 0 );
4282
4283                append( sb, "transformationOutputProperties", 2 );
4284                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 );
4285                append( sb, "", 0 );
4286
4287                append( sb, "transformationParameterResources", 2 );
4288                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 );
4289                append( sb, "", 0 );
4290
4291                append( sb, "transformationParameters", 2 );
4292                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 );
4293                append( sb, "", 0 );
4294
4295                append( sb, "transformerLocation", 2 );
4296                append( sb, "The location to search for transformers.", 3 );
4297                append( sb, "Expression: ${jomc.transformerLocation}", 3 );
4298                append( sb, "", 0 );
4299
4300                append( sb, "velocityProperties", 2 );
4301                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 );
4302                append( sb, "", 0 );
4303
4304                append( sb, "velocityPropertyResources", 2 );
4305                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 );
4306                append( sb, "", 0 );
4307
4308                append( sb, "verbose (Default: false)", 2 );
4309                append( sb, "Controls verbosity of the plugin.", 3 );
4310                append( sb, "Expression: ${jomc.verbose}", 3 );
4311                append( sb, "", 0 );
4312
4313                append( sb, "writeMainResourcesExecutionStrategy (Default: once-per-session)", 2 );
4314                append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
4315                append( sb, "Expression: ${jomc.writeMainResourcesExecutionStrategy}", 3 );
4316                append( sb, "", 0 );
4317            }
4318        }
4319
4320        if ( goal == null || goal.length() <= 0 || "write-test-resources".equals( goal ) )
4321        {
4322            append( sb, "jomc:write-test-resources", 0 );
4323            append( sb, "Writes a projects\' test resource files.", 1 );
4324            append( sb, "", 0 );
4325            if ( detail )
4326            {
4327                append( sb, "Available parameters:", 1 );
4328                append( sb, "", 0 );
4329
4330                append( sb, "classesDirectory", 2 );
4331                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 );
4332                append( sb, "", 0 );
4333
4334                append( sb, "classFileProcessorClassName (Default: org.jomc.tools.ClassFileProcessor)", 2 );
4335                append( sb, "Class name of the ClassFileProcessor backing the goal.", 3 );
4336                append( sb, "Expression: ${jomc.classFileProcessorClassName}", 3 );
4337                append( sb, "", 0 );
4338
4339                append( sb, "classProcessingEnabled (Default: true)", 2 );
4340                append( sb, "Controls processing of class files.", 3 );
4341                append( sb, "Expression: ${jomc.classProcessing}", 3 );
4342                append( sb, "", 0 );
4343
4344                append( sb, "defaultTemplateEncoding", 2 );
4345                append( sb, "The encoding to use for reading templates.", 3 );
4346                append( sb, "Expression: ${jomc.defaultTemplateEncoding}", 3 );
4347                append( sb, "", 0 );
4348
4349                append( sb, "defaultTemplateProfile", 2 );
4350                append( sb, "The default template profile to use when accessing templates.", 3 );
4351                append( sb, "Expression: ${jomc.defaultTemplateProfile}", 3 );
4352                append( sb, "", 0 );
4353
4354                append( sb, "indentation", 2 );
4355                append( sb, "The indentation string (\'\\t\' for tab).", 3 );
4356                append( sb, "Expression: ${jomc.indentation}", 3 );
4357                append( sb, "", 0 );
4358
4359                append( sb, "lineSeparator", 2 );
4360                append( sb, "The line separator (\'\\r\\n\' for DOS, \'\\r\' for Mac, \'\\n\' for Unix).", 3 );
4361                append( sb, "Expression: ${jomc.lineSeparator}", 3 );
4362                append( sb, "", 0 );
4363
4364                append( sb, "locale", 2 );
4365                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 );
4366                append( sb, "", 0 );
4367
4368                append( sb, "model (Default: http://jomc.org/model)", 2 );
4369                append( sb, "The identifier of the model to process.", 3 );
4370                append( sb, "Expression: ${jomc.model}", 3 );
4371                append( sb, "", 0 );
4372
4373                append( sb, "modelContextAttributes", 2 );
4374                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 );
4375                append( sb, "", 0 );
4376
4377                append( sb, "modelContextFactoryClassName", 2 );
4378                append( sb, "The name of the ModelContextFactory implementation class backing the task.", 3 );
4379                append( sb, "Expression: ${jomc.modelContextFactoryClassName}", 3 );
4380                append( sb, "", 0 );
4381
4382                append( sb, "modelObjectClasspathResolutionEnabled (Default: true)", 2 );
4383                append( sb, "Controls model object class path resolution.", 3 );
4384                append( sb, "Expression: ${jomc.modelObjectClasspathResolution}", 3 );
4385                append( sb, "", 0 );
4386
4387                append( sb, "modelProcessingEnabled (Default: true)", 2 );
4388                append( sb, "Controls processing of models.", 3 );
4389                append( sb, "Expression: ${jomc.modelProcessing}", 3 );
4390                append( sb, "", 0 );
4391
4392                append( sb, "modelResourceValidationEnabled (Default: true)", 2 );
4393                append( sb, "Flag controlling JAXP schema validation of model resources.", 3 );
4394                append( sb, "Expression: ${jomc.modelResourceValidationEnabled}", 3 );
4395                append( sb, "", 0 );
4396
4397                append( sb, "modletLocation", 2 );
4398                append( sb, "The location to search for modlets.", 3 );
4399                append( sb, "Expression: ${jomc.modletLocation}", 3 );
4400                append( sb, "", 0 );
4401
4402                append( sb, "modletResourceValidationEnabled (Default: true)", 2 );
4403                append( sb, "Flag controlling JAXP schema validation of modlet resources.", 3 );
4404                append( sb, "Expression: ${jomc.modletResourceValidationEnabled}", 3 );
4405                append( sb, "", 0 );
4406
4407                append( sb, "modletSchemaSystemId", 2 );
4408                append( sb, "The http://jomc.org/modlet namespace schema system id.", 3 );
4409                append( sb, "Expression: ${jomc.modletSchemaSystemId}", 3 );
4410                append( sb, "", 0 );
4411
4412                append( sb, "moduleLocation", 2 );
4413                append( sb, "The location to search for modules.", 3 );
4414                append( sb, "Expression: ${jomc.moduleLocation}", 3 );
4415                append( sb, "", 0 );
4416
4417                append( sb, "moduleName (Default: ${project.name})", 2 );
4418                append( sb, "Name of the module to process.", 3 );
4419                append( sb, "Expression: ${jomc.moduleName}", 3 );
4420                append( sb, "", 0 );
4421
4422                append( sb, "outputDirectory (Default: ${project.build.outputDirectory})", 2 );
4423                append( sb, "Output directory of the project.", 3 );
4424                append( sb, "Expression: ${jomc.outputDirectory}", 3 );
4425                append( sb, "", 0 );
4426
4427                append( sb, "platformProviderLocation", 2 );
4428                append( sb, "The location to search for platform providers.", 3 );
4429                append( sb, "Expression: ${jomc.platformProviderLocation}", 3 );
4430                append( sb, "", 0 );
4431
4432                append( sb, "providerLocation", 2 );
4433                append( sb, "The location to search for providers.", 3 );
4434                append( sb, "Expression: ${jomc.providerLocation}", 3 );
4435                append( sb, "", 0 );
4436
4437                append( sb, "reportOutputDirectory (Default: ${project.reporting.outputDirectory})", 2 );
4438                append( sb, "Directory holding the reports of the project.", 3 );
4439                append( sb, "Expression: ${jomc.reportOutputDirectory}", 3 );
4440                append( sb, "", 0 );
4441
4442                append( sb, "resourceBundleDefaultLanguage", 2 );
4443                append( sb, "The language of the default language properties file of generated resource bundle properties resources.", 3 );
4444                append( sb, "Expression: ${jomc.resourceBundleDefaultLanguage}", 3 );
4445                append( sb, "", 0 );
4446
4447                append( sb, "resourceFileProcessorClassName (Default: org.jomc.tools.ResourceFileProcessor)", 2 );
4448                append( sb, "Class name of the ResourceFileProcessor backing the goal.", 3 );
4449                append( sb, "Expression: ${jomc.resourceFileProcessorClassName}", 3 );
4450                append( sb, "", 0 );
4451
4452                append( sb, "resourceProcessingEnabled (Default: true)", 2 );
4453                append( sb, "Controls processing of resource files.", 3 );
4454                append( sb, "Expression: ${jomc.resourceProcessing}", 3 );
4455                append( sb, "", 0 );
4456
4457                append( sb, "sessionDirectory (Default: ${project.build.directory}/jomc-sessions)", 2 );
4458                append( sb, "Directory holding the session related files of the project.", 3 );
4459                append( sb, "Expression: ${jomc.sessionDirectory}", 3 );
4460                append( sb, "", 0 );
4461
4462                append( sb, "sourceDirectory (Default: ${project.build.sourceDirectory})", 2 );
4463                append( sb, "Directory holding the source files of the project.", 3 );
4464                append( sb, "Expression: ${jomc.sourceDirectory}", 3 );
4465                append( sb, "", 0 );
4466
4467                append( sb, "sourceEncoding (Default: ${project.build.sourceEncoding})", 2 );
4468                append( sb, "The encoding to use for reading and writing files.", 3 );
4469                append( sb, "Expression: ${jomc.sourceEncoding}", 3 );
4470                append( sb, "", 0 );
4471
4472                append( sb, "sourceFileProcessorClassName (Default: org.jomc.tools.SourceFileProcessor)", 2 );
4473                append( sb, "Class name of the SourceFileProcessor backing the goal.", 3 );
4474                append( sb, "Expression: ${jomc.sourceFileProcessorClassName}", 3 );
4475                append( sb, "", 0 );
4476
4477                append( sb, "sourceProcessingEnabled (Default: true)", 2 );
4478                append( sb, "Controls processing of source code files.", 3 );
4479                append( sb, "Expression: ${jomc.sourceProcessing}", 3 );
4480                append( sb, "", 0 );
4481
4482                append( sb, "templateEncoding", 2 );
4483                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 );
4484                append( sb, "Expression: ${jomc.templateEncoding}", 3 );
4485                append( sb, "", 0 );
4486
4487                append( sb, "templateLocation", 2 );
4488                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 );
4489                append( sb, "Expression: ${jomc.templateLocation}", 3 );
4490                append( sb, "", 0 );
4491
4492                append( sb, "templateParameterResources", 2 );
4493                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 );
4494                append( sb, "", 0 );
4495
4496                append( sb, "templateParameters", 2 );
4497                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 );
4498                append( sb, "", 0 );
4499
4500                append( sb, "templateProfile", 2 );
4501                append( sb, "The template profile to use when accessing templates.", 3 );
4502                append( sb, "Expression: ${jomc.templateProfile}", 3 );
4503                append( sb, "", 0 );
4504
4505                append( sb, "testClassesDirectory", 2 );
4506                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 );
4507                append( sb, "", 0 );
4508
4509                append( sb, "testModuleName (Default: ${project.name} Tests)", 2 );
4510                append( sb, "Name of the test module to process.", 3 );
4511                append( sb, "Expression: ${jomc.testModuleName}", 3 );
4512                append( sb, "", 0 );
4513
4514                append( sb, "testOutputDirectory (Default: ${project.build.testOutputDirectory})", 2 );
4515                append( sb, "Test output directory of the project.", 3 );
4516                append( sb, "Expression: ${jomc.testOutputDirectory}", 3 );
4517                append( sb, "", 0 );
4518
4519                append( sb, "testResourcesOutputDirectory (Default: ${project.build.directory}/generated-test-resources/jomc)", 2 );
4520                append( sb, "Directory to write test resource files to.", 3 );
4521                append( sb, "Expression: ${jomc.testResourcesOutputDirectory}", 3 );
4522                append( sb, "", 0 );
4523
4524                append( sb, "testSourceDirectory (Default: ${project.build.testSourceDirectory})", 2 );
4525                append( sb, "Directory holding the test source files of the project.", 3 );
4526                append( sb, "Expression: ${jomc.testSourceDirectory}", 3 );
4527                append( sb, "", 0 );
4528
4529                append( sb, "transformationOutputProperties", 2 );
4530                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 );
4531                append( sb, "", 0 );
4532
4533                append( sb, "transformationParameterResources", 2 );
4534                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 );
4535                append( sb, "", 0 );
4536
4537                append( sb, "transformationParameters", 2 );
4538                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 );
4539                append( sb, "", 0 );
4540
4541                append( sb, "transformerLocation", 2 );
4542                append( sb, "The location to search for transformers.", 3 );
4543                append( sb, "Expression: ${jomc.transformerLocation}", 3 );
4544                append( sb, "", 0 );
4545
4546                append( sb, "velocityProperties", 2 );
4547                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 );
4548                append( sb, "", 0 );
4549
4550                append( sb, "velocityPropertyResources", 2 );
4551                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 );
4552                append( sb, "", 0 );
4553
4554                append( sb, "verbose (Default: false)", 2 );
4555                append( sb, "Controls verbosity of the plugin.", 3 );
4556                append( sb, "Expression: ${jomc.verbose}", 3 );
4557                append( sb, "", 0 );
4558
4559                append( sb, "writeTestResourcesExecutionStrategy (Default: once-per-session)", 2 );
4560                append( sb, "Execution strategy of the goal (always or once-per-session).", 3 );
4561                append( sb, "Expression: ${jomc.writeTestResourcesExecutionStrategy}", 3 );
4562                append( sb, "", 0 );
4563            }
4564        }
4565
4566        if ( getLog().isInfoEnabled() )
4567        {
4568            getLog().info( sb.toString() );
4569        }
4570    }
4571
4572    /**
4573     * <p>Repeat a String <code>n</code> times to form a new string.</p>
4574     *
4575     * @param str String to repeat
4576     * @param repeat number of times to repeat str
4577     * @return String with repeated String
4578     * @throws NegativeArraySizeException if <code>repeat < 0</code>
4579     * @throws NullPointerException if str is <code>null</code>
4580     */
4581    private static String repeat( String str, int repeat )
4582    {
4583        StringBuffer buffer = new StringBuffer( repeat * str.length() );
4584
4585        for ( int i = 0; i < repeat; i++ )
4586        {
4587            buffer.append( str );
4588        }
4589
4590        return buffer.toString();
4591    }
4592
4593    /** 
4594     * Append a description to the buffer by respecting the indentSize and lineLength parameters.
4595     * <b>Note</b>: The last character is always a new line.
4596     * 
4597     * @param sb The buffer to append the description, not <code>null</code>.
4598     * @param description The description, not <code>null</code>.
4599     * @param indent The base indentation level of each line, must not be negative.
4600     */
4601    private void append( StringBuffer sb, String description, int indent )
4602    {
4603        for ( Iterator it = toLines( description, indent, indentSize, lineLength ).iterator(); it.hasNext(); )
4604        {
4605            sb.append( it.next().toString() ).append( '\n' );
4606        }
4607    }
4608
4609    /** 
4610     * Splits the specified text into lines of convenient display length.
4611     * 
4612     * @param text The text to split into lines, must not be <code>null</code>.
4613     * @param indent The base indentation level of each line, must not be negative.
4614     * @param indentSize The size of each indentation, must not be negative.
4615     * @param lineLength The length of the line, must not be negative.
4616     * @return The sequence of display lines, never <code>null</code>.
4617     * @throws NegativeArraySizeException if <code>indent < 0</code>
4618     */
4619    private static List toLines( String text, int indent, int indentSize, int lineLength )
4620    {
4621        List<String> lines = new ArrayList<String>();
4622
4623        String ind = repeat( "\t", indent );
4624        String[] plainLines = text.split( "(\r\n)|(\r)|(\n)" );
4625        for ( int i = 0; i < plainLines.length; i++ )
4626        {
4627            toLines( lines, ind + plainLines[i], indentSize, lineLength );
4628        }
4629
4630        return lines;
4631    }
4632
4633    /** 
4634     * Adds the specified line to the output sequence, performing line wrapping if necessary.
4635     * 
4636     * @param lines The sequence of display lines, must not be <code>null</code>.
4637     * @param line The line to add, must not be <code>null</code>.
4638     * @param indentSize The size of each indentation, must not be negative.
4639     * @param lineLength The length of the line, must not be negative.
4640     */
4641    private static void toLines( List<String> lines, String line, int indentSize, int lineLength )
4642    {
4643        int lineIndent = getIndentLevel( line );
4644        StringBuffer buf = new StringBuffer( 256 );
4645        String[] tokens = line.split( " +" );
4646        for ( int i = 0; i < tokens.length; i++ )
4647        {
4648            String token = tokens[i];
4649            if ( i > 0 )
4650            {
4651                if ( buf.length() + token.length() >= lineLength )
4652                {
4653                    lines.add( buf.toString() );
4654                    buf.setLength( 0 );
4655                    buf.append( repeat( " ", lineIndent * indentSize ) );
4656                }
4657                else
4658                {
4659                    buf.append( ' ' );
4660                }
4661            }
4662            for ( int j = 0; j < token.length(); j++ )
4663            {
4664                char c = token.charAt( j );
4665                if ( c == '\t' )
4666                {
4667                    buf.append( repeat( " ", indentSize - buf.length() % indentSize ) );
4668                }
4669                else if ( c == '\u00A0' )
4670                {
4671                    buf.append( ' ' );
4672                }
4673                else
4674                {
4675                    buf.append( c );
4676                }
4677            }
4678        }
4679        lines.add( buf.toString() );
4680    }
4681
4682    /** 
4683     * Gets the indentation level of the specified line.
4684     * 
4685     * @param line The line whose indentation level should be retrieved, must not be <code>null</code>.
4686     * @return The indentation level of the line.
4687     */
4688    private static int getIndentLevel( String line )
4689    {
4690        int level = 0;
4691        for ( int i = 0; i < line.length() && line.charAt( i ) == '\t'; i++ )
4692        {
4693            level++;
4694        }
4695        for ( int i = level + 1; i <= level + 4 && i < line.length(); i++ )
4696        {
4697            if ( line.charAt( i ) == '\t' )
4698            {
4699                level++;
4700                break;
4701            }
4702        }
4703        return level;
4704    }
4705}