[MPLUGIN-214] fixed description generated by Maven objects marked as component (required=true and no implementation, and since+deprecated for tags)

git-svn-id: https://svn.apache.org/repos/asf/maven/plugin-tools/trunk@1353231 13f79535-47bb-0310-9956-ffa450edef68
master
Herve Boutemy 2012-06-24 08:36:58 +00:00
parent 2bf4bff377
commit 1c9a253347
4 changed files with 36 additions and 25 deletions

View File

@ -83,7 +83,7 @@ assert parameter.name.text() == 'mojo'
assert parameter.alias.isEmpty()
assert parameter.type.text() == 'org.apache.maven.plugin.MojoExecution'
assert parameter.deprecated.isEmpty()
assert parameter.required.text() == 'false'
assert parameter.required.text() == 'true'
assert parameter.editable.text() == 'false'
assert parameter.description.text() == ''
@ -92,7 +92,7 @@ assert parameter.name.text() == 'plugin'
assert parameter.alias.isEmpty()
assert parameter.type.text() == 'org.apache.maven.plugin.descriptor.PluginDescriptor'
assert parameter.deprecated.isEmpty()
assert parameter.required.text() == 'false'
assert parameter.required.text() == 'true'
assert parameter.editable.text() == 'false'
assert parameter.description.text() == ''
@ -101,7 +101,7 @@ assert parameter.name.text() == 'project'
assert parameter.alias.isEmpty()
assert parameter.type.text() == 'org.apache.maven.project.MavenProject'
assert parameter.deprecated.isEmpty()
assert parameter.required.text() == 'false'
assert parameter.required.text() == 'true'
assert parameter.editable.text() == 'false'
assert parameter.description.text() == ''
@ -110,7 +110,7 @@ assert parameter.name.text() == 'session'
assert parameter.alias.isEmpty()
assert parameter.type.text() == 'org.apache.maven.execution.MavenSession'
assert parameter.deprecated.isEmpty()
assert parameter.required.text() == 'false'
assert parameter.required.text() == 'true'
assert parameter.editable.text() == 'false'
assert parameter.description.text() == ''
@ -119,7 +119,7 @@ assert parameter.name.text() == 'settings'
assert parameter.alias.isEmpty()
assert parameter.type.text() == 'org.apache.maven.settings.Settings'
assert parameter.deprecated.isEmpty()
assert parameter.required.text() == 'false'
assert parameter.required.text() == 'true'
assert parameter.editable.text() == 'false'
assert parameter.description.text() == ''

View File

@ -83,7 +83,7 @@ assert parameter.name.text() == 'mojo'
assert parameter.alias.isEmpty()
assert parameter.type.text() == 'org.apache.maven.plugin.MojoExecution'
assert parameter.deprecated.isEmpty()
assert parameter.required.text() == 'false'
assert parameter.required.text() == 'true'
assert parameter.editable.text() == 'false'
assert parameter.description.text() == ''
@ -92,7 +92,7 @@ assert parameter.name.text() == 'plugin'
assert parameter.alias.isEmpty()
assert parameter.type.text() == 'org.apache.maven.plugin.descriptor.PluginDescriptor'
assert parameter.deprecated.isEmpty()
assert parameter.required.text() == 'false'
assert parameter.required.text() == 'true'
assert parameter.editable.text() == 'false'
assert parameter.description.text() == ''
@ -101,7 +101,7 @@ assert parameter.name.text() == 'project'
assert parameter.alias.isEmpty()
assert parameter.type.text() == 'org.apache.maven.project.MavenProject'
assert parameter.deprecated.isEmpty()
assert parameter.required.text() == 'false'
assert parameter.required.text() == 'true'
assert parameter.editable.text() == 'false'
assert parameter.description.text() == ''
@ -110,7 +110,7 @@ assert parameter.name.text() == 'session'
assert parameter.alias.isEmpty()
assert parameter.type.text() == 'org.apache.maven.execution.MavenSession'
assert parameter.deprecated.isEmpty()
assert parameter.required.text() == 'false'
assert parameter.required.text() == 'true'
assert parameter.editable.text() == 'false'
assert parameter.description.text() == ''
@ -119,7 +119,7 @@ assert parameter.name.text() == 'settings'
assert parameter.alias.isEmpty()
assert parameter.type.text() == 'org.apache.maven.settings.Settings'
assert parameter.deprecated.isEmpty()
assert parameter.required.text() == 'false'
assert parameter.required.text() == 'true'
assert parameter.editable.text() == 'false'
assert parameter.description.text() == ''

View File

@ -534,6 +534,7 @@ public class JavaAnnotationsMojoDescriptorExtractor
mojoDescriptor.setPhase( mojo.defaultPhase().id() );
// Parameter annotations
Map<String, ParameterAnnotationContent> parameters =
getParametersParentHierarchy( mojoAnnotatedClass, new HashMap<String, ParameterAnnotationContent>(),
mojoAnnotatedClasses );
@ -565,6 +566,7 @@ public class JavaAnnotationsMojoDescriptorExtractor
mojoDescriptor.addParameter( parameter );
}
// Component annotations
Map<String, ComponentAnnotationContent> components =
getComponentsParentHierarchy( mojoAnnotatedClass, new HashMap<String, ComponentAnnotationContent>(),
mojoAnnotatedClasses );
@ -576,17 +578,20 @@ public class JavaAnnotationsMojoDescriptorExtractor
new org.apache.maven.plugin.descriptor.Parameter();
parameter.setName( componentAnnotationContent.getFieldName() );
// recognize Maven-injected objects as components annotations instead of parameters
String expression = PluginUtils.MAVEN_COMPONENTS.get( componentAnnotationContent.getRoleClassName() );
if ( expression == null )
{
// normal component
parameter.setRequirement( new Requirement( componentAnnotationContent.getRoleClassName(),
componentAnnotationContent.hint() ) );
}
else
{
// not a component but a Maven object to be transformed into an expression/property
parameter.setDefaultValue( expression );
parameter.setImplementation( componentAnnotationContent.getRoleClassName() );
parameter.setType( componentAnnotationContent.getRoleClassName() );
parameter.setRequired( true );
}
parameter.setDeprecated( componentAnnotationContent.getDeprecated() );
parameter.setSince( componentAnnotationContent.getSince() );
@ -594,6 +599,7 @@ public class JavaAnnotationsMojoDescriptorExtractor
// same behaviour as JavaMojoDescriptorExtractor
//parameter.setRequired( ... );
parameter.setEditable( false );
mojoDescriptor.addParameter( parameter );
}

View File

@ -496,10 +496,24 @@ public class JavaMojoDescriptorExtractor
pd.setDescription( field.getComment() );
DocletTag deprecationTag = field.getTagByName( JavaMojoAnnotation.DEPRECATED );
if ( deprecationTag != null )
{
pd.setDeprecated( deprecationTag.getValue() );
}
DocletTag sinceTag = field.getTagByName( JavaMojoAnnotation.SINCE );
if ( sinceTag != null )
{
pd.setSince( sinceTag.getValue() );
}
DocletTag componentTag = field.getTagByName( JavaMojoAnnotation.COMPONENT );
if ( componentTag != null )
{
// Component tag
String role = componentTag.getNamedParameter( JavaMojoAnnotation.COMPONENT_ROLE );
if ( role == null )
@ -515,17 +529,20 @@ public class JavaMojoDescriptorExtractor
roleHint = componentTag.getNamedParameter( "role-hint" );
}
// recognize Maven-injected objects as components annotations instead of parameters
String expression = PluginUtils.MAVEN_COMPONENTS.get( role );
if ( expression == null )
{
// normal component
pd.setRequirement( new Requirement( role, roleHint ) );
}
else
{
// not a component but a Maven object to be transformed into an expression/property
pd.setDefaultValue( expression );
pd.setImplementation( role );
pd.setType( role );
pd.setRequired( true );
}
pd.setEditable( false );
@ -535,25 +552,13 @@ public class JavaMojoDescriptorExtractor
}
else
{
// Parameter tag
DocletTag parameter = field.getTagByName( JavaMojoAnnotation.PARAMETER );
pd.setRequired( field.getTagByName( JavaMojoAnnotation.REQUIRED ) != null );
pd.setEditable( field.getTagByName( JavaMojoAnnotation.READONLY ) == null );
DocletTag deprecationTag = field.getTagByName( JavaMojoAnnotation.DEPRECATED );
if ( deprecationTag != null )
{
pd.setDeprecated( deprecationTag.getValue() );
}
DocletTag sinceTag = field.getTagByName( JavaMojoAnnotation.SINCE );
if ( sinceTag != null )
{
pd.setSince( sinceTag.getValue() );
}
String alias = parameter.getNamedParameter( JavaMojoAnnotation.PARAMETER_ALIAS );
if ( !StringUtils.isEmpty( alias ) )