[MPLUGIN-259] added @Parameter name="xxx" to set bean property name different from class' field
git-svn-id: https://svn.apache.org/repos/asf/maven/plugin-tools/trunk@1592217 13f79535-47bb-0310-9956-ffa450edef68master
parent
10d0a99bec
commit
37b87d5ef5
|
|
@ -40,6 +40,12 @@ import java.lang.annotation.Target;
|
|||
@Inherited
|
||||
public @interface Parameter
|
||||
{
|
||||
/**
|
||||
* name of the bean property used to get/set the field: by default, field name is used.
|
||||
* @return the name of the bean property
|
||||
*/
|
||||
String name() default "";
|
||||
|
||||
/**
|
||||
* alias supported to get parameter value.
|
||||
* @return the alias
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ public class FirstMojo
|
|||
* @since 0.1
|
||||
* @deprecated As of 0.2
|
||||
*/
|
||||
@Parameter( alias = "alias" )
|
||||
@Parameter( name = "namedParam", alias = "alias" )
|
||||
private String aliasedParam;
|
||||
|
||||
@Component( role = MavenProjectHelper.class, hint = "test" )
|
||||
|
|
|
|||
|
|
@ -79,8 +79,8 @@ assert mojo.requirements.requirement[0].'field-name'.text() == 'projectHelper'
|
|||
|
||||
assert mojo.parameters.parameter.size() == 8
|
||||
|
||||
parameter = mojo.parameters.parameter.findAll{ it.name.text() == "aliasedParam" }[0]
|
||||
assert parameter.name.text() == 'aliasedParam'
|
||||
parameter = mojo.parameters.parameter.findAll{ it.name.text() == "namedParam" }[0]
|
||||
assert parameter.name.text() == 'namedParam'
|
||||
assert parameter.alias.text() == 'alias'
|
||||
assert parameter.type.text() == 'java.lang.String'
|
||||
assert parameter.deprecated.text() == 'As of 0.2'
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ public class FirstMojo
|
|||
private File touchFile;
|
||||
|
||||
/**
|
||||
* @parameter alias="alias"
|
||||
* @parameter name="namedParam" alias="alias"
|
||||
* @deprecated As of 0.2
|
||||
* @since 0.1
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -79,8 +79,8 @@ assert mojo.requirements.requirement[0].'field-name'.text() == 'projectHelper'
|
|||
|
||||
assert mojo.parameters.parameter.size() == 8
|
||||
|
||||
parameter = mojo.parameters.parameter.findAll{ it.name.text() == "aliasedParam" }[0]
|
||||
assert parameter.name.text() == 'aliasedParam'
|
||||
parameter = mojo.parameters.parameter.findAll{ it.name.text() == "namedParam" }[0]
|
||||
assert parameter.name.text() == 'namedParam'
|
||||
assert parameter.alias.text() == 'alias'
|
||||
assert parameter.type.text() == 'java.lang.String'
|
||||
assert parameter.deprecated.text() == 'As of 0.2'
|
||||
|
|
|
|||
|
|
@ -544,7 +544,10 @@ public class JavaAnnotationsMojoDescriptorExtractor
|
|||
{
|
||||
org.apache.maven.plugin.descriptor.Parameter parameter =
|
||||
new org.apache.maven.plugin.descriptor.Parameter();
|
||||
parameter.setName( parameterAnnotationContent.getFieldName() );
|
||||
String name =
|
||||
StringUtils.isEmpty( parameterAnnotationContent.name() ) ? parameterAnnotationContent.getFieldName()
|
||||
: parameterAnnotationContent.name();
|
||||
parameter.setName( name );
|
||||
parameter.setAlias( parameterAnnotationContent.alias() );
|
||||
parameter.setDefaultValue( parameterAnnotationContent.defaultValue() );
|
||||
parameter.setDeprecated( parameterAnnotationContent.getDeprecated() );
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ package org.apache.maven.tools.plugin.annotations.datamodel;
|
|||
*/
|
||||
|
||||
import org.apache.maven.plugins.annotations.Parameter;
|
||||
import org.codehaus.plexus.util.StringUtils;
|
||||
|
||||
import java.lang.annotation.Annotation;
|
||||
|
||||
|
|
@ -32,6 +33,8 @@ public class ParameterAnnotationContent
|
|||
implements Parameter
|
||||
{
|
||||
|
||||
private String name;
|
||||
|
||||
private String alias;
|
||||
|
||||
private String property;
|
||||
|
|
@ -61,6 +64,16 @@ public class ParameterAnnotationContent
|
|||
this.readonly = readonly;
|
||||
}
|
||||
|
||||
public String name()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
|
||||
public void name( String name )
|
||||
{
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String alias()
|
||||
{
|
||||
return alias;
|
||||
|
|
@ -132,7 +145,8 @@ public class ParameterAnnotationContent
|
|||
final StringBuilder sb = new StringBuilder();
|
||||
sb.append( super.toString() );
|
||||
sb.append( "ParameterAnnotationContent" );
|
||||
sb.append( "{alias='" ).append( alias ).append( '\'' );
|
||||
sb.append( "{name='" ).append( name ).append( '\'' );
|
||||
sb.append( ", alias='" ).append( alias ).append( '\'' );
|
||||
sb.append( ", property='" ).append( property ).append( '\'' );
|
||||
sb.append( ", defaultValue='" ).append( defaultValue ).append( '\'' );
|
||||
sb.append( ", required=" ).append( required );
|
||||
|
|
|
|||
|
|
@ -283,6 +283,7 @@ public class DefaultMojoAnnotationsScanner
|
|||
{
|
||||
populateAnnotationContent( parameterAnnotationContent, mojoFieldVisitor.getMojoAnnotationVisitor() );
|
||||
}
|
||||
|
||||
mojoAnnotatedClass.getParameters().put( parameterAnnotationContent.getFieldName(),
|
||||
parameterAnnotationContent );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,7 +78,8 @@ public class MyMojo
|
|||
* @since <since-text>
|
||||
* @deprecated <deprecated-text>
|
||||
*/
|
||||
@Parameter( alias = "myAlias",
|
||||
@Parameter( name = "parameter",
|
||||
alias = "myAlias",
|
||||
property = "a.property",
|
||||
defaultValue = "an expression, possibly with ${variables}",
|
||||
readonly = <false|true>,
|
||||
|
|
|
|||
|
|
@ -271,6 +271,15 @@ public interface JavaMojoAnnotation
|
|||
*/
|
||||
String PARAMETER = "parameter";
|
||||
|
||||
/**
|
||||
* This defines the name of the bean property used to get/set the field: by default, field name is used.
|
||||
* <br/>
|
||||
* Refer to <code>@parameter name="..."</code>.
|
||||
* <br/>
|
||||
* <b>Note</b>: Should be defined in a Mojo Field.
|
||||
*/
|
||||
String PARAMETER_NAME = "name";
|
||||
|
||||
/**
|
||||
* This defines an alias which can be used to configure a parameter. This is primarily useful to improve
|
||||
* user-friendliness.
|
||||
|
|
|
|||
|
|
@ -562,6 +562,13 @@ public class JavaMojoDescriptorExtractor
|
|||
|
||||
pd.setEditable( field.getTagByName( JavaMojoAnnotation.READONLY ) == null );
|
||||
|
||||
String name = parameter.getNamedParameter( JavaMojoAnnotation.PARAMETER_NAME );
|
||||
|
||||
if ( !StringUtils.isEmpty( name ) )
|
||||
{
|
||||
pd.setName( name );
|
||||
}
|
||||
|
||||
String alias = parameter.getNamedParameter( JavaMojoAnnotation.PARAMETER_ALIAS );
|
||||
|
||||
if ( !StringUtils.isEmpty( alias ) )
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ public class MyMojo
|
|||
extends AbstractMojo
|
||||
{
|
||||
/**
|
||||
* @parameter alias="myAlias" implementation="" property="aProperty" default-value="${anExpression}"
|
||||
* @parameter name="parameter" alias="myAlias" implementation="" property="aProperty" default-value="${anExpression}"
|
||||
* @readonly
|
||||
* @required
|
||||
* @since <since-text>
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ import com.sun.tools.doclets.Taglet;
|
|||
* /**
|
||||
*  * Dummy parameter.
|
||||
*  *
|
||||
*  * @parameter <alias="..."> <default-value="..."> <expression="...">
|
||||
*  * @parameter <name="..."> <alias="..."> <default-value="..."> <expression="...">
|
||||
*  * <implementation="..."> <property="...">
|
||||
*  * ...
|
||||
*  */
|
||||
|
|
@ -59,6 +59,7 @@ public class MojoParameterFieldTaglet
|
|||
private static final String NAME = JavaMojoAnnotation.PARAMETER;
|
||||
|
||||
private static final String[] PARAMETERS_NAME = {
|
||||
JavaMojoAnnotation.PARAMETER_NAME,
|
||||
JavaMojoAnnotation.PARAMETER_ALIAS,
|
||||
JavaMojoAnnotation.PARAMETER_DEFAULT_VALUE,
|
||||
JavaMojoAnnotation.PARAMETER_EXPRESSION,
|
||||
|
|
|
|||
Loading…
Reference in New Issue