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