1 package org.apache.maven.resolver.internal.ant.tasks;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.resolver.internal.ant.AntRepoSys;
23 import org.apache.maven.resolver.internal.ant.types.Dependencies;
24 import org.apache.maven.resolver.internal.ant.types.LocalRepository;
25 import org.apache.maven.resolver.internal.ant.types.RemoteRepositories;
26 import org.apache.maven.resolver.internal.ant.types.RemoteRepository;
27 import org.apache.tools.ant.BuildException;
28 import org.apache.tools.ant.Task;
29 import org.apache.tools.ant.types.Reference;
30 import org.eclipse.aether.collection.CollectResult;
31
32
33
34 public abstract class AbstractResolvingTask
35 extends Task
36 {
37
38 protected Dependencies dependencies;
39
40 protected RemoteRepositories remoteRepositories;
41
42 protected LocalRepository localRepository;
43
44 public void addDependencies( Dependencies dependencies )
45 {
46 if ( this.dependencies != null )
47 {
48 throw new BuildException( "You must not specify multiple <dependencies> elements" );
49 }
50 this.dependencies = dependencies;
51 }
52
53 public void setDependenciesRef( Reference ref )
54 {
55 if ( dependencies == null )
56 {
57 dependencies = new Dependencies();
58 dependencies.setProject( getProject() );
59 }
60 dependencies.setRefid( ref );
61 }
62
63 public LocalRepository createLocalRepo()
64 {
65 if ( localRepository != null )
66 {
67 throw new BuildException( "You must not specify multiple <localRepo> elements" );
68 }
69 localRepository = new LocalRepository( this );
70 return localRepository;
71 }
72
73 private RemoteRepositories getRemoteRepos()
74 {
75 if ( remoteRepositories == null )
76 {
77 remoteRepositories = new RemoteRepositories();
78 remoteRepositories.setProject( getProject() );
79 }
80 return remoteRepositories;
81 }
82
83 public void addRemoteRepo( RemoteRepository repository )
84 {
85 getRemoteRepos().addRemoterepo( repository );
86 }
87
88 public void addRemoteRepos( RemoteRepositories repositories )
89 {
90 getRemoteRepos().addRemoterepos( repositories );
91 }
92
93 public void setRemoteReposRef( Reference ref )
94 {
95 RemoteRepositories repos = new RemoteRepositories();
96 repos.setProject( getProject() );
97 repos.setRefid( ref );
98 getRemoteRepos().addRemoterepos( repos );
99 }
100
101 protected CollectResult collectDependencies()
102 {
103 return AntRepoSys.getInstance( getProject() ).collectDependencies( this, dependencies, localRepository,
104 remoteRepositories );
105 }
106
107 }