[MNG-5935] Optional true getting lost in managed dependencies when transitive
Updated to correctly map the optional flag of Maven model dependencies to Aether dependencies. Prior to this change all managed dependencies implicitly had the optional flag set to 'false' leading to Aether managing that flag to 'false' on all managed dependencies when transitive. Project: http://git-wip-us.apache.org/repos/asf/maven/repo Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/c0a5beed Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/c0a5beed Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/c0a5beed Branch: refs/heads/DEPMGMT-IT Commit: c0a5beed742352508fd5ab456d1f8aca2e114d84 Parents: 8f9a9a4 Author: Christian Schulte <[email protected]> Authored: Thu Feb 11 08:45:19 2016 +0100 Committer: Christian Schulte <[email protected]> Committed: Sat Feb 4 03:43:49 2017 +0100 ---------------------------------------------------------------------- .../src/main/java/org/apache/maven/RepositoryUtils.java | 7 ++++++- .../repository/internal/ArtifactDescriptorReaderDelegate.java | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven/blob/c0a5beed/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java ---------------------------------------------------------------------- diff --git a/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java b/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java index 86eab4e..52442b7 100644 --- a/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java +++ b/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java @@ -316,7 +316,12 @@ public class RepositoryUtils exclusions.add( toExclusion( exclusion ) ); } - Dependency result = new Dependency( artifact, dependency.getScope(), dependency.isOptional(), exclusions ); + Dependency result = new Dependency( artifact, + dependency.getScope(), + dependency.getOptional() != null + ? dependency.isOptional() + : null, + exclusions ); return result; } http://git-wip-us.apache.org/repos/asf/maven/blob/c0a5beed/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java ---------------------------------------------------------------------- diff --git a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java index 53c0475..a5e2ffd 100644 --- a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java +++ b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java @@ -124,7 +124,11 @@ public class ArtifactDescriptorReaderDelegate exclusions.add( convert( exclusion ) ); } - Dependency result = new Dependency( artifact, dependency.getScope(), dependency.isOptional(), exclusions ); + Dependency result = new Dependency( artifact, dependency.getScope(), + dependency.getOptional() != null + ? dependency.isOptional() + : null, + exclusions ); return result; }
