View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.maven.artifact.resolver;
20  
21  import java.util.ArrayList;
22  import java.util.List;
23  import java.util.Map;
24  import java.util.Set;
25  
26  import org.apache.maven.artifact.Artifact;
27  import org.apache.maven.artifact.repository.ArtifactRepository;
28  import org.apache.maven.artifact.repository.RepositoryCache;
29  import org.apache.maven.artifact.repository.RepositoryRequest;
30  import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
31  import org.apache.maven.settings.Mirror;
32  import org.apache.maven.settings.Proxy;
33  import org.apache.maven.settings.Server;
34  
35  /**
36   * A resolution request allows you to either use an existing MavenProject, or a coordinate (gid:aid:version)
37   * to process a POMs dependencies.
38   *
39   */
40  @Deprecated
41  public class ArtifactResolutionRequest implements RepositoryRequest {
42      private static final String LS = System.lineSeparator();
43  
44      private Artifact artifact;
45  
46      // Needs to go away
47      // These are really overrides now, projects defining dependencies for a plugin that override what is
48      // specified in the plugin itself.
49      private Set<Artifact> artifactDependencies;
50  
51      private ArtifactRepository localRepository;
52  
53      private List<ArtifactRepository> remoteRepositories;
54  
55      private ArtifactFilter collectionFilter;
56  
57      private ArtifactFilter resolutionFilter;
58  
59      // Needs to go away
60      private List<ResolutionListener> listeners = new ArrayList<>();
61  
62      // This is like a filter but overrides all transitive versions
63      private Map<String, Artifact> managedVersionMap;
64  
65      private boolean resolveRoot = true;
66  
67      private boolean resolveTransitively = false;
68  
69      private boolean offline;
70  
71      private boolean forceUpdate;
72  
73      private List<Server> servers;
74  
75      private List<Mirror> mirrors;
76  
77      private List<Proxy> proxies;
78  
79      public ArtifactResolutionRequest() {
80          // nothing here
81      }
82  
83      public ArtifactResolutionRequest(RepositoryRequest request) {
84          setLocalRepository(request.getLocalRepository());
85          setRemoteRepositories(request.getRemoteRepositories());
86          setOffline(request.isOffline());
87          setForceUpdate(request.isForceUpdate());
88      }
89  
90      public Artifact getArtifact() {
91          return artifact;
92      }
93  
94      public ArtifactResolutionRequest setArtifact(Artifact artifact) {
95          this.artifact = artifact;
96  
97          return this;
98      }
99  
100     public ArtifactResolutionRequest setArtifactDependencies(Set<Artifact> artifactDependencies) {
101         this.artifactDependencies = artifactDependencies;
102 
103         return this;
104     }
105 
106     public Set<Artifact> getArtifactDependencies() {
107         return artifactDependencies;
108     }
109 
110     @Override
111     public ArtifactRepository getLocalRepository() {
112         return localRepository;
113     }
114 
115     @Override
116     public ArtifactResolutionRequest setLocalRepository(ArtifactRepository localRepository) {
117         this.localRepository = localRepository;
118 
119         return this;
120     }
121 
122     @Override
123     public List<ArtifactRepository> getRemoteRepositories() {
124         return remoteRepositories;
125     }
126 
127     @Override
128     public ArtifactResolutionRequest setRemoteRepositories(List<ArtifactRepository> remoteRepositories) {
129         this.remoteRepositories = remoteRepositories;
130 
131         return this;
132     }
133 
134     /**
135      * Gets the artifact filter that controls traversal of the dependency graph.
136      *
137      * @return The filter used to determine which of the artifacts in the dependency graph should be traversed or
138      *         {@code null} to collect all transitive dependencies.
139      */
140     public ArtifactFilter getCollectionFilter() {
141         return collectionFilter;
142     }
143 
144     public ArtifactResolutionRequest setCollectionFilter(ArtifactFilter filter) {
145         this.collectionFilter = filter;
146 
147         return this;
148     }
149 
150     /**
151      * Gets the artifact filter that controls downloading of artifact files. This filter operates on those artifacts
152      * that have been included by the {@link #getCollectionFilter()}.
153      *
154      * @return The filter used to determine which of the artifacts should have their files resolved or {@code null} to
155      *         resolve the files for all collected artifacts.
156      */
157     public ArtifactFilter getResolutionFilter() {
158         return resolutionFilter;
159     }
160 
161     public ArtifactResolutionRequest setResolutionFilter(ArtifactFilter filter) {
162         this.resolutionFilter = filter;
163 
164         return this;
165     }
166 
167     public List<ResolutionListener> getListeners() {
168         return listeners;
169     }
170 
171     public ArtifactResolutionRequest setListeners(List<ResolutionListener> listeners) {
172         this.listeners = listeners;
173 
174         return this;
175     }
176 
177     public ArtifactResolutionRequest addListener(ResolutionListener listener) {
178         listeners.add(listener);
179 
180         return this;
181     }
182 
183     public Map<String, Artifact> getManagedVersionMap() {
184         return managedVersionMap;
185     }
186 
187     public ArtifactResolutionRequest setManagedVersionMap(Map<String, Artifact> managedVersionMap) {
188         this.managedVersionMap = managedVersionMap;
189 
190         return this;
191     }
192 
193     public ArtifactResolutionRequest setResolveRoot(boolean resolveRoot) {
194         this.resolveRoot = resolveRoot;
195 
196         return this;
197     }
198 
199     public boolean isResolveRoot() {
200         return resolveRoot;
201     }
202 
203     public ArtifactResolutionRequest setResolveTransitively(boolean resolveDependencies) {
204         this.resolveTransitively = resolveDependencies;
205 
206         return this;
207     }
208 
209     public boolean isResolveTransitively() {
210         return resolveTransitively;
211     }
212 
213     @Override
214     public String toString() {
215         StringBuilder sb = new StringBuilder()
216                 .append("REQUEST: ")
217                 .append(LS)
218                 .append("artifact: ")
219                 .append(artifact)
220                 .append(LS)
221                 .append(artifactDependencies)
222                 .append(LS)
223                 .append("localRepository: ")
224                 .append(localRepository)
225                 .append(LS)
226                 .append("remoteRepositories: ")
227                 .append(remoteRepositories);
228 
229         return sb.toString();
230     }
231 
232     @Override
233     public boolean isOffline() {
234         return offline;
235     }
236 
237     @Override
238     public ArtifactResolutionRequest setOffline(boolean offline) {
239         this.offline = offline;
240 
241         return this;
242     }
243 
244     @Override
245     public boolean isForceUpdate() {
246         return forceUpdate;
247     }
248 
249     @Override
250     public ArtifactResolutionRequest setForceUpdate(boolean forceUpdate) {
251         this.forceUpdate = forceUpdate;
252 
253         return this;
254     }
255 
256     public ArtifactResolutionRequest setServers(List<Server> servers) {
257         this.servers = servers;
258 
259         return this;
260     }
261 
262     public List<Server> getServers() {
263         if (servers == null) {
264             servers = new ArrayList<>();
265         }
266 
267         return servers;
268     }
269 
270     public ArtifactResolutionRequest setMirrors(List<Mirror> mirrors) {
271         this.mirrors = mirrors;
272 
273         return this;
274     }
275 
276     public List<Mirror> getMirrors() {
277         if (mirrors == null) {
278             mirrors = new ArrayList<>();
279         }
280 
281         return mirrors;
282     }
283 
284     public ArtifactResolutionRequest setProxies(List<Proxy> proxies) {
285         this.proxies = proxies;
286 
287         return this;
288     }
289 
290     public List<Proxy> getProxies() {
291         if (proxies == null) {
292             proxies = new ArrayList<>();
293         }
294 
295         return proxies;
296     }
297 
298     //
299     // Used by Tycho and will break users and force them to upgrade to Maven 3.1 so we should really leave
300     // this here, possibly indefinitely.
301     //
302     public ArtifactResolutionRequest setCache(RepositoryCache cache) {
303         return this;
304     }
305 }