This is an automated email from the ASF dual-hosted git repository.
elharo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-pmd-plugin.git
The following commit(s) were added to refs/heads/master by this push:
new 9e36e61 Prefer Guice injection (#177)
9e36e61 is described below
commit 9e36e6137c91f85460f0a9cc3a5a1f9b4f52ba71
Author: Elliotte Rusty Harold <[email protected]>
AuthorDate: Sun Dec 15 00:00:20 2024 +0000
Prefer Guice injection (#177)
* Prefer Guice injection
---
.../maven/plugins/pmd/AbstractPmdReport.java | 8 ++++---
.../maven/plugins/pmd/AggregatorCpdReport.java | 10 +++++++++
.../plugins/pmd/AggregatorPmdNoForkReport.java | 18 +++++++++++++++-
.../maven/plugins/pmd/AggregatorPmdReport.java | 16 ++++++++++++++
.../org/apache/maven/plugins/pmd/CpdReport.java | 13 ++++++++---
.../org/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 fbf2159..fc582b6 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 java.util.TreeMap;
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<File, PmdFileInfo> 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 482b709..91700ff 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
<b>aggregator</b> project.
@@ -31,6 +35,12 @@ import org.apache.maven.plugins.annotations.Mojo;
*/
@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 8418594..08c8b64 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 <b>aggregator</b> project without forking
the <code>test-compile</code> phase again.
@@ -34,4 +40,14 @@ import org.apache.maven.plugins.annotations.ResolutionScope;
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 8e635b4..0414c21 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 <b>aggregator</b> project based on the
rulesets and configuration set in the plugin.
@@ -32,6 +38,16 @@ import org.apache.maven.plugins.annotations.ResolutionScope;
@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 b087aeb..3ba1b7d 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.CpdRequest;
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 4c9cd6c..b3bf3e9 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 java.util.Locale;
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.artifact.filter.resolve.TransformableFilter;
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");