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 );
                 }
 


Reply via email to