From eada36d538645e64f3b985e7414cc1ef64953805 Mon Sep 17 00:00:00 2001 From: Herve Boutemy Date: Sun, 20 May 2012 19:16:01 +0000 Subject: [PATCH] [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 --- .../plugin/generator/PluginXdocGenerator.java | 41 +++++++++++++++---- .../src/main/resources/pluginxdoc.properties | 1 + .../main/resources/pluginxdoc_fr.properties | 3 +- 3 files changed, 37 insertions(+), 8 deletions(-) diff --git a/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginXdocGenerator.java b/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginXdocGenerator.java index 1635dde..7e850bc 100644 --- a/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginXdocGenerator.java +++ b/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginXdocGenerator.java @@ -462,7 +462,8 @@ public class PluginXdocGenerator */ private void writeGoalParameterTable( MojoDescriptor mojoDescriptor, XMLWriter w ) { - @SuppressWarnings( "unchecked" ) List parameterList = mojoDescriptor.getParameters(); + @SuppressWarnings( "unchecked" ) + List parameterList = mojoDescriptor.getParameters(); //remove components and read-only parameters List list = filterParameters( parameterList ); @@ -608,16 +609,14 @@ public class PluginXdocGenerator addedUl = true; } String expression = parameter.getExpression(); - if ( StringUtils.isNotEmpty( expression ) && expression.startsWith( "${" ) && expression.endsWith( "}" ) - && !expression.substring( 2 ).contains( "${" ) ) + String property = getPropertyFromExpression( expression ); + if ( property == null ) { - // expression="${xxx}" -> property="xxx" - String property = expression.substring( 2, expression.length() - 1 ); - writeDetail( getString( "pluginxdoc.mojodescriptor.parameter.property" ), property, w ); + writeDetail( getString( "pluginxdoc.mojodescriptor.parameter.expression" ), expression, w ); } else { - writeDetail( getString( "pluginxdoc.mojodescriptor.parameter.expression" ), parameter.getExpression(), w ); + writeDetail( getString( "pluginxdoc.mojodescriptor.parameter.property" ), property, w ); } if ( !addedUl && StringUtils.isNotEmpty( parameter.getDefaultValue() ) ) @@ -642,6 +641,18 @@ public class PluginXdocGenerator 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 value could be null @@ -712,13 +723,19 @@ public class PluginXdocGenerator for ( Parameter parameter : parameterList ) { w.startElement( "tr" ); + + // name w.startElement( "td" ); w.writeMarkup( format( "pluginxdoc.mojodescriptor.parameter.name_link", parameter.getName() ) ); w.endElement(); //td + + //type w.startElement( "td" ); int index = parameter.getType().lastIndexOf( "." ); w.writeMarkup( "" + parameter.getType().substring( index + 1 ) + "" ); w.endElement(); //td + + // since w.startElement( "td" ); if ( StringUtils.isNotEmpty( parameter.getSince() ) ) { @@ -736,6 +753,8 @@ public class PluginXdocGenerator } } w.endElement(); //td + + // description w.startElement( "td" ); String description; if ( StringUtils.isNotEmpty( parameter.getDeprecated() ) ) @@ -757,7 +776,15 @@ public class PluginXdocGenerator { w.writeMarkup( format( "pluginxdoc.mojodescriptor.parameter.defaultValue", escapeXml( parameter.getDefaultValue() ) ) ); + w.writeMarkup( "
" ); } + + String property = getPropertyFromExpression( parameter.getExpression() ); + if ( property != null ) + { + w.writeMarkup( format( "pluginxdoc.mojodescriptor.parameter.property.description", property ) ); + } + w.endElement(); //td w.endElement(); //tr } diff --git a/maven-plugin-tools-generators/src/main/resources/pluginxdoc.properties b/maven-plugin-tools-generators/src/main/resources/pluginxdoc.properties index e496230..0c8de65 100644 --- a/maven-plugin-tools-generators/src/main/resources/pluginxdoc.properties +++ b/maven-plugin-tools-generators/src/main/resources/pluginxdoc.properties @@ -50,6 +50,7 @@ pluginxdoc.mojodescriptor.parameter.since=Since pluginxdoc.mojodescriptor.parameter.required=Required pluginxdoc.mojodescriptor.parameter.expression=Expression pluginxdoc.mojodescriptor.parameter.property=User Property +pluginxdoc.mojodescriptor.parameter.property.description=User property is: {0}. pluginxdoc.mojodescriptor.parameter.default=Default pluginxdoc.mojodescriptor.parameter.defaultValue=Default value is: {0}. pluginxdoc.mojodescriptor.requiredParameters=Required Parameters diff --git a/maven-plugin-tools-generators/src/main/resources/pluginxdoc_fr.properties b/maven-plugin-tools-generators/src/main/resources/pluginxdoc_fr.properties index d73482d..d7fc190 100644 --- a/maven-plugin-tools-generators/src/main/resources/pluginxdoc_fr.properties +++ b/maven-plugin-tools-generators/src/main/resources/pluginxdoc_fr.properties @@ -49,8 +49,9 @@ pluginxdoc.mojodescriptor.parameter.since=Depuis pluginxdoc.mojodescriptor.parameter.required=Exig\u00e9 pluginxdoc.mojodescriptor.parameter.expression=Expression pluginxdoc.mojodescriptor.parameter.property=Propri\u00e9t\u00e9 utilisateur +pluginxdoc.mojodescriptor.parameter.property.description=Propri\u00e9t\u00e9 utilisateur : {0}. pluginxdoc.mojodescriptor.parameter.default=D\u00e9faut -pluginxdoc.mojodescriptor.parameter.defaultValue=Valeur par d\u00e9faut est : {0}. +pluginxdoc.mojodescriptor.parameter.defaultValue=Valeur par d\u00e9faut : {0}. pluginxdoc.mojodescriptor.requiredParameters=Param\u00e8tres requis pluginxdoc.mojodescriptor.optionalParameters=Param\u00e8tres optionnels pluginxdoc.mojodescriptor.parameters=Param\u00e8tres