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