1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.project;
20
21 import javax.inject.Named;
22 import javax.inject.Singleton;
23
24 import java.io.FileNotFoundException;
25 import java.net.URISyntaxException;
26 import java.util.ArrayList;
27 import java.util.Collection;
28 import java.util.Collections;
29 import java.util.List;
30
31 import org.eclipse.aether.RepositorySystemSession;
32 import org.eclipse.aether.artifact.Artifact;
33 import org.eclipse.aether.impl.ArtifactResolver;
34 import org.eclipse.aether.repository.RemoteRepository;
35 import org.eclipse.aether.resolution.ArtifactRequest;
36 import org.eclipse.aether.resolution.ArtifactResolutionException;
37 import org.eclipse.aether.resolution.ArtifactResult;
38 import org.eclipse.aether.transfer.ArtifactNotFoundException;
39
40
41
42 @Named("classpath")
43 @Singleton
44 @Deprecated
45 public class ClasspathArtifactResolver implements ArtifactResolver {
46
47 public List<ArtifactResult> resolveArtifacts(
48 RepositorySystemSession session, Collection<? extends ArtifactRequest> requests)
49 throws ArtifactResolutionException {
50 List<ArtifactResult> results = new ArrayList<>();
51
52 for (ArtifactRequest request : requests) {
53 ArtifactResult result = new ArtifactResult(request);
54 results.add(result);
55
56 Artifact artifact = request.getArtifact();
57 if ("maven-test".equals(artifact.getGroupId())) {
58 String scope = artifact.getArtifactId().substring("scope-".length());
59
60 try {
61 artifact = artifact.setFile(ProjectClasspathTestType.getFileForClasspathResource(
62 ProjectClasspathTestType.dir + "transitive-" + scope + "-dep.xml"));
63 result.setArtifact(artifact);
64 } catch (FileNotFoundException | URISyntaxException e) {
65 throw new IllegalStateException("Missing test POM for " + artifact, e);
66 }
67 } else {
68 result.addException(new ArtifactNotFoundException(artifact, (RemoteRepository) null));
69 throw new ArtifactResolutionException(results);
70 }
71 }
72
73 return results;
74 }
75
76 public ArtifactResult resolveArtifact(RepositorySystemSession session, ArtifactRequest request)
77 throws ArtifactResolutionException {
78 return resolveArtifacts(session, Collections.singleton(request)).get(0);
79 }
80 }