[MPLUGIN-270] Deprecation of classical Maven objects as components is broken when using Javadoc tags

git-svn-id: https://svn.apache.org/repos/asf/maven/plugin-tools/trunk@1611013 13f79535-47bb-0310-9956-ffa450edef68
master
Dennis Lundberg 2014-07-16 13:53:11 +00:00
parent f8c4b373e7
commit 1190048b92
2 changed files with 27 additions and 70 deletions

View File

@ -51,33 +51,34 @@ assert mojo.configuration.touchFile[0].text() == '${first.touchFile}'
assert mojo.configuration.touchFile[0].'@implementation' == 'java.io.File'
assert mojo.configuration.touchFile[0].'@default-value' == '${project.build.directory}/touch.txt'
assert mojo.configuration.session[0].text() == ''
assert mojo.configuration.session[0].'@implementation' == 'org.apache.maven.execution.MavenSession'
assert mojo.configuration.session[0].'@default-value' == '${session}'
assert mojo.requirements.requirement.size() == 6
assert mojo.configuration.project[0].text() == ''
assert mojo.configuration.project[0].'@implementation' == 'org.apache.maven.project.MavenProject'
assert mojo.configuration.project[0].'@default-value' == '${project}'
requirement = mojo.requirements.requirement.findAll{ it.'field-name'.text() == "session" }[0]
assert requirement.role.text() == 'org.apache.maven.execution.MavenSession'
assert requirement.'field-name'.text() == 'session'
assert mojo.configuration.mojo[0].text() == ''
assert mojo.configuration.mojo[0].'@implementation' == 'org.apache.maven.plugin.MojoExecution'
assert mojo.configuration.mojo[0].'@default-value' == '${mojoExecution}'
requirement = mojo.requirements.requirement.findAll{ it.'field-name'.text() == "project" }[0]
assert requirement.role.text() == 'org.apache.maven.project.MavenProject'
assert requirement.'field-name'.text() == 'project'
assert mojo.configuration.plugin[0].text() == ''
assert mojo.configuration.plugin[0].'@implementation' == 'org.apache.maven.plugin.descriptor.PluginDescriptor'
assert mojo.configuration.plugin[0].'@default-value' == '${plugin}'
requirement = mojo.requirements.requirement.findAll{ it.'field-name'.text() == "mojo" }[0]
assert requirement.role.text() == 'org.apache.maven.plugin.MojoExecution'
assert requirement.'field-name'.text() == 'mojo'
assert mojo.configuration.settings[0].text() == ''
assert mojo.configuration.settings[0].'@implementation' == 'org.apache.maven.settings.Settings'
assert mojo.configuration.settings[0].'@default-value' == '${settings}'
requirement = mojo.requirements.requirement.findAll{ it.'field-name'.text() == "plugin" }[0]
assert requirement.role.text() == 'org.apache.maven.plugin.descriptor.PluginDescriptor'
assert requirement.'field-name'.text() == 'plugin'
assert mojo.requirements.requirement.size() == 1
requirement = mojo.requirements.requirement.findAll{ it.'field-name'.text() == "settings" }[0]
assert requirement.role.text() == 'org.apache.maven.settings.Settings'
assert requirement.'field-name'.text() == 'settings'
assert mojo.requirements.requirement[0].role.text() == 'org.apache.maven.project.MavenProjectHelper'
assert mojo.requirements.requirement[0].'role-hint'.text() == 'test'
assert mojo.requirements.requirement[0].'field-name'.text() == 'projectHelper'
requirement = mojo.requirements.requirement.findAll{ it.'field-name'.text() == "projectHelper" }[0]
assert requirement.role.text() == 'org.apache.maven.project.MavenProjectHelper'
assert requirement.'role-hint'.text() == 'test'
assert requirement.'field-name'.text() == 'projectHelper'
assert mojo.parameters.parameter.size() == 8
assert mojo.parameters.parameter.size() == 3
parameter = mojo.parameters.parameter.findAll{ it.name.text() == "namedParam" }[0]
assert parameter.name.text() == 'namedParam'
@ -97,51 +98,6 @@ assert parameter.required.text() == 'false'
assert parameter.editable.text() == 'false'
assert parameter.description.text() == 'Project directory.'
parameter = mojo.parameters.parameter.findAll{ it.name.text() == "mojo" }[0]
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() == 'true'
assert parameter.editable.text() == 'false'
assert parameter.description.text() == ''
parameter = mojo.parameters.parameter.findAll{ it.name.text() == "plugin" }[0]
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() == 'true'
assert parameter.editable.text() == 'false'
assert parameter.description.text() == ''
parameter = mojo.parameters.parameter.findAll{ it.name.text() == "project" }[0]
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() == 'true'
assert parameter.editable.text() == 'false'
assert parameter.description.text() == ''
parameter = mojo.parameters.parameter.findAll{ it.name.text() == "session" }[0]
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() == 'true'
assert parameter.editable.text() == 'false'
assert parameter.description.text() == ''
parameter = mojo.parameters.parameter.findAll{ it.name.text() == "settings" }[0]
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() == 'true'
assert parameter.editable.text() == 'false'
assert parameter.description.text() == ''
parameter = mojo.parameters.parameter.findAll{ it.name.text() == "touchFile" }[0]
assert parameter.name.text() == 'touchFile'
assert parameter.alias.isEmpty()

View File

@ -528,9 +528,11 @@ public class JavaMojoDescriptorExtractor
}
// recognize Maven-injected objects as components annotations instead of parameters
String expression = PluginUtils.MAVEN_COMPONENTS.get( role );
// Note: the expressions we are looking for, i.e. "${project}", are in the values of the Map,
// so the lookup mechanism is different here than in maven-plugin-tools-annotations
boolean isDeprecated = PluginUtils.MAVEN_COMPONENTS.containsValue( role );
if ( expression == null )
if ( !isDeprecated )
{
// normal component
pd.setRequirement( new Requirement( role, roleHint ) );
@ -540,9 +542,8 @@ public class JavaMojoDescriptorExtractor
// not a component but a Maven object to be transformed into an expression/property
getLogger().warn(
"Deprecated @component Javadoc tag for '" + pd.getName() + "' field in " + javaClass.getFullyQualifiedName() +
": replace with @Parameter( defaultValue = \"" + expression + "\", readonly = true )" );
pd.setDefaultValue( expression );
pd.setType( role );
": replace with @Parameter( defaultValue = \"" + role + "\", readonly = true )" );
pd.setDefaultValue( role );
pd.setRequired( true );
}