rewrote the exact algorithm from previous version for help output

git-svn-id: https://svn.apache.org/repos/asf/maven/plugin-tools/trunk@1343067 13f79535-47bb-0310-9956-ffa450edef68
master
Herve Boutemy 2012-05-27 17:14:25 +00:00
parent df7c13e0b3
commit dcd8debb6d
1 changed files with 55 additions and 31 deletions

View File

@ -5,6 +5,7 @@ package ${helpPackageName};
import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoExecutionException;
import org.codehaus.plexus.util.ReaderFactory; import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.xml.Xpp3Dom; import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.codehaus.plexus.util.xml.Xpp3DomBuilder; import org.codehaus.plexus.util.xml.Xpp3DomBuilder;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
@ -89,7 +90,6 @@ public class HelpMojo
private Xpp3Dom build() private Xpp3Dom build()
throws MojoExecutionException throws MojoExecutionException
{ {
// olamy more than one pluginDescriptor in the classloader possible ?
getLog().debug( "load plugin-help.xml: " + PLUGIN_HELP_PATH ); getLog().debug( "load plugin-help.xml: " + PLUGIN_HELP_PATH );
InputStream is = getClass().getResourceAsStream( PLUGIN_HELP_PATH ); InputStream is = getClass().getResourceAsStream( PLUGIN_HELP_PATH );
try try
@ -126,22 +126,25 @@ public class HelpMojo
Xpp3Dom pluginElement = build(); Xpp3Dom pluginElement = build();
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
/** String name = pluginElement.getChild( "name" ).getValue();
* <groupId>org.apache.maven.plugins</groupId> String version = pluginElement.getChild( "version" ).getValue();
* <artifactId>maven-plugin-plugin</artifactId> String id = pluginElement.getChild( "groupId" ).getValue() + ":" + pluginElement.getChild( "artifactId" ).getValue()
* <version>3.0-SNAPSHOT</version> + ":" + version;
*/ if ( StringUtils.isNotEmpty( name ) && !name.contains( id ) )
//append( sb, "org.apache.maven.plugins:maven-plugin-plugin:3.0-SNAPSHOT", 0 ); {
append( sb, append( sb, name + " " + version, 0 );
pluginElement.getChild( "groupId" ).getValue() + ":" + pluginElement.getChild( "artifactId" ).getValue() }
+ ":" + pluginElement.getChild( "version" ).getValue(), 0 ); else
append( sb, "", 0 ); {
if ( StringUtils.isNotEmpty( name ) )
//append( sb, "Maven Plugin Plugin", 0 ); {
append( sb, pluginElement.getChild( "name" ).getValue(), 0 ); append( sb, name, 0 );
//append( sb, }
// "The Plugin Plugin is used to create a Maven plugin descriptor for any Mojo\'s found in the source tree, to include in the JAR. It is also used to generate Xdoc files for the Mojos as well as for updating the plugin registry, the artifact metadata and a generic help goal.", else
// 1 ); {
append( sb, id, 0 );
}
}
append( sb, pluginElement.getChild( "description" ).getValue(), 1 ); append( sb, pluginElement.getChild( "description" ).getValue(), 1 );
append( sb, "", 0 ); append( sb, "", 0 );
@ -152,7 +155,7 @@ public class HelpMojo
if ( goal == null || goal.length() <= 0 ) if ( goal == null || goal.length() <= 0 )
{ {
append( sb, "This plugin has " + mojos.length + " goals:", 0 ); append( sb, "This plugin has " + mojos.length + ( mojos.length > 1 ? " goals:" : " goal:" ) , 0 );
append( sb, "", 0 ); append( sb, "", 0 );
} }
@ -175,7 +178,20 @@ public class HelpMojo
if ( goal == null || goal.length() <= 0 || mojoGoal.equals( goal ) ) if ( goal == null || goal.length() <= 0 || mojoGoal.equals( goal ) )
{ {
append( sb, goalPrefix + ":" + mojoGoal, 0 ); append( sb, goalPrefix + ":" + mojoGoal, 0 );
append( sb, mojo.getChild( "description" ).getValue(), 1 ); Xpp3Dom deprecated = mojo.getChild( "deprecated" );
if ( ( deprecated != null ) && StringUtils.isNotEmpty( deprecated.getValue() ) )
{
append( sb, "Deprecated. " + deprecated, 1 );
if ( detail )
{
append( sb, "", 0 );
append( sb, mojo.getChild( "description" ).getValue(), 1 );
}
}
else
{
append( sb, mojo.getChild( "description" ).getValue(), 1 );
}
append( sb, "", 0 ); append( sb, "", 0 );
if ( detail ) if ( detail )
@ -184,10 +200,6 @@ public class HelpMojo
append( sb, "Available parameters:", 1 ); append( sb, "Available parameters:", 1 );
append( sb, "", 0 ); append( sb, "", 0 );
append( sb, "goalPrefix", 2 );
append( sb, "The prefix for the plugin goal.", 3 );
append( sb, "", 0 );
for ( Xpp3Dom parameter : parameters ) for ( Xpp3Dom parameter : parameters )
{ {
writeParameter( sb, parameter, configurationElement ); writeParameter( sb, parameter, configurationElement );
@ -198,20 +210,32 @@ public class HelpMojo
private void writeParameter( StringBuilder sb, Xpp3Dom parameter, Xpp3Dom configurationElement ) private void writeParameter( StringBuilder sb, Xpp3Dom parameter, Xpp3Dom configurationElement )
{ {
String name = parameter.getChild( "name" ).getValue(); String parameterName = parameter.getChild( "name" ).getValue();
String parameterDescription = parameter.getChild( "description" ).getValue();
Xpp3Dom fieldConfigurationElement = configurationElement.getChild( name ); Xpp3Dom fieldConfigurationElement = configurationElement.getChild( parameterName );
String parameterDefaultValue = "";
if ( fieldConfigurationElement != null && fieldConfigurationElement.getValue() != null ) if ( fieldConfigurationElement != null && fieldConfigurationElement.getValue() != null )
{ {
append( sb, name + " (default: " + configurationElement.getChild( name ).getAttribute( "default-value" ) + ")", 2 ); parameterDefaultValue = " (Default: " + fieldConfigurationElement.getAttribute( "default-value" ) + ")";
} }
append( sb, parameterName + parameterDefaultValue, 2 );
append( sb, parameter.getChild( "description" ).getValue(), 3 ); Xpp3Dom deprecated = parameter.getChild( "deprecated" );
if ( ( deprecated != null ) && StringUtils.isNotEmpty( deprecated.getValue() ) )
if ( fieldConfigurationElement != null && fieldConfigurationElement.getValue() != null )
{ {
append( sb, fieldConfigurationElement.getValue(), 3 ); append( sb, "Deprecated. " + deprecated.getValue(), 3 );
append( sb, "", 0 );
}
append( sb, parameterDescription, 3 );
if ( "true".equals( parameter.getChild( "required" ).getValue() ) )
{
append( sb, "Required: Yes", 3 );
}
Xpp3Dom expression = parameter.getChild( "expression" );
if ( ( expression != null ) && StringUtils.isNotEmpty( expression.getValue() ) )
{
append( sb, "Expression: " + expression.getValue(), 3 );
} }
append( sb, "", 0 ); append( sb, "", 0 );