Ask ftp/http server for its assigned port instead of trying to assign an available port
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 @@
{
if ( supportsGetIfNewer() )
{
- setupRepositories();
-
setupWagonTestingFixtures();
+ setupRepositories();
+
streamRoundTripTesting();
tearDownWagonTestingFixtures();
@@ -55,10 +55,10 @@
public void testFailedGetToStream()
throws Exception
{
- setupRepositories();
-
setupWagonTestingFixtures();
+ setupRepositories();
+
message( "Getting test artifact from test repository " + testRepository );
StreamingWagon wagon = (StreamingWagon) getWagon();
@@ -103,8 +103,9 @@
{
if ( supportsGetIfNewer() )
{
- setupRepositories();
setupWagonTestingFixtures();
+ setupRepositories();
+
int expectedSize = putFile();
// CHECKSTYLE_OFF: MagicNumber
getIfNewerToStream( getExpectedLastModifiedOnGet( testRepository, new Resource( resource ) ) + 30000, false,
@@ -118,8 +119,8 @@
{
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 @@
{
if ( supportsGetIfNewer() )
{
- setupRepositories();
setupWagonTestingFixtures();
+ setupRepositories();
int expectedSize = putFile();
getIfNewerToStream( getExpectedLastModifiedOnGet( testRepository, new Resource( resource ) ), false,
expectedSize );
@@ -172,8 +173,8 @@
{
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 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 @@
*/
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 void testWagon()
throws Exception
{
- setupRepositories();
-
setupWagonTestingFixtures();
+ setupRepositories();
+
fileRoundTripTesting();
tearDownWagonTestingFixtures();
@@ -284,8 +266,8 @@
{
if ( supportsGetIfNewer() )
{
- setupRepositories();
setupWagonTestingFixtures();
+ setupRepositories();
int expectedSize = putFile();
// CHECKSTYLE_OFF: MagicNumber
getIfNewer( getExpectedLastModifiedOnGet( testRepository, new Resource( resource ) ) + 30000, false,
@@ -315,8 +297,8 @@
{
if ( supportsGetIfNewer() )
{
- setupRepositories();
setupWagonTestingFixtures();
+ setupRepositories();
int expectedSize = putFile();
getIfNewer( getExpectedLastModifiedOnGet( testRepository, new Resource( resource ) ), false, expectedSize );
}
@@ -327,8 +309,8 @@
{
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 void testWagonPutDirectory()
throws Exception
{
- setupRepositories();
-
setupWagonTestingFixtures();
+ setupRepositories();
+
Wagon wagon = getWagon();
if ( wagon.supportsDirectoryCopy() )
@@ -479,10 +461,10 @@
public void testWagonPutDirectoryDeepDestination()
throws Exception
{
- setupRepositories();
-
setupWagonTestingFixtures();
+ setupRepositories();
+
Wagon wagon = getWagon();
if ( wagon.supportsDirectoryCopy() )
@@ -533,10 +515,10 @@
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 @@
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 void testFailedGet()
throws Exception
{
- setupRepositories();
-
setupWagonTestingFixtures();
+ setupRepositories();
+
message( "Getting test artifact from test repository " + testRepository );
Wagon wagon = getWagon();
@@ -729,8 +711,8 @@
{
if ( supportsGetIfNewer() )
{
- setupRepositories();
setupWagonTestingFixtures();
+ setupRepositories();
message( "Getting test artifact from test repository " + testRepository );
Wagon wagon = getWagon();
wagon.addTransferListener( checksumObserver );
@@ -767,10 +749,10 @@
public void testWagonGetFileList()
throws Exception
{
- setupRepositories();
-
setupWagonTestingFixtures();
+ setupRepositories();
+
String dirName = "file-list";
String filenames[] =
@@ -821,10 +803,10 @@
public void testWagonGetFileListWhenDirectoryDoesNotExist()
throws Exception
{
- setupRepositories();
-
setupWagonTestingFixtures();
+ setupRepositories();
+
String dirName = "file-list-unexisting";
Wagon wagon = getWagon();
@@ -857,10 +839,10 @@
public void testWagonResourceExists()
throws Exception
{
- setupRepositories();
-
setupWagonTestingFixtures();
+ setupRepositories();
+
Wagon wagon = getWagon();
putFile();
@@ -883,10 +865,10 @@
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 @@
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 @@
*/
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.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 @@
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 @@
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 @@
// start the server
server.start();
+ testRepositoryPort = defaultListener.getPort();
}
}
@@ -207,10 +193,10 @@
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 @@
Wagon wagon = getWagon();
Repository testRepository = new Repository();
- testRepository.setUrl( "http://localhost:" + httpServerPort );
+ testRepository.setUrl( "http://localhost:" + getPort() );
wagon.connect( testRepository );
@@ -87,7 +87,7 @@
Wagon wagon = getWagon();
Repository testRepository = new Repository();
- testRepository.setUrl( "http://localhost:" + httpServerPort );
+ testRepository.setUrl( "http://localhost:" + getPort() );
wagon.connect( testRepository );
@@ -122,7 +122,7 @@
Wagon wagon = getWagon();
Repository testRepository = new Repository();
- testRepository.setUrl( "http://localhost:" + httpServerPort );
+ testRepository.setUrl( "http://localhost:" + getPort() );
wagon.connect( testRepository );
@@ -156,7 +156,7 @@
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 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 @@
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 @@
{
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 @@
wagon.setReadTimeout( 1000 );
Repository testRepository = new Repository();
- testRepository.setUrl( "http://localhost:" + httpServerPort );
+ testRepository.setUrl( "http://localhost:" + getPort() );
wagon.connect( testRepository );
@@ -91,7 +91,7 @@
wagon.setReadTimeout( 1000 );
Repository testRepository = new Repository();
- testRepository.setUrl( "http://localhost:" + httpServerPort );
+ testRepository.setUrl( "http://localhost:" + getPort() );
wagon.connect( testRepository );
@@ -123,7 +123,7 @@
wagon.setReadTimeout( 1000 );
Repository testRepository = new Repository();
- testRepository.setUrl( "http://localhost:" + httpServerPort );
+ testRepository.setUrl( "http://localhost:" + getPort() );
wagon.connect( testRepository );
@@ -155,7 +155,7 @@
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 void testMkdirs()
throws Exception
{
- setupRepositories();
-
setupWagonTestingFixtures();
+ setupRepositories();
+
WebDavWagon wagon = (WebDavWagon) getWagon();
wagon.connect( testRepository, getAuthInfo() );
@@ -210,10 +210,10 @@
throws Exception
{
// WAGON-244
- setupRepositories();
-
setupWagonTestingFixtures();
+ setupRepositories();
+
// reconstruct with no basedir
testRepository.setUrl(
testRepository.getProtocol() + "://" + testRepository.getHost() + ":" + testRepository.getPort() );
@@ -255,10 +255,10 @@
public void testWagonWebDavGetFileList()
throws Exception
{
- setupRepositories();
-
setupWagonTestingFixtures();
+ setupRepositories();
+
String dirName = "file-list";
String filenames[] =
@@ -325,10 +325,10 @@
public void testWagonFailsOnPutFailureByDefault()
throws Exception
{
- setupRepositories();
-
setupWagonTestingFixtures();
+ setupRepositories();
+
File testFile = getTempFile();
System.clearProperty( WebDavWagon.CONTINUE_ON_FAILURE_PROPERTY );
@@ -388,10 +388,10 @@
public void testWagonContinuesOnPutFailureIfPropertySet()
throws Exception
{
- setupRepositories();
-
setupWagonTestingFixtures();
+ setupRepositories();
+
File testFile = getTempFile();
String continueOnFailureProperty = WebDavWagon.CONTINUE_ON_FAILURE_PROPERTY;