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

rfscholte pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-wagon.git


The following commit(s) were added to refs/heads/master by this push:
     new d300b11  Ask ftp/http server for its assigned port instead of trying 
to assign an available port
d300b11 is described below

commit d300b118476aaec5a755eae68ea3bcff75fd247e
Author: rfscholte <rfscho...@apache.org>
AuthorDate: Thu Aug 22 14:44:26 2019 +0200

    Ask ftp/http server for its assigned port instead of trying to assign an 
available port
---
 .../apache/maven/wagon/StreamingWagonTestCase.java | 17 +++---
 .../java/org/apache/maven/wagon/WagonTestCase.java | 66 ++++++++--------------
 .../apache/maven/wagon/http/HttpWagonTestCase.java |  2 -
 .../maven/wagon/providers/ftp/FtpWagonTest.java    | 34 ++++-------
 .../wagon/providers/http/HttpWagonErrorTest.java   |  8 +--
 .../http/HttpWagonHttpServerTestCase.java          | 28 +++------
 .../wagon/providers/http/HttpWagonTimeoutTest.java |  8 +--
 .../wagon/providers/webdav/WebDavWagonTest.java    | 20 +++----
 8 files changed, 69 insertions(+), 114 deletions(-)

diff --git 
a/wagon-provider-test/src/main/java/org/apache/maven/wagon/StreamingWagonTestCase.java
 
b/wagon-provider-test/src/main/java/org/apache/maven/wagon/StreamingWagonTestCase.java
index c2a4782..d06da32 100644
--- 
a/wagon-provider-test/src/main/java/org/apache/maven/wagon/StreamingWagonTestCase.java
+++ 
b/wagon-provider-test/src/main/java/org/apache/maven/wagon/StreamingWagonTestCase.java
@@ -42,10 +42,10 @@ public abstract class StreamingWagonTestCase
     {
         if ( supportsGetIfNewer() )
         {
-            setupRepositories();
-
             setupWagonTestingFixtures();
 
+            setupRepositories();
+
             streamRoundTripTesting();
 
             tearDownWagonTestingFixtures();
@@ -55,10 +55,10 @@ public abstract class StreamingWagonTestCase
     public void testFailedGetToStream()
         throws Exception
     {
-        setupRepositories();
-
         setupWagonTestingFixtures();
 
+        setupRepositories();
+
         message( "Getting test artifact from test repository " + 
testRepository );
 
         StreamingWagon wagon = (StreamingWagon) getWagon();
@@ -103,8 +103,9 @@ public abstract class StreamingWagonTestCase
     {
         if ( supportsGetIfNewer() )
         {
-            setupRepositories();
             setupWagonTestingFixtures();
+            setupRepositories();
+
             int expectedSize = putFile();
             // CHECKSTYLE_OFF: MagicNumber
             getIfNewerToStream( getExpectedLastModifiedOnGet( testRepository, 
new Resource( resource ) ) + 30000, false,
@@ -118,8 +119,8 @@ public abstract class StreamingWagonTestCase
     {
         if ( supportsGetIfNewer() )
         {
-            setupRepositories();
             setupWagonTestingFixtures();
+            setupRepositories();
             int expectedSize = putFile();
             getIfNewerToStream( new SimpleDateFormat( "yyyy-MM-dd" ).parse( 
"2006-01-01" ).getTime(), true,
                                 expectedSize );
@@ -131,8 +132,8 @@ public abstract class StreamingWagonTestCase
     {
         if ( supportsGetIfNewer() )
         {
-            setupRepositories();
             setupWagonTestingFixtures();
+            setupRepositories();
             int expectedSize = putFile();
             getIfNewerToStream( getExpectedLastModifiedOnGet( testRepository, 
new Resource( resource ) ), false,
                                 expectedSize );
@@ -172,8 +173,8 @@ public abstract class StreamingWagonTestCase
     {
         if ( supportsGetIfNewer() )
         {
-            setupRepositories();
             setupWagonTestingFixtures();
+            setupRepositories();
             message( "Getting test artifact from test repository " + 
testRepository );
             StreamingWagon wagon = (StreamingWagon) getWagon();
             wagon.addTransferListener( checksumObserver );
diff --git 
a/wagon-provider-test/src/main/java/org/apache/maven/wagon/WagonTestCase.java 
b/wagon-provider-test/src/main/java/org/apache/maven/wagon/WagonTestCase.java
index cdcdc67..a1b9a45 100644
--- 
a/wagon-provider-test/src/main/java/org/apache/maven/wagon/WagonTestCase.java
+++ 
b/wagon-provider-test/src/main/java/org/apache/maven/wagon/WagonTestCase.java
@@ -42,7 +42,6 @@ import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
-import java.net.ServerSocket;
 import java.nio.charset.StandardCharsets;
 import java.security.NoSuchAlgorithmException;
 import java.text.SimpleDateFormat;
@@ -136,23 +135,6 @@ public abstract class WagonTestCase
      */
     protected abstract String getProtocol();
 
-    public static ServerSocket newServerSocket( int... ports )
-    {
-        for ( int port : ports )
-        {
-            try
-            {
-                return new ServerSocket( port );
-            }
-            catch ( IOException ex )
-            {
-                continue;
-            }
-        }
-
-        throw new RuntimeException( "no port available" );
-    }
-
     // ----------------------------------------------------------------------
     // 1. Create a local file repository which mimic a users local file
     // Repository.
@@ -270,10 +252,10 @@ public abstract class WagonTestCase
     public void testWagon()
         throws Exception
     {
-        setupRepositories();
-
         setupWagonTestingFixtures();
 
+        setupRepositories();
+
         fileRoundTripTesting();
 
         tearDownWagonTestingFixtures();
@@ -284,8 +266,8 @@ public abstract class WagonTestCase
     {
         if ( supportsGetIfNewer() )
         {
-            setupRepositories();
             setupWagonTestingFixtures();
+            setupRepositories();
             int expectedSize = putFile();
             // CHECKSTYLE_OFF: MagicNumber
             getIfNewer( getExpectedLastModifiedOnGet( testRepository, new 
Resource( resource ) ) + 30000, false,
@@ -315,8 +297,8 @@ public abstract class WagonTestCase
     {
         if ( supportsGetIfNewer() )
         {
-            setupRepositories();
             setupWagonTestingFixtures();
+            setupRepositories();
             int expectedSize = putFile();
             getIfNewer( getExpectedLastModifiedOnGet( testRepository, new 
Resource( resource ) ), false, expectedSize );
         }
@@ -327,8 +309,8 @@ public abstract class WagonTestCase
     {
         if ( supportsGetIfNewer() )
         {
-            setupRepositories();
             setupWagonTestingFixtures();
+            setupRepositories();
             int expectedSize = putFile();
             getIfNewer( new SimpleDateFormat( "yyyy-MM-dd" ).parse( 
"2006-01-01" ).getTime(), true, expectedSize );
         }
@@ -431,10 +413,10 @@ public abstract class WagonTestCase
     public void testWagonPutDirectory()
         throws Exception
     {
-        setupRepositories();
-
         setupWagonTestingFixtures();
 
+        setupRepositories();
+
         Wagon wagon = getWagon();
 
         if ( wagon.supportsDirectoryCopy() )
@@ -479,10 +461,10 @@ public abstract class WagonTestCase
     public void testWagonPutDirectoryDeepDestination()
         throws Exception
     {
-        setupRepositories();
-
         setupWagonTestingFixtures();
 
+        setupRepositories();
+
         Wagon wagon = getWagon();
 
         if ( wagon.supportsDirectoryCopy() )
@@ -533,10 +515,10 @@ public abstract class WagonTestCase
 
         final String[] resources = { "a/test-resource-2.txt", 
"a/b/test-resource-3.txt", "c/test-resource-4.txt" };
 
-        setupRepositories();
-
         setupWagonTestingFixtures();
 
+        setupRepositories();
+
         Wagon wagon = getWagon();
 
         if ( wagon.supportsDirectoryCopy() )
@@ -585,10 +567,10 @@ public abstract class WagonTestCase
 
         final String[] resources = { "a/test-resource-2.txt", 
"a/b/test-resource-3.txt", "c/test-resource-4.txt" };
 
-        setupRepositories();
-
         setupWagonTestingFixtures();
 
+        setupRepositories();
+
         Wagon wagon = getWagon();
 
         if ( wagon.supportsDirectoryCopy() )
@@ -688,10 +670,10 @@ public abstract class WagonTestCase
     public void testFailedGet()
         throws Exception
     {
-        setupRepositories();
-
         setupWagonTestingFixtures();
 
+        setupRepositories();
+
         message( "Getting test artifact from test repository " + 
testRepository );
 
         Wagon wagon = getWagon();
@@ -729,8 +711,8 @@ public abstract class WagonTestCase
     {
         if ( supportsGetIfNewer() )
         {
-            setupRepositories();
             setupWagonTestingFixtures();
+            setupRepositories();
             message( "Getting test artifact from test repository " + 
testRepository );
             Wagon wagon = getWagon();
             wagon.addTransferListener( checksumObserver );
@@ -767,10 +749,10 @@ public abstract class WagonTestCase
     public void testWagonGetFileList()
         throws Exception
     {
-        setupRepositories();
-
         setupWagonTestingFixtures();
 
+        setupRepositories();
+
         String dirName = "file-list";
 
         String filenames[] =
@@ -821,10 +803,10 @@ public abstract class WagonTestCase
     public void testWagonGetFileListWhenDirectoryDoesNotExist()
         throws Exception
     {
-        setupRepositories();
-
         setupWagonTestingFixtures();
 
+        setupRepositories();
+
         String dirName = "file-list-unexisting";
 
         Wagon wagon = getWagon();
@@ -857,10 +839,10 @@ public abstract class WagonTestCase
     public void testWagonResourceExists()
         throws Exception
     {
-        setupRepositories();
-
         setupWagonTestingFixtures();
 
+        setupRepositories();
+
         Wagon wagon = getWagon();
 
         putFile();
@@ -883,10 +865,10 @@ public abstract class WagonTestCase
     public void testWagonResourceNotExists()
         throws Exception
     {
-        setupRepositories();
-
         setupWagonTestingFixtures();
 
+        setupRepositories();
+
         Wagon wagon = getWagon();
 
         wagon.connect( testRepository, getAuthInfo() );
diff --git 
a/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java
 
b/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java
index 16a777c..463431a 100644
--- 
a/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java
+++ 
b/wagon-provider-test/src/main/java/org/apache/maven/wagon/http/HttpWagonTestCase.java
@@ -123,8 +123,6 @@ public abstract class HttpWagonTestCase
         server.setHandler( handlers );
 
         server.start();
-
-        testRepository.setUrl( getTestRepositoryUrl() );
     }
 
     protected final int getTestRepositoryPort()
diff --git 
a/wagon-providers/wagon-ftp/src/test/java/org/apache/maven/wagon/providers/ftp/FtpWagonTest.java
 
b/wagon-providers/wagon-ftp/src/test/java/org/apache/maven/wagon/providers/ftp/FtpWagonTest.java
index d5f74b9..6f20f99 100644
--- 
a/wagon-providers/wagon-ftp/src/test/java/org/apache/maven/wagon/providers/ftp/FtpWagonTest.java
+++ 
b/wagon-providers/wagon-ftp/src/test/java/org/apache/maven/wagon/providers/ftp/FtpWagonTest.java
@@ -20,8 +20,6 @@ package org.apache.maven.wagon.providers.ftp;
  */
 
 import java.io.File;
-import java.io.IOException;
-import java.net.ServerSocket;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -30,6 +28,7 @@ import org.apache.ftpserver.FtpServer;
 import org.apache.ftpserver.FtpServerFactory;
 import org.apache.ftpserver.ftplet.Authority;
 import org.apache.ftpserver.ftplet.UserManager;
+import org.apache.ftpserver.listener.Listener;
 import org.apache.ftpserver.listener.ListenerFactory;
 import org.apache.ftpserver.usermanager.PropertiesUserManagerFactory;
 import org.apache.ftpserver.usermanager.impl.BaseUser;
@@ -49,30 +48,15 @@ import org.apache.maven.wagon.resource.Resource;
 public class FtpWagonTest
     extends StreamingWagonTestCase
 {
-    static private FtpServer server;
+    private FtpServer server;
     
-//    private static final int testRepositoryPort = 10023 + new 
Random().nextInt( 16 );
-    
-    private static int testRepositoryPort;
+    private int testRepositoryPort;
     
     protected String getProtocol()
     {
         return "ftp";
     }
     
-    static
-    {
-        // claim number, release it again so it can be reclaimed by ftp server
-        try (ServerSocket socket = newServerSocket( 10023, 10024, 10025, 10026 
))
-        {
-            testRepositoryPort = socket.getLocalPort();
-        }
-        catch ( IOException e )
-        {
-            e.printStackTrace();
-        }
-    }
-
     protected int getTestRepositoryPort() {
         return testRepositoryPort;
     }
@@ -86,17 +70,18 @@ public class FtpWagonTest
             ftpHomeDir.mkdirs();
         }
 
-        if (server == null)
+        if ( server == null )
         {
             FtpServerFactory serverFactory = new FtpServerFactory();
 
             ListenerFactory factory = new ListenerFactory();
 
             // set the port of the listener
-            factory.setPort(getTestRepositoryPort());
+            factory.setPort( 0 );
             
             // replace the default listener
-            serverFactory.addListener("default", factory.createListener());
+            Listener defaultListener = factory.createListener();
+            serverFactory.addListener("default", defaultListener );
 
             PropertiesUserManagerFactory userManagerFactory = new 
PropertiesUserManagerFactory();
             UserManager um = userManagerFactory.createUserManager();
@@ -122,6 +107,7 @@ public class FtpWagonTest
             // start the server
             server.start();
 
+            testRepositoryPort = defaultListener.getPort();
         }
     }
 
@@ -207,10 +193,10 @@ public class FtpWagonTest
     public void testPutDirectoryCreation()
         throws Exception
     {
-        setupRepositories();
-
         setupWagonTestingFixtures();
 
+        setupRepositories();
+
         Wagon wagon = getWagon();
 
         if ( wagon.supportsDirectoryCopy() )
diff --git 
a/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonErrorTest.java
 
b/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonErrorTest.java
index b48ee12..85df40d 100644
--- 
a/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonErrorTest.java
+++ 
b/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonErrorTest.java
@@ -53,7 +53,7 @@ public class HttpWagonErrorTest
             Wagon wagon = getWagon();
 
             Repository testRepository = new Repository();
-            testRepository.setUrl( "http://localhost:"; + httpServerPort );
+            testRepository.setUrl( "http://localhost:"; + getPort() );
 
             wagon.connect( testRepository );
 
@@ -87,7 +87,7 @@ public class HttpWagonErrorTest
             Wagon wagon = getWagon();
 
             Repository testRepository = new Repository();
-            testRepository.setUrl( "http://localhost:"; + httpServerPort );
+            testRepository.setUrl( "http://localhost:"; + getPort() );
 
             wagon.connect( testRepository );
 
@@ -122,7 +122,7 @@ public class HttpWagonErrorTest
             Wagon wagon = getWagon();
 
             Repository testRepository = new Repository();
-            testRepository.setUrl( "http://localhost:"; + httpServerPort );
+            testRepository.setUrl( "http://localhost:"; + getPort() );
 
             wagon.connect( testRepository );
 
@@ -156,7 +156,7 @@ public class HttpWagonErrorTest
             Wagon wagon = getWagon();
 
             Repository testRepository = new Repository();
-            testRepository.setUrl( "http://localhost:"; + httpServerPort );
+            testRepository.setUrl( "http://localhost:"; + getPort() );
 
             wagon.connect( testRepository );
 
diff --git 
a/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonHttpServerTestCase.java
 
b/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonHttpServerTestCase.java
index b257659..38cd7e1 100644
--- 
a/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonHttpServerTestCase.java
+++ 
b/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonHttpServerTestCase.java
@@ -1,8 +1,5 @@
 package org.apache.maven.wagon.providers.http;
 
-import java.io.IOException;
-import java.net.ServerSocket;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -23,9 +20,9 @@ import java.net.ServerSocket;
  */
 
 import org.apache.maven.wagon.Wagon;
-import org.apache.maven.wagon.WagonTestCase;
 import org.codehaus.plexus.PlexusTestCase;
 import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.ServerConnector;
 import org.eclipse.jetty.server.handler.ResourceHandler;
 import org.eclipse.jetty.servlet.ServletContextHandler;
 
@@ -35,32 +32,17 @@ import org.eclipse.jetty.servlet.ServletContextHandler;
 public abstract class HttpWagonHttpServerTestCase
     extends PlexusTestCase
 {
-    protected static int httpServerPort;
-
     private Server server;
 
     protected ResourceHandler resourceHandler;
 
     protected ServletContextHandler context;
 
-    static
-    {
-        // claim number, release it again so it can be reclaimed by ftp server
-        try ( ServerSocket socket = WagonTestCase.newServerSocket( 10008, 
10009, 10010, 10011 ) )
-        {
-            httpServerPort = socket.getLocalPort();
-        }
-        catch ( IOException e )
-        {
-            e.printStackTrace();
-        }
-    }
-    
     protected void setUp()
         throws Exception
     {
         super.setUp();
-        server = new Server( httpServerPort );
+        server = new Server( 0 );
 
         context = new ServletContextHandler( ServletContextHandler.SESSIONS );
         resourceHandler = new ResourceHandler();
@@ -85,4 +67,10 @@ public abstract class HttpWagonHttpServerTestCase
     {
         server.stop();
     }
+    
+    protected final int getPort()
+    {
+        return ((ServerConnector) server.getConnectors()[0]).getLocalPort();
+    }
+    
 }
diff --git 
a/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonTimeoutTest.java
 
b/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonTimeoutTest.java
index ee1d0ec..553576f 100644
--- 
a/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonTimeoutTest.java
+++ 
b/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonTimeoutTest.java
@@ -56,7 +56,7 @@ public class HttpWagonTimeoutTest
             wagon.setReadTimeout( 1000 );
 
             Repository testRepository = new Repository();
-            testRepository.setUrl( "http://localhost:"; + httpServerPort );
+            testRepository.setUrl( "http://localhost:"; + getPort() );
 
             wagon.connect( testRepository );
 
@@ -91,7 +91,7 @@ public class HttpWagonTimeoutTest
             wagon.setReadTimeout( 1000 );
 
             Repository testRepository = new Repository();
-            testRepository.setUrl( "http://localhost:"; + httpServerPort );
+            testRepository.setUrl( "http://localhost:"; + getPort() );
 
             wagon.connect( testRepository );
 
@@ -123,7 +123,7 @@ public class HttpWagonTimeoutTest
             wagon.setReadTimeout( 1000 );
 
             Repository testRepository = new Repository();
-            testRepository.setUrl( "http://localhost:"; + httpServerPort );
+            testRepository.setUrl( "http://localhost:"; + getPort() );
 
             wagon.connect( testRepository );
 
@@ -155,7 +155,7 @@ public class HttpWagonTimeoutTest
             wagon.setReadTimeout( 1000 );
 
             Repository testRepository = new Repository();
-            testRepository.setUrl( "http://localhost:"; + httpServerPort );
+            testRepository.setUrl( "http://localhost:"; + getPort() );
 
             wagon.connect( testRepository );
 
diff --git 
a/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java
 
b/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java
index cf9fbdd..c8a3692 100644
--- 
a/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java
+++ 
b/wagon-providers/wagon-webdav-jackrabbit/src/test/java/org/apache/maven/wagon/providers/webdav/WebDavWagonTest.java
@@ -160,10 +160,10 @@ public class WebDavWagonTest
     public void testMkdirs()
         throws Exception
     {
-        setupRepositories();
-
         setupWagonTestingFixtures();
 
+        setupRepositories();
+
         WebDavWagon wagon = (WebDavWagon) getWagon();
         wagon.connect( testRepository, getAuthInfo() );
 
@@ -210,10 +210,10 @@ public class WebDavWagonTest
         throws Exception
     {
         // WAGON-244
-        setupRepositories();
-
         setupWagonTestingFixtures();
 
+        setupRepositories();
+
         // reconstruct with no basedir
         testRepository.setUrl(
             testRepository.getProtocol() + "://" + testRepository.getHost() + 
":" + testRepository.getPort() );
@@ -255,10 +255,10 @@ public class WebDavWagonTest
     public void testWagonWebDavGetFileList()
         throws Exception
     {
-        setupRepositories();
-
         setupWagonTestingFixtures();
 
+        setupRepositories();
+
         String dirName = "file-list";
 
         String filenames[] =
@@ -325,10 +325,10 @@ public class WebDavWagonTest
     public void testWagonFailsOnPutFailureByDefault()
         throws Exception
     {
-        setupRepositories();
-
         setupWagonTestingFixtures();
 
+        setupRepositories();
+
         File testFile = getTempFile();
 
         System.clearProperty( WebDavWagon.CONTINUE_ON_FAILURE_PROPERTY );
@@ -388,10 +388,10 @@ public class WebDavWagonTest
     public void testWagonContinuesOnPutFailureIfPropertySet()
         throws Exception
     {
-        setupRepositories();
-
         setupWagonTestingFixtures();
 
+        setupRepositories();
+
         File testFile = getTempFile();
 
         String continueOnFailureProperty = 
WebDavWagon.CONTINUE_ON_FAILURE_PROPERTY;

Reply via email to