This is an automated email from the ASF dual-hosted git repository. slachiewicz pushed a commit to branch mvn4rc5 in repository https://gitbox.apache.org/repos/asf/maven-compiler-plugin.git
commit c48bc3b5b0483f659385725cad10bbbfacbff586 Author: Sylwester Lachiewicz <[email protected]> AuthorDate: Sun Jun 28 23:54:04 2026 +0200 Update testCompile mojo configuration and bump Maven version to 4.0.0-rc-5 Add deprecation warnings and update source handling in CompilerMojoTestCase --- .github/workflows/maven-verify.yml | 4 +- pom.xml | 2 +- .../plugin/compiler/CompilerMojoTestCase.java | 52 ++++++++++++---------- 3 files changed, 32 insertions(+), 26 deletions(-) diff --git a/.github/workflows/maven-verify.yml b/.github/workflows/maven-verify.yml index 5cc2570..702e30a 100644 --- a/.github/workflows/maven-verify.yml +++ b/.github/workflows/maven-verify.yml @@ -28,8 +28,8 @@ jobs: with: jdk-distribution-matrix: '[ "temurin", "zulu", "microsoft", "adopt-openj9" ]' maven4-build: true - maven4-version: '4.0.0-rc-4' # the same as used in project + maven4-version: '4.0.0-rc-5' # the same as used in project matrix-exclude: '[ { "jdk": "25", "distribution": "adopt-openj9" }, - { "jdk": "25", "distribution": "microsoft"} + { "jdk": "25", "distribution": "microsoft"} ]' diff --git a/pom.xml b/pom.xml index 6b1472b..7ba5592 100644 --- a/pom.xml +++ b/pom.xml @@ -82,7 +82,7 @@ under the License. <properties> <javaVersion>17</javaVersion> - <mavenVersion>4.0.0-rc-4</mavenVersion> + <mavenVersion>4.0.0-rc-5</mavenVersion> <asmVersion>9.10.1</asmVersion> <guiceVersion>7.0.0</guiceVersion> diff --git a/src/test/java/org/apache/maven/plugin/compiler/CompilerMojoTestCase.java b/src/test/java/org/apache/maven/plugin/compiler/CompilerMojoTestCase.java index 744f796..e8bdd5d 100644 --- a/src/test/java/org/apache/maven/plugin/compiler/CompilerMojoTestCase.java +++ b/src/test/java/org/apache/maven/plugin/compiler/CompilerMojoTestCase.java @@ -39,6 +39,7 @@ import org.apache.maven.api.di.Provides; import org.apache.maven.api.di.Singleton; import org.apache.maven.api.model.Build; import org.apache.maven.api.model.Model; +import org.apache.maven.api.model.Source; import org.apache.maven.api.plugin.Log; import org.apache.maven.api.plugin.testing.Basedir; import org.apache.maven.api.plugin.testing.InjectMojo; @@ -127,11 +128,10 @@ public class CompilerMojoTestCase { */ @Test @Basedir("${basedir}/target/test-classes/unit/compiler-basic-test") + @SuppressWarnings("deprecation") public void testCompilerBasic( @InjectMojo(goal = "compile", pom = "plugin-config.xml") CompilerMojo compileMojo, - @InjectMojo(goal = "testCompile", pom = "plugin-config.xml") - @MojoParameter(name = "compileSourceRoots", value = "${project.basedir}/src/test/java") - TestCompilerMojo testCompileMojo) { + @InjectMojo(goal = "testCompile", pom = "plugin-config.xml") TestCompilerMojo testCompileMojo) { Log log = mock(Log.class); compileMojo.logger = log; @@ -142,6 +142,7 @@ public class CompilerMojoTestCase { session.getArtifactPath(compileMojo.projectArtifact).isPresent(), "MCOMPILER-94: artifact file should only be null if there is nothing to compile"); + testCompileMojo.compileSourceRoots = List.of(MojoExtension.getBasedir() + "/src/test/java"); testCompileMojo.execute(); assertOutputFileExists(testCompileMojo, "foo", "TestCompile0Test.class"); assertOutputFileDoesNotExist(compileMojo, "foo", "TestCompile0Test.class"); @@ -188,17 +189,17 @@ public class CompilerMojoTestCase { */ @Test @Basedir("${basedir}/target/test-classes/unit/compiler-includes-excludes-test") + @SuppressWarnings("deprecation") public void testCompilerIncludesExcludes( @InjectMojo(goal = "compile", pom = "plugin-config.xml") CompilerMojo compileMojo, - @InjectMojo(goal = "testCompile", pom = "plugin-config.xml") - @MojoParameter(name = "compileSourceRoots", value = "${project.basedir}/src/test/java") - TestCompilerMojo testCompileMojo) { + @InjectMojo(goal = "testCompile", pom = "plugin-config.xml") TestCompilerMojo testCompileMojo) { compileMojo.execute(); assertOutputFileDoesNotExist(compileMojo, "foo", "TestCompile2.class"); assertOutputFileDoesNotExist(compileMojo, "foo", "TestCompile3.class"); assertOutputFileExists(compileMojo, "foo", "TestCompile4.class"); + testCompileMojo.compileSourceRoots = List.of(MojoExtension.getBasedir() + "/src/test/java"); testCompileMojo.execute(); assertOutputFileDoesNotExist(testCompileMojo, "foo", "TestCompile2TestCase.class"); assertOutputFileDoesNotExist(testCompileMojo, "foo", "TestCompile3TestCase.class"); @@ -211,11 +212,10 @@ public class CompilerMojoTestCase { */ @Test @Basedir("${basedir}/target/test-classes/unit/compiler-fork-test") + @SuppressWarnings("deprecation") public void testCompilerFork( @InjectMojo(goal = "compile", pom = "plugin-config.xml") CompilerMojo compileMojo, - @InjectMojo(goal = "testCompile", pom = "plugin-config.xml") - @MojoParameter(name = "compileSourceRoots", value = "${project.basedir}/src/test/java") - TestCompilerMojo testCompileMojo) { + @InjectMojo(goal = "testCompile", pom = "plugin-config.xml") TestCompilerMojo testCompileMojo) { // JAVA_HOME doesn't have to be on the PATH. String javaHome = System.getenv("JAVA_HOME"); @@ -227,6 +227,7 @@ public class CompilerMojoTestCase { compileMojo.execute(); assertOutputFileExists(compileMojo, "foo", "TestCompile1.class"); + testCompileMojo.compileSourceRoots = List.of(MojoExtension.getBasedir() + "/src/test/java"); testCompileMojo.execute(); assertOutputFileExists(testCompileMojo, "foo", "TestCompile1TestCase.class"); assertOutputFileDoesNotExist(compileMojo, "foo", "TestCompile1TestCase.class"); @@ -238,17 +239,17 @@ public class CompilerMojoTestCase { */ @Test @Basedir("${basedir}/target/test-classes/unit/compiler-one-output-file-test") + @SuppressWarnings("deprecation") public void testOneOutputFileForAllInput( @InjectMojo(goal = "compile", pom = "plugin-config.xml") CompilerMojo compileMojo, - @InjectMojo(goal = "testCompile", pom = "plugin-config.xml") - @MojoParameter(name = "compileSourceRoots", value = "${project.basedir}/src/test/java") - TestCompilerMojo testCompileMojo) { + @InjectMojo(goal = "testCompile", pom = "plugin-config.xml") TestCompilerMojo testCompileMojo) { assertEquals(CompilerStub.COMPILER_ID, compileMojo.compilerId); compileMojo.execute(); assertCompilerStubOutputFileExists(compileMojo); - assertEquals(CompilerStub.COMPILER_ID, testCompileMojo.compilerId); + testCompileMojo.compilerId = CompilerStub.COMPILER_ID; + testCompileMojo.compileSourceRoots = List.of(MojoExtension.getBasedir() + "/src/test/java"); testCompileMojo.execute(); assertCompilerStubOutputFileExists(testCompileMojo); } @@ -316,16 +317,16 @@ public class CompilerMojoTestCase { */ @Test @Basedir("${basedir}/target/test-classes/unit/compiler-modular-project") + @SuppressWarnings("deprecation") public void testModularProject( @InjectMojo(goal = "compile", pom = "plugin-config.xml") CompilerMojo compileMojo, - @InjectMojo(goal = "testCompile", pom = "plugin-config.xml") - @MojoParameter(name = "compileSourceRoots", value = "${project.basedir}/src/test/java") - TestCompilerMojo testCompileMojo) { + @InjectMojo(goal = "testCompile", pom = "plugin-config.xml") TestCompilerMojo testCompileMojo) { compileMojo.execute(); assertOutputFileExists(compileMojo, SourceDirectory.MODULE_INFO + SourceDirectory.CLASS_FILE_SUFFIX); assertOutputFileExists(compileMojo, "foo", "TestModular.class"); + testCompileMojo.compileSourceRoots = List.of(MojoExtension.getBasedir() + "/src/test/java"); testCompileMojo.execute(); assertOutputFileExists(testCompileMojo, "foo", "TestModularTestCase.class"); assertOutputFileDoesNotExist(compileMojo, "foo", "TestModularTestCase.class"); @@ -363,16 +364,16 @@ public class CompilerMojoTestCase { */ @Test @Basedir("${basedir}/target/test-classes/unit/compiler-skip-main") + @SuppressWarnings("deprecation") public void testCompileSkipMain( @InjectMojo(goal = "compile", pom = "plugin-config.xml") CompilerMojo compileMojo, - @InjectMojo(goal = "testCompile", pom = "plugin-config.xml") - @MojoParameter(name = "compileSourceRoots", value = "${project.basedir}/src/test/java") - TestCompilerMojo testCompileMojo) { + @InjectMojo(goal = "testCompile", pom = "plugin-config.xml") TestCompilerMojo testCompileMojo) { compileMojo.skipMain = true; compileMojo.execute(); assertOutputFileDoesNotExist(compileMojo, "foo", "TestSkipMainCompile0.class"); + testCompileMojo.compileSourceRoots = List.of(MojoExtension.getBasedir() + "/src/test/java"); testCompileMojo.execute(); assertOutputFileExists(testCompileMojo, "foo", "TestSkipMainCompile0Test.class"); assertOutputFileDoesNotExist(compileMojo, "foo", "TestSkipMainCompile0Test.class"); @@ -386,9 +387,7 @@ public class CompilerMojoTestCase { @Basedir("${basedir}/target/test-classes/unit/compiler-skip-test") public void testCompileSkipTest( @InjectMojo(goal = "compile", pom = "plugin-config.xml") CompilerMojo compileMojo, - @InjectMojo(goal = "testCompile", pom = "plugin-config.xml") - @MojoParameter(name = "compileSourceRoots", value = "${project.basedir}/src/test/java") - TestCompilerMojo testCompileMojo) { + @InjectMojo(goal = "testCompile", pom = "plugin-config.xml") TestCompilerMojo testCompileMojo) { compileMojo.execute(); assertOutputFileExists(compileMojo, "foo/TestSkipTestCompile0.class"); @@ -419,6 +418,7 @@ public class CompilerMojoTestCase { Map<String, String> props = new HashMap<>(); props.put("basedir", MojoExtension.getBasedir()); + props.put("project.basedir", MojoExtension.getBasedir()); doReturn(props).when(session).getUserProperties(); List<Path> artifacts = new ArrayList<>(); @@ -467,8 +467,14 @@ public class CompilerMojoTestCase { .build(Build.newBuilder() .directory(MojoExtension.getBasedir() + "/target") .outputDirectory(MojoExtension.getBasedir() + "/target/classes") - .sourceDirectory(MojoExtension.getBasedir() + "/src/main/java") .testOutputDirectory(MojoExtension.getBasedir() + "/target/test-classes") + .sources(List.of( + Source.newInstance() + .withDirectory(MojoExtension.getBasedir() + "/src/main/java") + .withScope("main"), + Source.newInstance() + .withDirectory(MojoExtension.getBasedir() + "/src/test/java") + .withScope("test"))) .build()) .build()); stub.setBasedir(Path.of(MojoExtension.getBasedir()));
