[MPLUGIN-201] added "User Property" to the parameter description report to clearly show the property that can be used to override default value of a parameter

git-svn-id: https://svn.apache.org/repos/asf/maven/plugin-tools/trunk@1340805 13f79535-47bb-0310-9956-ffa450edef68
master
Herve Boutemy 2012-05-20 19:16:01 +00:00
parent 1b2f9288b2
commit eada36d538
3 changed files with 37 additions and 8 deletions

View File

@ -462,7 +462,8 @@ public class PluginXdocGenerator
*/ */
private void writeGoalParameterTable( MojoDescriptor mojoDescriptor, XMLWriter w ) private void writeGoalParameterTable( MojoDescriptor mojoDescriptor, XMLWriter w )
{ {
@SuppressWarnings( "unchecked" ) List<Parameter> parameterList = mojoDescriptor.getParameters(); @SuppressWarnings( "unchecked" )
List<Parameter> parameterList = mojoDescriptor.getParameters();
//remove components and read-only parameters //remove components and read-only parameters
List<Parameter> list = filterParameters( parameterList ); List<Parameter> list = filterParameters( parameterList );
@ -608,16 +609,14 @@ public class PluginXdocGenerator
addedUl = true; addedUl = true;
} }
String expression = parameter.getExpression(); String expression = parameter.getExpression();
if ( StringUtils.isNotEmpty( expression ) && expression.startsWith( "${" ) && expression.endsWith( "}" ) String property = getPropertyFromExpression( expression );
&& !expression.substring( 2 ).contains( "${" ) ) if ( property == null )
{ {
// expression="${xxx}" -> property="xxx" writeDetail( getString( "pluginxdoc.mojodescriptor.parameter.expression" ), expression, w );
String property = expression.substring( 2, expression.length() - 1 );
writeDetail( getString( "pluginxdoc.mojodescriptor.parameter.property" ), property, w );
} }
else else
{ {
writeDetail( getString( "pluginxdoc.mojodescriptor.parameter.expression" ), parameter.getExpression(), w ); writeDetail( getString( "pluginxdoc.mojodescriptor.parameter.property" ), property, w );
} }
if ( !addedUl && StringUtils.isNotEmpty( parameter.getDefaultValue() ) ) if ( !addedUl && StringUtils.isNotEmpty( parameter.getDefaultValue() ) )
@ -642,6 +641,18 @@ public class PluginXdocGenerator
w.endElement(); w.endElement();
} }
private String getPropertyFromExpression( String expression )
{
if ( StringUtils.isNotEmpty( expression ) && expression.startsWith( "${" ) && expression.endsWith( "}" )
&& !expression.substring( 2 ).contains( "${" ) )
{
// expression="${xxx}" -> property="xxx"
return expression.substring( 2, expression.length() - 1 );
}
// no property can be extracted
return null;
}
/** /**
* @param param not null * @param param not null
* @param value could be null * @param value could be null
@ -712,13 +723,19 @@ public class PluginXdocGenerator
for ( Parameter parameter : parameterList ) for ( Parameter parameter : parameterList )
{ {
w.startElement( "tr" ); w.startElement( "tr" );
// name
w.startElement( "td" ); w.startElement( "td" );
w.writeMarkup( format( "pluginxdoc.mojodescriptor.parameter.name_link", parameter.getName() ) ); w.writeMarkup( format( "pluginxdoc.mojodescriptor.parameter.name_link", parameter.getName() ) );
w.endElement(); //td w.endElement(); //td
//type
w.startElement( "td" ); w.startElement( "td" );
int index = parameter.getType().lastIndexOf( "." ); int index = parameter.getType().lastIndexOf( "." );
w.writeMarkup( "<code>" + parameter.getType().substring( index + 1 ) + "</code>" ); w.writeMarkup( "<code>" + parameter.getType().substring( index + 1 ) + "</code>" );
w.endElement(); //td w.endElement(); //td
// since
w.startElement( "td" ); w.startElement( "td" );
if ( StringUtils.isNotEmpty( parameter.getSince() ) ) if ( StringUtils.isNotEmpty( parameter.getSince() ) )
{ {
@ -736,6 +753,8 @@ public class PluginXdocGenerator
} }
} }
w.endElement(); //td w.endElement(); //td
// description
w.startElement( "td" ); w.startElement( "td" );
String description; String description;
if ( StringUtils.isNotEmpty( parameter.getDeprecated() ) ) if ( StringUtils.isNotEmpty( parameter.getDeprecated() ) )
@ -757,7 +776,15 @@ public class PluginXdocGenerator
{ {
w.writeMarkup( format( "pluginxdoc.mojodescriptor.parameter.defaultValue", w.writeMarkup( format( "pluginxdoc.mojodescriptor.parameter.defaultValue",
escapeXml( parameter.getDefaultValue() ) ) ); escapeXml( parameter.getDefaultValue() ) ) );
w.writeMarkup( "<br/>" );
} }
String property = getPropertyFromExpression( parameter.getExpression() );
if ( property != null )
{
w.writeMarkup( format( "pluginxdoc.mojodescriptor.parameter.property.description", property ) );
}
w.endElement(); //td w.endElement(); //td
w.endElement(); //tr w.endElement(); //tr
} }

View File

@ -50,6 +50,7 @@ pluginxdoc.mojodescriptor.parameter.since=Since
pluginxdoc.mojodescriptor.parameter.required=Required pluginxdoc.mojodescriptor.parameter.required=Required
pluginxdoc.mojodescriptor.parameter.expression=Expression pluginxdoc.mojodescriptor.parameter.expression=Expression
pluginxdoc.mojodescriptor.parameter.property=User Property pluginxdoc.mojodescriptor.parameter.property=User Property
pluginxdoc.mojodescriptor.parameter.property.description=<strong>User property is</strong>: <code>{0}</code>.
pluginxdoc.mojodescriptor.parameter.default=Default pluginxdoc.mojodescriptor.parameter.default=Default
pluginxdoc.mojodescriptor.parameter.defaultValue=<strong>Default value is</strong>: <code>{0}</code>. pluginxdoc.mojodescriptor.parameter.defaultValue=<strong>Default value is</strong>: <code>{0}</code>.
pluginxdoc.mojodescriptor.requiredParameters=Required Parameters pluginxdoc.mojodescriptor.requiredParameters=Required Parameters

View File

@ -49,8 +49,9 @@ pluginxdoc.mojodescriptor.parameter.since=Depuis
pluginxdoc.mojodescriptor.parameter.required=Exig\u00e9 pluginxdoc.mojodescriptor.parameter.required=Exig\u00e9
pluginxdoc.mojodescriptor.parameter.expression=Expression pluginxdoc.mojodescriptor.parameter.expression=Expression
pluginxdoc.mojodescriptor.parameter.property=Propri\u00e9t\u00e9 utilisateur pluginxdoc.mojodescriptor.parameter.property=Propri\u00e9t\u00e9 utilisateur
pluginxdoc.mojodescriptor.parameter.property.description=<strong>Propri\u00e9t\u00e9 utilisateur</strong> : <code>{0}</code>.
pluginxdoc.mojodescriptor.parameter.default=D\u00e9faut pluginxdoc.mojodescriptor.parameter.default=D\u00e9faut
pluginxdoc.mojodescriptor.parameter.defaultValue=<strong>Valeur par d\u00e9faut est</strong> : <code>{0}</code>. pluginxdoc.mojodescriptor.parameter.defaultValue=<strong>Valeur par d\u00e9faut</strong> : <code>{0}</code>.
pluginxdoc.mojodescriptor.requiredParameters=Param\u00e8tres requis pluginxdoc.mojodescriptor.requiredParameters=Param\u00e8tres requis
pluginxdoc.mojodescriptor.optionalParameters=Param\u00e8tres optionnels pluginxdoc.mojodescriptor.optionalParameters=Param\u00e8tres optionnels
pluginxdoc.mojodescriptor.parameters=Param\u00e8tres pluginxdoc.mojodescriptor.parameters=Param\u00e8tres