[MNG-5935] Optional true getting lost in managed dependencies when transitive
o Updated to correctly map the optional flag of Maven model dependencies to Maven Resolver dependencies. Prior to this change all managed dependencies implicitly had the optional flag set to false leading to the resolver managing that flag to false unintendedly. Project: http://git-wip-us.apache.org/repos/asf/maven/repo Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/f3ee0b64 Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/f3ee0b64 Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/f3ee0b64 Branch: refs/heads/MNG-5227+MNG-5935 Commit: f3ee0b6400e603e6ca8dea7684335d747ed3e0de Parents: 68317b7 Author: Christian Schulte <schu...@apache.org> Authored: Thu Feb 11 08:45:19 2016 +0100 Committer: Christian Schulte <schu...@apache.org> Committed: Sat Jan 21 22:30:32 2017 +0100 ---------------------------------------------------------------------- .../repository/internal/ArtifactDescriptorReaderDelegate.java | 6 +++++- .../src/main/java/org/apache/maven/RepositoryUtils.java | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven/blob/f3ee0b64/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java index 2395b36..184c327 100644 --- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java +++ b/maven-aether-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; } http://git-wip-us.apache.org/repos/asf/maven/blob/f3ee0b64/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; }