Skip to content

Commit 1a0e937

Browse files
Get rid of usage of o.a.maven.repository.RepositorySystem
1 parent d2550ba commit 1a0e937

File tree

72 files changed

+470
-514
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+470
-514
lines changed

Diff for: versions-common/pom.xml

+6
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,12 @@
122122
<artifactId>commons-io</artifactId>
123123
<scope>test</scope>
124124
</dependency>
125+
<dependency>
126+
<groupId>org.codehaus.mojo.versions</groupId>
127+
<artifactId>versions-test</artifactId>
128+
<version>${project.version}</version>
129+
<scope>test</scope>
130+
</dependency>
125131
</dependencies>
126132

127133
<build>

Diff for: versions-common/src/main/java/org/codehaus/mojo/versions/api/DefaultVersionsHelper.java

+46-41
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
*/
2121

2222
import java.io.BufferedInputStream;
23+
import java.io.File;
2324
import java.io.IOException;
2425
import java.net.URISyntaxException;
2526
import java.net.URL;
@@ -51,6 +52,8 @@
5152
import org.apache.commons.lang3.tuple.Pair;
5253
import org.apache.maven.artifact.Artifact;
5354
import org.apache.maven.artifact.ArtifactUtils;
55+
import org.apache.maven.artifact.DefaultArtifact;
56+
import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
5457
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
5558
import org.apache.maven.artifact.versioning.ArtifactVersion;
5659
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
@@ -63,7 +66,6 @@
6366
import org.apache.maven.plugin.MojoExecutionException;
6467
import org.apache.maven.plugin.logging.Log;
6568
import org.apache.maven.project.MavenProject;
66-
import org.apache.maven.repository.RepositorySystem;
6769
import org.apache.maven.wagon.Wagon;
6870
import org.apache.maven.wagon.authentication.AuthenticationInfo;
6971
import org.apache.maven.wagon.observers.Debug;
@@ -75,7 +77,6 @@
7577
import org.codehaus.mojo.versions.ordering.VersionComparator;
7678
import org.codehaus.mojo.versions.ordering.VersionComparators;
7779
import org.codehaus.mojo.versions.utils.DefaultArtifactVersionCache;
78-
import org.codehaus.mojo.versions.utils.DependencyBuilder;
7980
import org.codehaus.mojo.versions.utils.DependencyComparator;
8081
import org.codehaus.mojo.versions.utils.PluginComparator;
8182
import org.codehaus.mojo.versions.utils.RegexUtils;
@@ -84,6 +85,7 @@
8485
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
8586
import org.codehaus.plexus.util.StringUtils;
8687
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
88+
import org.eclipse.aether.RepositorySystem;
8789
import org.eclipse.aether.repository.AuthenticationContext;
8890
import org.eclipse.aether.repository.RemoteRepository;
8991
import org.eclipse.aether.repository.RepositoryPolicy;
@@ -122,9 +124,9 @@ RuleSet getRuleSet() {
122124
*/
123125
private RuleSet ruleSet;
124126

125-
private final RepositorySystem repositorySystem;
127+
private final ArtifactHandlerManager artifactHandlerManager;
126128

127-
private final org.eclipse.aether.RepositorySystem aetherRepositorySystem;
129+
private final RepositorySystem repositorySystem;
128130

129131
/**
130132
* The {@link Log} to send log messages to.
@@ -160,13 +162,13 @@ RuleSet getRuleSet() {
160162
* Private constructor used by the builder
161163
*/
162164
private DefaultVersionsHelper(
165+
ArtifactHandlerManager artifactHandlerManager,
163166
RepositorySystem repositorySystem,
164-
org.eclipse.aether.RepositorySystem aetherRepositorySystem,
165167
MavenSession mavenSession,
166168
MojoExecution mojoExecution,
167169
Log log) {
170+
this.artifactHandlerManager = artifactHandlerManager;
168171
this.repositorySystem = repositorySystem;
169-
this.aetherRepositorySystem = aetherRepositorySystem;
170172
this.mavenSession = mavenSession;
171173
this.mojoExecution = mojoExecution;
172174
this.log = log;
@@ -276,7 +278,7 @@ public ArtifactVersions lookupArtifactVersions(
276278

277279
return new ArtifactVersions(
278280
artifact,
279-
aetherRepositorySystem
281+
repositorySystem
280282
.resolveVersionRange(
281283
mavenSession.getRepositorySession(),
282284
new VersionRangeRequest(
@@ -356,7 +358,7 @@ private List<IgnoreVersion> getIgnoredVersions(Artifact artifact) {
356358
@Override
357359
public void resolveArtifact(Artifact artifact, boolean usePluginRepositories) throws ArtifactResolutionException {
358360
try {
359-
ArtifactResult artifactResult = aetherRepositorySystem.resolveArtifact(
361+
ArtifactResult artifactResult = repositorySystem.resolveArtifact(
360362
mavenSession.getRepositorySession(),
361363
new ArtifactRequest(
362364
toArtifact(artifact),
@@ -445,11 +447,7 @@ protected Rule getBestFitRule(String groupId, String artifactId) {
445447

446448
@Override
447449
public Artifact createPluginArtifact(String groupId, String artifactId, String version) {
448-
Plugin plugin = new Plugin();
449-
plugin.setGroupId(groupId);
450-
plugin.setArtifactId(artifactId);
451-
plugin.setVersion(StringUtils.isNotBlank(version) ? version : "[0,]");
452-
return repositorySystem.createPluginArtifact(plugin);
450+
return createDependencyArtifact(groupId, artifactId, version, "maven-plugin", null, "runtime", false);
453451
}
454452

455453
@Override
@@ -461,31 +459,37 @@ public Artifact createDependencyArtifact(
461459
String classifier,
462460
String scope,
463461
boolean optional) {
464-
return repositorySystem.createDependencyArtifact(DependencyBuilder.newBuilder()
465-
.withGroupId(groupId)
466-
.withArtifactId(artifactId)
467-
.withType(type)
468-
.withClassifier(classifier)
469-
.withScope(scope)
470-
.withOptional(optional)
471-
.withVersion(StringUtils.isNotBlank(version) ? version : "[0,]")
472-
.build());
473-
}
474-
475-
@Override
476-
public Artifact createDependencyArtifact(
477-
String groupId, String artifactId, String version, String type, String classifier, String scope) {
478-
return createDependencyArtifact(groupId, artifactId, version, type, classifier, scope, false);
462+
try {
463+
return new DefaultArtifact(
464+
groupId,
465+
artifactId,
466+
VersionRange.createFromVersionSpec(StringUtils.isNotBlank(version) ? version : "[0,]"),
467+
scope,
468+
type,
469+
classifier,
470+
artifactHandlerManager.getArtifactHandler(type),
471+
optional);
472+
} catch (InvalidVersionSpecificationException e) {
473+
// version should have a proper format
474+
throw new RuntimeException(e);
475+
}
479476
}
480477

481478
@Override
482479
public Artifact createDependencyArtifact(Dependency dependency) {
483-
if (StringUtils.isBlank(dependency.getVersion())) {
484-
dependency = dependency.clone();
485-
dependency.setVersion("[,0]");
486-
}
487-
488-
return repositorySystem.createDependencyArtifact(dependency);
480+
Artifact artifact = createDependencyArtifact(
481+
dependency.getGroupId(),
482+
dependency.getArtifactId(),
483+
dependency.getVersion(),
484+
dependency.getType(),
485+
dependency.getClassifier(),
486+
dependency.getScope(),
487+
false);
488+
489+
if (Artifact.SCOPE_SYSTEM.equals(dependency.getScope()) && dependency.getSystemPath() != null) {
490+
artifact.setFile(new File(dependency.getSystemPath()));
491+
}
492+
return artifact;
489493
}
490494

491495
@Override
@@ -710,15 +714,16 @@ public Map<Property, PropertyVersions> getVersionPropertiesMap(VersionProperties
710714
* Builder class for {@linkplain DefaultVersionsHelper}
711715
*/
712716
public static class Builder {
713-
private RepositorySystem repositorySystem;
717+
private ArtifactHandlerManager artifactHandlerManager;
714718
private Collection<String> ignoredVersions;
715719
private RuleSet ruleSet;
716720
private String serverId;
717721
private String rulesUri;
718722
private Log log;
719723
private MavenSession mavenSession;
720724
private MojoExecution mojoExecution;
721-
private org.eclipse.aether.RepositorySystem aetherRepositorySystem;
725+
private RepositorySystem repositorySystem;
726+
722727
private Map<String, Wagon> wagonMap;
723728

724729
public Builder() {}
@@ -919,8 +924,8 @@ public static Optional<String> protocol(final String url) {
919924
return pos == -1 ? empty() : of(url.substring(0, pos).trim());
920925
}
921926

922-
public Builder withRepositorySystem(RepositorySystem repositorySystem) {
923-
this.repositorySystem = repositorySystem;
927+
public Builder withArtifactHandlerManager(ArtifactHandlerManager artifactHandlerManager) {
928+
this.artifactHandlerManager = artifactHandlerManager;
924929
return this;
925930
}
926931

@@ -959,8 +964,8 @@ public Builder withMojoExecution(MojoExecution mojoExecution) {
959964
return this;
960965
}
961966

962-
public Builder withAetherRepositorySystem(org.eclipse.aether.RepositorySystem aetherRepositorySystem) {
963-
this.aetherRepositorySystem = aetherRepositorySystem;
967+
public Builder withRepositorySystem(RepositorySystem repositorySystem) {
968+
this.repositorySystem = repositorySystem;
964969
return this;
965970
}
966971

@@ -976,7 +981,7 @@ public Builder withWagonMap(Map<String, Wagon> wagonMap) {
976981
*/
977982
public DefaultVersionsHelper build() throws MojoExecutionException {
978983
DefaultVersionsHelper instance = new DefaultVersionsHelper(
979-
repositorySystem, aetherRepositorySystem, mavenSession, mojoExecution, log);
984+
artifactHandlerManager, repositorySystem, mavenSession, mojoExecution, log);
980985
if (ruleSet != null) {
981986
if (!isBlank(rulesUri)) {
982987
log.warn("rulesUri is ignored if rules are specified in pom or as parameters");

Diff for: versions-common/src/main/java/org/codehaus/mojo/versions/api/VersionsHelper.java

-15
Original file line numberDiff line numberDiff line change
@@ -103,21 +103,6 @@ Artifact createDependencyArtifact(
103103
String scope,
104104
boolean optional);
105105

106-
/**
107-
* Shorthand method for <code>getArtifactFactory().createDependencyArtifact(...)</code>.
108-
*
109-
* @param groupId The group id.
110-
* @param artifactId The artifact id.
111-
* @param version The version.
112-
* @param type The type.
113-
* @param classifier The classifier.
114-
* @param scope The scope.
115-
* @return The corresponding dependency artifact.
116-
* @since 1.0-beta-1
117-
*/
118-
Artifact createDependencyArtifact(
119-
String groupId, String artifactId, String version, String type, String classifier, String scope);
120-
121106
/**
122107
* Shorthand method for <code>repositorySystem.createDependencyArtifact(...)</code> which extracts the
123108
* parameters from the Dependency instance.

Diff for: versions-common/src/test/java/org/codehaus/mojo/versions/api/DefaultVersionsHelperTest.java

+22-7
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
import org.apache.maven.plugin.logging.Log;
4040
import org.apache.maven.plugin.logging.SystemStreamLog;
4141
import org.apache.maven.project.MavenProject;
42-
import org.apache.maven.repository.RepositorySystem;
4342
import org.apache.maven.wagon.ConnectionException;
4443
import org.apache.maven.wagon.ResourceDoesNotExistException;
4544
import org.apache.maven.wagon.TransferFailedException;
@@ -53,6 +52,7 @@
5352
import org.codehaus.mojo.versions.model.RuleSet;
5453
import org.codehaus.mojo.versions.ordering.VersionComparators;
5554
import org.eclipse.aether.DefaultRepositorySystemSession;
55+
import org.eclipse.aether.RepositorySystem;
5656
import org.eclipse.aether.repository.RemoteRepository;
5757
import org.eclipse.aether.repository.RepositoryPolicy;
5858
import org.eclipse.aether.resolution.VersionRangeRequest;
@@ -67,6 +67,7 @@
6767
import static java.util.Collections.emptyList;
6868
import static java.util.Collections.singletonList;
6969
import static java.util.Collections.singletonMap;
70+
import static org.codehaus.mojo.versions.utils.MockUtils.mockArtifactHandlerManager;
7071
import static org.hamcrest.MatcherAssert.assertThat;
7172
import static org.hamcrest.Matchers.containsInAnyOrder;
7273
import static org.hamcrest.Matchers.equalTo;
@@ -90,7 +91,7 @@
9091
class DefaultVersionsHelperTest {
9192
@Test
9293
public void testPerRuleVersionsIgnored() throws Exception {
93-
final org.eclipse.aether.RepositorySystem repositorySystem = mock(org.eclipse.aether.RepositorySystem.class);
94+
final RepositorySystem repositorySystem = mock(org.eclipse.aether.RepositorySystem.class);
9495
final Artifact artifact = mock(Artifact.class);
9596
when(artifact.getGroupId()).thenReturn("com.mycompany.maven");
9697
when(artifact.getArtifactId()).thenReturn("artifact-one");
@@ -119,7 +120,7 @@ public void testPerRuleVersionsIgnored() throws Exception {
119120

120121
@Test
121122
public void testGlobalRuleVersionsIgnored() throws Exception {
122-
final org.eclipse.aether.RepositorySystem repositorySystem = mock(org.eclipse.aether.RepositorySystem.class);
123+
final RepositorySystem repositorySystem = mock(org.eclipse.aether.RepositorySystem.class);
123124
final Artifact artifact = mock(Artifact.class);
124125
when(artifact.getGroupId()).thenReturn("other.company");
125126
when(artifact.getArtifactId()).thenReturn("artifact-two");
@@ -249,8 +250,7 @@ private static Wagon mockFileWagon(URI rulesUri)
249250
return fileWagon;
250251
}
251252

252-
private DefaultVersionsHelper createHelper(org.eclipse.aether.RepositorySystem aetherRepositorySystem)
253-
throws Exception {
253+
private DefaultVersionsHelper createHelper(RepositorySystem repositorySystem) throws Exception {
254254
final String resourcePath = "/" + getClass().getPackage().getName().replace('.', '/') + "/rules.xml";
255255
final String rulesUri =
256256
Objects.requireNonNull(getClass().getResource(resourcePath)).toExternalForm();
@@ -261,8 +261,7 @@ private DefaultVersionsHelper createHelper(org.eclipse.aether.RepositorySystem a
261261
when(mavenSession.getRepositorySession()).thenReturn(new DefaultRepositorySystemSession());
262262

263263
return new DefaultVersionsHelper.Builder()
264-
.withRepositorySystem(mock(RepositorySystem.class))
265-
.withAetherRepositorySystem(aetherRepositorySystem)
264+
.withRepositorySystem(repositorySystem)
266265
.withWagonMap(singletonMap("file", mockFileWagon(new URI(rulesUri))))
267266
.withServerId("")
268267
.withRulesUri(rulesUri)
@@ -380,6 +379,22 @@ void testRemoteRepositoryWithNeverUpdatePolicyShouldBeChangToDaily() {
380379
equalTo(RepositoryPolicy.UPDATE_POLICY_DAILY));
381380
}
382381

382+
@Test
383+
void createPluginArtifact() throws Exception {
384+
385+
DefaultVersionsHelper versionsHelper = new DefaultVersionsHelper.Builder()
386+
.withArtifactHandlerManager(mockArtifactHandlerManager())
387+
.build();
388+
389+
Artifact artifact = versionsHelper.createPluginArtifact("groupId", "artifactId", "version");
390+
assertEquals("groupId", artifact.getGroupId());
391+
assertEquals("artifactId", artifact.getArtifactId());
392+
assertEquals("version", artifact.getVersion());
393+
assertEquals("maven-plugin", artifact.getType());
394+
assertEquals("runtime", artifact.getScope());
395+
assertEquals("jar", artifact.getArtifactHandler().getExtension());
396+
}
397+
383398
private static Version parseVersion(String version) {
384399
try {
385400
return new GenericVersionScheme().parseVersion(version);

Diff for: versions-enforcer/src/main/java/org/codehaus/mojo/versions/enforcer/MaxDependencyUpdates.java

+7-6
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.util.TreeSet;
3030
import java.util.stream.Collectors;
3131

32+
import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
3233
import org.apache.maven.artifact.versioning.ArtifactVersion;
3334
import org.apache.maven.enforcer.rule.api.AbstractEnforcerRule;
3435
import org.apache.maven.enforcer.rule.api.EnforcerRuleError;
@@ -38,7 +39,6 @@
3839
import org.apache.maven.plugin.MojoExecution;
3940
import org.apache.maven.plugin.MojoExecutionException;
4041
import org.apache.maven.project.MavenProject;
41-
import org.apache.maven.repository.RepositorySystem;
4242
import org.apache.maven.wagon.Wagon;
4343
import org.codehaus.mojo.versions.api.ArtifactVersions;
4444
import org.codehaus.mojo.versions.api.DefaultVersionsHelper;
@@ -47,6 +47,7 @@
4747
import org.codehaus.mojo.versions.api.VersionsHelper;
4848
import org.codehaus.mojo.versions.model.RuleSet;
4949
import org.codehaus.mojo.versions.utils.DependencyComparator;
50+
import org.eclipse.aether.RepositorySystem;
5051

5152
import static java.util.Collections.emptyList;
5253
import static java.util.Collections.singletonList;
@@ -256,9 +257,9 @@ public class MaxDependencyUpdates extends AbstractEnforcerRule {
256257

257258
private final MavenProject project;
258259

259-
private final RepositorySystem repositorySystem;
260+
private final ArtifactHandlerManager artifactHandlerManager;
260261

261-
private final org.eclipse.aether.RepositorySystem aetherRepositorySystem;
262+
private final RepositorySystem repositorySystem;
262263

263264
private final Map<String, Wagon> wagonMap;
264265

@@ -269,14 +270,14 @@ public class MaxDependencyUpdates extends AbstractEnforcerRule {
269270
@Inject
270271
public MaxDependencyUpdates(
271272
MavenProject project,
273+
ArtifactHandlerManager artifactHandlerManager,
272274
RepositorySystem repositorySystem,
273-
org.eclipse.aether.RepositorySystem aetherRepositorySystem,
274275
Map<String, Wagon> wagonMap,
275276
MavenSession mavenSession,
276277
MojoExecution mojoExecution) {
277278
this.project = project;
279+
this.artifactHandlerManager = artifactHandlerManager;
278280
this.repositorySystem = repositorySystem;
279-
this.aetherRepositorySystem = aetherRepositorySystem;
280281
this.wagonMap = wagonMap;
281282
this.mavenSession = mavenSession;
282283
this.mojoExecution = mojoExecution;
@@ -290,8 +291,8 @@ private VersionsHelper createVersionsHelper(String serverId, String rulesUri, Ru
290291
throws EnforcerRuleError {
291292
try {
292293
return new DefaultVersionsHelper.Builder()
294+
.withArtifactHandlerManager(artifactHandlerManager)
293295
.withRepositorySystem(repositorySystem)
294-
.withAetherRepositorySystem(aetherRepositorySystem)
295296
.withWagonMap(wagonMap)
296297
.withServerId(serverId)
297298
.withRulesUri(rulesUri)

0 commit comments

Comments
 (0)