1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.artifact.resolver;
20
21 import java.util.Collections;
22
23 import org.apache.maven.artifact.AbstractArtifactComponentTestCase;
24 import org.apache.maven.artifact.Artifact;
25 import org.apache.maven.artifact.resolver.DefaultArtifactResolver.DaemonThreadCreator;
26
27 public class DefaultArtifactResolverTest extends AbstractArtifactComponentTestCase {
28 private DefaultArtifactResolver artifactResolver;
29
30 private Artifact projectArtifact;
31
32 @Override
33 protected void setUp() throws Exception {
34 super.setUp();
35
36 artifactResolver = (DefaultArtifactResolver) lookup(ArtifactResolver.class);
37
38 projectArtifact = createLocalArtifact("project", "3.0");
39 }
40
41 @Override
42 protected void tearDown() throws Exception {
43 artifactFactory = null;
44 projectArtifact = null;
45 super.tearDown();
46 }
47
48 @Override
49 protected String component() {
50 return "resolver";
51 }
52
53 public void testMNG4738() throws Exception {
54 Artifact g = createLocalArtifact("g", "1.0");
55 createLocalArtifact("h", "1.0");
56 artifactResolver.resolveTransitively(
57 Collections.singleton(g), projectArtifact, remoteRepositories(), localRepository(), null);
58
59
60 ThreadGroup tg = Thread.currentThread().getThreadGroup();
61 while (tg.getParent() == null) {
62 tg = tg.getParent();
63 }
64
65 ThreadGroup[] tgList = new ThreadGroup[tg.activeGroupCount()];
66 tg.enumerate(tgList);
67
68 boolean seen = false;
69
70 for (ThreadGroup aTgList : tgList) {
71 if (!aTgList.getName().equals(DaemonThreadCreator.THREADGROUP_NAME)) {
72 continue;
73 }
74
75 seen = true;
76
77 tg = aTgList;
78 Thread[] ts = new Thread[tg.activeCount()];
79 tg.enumerate(ts);
80
81 for (Thread active : ts) {
82 String name = active.getName();
83 boolean daemon = active.isDaemon();
84 assertTrue(name + " is no daemon Thread.", daemon);
85 }
86 }
87
88 assertTrue("Could not find ThreadGroup: " + DaemonThreadCreator.THREADGROUP_NAME, seen);
89 }
90
91 public void testLookup() throws Exception {
92 ArtifactResolver resolver = lookup(ArtifactResolver.class, "default");
93 }
94 }