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