Coverage Report - org.apache.maven.plugin.eclipse.HelpMojo
 
Classes in this File Line Coverage Branch Coverage Complexity
HelpMojo
0%
0/640
0%
0/154
8.667
 
 1  
 package org.apache.maven.plugin.eclipse;
 2  
 
 3  
 import java.util.ArrayList;
 4  
 import java.util.Iterator;
 5  
 import java.util.List;
 6  
 
 7  
 import org.apache.maven.plugin.AbstractMojo;
 8  
 import org.apache.maven.plugin.MojoExecutionException;
 9  
 
 10  
 /**
 11  
  * Display help information on maven-eclipse-plugin.<br/> Call <pre>  mvn eclipse:help -Ddetail=true -Dgoal=&lt;goal-name&gt;</pre> to display parameter details.
 12  
  *
 13  
  * @version generated on Tue Mar 24 07:43:04 CST 2009
 14  
  * @author org.apache.maven.tools.plugin.generator.PluginHelpGenerator (version 2.4.3)
 15  
  * @goal help
 16  
  * @requiresProject false
 17  
  */
 18  0
 public class HelpMojo
 19  
     extends AbstractMojo
 20  
 {
 21  
     /**
 22  
      * If <code>true</code>, display all settable properties for each goal.
 23  
      * 
 24  
      * @parameter expression="${detail}" default-value="false"
 25  
      */
 26  
     private boolean detail;
 27  
 
 28  
     /**
 29  
      * The name of the goal for which to show help. If unspecified, all goals will be displayed.
 30  
      * 
 31  
      * @parameter expression="${goal}"
 32  
      */
 33  
     private java.lang.String goal;
 34  
 
 35  
     /**
 36  
      * The maximum length of a display line, should be positive.
 37  
      * 
 38  
      * @parameter expression="${lineLength}" default-value="80"
 39  
      */
 40  
     private int lineLength;
 41  
 
 42  
     /**
 43  
      * The number of spaces per indentation level, should be positive.
 44  
      * 
 45  
      * @parameter expression="${indentSize}" default-value="2"
 46  
      */
 47  
     private int indentSize;
 48  
 
 49  
 
 50  
     /** {@inheritDoc} */
 51  
     public void execute()
 52  
         throws MojoExecutionException
 53  
     {
 54  0
         if ( lineLength <= 0 )
 55  
         {
 56  0
             getLog().warn( "The parameter 'lineLength' should be positive, using '80' as default." );
 57  0
             lineLength = 80;
 58  
         }
 59  0
         if ( indentSize <= 0 )
 60  
         {
 61  0
             getLog().warn( "The parameter 'indentSize' should be positive, using '2' as default." );
 62  0
             indentSize = 2;
 63  
         }
 64  
 
 65  0
         StringBuffer sb = new StringBuffer();
 66  
 
 67  0
         append( sb, "org.apache.maven.plugins:maven-eclipse-plugin:2.6", 0 );
 68  0
         append( sb, "", 0 );
 69  
 
 70  0
         append( sb, "Maven Eclipse Plugin 2.6", 0 );
 71  0
         append( sb, "The Eclipse Plugin is used to generate Eclipse IDE files (.project, .classpath and the .settings folder) from a POM.", 1 );
 72  0
         append( sb, "", 0 );
 73  
 
 74  0
         if ( goal == null || goal.length() <= 0 )
 75  
         {
 76  0
             append( sb, "This plugin has 14 goals:", 0 );
 77  0
             append( sb, "", 0 );
 78  
         }
 79  
 
 80  0
         if ( goal == null || goal.length() <= 0 || "add-maven-repo".equals( goal ) )
 81  
         {
 82  0
             append( sb, "eclipse:add-maven-repo", 0 );
 83  0
             append( sb, "Deprecated. Use configure-workspace goal instead.", 1 );
 84  0
             if ( detail )
 85  
             {
 86  0
                 append( sb, "", 0 );
 87  0
                 append( sb, "Adds the classpath variable M2_REPO to Eclipse. DEPRECATED. Replaced by eclipse:configure-workspace.", 1 );
 88  
             }
 89  0
             append( sb, "", 0 );
 90  0
             if ( detail )
 91  
             {
 92  0
                 append( sb, "Available parameters:", 1 );
 93  0
                 append( sb, "", 0 );
 94  
 
 95  0
                 append( sb, "workspace", 2 );
 96  0
                 append( sb, "Directory location of the Eclipse workspace.", 3 );
 97  0
                 append( sb, "", 0 );
 98  
             }
 99  
         }
 100  
 
 101  0
         if ( goal == null || goal.length() <= 0 || "clean".equals( goal ) )
 102  
         {
 103  0
             append( sb, "eclipse:clean", 0 );
 104  0
             append( sb, "Deletes the .project, .classpath, .wtpmodules files and .settings folder used by Eclipse.", 1 );
 105  0
             append( sb, "", 0 );
 106  0
             if ( detail )
 107  
             {
 108  0
                 append( sb, "Available parameters:", 1 );
 109  0
                 append( sb, "", 0 );
 110  
 
 111  0
                 append( sb, "additionalConfig", 2 );
 112  0
                 append( sb, "additional generic configuration files for eclipse", 3 );
 113  0
                 append( sb, "", 0 );
 114  
 
 115  0
                 append( sb, "basedir", 2 );
 116  0
                 append( sb, "The root directory of the project", 3 );
 117  0
                 append( sb, "", 0 );
 118  
 
 119  0
                 append( sb, "packaging", 2 );
 120  0
                 append( sb, "Packaging for the current project.", 3 );
 121  0
                 append( sb, "", 0 );
 122  
 
 123  0
                 append( sb, "skip (Default: false)", 2 );
 124  0
                 append( sb, "Skip the operation when true.", 3 );
 125  0
                 append( sb, "", 0 );
 126  
             }
 127  
         }
 128  
 
 129  0
         if ( goal == null || goal.length() <= 0 || "configure-workspace".equals( goal ) )
 130  
         {
 131  0
             append( sb, "eclipse:configure-workspace", 0 );
 132  0
             append( sb, "Configures The following Eclipse Workspace features:\n-\tAdds the classpath variable MAVEN_REPO to Eclipse.\n-\tOptionally load Eclipse code style file via a URL.\n", 1 );
 133  0
             append( sb, "", 0 );
 134  0
             if ( detail )
 135  
             {
 136  0
                 append( sb, "Available parameters:", 1 );
 137  0
                 append( sb, "", 0 );
 138  
 
 139  0
                 append( sb, "workspace", 2 );
 140  0
                 append( sb, "Directory location of the Eclipse workspace.", 3 );
 141  0
                 append( sb, "", 0 );
 142  
 
 143  0
                 append( sb, "workspaceActiveCodeStyleProfileName", 2 );
 144  0
                 append( sb, "Name of a profile in workspaceCodeStylesURL to activate. Default is the first profile name in the code style file in workspaceCodeStylesURL", 3 );
 145  0
                 append( sb, "", 0 );
 146  
 
 147  0
                 append( sb, "workspaceCodeStylesURL", 2 );
 148  0
                 append( sb, "Point to a URL containing code styles content.", 3 );
 149  0
                 append( sb, "", 0 );
 150  
             }
 151  
         }
 152  
 
 153  0
         if ( goal == null || goal.length() <= 0 || "eclipse".equals( goal ) )
 154  
         {
 155  0
             append( sb, "eclipse:eclipse", 0 );
 156  0
             append( sb, "Generates the following eclipse configuration files:\n-\t.project and .classpath files\n-\t.setting/org.eclipse.jdt.core.prefs with project specific compiler settings\n-\tvarious configuration files for WTP (Web Tools Project), if the parameter wtpversion is set to a valid version (WTP configuration is not generated by default)\nIf this goal is run on a multiproject root, dependencies between modules will be configured as direct project dependencies in Eclipse (unless useProjectReferences is set to false).", 1 );
 157  0
             append( sb, "", 0 );
 158  0
             if ( detail )
 159  
             {
 160  0
                 append( sb, "Available parameters:", 1 );
 161  0
                 append( sb, "", 0 );
 162  
 
 163  0
                 append( sb, "addGroupIdToProjectName (Default: false)", 2 );
 164  0
                 append( sb, "If set to true, the groupId of the artifact is appended to the name of the generated Eclipse project. See projectNameTemplate for other options.", 3 );
 165  0
                 append( sb, "", 0 );
 166  
 
 167  0
                 append( sb, "addVersionToProjectName (Default: false)", 2 );
 168  0
                 append( sb, "If set to true, the version number of the artifact is appended to the name of the generated Eclipse project. See projectNameTemplate for other options.", 3 );
 169  0
                 append( sb, "", 0 );
 170  
 
 171  0
                 append( sb, "additionalBuildcommands", 2 );
 172  0
                 append( sb, "List of eclipse build commands to be added to the default ones. Old style:\n<additionalBuildcommands>\n<buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>\n</additionalBuildcommands>\nNew style:\n<additionalBuildcommands>\n<buildCommand>\n<name>org.ui.externaltools.ExternalToolBuilder</name>\n<triggers>auto,full,incremental,</triggers>\n<arguments>\n<LaunchConfigHandle>&lt;project&gt;./externalToolBuilders/MavenBuilder.launch</LaunchConfighandle>\n</arguments>\n</buildCommand>\n</additionalBuildcommands>\nNote the difference between buildcommand and buildCommand. You can mix and match old and new-style configuration entries.", 3 );
 173  0
                 append( sb, "", 0 );
 174  
 
 175  0
                 append( sb, "additionalConfig", 2 );
 176  0
                 append( sb, "Allow to configure additional generic configuration files for eclipse that will be written out to disk when running eclipse:eclipse. FOr each file you can specify the name and the text content.\n<plugin>\n<groupId>org.apache.maven.plugins</groupId>\n<artifactId>maven-eclipse-plugin</artifactId>\n<configuration>\n<additionalConfig>\n<file>\n<name>.checkstyle</name>\n<content>\n<![CDATA[<fileset-config\u00a0file-format-version=\'1.2.0\'\u00a0simple-config=\'true\'>\n<fileset\u00a0name=\'all\'\u00a0enabled=\'true\'\u00a0check-config-name=\'acme\u00a0corporate\u00a0style\'\u00a0local=\'false\'>\n<file-match-pattern\u00a0match-pattern=\'.\'\u00a0include-pattern=\'true\'/>\n</fileset>\n<filter\u00a0name=\'NonSrcDirs\'\u00a0enabled=\'true\'/>\n</fileset-config>]]>\n</content>\n</file>\n</additionalConfig>\n</configuration>\n</plugin>\nInstead of the content you can also define (from version 2.5) an url to download the file :\n<plugin>\n<groupId>org.apache.maven.plugins</groupId>\n<artifactId>maven-eclipse-plugin</artifactId>\n<configuration>\n<additionalConfig>\n<file>\n<name>.checkstyle</name>\n<url>http://some.place.org/path/to/file</url>\n</file>\n</additionalConfig>\n</configuration>\nor a location :\n<plugin>\n<groupId>org.apache.maven.plugins</groupId>\n<artifactId>maven-eclipse-plugin</artifactId>\n<configuration>\n<additionalConfig>\n<file>\n<name>.checkstyle</name>\n<location>/checkstyle-config.xml</location>\n</file>\n</additionalConfig>\n</configuration>\n<dependencies>\n<!--\u00a0The\u00a0file\u00a0defined\u00a0in\u00a0the\u00a0location\u00a0is\u00a0stored\u00a0in\u00a0this\u00a0dependency\u00a0-->\n<dependency>\n<groupId>eclipsetest</groupId>\n<artifactId>checkstyle-config</artifactId>\n<version>1.0</version>\n</dependency>\n</dependencies>\n</plugin>\n", 3 );
 177  0
                 append( sb, "", 0 );
 178  
 
 179  0
                 append( sb, "additionalProjectFacets", 2 );
 180  0
                 append( sb, "List of eclipse project facets to be added to the default ones.\n<additionalProjectFacets>\n<jst.jsf>1.1<jst.jsf/>\n</additionalProjectFacets>\n", 3 );
 181  0
                 append( sb, "", 0 );
 182  
 
 183  0
                 append( sb, "additionalProjectnatures", 2 );
 184  0
                 append( sb, "List of eclipse project natures to be added to the default ones.\n<additionalProjectnatures>\n<projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>\n</additionalProjectnatures>\n", 3 );
 185  0
                 append( sb, "", 0 );
 186  
 
 187  0
                 append( sb, "ajdtVersion (Default: 1.5)", 2 );
 188  0
                 append( sb, "The version of AJDT for which configuration files will be generated. The default value is \'1.5\', supported versions are \'none\', \'1.4\', and \'1.5\'.", 3 );
 189  0
                 append( sb, "", 0 );
 190  
 
 191  0
                 append( sb, "buildOutputDirectory (Default: ${project.build.outputDirectory})", 2 );
 192  0
                 append( sb, "The default output directory", 3 );
 193  0
                 append( sb, "", 0 );
 194  
 
 195  0
                 append( sb, "buildcommands", 2 );
 196  0
                 append( sb, "List of eclipse build commands. By default the org.eclipse.jdt.core.javabuilder builder plus the needed WTP builders are added. If you specify any configuration for this parameter, only those buildcommands specified will be used; the defaults won\'t be added. Use the additionalBuildCommands parameter for that. Configuration example: Old style:\n<buildcommands>\n<buildcommand>org.eclipse.wst.common.modulecore.ComponentStructuralBuilder</buildcommand>\n<buildcommand>org.eclipse.jdt.core.javabuilder</buildcommand>\n<buildcommand>org.eclipse.wst.common.modulecore.ComponentStructuralBuilderDependencyResolver</buildcommand>\n</buildcommands>\nFor new style, see additionalBuildCommands.", 3 );
 197  0
                 append( sb, "", 0 );
 198  
 
 199  0
                 append( sb, "classpathContainers", 2 );
 200  0
                 append( sb, "List of container classpath entries. By default the org.eclipse.jdt.launching.JRE_CONTAINER classpath container is added. Configuration example:\n<classpathContainers>\n<classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</classpathContainer>\n<classpathContainer>org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache\u00a0Tomcat\u00a0v5.5</classpathContainer>\n<classpathContainer>org.eclipse.jst.j2ee.internal.web.container/artifact</classpathContainer>\n</classpathContainers>\n", 3 );
 201  0
                 append( sb, "", 0 );
 202  
 
 203  0
                 append( sb, "downloadJavadocs", 2 );
 204  0
                 append( sb, "Enables/disables the downloading of javadoc attachments. Defaults to false. When this flag is true remote repositories are checked for javadocs: in order to avoid repeated check for unavailable javadoc archives, a status cache is mantained. To reset this cache run mvn eclipse:remove-cache, or use the forceRecheck option.", 3 );
 205  0
                 append( sb, "", 0 );
 206  
 
 207  0
                 append( sb, "downloadSources", 2 );
 208  0
                 append( sb, "Enables/disables the downloading of source attachments. Defaults to false. When this flag is true remote repositories are checked for sources: in order to avoid repeated check for unavailable source archives, a status cache is mantained. To reset this cache run mvn eclipse:remove-cache, or use the forceRecheck option.", 3 );
 209  0
                 append( sb, "", 0 );
 210  
 
 211  0
                 append( sb, "eclipseDownloadSources", 2 );
 212  0
                 append( sb, "Deprecated. use downloadSources", 3 );
 213  0
                 append( sb, "", 0 );
 214  0
                 append( sb, "Enables/disables the downloading of source attachments. Defaults to false. DEPRECATED - use downloadSources", 3 );
 215  0
                 append( sb, "", 0 );
 216  
 
 217  0
                 append( sb, "eclipseProjectDir", 2 );
 218  0
                 append( sb, "Eclipse workspace directory.", 3 );
 219  0
                 append( sb, "", 0 );
 220  
 
 221  0
                 append( sb, "excludes", 2 );
 222  0
                 append( sb, "List of artifact to exclude from eclipse classpath, beeing provided by some eclipse classPathContainer [MECLIPSE-79]", 3 );
 223  0
                 append( sb, "", 0 );
 224  
 
 225  0
                 append( sb, "forceRecheck", 2 );
 226  0
                 append( sb, "Enables/disables the rechecking of the remote repository for downloading source/javadoc attachments. Defaults to false. When this flag is true and the source or javadoc attachment has a status cache to indicate that it is not available, then the remote repository will be rechecked for a source or javadoc attachment and the status cache updated to reflect the new state.", 3 );
 227  0
                 append( sb, "", 0 );
 228  
 
 229  0
                 append( sb, "limitProjectReferencesToWorkspace (Default: false)", 2 );
 230  0
                 append( sb, "Limit the use of project references to the current workspace. No project references will be created to projects in the reactor when they are not available in the workspace.", 3 );
 231  0
                 append( sb, "", 0 );
 232  
 
 233  0
                 append( sb, "manifest (Default: ${basedir}/META-INF/MANIFEST.MF)", 2 );
 234  0
                 append( sb, "The relative path of the manifest file", 3 );
 235  0
                 append( sb, "", 0 );
 236  
 
 237  0
                 append( sb, "packaging", 2 );
 238  0
                 append( sb, "The project packaging.", 3 );
 239  0
                 append( sb, "", 0 );
 240  
 
 241  0
                 append( sb, "pde (Default: false)", 2 );
 242  0
                 append( sb, "Is it an PDE project? If yes, the plugin adds the necessary natures and build commands to the .project file. Additionally it copies all libraries to a project local directory and references them instead of referencing the files in the local Maven repository. It also ensured that the \'Bundle-Classpath\' in META-INF/MANIFEST.MF is synchronized.", 3 );
 243  0
                 append( sb, "", 0 );
 244  
 
 245  0
                 append( sb, "projectNameTemplate", 2 );
 246  0
                 append( sb, "Allows configuring the name of the eclipse projects. This property if set wins over addVersionToProjectName and addGroupIdToProjectName You can use [groupId], [artifactId] and [version] variables. eg. [groupId].[artifactId]-[version]", 3 );
 247  0
                 append( sb, "", 0 );
 248  
 
 249  0
                 append( sb, "projectnatures", 2 );
 250  0
                 append( sb, "List of eclipse project natures. By default the org.eclipse.jdt.core.javanature nature plus the needed WTP natures are added. Natures added using this property replace the default list.\n<projectnatures>\n<projectnature>org.eclipse.jdt.core.javanature</projectnature>\n<projectnature>org.eclipse.wst.common.modulecore.ModuleCoreNature</projectnature>\n</projectnatures>\n", 3 );
 251  0
                 append( sb, "", 0 );
 252  
 
 253  0
                 append( sb, "skip (Default: false)", 2 );
 254  0
                 append( sb, "Skip the operation when true.", 3 );
 255  0
                 append( sb, "", 0 );
 256  
 
 257  0
                 append( sb, "useProjectReferences (Default: true)", 2 );
 258  0
                 append( sb, "When set to false, the plugin will not create sub-projects and instead reference those sub-projects using the installed package in the local repository", 3 );
 259  0
                 append( sb, "", 0 );
 260  
 
 261  0
                 append( sb, "workspace", 2 );
 262  0
                 append( sb, "This eclipse workspace is read and all artifacts detected there will be connected as eclipse projects and will not be linked to the jars in the local repository. Requirement is that it was created with the similar wtp settings as the reactor projects, but the project name template my differ. The pom\'s in the workspace projects may not contain variables in the artefactId, groupId and version tags. If workspace is not defined, then an attempt to locate it by checking up the directory hierarchy will be made.", 3 );
 263  0
                 append( sb, "", 0 );
 264  
 
 265  0
                 append( sb, "wtpContextName", 2 );
 266  0
                 append( sb, "JEE context name of the WTP module. ( ex. WEB context name ).", 3 );
 267  0
                 append( sb, "", 0 );
 268  
 
 269  0
                 append( sb, "wtpapplicationxml (Default: false)", 2 );
 270  0
                 append( sb, "Must the application files be written for ear projects in a separate directory.", 3 );
 271  0
                 append( sb, "", 0 );
 272  
 
 273  0
                 append( sb, "wtpdefaultserver", 2 );
 274  0
                 append( sb, "What WTP defined server to use for deployment informations.", 3 );
 275  0
                 append( sb, "", 0 );
 276  
 
 277  0
                 append( sb, "wtpmanifest (Default: false)", 2 );
 278  0
                 append( sb, "Must the manifest files be written for java projects so that that the jee classpath for wtp is correct.", 3 );
 279  0
                 append( sb, "", 0 );
 280  
 
 281  0
                 append( sb, "wtpversion (Default: none)", 2 );
 282  0
                 append( sb, "The version of WTP for which configuration files will be generated. The default value is \'none\' (don\'t generate WTP configuration), supported versions are \'R7\', \'1.0\', and \'1.5\'", 3 );
 283  0
                 append( sb, "", 0 );
 284  
             }
 285  
         }
 286  
 
 287  0
         if ( goal == null || goal.length() <= 0 || "help".equals( goal ) )
 288  
         {
 289  0
             append( sb, "eclipse:help", 0 );
 290  0
             append( sb, "Display help information on maven-eclipse-plugin.\nCall\n\u00a0\u00a0mvn\u00a0eclipse:help\u00a0-Ddetail=true\u00a0-Dgoal=<goal-name>\nto display parameter details.", 1 );
 291  0
             append( sb, "", 0 );
 292  0
             if ( detail )
 293  
             {
 294  0
                 append( sb, "Available parameters:", 1 );
 295  0
                 append( sb, "", 0 );
 296  
 
 297  0
                 append( sb, "detail (Default: false)", 2 );
 298  0
                 append( sb, "If true, display all settable properties for each goal.", 3 );
 299  0
                 append( sb, "", 0 );
 300  
 
 301  0
                 append( sb, "goal", 2 );
 302  0
                 append( sb, "The name of the goal for which to show help. If unspecified, all goals will be displayed.", 3 );
 303  0
                 append( sb, "", 0 );
 304  
 
 305  0
                 append( sb, "lineLength (Default: 80)", 2 );
 306  0
                 append( sb, "The maximum length of a display line, should be positive.", 3 );
 307  0
                 append( sb, "", 0 );
 308  
 
 309  0
                 append( sb, "indentSize (Default: 2)", 2 );
 310  0
                 append( sb, "The number of spaces per indentation level, should be positive.", 3 );
 311  0
                 append( sb, "", 0 );
 312  
             }
 313  
         }
 314  
 
 315  0
         if ( goal == null || goal.length() <= 0 || "install-plugins".equals( goal ) )
 316  
         {
 317  0
             append( sb, "eclipse:install-plugins", 0 );
 318  0
             append( sb, "Install plugins resolved from the Maven repository system into an Eclipse instance.", 1 );
 319  0
             append( sb, "", 0 );
 320  0
             if ( detail )
 321  
             {
 322  0
                 append( sb, "Available parameters:", 1 );
 323  0
                 append( sb, "", 0 );
 324  
 
 325  0
                 append( sb, "eclipseDir", 2 );
 326  0
                 append( sb, "This is the installed base directory of the Eclipse instance you want to modify.", 3 );
 327  0
                 append( sb, "", 0 );
 328  
 
 329  0
                 append( sb, "overwrite (Default: false)", 2 );
 330  0
                 append( sb, "Determines whether this mojo leaves existing installed plugins as-is, or overwrites them.", 3 );
 331  0
                 append( sb, "", 0 );
 332  
 
 333  0
                 append( sb, "pluginDependencyTypes (Default: jar)", 2 );
 334  0
                 append( sb, "Comma-delimited list of dependency <type/> values which will be installed in the eclipse instance\'s plugins directory.", 3 );
 335  0
                 append( sb, "", 0 );
 336  
             }
 337  
         }
 338  
 
 339  0
         if ( goal == null || goal.length() <= 0 || "m2eclipse".equals( goal ) )
 340  
         {
 341  0
             append( sb, "eclipse:m2eclipse", 0 );
 342  0
             append( sb, "Creates an eclipse project that is ready to use with the M2Elipse plugin.", 1 );
 343  0
             append( sb, "", 0 );
 344  0
             if ( detail )
 345  
             {
 346  0
                 append( sb, "Available parameters:", 1 );
 347  0
                 append( sb, "", 0 );
 348  
 
 349  0
                 append( sb, "addGroupIdToProjectName (Default: false)", 2 );
 350  0
                 append( sb, "If set to true, the groupId of the artifact is appended to the name of the generated Eclipse project. See projectNameTemplate for other options.", 3 );
 351  0
                 append( sb, "", 0 );
 352  
 
 353  0
                 append( sb, "addVersionToProjectName (Default: false)", 2 );
 354  0
                 append( sb, "If set to true, the version number of the artifact is appended to the name of the generated Eclipse project. See projectNameTemplate for other options.", 3 );
 355  0
                 append( sb, "", 0 );
 356  
 
 357  0
                 append( sb, "additionalBuildcommands", 2 );
 358  0
                 append( sb, "List of eclipse build commands to be added to the default ones. Old style:\n<additionalBuildcommands>\n<buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>\n</additionalBuildcommands>\nNew style:\n<additionalBuildcommands>\n<buildCommand>\n<name>org.ui.externaltools.ExternalToolBuilder</name>\n<triggers>auto,full,incremental,</triggers>\n<arguments>\n<LaunchConfigHandle>&lt;project&gt;./externalToolBuilders/MavenBuilder.launch</LaunchConfighandle>\n</arguments>\n</buildCommand>\n</additionalBuildcommands>\nNote the difference between buildcommand and buildCommand. You can mix and match old and new-style configuration entries.", 3 );
 359  0
                 append( sb, "", 0 );
 360  
 
 361  0
                 append( sb, "additionalConfig", 2 );
 362  0
                 append( sb, "Allow to configure additional generic configuration files for eclipse that will be written out to disk when running eclipse:eclipse. FOr each file you can specify the name and the text content.\n<plugin>\n<groupId>org.apache.maven.plugins</groupId>\n<artifactId>maven-eclipse-plugin</artifactId>\n<configuration>\n<additionalConfig>\n<file>\n<name>.checkstyle</name>\n<content>\n<![CDATA[<fileset-config\u00a0file-format-version=\'1.2.0\'\u00a0simple-config=\'true\'>\n<fileset\u00a0name=\'all\'\u00a0enabled=\'true\'\u00a0check-config-name=\'acme\u00a0corporate\u00a0style\'\u00a0local=\'false\'>\n<file-match-pattern\u00a0match-pattern=\'.\'\u00a0include-pattern=\'true\'/>\n</fileset>\n<filter\u00a0name=\'NonSrcDirs\'\u00a0enabled=\'true\'/>\n</fileset-config>]]>\n</content>\n</file>\n</additionalConfig>\n</configuration>\n</plugin>\nInstead of the content you can also define (from version 2.5) an url to download the file :\n<plugin>\n<groupId>org.apache.maven.plugins</groupId>\n<artifactId>maven-eclipse-plugin</artifactId>\n<configuration>\n<additionalConfig>\n<file>\n<name>.checkstyle</name>\n<url>http://some.place.org/path/to/file</url>\n</file>\n</additionalConfig>\n</configuration>\nor a location :\n<plugin>\n<groupId>org.apache.maven.plugins</groupId>\n<artifactId>maven-eclipse-plugin</artifactId>\n<configuration>\n<additionalConfig>\n<file>\n<name>.checkstyle</name>\n<location>/checkstyle-config.xml</location>\n</file>\n</additionalConfig>\n</configuration>\n<dependencies>\n<!--\u00a0The\u00a0file\u00a0defined\u00a0in\u00a0the\u00a0location\u00a0is\u00a0stored\u00a0in\u00a0this\u00a0dependency\u00a0-->\n<dependency>\n<groupId>eclipsetest</groupId>\n<artifactId>checkstyle-config</artifactId>\n<version>1.0</version>\n</dependency>\n</dependencies>\n</plugin>\n", 3 );
 363  0
                 append( sb, "", 0 );
 364  
 
 365  0
                 append( sb, "additionalProjectFacets", 2 );
 366  0
                 append( sb, "List of eclipse project facets to be added to the default ones.\n<additionalProjectFacets>\n<jst.jsf>1.1<jst.jsf/>\n</additionalProjectFacets>\n", 3 );
 367  0
                 append( sb, "", 0 );
 368  
 
 369  0
                 append( sb, "additionalProjectnatures", 2 );
 370  0
                 append( sb, "List of eclipse project natures to be added to the default ones.\n<additionalProjectnatures>\n<projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>\n</additionalProjectnatures>\n", 3 );
 371  0
                 append( sb, "", 0 );
 372  
 
 373  0
                 append( sb, "ajdtVersion (Default: 1.5)", 2 );
 374  0
                 append( sb, "The version of AJDT for which configuration files will be generated. The default value is \'1.5\', supported versions are \'none\', \'1.4\', and \'1.5\'.", 3 );
 375  0
                 append( sb, "", 0 );
 376  
 
 377  0
                 append( sb, "buildOutputDirectory (Default: ${project.build.outputDirectory})", 2 );
 378  0
                 append( sb, "The default output directory", 3 );
 379  0
                 append( sb, "", 0 );
 380  
 
 381  0
                 append( sb, "buildcommands", 2 );
 382  0
                 append( sb, "List of eclipse build commands. By default the org.eclipse.jdt.core.javabuilder builder plus the needed WTP builders are added. If you specify any configuration for this parameter, only those buildcommands specified will be used; the defaults won\'t be added. Use the additionalBuildCommands parameter for that. Configuration example: Old style:\n<buildcommands>\n<buildcommand>org.eclipse.wst.common.modulecore.ComponentStructuralBuilder</buildcommand>\n<buildcommand>org.eclipse.jdt.core.javabuilder</buildcommand>\n<buildcommand>org.eclipse.wst.common.modulecore.ComponentStructuralBuilderDependencyResolver</buildcommand>\n</buildcommands>\nFor new style, see additionalBuildCommands.", 3 );
 383  0
                 append( sb, "", 0 );
 384  
 
 385  0
                 append( sb, "classpathContainers", 2 );
 386  0
                 append( sb, "List of container classpath entries. By default the org.eclipse.jdt.launching.JRE_CONTAINER classpath container is added. Configuration example:\n<classpathContainers>\n<classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</classpathContainer>\n<classpathContainer>org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache\u00a0Tomcat\u00a0v5.5</classpathContainer>\n<classpathContainer>org.eclipse.jst.j2ee.internal.web.container/artifact</classpathContainer>\n</classpathContainers>\n", 3 );
 387  0
                 append( sb, "", 0 );
 388  
 
 389  0
                 append( sb, "downloadJavadocs", 2 );
 390  0
                 append( sb, "Enables/disables the downloading of javadoc attachments. Defaults to false. When this flag is true remote repositories are checked for javadocs: in order to avoid repeated check for unavailable javadoc archives, a status cache is mantained. To reset this cache run mvn eclipse:remove-cache, or use the forceRecheck option.", 3 );
 391  0
                 append( sb, "", 0 );
 392  
 
 393  0
                 append( sb, "downloadSources", 2 );
 394  0
                 append( sb, "Enables/disables the downloading of source attachments. Defaults to false. When this flag is true remote repositories are checked for sources: in order to avoid repeated check for unavailable source archives, a status cache is mantained. To reset this cache run mvn eclipse:remove-cache, or use the forceRecheck option.", 3 );
 395  0
                 append( sb, "", 0 );
 396  
 
 397  0
                 append( sb, "eclipseDownloadSources", 2 );
 398  0
                 append( sb, "Deprecated. use downloadSources", 3 );
 399  0
                 append( sb, "", 0 );
 400  0
                 append( sb, "Enables/disables the downloading of source attachments. Defaults to false. DEPRECATED - use downloadSources", 3 );
 401  0
                 append( sb, "", 0 );
 402  
 
 403  0
                 append( sb, "eclipseProjectDir", 2 );
 404  0
                 append( sb, "Eclipse workspace directory.", 3 );
 405  0
                 append( sb, "", 0 );
 406  
 
 407  0
                 append( sb, "excludes", 2 );
 408  0
                 append( sb, "List of artifact to exclude from eclipse classpath, beeing provided by some eclipse classPathContainer [MECLIPSE-79]", 3 );
 409  0
                 append( sb, "", 0 );
 410  
 
 411  0
                 append( sb, "forceRecheck", 2 );
 412  0
                 append( sb, "Enables/disables the rechecking of the remote repository for downloading source/javadoc attachments. Defaults to false. When this flag is true and the source or javadoc attachment has a status cache to indicate that it is not available, then the remote repository will be rechecked for a source or javadoc attachment and the status cache updated to reflect the new state.", 3 );
 413  0
                 append( sb, "", 0 );
 414  
 
 415  0
                 append( sb, "limitProjectReferencesToWorkspace (Default: false)", 2 );
 416  0
                 append( sb, "Limit the use of project references to the current workspace. No project references will be created to projects in the reactor when they are not available in the workspace.", 3 );
 417  0
                 append( sb, "", 0 );
 418  
 
 419  0
                 append( sb, "manifest (Default: ${basedir}/META-INF/MANIFEST.MF)", 2 );
 420  0
                 append( sb, "The relative path of the manifest file", 3 );
 421  0
                 append( sb, "", 0 );
 422  
 
 423  0
                 append( sb, "packaging", 2 );
 424  0
                 append( sb, "The project packaging.", 3 );
 425  0
                 append( sb, "", 0 );
 426  
 
 427  0
                 append( sb, "pde (Default: false)", 2 );
 428  0
                 append( sb, "Is it an PDE project? If yes, the plugin adds the necessary natures and build commands to the .project file. Additionally it copies all libraries to a project local directory and references them instead of referencing the files in the local Maven repository. It also ensured that the \'Bundle-Classpath\' in META-INF/MANIFEST.MF is synchronized.", 3 );
 429  0
                 append( sb, "", 0 );
 430  
 
 431  0
                 append( sb, "projectNameTemplate", 2 );
 432  0
                 append( sb, "Allows configuring the name of the eclipse projects. This property if set wins over addVersionToProjectName and addGroupIdToProjectName You can use [groupId], [artifactId] and [version] variables. eg. [groupId].[artifactId]-[version]", 3 );
 433  0
                 append( sb, "", 0 );
 434  
 
 435  0
                 append( sb, "projectnatures", 2 );
 436  0
                 append( sb, "List of eclipse project natures. By default the org.eclipse.jdt.core.javanature nature plus the needed WTP natures are added. Natures added using this property replace the default list.\n<projectnatures>\n<projectnature>org.eclipse.jdt.core.javanature</projectnature>\n<projectnature>org.eclipse.wst.common.modulecore.ModuleCoreNature</projectnature>\n</projectnatures>\n", 3 );
 437  0
                 append( sb, "", 0 );
 438  
 
 439  0
                 append( sb, "skip (Default: false)", 2 );
 440  0
                 append( sb, "Skip the operation when true.", 3 );
 441  0
                 append( sb, "", 0 );
 442  
 
 443  0
                 append( sb, "useProjectReferences (Default: true)", 2 );
 444  0
                 append( sb, "When set to false, the plugin will not create sub-projects and instead reference those sub-projects using the installed package in the local repository", 3 );
 445  0
                 append( sb, "", 0 );
 446  
 
 447  0
                 append( sb, "workspace", 2 );
 448  0
                 append( sb, "This eclipse workspace is read and all artifacts detected there will be connected as eclipse projects and will not be linked to the jars in the local repository. Requirement is that it was created with the similar wtp settings as the reactor projects, but the project name template my differ. The pom\'s in the workspace projects may not contain variables in the artefactId, groupId and version tags. If workspace is not defined, then an attempt to locate it by checking up the directory hierarchy will be made.", 3 );
 449  0
                 append( sb, "", 0 );
 450  
 
 451  0
                 append( sb, "wtpContextName", 2 );
 452  0
                 append( sb, "JEE context name of the WTP module. ( ex. WEB context name ).", 3 );
 453  0
                 append( sb, "", 0 );
 454  
 
 455  0
                 append( sb, "wtpapplicationxml (Default: false)", 2 );
 456  0
                 append( sb, "Must the application files be written for ear projects in a separate directory.", 3 );
 457  0
                 append( sb, "", 0 );
 458  
 
 459  0
                 append( sb, "wtpdefaultserver", 2 );
 460  0
                 append( sb, "What WTP defined server to use for deployment informations.", 3 );
 461  0
                 append( sb, "", 0 );
 462  
 
 463  0
                 append( sb, "wtpmanifest (Default: false)", 2 );
 464  0
                 append( sb, "Must the manifest files be written for java projects so that that the jee classpath for wtp is correct.", 3 );
 465  0
                 append( sb, "", 0 );
 466  
 
 467  0
                 append( sb, "wtpversion (Default: none)", 2 );
 468  0
                 append( sb, "The version of WTP for which configuration files will be generated. The default value is \'none\' (don\'t generate WTP configuration), supported versions are \'R7\', \'1.0\', and \'1.5\'", 3 );
 469  0
                 append( sb, "", 0 );
 470  
             }
 471  
         }
 472  
 
 473  0
         if ( goal == null || goal.length() <= 0 || "make-artifacts".equals( goal ) )
 474  
         {
 475  0
             append( sb, "eclipse:make-artifacts", 0 );
 476  0
             append( sb, "Deprecated. use EclipseToMavenMojo for the latest naming conventions", 1 );
 477  0
             if ( detail )
 478  
             {
 479  0
                 append( sb, "", 0 );
 480  0
                 append( sb, "Add eclipse artifacts from an eclipse installation to the local repo. This mojo automatically analize the eclipse directory, copy plugins jars to the local maven repo, and generates appropriate poms. Use eclipse:to-maven for the latest naming conventions in place, groupId. artifactId.", 1 );
 481  
             }
 482  0
             append( sb, "", 0 );
 483  0
             if ( detail )
 484  
             {
 485  0
                 append( sb, "Available parameters:", 1 );
 486  0
                 append( sb, "", 0 );
 487  
 
 488  0
                 append( sb, "deployTo", 2 );
 489  0
                 append( sb, "Specifies a remote repository to which generated artifacts should be deployed to. If this property is specified, artifacts are also deployed to the remote repo. The format for this parameter is id::layout::url", 3 );
 490  0
                 append( sb, "", 0 );
 491  
 
 492  0
                 append( sb, "eclipseDir", 2 );
 493  0
                 append( sb, "Eclipse installation dir. If not set, a value for this parameter will be asked on the command line.", 3 );
 494  0
                 append( sb, "", 0 );
 495  
 
 496  0
                 append( sb, "forcedQualifier", 2 );
 497  0
                 append( sb, "Default token to use as a qualifier. Tipically qualifiers for plugins in the same eclipse build are different. This parameter can be used to \'align\' qualifiers so that all the plugins coming from the same eclipse build can be easily identified. For example, setting this to \'M3\' will force the pluging versions to be \'*.*.*.M3\'", 3 );
 498  0
                 append( sb, "", 0 );
 499  
 
 500  0
                 append( sb, "resolveVersionRanges (Default: false)", 2 );
 501  0
                 append( sb, "Resolve version ranges in generated pom dependencies to versions of the other plugins being converted", 3 );
 502  0
                 append( sb, "", 0 );
 503  
 
 504  0
                 append( sb, "stripQualifier (Default: true)", 2 );
 505  0
                 append( sb, "Strip qualifier (fourth token) from the plugin version. Qualifiers are for eclipse plugin the equivalent of timestamped snapshot versions for Maven, but the date is maintained also for released version (e.g. a jar for the release 3.2 can be named org.eclipse.core.filesystem_1.0.0.v20060603.jar. It\'s usually handy to not to include this qualifier when generating maven artifacts for major releases, while it\'s needed when working with eclipse integration/nightly builds.", 3 );
 506  0
                 append( sb, "", 0 );
 507  
             }
 508  
         }
 509  
 
 510  0
         if ( goal == null || goal.length() <= 0 || "myeclipse".equals( goal ) )
 511  
         {
 512  0
             append( sb, "eclipse:myeclipse", 0 );
 513  0
             append( sb, "Generates MyEclipse configuration files", 1 );
 514  0
             append( sb, "", 0 );
 515  0
             if ( detail )
 516  
             {
 517  0
                 append( sb, "Available parameters:", 1 );
 518  0
                 append( sb, "", 0 );
 519  
 
 520  0
                 append( sb, "addGroupIdToProjectName (Default: false)", 2 );
 521  0
                 append( sb, "If set to true, the groupId of the artifact is appended to the name of the generated Eclipse project. See projectNameTemplate for other options.", 3 );
 522  0
                 append( sb, "", 0 );
 523  
 
 524  0
                 append( sb, "addVersionToProjectName (Default: false)", 2 );
 525  0
                 append( sb, "If set to true, the version number of the artifact is appended to the name of the generated Eclipse project. See projectNameTemplate for other options.", 3 );
 526  0
                 append( sb, "", 0 );
 527  
 
 528  0
                 append( sb, "additionalBuildcommands", 2 );
 529  0
                 append( sb, "List of eclipse build commands to be added to the default ones. Old style:\n<additionalBuildcommands>\n<buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>\n</additionalBuildcommands>\nNew style:\n<additionalBuildcommands>\n<buildCommand>\n<name>org.ui.externaltools.ExternalToolBuilder</name>\n<triggers>auto,full,incremental,</triggers>\n<arguments>\n<LaunchConfigHandle>&lt;project&gt;./externalToolBuilders/MavenBuilder.launch</LaunchConfighandle>\n</arguments>\n</buildCommand>\n</additionalBuildcommands>\nNote the difference between buildcommand and buildCommand. You can mix and match old and new-style configuration entries.", 3 );
 530  0
                 append( sb, "", 0 );
 531  
 
 532  0
                 append( sb, "additionalConfig", 2 );
 533  0
                 append( sb, "Allow to configure additional generic configuration files for eclipse that will be written out to disk when running eclipse:eclipse. FOr each file you can specify the name and the text content.\n<plugin>\n<groupId>org.apache.maven.plugins</groupId>\n<artifactId>maven-eclipse-plugin</artifactId>\n<configuration>\n<additionalConfig>\n<file>\n<name>.checkstyle</name>\n<content>\n<![CDATA[<fileset-config\u00a0file-format-version=\'1.2.0\'\u00a0simple-config=\'true\'>\n<fileset\u00a0name=\'all\'\u00a0enabled=\'true\'\u00a0check-config-name=\'acme\u00a0corporate\u00a0style\'\u00a0local=\'false\'>\n<file-match-pattern\u00a0match-pattern=\'.\'\u00a0include-pattern=\'true\'/>\n</fileset>\n<filter\u00a0name=\'NonSrcDirs\'\u00a0enabled=\'true\'/>\n</fileset-config>]]>\n</content>\n</file>\n</additionalConfig>\n</configuration>\n</plugin>\nInstead of the content you can also define (from version 2.5) an url to download the file :\n<plugin>\n<groupId>org.apache.maven.plugins</groupId>\n<artifactId>maven-eclipse-plugin</artifactId>\n<configuration>\n<additionalConfig>\n<file>\n<name>.checkstyle</name>\n<url>http://some.place.org/path/to/file</url>\n</file>\n</additionalConfig>\n</configuration>\nor a location :\n<plugin>\n<groupId>org.apache.maven.plugins</groupId>\n<artifactId>maven-eclipse-plugin</artifactId>\n<configuration>\n<additionalConfig>\n<file>\n<name>.checkstyle</name>\n<location>/checkstyle-config.xml</location>\n</file>\n</additionalConfig>\n</configuration>\n<dependencies>\n<!--\u00a0The\u00a0file\u00a0defined\u00a0in\u00a0the\u00a0location\u00a0is\u00a0stored\u00a0in\u00a0this\u00a0dependency\u00a0-->\n<dependency>\n<groupId>eclipsetest</groupId>\n<artifactId>checkstyle-config</artifactId>\n<version>1.0</version>\n</dependency>\n</dependencies>\n</plugin>\n", 3 );
 534  0
                 append( sb, "", 0 );
 535  
 
 536  0
                 append( sb, "additionalProjectFacets", 2 );
 537  0
                 append( sb, "List of eclipse project facets to be added to the default ones.\n<additionalProjectFacets>\n<jst.jsf>1.1<jst.jsf/>\n</additionalProjectFacets>\n", 3 );
 538  0
                 append( sb, "", 0 );
 539  
 
 540  0
                 append( sb, "additionalProjectnatures", 2 );
 541  0
                 append( sb, "List of eclipse project natures to be added to the default ones.\n<additionalProjectnatures>\n<projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>\n</additionalProjectnatures>\n", 3 );
 542  0
                 append( sb, "", 0 );
 543  
 
 544  0
                 append( sb, "ajdtVersion (Default: 1.5)", 2 );
 545  0
                 append( sb, "The version of AJDT for which configuration files will be generated. The default value is \'1.5\', supported versions are \'none\', \'1.4\', and \'1.5\'.", 3 );
 546  0
                 append( sb, "", 0 );
 547  
 
 548  0
                 append( sb, "buildOutputDirectory (Default: ${project.build.outputDirectory})", 2 );
 549  0
                 append( sb, "The default output directory", 3 );
 550  0
                 append( sb, "", 0 );
 551  
 
 552  0
                 append( sb, "buildcommands", 2 );
 553  0
                 append( sb, "List of eclipse build commands. By default the org.eclipse.jdt.core.javabuilder builder plus the needed WTP builders are added. If you specify any configuration for this parameter, only those buildcommands specified will be used; the defaults won\'t be added. Use the additionalBuildCommands parameter for that. Configuration example: Old style:\n<buildcommands>\n<buildcommand>org.eclipse.wst.common.modulecore.ComponentStructuralBuilder</buildcommand>\n<buildcommand>org.eclipse.jdt.core.javabuilder</buildcommand>\n<buildcommand>org.eclipse.wst.common.modulecore.ComponentStructuralBuilderDependencyResolver</buildcommand>\n</buildcommands>\nFor new style, see additionalBuildCommands.", 3 );
 554  0
                 append( sb, "", 0 );
 555  
 
 556  0
                 append( sb, "classpathContainers", 2 );
 557  0
                 append( sb, "List of container classpath entries. By default the org.eclipse.jdt.launching.JRE_CONTAINER classpath container is added. Configuration example:\n<classpathContainers>\n<classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</classpathContainer>\n<classpathContainer>org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache\u00a0Tomcat\u00a0v5.5</classpathContainer>\n<classpathContainer>org.eclipse.jst.j2ee.internal.web.container/artifact</classpathContainer>\n</classpathContainers>\n", 3 );
 558  0
                 append( sb, "", 0 );
 559  
 
 560  0
                 append( sb, "downloadJavadocs", 2 );
 561  0
                 append( sb, "Enables/disables the downloading of javadoc attachments. Defaults to false. When this flag is true remote repositories are checked for javadocs: in order to avoid repeated check for unavailable javadoc archives, a status cache is mantained. To reset this cache run mvn eclipse:remove-cache, or use the forceRecheck option.", 3 );
 562  0
                 append( sb, "", 0 );
 563  
 
 564  0
                 append( sb, "downloadSources", 2 );
 565  0
                 append( sb, "Enables/disables the downloading of source attachments. Defaults to false. When this flag is true remote repositories are checked for sources: in order to avoid repeated check for unavailable source archives, a status cache is mantained. To reset this cache run mvn eclipse:remove-cache, or use the forceRecheck option.", 3 );
 566  0
                 append( sb, "", 0 );
 567  
 
 568  0
                 append( sb, "eclipseDownloadSources", 2 );
 569  0
                 append( sb, "Deprecated. use downloadSources", 3 );
 570  0
                 append( sb, "", 0 );
 571  0
                 append( sb, "Enables/disables the downloading of source attachments. Defaults to false. DEPRECATED - use downloadSources", 3 );
 572  0
                 append( sb, "", 0 );
 573  
 
 574  0
                 append( sb, "eclipseProjectDir", 2 );
 575  0
                 append( sb, "Eclipse workspace directory.", 3 );
 576  0
                 append( sb, "", 0 );
 577  
 
 578  0
                 append( sb, "excludes", 2 );
 579  0
                 append( sb, "List of artifact to exclude from eclipse classpath, beeing provided by some eclipse classPathContainer [MECLIPSE-79]", 3 );
 580  0
                 append( sb, "", 0 );
 581  
 
 582  0
                 append( sb, "forceRecheck", 2 );
 583  0
                 append( sb, "Enables/disables the rechecking of the remote repository for downloading source/javadoc attachments. Defaults to false. When this flag is true and the source or javadoc attachment has a status cache to indicate that it is not available, then the remote repository will be rechecked for a source or javadoc attachment and the status cache updated to reflect the new state.", 3 );
 584  0
                 append( sb, "", 0 );
 585  
 
 586  0
                 append( sb, "hibernate", 2 );
 587  0
                 append( sb, "Hibernate configuration placeholder\n>\n\n<hibernate>\n<config-file>src/main/resources/applicationContext-persistence.xml</config-file>\n<session-factory-id>mySessionFactory</session-factory-id>\n</hibernate>\n", 3 );
 588  0
                 append( sb, "", 0 );
 589  
 
 590  0
                 append( sb, "limitProjectReferencesToWorkspace (Default: false)", 2 );
 591  0
                 append( sb, "Limit the use of project references to the current workspace. No project references will be created to projects in the reactor when they are not available in the workspace.", 3 );
 592  0
                 append( sb, "", 0 );
 593  
 
 594  0
                 append( sb, "manifest (Default: ${basedir}/META-INF/MANIFEST.MF)", 2 );
 595  0
                 append( sb, "The relative path of the manifest file", 3 );
 596  0
                 append( sb, "", 0 );
 597  
 
 598  0
                 append( sb, "packaging", 2 );
 599  0
                 append( sb, "The project packaging.", 3 );
 600  0
                 append( sb, "", 0 );
 601  
 
 602  0
                 append( sb, "pde (Default: false)", 2 );
 603  0
                 append( sb, "Is it an PDE project? If yes, the plugin adds the necessary natures and build commands to the .project file. Additionally it copies all libraries to a project local directory and references them instead of referencing the files in the local Maven repository. It also ensured that the \'Bundle-Classpath\' in META-INF/MANIFEST.MF is synchronized.", 3 );
 604  0
                 append( sb, "", 0 );
 605  
 
 606  0
                 append( sb, "projectNameTemplate", 2 );
 607  0
                 append( sb, "Allows configuring the name of the eclipse projects. This property if set wins over addVersionToProjectName and addGroupIdToProjectName You can use [groupId], [artifactId] and [version] variables. eg. [groupId].[artifactId]-[version]", 3 );
 608  0
                 append( sb, "", 0 );
 609  
 
 610  0
                 append( sb, "projectnatures", 2 );
 611  0
                 append( sb, "List of eclipse project natures. By default the org.eclipse.jdt.core.javanature nature plus the needed WTP natures are added. Natures added using this property replace the default list.\n<projectnatures>\n<projectnature>org.eclipse.jdt.core.javanature</projectnature>\n<projectnature>org.eclipse.wst.common.modulecore.ModuleCoreNature</projectnature>\n</projectnatures>\n", 3 );
 612  0
                 append( sb, "", 0 );
 613  
 
 614  0
                 append( sb, "skip (Default: false)", 2 );
 615  0
                 append( sb, "Skip the operation when true.", 3 );
 616  0
                 append( sb, "", 0 );
 617  
 
 618  0
                 append( sb, "spring", 2 );
 619  0
                 append( sb, "Spring configuration placeholder\n>\n\n<spring>\n<version>1.0/2.0</version>\n<file-pattern>applicationContext-*.xml</file-pattern>\n<basedir>src/main/resources</basedir>\n</spring>\n", 3 );
 620  0
                 append( sb, "", 0 );
 621  
 
 622  0
                 append( sb, "struts", 2 );
 623  0
                 append( sb, "Allow declaration of struts properties for MyEclipse\n>\n\n<struts>\n<version>1.2.9</version>\n<servlet-name>action</servlet-name>\n<pattern>*.do</pattern>\n<base-package>1.2.9</base-package>\n</struts>\n", 3 );
 624  0
                 append( sb, "", 0 );
 625  
 
 626  0
                 append( sb, "useProjectReferences (Default: true)", 2 );
 627  0
                 append( sb, "When set to false, the plugin will not create sub-projects and instead reference those sub-projects using the installed package in the local repository", 3 );
 628  0
                 append( sb, "", 0 );
 629  
 
 630  0
                 append( sb, "workspace", 2 );
 631  0
                 append( sb, "This eclipse workspace is read and all artifacts detected there will be connected as eclipse projects and will not be linked to the jars in the local repository. Requirement is that it was created with the similar wtp settings as the reactor projects, but the project name template my differ. The pom\'s in the workspace projects may not contain variables in the artefactId, groupId and version tags. If workspace is not defined, then an attempt to locate it by checking up the directory hierarchy will be made.", 3 );
 632  0
                 append( sb, "", 0 );
 633  
 
 634  0
                 append( sb, "wtpContextName", 2 );
 635  0
                 append( sb, "JEE context name of the WTP module. ( ex. WEB context name ).", 3 );
 636  0
                 append( sb, "", 0 );
 637  
 
 638  0
                 append( sb, "wtpapplicationxml (Default: false)", 2 );
 639  0
                 append( sb, "Must the application files be written for ear projects in a separate directory.", 3 );
 640  0
                 append( sb, "", 0 );
 641  
 
 642  0
                 append( sb, "wtpdefaultserver", 2 );
 643  0
                 append( sb, "What WTP defined server to use for deployment informations.", 3 );
 644  0
                 append( sb, "", 0 );
 645  
 
 646  0
                 append( sb, "wtpmanifest (Default: false)", 2 );
 647  0
                 append( sb, "Must the manifest files be written for java projects so that that the jee classpath for wtp is correct.", 3 );
 648  0
                 append( sb, "", 0 );
 649  
 
 650  0
                 append( sb, "wtpversion (Default: none)", 2 );
 651  0
                 append( sb, "The version of WTP for which configuration files will be generated. The default value is \'none\' (don\'t generate WTP configuration), supported versions are \'R7\', \'1.0\', and \'1.5\'", 3 );
 652  0
                 append( sb, "", 0 );
 653  
             }
 654  
         }
 655  
 
 656  0
         if ( goal == null || goal.length() <= 0 || "myeclipse-clean".equals( goal ) )
 657  
         {
 658  0
             append( sb, "eclipse:myeclipse-clean", 0 );
 659  0
             append( sb, "Deletes configuration files used by MyEclipse", 1 );
 660  0
             append( sb, "", 0 );
 661  0
             if ( detail )
 662  
             {
 663  0
                 append( sb, "Available parameters:", 1 );
 664  0
                 append( sb, "", 0 );
 665  
 
 666  0
                 append( sb, "additionalConfig", 2 );
 667  0
                 append( sb, "additional generic configuration files for eclipse", 3 );
 668  0
                 append( sb, "", 0 );
 669  
 
 670  0
                 append( sb, "basedir", 2 );
 671  0
                 append( sb, "The root directory of the project", 3 );
 672  0
                 append( sb, "", 0 );
 673  
 
 674  0
                 append( sb, "packaging", 2 );
 675  0
                 append( sb, "Packaging for the current project.", 3 );
 676  0
                 append( sb, "", 0 );
 677  
 
 678  0
                 append( sb, "skip (Default: false)", 2 );
 679  0
                 append( sb, "Skip the operation when true.", 3 );
 680  0
                 append( sb, "", 0 );
 681  
             }
 682  
         }
 683  
 
 684  0
         if ( goal == null || goal.length() <= 0 || "rad".equals( goal ) )
 685  
         {
 686  0
             append( sb, "eclipse:rad", 0 );
 687  0
             append( sb, "Generates the rad-6 configuration files.", 1 );
 688  0
             append( sb, "", 0 );
 689  0
             if ( detail )
 690  
             {
 691  0
                 append( sb, "Available parameters:", 1 );
 692  0
                 append( sb, "", 0 );
 693  
 
 694  0
                 append( sb, "addGroupIdToProjectName (Default: false)", 2 );
 695  0
                 append( sb, "If set to true, the groupId of the artifact is appended to the name of the generated Eclipse project. See projectNameTemplate for other options.", 3 );
 696  0
                 append( sb, "", 0 );
 697  
 
 698  0
                 append( sb, "addVersionToProjectName (Default: false)", 2 );
 699  0
                 append( sb, "If set to true, the version number of the artifact is appended to the name of the generated Eclipse project. See projectNameTemplate for other options.", 3 );
 700  0
                 append( sb, "", 0 );
 701  
 
 702  0
                 append( sb, "additionalBuildcommands", 2 );
 703  0
                 append( sb, "List of eclipse build commands to be added to the default ones. Old style:\n<additionalBuildcommands>\n<buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>\n</additionalBuildcommands>\nNew style:\n<additionalBuildcommands>\n<buildCommand>\n<name>org.ui.externaltools.ExternalToolBuilder</name>\n<triggers>auto,full,incremental,</triggers>\n<arguments>\n<LaunchConfigHandle>&lt;project&gt;./externalToolBuilders/MavenBuilder.launch</LaunchConfighandle>\n</arguments>\n</buildCommand>\n</additionalBuildcommands>\nNote the difference between buildcommand and buildCommand. You can mix and match old and new-style configuration entries.", 3 );
 704  0
                 append( sb, "", 0 );
 705  
 
 706  0
                 append( sb, "additionalConfig", 2 );
 707  0
                 append( sb, "Allow to configure additional generic configuration files for eclipse that will be written out to disk when running eclipse:eclipse. FOr each file you can specify the name and the text content.\n<plugin>\n<groupId>org.apache.maven.plugins</groupId>\n<artifactId>maven-eclipse-plugin</artifactId>\n<configuration>\n<additionalConfig>\n<file>\n<name>.checkstyle</name>\n<content>\n<![CDATA[<fileset-config\u00a0file-format-version=\'1.2.0\'\u00a0simple-config=\'true\'>\n<fileset\u00a0name=\'all\'\u00a0enabled=\'true\'\u00a0check-config-name=\'acme\u00a0corporate\u00a0style\'\u00a0local=\'false\'>\n<file-match-pattern\u00a0match-pattern=\'.\'\u00a0include-pattern=\'true\'/>\n</fileset>\n<filter\u00a0name=\'NonSrcDirs\'\u00a0enabled=\'true\'/>\n</fileset-config>]]>\n</content>\n</file>\n</additionalConfig>\n</configuration>\n</plugin>\nInstead of the content you can also define (from version 2.5) an url to download the file :\n<plugin>\n<groupId>org.apache.maven.plugins</groupId>\n<artifactId>maven-eclipse-plugin</artifactId>\n<configuration>\n<additionalConfig>\n<file>\n<name>.checkstyle</name>\n<url>http://some.place.org/path/to/file</url>\n</file>\n</additionalConfig>\n</configuration>\nor a location :\n<plugin>\n<groupId>org.apache.maven.plugins</groupId>\n<artifactId>maven-eclipse-plugin</artifactId>\n<configuration>\n<additionalConfig>\n<file>\n<name>.checkstyle</name>\n<location>/checkstyle-config.xml</location>\n</file>\n</additionalConfig>\n</configuration>\n<dependencies>\n<!--\u00a0The\u00a0file\u00a0defined\u00a0in\u00a0the\u00a0location\u00a0is\u00a0stored\u00a0in\u00a0this\u00a0dependency\u00a0-->\n<dependency>\n<groupId>eclipsetest</groupId>\n<artifactId>checkstyle-config</artifactId>\n<version>1.0</version>\n</dependency>\n</dependencies>\n</plugin>\n", 3 );
 708  0
                 append( sb, "", 0 );
 709  
 
 710  0
                 append( sb, "additionalProjectFacets", 2 );
 711  0
                 append( sb, "List of eclipse project facets to be added to the default ones.\n<additionalProjectFacets>\n<jst.jsf>1.1<jst.jsf/>\n</additionalProjectFacets>\n", 3 );
 712  0
                 append( sb, "", 0 );
 713  
 
 714  0
                 append( sb, "additionalProjectnatures", 2 );
 715  0
                 append( sb, "List of eclipse project natures to be added to the default ones.\n<additionalProjectnatures>\n<projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>\n</additionalProjectnatures>\n", 3 );
 716  0
                 append( sb, "", 0 );
 717  
 
 718  0
                 append( sb, "ajdtVersion (Default: 1.5)", 2 );
 719  0
                 append( sb, "The version of AJDT for which configuration files will be generated. The default value is \'1.5\', supported versions are \'none\', \'1.4\', and \'1.5\'.", 3 );
 720  0
                 append( sb, "", 0 );
 721  
 
 722  0
                 append( sb, "buildOutputDirectory (Default: ${project.build.outputDirectory})", 2 );
 723  0
                 append( sb, "The default output directory", 3 );
 724  0
                 append( sb, "", 0 );
 725  
 
 726  0
                 append( sb, "buildcommands", 2 );
 727  0
                 append( sb, "List of eclipse build commands. By default the org.eclipse.jdt.core.javabuilder builder plus the needed WTP builders are added. If you specify any configuration for this parameter, only those buildcommands specified will be used; the defaults won\'t be added. Use the additionalBuildCommands parameter for that. Configuration example: Old style:\n<buildcommands>\n<buildcommand>org.eclipse.wst.common.modulecore.ComponentStructuralBuilder</buildcommand>\n<buildcommand>org.eclipse.jdt.core.javabuilder</buildcommand>\n<buildcommand>org.eclipse.wst.common.modulecore.ComponentStructuralBuilderDependencyResolver</buildcommand>\n</buildcommands>\nFor new style, see additionalBuildCommands.", 3 );
 728  0
                 append( sb, "", 0 );
 729  
 
 730  0
                 append( sb, "classpathContainers", 2 );
 731  0
                 append( sb, "List of container classpath entries. By default the org.eclipse.jdt.launching.JRE_CONTAINER classpath container is added. Configuration example:\n<classpathContainers>\n<classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</classpathContainer>\n<classpathContainer>org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache\u00a0Tomcat\u00a0v5.5</classpathContainer>\n<classpathContainer>org.eclipse.jst.j2ee.internal.web.container/artifact</classpathContainer>\n</classpathContainers>\n", 3 );
 732  0
                 append( sb, "", 0 );
 733  
 
 734  0
                 append( sb, "downloadJavadocs", 2 );
 735  0
                 append( sb, "Enables/disables the downloading of javadoc attachments. Defaults to false. When this flag is true remote repositories are checked for javadocs: in order to avoid repeated check for unavailable javadoc archives, a status cache is mantained. To reset this cache run mvn eclipse:remove-cache, or use the forceRecheck option.", 3 );
 736  0
                 append( sb, "", 0 );
 737  
 
 738  0
                 append( sb, "downloadSources", 2 );
 739  0
                 append( sb, "Enables/disables the downloading of source attachments. Defaults to false. When this flag is true remote repositories are checked for sources: in order to avoid repeated check for unavailable source archives, a status cache is mantained. To reset this cache run mvn eclipse:remove-cache, or use the forceRecheck option.", 3 );
 740  0
                 append( sb, "", 0 );
 741  
 
 742  0
                 append( sb, "eclipseDownloadSources", 2 );
 743  0
                 append( sb, "Deprecated. use downloadSources", 3 );
 744  0
                 append( sb, "", 0 );
 745  0
                 append( sb, "Enables/disables the downloading of source attachments. Defaults to false. DEPRECATED - use downloadSources", 3 );
 746  0
                 append( sb, "", 0 );
 747  
 
 748  0
                 append( sb, "eclipseProjectDir", 2 );
 749  0
                 append( sb, "Eclipse workspace directory.", 3 );
 750  0
                 append( sb, "", 0 );
 751  
 
 752  0
                 append( sb, "excludes", 2 );
 753  0
                 append( sb, "List of artifact to exclude from eclipse classpath, beeing provided by some eclipse classPathContainer [MECLIPSE-79]", 3 );
 754  0
                 append( sb, "", 0 );
 755  
 
 756  0
                 append( sb, "forceRecheck", 2 );
 757  0
                 append( sb, "Enables/disables the rechecking of the remote repository for downloading source/javadoc attachments. Defaults to false. When this flag is true and the source or javadoc attachment has a status cache to indicate that it is not available, then the remote repository will be rechecked for a source or javadoc attachment and the status cache updated to reflect the new state.", 3 );
 758  0
                 append( sb, "", 0 );
 759  
 
 760  0
                 append( sb, "generatedResourceDirName (Default: target/generated-resources/rad6)", 2 );
 761  0
                 append( sb, "Use this to specify a different generated resources folder than target/generated-resources/rad6. Set to \'none\' to skip this folder generation.", 3 );
 762  0
                 append( sb, "", 0 );
 763  
 
 764  0
                 append( sb, "limitProjectReferencesToWorkspace (Default: false)", 2 );
 765  0
                 append( sb, "Limit the use of project references to the current workspace. No project references will be created to projects in the reactor when they are not available in the workspace.", 3 );
 766  0
                 append( sb, "", 0 );
 767  
 
 768  0
                 append( sb, "manifest (Default: ${basedir}/META-INF/MANIFEST.MF)", 2 );
 769  0
                 append( sb, "The relative path of the manifest file", 3 );
 770  0
                 append( sb, "", 0 );
 771  
 
 772  0
                 append( sb, "packaging", 2 );
 773  0
                 append( sb, "The project packaging.", 3 );
 774  0
                 append( sb, "", 0 );
 775  
 
 776  0
                 append( sb, "pde (Default: false)", 2 );
 777  0
                 append( sb, "Is it an PDE project? If yes, the plugin adds the necessary natures and build commands to the .project file. Additionally it copies all libraries to a project local directory and references them instead of referencing the files in the local Maven repository. It also ensured that the \'Bundle-Classpath\' in META-INF/MANIFEST.MF is synchronized.", 3 );
 778  0
                 append( sb, "", 0 );
 779  
 
 780  0
                 append( sb, "projectNameTemplate", 2 );
 781  0
                 append( sb, "Allows configuring the name of the eclipse projects. This property if set wins over addVersionToProjectName and addGroupIdToProjectName You can use [groupId], [artifactId] and [version] variables. eg. [groupId].[artifactId]-[version]", 3 );
 782  0
                 append( sb, "", 0 );
 783  
 
 784  0
                 append( sb, "projectnatures", 2 );
 785  0
                 append( sb, "List of eclipse project natures. By default the org.eclipse.jdt.core.javanature nature plus the needed WTP natures are added. Natures added using this property replace the default list.\n<projectnatures>\n<projectnature>org.eclipse.jdt.core.javanature</projectnature>\n<projectnature>org.eclipse.wst.common.modulecore.ModuleCoreNature</projectnature>\n</projectnatures>\n", 3 );
 786  0
                 append( sb, "", 0 );
 787  
 
 788  0
                 append( sb, "skip (Default: false)", 2 );
 789  0
                 append( sb, "Skip the operation when true.", 3 );
 790  0
                 append( sb, "", 0 );
 791  
 
 792  0
                 append( sb, "useProjectReferences (Default: true)", 2 );
 793  0
                 append( sb, "When set to false, the plugin will not create sub-projects and instead reference those sub-projects using the installed package in the local repository", 3 );
 794  0
                 append( sb, "", 0 );
 795  
 
 796  0
                 append( sb, "warContextRoot", 2 );
 797  0
                 append( sb, "The context root of the webapplication. This parameter is only used when the current project is a war project, else it will be ignored.", 3 );
 798  0
                 append( sb, "", 0 );
 799  
 
 800  0
                 append( sb, "workspace", 2 );
 801  0
                 append( sb, "This eclipse workspace is read and all artifacts detected there will be connected as eclipse projects and will not be linked to the jars in the local repository. Requirement is that it was created with the similar wtp settings as the reactor projects, but the project name template my differ. The pom\'s in the workspace projects may not contain variables in the artefactId, groupId and version tags. If workspace is not defined, then an attempt to locate it by checking up the directory hierarchy will be made.", 3 );
 802  0
                 append( sb, "", 0 );
 803  
 
 804  0
                 append( sb, "wtpContextName", 2 );
 805  0
                 append( sb, "JEE context name of the WTP module. ( ex. WEB context name ).", 3 );
 806  0
                 append( sb, "", 0 );
 807  
 
 808  0
                 append( sb, "wtpapplicationxml (Default: false)", 2 );
 809  0
                 append( sb, "Must the application files be written for ear projects in a separate directory.", 3 );
 810  0
                 append( sb, "", 0 );
 811  
 
 812  0
                 append( sb, "wtpdefaultserver", 2 );
 813  0
                 append( sb, "What WTP defined server to use for deployment informations.", 3 );
 814  0
                 append( sb, "", 0 );
 815  
 
 816  0
                 append( sb, "wtpmanifest (Default: false)", 2 );
 817  0
                 append( sb, "Must the manifest files be written for java projects so that that the jee classpath for wtp is correct.", 3 );
 818  0
                 append( sb, "", 0 );
 819  
 
 820  0
                 append( sb, "wtpversion (Default: none)", 2 );
 821  0
                 append( sb, "The version of WTP for which configuration files will be generated. The default value is \'none\' (don\'t generate WTP configuration), supported versions are \'R7\', \'1.0\', and \'1.5\'", 3 );
 822  0
                 append( sb, "", 0 );
 823  
             }
 824  
         }
 825  
 
 826  0
         if ( goal == null || goal.length() <= 0 || "rad-clean".equals( goal ) )
 827  
         {
 828  0
             append( sb, "eclipse:rad-clean", 0 );
 829  0
             append( sb, "Deletes the config files used by Rad-6. the files .j2ee and the file .websettings", 1 );
 830  0
             append( sb, "", 0 );
 831  0
             if ( detail )
 832  
             {
 833  0
                 append( sb, "Available parameters:", 1 );
 834  0
                 append( sb, "", 0 );
 835  
 
 836  0
                 append( sb, "additionalConfig", 2 );
 837  0
                 append( sb, "additional generic configuration files for eclipse", 3 );
 838  0
                 append( sb, "", 0 );
 839  
 
 840  0
                 append( sb, "basedir", 2 );
 841  0
                 append( sb, "The root directory of the project", 3 );
 842  0
                 append( sb, "", 0 );
 843  
 
 844  0
                 append( sb, "packaging", 2 );
 845  0
                 append( sb, "Packaging for the current project.", 3 );
 846  0
                 append( sb, "", 0 );
 847  
 
 848  0
                 append( sb, "skip (Default: false)", 2 );
 849  0
                 append( sb, "Skip the operation when true.", 3 );
 850  0
                 append( sb, "", 0 );
 851  
             }
 852  
         }
 853  
 
 854  0
         if ( goal == null || goal.length() <= 0 || "remove-cache".equals( goal ) )
 855  
         {
 856  0
             append( sb, "eclipse:remove-cache", 0 );
 857  0
             append( sb, "Removes the not-available marker files from the repository.", 1 );
 858  0
             append( sb, "", 0 );
 859  0
             if ( detail )
 860  
             {
 861  0
                 append( sb, "Available parameters:", 1 );
 862  0
                 append( sb, "", 0 );
 863  
             }
 864  
         }
 865  
 
 866  0
         if ( goal == null || goal.length() <= 0 || "to-maven".equals( goal ) )
 867  
         {
 868  0
             append( sb, "eclipse:to-maven", 0 );
 869  0
             append( sb, "Add eclipse artifacts from an eclipse installation to the local repo. This mojo automatically analize the eclipse directory, copy plugins jars to the local maven repo, and generates appropriate poms. This is the official central repository builder for Eclipse plugins, so it has the necessary default values. For customized repositories see MakeArtifactsMojo Typical usage: mvn eclipse:to-maven -DdeployTo=maven.org::default::scpexe://repo1.maven.org/home/maven/repository-staging/to-ibiblio/eclipse-staging -DeclipseDir=.", 1 );
 870  0
             append( sb, "", 0 );
 871  0
             if ( detail )
 872  
             {
 873  0
                 append( sb, "Available parameters:", 1 );
 874  0
                 append( sb, "", 0 );
 875  
 
 876  0
                 append( sb, "deployTo", 2 );
 877  0
                 append( sb, "Specifies a remote repository to which generated artifacts should be deployed to. If this property is specified, artifacts are also deployed to the remote repo. The format for this parameter is id::layout::url", 3 );
 878  0
                 append( sb, "", 0 );
 879  
 
 880  0
                 append( sb, "eclipseDir", 2 );
 881  0
                 append( sb, "Eclipse installation dir. If not set, a value for this parameter will be asked on the command line.", 3 );
 882  0
                 append( sb, "", 0 );
 883  
 
 884  0
                 append( sb, "stripQualifier (Default: false)", 2 );
 885  0
                 append( sb, "Strip qualifier (fourth token) from the plugin version. Qualifiers are for eclipse plugin the equivalent of timestamped snapshot versions for Maven, but the date is maintained also for released version (e.g. a jar for the release 3.2 can be named org.eclipse.core.filesystem_1.0.0.v20060603.jar. It\'s usually handy to not to include this qualifier when generating maven artifacts for major releases, while it\'s needed when working with eclipse integration/nightly builds.", 3 );
 886  0
                 append( sb, "", 0 );
 887  
             }
 888  
         }
 889  
 
 890  0
         if ( getLog().isInfoEnabled() )
 891  
         {
 892  0
             getLog().info( sb.toString() );
 893  
         }
 894  0
     }
 895  
 
 896  
     /**
 897  
      * <p>Repeat a String <code>n</code> times to form a new string.</p>
 898  
      *
 899  
      * @param str String to repeat
 900  
      * @param repeat number of times to repeat str
 901  
      * @return String with repeated String
 902  
      * @throws NegativeArraySizeException if <code>repeat < 0</code>
 903  
      * @throws NullPointerException if str is <code>null</code>
 904  
      */
 905  
     private static String repeat( String str, int repeat )
 906  
     {
 907  0
         StringBuffer buffer = new StringBuffer( repeat * str.length() );
 908  
 
 909  0
         for ( int i = 0; i < repeat; i++ )
 910  
         {
 911  0
             buffer.append( str );
 912  
         }
 913  
 
 914  0
         return buffer.toString();
 915  
     }
 916  
 
 917  
     /** 
 918  
      * Append a description to the buffer by respecting the indentSize and lineLength parameters.
 919  
      * <b>Note</b>: The last character is always a new line.
 920  
      * 
 921  
      * @param sb The buffer to append the description, not <code>null</code>.
 922  
      * @param description The description, not <code>null</code>.
 923  
      * @param indent The base indentation level of each line, must not be negative.
 924  
      */
 925  
     private void append( StringBuffer sb, String description, int indent )
 926  
     {
 927  0
         for ( Iterator it = toLines( description, indent, indentSize, lineLength ).iterator(); it.hasNext(); )
 928  
         {
 929  0
             sb.append( it.next().toString() ).append( '\n' );
 930  
         }
 931  0
     }
 932  
 
 933  
     /** 
 934  
      * Splits the specified text into lines of convenient display length.
 935  
      * 
 936  
      * @param text The text to split into lines, must not be <code>null</code>.
 937  
      * @param indent The base indentation level of each line, must not be negative.
 938  
      * @param indentSize The size of each indentation, must not be negative.
 939  
      * @param lineLength The length of the line, must not be negative.
 940  
      * @return The sequence of display lines, never <code>null</code>.
 941  
      * @throws NegativeArraySizeException if <code>indent < 0</code>
 942  
      */
 943  
     private static List toLines( String text, int indent, int indentSize, int lineLength )
 944  
     {
 945  0
         List lines = new ArrayList();
 946  
 
 947  0
         String ind = repeat( "\t", indent );
 948  0
         String[] plainLines = text.split( "(\r\n)|(\r)|(\n)" );
 949  0
         for ( int i = 0; i < plainLines.length; i++ )
 950  
         {
 951  0
             toLines( lines, ind + plainLines[i], indentSize, lineLength );
 952  
         }
 953  
 
 954  0
         return lines;
 955  
     }
 956  
 
 957  
     /** 
 958  
      * Adds the specified line to the output sequence, performing line wrapping if necessary.
 959  
      * 
 960  
      * @param lines The sequence of display lines, must not be <code>null</code>.
 961  
      * @param line The line to add, must not be <code>null</code>.
 962  
      * @param indentSize The size of each indentation, must not be negative.
 963  
      * @param lineLength The length of the line, must not be negative.
 964  
      */
 965  
     private static void toLines( List lines, String line, int indentSize, int lineLength )
 966  
     {
 967  0
         int lineIndent = getIndentLevel( line );
 968  0
         StringBuffer buf = new StringBuffer( 256 );
 969  0
         String[] tokens = line.split( " +" );
 970  0
         for ( int i = 0; i < tokens.length; i++ )
 971  
         {
 972  0
             String token = tokens[i];
 973  0
             if ( i > 0 )
 974  
             {
 975  0
                 if ( buf.length() + token.length() >= lineLength )
 976  
                 {
 977  0
                     lines.add( buf.toString() );
 978  0
                     buf.setLength( 0 );
 979  0
                     buf.append( repeat( " ", lineIndent * indentSize ) );
 980  
                 }
 981  
                 else
 982  
                 {
 983  0
                     buf.append( ' ' );
 984  
                 }
 985  
             }
 986  0
             for ( int j = 0; j < token.length(); j++ )
 987  
             {
 988  0
                 char c = token.charAt( j );
 989  0
                 if ( c == '\t' )
 990  
                 {
 991  0
                     buf.append( repeat( " ", indentSize - buf.length() % indentSize ) );
 992  
                 }
 993  0
                 else if ( c == '\u00A0' )
 994  
                 {
 995  0
                     buf.append( ' ' );
 996  
                 }
 997  
                 else
 998  
                 {
 999  0
                     buf.append( c );
 1000  
                 }
 1001  
             }
 1002  
         }
 1003  0
         lines.add( buf.toString() );
 1004  0
     }
 1005  
 
 1006  
     /** 
 1007  
      * Gets the indentation level of the specified line.
 1008  
      * 
 1009  
      * @param line The line whose indentation level should be retrieved, must not be <code>null</code>.
 1010  
      * @return The indentation level of the line.
 1011  
      */
 1012  
     private static int getIndentLevel( String line )
 1013  
     {
 1014  0
         int level = 0;
 1015  0
         for ( int i = 0; i < line.length() && line.charAt( i ) == '\t'; i++ )
 1016  
         {
 1017  0
             level++;
 1018  
         }
 1019  0
         for ( int i = level + 1; i <= level + 4 && i < line.length(); i++ )
 1020  
         {
 1021  0
             if ( line.charAt( i ) == '\t' )
 1022  
             {
 1023  0
                 level++;
 1024  0
                 break;
 1025  
             }
 1026  
         }
 1027  0
         return level;
 1028  
     }
 1029  
 }