1   package org.apache.maven.project.inheritance.t09;
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  import java.io.File;
22  import java.util.Collection;
23  import java.util.List;
24  import java.util.Map;
25  import java.util.Iterator;
26  
27  import org.apache.maven.model.Build;
28  import org.apache.maven.model.MailingList;
29  import org.apache.maven.model.Plugin;
30  import org.apache.maven.model.PluginExecution;
31  import org.apache.maven.model.Dependency;
32  import org.apache.maven.project.MavenProject;
33  import org.apache.maven.project.inheritance.AbstractProjectInheritanceTestCase;
34  import org.apache.maven.artifact.Artifact;
35  import org.codehaus.plexus.util.xml.Xpp3Dom;
36  import org.codehaus.plexus.logging.LoggerManager;
37  import org.codehaus.plexus.logging.Logger;
38  
39  
40  
41  
42  
43  
44  
45  
46  public class ProjectInheritanceTest
47      extends AbstractProjectInheritanceTestCase
48  {
49      
50      
51      
52      
53      
54      
55      
56      
57  	
58      
59  
60      
61  
62  
63  
64  
65  
66  
67  
68  
69  
70  
71  
72      public void testDependencyManagementExclusionsExcludeTransitively()
73          throws Exception
74      {
75          File localRepo = getLocalRepositoryPath();
76  
77          File pom0 = new File( localRepo, "p0/pom.xml" );
78          File pom0Basedir = pom0.getParentFile();
79          File pom1 = new File( pom0Basedir, "p1/pom.xml" );
80  
81          
82          MavenProject project0 = getProjectWithDependencies( pom0 );
83          MavenProject project1 = getProjectWithDependencies( pom1 );
84  
85          assertEquals( pom0Basedir, project1.getParent().getBasedir() );
86          System.out.println("Project " + project1.getId() + " " + project1);
87          Map map = project1.getArtifactMap();
88  
89          assertNotNull("No artifacts", map);
90          assertTrue("No Artifacts", map.size() > 0);
91          assertTrue("Set size should be 2, is " + map.size(), map.size() == 2);
92          
93          assertTrue("maven-test-a is not in the project", map.containsKey( "maven-test:maven-test-a" ));
94          assertTrue("maven-test-b is not in the project", map.containsKey( "maven-test:maven-test-b" ));
95  
96      }
97  
98      
99  
100 
101 
102 
103 
104 
105 
106 
107 
108     public void testDependencyManagementExclusionDoesNotOverrideGloballyForTransitives()
109         throws Exception
110     {
111         File localRepo = getLocalRepositoryPath();
112 
113         File pom0 = new File( localRepo, "p0/pom.xml" );
114         File pom0Basedir = pom0.getParentFile();
115         File pom2 = new File( pom0Basedir, "p2/pom.xml" );
116 
117         
118         MavenProject project0 = getProjectWithDependencies( pom0 );
119         MavenProject project2 = getProjectWithDependencies( pom2 );
120 
121         assertEquals( pom0Basedir, project2.getParent().getBasedir() );
122         System.out.println( "Project " + project2.getId() + " " + project2 );
123         Map map = project2.getArtifactMap();
124         assertNotNull( "No artifacts", map );
125         assertTrue( "No Artifacts", map.size() > 0 );
126         assertTrue( "Set size should be 4, is " + map.size(), map.size() == 4 );
127 
128         assertTrue( "maven-test-a is not in the project", map.containsKey( "maven-test:maven-test-a" ) );
129         assertTrue( "maven-test-b is not in the project", map.containsKey( "maven-test:maven-test-b" ) );
130         assertTrue( "maven-test-c is not in the project", map.containsKey( "maven-test:maven-test-c" ) );
131         assertTrue( "maven-test-d is not in the project", map.containsKey( "maven-test:maven-test-d" ) );
132     }
133 }