[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/f4ede96f Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/f4ede96f Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/f4ede96f Branch: refs/heads/MNG-6196_slf4j Commit: f4ede96fd06c8d3e1e2b2fb679baec058cce30e1 Parents: fd988e7 Author: Christian Schulte <schu...@apache.org> Authored: Thu Feb 11 08:45:19 2016 +0100 Committer: Michael Osipov <micha...@apache.org> Committed: Wed May 10 10:36:19 2017 +0200 ---------------------------------------------------------------------- .../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/f4ede96f/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/f4ede96f/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 42060b4..8219205 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; }