[MNG-5761] Dependency management is not transitive.

Project: http://git-wip-us.apache.org/repos/asf/maven-integration-testing/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/maven-integration-testing/commit/0c0f0def
Tree: 
http://git-wip-us.apache.org/repos/asf/maven-integration-testing/tree/0c0f0def
Diff: 
http://git-wip-us.apache.org/repos/asf/maven-integration-testing/diff/0c0f0def

Branch: refs/heads/DEPMGMT
Commit: 0c0f0defc5a40a18e16436cac90a7d7b078f6a06
Parents: 3165e69
Author: Christian Schulte <[email protected]>
Authored: Tue Dec 13 23:28:45 2016 +0100
Committer: Christian Schulte <[email protected]>
Committed: Sat Feb 4 23:17:49 2017 +0100

----------------------------------------------------------------------
 ...0DependencyManagementExclusionMergeTest.java | 35 ++++++++++++++++++--
 1 file changed, 33 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-integration-testing/blob/0c0f0def/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4720DependencyManagementExclusionMergeTest.java
----------------------------------------------------------------------
diff --git 
a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4720DependencyManagementExclusionMergeTest.java
 
b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4720DependencyManagementExclusionMergeTest.java
index 752ef87..92499bc 100644
--- 
a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4720DependencyManagementExclusionMergeTest.java
+++ 
b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4720DependencyManagementExclusionMergeTest.java
@@ -27,7 +27,7 @@ import java.util.List;
 
 /**
  * This is a test set for <a 
href="https://issues.apache.org/jira/browse/MNG-4720";>MNG-4720</a>.
- * 
+ *
  * @author Benjamin Bentmann
  */
 public class MavenITmng4720DependencyManagementExclusionMergeTest
@@ -46,6 +46,8 @@ public class 
MavenITmng4720DependencyManagementExclusionMergeTest
     public void testit()
         throws Exception
     {
+        // Gave up on Maven 2 compat in 3.6.
+        failingMavenVersions( "[3.6,)" );
         File testDir = ResourceExtractor.simpleExtractResources( getClass(), 
"/mng-4720" );
 
         Verifier verifier = newVerifier( testDir.getAbsolutePath() );
@@ -65,8 +67,37 @@ public class 
MavenITmng4720DependencyManagementExclusionMergeTest
 
         assertFalse( classpath.toString(), classpath.contains( "b-0.1.jar" ) );
 
-        // should better have been excluded as well, now it's a matter of 
backward-compat
+        // This comment is obsolete as of 3.6: should better have been 
excluded as well, now it's a matter of backward-compat
         assertTrue( classpath.toString(), classpath.contains( "d-0.1.jar" ) );
     }
 
+    /**
+     * Verify the effective exclusions applied during transitive dependency 
resolution when both the regular
+     * dependency section and dependency management declare exclusions for a 
particular dependency.
+     */
+    public void testit360()
+        throws Exception
+    {
+        failingMavenVersions( "(,3.6)" );
+        File testDir = ResourceExtractor.simpleExtractResources( getClass(), 
"/mng-4720" );
+
+        Verifier verifier = newVerifier( testDir.getAbsolutePath() );
+        verifier.setAutoclean( false );
+        verifier.deleteArtifacts( "org.apache.maven.its.mng4720" );
+        verifier.addCliOption( "-s" );
+        verifier.addCliOption( "settings.xml" );
+        verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", 
verifier.newDefaultFilterProperties() );
+        verifier.executeGoal( "validate" );
+        verifier.verifyErrorFreeLog();
+        verifier.resetStreams();
+
+        List<String> classpath = verifier.loadLines( "target/classpath.txt", 
"UTF-8" );
+
+        assertTrue( classpath.toString(), classpath.contains( "a-0.1.jar" ) );
+        assertTrue( classpath.toString(), classpath.contains( "c-0.1.jar" ) );
+
+        assertFalse( classpath.toString(), classpath.contains( "b-0.1.jar" ) );
+        assertFalse( classpath.toString(), classpath.contains( "d-0.1.jar" ) );
+    }
+
 }

Reply via email to