From 85fc7db2ddd01ef353fb2ead3bf370111e991c51 Mon Sep 17 00:00:00 2001 From: Andrzej Jarmoniuk Date: Fri, 25 Nov 2022 15:36:37 +0100 Subject: [PATCH] #704: Remove WagonManager --- pom.xml | 1 - versions-common/pom.xml | 13 - .../versions/api/DefaultVersionsHelper.java | 371 ++++++++---------- .../mojo/versions/utils/WagonUtils.java | 112 ------ .../markdown/max-dependency-updates.md.vm | 2 +- .../it/it-transporter-001/invoker.properties | 2 + .../src/it/it-transporter-001/pom.xml | 18 + .../src/it/it-transporter-001/rules.xml | 12 + .../src/it/it-transporter-001/verify.groovy | 3 + .../it/it-transporter-002/invoker.properties | 2 + .../src/it/it-transporter-002/pom.xml | 38 ++ .../src/it/it-transporter-002/rules.xml | 12 + .../src/it/it-transporter-002/verify.groovy | 3 + ...AbstractVersionsDependencyUpdaterMojo.java | 4 +- .../mojo/versions/AbstractVersionsReport.java | 26 +- 15 files changed, 262 insertions(+), 357 deletions(-) delete mode 100644 versions-common/src/main/java/org/codehaus/mojo/versions/utils/WagonUtils.java create mode 100644 versions-maven-plugin/src/it/it-transporter-001/invoker.properties create mode 100644 versions-maven-plugin/src/it/it-transporter-001/pom.xml create mode 100644 versions-maven-plugin/src/it/it-transporter-001/rules.xml create mode 100644 versions-maven-plugin/src/it/it-transporter-001/verify.groovy create mode 100644 versions-maven-plugin/src/it/it-transporter-002/invoker.properties create mode 100644 versions-maven-plugin/src/it/it-transporter-002/pom.xml create mode 100644 versions-maven-plugin/src/it/it-transporter-002/rules.xml create mode 100644 versions-maven-plugin/src/it/it-transporter-002/verify.groovy diff --git a/pom.xml b/pom.xml index ae0e574a9a..9ea4a7ea1c 100644 --- a/pom.xml +++ b/pom.xml @@ -127,7 +127,6 @@ ${mojo.java.target} 5.9.1 3.2.5 - 3.5.2 1.11.1 1.11.1 ${project.version} diff --git a/versions-common/pom.xml b/versions-common/pom.xml index 365dba0074..5b791a896b 100644 --- a/versions-common/pom.xml +++ b/versions-common/pom.xml @@ -63,25 +63,12 @@ ${mavenVersion} provided - - org.apache.maven.wagon - wagon-provider-api - ${wagonVersion} - provided - com.fasterxml.woodstox woodstox-core test - - - org.apache.maven.wagon - wagon-file - ${wagonVersion} - test - org.apache.commons commons-lang3 diff --git a/versions-common/src/main/java/org/codehaus/mojo/versions/api/DefaultVersionsHelper.java b/versions-common/src/main/java/org/codehaus/mojo/versions/api/DefaultVersionsHelper.java index c948b7d635..0c1d7ef504 100644 --- a/versions-common/src/main/java/org/codehaus/mojo/versions/api/DefaultVersionsHelper.java +++ b/versions-common/src/main/java/org/codehaus/mojo/versions/api/DefaultVersionsHelper.java @@ -20,11 +20,11 @@ */ import java.io.BufferedInputStream; -import java.io.File; import java.io.IOException; -import java.io.InputStream; +import java.io.StringReader; +import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; -import java.nio.file.Files; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -35,6 +35,8 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Objects; +import java.util.Optional; import java.util.Set; import java.util.TreeMap; import java.util.TreeSet; @@ -49,7 +51,6 @@ import org.apache.commons.lang3.tuple.Pair; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.ArtifactUtils; -import org.apache.maven.artifact.manager.WagonManager; import org.apache.maven.artifact.resolver.ArtifactResolutionException; import org.apache.maven.artifact.versioning.ArtifactVersion; import org.apache.maven.artifact.versioning.DefaultArtifactVersion; @@ -61,14 +62,6 @@ import org.apache.maven.plugin.logging.Log; import org.apache.maven.project.MavenProject; import org.apache.maven.repository.RepositorySystem; -import org.apache.maven.settings.Settings; -import org.apache.maven.wagon.ConnectionException; -import org.apache.maven.wagon.ResourceDoesNotExistException; -import org.apache.maven.wagon.TransferFailedException; -import org.apache.maven.wagon.UnsupportedProtocolException; -import org.apache.maven.wagon.Wagon; -import org.apache.maven.wagon.authentication.AuthenticationException; -import org.apache.maven.wagon.authorization.AuthorizationException; import org.codehaus.mojo.versions.model.IgnoreVersion; import org.codehaus.mojo.versions.model.Rule; import org.codehaus.mojo.versions.model.RuleSet; @@ -80,15 +73,21 @@ import org.codehaus.mojo.versions.utils.PluginComparator; import org.codehaus.mojo.versions.utils.RegexUtils; import org.codehaus.mojo.versions.utils.VersionsExpressionEvaluator; -import org.codehaus.mojo.versions.utils.WagonUtils; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException; import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator; import org.codehaus.plexus.util.StringUtils; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; +import org.eclipse.aether.repository.RemoteRepository; import org.eclipse.aether.resolution.ArtifactRequest; import org.eclipse.aether.resolution.ArtifactResult; import org.eclipse.aether.resolution.VersionRangeRequest; import org.eclipse.aether.resolution.VersionRangeResolutionException; +import org.eclipse.aether.spi.connector.transport.GetTask; +import org.eclipse.aether.spi.connector.transport.TransporterFactory; +import org.eclipse.aether.transfer.NoTransporterException; + +import static java.util.Optional.empty; +import static java.util.Optional.of; import static org.apache.maven.RepositoryUtils.toArtifact; @@ -151,43 +150,6 @@ private DefaultVersionsHelper() { } - @Deprecated - private static RuleSet getRuleSet( Wagon wagon, String remoteURI ) - throws IOException, AuthorizationException, TransferFailedException, ResourceDoesNotExistException - { - File tempFile = File.createTempFile( "ruleset", ".xml" ); - try - { - wagon.get( remoteURI, tempFile ); - try ( InputStream is = Files.newInputStream( tempFile.toPath() ) ) - { - return readRulesFromStream( is ); - } - } - finally - { - if ( !tempFile.delete() ) - { - // maybe we can delete this later - tempFile.deleteOnExit(); - } - } - } - - private static RuleSet readRulesFromStream( InputStream stream ) - throws IOException - { - RuleXpp3Reader reader = new RuleXpp3Reader(); - try ( BufferedInputStream bis = new BufferedInputStream( stream ) ) - { - return reader.read( bis ); - } - catch ( XmlPullParserException e ) - { - throw new IOException( e ); - } - } - static boolean exactMatch( String wildcardRule, String value ) { Pattern p = Pattern.compile( RegexUtils.convertWildcardsToRegex( wildcardRule, true ) ); @@ -200,149 +162,6 @@ static boolean match( String wildcardRule, String value ) return p.matcher( value ).matches(); } - /** - *

Creates the enriched version of the ruleSet given as parameter; the ruleSet will contain the - * set of ignored versions passed on top of its own (if defined).

- * - *

If the {@code originalRuleSet} is {@code null}, a new {@linkplain RuleSet} will be created as - * a result.

- * - *

The method does not change the {@code originalRuleSet} object.

- * - * @param ignoredVersions collection of ignored version to enrich the clone of the original rule set - * @param originalRuleSet original rule set - * @return new RuleSet object containing the (if passed) cloned version of the rule set, enriched with - * the given set of ignored versions - */ - @SuppressWarnings( "checkstyle:AvoidNestedBlocks" ) - private static RuleSet enrichRuleSet( Collection ignoredVersions, RuleSet originalRuleSet ) - { - RuleSet ruleSet = new RuleSet(); - if ( originalRuleSet != null ) - { - ruleSet.setComparisonMethod( originalRuleSet.getComparisonMethod() ); - if ( originalRuleSet.getRules() != null ) - { - ruleSet.setRules( new ArrayList<>( originalRuleSet.getRules() ) ); - } - if ( originalRuleSet.getIgnoreVersions() != null ) - { - ruleSet.setIgnoreVersions( new ArrayList<>( originalRuleSet.getIgnoreVersions() ) ); - } - } - - if ( ruleSet.getIgnoreVersions() == null ) - { - ruleSet.setIgnoreVersions( new ArrayList<>() ); - } - ruleSet.getIgnoreVersions().addAll( ignoredVersions.stream().map( v -> - { - IgnoreVersion ignoreVersion = new IgnoreVersion(); - ignoreVersion.setType( TYPE_REGEX ); - ignoreVersion.setVersion( v ); - return ignoreVersion; - } ).collect( Collectors.toList() ) ); - - return ruleSet; - } - - private static RuleSet getRulesFromClasspath( String uri, Log logger ) - throws MojoExecutionException - { - logger.debug( "Going to load rules from \"" + uri + "\"" ); - - String choppedUrl = uri.substring( CLASSPATH_PROTOCOL.length() + 3 ); - - URL url = DefaultVersionsHelper.class.getResource( choppedUrl ); - - if ( null == url ) - { - String message = "Resource \"" + uri + "\" not found in classpath."; - - throw new MojoExecutionException( message ); - } - - try - { - RuleSet rules = readRulesFromStream( url.openStream() ); - logger.debug( "Loaded rules from \"" + uri + "\" successfully" ); - return rules; - } - catch ( IOException e ) - { - throw new MojoExecutionException( "Could not load specified rules from " + uri, e ); - } - } - - private static RuleSet getRulesViaWagon( String rulesUri, Log logger, String serverId, String id, - WagonManager wagonManager, Settings settings ) - throws MojoExecutionException - { - RuleSet loadedRules; - - int split = rulesUri.lastIndexOf( '/' ); - String baseUri = rulesUri; - String fileUri = ""; - - if ( split != -1 ) - { - baseUri = rulesUri.substring( 0, split ) + '/'; - fileUri = split + 1 < rulesUri.length() ? rulesUri.substring( split + 1 ) : ""; - } - - try - { - Wagon wagon = WagonUtils.createWagon( serverId, baseUri, wagonManager, settings, logger ); - try - { - logger.debug( "Trying to load ruleset from file \"" + fileUri + "\" in " + baseUri ); - loadedRules = getRuleSet( wagon, fileUri ); - } - finally - { - logger.debug( "Rule set loaded" ); - - if ( wagon != null ) - { - try - { - wagon.disconnect(); - } - catch ( ConnectionException e ) - { - logger.warn( "Could not disconnect wagon!", e ); - } - } - } - } - catch ( TransferFailedException e ) - { - throw new MojoExecutionException( "Could not transfer rules from " + rulesUri, e ); - } - catch ( AuthorizationException e ) - { - throw new MojoExecutionException( "Authorization failure trying to load rules from " + rulesUri, e ); - } - catch ( ResourceDoesNotExistException | IOException e ) - { - throw new MojoExecutionException( "Could not load specified rules from " + rulesUri, e ); - } - catch ( AuthenticationException e ) - { - throw new MojoExecutionException( "Authentication failure trying to load rules from " + rulesUri, e ); - } - catch ( UnsupportedProtocolException e ) - { - throw new MojoExecutionException( "Unsupported protocol for " + rulesUri, e ); - } - catch ( ConnectionException e ) - { - throw new MojoExecutionException( "Could not establish connection to " + rulesUri, e ); - } - - return loadedRules; - } - static boolean isClasspathUri( String uri ) { return ( uri != null && uri.startsWith( CLASSPATH_PROTOCOL + ":" ) ); @@ -863,7 +682,6 @@ public static class Builder private RepositorySystem repositorySystem; private Collection ignoredVersions; private RuleSet ruleSet; - private WagonManager wagonManager; private String serverId; private String rulesUri; private Log log; @@ -875,6 +693,160 @@ public Builder() { } + private static RuleSet getRulesFromClasspath( String uri, Log logger ) + throws MojoExecutionException + { + logger.debug( "Going to load rules from \"" + uri + "\"" ); + String choppedUrl = uri.substring( CLASSPATH_PROTOCOL.length() + 3 ); + URL url = DefaultVersionsHelper.class.getResource( choppedUrl ); + if ( url == null ) + { + throw new MojoExecutionException( "Resource \"" + uri + "\" not found in classpath." ); + } + + try ( BufferedInputStream bis = new BufferedInputStream( url.openStream() ) ) + { + RuleSet result = new RuleXpp3Reader().read( bis ); + logger.debug( "Loaded rules from \"" + uri + "\" successfully" ); + return result; + } + catch ( IOException | XmlPullParserException e ) + { + throw new MojoExecutionException( "Could not load specified rules from " + uri, e ); + } + } + + /** + *

Creates the enriched version of the ruleSet given as parameter; the ruleSet will contain the + * set of ignored versions passed on top of its own (if defined).

+ * + *

If the {@code originalRuleSet} is {@code null}, a new {@linkplain RuleSet} will be created as + * a result.

+ * + *

The method does not change the {@code originalRuleSet} object.

+ * + * @param ignoredVersions collection of ignored version to enrich the clone of the original rule set + * @param originalRuleSet original rule set + * @return new RuleSet object containing the (if passed) cloned version of the rule set, enriched with + * the given set of ignored versions + */ + @SuppressWarnings( "checkstyle:AvoidNestedBlocks" ) + private static RuleSet enrichRuleSet( Collection ignoredVersions, RuleSet originalRuleSet ) + { + RuleSet ruleSet = new RuleSet(); + if ( originalRuleSet != null ) + { + ruleSet.setComparisonMethod( originalRuleSet.getComparisonMethod() ); + if ( originalRuleSet.getRules() != null ) + { + ruleSet.setRules( new ArrayList<>( originalRuleSet.getRules() ) ); + } + if ( originalRuleSet.getIgnoreVersions() != null ) + { + ruleSet.setIgnoreVersions( new ArrayList<>( originalRuleSet.getIgnoreVersions() ) ); + } + } + + if ( ruleSet.getIgnoreVersions() == null ) + { + ruleSet.setIgnoreVersions( new ArrayList<>() ); + } + ruleSet.getIgnoreVersions().addAll( ignoredVersions.stream().map( v -> + { + IgnoreVersion ignoreVersion = new IgnoreVersion(); + ignoreVersion.setType( TYPE_REGEX ); + ignoreVersion.setVersion( v ); + return ignoreVersion; + } ).collect( Collectors.toList() ) ); + + return ruleSet; + } + + private static class RulesUri + { + String baseUri; + URI fileUri; + + private RulesUri( String baseUri, URI fileUri ) + { + this.baseUri = baseUri; + this.fileUri = fileUri; + } + + static RulesUri build( String rulesUri ) throws URISyntaxException + { + int split = rulesUri.lastIndexOf( '/' ); + return split == -1 + ? new RulesUri( rulesUri, new URI( "" ) ) + : new RulesUri( rulesUri.substring( 0, split ) + '/', + new URI( split + 1 < rulesUri.length() + ? rulesUri.substring( split + 1 ) + : "" ) ); + } + } + + + private RuleSet getRulesUsingTransporter() + { + RulesUri uri; + try + { + uri = RulesUri.build( rulesUri ); + } + catch ( URISyntaxException e ) + { + log.warn( "Invalid rulesUri protocol: " + e.getMessage() ); + return null; + } + + RemoteRepository repository = new RemoteRepository.Builder( serverId, null, uri.baseUri ) + .build(); + return transporterFactoryMap + .values() + .stream() + // highest priority first -> reversing the order of arguments: + .sorted( ( f1, f2 ) -> Float.compare( f2.getPriority(), f1.getPriority() ) ) + .map( factory -> + { + try + { + return factory.newInstance( mavenSession.getRepositorySession(), repository ); + } + catch ( NoTransporterException e ) + { + log.warn( "No transporter possible for " + uri.baseUri + ": " + + e.getMessage() ); + return null; + } + } ) + .filter( Objects::nonNull ) + .map( transporter -> + { + try + { + GetTask getTask = new GetTask( uri.fileUri ); + transporter.get( getTask ); + return new RuleXpp3Reader().read( new StringReader( getTask.getDataString() ) ); + } + catch ( Exception e ) + { + log.warn( "Error while reading the rules string: " + e.getMessage() ); + return null; + } + } ) + .filter( Objects::nonNull ) + .findFirst() + .orElse( null ); + } + + public static Optional protocol( final String url ) + { + int pos = url.indexOf( ":" ); + return pos == -1 + ? empty() + : of( url.substring( 0, pos ).trim() ); + } + public Builder withRepositorySystem( RepositorySystem repositorySystem ) { this.repositorySystem = repositorySystem; @@ -893,12 +865,6 @@ public Builder withRuleSet( RuleSet ruleSet ) return this; } - public Builder withWagonManager( WagonManager wagonManager ) - { - this.wagonManager = wagonManager; - return this; - } - public Builder withServerId( String serverId ) { this.serverId = serverId; @@ -938,7 +904,7 @@ public Builder withAetherRepositorySystem( org.eclipse.aether.RepositorySystem a /** * Builds the constructed {@linkplain DefaultVersionsHelper} object * @return constructed {@linkplain DefaultVersionsHelper} - * @throws MojoExecutionException should the constructor with the Wagon go wrong + * @throws MojoExecutionException should the constructor with the RuleSet retrieval doesn't succeed */ public DefaultVersionsHelper build() throws MojoExecutionException { @@ -960,8 +926,7 @@ public DefaultVersionsHelper build() throws MojoExecutionException ? new RuleSet() : isClasspathUri( rulesUri ) ? getRulesFromClasspath( rulesUri, log ) - : getRulesViaWagon( rulesUri, log, serverId, serverId, wagonManager, - mavenSession.getSettings() ); + : getRulesUsingTransporter(); } if ( ignoredVersions != null && !ignoredVersions.isEmpty() ) { diff --git a/versions-common/src/main/java/org/codehaus/mojo/versions/utils/WagonUtils.java b/versions-common/src/main/java/org/codehaus/mojo/versions/utils/WagonUtils.java deleted file mode 100644 index 5e02e041b2..0000000000 --- a/versions-common/src/main/java/org/codehaus/mojo/versions/utils/WagonUtils.java +++ /dev/null @@ -1,112 +0,0 @@ -package org.codehaus.mojo.versions.utils; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.artifact.manager.WagonManager; -import org.apache.maven.plugin.logging.Log; -import org.apache.maven.repository.legacy.WagonConfigurationException; -import org.apache.maven.settings.Proxy; -import org.apache.maven.settings.Settings; -import org.apache.maven.wagon.ConnectionException; -import org.apache.maven.wagon.UnsupportedProtocolException; -import org.apache.maven.wagon.Wagon; -import org.apache.maven.wagon.authentication.AuthenticationException; -import org.apache.maven.wagon.observers.Debug; -import org.apache.maven.wagon.proxy.ProxyInfo; -import org.apache.maven.wagon.repository.Repository; - -/** - * Utility methods to help with using {@link Wagon}s. - * - * @author Stephen Connolly - * @since 1.0-alpha-3 - */ -public final class WagonUtils -{ - private WagonUtils() - { - throw new IllegalAccessError( "Utility classes should never be instantiated" ); - } - - /** - * Convenience method to convert the {@link org.apache.maven.settings.Proxy} object from a - * {@link org.apache.maven.settings.Settings} into a {@link org.apache.maven.wagon.proxy.ProxyInfo}. - * - * @param settings The settings to use. - * @return The proxy details from the settings or null if the settings do not define a proxy. - */ - public static ProxyInfo getProxyInfo( Settings settings ) - { - ProxyInfo proxyInfo = null; - if ( settings != null && settings.getActiveProxy() != null ) - { - proxyInfo = new ProxyInfo(); - final Proxy proxy = settings.getActiveProxy(); - proxyInfo.setHost( proxy.getHost() ); - proxyInfo.setType( proxy.getProtocol() ); - proxyInfo.setPort( proxy.getPort() ); - proxyInfo.setNonProxyHosts( proxy.getNonProxyHosts() ); - proxyInfo.setUserName( proxy.getUsername() ); - proxyInfo.setPassword( proxy.getPassword() ); - } - return proxyInfo; - } - - /** - * Convenience method to create a wagon. - * - * @param serverId The serverId to use if the wagonManager needs help. - * @param url The url to create a wagon for. - * @param wagonManager The wgaon manager to use. - * @param settings The settings to use. - * @param logger The logger to use. - * @return The wagon to connect to the url. - * @throws org.apache.maven.wagon.UnsupportedProtocolException if the protocol is not supported. - * @throws org.apache.maven.repository.legacy.WagonConfigurationException if the wagon cannot be configured. - * @throws org.apache.maven.wagon.ConnectionException If the connection cannot be established. - * @throws org.apache.maven.wagon.authentication.AuthenticationException If the connection cannot be authenticated. - */ - public static Wagon createWagon( String serverId, String url, WagonManager wagonManager, Settings settings, - Log logger ) - throws UnsupportedProtocolException, WagonConfigurationException, - ConnectionException, AuthenticationException - { - Repository repository = new Repository( serverId, url ); - Wagon wagon = wagonManager.getWagon( repository ); - - if ( logger.isDebugEnabled() ) - { - Debug debug = new Debug(); - wagon.addSessionListener( debug ); - wagon.addTransferListener( debug ); - } - - ProxyInfo proxyInfo = getProxyInfo( settings ); - if ( proxyInfo != null ) - { - wagon.connect( repository, wagonManager.getAuthenticationInfo( repository.getId() ), proxyInfo ); - } - else - { - wagon.connect( repository, wagonManager.getAuthenticationInfo( repository.getId() ) ); - } - return wagon; - } -} diff --git a/versions-enforcer/src/site/markdown/max-dependency-updates.md.vm b/versions-enforcer/src/site/markdown/max-dependency-updates.md.vm index 26100debeb..1adb7e6cc8 100644 --- a/versions-enforcer/src/site/markdown/max-dependency-updates.md.vm +++ b/versions-enforcer/src/site/markdown/max-dependency-updates.md.vm @@ -46,7 +46,7 @@ The following parameters are supported by this rule: | `pluginDependencyExcludes` | (empty) | List of plugin dependency exclusion patterns. Only dependencies matching none of the patterns will be considered.
The wildcard (`*`) can be used as the only, first, last or both characters in each token. The version token does support version ranges. | | `pluginManagementDependencyIncludes` | `*` | List of plugin management dependency inclusion patterns. Only dependencies matching all the patterns will be considered.
The wildcard (`*`) can be used as the only, first, last or both characters in each token. The version token does support version ranges. | | `pluginManagementDependencyExcludes` | (empty) | List of plugin management dependency exclusion patterns. Only dependencies matching none of the patterns will be considered.
The wildcard (`*`) can be used as the only, first, last or both characters in each token. The version token does support version ranges. | -| `serverId` | `serverId` | *settings.xml*'s server id for the URL. This is used when wagon needs extra authentication information. | +| `serverId` | `serverId` | *settings.xml*'s server id for the URL. This is used when transporter needs extra authentication information. | | `rulesUri` | | URI of a ruleSet file containing the rules that control how to compare version numbers. The URI could be either a Wagon URI or a classpath URI (e.g. *classpath:\/\/\/package/sub/package/rules.xml*). | | `ruleSet` | | Allows specifying the `RuleSet` object describing rules on artifact versions to ignore when considering updates.
See: [Using the ruleSet element in the POM](../version-rules.html#Using_the_ruleSet_element_in_the_POM) | diff --git a/versions-maven-plugin/src/it/it-transporter-001/invoker.properties b/versions-maven-plugin/src/it/it-transporter-001/invoker.properties new file mode 100644 index 0000000000..1c628a5b17 --- /dev/null +++ b/versions-maven-plugin/src/it/it-transporter-001/invoker.properties @@ -0,0 +1,2 @@ +invoker.goals = ${project.groupId}:${project.artifactId}:${project.version}:use-latest-releases +invoker.mavenOpts = -Dmaven.version.rules=file:rules.xml diff --git a/versions-maven-plugin/src/it/it-transporter-001/pom.xml b/versions-maven-plugin/src/it/it-transporter-001/pom.xml new file mode 100644 index 0000000000..8263900678 --- /dev/null +++ b/versions-maven-plugin/src/it/it-transporter-001/pom.xml @@ -0,0 +1,18 @@ + + 4.0.0 + + localhost + it-transporter-001 + 1.0 + pom + + + + localhost + dummy-api + 1.0 + + + + diff --git a/versions-maven-plugin/src/it/it-transporter-001/rules.xml b/versions-maven-plugin/src/it/it-transporter-001/rules.xml new file mode 100644 index 0000000000..99d7cb705c --- /dev/null +++ b/versions-maven-plugin/src/it/it-transporter-001/rules.xml @@ -0,0 +1,12 @@ + + + + + 3.* + + + + diff --git a/versions-maven-plugin/src/it/it-transporter-001/verify.groovy b/versions-maven-plugin/src/it/it-transporter-001/verify.groovy new file mode 100644 index 0000000000..921f69ef90 --- /dev/null +++ b/versions-maven-plugin/src/it/it-transporter-001/verify.groovy @@ -0,0 +1,3 @@ +def project = new XmlSlurper().parse( new File( basedir, 'pom.xml' ) ) + +assert !( project.dependencies.dependency.find { node -> node.artifactId == 'dummy-api' }.version =~ /3.*/ ) diff --git a/versions-maven-plugin/src/it/it-transporter-002/invoker.properties b/versions-maven-plugin/src/it/it-transporter-002/invoker.properties new file mode 100644 index 0000000000..1c628a5b17 --- /dev/null +++ b/versions-maven-plugin/src/it/it-transporter-002/invoker.properties @@ -0,0 +1,2 @@ +invoker.goals = ${project.groupId}:${project.artifactId}:${project.version}:use-latest-releases +invoker.mavenOpts = -Dmaven.version.rules=file:rules.xml diff --git a/versions-maven-plugin/src/it/it-transporter-002/pom.xml b/versions-maven-plugin/src/it/it-transporter-002/pom.xml new file mode 100644 index 0000000000..dfaa164ae7 --- /dev/null +++ b/versions-maven-plugin/src/it/it-transporter-002/pom.xml @@ -0,0 +1,38 @@ + + 4.0.0 + + localhost + it-transporter-001 + 1.0 + pom + + + + localhost + dummy-api + 1.0 + + + + + + + + @project.groupId@ + @project.artifactId@ + @project.version@ + + + org.apache.maven.resolver + maven-resolver-transport-file + 1.8.2 + runtime + + + + + + + + diff --git a/versions-maven-plugin/src/it/it-transporter-002/rules.xml b/versions-maven-plugin/src/it/it-transporter-002/rules.xml new file mode 100644 index 0000000000..99d7cb705c --- /dev/null +++ b/versions-maven-plugin/src/it/it-transporter-002/rules.xml @@ -0,0 +1,12 @@ + + + + + 3.* + + + + diff --git a/versions-maven-plugin/src/it/it-transporter-002/verify.groovy b/versions-maven-plugin/src/it/it-transporter-002/verify.groovy new file mode 100644 index 0000000000..921f69ef90 --- /dev/null +++ b/versions-maven-plugin/src/it/it-transporter-002/verify.groovy @@ -0,0 +1,3 @@ +def project = new XmlSlurper().parse( new File( basedir, 'pom.xml' ) ) + +assert !( project.dependencies.dependency.find { node -> node.artifactId == 'dummy-api' }.version =~ /3.*/ ) diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDependencyUpdaterMojo.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDependencyUpdaterMojo.java index 8992c28daf..7f0d746bfd 100644 --- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDependencyUpdaterMojo.java +++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDependencyUpdaterMojo.java @@ -31,7 +31,6 @@ import org.apache.commons.lang3.StringUtils; import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.manager.WagonManager; import org.apache.maven.artifact.resolver.filter.ArtifactFilter; import org.apache.maven.model.Dependency; import org.apache.maven.model.Parent; @@ -158,10 +157,9 @@ public abstract class AbstractVersionsDependencyUpdaterMojo @Inject protected AbstractVersionsDependencyUpdaterMojo( RepositorySystem repositorySystem, org.eclipse.aether.RepositorySystem aetherRepositorySystem, - WagonManager wagonManager, Map changeRecorders ) { - super( repositorySystem, aetherRepositorySystem, wagonManager, changeRecorders ); + super( repositorySystem, aetherRepositorySystem, changeRecorders ); } /** diff --git a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsReport.java b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsReport.java index ab236f9059..51cbd54778 100644 --- a/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsReport.java +++ b/versions-maven-plugin/src/main/java/org/codehaus/mojo/versions/AbstractVersionsReport.java @@ -20,13 +20,11 @@ */ import java.io.File; -import java.util.List; import java.util.Locale; +import java.util.Map; import java.util.Set; import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.manager.WagonManager; -import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.versioning.ArtifactVersion; import org.apache.maven.artifact.versioning.VersionRange; import org.apache.maven.doxia.sink.Sink; @@ -80,24 +78,7 @@ public abstract class AbstractVersionsReport protected org.eclipse.aether.RepositorySystem aetherRepositorySystem; /** - * @since 1.0-alpha-3 - */ - @Parameter( defaultValue = "${project.remoteArtifactRepositories}", readonly = true ) - protected List remoteArtifactRepositories; - - /** - * @since 1.0-alpha-3 - */ - @Parameter( defaultValue = "${project.pluginArtifactRepositories}", readonly = true ) - protected List remotePluginRepositories; - - /** - * @since 1.0-alpha-3 - */ - private final WagonManager wagonManager; - - /** - * settings.xml's server id for the URL. This is used when wagon needs extra authentication information. + * settings.xml's server id for the URL. This is used when Transporter needs extra authentication information. * * @since 1.0-alpha-3 */ @@ -186,13 +167,11 @@ public abstract class AbstractVersionsReport protected AbstractVersionsReport( I18N i18n, RepositorySystem repositorySystem, org.eclipse.aether.RepositorySystem aetherRepositorySystem, - WagonManager wagonManager, ReportRendererFactory rendererFactory ) { this.i18n = i18n; this.repositorySystem = repositorySystem; this.aetherRepositorySystem = aetherRepositorySystem; - this.wagonManager = wagonManager; this.rendererFactory = rendererFactory; } @@ -206,7 +185,6 @@ public VersionsHelper getHelper() helper = new DefaultVersionsHelper.Builder() .withRepositorySystem( repositorySystem ) .withAetherRepositorySystem( aetherRepositorySystem ) - .withWagonManager( wagonManager ) .withServerId( serverId ) .withRulesUri( rulesUri ) .withRuleSet( ruleSet )