[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-ffa450edef68master
parent
2bf4bff377
commit
1c9a253347
|
|
@ -83,7 +83,7 @@ assert parameter.name.text() == 'mojo'
|
||||||
assert parameter.alias.isEmpty()
|
assert parameter.alias.isEmpty()
|
||||||
assert parameter.type.text() == 'org.apache.maven.plugin.MojoExecution'
|
assert parameter.type.text() == 'org.apache.maven.plugin.MojoExecution'
|
||||||
assert parameter.deprecated.isEmpty()
|
assert parameter.deprecated.isEmpty()
|
||||||
assert parameter.required.text() == 'false'
|
assert parameter.required.text() == 'true'
|
||||||
assert parameter.editable.text() == 'false'
|
assert parameter.editable.text() == 'false'
|
||||||
assert parameter.description.text() == ''
|
assert parameter.description.text() == ''
|
||||||
|
|
||||||
|
|
@ -92,7 +92,7 @@ assert parameter.name.text() == 'plugin'
|
||||||
assert parameter.alias.isEmpty()
|
assert parameter.alias.isEmpty()
|
||||||
assert parameter.type.text() == 'org.apache.maven.plugin.descriptor.PluginDescriptor'
|
assert parameter.type.text() == 'org.apache.maven.plugin.descriptor.PluginDescriptor'
|
||||||
assert parameter.deprecated.isEmpty()
|
assert parameter.deprecated.isEmpty()
|
||||||
assert parameter.required.text() == 'false'
|
assert parameter.required.text() == 'true'
|
||||||
assert parameter.editable.text() == 'false'
|
assert parameter.editable.text() == 'false'
|
||||||
assert parameter.description.text() == ''
|
assert parameter.description.text() == ''
|
||||||
|
|
||||||
|
|
@ -101,7 +101,7 @@ assert parameter.name.text() == 'project'
|
||||||
assert parameter.alias.isEmpty()
|
assert parameter.alias.isEmpty()
|
||||||
assert parameter.type.text() == 'org.apache.maven.project.MavenProject'
|
assert parameter.type.text() == 'org.apache.maven.project.MavenProject'
|
||||||
assert parameter.deprecated.isEmpty()
|
assert parameter.deprecated.isEmpty()
|
||||||
assert parameter.required.text() == 'false'
|
assert parameter.required.text() == 'true'
|
||||||
assert parameter.editable.text() == 'false'
|
assert parameter.editable.text() == 'false'
|
||||||
assert parameter.description.text() == ''
|
assert parameter.description.text() == ''
|
||||||
|
|
||||||
|
|
@ -110,7 +110,7 @@ assert parameter.name.text() == 'session'
|
||||||
assert parameter.alias.isEmpty()
|
assert parameter.alias.isEmpty()
|
||||||
assert parameter.type.text() == 'org.apache.maven.execution.MavenSession'
|
assert parameter.type.text() == 'org.apache.maven.execution.MavenSession'
|
||||||
assert parameter.deprecated.isEmpty()
|
assert parameter.deprecated.isEmpty()
|
||||||
assert parameter.required.text() == 'false'
|
assert parameter.required.text() == 'true'
|
||||||
assert parameter.editable.text() == 'false'
|
assert parameter.editable.text() == 'false'
|
||||||
assert parameter.description.text() == ''
|
assert parameter.description.text() == ''
|
||||||
|
|
||||||
|
|
@ -119,7 +119,7 @@ assert parameter.name.text() == 'settings'
|
||||||
assert parameter.alias.isEmpty()
|
assert parameter.alias.isEmpty()
|
||||||
assert parameter.type.text() == 'org.apache.maven.settings.Settings'
|
assert parameter.type.text() == 'org.apache.maven.settings.Settings'
|
||||||
assert parameter.deprecated.isEmpty()
|
assert parameter.deprecated.isEmpty()
|
||||||
assert parameter.required.text() == 'false'
|
assert parameter.required.text() == 'true'
|
||||||
assert parameter.editable.text() == 'false'
|
assert parameter.editable.text() == 'false'
|
||||||
assert parameter.description.text() == ''
|
assert parameter.description.text() == ''
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ assert parameter.name.text() == 'mojo'
|
||||||
assert parameter.alias.isEmpty()
|
assert parameter.alias.isEmpty()
|
||||||
assert parameter.type.text() == 'org.apache.maven.plugin.MojoExecution'
|
assert parameter.type.text() == 'org.apache.maven.plugin.MojoExecution'
|
||||||
assert parameter.deprecated.isEmpty()
|
assert parameter.deprecated.isEmpty()
|
||||||
assert parameter.required.text() == 'false'
|
assert parameter.required.text() == 'true'
|
||||||
assert parameter.editable.text() == 'false'
|
assert parameter.editable.text() == 'false'
|
||||||
assert parameter.description.text() == ''
|
assert parameter.description.text() == ''
|
||||||
|
|
||||||
|
|
@ -92,7 +92,7 @@ assert parameter.name.text() == 'plugin'
|
||||||
assert parameter.alias.isEmpty()
|
assert parameter.alias.isEmpty()
|
||||||
assert parameter.type.text() == 'org.apache.maven.plugin.descriptor.PluginDescriptor'
|
assert parameter.type.text() == 'org.apache.maven.plugin.descriptor.PluginDescriptor'
|
||||||
assert parameter.deprecated.isEmpty()
|
assert parameter.deprecated.isEmpty()
|
||||||
assert parameter.required.text() == 'false'
|
assert parameter.required.text() == 'true'
|
||||||
assert parameter.editable.text() == 'false'
|
assert parameter.editable.text() == 'false'
|
||||||
assert parameter.description.text() == ''
|
assert parameter.description.text() == ''
|
||||||
|
|
||||||
|
|
@ -101,7 +101,7 @@ assert parameter.name.text() == 'project'
|
||||||
assert parameter.alias.isEmpty()
|
assert parameter.alias.isEmpty()
|
||||||
assert parameter.type.text() == 'org.apache.maven.project.MavenProject'
|
assert parameter.type.text() == 'org.apache.maven.project.MavenProject'
|
||||||
assert parameter.deprecated.isEmpty()
|
assert parameter.deprecated.isEmpty()
|
||||||
assert parameter.required.text() == 'false'
|
assert parameter.required.text() == 'true'
|
||||||
assert parameter.editable.text() == 'false'
|
assert parameter.editable.text() == 'false'
|
||||||
assert parameter.description.text() == ''
|
assert parameter.description.text() == ''
|
||||||
|
|
||||||
|
|
@ -110,7 +110,7 @@ assert parameter.name.text() == 'session'
|
||||||
assert parameter.alias.isEmpty()
|
assert parameter.alias.isEmpty()
|
||||||
assert parameter.type.text() == 'org.apache.maven.execution.MavenSession'
|
assert parameter.type.text() == 'org.apache.maven.execution.MavenSession'
|
||||||
assert parameter.deprecated.isEmpty()
|
assert parameter.deprecated.isEmpty()
|
||||||
assert parameter.required.text() == 'false'
|
assert parameter.required.text() == 'true'
|
||||||
assert parameter.editable.text() == 'false'
|
assert parameter.editable.text() == 'false'
|
||||||
assert parameter.description.text() == ''
|
assert parameter.description.text() == ''
|
||||||
|
|
||||||
|
|
@ -119,7 +119,7 @@ assert parameter.name.text() == 'settings'
|
||||||
assert parameter.alias.isEmpty()
|
assert parameter.alias.isEmpty()
|
||||||
assert parameter.type.text() == 'org.apache.maven.settings.Settings'
|
assert parameter.type.text() == 'org.apache.maven.settings.Settings'
|
||||||
assert parameter.deprecated.isEmpty()
|
assert parameter.deprecated.isEmpty()
|
||||||
assert parameter.required.text() == 'false'
|
assert parameter.required.text() == 'true'
|
||||||
assert parameter.editable.text() == 'false'
|
assert parameter.editable.text() == 'false'
|
||||||
assert parameter.description.text() == ''
|
assert parameter.description.text() == ''
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -534,6 +534,7 @@ public class JavaAnnotationsMojoDescriptorExtractor
|
||||||
|
|
||||||
mojoDescriptor.setPhase( mojo.defaultPhase().id() );
|
mojoDescriptor.setPhase( mojo.defaultPhase().id() );
|
||||||
|
|
||||||
|
// Parameter annotations
|
||||||
Map<String, ParameterAnnotationContent> parameters =
|
Map<String, ParameterAnnotationContent> parameters =
|
||||||
getParametersParentHierarchy( mojoAnnotatedClass, new HashMap<String, ParameterAnnotationContent>(),
|
getParametersParentHierarchy( mojoAnnotatedClass, new HashMap<String, ParameterAnnotationContent>(),
|
||||||
mojoAnnotatedClasses );
|
mojoAnnotatedClasses );
|
||||||
|
|
@ -565,6 +566,7 @@ public class JavaAnnotationsMojoDescriptorExtractor
|
||||||
mojoDescriptor.addParameter( parameter );
|
mojoDescriptor.addParameter( parameter );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Component annotations
|
||||||
Map<String, ComponentAnnotationContent> components =
|
Map<String, ComponentAnnotationContent> components =
|
||||||
getComponentsParentHierarchy( mojoAnnotatedClass, new HashMap<String, ComponentAnnotationContent>(),
|
getComponentsParentHierarchy( mojoAnnotatedClass, new HashMap<String, ComponentAnnotationContent>(),
|
||||||
mojoAnnotatedClasses );
|
mojoAnnotatedClasses );
|
||||||
|
|
@ -576,17 +578,20 @@ public class JavaAnnotationsMojoDescriptorExtractor
|
||||||
new org.apache.maven.plugin.descriptor.Parameter();
|
new org.apache.maven.plugin.descriptor.Parameter();
|
||||||
parameter.setName( componentAnnotationContent.getFieldName() );
|
parameter.setName( componentAnnotationContent.getFieldName() );
|
||||||
|
|
||||||
|
// recognize Maven-injected objects as components annotations instead of parameters
|
||||||
String expression = PluginUtils.MAVEN_COMPONENTS.get( componentAnnotationContent.getRoleClassName() );
|
String expression = PluginUtils.MAVEN_COMPONENTS.get( componentAnnotationContent.getRoleClassName() );
|
||||||
if ( expression == null )
|
if ( expression == null )
|
||||||
{
|
{
|
||||||
|
// normal component
|
||||||
parameter.setRequirement( new Requirement( componentAnnotationContent.getRoleClassName(),
|
parameter.setRequirement( new Requirement( componentAnnotationContent.getRoleClassName(),
|
||||||
componentAnnotationContent.hint() ) );
|
componentAnnotationContent.hint() ) );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// not a component but a Maven object to be transformed into an expression/property
|
||||||
parameter.setDefaultValue( expression );
|
parameter.setDefaultValue( expression );
|
||||||
parameter.setImplementation( componentAnnotationContent.getRoleClassName() );
|
|
||||||
parameter.setType( componentAnnotationContent.getRoleClassName() );
|
parameter.setType( componentAnnotationContent.getRoleClassName() );
|
||||||
|
parameter.setRequired( true );
|
||||||
}
|
}
|
||||||
parameter.setDeprecated( componentAnnotationContent.getDeprecated() );
|
parameter.setDeprecated( componentAnnotationContent.getDeprecated() );
|
||||||
parameter.setSince( componentAnnotationContent.getSince() );
|
parameter.setSince( componentAnnotationContent.getSince() );
|
||||||
|
|
@ -594,6 +599,7 @@ public class JavaAnnotationsMojoDescriptorExtractor
|
||||||
// same behaviour as JavaMojoDescriptorExtractor
|
// same behaviour as JavaMojoDescriptorExtractor
|
||||||
//parameter.setRequired( ... );
|
//parameter.setRequired( ... );
|
||||||
parameter.setEditable( false );
|
parameter.setEditable( false );
|
||||||
|
|
||||||
mojoDescriptor.addParameter( parameter );
|
mojoDescriptor.addParameter( parameter );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -496,10 +496,24 @@ public class JavaMojoDescriptorExtractor
|
||||||
|
|
||||||
pd.setDescription( field.getComment() );
|
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 );
|
DocletTag componentTag = field.getTagByName( JavaMojoAnnotation.COMPONENT );
|
||||||
|
|
||||||
if ( componentTag != null )
|
if ( componentTag != null )
|
||||||
{
|
{
|
||||||
|
// Component tag
|
||||||
String role = componentTag.getNamedParameter( JavaMojoAnnotation.COMPONENT_ROLE );
|
String role = componentTag.getNamedParameter( JavaMojoAnnotation.COMPONENT_ROLE );
|
||||||
|
|
||||||
if ( role == null )
|
if ( role == null )
|
||||||
|
|
@ -515,17 +529,20 @@ public class JavaMojoDescriptorExtractor
|
||||||
roleHint = componentTag.getNamedParameter( "role-hint" );
|
roleHint = componentTag.getNamedParameter( "role-hint" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// recognize Maven-injected objects as components annotations instead of parameters
|
||||||
String expression = PluginUtils.MAVEN_COMPONENTS.get( role );
|
String expression = PluginUtils.MAVEN_COMPONENTS.get( role );
|
||||||
|
|
||||||
if ( expression == null )
|
if ( expression == null )
|
||||||
{
|
{
|
||||||
|
// normal component
|
||||||
pd.setRequirement( new Requirement( role, roleHint ) );
|
pd.setRequirement( new Requirement( role, roleHint ) );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// not a component but a Maven object to be transformed into an expression/property
|
||||||
pd.setDefaultValue( expression );
|
pd.setDefaultValue( expression );
|
||||||
pd.setImplementation( role );
|
|
||||||
pd.setType( role );
|
pd.setType( role );
|
||||||
|
pd.setRequired( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
pd.setEditable( false );
|
pd.setEditable( false );
|
||||||
|
|
@ -535,25 +552,13 @@ public class JavaMojoDescriptorExtractor
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// Parameter tag
|
||||||
DocletTag parameter = field.getTagByName( JavaMojoAnnotation.PARAMETER );
|
DocletTag parameter = field.getTagByName( JavaMojoAnnotation.PARAMETER );
|
||||||
|
|
||||||
pd.setRequired( field.getTagByName( JavaMojoAnnotation.REQUIRED ) != null );
|
pd.setRequired( field.getTagByName( JavaMojoAnnotation.REQUIRED ) != null );
|
||||||
|
|
||||||
pd.setEditable( field.getTagByName( JavaMojoAnnotation.READONLY ) == 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 );
|
String alias = parameter.getNamedParameter( JavaMojoAnnotation.PARAMETER_ALIAS );
|
||||||
|
|
||||||
if ( !StringUtils.isEmpty( alias ) )
|
if ( !StringUtils.isEmpty( alias ) )
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue