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

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git


The following commit(s) were added to refs/heads/master by this push:
     new 0564480440 [MNG-8118] Merge BOM exclusions instead of overwriting 
(#1504)
0564480440 is described below

commit 056448044055292b9421d86b28564a1706c4c937
Author: Guillaume Nodet <gno...@gmail.com>
AuthorDate: Mon May 13 08:24:14 2024 +0200

    [MNG-8118] Merge BOM exclusions instead of overwriting (#1504)
---
 .../java/org/apache/maven/model/building/DefaultModelBuilder.java | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git 
a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
 
b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
index 3bfcdbe4c8..7045579513 100644
--- 
a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
+++ 
b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
@@ -1812,7 +1812,7 @@ public class DefaultModelBuilder implements ModelBuilder {
             // Dependency excluded from import.
             List<org.apache.maven.api.model.Dependency> dependencies = 
importMgmt.getDependencies().stream()
                     .filter(candidate -> 
exclusions.stream().noneMatch(exclusion -> match(exclusion, candidate)))
-                    .map(candidate -> candidate.withExclusions(exclusions))
+                    .map(candidate -> addExclusions(candidate, exclusions))
                     .collect(Collectors.toList());
             importMgmt = importMgmt.withDependencies(dependencies);
         }
@@ -1820,6 +1820,12 @@ public class DefaultModelBuilder implements ModelBuilder 
{
         return importMgmt != null ? new DependencyManagement(importMgmt) : 
null;
     }
 
+    private static org.apache.maven.api.model.Dependency addExclusions(
+            org.apache.maven.api.model.Dependency candidate, List<Exclusion> 
exclusions) {
+        return 
candidate.withExclusions(Stream.concat(candidate.getExclusions().stream(), 
exclusions.stream())
+                .toList());
+    }
+
     private boolean match(Exclusion exclusion, 
org.apache.maven.api.model.Dependency candidate) {
         return match(exclusion.getGroupId(), candidate.getGroupId())
                 && match(exclusion.getArtifactId(), candidate.getArtifactId());

Reply via email to