diff --git a/apache-maven/pom.xml b/apache-maven/pom.xml index 07add7ef1d3e..bf5f377a0971 100644 --- a/apache-maven/pom.xml +++ b/apache-maven/pom.xml @@ -63,21 +63,10 @@ under the License. org.apache.maven.wagon wagon-http - shaded - - - org.apache.httpcomponents - httpclient - - - org.apache.httpcomponents - httpcore - - - org.apache.maven.wagon - wagon-http-shared - - + + + org.apache.maven.wagon + wagon-file org.slf4j @@ -86,12 +75,16 @@ under the License. runtime - org.apache.maven.wagon - wagon-file + org.apache.maven.resolver + maven-resolver-connector-basic org.apache.maven.resolver - maven-resolver-connector-basic + maven-resolver-transport-file + + + org.apache.maven.resolver + maven-resolver-transport-http org.apache.maven.resolver diff --git a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java index 60c6cf17a050..5616743d1327 100644 --- a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java +++ b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java @@ -63,6 +63,22 @@ @Named public class DefaultRepositorySystemSessionFactory { + private static final String MAVEN_TRANSPORT_KEY = "maven.transport"; + + private static final String MAVEN_TRANSPORT_WAGON = "wagon"; + + private static final String MAVEN_TRANSPORT_RESOLVER = "resolver"; + + private static final String MAVEN_TRANSPORT_AUTO = "auto"; + + private static final String WAGON_TRANSPORTER_KEY_PRIORITY_KEY = "aether.priority.WagonTransporterFactory"; + + private static final String RESOLVER_HTTP_TRANSPORTER_PRIORITY_KEY = "aether.priority.HttpTransporterFactory"; + + private static final String RESOLVER_FILE_TRANSPORTER_PRIORITY_KEY = "aether.priority.FileTransporterFactory"; + + private static final String RESOLVER_MAX_PRIORITY = String.valueOf( Float.MAX_VALUE ); + @Inject private Logger logger; @@ -94,6 +110,7 @@ public class DefaultRepositorySystemSessionFactory @Inject private RuntimeInformation runtimeInformation; + @SuppressWarnings( "checkstyle:methodlength" ) public DefaultRepositorySystemSession newRepositorySession( MavenExecutionRequest request ) { DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession(); @@ -224,6 +241,25 @@ else if ( request.isUpdateSnapshots() ) } session.setAuthenticationSelector( authSelector ); + String transport = request.getUserProperties().getProperty( MAVEN_TRANSPORT_KEY, MAVEN_TRANSPORT_WAGON ); + if ( MAVEN_TRANSPORT_RESOLVER.equals( transport ) ) + { + // Make sure (whatever extra priority is set) that resolver native is selected + configProps.put( RESOLVER_FILE_TRANSPORTER_PRIORITY_KEY, RESOLVER_MAX_PRIORITY ); + configProps.put( RESOLVER_HTTP_TRANSPORTER_PRIORITY_KEY, RESOLVER_MAX_PRIORITY ); + } + else if ( MAVEN_TRANSPORT_WAGON.equals( transport ) ) + { + // Make sure (whatever extra priority is set) that wagon is selected + configProps.put( WAGON_TRANSPORTER_KEY_PRIORITY_KEY, RESOLVER_MAX_PRIORITY ); + } + else if ( !MAVEN_TRANSPORT_AUTO.equals( transport ) ) + { + throw new IllegalArgumentException( "Unknown maven.transport=" + transport + + ". Supported ones are: " + MAVEN_TRANSPORT_WAGON + ", " + + MAVEN_TRANSPORT_RESOLVER + " and " + MAVEN_TRANSPORT_AUTO ); + } + session.setTransferListener( request.getTransferListener() ); session.setRepositoryListener( eventSpyDispatcher.chainListener( new LoggingRepositoryListener( logger ) ) ); diff --git a/maven-resolver-provider/pom.xml b/maven-resolver-provider/pom.xml index 2b9422ca3e4e..d273a738ff8e 100644 --- a/maven-resolver-provider/pom.xml +++ b/maven-resolver-provider/pom.xml @@ -104,12 +104,12 @@ under the License. org.apache.maven.resolver - maven-resolver-transport-wagon + maven-resolver-transport-file test - org.apache.maven.wagon - wagon-file + org.apache.maven.resolver + maven-resolver-transport-http test diff --git a/pom.xml b/pom.xml index e1c0acfef8e3..85ee11ed69ab 100644 --- a/pom.xml +++ b/pom.xml @@ -66,7 +66,7 @@ under the License. 2.0 2.0.0 1.3 - 1.7.2 + 1.7.3 1.7.32 2.2.1 1.7.4 @@ -379,13 +379,6 @@ under the License. org.apache.maven.wagon wagon-http ${wagonVersion} - shaded - - - commons-logging - commons-logging - - @@ -413,6 +406,16 @@ under the License. maven-resolver-connector-basic ${resolverVersion} + + org.apache.maven.resolver + maven-resolver-transport-file + ${resolverVersion} + + + org.apache.maven.resolver + maven-resolver-transport-http + ${resolverVersion} + org.apache.maven.resolver maven-resolver-transport-wagon