This is an automated email from the ASF dual-hosted git repository.
jbonofre pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq.git
The following commit(s) were added to refs/heads/main by this push:
new 965b3bcfda Use ephemeral ports in HTTP/WS transport tests (#1675)
965b3bcfda is described below
commit 965b3bcfdac38462a48ef30393b910353ea4404e
Author: Jean-Louis Monteiro <[email protected]>
AuthorDate: Tue Feb 17 16:33:40 2026 +0100
Use ephemeral ports in HTTP/WS transport tests (#1675)
---
.../transport/http/HttpTransportBrokerTest.java | 4 +--
.../transport/https/HttpsTransportBrokerTest.java | 2 +-
.../transport/ws/MQTTWSSTransportTest.java | 2 +-
.../activemq/transport/ws/MQTTWSTransportTest.java | 4 +++
.../transport/ws/StompWSSTransportTest.java | 2 +-
.../transport/ws/WSTransportHttpTraceTest.java | 5 ++--
.../transport/ws/WSTransportLinkStealingTest.java | 5 ++--
.../activemq/transport/ws/WSTransportTest.java | 6 ++---
.../transport/ws/WSTransportTestSupport.java | 30 +++++++++++-----------
.../transport/wss/WSSTransportHttpTraceTest.java | 5 ++--
.../wss/WSSTransportLinkStealingTest.java | 2 +-
.../activemq/transport/wss/WSSTransportTest.java | 6 ++---
.../apache/activemq/broker/BrokerTestSupport.java | 1 +
.../transport/TransportBrokerTestSupport.java | 4 ++-
.../auto/AutoNIOSslTransportBrokerTest.java | 2 +-
.../transport/auto/AutoSslTransportBrokerTest.java | 2 +-
.../transport/nio/NIOSSLTransportBrokerTest.java | 2 +-
.../transport/tcp/SslTransportBrokerTest.java | 2 +-
18 files changed, 47 insertions(+), 39 deletions(-)
diff --git
a/activemq-http/src/test/java/org/apache/activemq/transport/http/HttpTransportBrokerTest.java
b/activemq-http/src/test/java/org/apache/activemq/transport/http/HttpTransportBrokerTest.java
index 2170541525..488964ad5f 100644
---
a/activemq-http/src/test/java/org/apache/activemq/transport/http/HttpTransportBrokerTest.java
+++
b/activemq-http/src/test/java/org/apache/activemq/transport/http/HttpTransportBrokerTest.java
@@ -27,13 +27,13 @@ import
org.apache.activemq.transport.TransportBrokerTestSupport;
public class HttpTransportBrokerTest extends TransportBrokerTestSupport {
protected String getBindLocation() {
- return "http://localhost:8081";
+ return "http://localhost:0";
}
protected void setUp() throws Exception {
maxWait = 2000;
super.setUp();
- WaitForJettyListener.waitForJettySocketToAccept(getBindLocation());
+
WaitForJettyListener.waitForJettySocketToAccept(connector.getPublishableConnectURI().toString());
}
protected BrokerService createBroker() throws Exception {
diff --git
a/activemq-http/src/test/java/org/apache/activemq/transport/https/HttpsTransportBrokerTest.java
b/activemq-http/src/test/java/org/apache/activemq/transport/https/HttpsTransportBrokerTest.java
index b57cf907f6..37738bcd65 100644
---
a/activemq-http/src/test/java/org/apache/activemq/transport/https/HttpsTransportBrokerTest.java
+++
b/activemq-http/src/test/java/org/apache/activemq/transport/https/HttpsTransportBrokerTest.java
@@ -25,7 +25,7 @@ public class HttpsTransportBrokerTest extends
HttpTransportBrokerTest {
@Override
protected String getBindLocation() {
- return "https://localhost:8161";
+ return "https://localhost:0";
}
@Override
diff --git
a/activemq-http/src/test/java/org/apache/activemq/transport/ws/MQTTWSSTransportTest.java
b/activemq-http/src/test/java/org/apache/activemq/transport/ws/MQTTWSSTransportTest.java
index f0a9ac9acc..f519f6ecf8 100644
---
a/activemq-http/src/test/java/org/apache/activemq/transport/ws/MQTTWSSTransportTest.java
+++
b/activemq-http/src/test/java/org/apache/activemq/transport/ws/MQTTWSSTransportTest.java
@@ -40,7 +40,7 @@ public class MQTTWSSTransportTest extends MQTTWSTransportTest
{
@Override
protected String getWSConnectorURI() {
- return "wss://localhost:61623";
+ return "wss://localhost:0";
}
}
diff --git
a/activemq-http/src/test/java/org/apache/activemq/transport/ws/MQTTWSTransportTest.java
b/activemq-http/src/test/java/org/apache/activemq/transport/ws/MQTTWSTransportTest.java
index 671f77f64f..9c524c4d3e 100644
---
a/activemq-http/src/test/java/org/apache/activemq/transport/ws/MQTTWSTransportTest.java
+++
b/activemq-http/src/test/java/org/apache/activemq/transport/ws/MQTTWSTransportTest.java
@@ -73,6 +73,7 @@ public class MQTTWSTransportTest extends
WSTransportTestSupport {
SslContextFactory.Client sslContextFactory = new
SslContextFactory.Client();
sslContextFactory.setTrustAll(true);
+ sslContextFactory.setEndpointIdentificationAlgorithm(null);
ClientConnector clientConnector = new ClientConnector();
clientConnector.setSslContextFactory(sslContextFactory);
@@ -97,6 +98,9 @@ public class MQTTWSTransportTest extends
WSTransportTestSupport {
if (wsMQTTConnection != null) {
wsMQTTConnection.close();
wsMQTTConnection = null;
+ }
+ if (wsClient != null) {
+ wsClient.stop();
wsClient = null;
}
diff --git
a/activemq-http/src/test/java/org/apache/activemq/transport/ws/StompWSSTransportTest.java
b/activemq-http/src/test/java/org/apache/activemq/transport/ws/StompWSSTransportTest.java
index a00eac1a5d..89f8bfaf4a 100644
---
a/activemq-http/src/test/java/org/apache/activemq/transport/ws/StompWSSTransportTest.java
+++
b/activemq-http/src/test/java/org/apache/activemq/transport/ws/StompWSSTransportTest.java
@@ -20,7 +20,7 @@ public class StompWSSTransportTest extends
StompWSTransportTest {
@Override
protected String getWSConnectorURI() {
- return "wss://localhost:61623";
+ return "wss://localhost:0";
}
}
diff --git
a/activemq-http/src/test/java/org/apache/activemq/transport/ws/WSTransportHttpTraceTest.java
b/activemq-http/src/test/java/org/apache/activemq/transport/ws/WSTransportHttpTraceTest.java
index 64392b15a9..7a39d6cb87 100644
---
a/activemq-http/src/test/java/org/apache/activemq/transport/ws/WSTransportHttpTraceTest.java
+++
b/activemq-http/src/test/java/org/apache/activemq/transport/ws/WSTransportHttpTraceTest.java
@@ -43,7 +43,7 @@ public class WSTransportHttpTraceTest extends
WSTransportTestSupport {
@Override
protected String getWSConnectorURI() {
- String uri =
"ws://127.0.0.1:61623?websocket.maxTextMessageSize=99999&transport.maxIdleTime=1001";
+ String uri =
"ws://127.0.0.1:0?websocket.maxTextMessageSize=99999&transport.maxIdleTime=1001";
uri = enableTraceParam != null ? uri + "&" + enableTraceParam : uri;
return uri;
}
@@ -54,7 +54,8 @@ public class WSTransportHttpTraceTest extends
WSTransportTestSupport {
*/
@Test(timeout=10000)
public void testHttpTraceEnabled() throws Exception {
- HttpTraceTestSupport.testHttpTraceEnabled("http://127.0.0.1:61623",
expectedStatus, null);
+ HttpTraceTestSupport.testHttpTraceEnabled("http://127.0.0.1:" +
wsConnectUri.getPort(),
+ expectedStatus, null);
}
}
diff --git
a/activemq-http/src/test/java/org/apache/activemq/transport/ws/WSTransportLinkStealingTest.java
b/activemq-http/src/test/java/org/apache/activemq/transport/ws/WSTransportLinkStealingTest.java
index 2ca03c86d7..096b87bea1 100644
---
a/activemq-http/src/test/java/org/apache/activemq/transport/ws/WSTransportLinkStealingTest.java
+++
b/activemq-http/src/test/java/org/apache/activemq/transport/ws/WSTransportLinkStealingTest.java
@@ -20,6 +20,7 @@ package org.apache.activemq.transport.ws;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
+import java.io.IOException;
import java.net.URI;
import org.apache.activemq.broker.BrokerFactory;
@@ -37,7 +38,6 @@ public class WSTransportLinkStealingTest {
private static final Logger LOG =
LoggerFactory.getLogger(WSTransportLinkStealingTest.class);
private BrokerService broker;
-
protected BrokerService createBroker(boolean deleteMessages) throws
Exception {
BrokerService broker = BrokerFactory.createBroker(
new URI("broker:()/localhost?persistent=false&useJmx=false"));
@@ -59,7 +59,8 @@ public class WSTransportLinkStealingTest {
}
protected String getWSConnectorURI() {
- return
"ws://127.0.0.1:61623?allowLinkStealing=true&websocket.maxTextMessageSize=99999&transport.maxIdleTime=1001";
+ return "ws://127.0.0.1:0" +
+
"?allowLinkStealing=true&websocket.maxTextMessageSize=99999&transport.maxIdleTime=1001";
}
protected void stopBroker() {
diff --git
a/activemq-http/src/test/java/org/apache/activemq/transport/ws/WSTransportTest.java
b/activemq-http/src/test/java/org/apache/activemq/transport/ws/WSTransportTest.java
index 9ea1cbbbfb..d0e2d3bccc 100644
---
a/activemq-http/src/test/java/org/apache/activemq/transport/ws/WSTransportTest.java
+++
b/activemq-http/src/test/java/org/apache/activemq/transport/ws/WSTransportTest.java
@@ -58,8 +58,6 @@ public class WSTransportTest extends WSTransportTestSupport {
private String stompUri;
private StompConnection stompConnection = new StompConnection();
- protected final int port = 61623;
-
@Override
protected void addAdditionalConnectors(BrokerService service) throws
Exception {
stompUri =
service.addConnector("stomp://localhost:0").getPublishableConnectString();
@@ -67,7 +65,7 @@ public class WSTransportTest extends WSTransportTestSupport {
@Override
protected String getWSConnectorURI() {
- return "ws://127.0.0.1:" + port +
"?websocket.maxTextMessageSize=99999&transport.maxIdleTime=1001";
+ return
"ws://127.0.0.1:0?websocket.maxTextMessageSize=99999&transport.maxIdleTime=1001";
}
protected Server createWebServer() throws Exception {
@@ -138,7 +136,7 @@ public class WSTransportTest extends WSTransportTestSupport
{
@Test(timeout=10000)
public void testGet() throws Exception {
- testGet("http://127.0.0.1:" + port, null);
+ testGet("http://127.0.0.1:" + wsConnectUri.getPort(), null);
}
diff --git
a/activemq-http/src/test/java/org/apache/activemq/transport/ws/WSTransportTestSupport.java
b/activemq-http/src/test/java/org/apache/activemq/transport/ws/WSTransportTestSupport.java
index 8c4a2c7684..7a3c3933b9 100644
---
a/activemq-http/src/test/java/org/apache/activemq/transport/ws/WSTransportTestSupport.java
+++
b/activemq-http/src/test/java/org/apache/activemq/transport/ws/WSTransportTestSupport.java
@@ -17,14 +17,14 @@
package org.apache.activemq.transport.ws;
import java.io.IOException;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.URI;
import jakarta.jms.JMSException;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
-import javax.net.ServerSocketFactory;
-
import org.apache.activemq.broker.BrokerService;
import org.apache.activemq.broker.jmx.BrokerViewMBean;
import org.apache.activemq.broker.jmx.QueueViewMBean;
@@ -70,11 +70,14 @@ public class WSTransportTestSupport {
}
protected String getWSConnectionURI() {
+ if (wsConnectUri != null) {
+ return wsConnectUri.toString();
+ }
return "ws://127.0.0.1:" + getProxyPort();
}
protected String getWSConnectorURI() {
- return "ws://127.0.0.1:" + getProxyPort() +
+ return "ws://127.0.0.1:0" +
"?allowLinkStealing=" + isAllowLinkStealing() +
"&websocket.maxTextMessageSize=99999" +
"&transport.idleTimeout=1001" +
@@ -101,7 +104,8 @@ public class WSTransportTestSupport {
context.afterPropertiesSet();
broker.setSslContext(context);
- wsConnectUri =
broker.addConnector(getWSConnectorURI()).getPublishableConnectURI();
+ org.apache.activemq.broker.TransportConnector wsConnector =
+ broker.addConnector(getWSConnectorURI());
broker.setAdvisorySupport(advisorySupport);
broker.setUseJmx(true);
@@ -113,6 +117,8 @@ public class WSTransportTestSupport {
addAdditionalConnectors(broker);
+ wsConnectUri = wsConnector.getPublishableConnectURI();
+
return broker;
}
@@ -126,18 +132,12 @@ public class WSTransportTestSupport {
protected int getProxyPort() {
if (proxyPort == 0) {
- ServerSocket ss = null;
- try {
- ss = ServerSocketFactory.getDefault().createServerSocket(0);
+ try (ServerSocket ss = new ServerSocket()) {
+ ss.setReuseAddress(true);
+ ss.bind(new
InetSocketAddress(InetAddress.getByName("127.0.0.1"), 0));
proxyPort = ss.getLocalPort();
- } catch (IOException e) { // ignore
- } finally {
- try {
- if (ss != null ) {
- ss.close();
- }
- } catch (IOException e) { // ignore
- }
+ } catch (IOException e) {
+ throw new IllegalStateException("Could not find a free TCP/IP
port for WS tests", e);
}
}
diff --git
a/activemq-http/src/test/java/org/apache/activemq/transport/wss/WSSTransportHttpTraceTest.java
b/activemq-http/src/test/java/org/apache/activemq/transport/wss/WSSTransportHttpTraceTest.java
index c3f2599b1e..e160047790 100644
---
a/activemq-http/src/test/java/org/apache/activemq/transport/wss/WSSTransportHttpTraceTest.java
+++
b/activemq-http/src/test/java/org/apache/activemq/transport/wss/WSSTransportHttpTraceTest.java
@@ -44,12 +44,13 @@ public class WSSTransportHttpTraceTest extends
WSTransportHttpTraceTest {
factory.setEndpointIdentificationAlgorithm(null); // service
cert does not contain a SAN
factory.setSslContext(broker.getSslContext().getSSLContext());
- HttpTraceTestSupport.testHttpTraceEnabled("https://127.0.0.1:61623",
expectedStatus, factory);
+ HttpTraceTestSupport.testHttpTraceEnabled("https://localhost:" +
wsConnectUri.getPort(),
+ expectedStatus, factory);
}
@Override
protected String getWSConnectorURI() {
- String uri =
"wss://127.0.0.1:61623?websocket.maxTextMessageSize=99999&transport.maxIdleTime=1001";
+ String uri =
"wss://localhost:0?websocket.maxTextMessageSize=99999&transport.maxIdleTime=1001";
uri = enableTraceParam != null ? uri + "&" + enableTraceParam : uri;
return uri;
}
diff --git
a/activemq-http/src/test/java/org/apache/activemq/transport/wss/WSSTransportLinkStealingTest.java
b/activemq-http/src/test/java/org/apache/activemq/transport/wss/WSSTransportLinkStealingTest.java
index dfa9a79247..0cc532beb5 100644
---
a/activemq-http/src/test/java/org/apache/activemq/transport/wss/WSSTransportLinkStealingTest.java
+++
b/activemq-http/src/test/java/org/apache/activemq/transport/wss/WSSTransportLinkStealingTest.java
@@ -22,6 +22,6 @@ public class WSSTransportLinkStealingTest extends
WSTransportLinkStealingTest {
@Override
protected String getWSConnectorURI() {
- return "wss://localhost:61623?allowLinkStealing=true";
+ return "wss://localhost:0?allowLinkStealing=true";
}
}
diff --git
a/activemq-http/src/test/java/org/apache/activemq/transport/wss/WSSTransportTest.java
b/activemq-http/src/test/java/org/apache/activemq/transport/wss/WSSTransportTest.java
index c93886c61e..2387802016 100644
---
a/activemq-http/src/test/java/org/apache/activemq/transport/wss/WSSTransportTest.java
+++
b/activemq-http/src/test/java/org/apache/activemq/transport/wss/WSSTransportTest.java
@@ -41,7 +41,7 @@ public class WSSTransportTest extends WSTransportTest {
@Override
protected String getWSConnectorURI() {
- return "wss://localhost:" + port;
+ return "wss://localhost:0";
}
@Ignore
@@ -52,12 +52,12 @@ public class WSSTransportTest extends WSTransportTest {
factory.setEndpointIdentificationAlgorithm(null); // service
cert does not contain a SAN
factory.setSslContext(broker.getSslContext().getSSLContext());
- testGet("https://127.0.0.1:" + port, factory);
+ testGet("https://127.0.0.1:" + wsConnectUri.getPort(), factory);
}
@Override
protected String getTestURI() {
int proxyPort = getProxyPort();
- return "https://localhost:" + proxyPort +
"/websocket.html#wss://localhost:" + port;
+ return "https://localhost:" + proxyPort + "/websocket.html#" +
wsConnectUri;
}
}
diff --git
a/activemq-unit-tests/src/test/java/org/apache/activemq/broker/BrokerTestSupport.java
b/activemq-unit-tests/src/test/java/org/apache/activemq/broker/BrokerTestSupport.java
index b9a9ec991e..0e4242a0da 100644
---
a/activemq-unit-tests/src/test/java/org/apache/activemq/broker/BrokerTestSupport.java
+++
b/activemq-unit-tests/src/test/java/org/apache/activemq/broker/BrokerTestSupport.java
@@ -86,6 +86,7 @@ public class BrokerTestSupport extends CombinationTestSupport
{
policyMap.setDefaultEntry(getDefaultPolicy());
broker.setDestinationPolicy(policyMap);
broker.start();
+ broker.waitUntilStarted();
}
protected PolicyEntry getDefaultPolicy() {
diff --git
a/activemq-unit-tests/src/test/java/org/apache/activemq/transport/TransportBrokerTestSupport.java
b/activemq-unit-tests/src/test/java/org/apache/activemq/transport/TransportBrokerTestSupport.java
index 8c19ea88b8..59ca6a04c0 100644
---
a/activemq-unit-tests/src/test/java/org/apache/activemq/transport/TransportBrokerTestSupport.java
+++
b/activemq-unit-tests/src/test/java/org/apache/activemq/transport/TransportBrokerTestSupport.java
@@ -30,10 +30,12 @@ public abstract class TransportBrokerTestSupport extends
BrokerTest {
protected TransportConnector connector;
private ArrayList<StubConnection> connections = new
ArrayList<StubConnection>();
+ private URI bindURI;
@Override
protected void setUp() throws Exception {
super.setUp();
+ bindURI = connector.getPublishableConnectURI();
}
@Override
@@ -68,7 +70,7 @@ public abstract class TransportBrokerTestSupport extends
BrokerTest {
}
protected URI getBindURI() throws URISyntaxException {
- return new URI(getBindLocation());
+ return bindURI;
}
@Override
diff --git
a/activemq-unit-tests/src/test/java/org/apache/activemq/transport/auto/AutoNIOSslTransportBrokerTest.java
b/activemq-unit-tests/src/test/java/org/apache/activemq/transport/auto/AutoNIOSslTransportBrokerTest.java
index cb90b415c3..1758f6501b 100644
---
a/activemq-unit-tests/src/test/java/org/apache/activemq/transport/auto/AutoNIOSslTransportBrokerTest.java
+++
b/activemq-unit-tests/src/test/java/org/apache/activemq/transport/auto/AutoNIOSslTransportBrokerTest.java
@@ -38,7 +38,7 @@ public class AutoNIOSslTransportBrokerTest extends
TransportBrokerTestSupport {
@Override
protected URI getBindURI() throws URISyntaxException {
- return new URI("auto+nio+ssl://localhost:0?soWriteTimeout=20000");
+ return new URI(super.getBindURI().toString() +
"?soWriteTimeout=20000");
}
@Override
diff --git
a/activemq-unit-tests/src/test/java/org/apache/activemq/transport/auto/AutoSslTransportBrokerTest.java
b/activemq-unit-tests/src/test/java/org/apache/activemq/transport/auto/AutoSslTransportBrokerTest.java
index 203f6ee97a..603153921e 100644
---
a/activemq-unit-tests/src/test/java/org/apache/activemq/transport/auto/AutoSslTransportBrokerTest.java
+++
b/activemq-unit-tests/src/test/java/org/apache/activemq/transport/auto/AutoSslTransportBrokerTest.java
@@ -36,7 +36,7 @@ public class AutoSslTransportBrokerTest extends
TransportBrokerTestSupport {
@Override
protected URI getBindURI() throws URISyntaxException {
- return new URI("auto+ssl://localhost:0?soWriteTimeout=20000");
+ return new URI(super.getBindURI().toString() +
"?soWriteTimeout=20000");
}
@Override
diff --git
a/activemq-unit-tests/src/test/java/org/apache/activemq/transport/nio/NIOSSLTransportBrokerTest.java
b/activemq-unit-tests/src/test/java/org/apache/activemq/transport/nio/NIOSSLTransportBrokerTest.java
index 2d6d13ef19..1d7a3a7b05 100644
---
a/activemq-unit-tests/src/test/java/org/apache/activemq/transport/nio/NIOSSLTransportBrokerTest.java
+++
b/activemq-unit-tests/src/test/java/org/apache/activemq/transport/nio/NIOSSLTransportBrokerTest.java
@@ -36,7 +36,7 @@ public class NIOSSLTransportBrokerTest extends
TransportBrokerTestSupport {
@Override
protected URI getBindURI() throws URISyntaxException {
- return new URI("nio+ssl://localhost:0?soWriteTimeout=20000");
+ return new URI(super.getBindURI().toString() +
"?soWriteTimeout=20000");
}
@Override
diff --git
a/activemq-unit-tests/src/test/java/org/apache/activemq/transport/tcp/SslTransportBrokerTest.java
b/activemq-unit-tests/src/test/java/org/apache/activemq/transport/tcp/SslTransportBrokerTest.java
index 33f44e85e0..6913a8f952 100644
---
a/activemq-unit-tests/src/test/java/org/apache/activemq/transport/tcp/SslTransportBrokerTest.java
+++
b/activemq-unit-tests/src/test/java/org/apache/activemq/transport/tcp/SslTransportBrokerTest.java
@@ -35,7 +35,7 @@ public class SslTransportBrokerTest extends
TransportBrokerTestSupport {
@Override
protected URI getBindURI() throws URISyntaxException {
- return new URI("ssl://localhost:0?soWriteTimeout=20000");
+ return new URI(super.getBindURI().toString() +
"?soWriteTimeout=20000");
}
protected void setUp() throws Exception {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact