1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.aether.internal.impl;
20
21 import org.eclipse.aether.RepositorySystemSession;
22 import org.eclipse.aether.impl.VersionRangeResolver;
23 import org.eclipse.aether.resolution.VersionRangeRequest;
24 import org.eclipse.aether.resolution.VersionRangeResolutionException;
25 import org.eclipse.aether.resolution.VersionRangeResult;
26 import org.eclipse.aether.util.version.GenericVersionScheme;
27 import org.eclipse.aether.version.InvalidVersionSpecificationException;
28 import org.eclipse.aether.version.Version;
29 import org.eclipse.aether.version.VersionConstraint;
30 import org.eclipse.aether.version.VersionScheme;
31
32 import static java.util.Objects.requireNonNull;
33
34
35
36 public class StubVersionRangeResolver implements VersionRangeResolver {
37
38 private final VersionScheme versionScheme = new GenericVersionScheme();
39
40 @Override
41 public VersionRangeResult resolveVersionRange(RepositorySystemSession session, VersionRangeRequest request)
42 throws VersionRangeResolutionException {
43 requireNonNull(session, "session cannot be null");
44 requireNonNull(request, "request cannot be null");
45 VersionRangeResult result = new VersionRangeResult(request);
46 try {
47 VersionConstraint constraint =
48 versionScheme.parseVersionConstraint(request.getArtifact().getVersion());
49 result.setVersionConstraint(constraint);
50 if (constraint.getRange() == null) {
51 result.addVersion(constraint.getVersion());
52 } else {
53 for (int i = 1; i < 10; i++) {
54 Version ver = versionScheme.parseVersion(Integer.toString(i));
55 if (constraint.containsVersion(ver)) {
56 result.addVersion(ver);
57 if (!request.getRepositories().isEmpty()) {
58 result.setRepository(ver, request.getRepositories().get(0));
59 }
60 }
61 }
62 }
63 } catch (InvalidVersionSpecificationException e) {
64 result.addException(e);
65 throw new VersionRangeResolutionException(result);
66 }
67
68 return result;
69 }
70 }