[MPLUGIN-194] support expression="a property" in addition to expression="${a property}"

git-svn-id: https://svn.apache.org/repos/asf/maven/plugin-tools/trunk@1337816 13f79535-47bb-0310-9956-ffa450edef68
master
Herve Boutemy 2012-05-13 09:04:24 +00:00
parent fb6cee3d5c
commit 169cb9dcc2
5 changed files with 26 additions and 5 deletions

View File

@ -48,7 +48,7 @@ public class FirstMojo
@Parameter( defaultValue = "${basedir}", readonly = true ) @Parameter( defaultValue = "${basedir}", readonly = true )
private File basedir; private File basedir;
@Parameter( expression = "${first.touchFile}", defaultValue = "${project.build.directory}/touch.txt", @Parameter( expression = "first.touchFile", defaultValue = "${project.build.directory}/touch.txt",
required = true ) required = true )
private File touchFile; private File touchFile;

View File

@ -47,7 +47,7 @@ public class FirstMojo
private File basedir; private File basedir;
/** /**
* @parameter expression="${first.touchFile}" default-value="${project.build.directory}/touch.txt" * @parameter expression="first.touchFile" default-value="${project.build.directory}/touch.txt"
* @required * @required
*/ */
private File touchFile; private File touchFile;

View File

@ -74,7 +74,7 @@ public class MyMojo
* @deprecated <deprecated-text> * @deprecated <deprecated-text>
*/ */
@Parameter( alias = "myAlias", @Parameter( alias = "myAlias",
expression = "${aSystemProperty}", expression = "aSystemProperty",
defaultValue = "${anExpression}", defaultValue = "${anExpression}",
readonly = <false|true> readonly = <false|true>
required = <false|true> ) required = <false|true> )
@ -97,6 +97,7 @@ public class MyMojo
} }
+---------+ +---------+
* See also * See also
* {{{../maven-plugin-annotations/index.html}Maven Plugin Tools Java 5 Annotations}} * {{{../maven-plugin-annotations/index.html}Maven Plugin Tools Java 5 Annotations}}

View File

@ -420,7 +420,7 @@ public class PluginDescriptorGenerator
{ {
for ( Parameter parameter : parameters ) for ( Parameter parameter : parameters )
{ {
String expression = parameter.getExpression(); String expression = getExpression( parameter );
if ( StringUtils.isNotEmpty( expression ) && expression.startsWith( "${component." ) ) if ( StringUtils.isNotEmpty( expression ) && expression.startsWith( "${component." ) )
{ {
@ -571,6 +571,23 @@ public class PluginDescriptorGenerator
w.endElement(); w.endElement();
} }
/**
* Get the expression value, eventually surrounding it with <code>${ }</code>.
*
* @param parameter the parameter
* @return the expression value
*/
private String getExpression( Parameter parameter )
{
String expression = parameter.getExpression();
if ( StringUtils.isNotBlank( expression ) && !expression.contains( "${" ) )
{
expression = "${" + expression.trim() + "}";
parameter.setExpression( expression );
}
return expression;
}
protected String rewriteHelpClassToMojoPackage( PluginToolsRequest request ) protected String rewriteHelpClassToMojoPackage( PluginToolsRequest request )
throws GeneratorException throws GeneratorException
{ {

View File

@ -62,7 +62,7 @@ public class MyMojo
extends AbstractMojo extends AbstractMojo
{ {
/** /**
* @parameter alias="myAlias" implementation="" expression="${aSystemProperty}" default-value="${anExpression}" * @parameter alias="myAlias" implementation="" expression="aSystemProperty" default-value="${anExpression}"
* @readonly * @readonly
* @required * @required
* @since <since-text> * @since <since-text>
@ -86,6 +86,9 @@ public class MyMojo
} }
+---------+ +---------+
<<Notice>>: before 3.0, <<<${ }>>> were required for <<<expression>>> value (<<<expression="${aSystemProperty}">>>),
but starting with 3.0, you can omit it (<<<expression="aSystemProperty">>>)
* See also * See also
* {{{/developers/mojo-api-specification.html#The_Descriptor_and_Annotations}Mojo API Specification}} * {{{/developers/mojo-api-specification.html#The_Descriptor_and_Annotations}Mojo API Specification}}