[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/fde5b8cf
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/fde5b8cf
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/fde5b8cf

Branch: refs/heads/DEPMGMT-IT
Commit: fde5b8cf51333d38ada1912e7010a93194119e10
Parents: fcd9d03
Author: Christian Schulte <schu...@apache.org>
Authored: Thu Feb 11 08:45:19 2016 +0100
Committer: Christian Schulte <schu...@apache.org>
Committed: Fri Feb 10 18:42:54 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/fde5b8cf/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/fde5b8cf/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;
     }

Reply via email to