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-invoker-plugin.git
The following commit(s) were added to refs/heads/master by this push: new 7ad7463 Switch to Guice constructor injection (#266) 7ad7463 is described below commit 7ad7463193ed2b0546b702fe107ef36eda65c328 Author: Elliotte Rusty Harold <elh...@users.noreply.github.com> AuthorDate: Tue Dec 24 11:31:20 2024 +0000 Switch to Guice constructor injection (#266) * Switch to Guice injection --- pom.xml | 1 - .../maven/plugins/invoker/AbstractInvokerMojo.java | 28 +++++++++++++--------- .../maven/plugins/invoker/IntegrationTestMojo.java | 16 ++++++++++++- .../apache/maven/plugins/invoker/InvokerMojo.java | 14 +++++++++++ .../maven/plugins/invoker/InvokerReport.java | 11 ++++++--- .../maven/plugins/invoker/InterpolationTest.java | 6 ++--- .../maven/plugins/invoker/InvokerMojoTest.java | 11 +++------ 7 files changed, 59 insertions(+), 28 deletions(-) diff --git a/pom.xml b/pom.xml index 63b5839..7ecaccd 100644 --- a/pom.xml +++ b/pom.xml @@ -257,7 +257,6 @@ under the License. <artifactId>maven-shared-utils</artifactId> <version>3.4.2</version> </dependency> - <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> diff --git a/src/main/java/org/apache/maven/plugins/invoker/AbstractInvokerMojo.java b/src/main/java/org/apache/maven/plugins/invoker/AbstractInvokerMojo.java index 2b06cf6..814af54 100644 --- a/src/main/java/org/apache/maven/plugins/invoker/AbstractInvokerMojo.java +++ b/src/main/java/org/apache/maven/plugins/invoker/AbstractInvokerMojo.java @@ -57,7 +57,6 @@ import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecution; 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.plugins.invoker.model.BuildJob; import org.apache.maven.plugins.invoker.model.io.xpp3.BuildJobXpp3Writer; @@ -746,23 +745,30 @@ public abstract class AbstractInvokerMojo extends AbstractMojo { @Parameter(defaultValue = "${settings}", readonly = true, required = true) private Settings settings; - @Component - private Invoker invoker; + private final Invoker invoker; - @Component - private SettingsBuilder settingsBuilder; + private final SettingsBuilder settingsBuilder; - @Component - private ToolchainManagerPrivate toolchainManagerPrivate; + private final ToolchainManagerPrivate toolchainManagerPrivate; - @Component - private InterpolatorUtils interpolatorUtils; + private final InterpolatorUtils interpolatorUtils; + + public AbstractInvokerMojo( + Invoker invoker, + SettingsBuilder settingsBuilder, + ToolchainManagerPrivate toolchainManagerPrivate, + InterpolatorUtils interpolatorUtils) { + this.invoker = invoker; + this.settingsBuilder = settingsBuilder; + this.toolchainManagerPrivate = toolchainManagerPrivate; + this.interpolatorUtils = interpolatorUtils; + } /** * Invokes Maven on the configured test projects. * - * @throws org.apache.maven.plugin.MojoExecutionException If the goal encountered severe errors. - * @throws org.apache.maven.plugin.MojoFailureException If any of the Maven builds failed. + * @throws org.apache.maven.plugin.MojoExecutionException if the goal encountered severe errors + * @throws org.apache.maven.plugin.MojoFailureException if any of the Maven builds failed */ public void execute() throws MojoExecutionException, MojoFailureException { if (skipInvocation) { diff --git a/src/main/java/org/apache/maven/plugins/invoker/IntegrationTestMojo.java b/src/main/java/org/apache/maven/plugins/invoker/IntegrationTestMojo.java index 8fe675b..58e3386 100644 --- a/src/main/java/org/apache/maven/plugins/invoker/IntegrationTestMojo.java +++ b/src/main/java/org/apache/maven/plugins/invoker/IntegrationTestMojo.java @@ -18,10 +18,15 @@ */ package org.apache.maven.plugins.invoker; +import javax.inject.Inject; + import org.apache.maven.plugin.MojoFailureException; 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.settings.building.SettingsBuilder; +import org.apache.maven.shared.invoker.Invoker; +import org.apache.maven.toolchain.ToolchainManagerPrivate; /** * Searches for integration test Maven projects, and executes each, collecting a log in the project directory, will @@ -36,10 +41,19 @@ import org.apache.maven.plugins.annotations.ResolutionScope; defaultPhase = LifecyclePhase.INTEGRATION_TEST, requiresDependencyResolution = ResolutionScope.TEST, threadSafe = true) +// CHECKSTYLE_ON: LineLength public class IntegrationTestMojo extends AbstractInvokerMojo { + @Inject + public IntegrationTestMojo( + Invoker invoker, + SettingsBuilder settingsBuilder, + ToolchainManagerPrivate toolchainManagerPrivate, + InterpolatorUtils interpolatorUtils) { + super(invoker, settingsBuilder, toolchainManagerPrivate, interpolatorUtils); + } + void processResults(InvokerSession invokerSession) throws MojoFailureException { // do nothing } } -// CHECKSTYLE_ON: LineLength diff --git a/src/main/java/org/apache/maven/plugins/invoker/InvokerMojo.java b/src/main/java/org/apache/maven/plugins/invoker/InvokerMojo.java index 361319a..1ff0de6 100644 --- a/src/main/java/org/apache/maven/plugins/invoker/InvokerMojo.java +++ b/src/main/java/org/apache/maven/plugins/invoker/InvokerMojo.java @@ -18,11 +18,16 @@ */ package org.apache.maven.plugins.invoker; +import javax.inject.Inject; + import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; +import org.apache.maven.settings.building.SettingsBuilder; +import org.apache.maven.shared.invoker.Invoker; +import org.apache.maven.toolchain.ToolchainManagerPrivate; /** * Searches for integration test Maven projects, and executes each, collecting a log in the project directory, and @@ -66,6 +71,15 @@ public class InvokerMojo extends AbstractInvokerMojo { @Parameter(property = "invoker.streamLogsOnFailures", defaultValue = "false") private boolean streamLogsOnFailures; + @Inject + public InvokerMojo( + Invoker invoker, + SettingsBuilder settingsBuilder, + ToolchainManagerPrivate toolchainManagerPrivate, + InterpolatorUtils interpolaterUtils) { + super(invoker, settingsBuilder, toolchainManagerPrivate, interpolaterUtils); + } + void processResults(InvokerSession invokerSession) throws MojoFailureException { if (streamLogsOnFailures) { invokerSession.logFailedBuildLog(getLog(), ignoreFailures); diff --git a/src/main/java/org/apache/maven/plugins/invoker/InvokerReport.java b/src/main/java/org/apache/maven/plugins/invoker/InvokerReport.java index ebc47b3..854c32f 100644 --- a/src/main/java/org/apache/maven/plugins/invoker/InvokerReport.java +++ b/src/main/java/org/apache/maven/plugins/invoker/InvokerReport.java @@ -18,13 +18,14 @@ */ package org.apache.maven.plugins.invoker; +import javax.inject.Inject; + import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; 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.invoker.model.BuildJob; @@ -55,8 +56,12 @@ public class InvokerReport extends AbstractMavenReport { /** * Internationalization component */ - @Component - protected I18N i18n; + protected final I18N i18n; + + @Inject + public InvokerReport(I18N i18n) { + this.i18n = i18n; + } protected void executeReport(Locale locale) throws MavenReportException { File[] reportFiles = getReportFiles(); diff --git a/src/test/java/org/apache/maven/plugins/invoker/InterpolationTest.java b/src/test/java/org/apache/maven/plugins/invoker/InterpolationTest.java index dd45ae7..6e0be14 100644 --- a/src/test/java/org/apache/maven/plugins/invoker/InterpolationTest.java +++ b/src/test/java/org/apache/maven/plugins/invoker/InterpolationTest.java @@ -56,7 +56,6 @@ class InterpolationTest { @Test void testCompositeMap() { - Map<String, Object> properties = new HashMap<>(); properties.put("foo", "bar"); properties.put("version", "2.0-SNAPSHOT"); @@ -70,8 +69,7 @@ class InterpolationTest { @Test void testPomInterpolation() throws Exception { - File interpolatedPomFile; - InvokerMojo invokerMojo = new InvokerMojo(); + InvokerMojo invokerMojo = new InvokerMojo(null, null, null, null); TestUtil.setVariableValueToObject(invokerMojo, "project", buildMavenProjectStub()); TestUtil.setVariableValueToObject(invokerMojo, "settings", new Settings()); Properties properties = new Properties(); @@ -81,7 +79,7 @@ class InterpolationTest { String dirPath = TestUtil.getBasedir() + File.separatorChar + "src" + File.separatorChar + "test" + File.separatorChar + "resources" + File.separatorChar + "unit" + File.separatorChar + "interpolation"; - interpolatedPomFile = new File(TestUtil.getBasedir(), "target/interpolated-pom.xml"); + File interpolatedPomFile = new File(TestUtil.getBasedir(), "target/interpolated-pom.xml"); invokerMojo.buildInterpolatedFile(new File(dirPath, "pom.xml"), interpolatedPomFile); try (Reader reader = new XmlStreamReader(interpolatedPomFile)) { String content = IOUtil.toString(reader); diff --git a/src/test/java/org/apache/maven/plugins/invoker/InvokerMojoTest.java b/src/test/java/org/apache/maven/plugins/invoker/InvokerMojoTest.java index b8b8f33..529e1f2 100644 --- a/src/test/java/org/apache/maven/plugins/invoker/InvokerMojoTest.java +++ b/src/test/java/org/apache/maven/plugins/invoker/InvokerMojoTest.java @@ -42,6 +42,8 @@ class InvokerMojoTest { private static final String INTERPOLATION_PROJECT = "interpolation" + File.separator + "pom.xml"; private static final String WITHOUT_POM_PROJECT = "without-pom-project-dir"; + private final InvokerMojo invokerMojo = new InvokerMojo(null, null, null, null); + private MavenProject getMavenProject() { MavenProject mavenProject = new MavenProject(); mavenProject.setFile(new File("target/foo.txt")); @@ -52,7 +54,6 @@ class InvokerMojoTest { void testSingleInvokerTest() throws Exception { // given MavenProject mavenProject = getMavenProject(); - InvokerMojo invokerMojo = new InvokerMojo(); String dirPath = getBasedir() + "/src/test/resources/unit"; setVariableValueToObject(invokerMojo, "projectsDirectory", new File(dirPath)); setVariableValueToObject(invokerMojo, "invokerPropertiesFile", "invoker.properties"); @@ -72,7 +73,6 @@ class InvokerMojoTest { void testMultiInvokerTest() throws Exception { // given MavenProject mavenProject = getMavenProject(); - InvokerMojo invokerMojo = new InvokerMojo(); String dirPath = getBasedir() + "/src/test/resources/unit"; setVariableValueToObject(invokerMojo, "projectsDirectory", new File(dirPath)); setVariableValueToObject(invokerMojo, "invokerPropertiesFile", "invoker.properties"); @@ -92,7 +92,6 @@ class InvokerMojoTest { void testFullPatternInvokerTest() throws Exception { // given MavenProject mavenProject = getMavenProject(); - InvokerMojo invokerMojo = new InvokerMojo(); String dirPath = getBasedir() + "/src/test/resources/unit"; setVariableValueToObject(invokerMojo, "projectsDirectory", new File(dirPath)); setVariableValueToObject(invokerMojo, "invokerPropertiesFile", "invoker.properties"); @@ -115,7 +114,6 @@ class InvokerMojoTest { void testSetupInProjectList() throws Exception { // given MavenProject mavenProject = getMavenProject(); - InvokerMojo invokerMojo = new InvokerMojo(); String dirPath = getBasedir() + "/src/test/resources/unit"; setVariableValueToObject(invokerMojo, "projectsDirectory", new File(dirPath)); setVariableValueToObject(invokerMojo, "invokerPropertiesFile", "invoker.properties"); @@ -144,11 +142,10 @@ class InvokerMojoTest { @Test void testSetupProjectIsFiltered() throws Exception { // given - MavenProject mavenProject = getMavenProject(); - InvokerMojo invokerMojo = new InvokerMojo(); String dirPath = getBasedir() + "/src/test/resources/unit"; setVariableValueToObject(invokerMojo, "projectsDirectory", new File(dirPath)); setVariableValueToObject(invokerMojo, "invokerPropertiesFile", "invoker.properties"); + MavenProject mavenProject = getMavenProject(); setVariableValueToObject(invokerMojo, "project", mavenProject); setVariableValueToObject(invokerMojo, "interpolatorUtils", new InterpolatorUtils(mavenProject)); setVariableValueToObject(invokerMojo, "settings", new Settings()); @@ -189,8 +186,6 @@ class InvokerMojoTest { {"2.5C", (int) (Double.parseDouble("2.5") * Runtime.getRuntime().availableProcessors())} }; - InvokerMojo invokerMojo = new InvokerMojo(); - for (Object[] testValue : testValues) { String parallelThreads = (String) testValue[0]; int expectedParallelThreads = (Integer) testValue[1];