You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by el...@apache.org on 2024/12/30 17:13:24 UTC

(maven-dependency-plugin) 01/01: Convert Analyze Mojos to Guice constructor injection

This is an automated email from the ASF dual-hosted git repository.

elharo pushed a commit to branch MDEP-966
in repository https://gitbox.apache.org/repos/asf/maven-dependency-plugin.git

commit 6e89b28ca760446437dd6616239190ba0ef10281
Author: Elliotte Rusty Harold <el...@ibiblio.org>
AuthorDate: Mon Dec 30 12:13:02 2024 -0500

    Convert Analyze Mojos to Guice constructor injection
---
 .../dependency/analyze/AbstractAnalyzeMojo.java    | 30 ++++++++++++----------
 .../plugins/dependency/analyze/AnalyzeMojo.java    | 15 ++++++++---
 .../dependency/analyze/AnalyzeOnlyMojo.java        | 11 +++++++-
 3 files changed, 38 insertions(+), 18 deletions(-)

diff --git a/src/main/java/org/apache/maven/plugins/dependency/analyze/AbstractAnalyzeMojo.java b/src/main/java/org/apache/maven/plugins/dependency/analyze/AbstractAnalyzeMojo.java
index 05b9cb3c..765b334b 100644
--- a/src/main/java/org/apache/maven/plugins/dependency/analyze/AbstractAnalyzeMojo.java
+++ b/src/main/java/org/apache/maven/plugins/dependency/analyze/AbstractAnalyzeMojo.java
@@ -34,7 +34,6 @@ import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.artifact.filter.StrictPatternExcludesArtifactFilter;
@@ -55,19 +54,6 @@ import org.codehaus.plexus.util.xml.PrettyPrintXMLWriter;
 public abstract class AbstractAnalyzeMojo extends AbstractMojo {
     // fields -----------------------------------------------------------------
 
-    /**
-     * The plexusContainer to look-up the right {@link ProjectDependencyAnalyzer} implementation depending on the mojo
-     * configuration.
-     */
-    @Component
-    private PlexusContainer plexusContainer;
-
-    /**
-     * The Maven project to analyze.
-     */
-    @Component
-    private MavenProject project;
-
     /**
      * Specify the project dependency analyzer to use (plexus component role-hint). By default,
      * <a href="/shared/maven-dependency-analyzer/">maven-dependency-analyzer</a> is used. To use this, you must declare
@@ -271,6 +257,22 @@ public abstract class AbstractAnalyzeMojo extends AbstractMojo {
     @Parameter(property = "mdep.analyze.excludedClasses")
     private Set<String> excludedClasses;
 
+    /**
+     * The plexusContainer to look up the {@link ProjectDependencyAnalyzer} implementation depending on the mojo
+     * configuration.
+     */
+    private final PlexusContainer plexusContainer;
+
+    /**
+     * The Maven project to analyze.
+     */
+    private final MavenProject project;
+
+    protected AbstractAnalyzeMojo(PlexusContainer plexusContainer, MavenProject project) {
+        this.plexusContainer = plexusContainer;
+        this.project = project;
+    }
+
     // Mojo methods -----------------------------------------------------------
 
     /*
diff --git a/src/main/java/org/apache/maven/plugins/dependency/analyze/AnalyzeMojo.java b/src/main/java/org/apache/maven/plugins/dependency/analyze/AnalyzeMojo.java
index 84907bb6..1cab8753 100644
--- a/src/main/java/org/apache/maven/plugins/dependency/analyze/AnalyzeMojo.java
+++ b/src/main/java/org/apache/maven/plugins/dependency/analyze/AnalyzeMojo.java
@@ -18,17 +18,21 @@
  */
 package org.apache.maven.plugins.dependency.analyze;
 
+import javax.inject.Inject;
+
 import org.apache.maven.plugins.annotations.Execute;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.PlexusContainer;
 
 /**
  * Analyzes the dependencies of this project and determines which are: used and declared; used and undeclared; unused
- * and declared. This goal is intended to be used standalone, thus it always executes the <code>test-compile</code>
- * phase - use the <code>dependency:analyze-only</code> goal instead when participating in the build lifecycle.
+ * and declared. This goal is intended to be used standalone. Thus, it always executes the <code>test-compile</code>
+ * phase. Use the <code>dependency:analyze-only</code> goal instead when participating in the build lifecycle.
  * <p>
- * By default, <a href="http://maven.apache.org/shared/maven-dependency-analyzer/">maven-dependency-analyzer</a> is used
+ * By default, <a href="https://maven.apache.org/shared/maven-dependency-analyzer/">maven-dependency-analyzer</a> is used
  * to perform the analysis, with limitations due to the fact that it works at bytecode level, but any analyzer can be
  * plugged in through <code>analyzer</code> parameter.
  * </p>
@@ -41,4 +45,9 @@ import org.apache.maven.plugins.annotations.ResolutionScope;
 @Execute(phase = LifecyclePhase.TEST_COMPILE)
 public class AnalyzeMojo extends AbstractAnalyzeMojo {
     // subclassed to provide annotations
+
+    @Inject
+    public AnalyzeMojo(PlexusContainer plexusContainer, MavenProject project) {
+        super(plexusContainer, project);
+    }
 }
diff --git a/src/main/java/org/apache/maven/plugins/dependency/analyze/AnalyzeOnlyMojo.java b/src/main/java/org/apache/maven/plugins/dependency/analyze/AnalyzeOnlyMojo.java
index 43d1e302..ba7d0ddd 100644
--- a/src/main/java/org/apache/maven/plugins/dependency/analyze/AnalyzeOnlyMojo.java
+++ b/src/main/java/org/apache/maven/plugins/dependency/analyze/AnalyzeOnlyMojo.java
@@ -18,9 +18,13 @@
  */
 package org.apache.maven.plugins.dependency.analyze;
 
+import javax.inject.Inject;
+
 import org.apache.maven.plugins.annotations.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.PlexusContainer;
 
 /**
  * Analyzes the dependencies of this project and determines which are: used and declared; used and undeclared; unused
@@ -28,7 +32,7 @@ import org.apache.maven.plugins.annotations.ResolutionScope;
  * <code>test-compile</code> phase has been executed - use the <code>dependency:analyze</code> goal instead when running
  * standalone.
  * <p>
- * By default, <a href="http://maven.apache.org/shared/maven-dependency-analyzer/">maven-dependency-analyzer</a> is used
+ * By default, <a href="https://maven.apache.org/shared/maven-dependency-analyzer/">maven-dependency-analyzer</a> is used
  * to perform the analysis, with limitations due to the fact that it works at bytecode level, but any analyzer can be
  * plugged in through <code>analyzer</code> parameter.
  * </p>
@@ -46,4 +50,9 @@ import org.apache.maven.plugins.annotations.ResolutionScope;
 // @formatter:on
 public class AnalyzeOnlyMojo extends AbstractAnalyzeMojo {
     // subclassed to provide annotations
+
+    @Inject
+    public AnalyzeOnlyMojo(PlexusContainer plexusContainer, MavenProject project) {
+        super(plexusContainer, project);
+    }
 }