1 package org.apache.maven.lifecycle.internal;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.File;
23 import java.util.Collection;
24 import java.util.Collections;
25 import java.util.HashSet;
26 import java.util.Properties;
27 import java.util.Set;
28
29 import org.apache.maven.AbstractCoreMavenComponentTestCase;
30 import org.apache.maven.artifact.Artifact;
31 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
32 import org.apache.maven.execution.MavenSession;
33 import org.apache.maven.project.MavenProject;
34 import org.codehaus.plexus.component.annotations.Requirement;
35 import org.junit.Test;
36
37 public class LifecycleDependencyResolverTest extends AbstractCoreMavenComponentTestCase
38 {
39 @Requirement
40 private LifecycleDependencyResolver resolver;
41
42 @Override
43 protected String getProjectsDirectory()
44 {
45 return null;
46 }
47
48 @Override
49 protected void setUp()
50 throws Exception
51 {
52 super.setUp();
53 resolver = lookup( LifecycleDependencyResolver.class );
54 }
55
56 @Test
57 public void testCachedReactorProjectDependencies() throws Exception
58 {
59 MavenSession session = createMavenSession( new File( "src/test/projects/lifecycle-dependency-resolver/pom.xml" ), new Properties(), true );
60 Collection<String> scopesToCollect = null;
61 Collection<String> scopesToResolve = Collections.singletonList( "compile" );
62 boolean aggregating = false;
63
64 Set<Artifact> reactorArtifacts = new HashSet<>( 3 );
65 for ( MavenProject reactorProject : session.getProjects() )
66 {
67 reactorProject.setArtifactFilter( new ArtifactFilter()
68 {
69 @Override
70 public boolean include( Artifact artifact )
71 {
72 return true;
73 }
74 } );
75 resolver.resolveProjectDependencies( reactorProject, scopesToCollect, scopesToResolve, session, aggregating, reactorArtifacts );
76 reactorArtifacts.add( reactorProject.getArtifact() );
77 }
78
79 MavenProject lib = session.getProjects().get( 1 );
80 MavenProject war = session.getProjects().get( 2 );
81
82 assertEquals( null , war.getArtifactMap().get("org.apache.maven.its.mng6300:mng6300-lib").getFile() );
83
84 lib.getArtifact().setFile( new File( "lib.jar" ) );
85
86 resolver.resolveProjectDependencies( war, scopesToCollect, scopesToResolve, session, aggregating, reactorArtifacts );
87
88 assertEquals( new File( "lib.jar" ) , war.getArtifactMap().get("org.apache.maven.its.mng6300:mng6300-lib").getFile() );
89 }
90 }