diff --git a/core-it-suite/src/test/java/org/apache/maven/it/HttpServer.java b/core-it-suite/src/test/java/org/apache/maven/it/HttpServer.java
index 8d87dd54a..ba25cb4f8 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/HttpServer.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/HttpServer.java
@@ -60,12 +60,23 @@ public void start()
// server.join();
}
+ public boolean isFailed()
+ {
+ return server.isFailed();
+ }
+
public void stop()
throws Exception
{
server.stop();
}
+ public void join()
+ throws Exception
+ {
+ server.join();
+ }
+
public int port()
{
return ( (NetworkConnector) server.getConnectors()[0] ).getLocalPort();
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java b/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java
index 69b9c906d..2e6462554 100644
--- a/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java
+++ b/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java
@@ -106,6 +106,7 @@ public static Test suite()
// Tests that don't run stable and need to be fixed
// -------------------------------------------------------------------------------------------------------------
// suite.addTestSuite( MavenIT0108SnapshotUpdateTest.class ); -- MNG-3137
+ suite.addTestSuite( MavenITmng7470ResolverTransportTest.class );
suite.addTestSuite( MavenITmng7464ReadOnlyMojoParametersWarningTest.class );
suite.addTestSuite( MavenITmng7404IgnorePrefixlessExpressionsTest.class );
suite.addTestSuite( MavenITmng5222MojoDeprecatedTest.class );
diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java
new file mode 100644
index 000000000..68b82b53d
--- /dev/null
+++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java
@@ -0,0 +1,95 @@
+package org.apache.maven.it;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.maven.it.util.ResourceExtractor;
+
+/**
+ * This is a test set for MNG-7470:
+ * check that Maven two bundled transports works as expected.
+ */
+public class MavenITmng7470ResolverTransportTest
+ extends AbstractMavenIntegrationTestCase
+{
+ private File testDir;
+
+ private File projectDir;
+
+ private HttpServer server;
+
+ private int port;
+
+ public MavenITmng7470ResolverTransportTest()
+ {
+ super( "[3.9.0,)" );
+ }
+
+ @Override
+ protected void setUp()
+ throws Exception
+ {
+ testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-7470-resolver-transport" );
+ projectDir = new File( testDir, "project" );
+
+ server = HttpServer.builder()
+ .port( 0 )
+ .source( new File( testDir, "repo" ) )
+ .build();
+ server.start();
+ if ( server.isFailed() )
+ {
+ fail( "Couldn't bind the server socket to a free port!" );
+ }
+ port = server.port();
+ System.out.println( "Bound server socket to the port " + port );
+ }
+
+ @Override
+ protected void tearDown()
+ throws Exception
+ {
+ if ( server != null )
+ {
+ server.stop();
+ server.join();
+ }
+ }
+
+ private void performTest( final String transport, final String logSnippet ) throws Exception
+ {
+ Verifier verifier = newVerifier( projectDir.getAbsolutePath() );
+ Map properties = new HashMap<>();
+ properties.put( "@port@", Integer.toString( port ) );
+ verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", properties );
+ verifier.setLogFileName( transport + "-transport.log" );
+ verifier.deleteDirectory( "target" );
+ verifier.deleteArtifacts( "org.apache.maven.its.resolver-transport" );
+ verifier.addCliOption( "-X" );
+ verifier.addCliOption( "-s" );
+ verifier.addCliOption( new File( projectDir, "settings.xml" ).getAbsolutePath() );
+ verifier.addCliOption( "-Pmaven-core-it-repo" );
+ verifier.addCliOption( "-Dmaven.resolver.transport=" + transport );
+ // Maven will fail if project dependencies cannot be resolved.
+ // As dependency exists ONLY in HTTP repo, it MUST be reached using selected transport and
+ // successfully resolved from it.
+ verifier.executeGoal( "verify" );
+ verifier.verifyErrorFreeLog();
+ // verify maven console output contains "[DEBUG] Using transporter XXXTransporter"
+ verifier.verifyTextInLog( logSnippet );
+ verifier.resetStreams();
+ }
+
+ public void testResolverTransportWagon()
+ throws Exception
+ {
+ performTest( "wagon", "[DEBUG] Using transporter WagonTransporter" );
+ }
+
+ public void testResolverTransportNative()
+ throws Exception
+ {
+ performTest( "native", "[DEBUG] Using transporter HttpTransporter" );
+ }
+}
diff --git a/core-it-suite/src/test/resources/bootstrap/group-15/pom.xml b/core-it-suite/src/test/resources/bootstrap/group-15/pom.xml
new file mode 100644
index 000000000..4b85d1395
--- /dev/null
+++ b/core-it-suite/src/test/resources/bootstrap/group-15/pom.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+ 4.0.0
+
+
+ org.apache.maven.its.bootstrap
+ maven-it-boostrap
+ 1.0
+
+
+ org.apache.maven.its.bootstrap
+ group-15
+ 1.0
+ jar
+
+ Maven Integration Test :: Boostrap :: Group-15 :: Resolver 1.7.3
+
+
+ 1.7.3
+
+
+
+
+ org.apache.maven.resolver
+ maven-resolver-api
+ ${resolverVersion}
+
+
+ org.apache.maven.resolver
+ maven-resolver-spi
+ ${resolverVersion}
+
+
+ org.apache.maven.resolver
+ maven-resolver-util
+ ${resolverVersion}
+
+
+ org.apache.maven.resolver
+ maven-resolver-impl
+ ${resolverVersion}
+
+
+ org.apache.maven.resolver
+ maven-resolver-connector-basic
+ ${resolverVersion}
+
+
+
diff --git a/core-it-suite/src/test/resources/bootstrap/pom.xml b/core-it-suite/src/test/resources/bootstrap/pom.xml
index d32b27440..c4f82317e 100644
--- a/core-it-suite/src/test/resources/bootstrap/pom.xml
+++ b/core-it-suite/src/test/resources/bootstrap/pom.xml
@@ -51,6 +51,7 @@ under the License.
group-12
group-13
group-14
+ group-15
diff --git a/core-it-suite/src/test/resources/mng-7470-resolver-transport/project/pom.xml b/core-it-suite/src/test/resources/mng-7470-resolver-transport/project/pom.xml
new file mode 100644
index 000000000..9759c899b
--- /dev/null
+++ b/core-it-suite/src/test/resources/mng-7470-resolver-transport/project/pom.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+ 4.0.0
+
+ org.apache.maven.its.resolver-transport
+ project
+ 0.1
+ jar
+
+ Maven Integration Test :: resolver-transport
+
+ Verify that Maven transport works.
+
+
+
+
+
+ org.apache.maven.resolver
+ resolver-demo-maven-plugin
+ 1.7.3
+
+
+ resolve
+ validate
+
+ resolve-artifact
+
+
+ org.apache.maven.its.resolver-transport:dependency:1.0
+
+
+
+
+
+
+
diff --git a/core-it-suite/src/test/resources/mng-7470-resolver-transport/project/settings-template.xml b/core-it-suite/src/test/resources/mng-7470-resolver-transport/project/settings-template.xml
new file mode 100644
index 000000000..ad1eed436
--- /dev/null
+++ b/core-it-suite/src/test/resources/mng-7470-resolver-transport/project/settings-template.xml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+ maven-core-it-repo
+
+
+ maven-core-it
+ http://localhost:@port@
+
+ true
+
+
+ true
+
+
+
+
+
+ maven-core-it
+ http://localhost:@port@
+
+ true
+
+
+ true
+
+
+
+
+
+
diff --git a/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/.gitattributes b/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/.gitattributes
new file mode 100644
index 000000000..e3bce59d1
--- /dev/null
+++ b/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/.gitattributes
@@ -0,0 +1,3 @@
+*.pom text eol=lf
+maven-metadata.xml text eol=lf
+
diff --git a/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/its/resolver-transport/dependency/1.0/dependency-1.0.jar b/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/its/resolver-transport/dependency/1.0/dependency-1.0.jar
new file mode 100644
index 000000000..c7c00e8cc
Binary files /dev/null and b/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/its/resolver-transport/dependency/1.0/dependency-1.0.jar differ
diff --git a/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/its/resolver-transport/dependency/1.0/dependency-1.0.jar.sha1 b/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/its/resolver-transport/dependency/1.0/dependency-1.0.jar.sha1
new file mode 100644
index 000000000..ad5066ce3
--- /dev/null
+++ b/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/its/resolver-transport/dependency/1.0/dependency-1.0.jar.sha1
@@ -0,0 +1 @@
+b530516717ab5b3052fd3cdca860fc28574bd718
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/its/resolver-transport/dependency/1.0/dependency-1.0.pom b/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/its/resolver-transport/dependency/1.0/dependency-1.0.pom
new file mode 100644
index 000000000..2a2c030d4
--- /dev/null
+++ b/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/its/resolver-transport/dependency/1.0/dependency-1.0.pom
@@ -0,0 +1,34 @@
+
+
+
+
+
+ 4.0.0
+
+ org.apache.maven.its.resolver-transport
+ dependency
+ 1.0
+ jar
+
+ Maven Integration Test :: resolver-transport :: dependency
+
+ Dependency pulled with transport.
+
+
diff --git a/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/its/resolver-transport/dependency/1.0/dependency-1.0.pom.sha1 b/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/its/resolver-transport/dependency/1.0/dependency-1.0.pom.sha1
new file mode 100644
index 000000000..39318fa3a
--- /dev/null
+++ b/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/its/resolver-transport/dependency/1.0/dependency-1.0.pom.sha1
@@ -0,0 +1 @@
+b58c041fe630e9248109e305c5d2d0c5fea978a3
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/resolver/resolver-demo-maven-plugin/1.7.3/resolver-demo-maven-plugin-1.7.3.jar b/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/resolver/resolver-demo-maven-plugin/1.7.3/resolver-demo-maven-plugin-1.7.3.jar
new file mode 100644
index 000000000..4da7b2473
Binary files /dev/null and b/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/resolver/resolver-demo-maven-plugin/1.7.3/resolver-demo-maven-plugin-1.7.3.jar differ
diff --git a/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/resolver/resolver-demo-maven-plugin/1.7.3/resolver-demo-maven-plugin-1.7.3.jar.sha1 b/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/resolver/resolver-demo-maven-plugin/1.7.3/resolver-demo-maven-plugin-1.7.3.jar.sha1
new file mode 100644
index 000000000..644d46369
--- /dev/null
+++ b/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/resolver/resolver-demo-maven-plugin/1.7.3/resolver-demo-maven-plugin-1.7.3.jar.sha1
@@ -0,0 +1 @@
+ed81d315b44e79187fe8ad71b7b2665ac9b95f08
\ No newline at end of file
diff --git a/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/resolver/resolver-demo-maven-plugin/1.7.3/resolver-demo-maven-plugin-1.7.3.pom b/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/resolver/resolver-demo-maven-plugin/1.7.3/resolver-demo-maven-plugin-1.7.3.pom
new file mode 100644
index 000000000..3c2d2ff16
--- /dev/null
+++ b/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/resolver/resolver-demo-maven-plugin/1.7.3/resolver-demo-maven-plugin-1.7.3.pom
@@ -0,0 +1,102 @@
+
+
+
+
+
+ 4.0.0
+
+ org.apache.maven.resolver
+ resolver-demo-maven-plugin
+ 1.7.3
+ maven-plugin
+
+ Maven Artifact Resolver Demo Maven Plugin 1.7.3
+
+
+ ${mavenVersion}
+
+
+
+ 3.8.5
+ 1.7.3
+
+
+
+
+ org.apache.maven
+ maven-plugin-api
+ ${mavenVersion}
+ provided
+
+
+ org.apache.maven
+ maven-model
+
+
+ org.apache.maven
+ maven-artifact
+
+
+ org.eclipse.sisu
+ org.eclipse.sisu.plexus
+
+
+
+
+ org.apache.maven.resolver
+ maven-resolver-api
+ ${resolverVersion}
+ provided
+
+
+
+
+ org.apache.maven.resolver
+ maven-resolver-spi
+ ${resolverVersion}
+
+
+ org.apache.maven.resolver
+ maven-resolver-util
+ ${resolverVersion}
+
+
+ org.apache.maven.resolver
+ maven-resolver-impl
+ ${resolverVersion}
+
+
+ org.apache.maven.resolver
+ maven-resolver-connector-basic
+ ${resolverVersion}
+
+
+ org.slf4j
+ slf4j-api
+ 1.7.5
+ provided
+
+
+
diff --git a/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/resolver/resolver-demo-maven-plugin/1.7.3/resolver-demo-maven-plugin-1.7.3.pom.sha1 b/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/resolver/resolver-demo-maven-plugin/1.7.3/resolver-demo-maven-plugin-1.7.3.pom.sha1
new file mode 100644
index 000000000..54520c0e6
--- /dev/null
+++ b/core-it-suite/src/test/resources/mng-7470-resolver-transport/repo/org/apache/maven/resolver/resolver-demo-maven-plugin/1.7.3/resolver-demo-maven-plugin-1.7.3.pom.sha1
@@ -0,0 +1 @@
+2a2ae11ad8e4c90eb3d48f3621b5d20eafea3ae3
\ No newline at end of file