Skip to content

Commit a4b99bf

Browse files
committed
mojohaus#704: Removing ArtifactRepository leftovers; using ranges for version resolution
1 parent bc10d1a commit a4b99bf

File tree

14 files changed

+248
-749
lines changed

14 files changed

+248
-749
lines changed

versions-common/pom.xml

+10-4
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,9 @@
4040
<scope>provided</scope>
4141
</dependency>
4242
<dependency>
43-
<groupId>org.apache.maven</groupId>
44-
<artifactId>maven-compat</artifactId>
45-
<version>${mavenVersion}</version>
46-
<scope>provided</scope>
43+
<groupId>org.apache.maven.wagon</groupId>
44+
<artifactId>wagon-provider-api</artifactId>
45+
<version>3.5.2</version>
4746
</dependency>
4847
<dependency>
4948
<groupId>org.apache.maven</groupId>
@@ -110,6 +109,13 @@
110109
<artifactId>slf4j-simple</artifactId>
111110
<scope>test</scope>
112111
</dependency>
112+
<!-- Required by Maven Testing Harness -->
113+
<dependency>
114+
<groupId>org.apache.maven</groupId>
115+
<artifactId>maven-compat</artifactId>
116+
<version>${mavenVersion}</version>
117+
<scope>test</scope>
118+
</dependency>
113119
</dependencies>
114120

115121
<build>

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

+18-6
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
5454
import org.apache.maven.artifact.versioning.ArtifactVersion;
5555
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
56+
import org.apache.maven.artifact.versioning.VersionRange;
5657
import org.apache.maven.execution.MavenSession;
5758
import org.apache.maven.model.Dependency;
5859
import org.apache.maven.model.Plugin;
@@ -175,7 +176,8 @@ public Log getLog()
175176
}
176177

177178
@Override
178-
public ArtifactVersions lookupArtifactVersions( Artifact artifact, boolean usePluginRepositories )
179+
public ArtifactVersions lookupArtifactVersions( Artifact artifact, VersionRange versionRange,
180+
boolean usePluginRepositories )
179181
throws VersionRetrievalException
180182
{
181183
try
@@ -189,11 +191,14 @@ public ArtifactVersions lookupArtifactVersions( Artifact artifact, boolean usePl
189191
return new ArtifactVersions( artifact,
190192
aetherRepositorySystem.resolveVersionRange( mavenSession.getRepositorySession(),
191193
new VersionRangeRequest(
192-
toArtifact( artifact ).setVersion( "(,)" ),
193-
usePluginRepositories
194-
? mavenSession.getCurrentProject().getRemotePluginRepositories()
195-
: mavenSession.getCurrentProject().getRemoteProjectRepositories(),
196-
"lookupArtifactVersions" ) )
194+
toArtifact( artifact ).setVersion(
195+
versionRange != null
196+
? versionRange.toString()
197+
: "(,)" ),
198+
usePluginRepositories
199+
? mavenSession.getCurrentProject().getRemotePluginRepositories()
200+
: mavenSession.getCurrentProject().getRemoteProjectRepositories(),
201+
"lookupArtifactVersions" ) )
197202
.getVersions()
198203
.parallelStream()
199204
.filter( v -> ignoredVersions.stream()
@@ -237,6 +242,13 @@ public ArtifactVersions lookupArtifactVersions( Artifact artifact, boolean usePl
237242
}
238243
}
239244

245+
@Override
246+
public ArtifactVersions lookupArtifactVersions( Artifact artifact, boolean usePluginRepositories )
247+
throws VersionRetrievalException
248+
{
249+
return lookupArtifactVersions( artifact, null, usePluginRepositories );
250+
}
251+
240252
/**
241253
* Returns a list of versions which should not be considered when looking for updates.
242254
*

versions-common/src/main/java/org/codehaus/mojo/versions/api/PomHelper.java

-28
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
import java.util.LinkedHashMap;
3838
import java.util.List;
3939
import java.util.Map;
40-
import java.util.Objects;
4140
import java.util.Properties;
4241
import java.util.Set;
4342
import java.util.Stack;
@@ -57,7 +56,6 @@
5756
import org.apache.maven.model.Profile;
5857
import org.apache.maven.model.ReportPlugin;
5958
import org.apache.maven.model.building.ModelBuildingRequest;
60-
import org.apache.maven.model.building.UrlModelSource;
6159
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
6260
import org.apache.maven.plugin.logging.Log;
6361
import org.apache.maven.project.DefaultProjectBuildingRequest;
@@ -1523,32 +1521,6 @@ public static MavenProject getLocalRoot( ProjectBuilder projectBuilder,
15231521
}
15241522
}
15251523

1526-
/**
1527-
* Retrieves the standalone superproject
1528-
*
1529-
* @param projectBuilder {@link ProjectBuilder} instance
1530-
* @param mavenSession {@link MavenSession} instance
1531-
* @param logger The logger to log tog
1532-
*
1533-
* @return superproject retrieved
1534-
* @throws ProjectBuildingException if the retrieval fails
1535-
*/
1536-
public static MavenProject getStandaloneSuperProject( ProjectBuilder projectBuilder,
1537-
MavenSession mavenSession,
1538-
Log logger ) throws ProjectBuildingException
1539-
{
1540-
ProjectBuildingResult result = projectBuilder.build( new UrlModelSource(
1541-
Objects.requireNonNull( PomHelper.class.getResource( "standalone.xml" ) ) ),
1542-
createProjectBuilderRequest( mavenSession, r -> r.setProcessPlugins( false ) ) );
1543-
if ( !result.getProblems().isEmpty() )
1544-
{
1545-
logger.warn( "Problems encountered during building of the superproject." );
1546-
result.getProblems().forEach( p ->
1547-
logger.warn( "\t" + p.getMessage() ) );
1548-
}
1549-
return result.getProject();
1550-
}
1551-
15521524
/**
15531525
* <p>Convenience method for creating a {@link ProjectBuildingRequest} instance based on maven session.</p>
15541526
* <p><u>Note:</u> The method initializes the remote repositories with the remote artifact repositories.

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

+17
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.apache.maven.artifact.Artifact;
2828
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
2929
import org.apache.maven.artifact.versioning.ArtifactVersion;
30+
import org.apache.maven.artifact.versioning.VersionRange;
3031
import org.apache.maven.model.Dependency;
3132
import org.apache.maven.model.Plugin;
3233
import org.apache.maven.plugin.MojoExecutionException;
@@ -154,6 +155,22 @@ Artifact createDependencyArtifact( String groupId, String artifactId, String ver
154155
ArtifactVersions lookupArtifactVersions( Artifact artifact, boolean usePluginRepositories )
155156
throws VersionRetrievalException;
156157

158+
/**
159+
* Looks up the versions of the specified artifact that are available in either the local repository, or the
160+
* appropriate remote repositories.
161+
*
162+
* @param artifact The artifact to look for versions of.
163+
* @param versionRange versionRange to restrict the search
164+
* @param usePluginRepositories <code>true</code> will consult the pluginRepositories, while <code>false</code> will
165+
* consult the repositories for normal dependencies.
166+
* @return The details of the available artifact versions.
167+
* @throws VersionRetrievalException thrown if version resolution fails
168+
* @since 1.0-alpha-3
169+
*/
170+
ArtifactVersions lookupArtifactVersions( Artifact artifact, VersionRange versionRange,
171+
boolean usePluginRepositories )
172+
throws VersionRetrievalException;
173+
157174
/**
158175
* Looks up the updates for a set of dependencies.
159176
*

versions-enforcer/pom.xml

-7
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,6 @@
4646
<scope>provided</scope>
4747
</dependency>
4848

49-
<dependency>
50-
<groupId>org.apache.maven</groupId>
51-
<artifactId>maven-compat</artifactId>
52-
<version>${mavenVersion}</version>
53-
<scope>provided</scope>
54-
</dependency>
55-
5649
<dependency>
5750
<groupId>org.junit.jupiter</groupId>
5851
<artifactId>junit-jupiter</artifactId>

versions-enforcer/src/test/java/org/apache/maven/plugins/enforcer/MaxDependencyUpdatesTest.java

+8-17
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,11 @@
2020

2121
import java.util.HashMap;
2222

23-
import org.apache.maven.artifact.resolver.ArtifactResolver;
2423
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
2524
import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
2625
import org.apache.maven.plugin.MojoExecution;
27-
import org.apache.maven.plugin.testing.stubs.StubArtifactRepository;
2826
import org.apache.maven.project.MavenProject;
2927
import org.apache.maven.repository.RepositorySystem;
30-
import org.apache.maven.settings.Settings;
3128
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
3229
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
3330
import org.junit.Test;
@@ -57,23 +54,17 @@ private static EnforcerRuleHelper mockRuleHelper( MavenProject mavenProject,
5754
when( ruleHelper.evaluate( anyString() ) )
5855
.then( ( a ) -> "${project}".equals( a.getArgument( 0 ) )
5956
? mavenProject
60-
: "${localRepository}".equals( a.getArgument( 0 ) )
61-
? new StubArtifactRepository( "" )
62-
: "${settings}".equals( a.getArgument( 0 ) )
63-
? new Settings()
64-
: "${session}".equals( a.getArgument( 0 ) )
65-
? mockMavenSession()
66-
: "${mojoExecution}".equals( a.getArgument( 0 ) )
67-
? mock( MojoExecution.class )
68-
: null );
57+
: "${session}".equals( a.getArgument( 0 ) )
58+
? mockMavenSession()
59+
: "${mojoExecution}".equals( a.getArgument( 0 ) )
60+
? mock( MojoExecution.class )
61+
: null );
6962
when( ruleHelper.getComponent( ArgumentMatchers.<Class<?>>any() ) )
7063
.then( ( a ) -> a.getArgument( 0 ) == RepositorySystem.class
7164
? mockRepositorySystem()
72-
: a.getArgument( 0 ) == ArtifactResolver.class
73-
? mock( ArtifactResolver.class )
74-
: a.getArgument( 0 ) == org.eclipse.aether.RepositorySystem.class
75-
? aetherRepositorySystem
76-
: null );
65+
: a.getArgument( 0 ) == org.eclipse.aether.RepositorySystem.class
66+
? aetherRepositorySystem
67+
: null );
7768
return ruleHelper;
7869
}
7970

versions-maven-plugin/pom.xml

+7-6
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,6 @@
5858
<version>${mavenVersion}</version>
5959
<scope>provided</scope>
6060
</dependency>
61-
<dependency>
62-
<groupId>org.apache.maven</groupId>
63-
<artifactId>maven-compat</artifactId>
64-
<version>${mavenVersion}</version>
65-
<scope>provided</scope>
66-
</dependency>
6761
<dependency>
6862
<groupId>org.apache.maven</groupId>
6963
<artifactId>maven-model</artifactId>
@@ -162,6 +156,13 @@
162156
<artifactId>slf4j-simple</artifactId>
163157
<scope>test</scope>
164158
</dependency>
159+
<!-- Required by Maven Testing Harness -->
160+
<dependency>
161+
<groupId>org.apache.maven</groupId>
162+
<artifactId>maven-compat</artifactId>
163+
<version>${mavenVersion}</version>
164+
<scope>test</scope>
165+
</dependency>
165166
</dependencies>
166167

167168
<build>

versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsReport.java

-34
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,6 @@
2424
import java.util.Map;
2525
import java.util.Set;
2626

27-
import org.apache.maven.artifact.Artifact;
28-
import org.apache.maven.artifact.versioning.ArtifactVersion;
29-
import org.apache.maven.artifact.versioning.VersionRange;
3027
import org.apache.maven.doxia.sink.Sink;
3128
import org.apache.maven.doxia.siterenderer.Renderer;
3229
import org.apache.maven.execution.MavenSession;
@@ -38,9 +35,7 @@
3835
import org.apache.maven.reporting.MavenReportException;
3936
import org.apache.maven.repository.RepositorySystem;
4037
import org.apache.maven.wagon.Wagon;
41-
import org.codehaus.mojo.versions.api.ArtifactVersions;
4238
import org.codehaus.mojo.versions.api.DefaultVersionsHelper;
43-
import org.codehaus.mojo.versions.api.VersionRetrievalException;
4439
import org.codehaus.mojo.versions.api.VersionsHelper;
4540
import org.codehaus.mojo.versions.model.RuleSet;
4641
import org.codehaus.mojo.versions.reporting.ReportRendererFactory;
@@ -243,35 +238,6 @@ protected void executeReport( Locale locale )
243238
protected abstract void doGenerateReport( Locale locale, Sink sink )
244239
throws MavenReportException, MojoExecutionException;
245240

246-
/**
247-
* Finds the latest version of the specified artifact that matches the version range.
248-
*
249-
* @param artifact The artifact.
250-
* @param versionRange The version range.
251-
* @param allowingSnapshots <code>null</code> for no override, otherwise the local override to apply.
252-
* @param usePluginRepositories Use plugin repositories
253-
* @return The latest version of the specified artifact that matches the specified version range or
254-
* <code>null</code> if no matching version could be found.
255-
* @throws MavenReportException If the artifact metadata could not be found.
256-
* @since 1.0-alpha-1
257-
*/
258-
protected ArtifactVersion findLatestVersion( Artifact artifact, VersionRange versionRange,
259-
Boolean allowingSnapshots, boolean usePluginRepositories )
260-
throws MavenReportException
261-
{
262-
boolean includeSnapshots = allowingSnapshots != null ? allowingSnapshots : this.allowSnapshots;
263-
try
264-
{
265-
final ArtifactVersions artifactVersions =
266-
getHelper().lookupArtifactVersions( artifact, usePluginRepositories );
267-
return artifactVersions.getNewestVersion( versionRange, includeSnapshots );
268-
}
269-
catch ( VersionRetrievalException e )
270-
{
271-
throw new MavenReportException( e.getMessage(), e );
272-
}
273-
}
274-
275241
@Override
276242
protected MavenProject getProject()
277243
{

versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsUpdaterMojo.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,8 @@ protected ArtifactVersion findLatestVersion( Artifact artifact, VersionRange ver
308308
throws MojoExecutionException, VersionRetrievalException
309309
{
310310
boolean includeSnapshots = allowingSnapshots != null ? allowingSnapshots : this.allowSnapshots;
311-
final ArtifactVersions artifactVersions = getHelper().lookupArtifactVersions( artifact, usePluginRepositories );
311+
final ArtifactVersions artifactVersions = getHelper().lookupArtifactVersions( artifact, versionRange,
312+
usePluginRepositories );
312313
return artifactVersions.getNewestVersion( versionRange, null, includeSnapshots, false );
313314
}
314315

0 commit comments

Comments
 (0)