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()));

Reply via email to