[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/3cb6dc2f Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/3cb6dc2f Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/3cb6dc2f Branch: refs/heads/MNG-6169_2/not-updated-MJAR-MCOMPILER Commit: 3cb6dc2f19bf5c13464f364577ae2c7934c502f1 Parents: 46cb0b7 Author: Christian Schulte <schu...@apache.org> Authored: Thu Feb 11 08:45:19 2016 +0100 Committer: Michael Osipov <micha...@apache.org> Committed: Thu May 11 19:54:51 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/3cb6dc2f/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/3cb6dc2f/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; }