This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-resources-plugin.git


The following commit(s) were added to refs/heads/master by this push:
     new dce5f4c  Upgrade to Maven 4.0.0-rc-4. (#415)
dce5f4c is described below

commit dce5f4c05d51e7dd9600e41845126625b743481f
Author: Martin Desruisseaux <[email protected]>
AuthorDate: Sun Jul 20 11:54:33 2025 +0200

    Upgrade to Maven 4.0.0-rc-4. (#415)
---
 .github/workflows/maven-verify.yml                 |  4 +--
 pom.xml                                            |  4 +--
 .../maven/plugins/resources/ResourceUtils.java     | 35 ----------------------
 .../maven/plugins/resources/ResourcesMojo.java     | 28 ++++++++++-------
 .../maven/plugins/resources/TestResourcesMojo.java | 11 ++++---
 .../plugins/resources/CopyResourcesMojoTest.java   |  2 +-
 .../maven/plugins/resources/ResourcesMojoTest.java | 21 +++++++++----
 .../maven/plugins/resources/TestResourcesTest.java |  9 ++----
 8 files changed, 47 insertions(+), 67 deletions(-)

diff --git a/.github/workflows/maven-verify.yml 
b/.github/workflows/maven-verify.yml
index 2bc0ff1..ea5b27a 100644
--- a/.github/workflows/maven-verify.yml
+++ b/.github/workflows/maven-verify.yml
@@ -26,6 +26,6 @@ jobs:
     name: Verify
     uses: apache/maven-gh-actions-shared/.github/workflows/maven-verify.yml@v4
     with:
-      ff-maven: "4.0.0-rc-2"                     # Maven version for 
fail-fast-build
-      maven-matrix: '[ "4.0.0-rc-2" ]'
+      ff-maven: "4.0.0-rc-4"                     # Maven version for 
fail-fast-build
+      maven-matrix: '[ "4.0.0-rc-4" ]'
       jdk-matrix: '[ "17", "21" ]'
diff --git a/pom.xml b/pom.xml
index 95d5075..5aca51b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -72,13 +72,13 @@ under the License.
   </distributionManagement>
 
   <properties>
-    <mavenVersion>4.0.0-rc-2</mavenVersion>
+    <mavenVersion>4.0.0-rc-4</mavenVersion>
     <javaVersion>17</javaVersion>
 
     <guiceVersion>6.0.0</guiceVersion>
     <mavenFilteringVersion>4.0.0-beta-1</mavenFilteringVersion>
     <mavenPluginPluginVersion>4.0.0-beta-1</mavenPluginPluginVersion>
-    <mavenPluginTestingVersion>4.0.0-beta-3</mavenPluginTestingVersion>
+    <mavenPluginTestingVersion>4.0.0-beta-4</mavenPluginTestingVersion>
     <plexusBuildApiVersion>0.0.7</plexusBuildApiVersion>
     <sisuVersion>0.9.0.M3</sisuVersion>
     <slf4jVersion>2.0.13</slf4jVersion>
diff --git 
a/src/main/java/org/apache/maven/plugins/resources/ResourceUtils.java 
b/src/main/java/org/apache/maven/plugins/resources/ResourceUtils.java
deleted file mode 100644
index b6677f0..0000000
--- a/src/main/java/org/apache/maven/plugins/resources/ResourceUtils.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.resources;
-
-import org.apache.maven.shared.filtering.Resource;
-
-class ResourceUtils {
-
-    static Resource newResource(org.apache.maven.api.model.Resource res) {
-        Resource resource = new Resource();
-        resource.setDirectory(res.getDirectory());
-        resource.setFiltering(res.isFiltering());
-        resource.setExcludes(res.getExcludes());
-        resource.setIncludes(res.getIncludes());
-        resource.setMergeId(res.getMergeId());
-        resource.setTargetPath(res.getTargetPath());
-        return resource;
-    }
-}
diff --git 
a/src/main/java/org/apache/maven/plugins/resources/ResourcesMojo.java 
b/src/main/java/org/apache/maven/plugins/resources/ResourcesMojo.java
index 6f699a6..63539e0 100644
--- a/src/main/java/org/apache/maven/plugins/resources/ResourcesMojo.java
+++ b/src/main/java/org/apache/maven/plugins/resources/ResourcesMojo.java
@@ -26,11 +26,12 @@ import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
-import java.util.stream.Collectors;
 
+import org.apache.maven.api.Language;
 import org.apache.maven.api.Project;
 import org.apache.maven.api.ProjectScope;
 import org.apache.maven.api.Session;
+import org.apache.maven.api.SourceRoot;
 import org.apache.maven.api.di.Inject;
 import org.apache.maven.api.plugin.Log;
 import org.apache.maven.api.plugin.MojoException;
@@ -296,16 +297,25 @@ public class ResourcesMojo implements 
org.apache.maven.api.plugin.Mojo {
             getLog().info("Skipping the execution.");
             return;
         }
-
         if (resources == null) {
-            resources = 
session.getService(ProjectManager.class).getResources(project, 
ProjectScope.MAIN).stream()
-                    .map(ResourceUtils::newResource)
-                    .collect(Collectors.toList());
+            resources = session.getService(ProjectManager.class)
+                    .getEnabledSourceRoots(project, ProjectScope.MAIN, 
Language.RESOURCES)
+                    .map(ResourcesMojo::newResource)
+                    .toList();
         }
-
         doExecute();
     }
 
+    static Resource newResource(SourceRoot res) {
+        Resource resource = new Resource();
+        resource.setDirectory(res.directory().toString());
+        resource.setFiltering(res.stringFiltering());
+        resource.setExcludes(res.excludes());
+        resource.setIncludes(res.includes());
+        res.targetPath().ifPresent((p) -> 
resource.setTargetPath(p.toString()));
+        return resource;
+    }
+
     protected void doExecute() throws MojoException {
         if ((encoding == null || encoding.isEmpty()) && 
isFilteringEnabled(getResources())) {
             getLog().warn("File encoding has not been set, using platform 
encoding "
@@ -315,14 +325,12 @@ public class ResourcesMojo implements 
org.apache.maven.api.plugin.Mojo {
         }
 
         try {
-            List<String> combinedFilters = getCombinedFiltersList();
-
             MavenResourcesExecution mavenResourcesExecution = new 
MavenResourcesExecution(
                     getResources(),
                     getOutputDirectory(),
                     project,
                     encoding,
-                    combinedFilters,
+                    getCombinedFiltersList(),
                     Collections.emptyList(),
                     session);
 
@@ -426,7 +434,7 @@ public class ResourcesMojo implements 
org.apache.maven.api.plugin.Mojo {
         } else {
             List<String> result = new ArrayList<>();
 
-            if (useBuildFilters && buildFilters != null && 
!buildFilters.isEmpty()) {
+            if (useBuildFilters && buildFilters != null) {
                 result.addAll(buildFilters);
             }
 
diff --git 
a/src/main/java/org/apache/maven/plugins/resources/TestResourcesMojo.java 
b/src/main/java/org/apache/maven/plugins/resources/TestResourcesMojo.java
index ac90676..1e1218d 100644
--- a/src/main/java/org/apache/maven/plugins/resources/TestResourcesMojo.java
+++ b/src/main/java/org/apache/maven/plugins/resources/TestResourcesMojo.java
@@ -20,8 +20,8 @@ package org.apache.maven.plugins.resources;
 
 import java.nio.file.Path;
 import java.util.List;
-import java.util.stream.Collectors;
 
+import org.apache.maven.api.Language;
 import org.apache.maven.api.ProjectScope;
 import org.apache.maven.api.plugin.MojoException;
 import org.apache.maven.api.plugin.annotations.Mojo;
@@ -66,13 +66,12 @@ public class TestResourcesMojo extends ResourcesMojo {
             getLog().info("Not copying test resources");
             return;
         }
-
         if (resources == null) {
-            resources = 
session.getService(ProjectManager.class).getResources(project, 
ProjectScope.TEST).stream()
-                    .map(ResourceUtils::newResource)
-                    .collect(Collectors.toList());
+            resources = session.getService(ProjectManager.class)
+                    .getEnabledSourceRoots(project, ProjectScope.TEST, 
Language.RESOURCES)
+                    .map(ResourcesMojo::newResource)
+                    .toList();
         }
-
         super.doExecute();
     }
 
diff --git 
a/src/test/java/org/apache/maven/plugins/resources/CopyResourcesMojoTest.java 
b/src/test/java/org/apache/maven/plugins/resources/CopyResourcesMojoTest.java
index 287de4c..718087a 100644
--- 
a/src/test/java/org/apache/maven/plugins/resources/CopyResourcesMojoTest.java
+++ 
b/src/test/java/org/apache/maven/plugins/resources/CopyResourcesMojoTest.java
@@ -29,7 +29,7 @@ import org.apache.maven.api.plugin.testing.Basedir;
 import org.apache.maven.api.plugin.testing.InjectMojo;
 import org.apache.maven.api.plugin.testing.MojoTest;
 import org.apache.maven.api.plugin.testing.stubs.SessionMock;
-import org.apache.maven.internal.impl.InternalSession;
+import org.apache.maven.impl.InternalSession;
 import org.apache.maven.plugins.resources.stub.MavenProjectResourcesStub;
 import org.apache.maven.shared.filtering.Resource;
 import org.junit.jupiter.api.Test;
diff --git 
a/src/test/java/org/apache/maven/plugins/resources/ResourcesMojoTest.java 
b/src/test/java/org/apache/maven/plugins/resources/ResourcesMojoTest.java
index c014893..8f0263e 100644
--- a/src/test/java/org/apache/maven/plugins/resources/ResourcesMojoTest.java
+++ b/src/test/java/org/apache/maven/plugins/resources/ResourcesMojoTest.java
@@ -28,7 +28,6 @@ import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Properties;
-import java.util.stream.Collectors;
 
 import org.apache.maven.api.Project;
 import org.apache.maven.api.di.Provides;
@@ -37,7 +36,7 @@ import org.apache.maven.api.plugin.testing.Basedir;
 import org.apache.maven.api.plugin.testing.InjectMojo;
 import org.apache.maven.api.plugin.testing.MojoTest;
 import org.apache.maven.api.plugin.testing.stubs.SessionMock;
-import org.apache.maven.internal.impl.InternalSession;
+import org.apache.maven.impl.InternalSession;
 import org.apache.maven.plugins.resources.stub.MavenProjectResourcesStub;
 import org.apache.maven.shared.filtering.Resource;
 import org.junit.jupiter.api.Test;
@@ -631,9 +630,21 @@ public class ResourcesMojoTest {
         return new MavenProjectResourcesStub();
     }
 
-    private List<Resource> getResources(MavenProjectResourcesStub project) {
+    static List<Resource> getResources(MavenProjectResourcesStub project) {
         return project.getBuild().getResources().stream()
-                .map(ResourceUtils::newResource)
-                .collect(Collectors.toList());
+                .map(ResourcesMojoTest::newResource)
+                .toList();
+    }
+
+    // TODO: temporary method before upgrade to new API.
+    private static Resource newResource(org.apache.maven.api.model.Resource 
res) {
+        Resource resource = new Resource();
+        resource.setDirectory(res.getDirectory());
+        resource.setFiltering(res.isFiltering());
+        resource.setExcludes(res.getExcludes());
+        resource.setIncludes(res.getIncludes());
+        resource.setMergeId(res.getMergeId());
+        resource.setTargetPath(res.getTargetPath());
+        return resource;
     }
 }
diff --git 
a/src/test/java/org/apache/maven/plugins/resources/TestResourcesTest.java 
b/src/test/java/org/apache/maven/plugins/resources/TestResourcesTest.java
index 345bd14..d6054dd 100644
--- a/src/test/java/org/apache/maven/plugins/resources/TestResourcesTest.java
+++ b/src/test/java/org/apache/maven/plugins/resources/TestResourcesTest.java
@@ -21,7 +21,6 @@ package org.apache.maven.plugins.resources;
 import java.nio.file.Paths;
 import java.util.Collections;
 import java.util.List;
-import java.util.stream.Collectors;
 
 import org.apache.maven.api.Project;
 import org.apache.maven.api.di.Provides;
@@ -30,7 +29,7 @@ import org.apache.maven.api.plugin.testing.Basedir;
 import org.apache.maven.api.plugin.testing.InjectMojo;
 import org.apache.maven.api.plugin.testing.MojoTest;
 import org.apache.maven.api.plugin.testing.stubs.SessionMock;
-import org.apache.maven.internal.impl.InternalSession;
+import org.apache.maven.impl.InternalSession;
 import org.apache.maven.plugins.resources.stub.MavenProjectResourcesStub;
 import org.apache.maven.shared.filtering.Resource;
 import org.codehaus.plexus.util.FileUtils;
@@ -107,9 +106,7 @@ public class TestResourcesTest {
         return new MavenProjectResourcesStub();
     }
 
-    private List<Resource> getResources(MavenProjectResourcesStub project) {
-        return project.getBuild().getResources().stream()
-                .map(ResourceUtils::newResource)
-                .collect(Collectors.toList());
+    private static List<Resource> getResources(MavenProjectResourcesStub 
project) {
+        return ResourcesMojoTest.getResources(project);
     }
 }

Reply via email to