You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2022/05/11 19:53:54 UTC

[maven-integration-testing] branch mng-7470-resolver-transport updated: Align test to other tests with Jetty

This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch mng-7470-resolver-transport
in repository https://gitbox.apache.org/repos/asf/maven-integration-testing.git


The following commit(s) were added to refs/heads/mng-7470-resolver-transport by this push:
     new 210fc3792 Align test to other tests with Jetty
210fc3792 is described below

commit 210fc379278535574110960f1a5058769367fc9c
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Wed May 11 21:45:02 2022 +0200

    Align test to other tests with Jetty
---
 .../test/java/org/apache/maven/it/HttpServer.java  | 11 +++
 .../it/MavenITmng7470ResolverTransportTest.java    | 78 ++++++++++++++--------
 .../{ => project}/settings-template.xml            |  0
 3 files changed, 62 insertions(+), 27 deletions(-)

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 class HttpServer
         // 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/MavenITmng7470ResolverTransportTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7470ResolverTransportTest.java
index 55782a4f9..68b82b53d 100644
--- 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
@@ -2,6 +2,7 @@ package org.apache.maven.it;
 
 import java.io.File;
 import java.util.HashMap;
+import java.util.Map;
 
 import org.apache.maven.it.util.ResourceExtractor;
 
@@ -12,51 +13,74 @@ import org.apache.maven.it.util.ResourceExtractor;
 public class MavenITmng7470ResolverTransportTest
         extends AbstractMavenIntegrationTestCase
 {
+    private File testDir;
+
+    private File projectDir;
+
+    private HttpServer server;
+
+    private int port;
+
     public MavenITmng7470ResolverTransportTest()
     {
         super( "[3.9.0,)" );
     }
 
-    private void performTest( final String transport, final String logSnippet ) throws Exception
+    @Override
+    protected void setUp()
+        throws Exception
     {
-        File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-7470-resolver-transport" );
+        testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-7470-resolver-transport" );
+        projectDir = new File( testDir, "project" );
 
-        HttpServer server = HttpServer.builder()
+        server = HttpServer.builder()
                 .port( 0 )
                 .source( new File( testDir, "repo" ) )
                 .build();
         server.start();
-        try
+        if ( server.isFailed() )
         {
-            Verifier verifier = newVerifier( testDir.getAbsolutePath() );
-            HashMap<String, String> properties = new HashMap<>();
-            properties.put( "@port@", Integer.toString( server.port() ) );
-            verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", properties );
-
-            verifier = newVerifier( new File( testDir, "project" ).getAbsolutePath() );
-            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( testDir, "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();
+            fail( "Couldn't bind the server socket to a free port!" );
         }
-        finally
+        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<String, String> 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
     {
diff --git a/core-it-suite/src/test/resources/mng-7470-resolver-transport/settings-template.xml b/core-it-suite/src/test/resources/mng-7470-resolver-transport/project/settings-template.xml
similarity index 100%
rename from core-it-suite/src/test/resources/mng-7470-resolver-transport/settings-template.xml
rename to core-it-suite/src/test/resources/mng-7470-resolver-transport/project/settings-template.xml