Author: dennisl
Date: Wed Jul 16 13:53:11 2014
New Revision: 1611013
URL: http://svn.apache.org/r1611013
Log:
[MPLUGIN-270] Deprecation of classical Maven objects as components is broken
when using Javadoc tags
Modified:
maven/plugin-tools/trunk/maven-plugin-plugin/src/it/java-basic/verify.groovy
maven/plugin-tools/trunk/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java
Modified:
maven/plugin-tools/trunk/maven-plugin-plugin/src/it/java-basic/verify.groovy
URL:
http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-plugin/src/it/java-basic/verify.groovy?rev=1611013&r1=1611012&r2=1611013&view=diff
==============================================================================
---
maven/plugin-tools/trunk/maven-plugin-plugin/src/it/java-basic/verify.groovy
(original)
+++
maven/plugin-tools/trunk/maven-plugin-plugin/src/it/java-basic/verify.groovy
Wed Jul 16 13:53:11 2014
@@ -51,33 +51,34 @@ assert mojo.configuration.touchFile[0].t
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'
+
+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'
+
+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'
+
+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'
+
+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.configuration.mojo[0].text() == ''
-assert mojo.configuration.mojo[0].'@implementation' ==
'org.apache.maven.plugin.MojoExecution'
-assert mojo.configuration.mojo[0].'@default-value' == '${mojoExecution}'
-
-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}'
-
-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}'
-
-assert mojo.requirements.requirement.size() == 1
-
-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() == 'fal
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()
Modified:
maven/plugin-tools/trunk/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java
URL:
http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java?rev=1611013&r1=1611012&r2=1611013&view=diff
==============================================================================
---
maven/plugin-tools/trunk/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java
(original)
+++
maven/plugin-tools/trunk/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/java/JavaMojoDescriptorExtractor.java
Wed Jul 16 13:53:11 2014
@@ -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 );
}