From 9e36e6137c91f85460f0a9cc3a5a1f9b4f52ba71 Mon Sep 17 00:00:00 2001 From: Elliotte Rusty Harold Date: Sun, 15 Dec 2024 00:00:20 +0000 Subject: [PATCH] Prefer Guice injection (#177) * Prefer Guice injection --- .../maven/plugins/pmd/AbstractPmdReport.java | 8 +++--- .../plugins/pmd/AggregatorCpdReport.java | 10 ++++++++ .../pmd/AggregatorPmdNoForkReport.java | 18 ++++++++++++- .../plugins/pmd/AggregatorPmdReport.java | 16 ++++++++++++ .../apache/maven/plugins/pmd/CpdReport.java | 13 +++++++--- .../apache/maven/plugins/pmd/PmdReport.java | 25 +++++++++++++------ 6 files changed, 76 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdReport.java b/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdReport.java index fbf21591..fc582b6b 100644 --- a/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdReport.java +++ b/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdReport.java @@ -38,7 +38,6 @@ import net.sourceforge.pmd.PMDVersion; import org.apache.maven.execution.MavenSession; import org.apache.maven.plugin.MojoExecution; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; import org.apache.maven.reporting.AbstractMavenReport; @@ -261,12 +260,15 @@ public abstract class AbstractPmdReport extends AbstractMavenReport { @Parameter(defaultValue = "${session}", required = true, readonly = true) protected MavenSession session; - @Component - private ToolchainManager toolchainManager; + private final ToolchainManager toolchainManager; /** The files that are being analyzed. */ protected Map filesToProcess; + protected AbstractPmdReport(ToolchainManager toolchainManager) { + this.toolchainManager = toolchainManager; + } + @Override protected MavenProject getProject() { return project; diff --git a/src/main/java/org/apache/maven/plugins/pmd/AggregatorCpdReport.java b/src/main/java/org/apache/maven/plugins/pmd/AggregatorCpdReport.java index 482b709b..91700ffb 100644 --- a/src/main/java/org/apache/maven/plugins/pmd/AggregatorCpdReport.java +++ b/src/main/java/org/apache/maven/plugins/pmd/AggregatorCpdReport.java @@ -18,7 +18,11 @@ */ package org.apache.maven.plugins.pmd; +import javax.inject.Inject; + import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.toolchain.ToolchainManager; +import org.codehaus.plexus.i18n.I18N; /** * Creates a report for PMD's Copy/Paste Detector (CPD) tool in an aggregator project. @@ -31,6 +35,12 @@ */ @Mojo(name = "aggregate-cpd", aggregator = true, threadSafe = true) public class AggregatorCpdReport extends CpdReport { + + @Inject + public AggregatorCpdReport(ToolchainManager toolchainManager, I18N i18n) { + super(toolchainManager, i18n); + } + @Override protected boolean isAggregator() { return true; diff --git a/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdNoForkReport.java b/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdNoForkReport.java index 84185949..08c8b64c 100644 --- a/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdNoForkReport.java +++ b/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdNoForkReport.java @@ -18,10 +18,16 @@ */ package org.apache.maven.plugins.pmd; +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.shared.transfer.dependencies.resolve.DependencyResolver; +import org.apache.maven.toolchain.ToolchainManager; +import org.codehaus.plexus.i18n.I18N; +import org.codehaus.plexus.resource.ResourceManager; /** * Creates a PMD site report in an aggregator project without forking the test-compile phase again. @@ -34,4 +40,14 @@ threadSafe = true, requiresDependencyResolution = ResolutionScope.TEST) @Execute(phase = LifecyclePhase.NONE) -public class AggregatorPmdNoForkReport extends AggregatorPmdReport {} +public class AggregatorPmdNoForkReport extends AggregatorPmdReport { + + @Inject + public AggregatorPmdNoForkReport( + ToolchainManager toolchainManager, + ResourceManager locator, + DependencyResolver dependencyResolver, + I18N i18n) { + super(toolchainManager, locator, dependencyResolver, i18n); + } +} diff --git a/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdReport.java b/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdReport.java index 8e635b4e..0414c217 100644 --- a/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdReport.java +++ b/src/main/java/org/apache/maven/plugins/pmd/AggregatorPmdReport.java @@ -18,10 +18,16 @@ */ package org.apache.maven.plugins.pmd; +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.shared.transfer.dependencies.resolve.DependencyResolver; +import org.apache.maven.toolchain.ToolchainManager; +import org.codehaus.plexus.i18n.I18N; +import org.codehaus.plexus.resource.ResourceManager; /** * Creates a PMD site report in an aggregator project based on the rulesets and configuration set in the plugin. @@ -32,6 +38,16 @@ @Mojo(name = "aggregate-pmd", aggregator = true, threadSafe = true, requiresDependencyResolution = ResolutionScope.TEST) @Execute(phase = LifecyclePhase.TEST_COMPILE) public class AggregatorPmdReport extends PmdReport { + + @Inject + public AggregatorPmdReport( + ToolchainManager toolchainManager, + ResourceManager locator, + DependencyResolver dependencyResolver, + I18N i18n) { + super(toolchainManager, locator, dependencyResolver, i18n); + } + @Override protected boolean isAggregator() { return true; diff --git a/src/main/java/org/apache/maven/plugins/pmd/CpdReport.java b/src/main/java/org/apache/maven/plugins/pmd/CpdReport.java index b087aeb7..3ba1b7d9 100644 --- a/src/main/java/org/apache/maven/plugins/pmd/CpdReport.java +++ b/src/main/java/org/apache/maven/plugins/pmd/CpdReport.java @@ -18,11 +18,12 @@ */ package org.apache.maven.plugins.pmd; +import javax.inject.Inject; + import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.Locale; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.pmd.exec.CpdExecutor; @@ -30,6 +31,7 @@ import org.apache.maven.plugins.pmd.exec.CpdResult; import org.apache.maven.reporting.MavenReportException; import org.apache.maven.toolchain.Toolchain; +import org.apache.maven.toolchain.ToolchainManager; import org.codehaus.plexus.i18n.I18N; /** @@ -97,8 +99,7 @@ public class CpdReport extends AbstractPmdReport { /** * Internationalization component */ - @Component - private I18N i18n; + private final I18N i18n; /** * Contains the result of the last CPD execution. @@ -107,6 +108,12 @@ public class CpdReport extends AbstractPmdReport { */ private CpdResult cpdResult; + @Inject + public CpdReport(ToolchainManager toolchainManager, I18N i18n) { + super(toolchainManager); + this.i18n = i18n; + } + /** {@inheritDoc} */ public String getName(Locale locale) { return getI18nString(locale, "name"); diff --git a/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java b/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java index 4c9cd6c8..b3bf3e9e 100644 --- a/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java +++ b/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java @@ -18,6 +18,8 @@ */ package org.apache.maven.plugins.pmd; +import javax.inject.Inject; + import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -27,7 +29,6 @@ import net.sourceforge.pmd.renderers.Renderer; import org.apache.maven.model.Dependency; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; @@ -45,6 +46,7 @@ import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult; import org.apache.maven.shared.transfer.dependencies.resolve.DependencyResolver; import org.apache.maven.toolchain.Toolchain; +import org.apache.maven.toolchain.ToolchainManager; import org.codehaus.plexus.i18n.I18N; import org.codehaus.plexus.resource.ResourceManager; import org.codehaus.plexus.resource.loader.FileResourceCreationException; @@ -231,17 +233,14 @@ public class PmdReport extends AbstractPmdReport { * Used to locate configured rulesets. The rulesets could be on the plugin * classpath or in the local project file system. */ - @Component - private ResourceManager locator; + private final ResourceManager locator; - @Component - private DependencyResolver dependencyResolver; + private final DependencyResolver dependencyResolver; /** * Internationalization component */ - @Component - private I18N i18n; + private final I18N i18n; /** * Contains the result of the last PMD execution. @@ -250,6 +249,18 @@ public class PmdReport extends AbstractPmdReport { */ private PmdResult pmdResult; + @Inject + public PmdReport( + ToolchainManager toolchainManager, + ResourceManager locator, + DependencyResolver dependencyResolver, + I18N i18n) { + super(toolchainManager); + this.locator = locator; + this.dependencyResolver = dependencyResolver; + this.i18n = i18n; + } + /** {@inheritDoc} */ public String getName(Locale locale) { return getI18nString(locale, "name");