1 package org.apache.maven.shared.dependencies.collect.internal;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.ArrayList;
23 import java.util.HashSet;
24 import java.util.List;
25 import java.util.Set;
26
27 import org.apache.maven.artifact.repository.ArtifactRepository;
28 import org.apache.maven.shared.dependencies.collect.CollectorResult;
29 import org.sonatype.aether.collection.CollectResult;
30 import org.sonatype.aether.graph.DependencyNode;
31 import org.sonatype.aether.graph.DependencyVisitor;
32 import org.sonatype.aether.repository.RemoteRepository;
33
34
35
36
37
38
39
40 public class Maven30CollectorResult implements CollectorResult
41 {
42 private final CollectResult collectResult;
43
44
45
46
47 public Maven30CollectorResult( CollectResult collectResult )
48 {
49 this.collectResult = collectResult;
50 }
51
52 @Override
53 public List<ArtifactRepository> getRemoteRepositories()
54 {
55 final Set<RemoteRepository> aetherRepositories = new HashSet<RemoteRepository>();
56
57 DependencyVisitor visitor = new DependencyVisitor()
58 {
59 @Override
60 public boolean visitEnter( DependencyNode node )
61 {
62 aetherRepositories.addAll( node.getRepositories() );
63 return true;
64 }
65
66 @Override
67 public boolean visitLeave( DependencyNode node )
68 {
69 return true;
70 }
71 };
72
73 collectResult.getRoot().accept( visitor );
74
75 List<ArtifactRepository> mavenRepositories = new ArrayList<ArtifactRepository>( aetherRepositories.size() );
76
77 for ( RemoteRepository aetherRepository : aetherRepositories )
78 {
79 mavenRepositories.add( new Maven30ArtifactRepositoryAdapter( aetherRepository ) );
80 }
81
82 return mavenRepositories;
83 }
84
85 }