You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2024/01/06 21:12:07 UTC
(maven-plugin-tools) 01/01: [MPLUGIN-495] WARNINGs based on usage of @Component for MavenSession/MavenProject instead of @Parameter
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch MPLUGIN-495
in repository https://gitbox.apache.org/repos/asf/maven-plugin-tools.git
commit ac558bffc907098794f515564bf23a6eac7080d8
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Wed Dec 27 22:42:28 2023 +0100
[MPLUGIN-495] WARNINGs based on usage of @Component for MavenSession/MavenProject instead of @Parameter
This closes #253
---
.../it/java-basic-annotations-jdk8/verify.groovy | 80 ++++----------------
.../verify.groovy | 80 ++++----------------
.../src/it/java-basic-annotations/verify.groovy | 80 ++++----------------
.../verify.groovy | 2 +-
maven-plugin-plugin/src/it/v4api/verify.groovy | 86 +++++-----------------
.../EnhancedPluginDescriptorBuilder.java | 13 ++--
.../JavaAnnotationsMojoDescriptorExtractor.java | 23 +-----
.../maven/tools/plugin/util/PluginUtils.java | 32 --------
.../JavaJavadocMojoDescriptorExtractor.java | 24 +-----
9 files changed, 76 insertions(+), 344 deletions(-)
diff --git a/maven-plugin-plugin/src/it/java-basic-annotations-jdk8/verify.groovy b/maven-plugin-plugin/src/it/java-basic-annotations-jdk8/verify.groovy
index 80db3ce7..7c482821 100644
--- a/maven-plugin-plugin/src/it/java-basic-annotations-jdk8/verify.groovy
+++ b/maven-plugin-plugin/src/it/java-basic-annotations-jdk8/verify.groovy
@@ -53,33 +53,28 @@ 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}'
+assert mojo.requirements.requirement[0].role.text() == 'org.apache.maven.plugin.MojoExecution'
+assert mojo.requirements.requirement[0].'field-name'.text() == 'mojo'
-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.requirements.requirement[1].role.text() == 'org.apache.maven.plugin.descriptor.PluginDescriptor'
+assert mojo.requirements.requirement[1].'field-name'.text() == 'plugin'
-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.requirements.requirement[2].role.text() == 'org.apache.maven.project.MavenProject'
+assert mojo.requirements.requirement[2].'field-name'.text() == 'project'
-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[3].role.text() == 'org.apache.maven.project.MavenProjectHelper'
+assert mojo.requirements.requirement[3].'role-hint'.text() == 'test'
+assert mojo.requirements.requirement[3].'field-name'.text() == 'projectHelper'
-assert mojo.requirements.requirement.size() == 1
+assert mojo.requirements.requirement[4].role.text() == 'org.apache.maven.execution.MavenSession'
+assert mojo.requirements.requirement[4].'field-name'.text() == 'session'
-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'
+assert mojo.requirements.requirement[5].role.text() == 'org.apache.maven.settings.Settings'
+assert mojo.requirements.requirement[5].'field-name'.text() == 'settings'
-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'
@@ -99,51 +94,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()
diff --git a/maven-plugin-plugin/src/it/java-basic-annotations-jdkcurrent/verify.groovy b/maven-plugin-plugin/src/it/java-basic-annotations-jdkcurrent/verify.groovy
index e102e813..c42f2365 100644
--- a/maven-plugin-plugin/src/it/java-basic-annotations-jdkcurrent/verify.groovy
+++ b/maven-plugin-plugin/src/it/java-basic-annotations-jdkcurrent/verify.groovy
@@ -53,33 +53,28 @@ 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}'
+assert mojo.requirements.requirement[0].role.text() == 'org.apache.maven.plugin.MojoExecution'
+assert mojo.requirements.requirement[0].'field-name'.text() == 'mojo'
-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.requirements.requirement[1].role.text() == 'org.apache.maven.plugin.descriptor.PluginDescriptor'
+assert mojo.requirements.requirement[1].'field-name'.text() == 'plugin'
-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.requirements.requirement[2].role.text() == 'org.apache.maven.project.MavenProject'
+assert mojo.requirements.requirement[2].'field-name'.text() == 'project'
-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[3].role.text() == 'org.apache.maven.project.MavenProjectHelper'
+assert mojo.requirements.requirement[3].'role-hint'.text() == 'test'
+assert mojo.requirements.requirement[3].'field-name'.text() == 'projectHelper'
-assert mojo.requirements.requirement.size() == 1
+assert mojo.requirements.requirement[4].role.text() == 'org.apache.maven.execution.MavenSession'
+assert mojo.requirements.requirement[4].'field-name'.text() == 'session'
-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'
+assert mojo.requirements.requirement[5].role.text() == 'org.apache.maven.settings.Settings'
+assert mojo.requirements.requirement[5].'field-name'.text() == 'settings'
-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'
@@ -99,51 +94,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()
diff --git a/maven-plugin-plugin/src/it/java-basic-annotations/verify.groovy b/maven-plugin-plugin/src/it/java-basic-annotations/verify.groovy
index a921bee3..61953831 100644
--- a/maven-plugin-plugin/src/it/java-basic-annotations/verify.groovy
+++ b/maven-plugin-plugin/src/it/java-basic-annotations/verify.groovy
@@ -56,33 +56,28 @@ 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}'
+assert mojo.requirements.requirement[0].role.text() == 'org.apache.maven.plugin.MojoExecution'
+assert mojo.requirements.requirement[0].'field-name'.text() == 'mojo'
-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.requirements.requirement[1].role.text() == 'org.apache.maven.plugin.descriptor.PluginDescriptor'
+assert mojo.requirements.requirement[1].'field-name'.text() == 'plugin'
-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.requirements.requirement[2].role.text() == 'org.apache.maven.project.MavenProject'
+assert mojo.requirements.requirement[2].'field-name'.text() == 'project'
-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[3].role.text() == 'org.apache.maven.project.MavenProjectHelper'
+assert mojo.requirements.requirement[3].'role-hint'.text() == 'test'
+assert mojo.requirements.requirement[3].'field-name'.text() == 'projectHelper'
-assert mojo.requirements.requirement.size() == 1
+assert mojo.requirements.requirement[4].role.text() == 'org.apache.maven.execution.MavenSession'
+assert mojo.requirements.requirement[4].'field-name'.text() == 'session'
-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'
+assert mojo.requirements.requirement[5].role.text() == 'org.apache.maven.settings.Settings'
+assert mojo.requirements.requirement[5].'field-name'.text() == 'settings'
-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'
@@ -102,51 +97,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()
diff --git a/maven-plugin-plugin/src/it/mplugin-305_defaultMojoDependencies/verify.groovy b/maven-plugin-plugin/src/it/mplugin-305_defaultMojoDependencies/verify.groovy
index 642fb98c..3ad89eb5 100644
--- a/maven-plugin-plugin/src/it/mplugin-305_defaultMojoDependencies/verify.groovy
+++ b/maven-plugin-plugin/src/it/mplugin-305_defaultMojoDependencies/verify.groovy
@@ -23,6 +23,6 @@ assert descriptorFile.isFile()
def pluginDescriptor = new XmlParser().parse( descriptorFile );
assert pluginDescriptor.mojos.mojo.size() == 1
-assert pluginDescriptor.mojos.mojo.parameters.parameter.size() == 50
+assert pluginDescriptor.mojos.mojo.parameters.parameter.size() == 48
return true;
diff --git a/maven-plugin-plugin/src/it/v4api/verify.groovy b/maven-plugin-plugin/src/it/v4api/verify.groovy
index 5ce732ad..1405e231 100644
--- a/maven-plugin-plugin/src/it/v4api/verify.groovy
+++ b/maven-plugin-plugin/src/it/v4api/verify.groovy
@@ -53,23 +53,7 @@ assert mojo.configuration.touchFile[0].text() == '${first.touchFile}'
assert mojo.configuration.touchFile[0].'@implementation' == 'java.nio.file.Path'
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.api.Session'
-assert mojo.configuration.session[0].'@default-value' == '${session}'
-
-assert mojo.configuration.project[0].text() == ''
-assert mojo.configuration.project[0].'@implementation' == 'org.apache.maven.api.Project'
-assert mojo.configuration.project[0].'@default-value' == '${project}'
-
-assert mojo.configuration.mojo[0].text() == ''
-assert mojo.configuration.mojo[0].'@implementation' == 'org.apache.maven.api.MojoExecution'
-assert mojo.configuration.mojo[0].'@default-value' == '${mojoExecution}'
-
-assert mojo.configuration.settings[0].text() == ''
-assert mojo.configuration.settings[0].'@implementation' == 'org.apache.maven.api.settings.Settings'
-assert mojo.configuration.settings[0].'@default-value' == '${settings}'
-
-assert mojo.requirements.requirement.size() == 2
+assert mojo.requirements.requirement.size() == 6
assert mojo.requirements.requirement[0].role.text() == 'org.apache.maven.api.services.ArtifactInstaller'
assert mojo.requirements.requirement[0].'role-hint'.text() == 'test'
@@ -79,7 +63,23 @@ assert mojo.requirements.requirement[1].role.text() == 'org.apache.maven.api.plu
assert mojo.requirements.requirement[1].'role-hint'.isEmpty()
assert mojo.requirements.requirement[1].'field-name'.text() == 'log'
-assert mojo.parameters.parameter.size() == 7
+assert mojo.requirements.requirement[2].role.text() == 'org.apache.maven.api.MojoExecution'
+assert mojo.requirements.requirement[2].'role-hint'.isEmpty()
+assert mojo.requirements.requirement[2].'field-name'.text() == 'mojo'
+
+assert mojo.requirements.requirement[3].role.text() == 'org.apache.maven.api.Project'
+assert mojo.requirements.requirement[3].'role-hint'.isEmpty()
+assert mojo.requirements.requirement[3].'field-name'.text() == 'project'
+
+assert mojo.requirements.requirement[4].role.text() == 'org.apache.maven.api.Session'
+assert mojo.requirements.requirement[4].'role-hint'.isEmpty()
+assert mojo.requirements.requirement[4].'field-name'.text() == 'session'
+
+assert mojo.requirements.requirement[5].role.text() == 'org.apache.maven.api.settings.Settings'
+assert mojo.requirements.requirement[5].'role-hint'.isEmpty()
+assert mojo.requirements.requirement[5].'field-name'.text() == 'settings'
+
+assert mojo.parameters.parameter.size() == 3
parameter = mojo.parameters.parameter.findAll{ it.name.text() == "basedir" }[0]
assert parameter.name.text() == 'basedir'
@@ -101,16 +101,6 @@ assert parameter.required.text() == 'true'
assert parameter.editable.text() == 'true'
assert parameter.description.text() == ''
-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.api.MojoExecution'
-assert parameter.since.isEmpty()
-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() == "namedParam" }[0]
assert parameter.name.text() == 'namedParam'
assert parameter.alias.text() == 'alias'
@@ -121,46 +111,6 @@ assert parameter.required.text() == 'false'
assert parameter.editable.text() == 'true'
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.api.Session'
-assert parameter.since.isEmpty()
-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.api.Project'
-assert parameter.since.isEmpty()
-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() == "mojo" }[0]
-assert parameter.name.text() == 'mojo'
-assert parameter.alias.isEmpty()
-assert parameter.type.text() == 'org.apache.maven.api.MojoExecution'
-assert parameter.since.isEmpty()
-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.api.settings.Settings'
-assert parameter.since.isEmpty()
-assert parameter.deprecated.isEmpty()
-assert parameter.required.text() == 'true'
-assert parameter.editable.text() == 'false'
-assert parameter.description.text() == ''
-
// check help mojo source and class
assert new File( basedir, "target/classes/org/apache/maven/its/v4api/HelpMojo.class" ).isFile()
assert new File( basedir, "target/generated-sources/plugin/org/apache/maven/its/v4api/HelpMojo.java" ).isFile()
diff --git a/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugins/plugin/descriptor/EnhancedPluginDescriptorBuilder.java b/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugins/plugin/descriptor/EnhancedPluginDescriptorBuilder.java
index c9e30570..8d8c5c89 100644
--- a/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugins/plugin/descriptor/EnhancedPluginDescriptorBuilder.java
+++ b/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugins/plugin/descriptor/EnhancedPluginDescriptorBuilder.java
@@ -21,9 +21,11 @@ package org.apache.maven.plugins.plugin.descriptor;
import java.io.Reader;
import java.net.URI;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import org.apache.maven.plugin.descriptor.MojoDescriptor;
import org.apache.maven.plugin.descriptor.Parameter;
@@ -87,7 +89,8 @@ public class EnhancedPluginDescriptorBuilder extends PluginDescriptorBuilder {
PlexusConfiguration[] parameterConfigurations = c.getChild("parameters").getChildren("parameter");
- List<Parameter> parameters = new ArrayList<>(mojoDescriptor.getParameters());
+ List<Parameter> parameters = new ArrayList<>(
+ Optional.ofNullable(mojoDescriptor.getParameters()).orElseGet(Collections::emptyList));
Map<String, Parameter> parameterMap = new LinkedHashMap<>(mojoDescriptor.getParameterMap());
for (PlexusConfiguration d : parameterConfigurations) {
@@ -107,12 +110,12 @@ public class EnhancedPluginDescriptorBuilder extends PluginDescriptorBuilder {
}
}
- // clear() is required for maven < 3.6.2
- mojoDescriptor.getParameters().clear();
+ // TODO This cruft has been resolved in maven-4.0.0-alpha-1 with MNG-6776
+ if (mojoDescriptor.getParameters() != null) {
+ mojoDescriptor.getParameters().clear();
+ }
// set parameters
mojoDescriptor.setParameters(parameters);
- // on maven < 3.6.2, getParameterMap is kept internally in a field
- // so update it in case we're on an old maven version
mojoDescriptor.getParameterMap().putAll(parameterMap);
return mojoDescriptor;
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java
index a541969b..386e73f9 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java
@@ -75,7 +75,6 @@ import org.apache.maven.tools.plugin.extractor.annotations.scanner.MojoAnnotated
import org.apache.maven.tools.plugin.extractor.annotations.scanner.MojoAnnotationsScanner;
import org.apache.maven.tools.plugin.extractor.annotations.scanner.MojoAnnotationsScannerRequest;
import org.apache.maven.tools.plugin.javadoc.JavadocLinkGenerator;
-import org.apache.maven.tools.plugin.util.PluginUtils;
import org.codehaus.plexus.archiver.ArchiverException;
import org.codehaus.plexus.archiver.UnArchiver;
import org.codehaus.plexus.archiver.manager.ArchiverManager;
@@ -780,28 +779,12 @@ public class JavaAnnotationsMojoDescriptorExtractor extends AbstractLogEnabled i
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: deprecated
- getLogger()
- .warn("Deprecated @Component annotation for '" + parameter.getName() + "' field in "
- + mojoAnnotatedClass.getClassName()
- + ": replace with @Parameter( defaultValue = \"" + expression
- + "\", readonly = true )");
- parameter.setDefaultValue(expression);
- parameter.setType(componentAnnotationContent.getRoleClassName());
- parameter.setRequired(true);
- }
+ parameter.setRequirement(new Requirement(
+ componentAnnotationContent.getRoleClassName(), componentAnnotationContent.hint()));
parameter.setDeprecated(componentAnnotationContent.getDeprecated());
parameter.setSince(componentAnnotationContent.getSince());
- // same behaviour as JavaMojoDescriptorExtractor
- // parameter.setRequired( ... );
+ // same behaviour as JavaJavadocMojoDescriptorExtractor
parameter.setEditable(false);
mojoDescriptor.addParameter(parameter);
diff --git a/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/util/PluginUtils.java b/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/util/PluginUtils.java
index 4aa62ae7..98b764bb 100644
--- a/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/util/PluginUtils.java
+++ b/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/util/PluginUtils.java
@@ -25,9 +25,7 @@ import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import org.apache.maven.artifact.DependencyResolutionRequiredException;
import org.apache.maven.plugin.descriptor.MojoDescriptor;
@@ -49,36 +47,6 @@ public final class PluginUtils {
// nop
}
- /**
- * Expression associated with class types to recognize Maven objects (injected in fact as parameters by <a
- * href="/ref/current/maven-core/apidocs/org/apache/maven/plugin/PluginParameterExpressionEvaluator.html">
- * maven-core's PluginParameterExpressionEvaluator</a>) like components ("real" components are injected by Plexus).
- *
- * @deprecated wrong approach (fake components), documented parameter default values instead to learn people how to
- * discover them
- */
- @Deprecated
- public static final Map<String, String> MAVEN_COMPONENTS;
-
- static {
- Map<String, String> mavenComponents = new HashMap<>();
-
- mavenComponents.put("org.apache.maven.execution.MavenSession", "${session}");
- mavenComponents.put("org.apache.maven.project.MavenProject", "${project}");
- mavenComponents.put("org.apache.maven.plugin.MojoExecution", "${mojoExecution}");
- mavenComponents.put("org.apache.maven.plugin.descriptor.PluginDescriptor", "${plugin}");
- mavenComponents.put("org.apache.maven.settings.Settings", "${settings}");
-
- mavenComponents.put("org.apache.maven.api.Session", "${session}");
- mavenComponents.put("org.apache.maven.api.Project", "${project}");
- mavenComponents.put("org.apache.maven.api.MojoExecution", "${mojoExecution}");
- // TODO: apiv4: add PluginDescriptor to the api ?
- // mavenComponents.put( "org.apache.maven.api.descriptor.PluginDescriptor", "${plugin}" );
- mavenComponents.put("org.apache.maven.api.settings.Settings", "${settings}");
-
- MAVEN_COMPONENTS = Collections.unmodifiableMap(mavenComponents);
- }
-
/**
* @param basedir not null
* @param include not null
diff --git a/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/javadoc/JavaJavadocMojoDescriptorExtractor.java b/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/javadoc/JavaJavadocMojoDescriptorExtractor.java
index aba7cc20..5c5437b1 100644
--- a/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/javadoc/JavaJavadocMojoDescriptorExtractor.java
+++ b/maven-plugin-tools-java/src/main/java/org/apache/maven/tools/plugin/extractor/javadoc/JavaJavadocMojoDescriptorExtractor.java
@@ -49,7 +49,6 @@ import org.apache.maven.tools.plugin.PluginToolsRequest;
import org.apache.maven.tools.plugin.extractor.ExtractionException;
import org.apache.maven.tools.plugin.extractor.GroupKey;
import org.apache.maven.tools.plugin.extractor.MojoDescriptorExtractor;
-import org.apache.maven.tools.plugin.util.PluginUtils;
import org.codehaus.plexus.logging.AbstractLogEnabled;
/**
@@ -399,29 +398,8 @@ public class JavaJavadocMojoDescriptorExtractor extends AbstractLogEnabled
roleHint = componentTag.getNamedParameter("role-hint");
}
- // recognize Maven-injected objects as components annotations instead of parameters
- // 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 (!isDeprecated) {
- // normal component
- pd.setRequirement(new Requirement(role, roleHint));
- } else {
- // 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 = \"" + role
- + "\", readonly = true )");
- pd.setDefaultValue(role);
- pd.setRequired(true);
- }
-
+ pd.setRequirement(new Requirement(role, roleHint));
pd.setEditable(false);
- /* TODO: or better like this? Need @component fields be editable for the user?
- pd.setEditable( field.getTagByName( READONLY ) == null );
- */
} else {
// Parameter tag
DocletTag parameter = field.getTagByName(JavadocMojoAnnotation.PARAMETER);