1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.api.services;
20
21 import java.util.List;
22
23 import org.apache.maven.api.Artifact;
24 import org.apache.maven.api.DependencyCoordinates;
25 import org.apache.maven.api.Node;
26 import org.apache.maven.api.PathScope;
27 import org.apache.maven.api.Project;
28 import org.apache.maven.api.Service;
29 import org.apache.maven.api.Session;
30 import org.apache.maven.api.annotations.Experimental;
31 import org.apache.maven.api.annotations.Nonnull;
32 import org.apache.maven.api.annotations.Nullable;
33
34
35
36
37 @Experimental
38 public interface DependencyResolver extends Service {
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 @Nonnull
54 default DependencyResolverResult collect(
55 @Nonnull Session session, @Nonnull DependencyCoordinates root, @Nonnull PathScope scope) {
56 return collect(
57 DependencyResolverRequest.build(session, DependencyResolverRequest.RequestType.COLLECT, root, scope));
58 }
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 @Nonnull
74 default DependencyResolverResult collect(
75 @Nonnull Session session, @Nonnull Project project, @Nonnull PathScope scope) {
76 return collect(DependencyResolverRequest.build(
77 session, DependencyResolverRequest.RequestType.COLLECT, project, scope));
78 }
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93 @Nonnull
94 default DependencyResolverResult collect(
95 @Nonnull Session session, @Nonnull Artifact artifact, @Nonnull PathScope scope) {
96 return collect(DependencyResolverRequest.build(
97 session, DependencyResolverRequest.RequestType.COLLECT, artifact, scope));
98 }
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114 @Nonnull
115 default DependencyResolverResult collect(@Nonnull DependencyResolverRequest request) {
116 if (request.getRequestType() != DependencyResolverRequest.RequestType.COLLECT) {
117 throw new IllegalArgumentException("requestType should be COLLECT when calling collect()");
118 }
119 return resolve(request);
120 }
121
122
123
124
125
126
127
128
129
130
131
132
133 List<Node> flatten(@Nonnull Session session, @Nonnull Node node, @Nullable PathScope scope)
134 throws DependencyResolverException;
135
136 @Nonnull
137 default DependencyResolverResult flatten(
138 @Nonnull Session session, @Nonnull Project project, @Nonnull PathScope scope) {
139 return flatten(DependencyResolverRequest.build(
140 session, DependencyResolverRequest.RequestType.FLATTEN, project, scope));
141 }
142
143 @Nonnull
144 default DependencyResolverResult flatten(@Nonnull DependencyResolverRequest request) {
145 if (request.getRequestType() != DependencyResolverRequest.RequestType.FLATTEN) {
146 throw new IllegalArgumentException("requestType should be FLATTEN when calling flatten()");
147 }
148 return resolve(request);
149 }
150
151 @Nonnull
152 default DependencyResolverResult resolve(@Nonnull Session session, @Nonnull Project project) {
153 return resolve(
154 DependencyResolverRequest.build(session, DependencyResolverRequest.RequestType.RESOLVE, project));
155 }
156
157 @Nonnull
158 default DependencyResolverResult resolve(
159 @Nonnull Session session, @Nonnull Project project, @Nonnull PathScope scope) {
160 return resolve(DependencyResolverRequest.build(
161 session, DependencyResolverRequest.RequestType.RESOLVE, project, scope));
162 }
163
164 @Nonnull
165 default DependencyResolverResult resolve(@Nonnull Session session, @Nonnull DependencyCoordinates dependency) {
166 return resolve(
167 DependencyResolverRequest.build(session, DependencyResolverRequest.RequestType.RESOLVE, dependency));
168 }
169
170 @Nonnull
171 default DependencyResolverResult resolve(
172 @Nonnull Session session, @Nonnull DependencyCoordinates dependency, @Nonnull PathScope scope) {
173 return resolve(DependencyResolverRequest.build(
174 session, DependencyResolverRequest.RequestType.RESOLVE, dependency, scope));
175 }
176
177 @Nonnull
178 default DependencyResolverResult resolve(
179 @Nonnull Session session, @Nonnull List<DependencyCoordinates> dependencies) {
180 return resolve(
181 DependencyResolverRequest.build(session, DependencyResolverRequest.RequestType.RESOLVE, dependencies));
182 }
183
184 @Nonnull
185 default DependencyResolverResult resolve(
186 @Nonnull Session session, @Nonnull List<DependencyCoordinates> dependencies, @Nonnull PathScope scope) {
187 return resolve(DependencyResolverRequest.build(
188 session, DependencyResolverRequest.RequestType.RESOLVE, dependencies, scope));
189 }
190
191
192
193
194
195
196
197
198
199
200
201
202
203 DependencyResolverResult resolve(DependencyResolverRequest request)
204 throws DependencyResolverException, ArtifactResolverException;
205 }