This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new fcd76cf6ecaa CAMEL-23431: Migrate small component tests from
AvailablePortFinder to port-0 binding
fcd76cf6ecaa is described below
commit fcd76cf6ecaa7833c5b70dcb838c9a86175b1f53
Author: Guillaume Nodet <[email protected]>
AuthorDate: Thu May 7 17:41:13 2026 +0200
CAMEL-23431: Migrate small component tests from AvailablePortFinder to
port-0 binding
- camel-jsch: ScpServerTestSupport uses SshServer.setPort(0) and reads the
actual port via sshd.getPort() after start
- camel-jsonpath: JsonPathPlatformHttpTest stores VertxPlatformHttpServer
as a field and reads the port via server.getPort() after start
- camel-vertx: VertxBaseTestSupport removes unused AvailablePortFinder
field and dead getPort() method
- camel-zookeeper-master: ZooKeeperGroupTest replaces
AvailablePortFinder.getNextRandomAvailable() with ServerSocket(0) to find a
free port atomically
---
.../org/apache/camel/component/scp/ScpServerTestSupport.java | 8 ++------
.../org/apache/camel/jsonpath/JsonPathPlatformHttpTest.java | 12 +++++-------
.../apache/camel/component/vertx/VertxBaseTestSupport.java | 9 ---------
.../zookeepermaster/group/internal/ZooKeeperGroupTest.java | 10 ++++++----
4 files changed, 13 insertions(+), 26 deletions(-)
diff --git
a/components/camel-jsch/src/test/java/org/apache/camel/component/scp/ScpServerTestSupport.java
b/components/camel-jsch/src/test/java/org/apache/camel/component/scp/ScpServerTestSupport.java
index f4ce3f33b57d..708847514f57 100644
---
a/components/camel-jsch/src/test/java/org/apache/camel/component/scp/ScpServerTestSupport.java
+++
b/components/camel-jsch/src/test/java/org/apache/camel/component/scp/ScpServerTestSupport.java
@@ -31,7 +31,6 @@ import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.UserInfo;
-import org.apache.camel.test.AvailablePortFinder;
import org.apache.camel.test.junit6.CamelTestSupport;
import org.apache.sshd.common.NamedFactory;
import org.apache.sshd.common.kex.KeyExchangeFactory;
@@ -44,7 +43,6 @@ import
org.apache.sshd.server.auth.password.PasswordAuthenticator;
import org.apache.sshd.server.auth.pubkey.PublickeyAuthenticator;
import org.apache.sshd.server.session.ServerSession;
import org.apache.sshd.sftp.server.SftpSubsystemFactory;
-import org.junit.jupiter.api.extension.RegisterExtension;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -55,8 +53,6 @@ public abstract class ScpServerTestSupport extends
CamelTestSupport {
protected static final Logger LOG =
LoggerFactory.getLogger(ScpServerTestSupport.class);
protected static final String SCP_ROOT_DIR = "target/test-classes/scp";
protected static final String KNOWN_HOSTS = "known_hosts";
- @RegisterExtension
- protected static AvailablePortFinder.Port port =
AvailablePortFinder.find();
protected Consumer<SshServer> serverConfigurer;
@@ -75,7 +71,7 @@ public abstract class ScpServerTestSupport extends
CamelTestSupport {
}
protected int getPort() {
- return port.getPort();
+ return sshd != null ? sshd.getPort() : 0;
}
protected SshServer getSshd() {
@@ -117,7 +113,7 @@ public abstract class ScpServerTestSupport extends
CamelTestSupport {
protected boolean startSshd() {
sshd = SshServer.setUpDefaultServer();
- sshd.setPort(getPort());
+ sshd.setPort(0);
sshd.setKeyPairProvider(new
FileKeyPairProvider(Paths.get("src/test/resources/hostkey.pem")));
sshd.setSubsystemFactories(Arrays.asList(new SftpSubsystemFactory()));
sshd.setCommandFactory(new ScpCommandFactory());
diff --git
a/components/camel-jsonpath/src/test/java/org/apache/camel/jsonpath/JsonPathPlatformHttpTest.java
b/components/camel-jsonpath/src/test/java/org/apache/camel/jsonpath/JsonPathPlatformHttpTest.java
index a83af808f7df..0aae87a4bb00 100644
---
a/components/camel-jsonpath/src/test/java/org/apache/camel/jsonpath/JsonPathPlatformHttpTest.java
+++
b/components/camel-jsonpath/src/test/java/org/apache/camel/jsonpath/JsonPathPlatformHttpTest.java
@@ -23,10 +23,8 @@ import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.platform.http.vertx.VertxPlatformHttpServer;
import
org.apache.camel.component.platform.http.vertx.VertxPlatformHttpServerConfiguration;
import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.test.AvailablePortFinder;
import org.apache.camel.test.junit6.CamelTestSupport;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.RegisterExtension;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -36,13 +34,12 @@ class JsonPathPlatformHttpTest extends CamelTestSupport {
public static final String JSON_PATH = "$.room[?(@.temperature > 20)]";
public static final String RESULT = "HOT";
- @RegisterExtension
- static AvailablePortFinder.Port PORT = AvailablePortFinder.find();
+ private VertxPlatformHttpServer server;
@Test
public void testWithPlatformHttp() {
String result = RestAssured.given()
- .port(PORT.getPort())
+ .port(server.getPort())
.contentType(ContentType.JSON)
.body(BODY)
.post("/getTemperature")
@@ -65,9 +62,10 @@ class JsonPathPlatformHttpTest extends CamelTestSupport {
CamelContext context = super.createCamelContext();
VertxPlatformHttpServerConfiguration conf = new
VertxPlatformHttpServerConfiguration();
- conf.setBindPort(PORT.getPort());
+ conf.setBindPort(0);
- context.addService(new VertxPlatformHttpServer(conf));
+ server = new VertxPlatformHttpServer(conf);
+ context.addService(server);
return context;
diff --git
a/components/camel-vertx/camel-vertx/src/test/java/org/apache/camel/component/vertx/VertxBaseTestSupport.java
b/components/camel-vertx/camel-vertx/src/test/java/org/apache/camel/component/vertx/VertxBaseTestSupport.java
index cdf648f1aa49..f6c66d2c23e2 100644
---
a/components/camel-vertx/camel-vertx/src/test/java/org/apache/camel/component/vertx/VertxBaseTestSupport.java
+++
b/components/camel-vertx/camel-vertx/src/test/java/org/apache/camel/component/vertx/VertxBaseTestSupport.java
@@ -16,21 +16,12 @@
*/
package org.apache.camel.component.vertx;
-import org.apache.camel.test.AvailablePortFinder;
import org.apache.camel.test.junit6.CamelTestSupport;
-import org.junit.jupiter.api.extension.RegisterExtension;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class VertxBaseTestSupport extends CamelTestSupport {
- @RegisterExtension
- static AvailablePortFinder.Port port = AvailablePortFinder.find();
-
protected final Logger log = LoggerFactory.getLogger(getClass());
- protected int getPort() {
- return port.getPort();
- }
-
}
diff --git
a/components/camel-zookeeper-master/src/test/java/org/apache/camel/component/zookeepermaster/group/internal/ZooKeeperGroupTest.java
b/components/camel-zookeeper-master/src/test/java/org/apache/camel/component/zookeepermaster/group/internal/ZooKeeperGroupTest.java
index 3dd745e8c3bc..120c78b62cea 100644
---
a/components/camel-zookeeper-master/src/test/java/org/apache/camel/component/zookeepermaster/group/internal/ZooKeeperGroupTest.java
+++
b/components/camel-zookeeper-master/src/test/java/org/apache/camel/component/zookeepermaster/group/internal/ZooKeeperGroupTest.java
@@ -18,13 +18,13 @@ package
org.apache.camel.component.zookeepermaster.group.internal;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.net.ServerSocket;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.camel.component.zookeepermaster.group.NodeState;
-import org.apache.camel.test.AvailablePortFinder;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.RetryOneTime;
@@ -44,12 +44,14 @@ public class ZooKeeperGroupTest {
private CuratorFramework curator;
private ZooKeeperGroup<NodeState> group;
- private int findFreePort() {
- return AvailablePortFinder.getNextRandomAvailable();
+ private int findFreePort() throws IOException {
+ try (ServerSocket socket = new ServerSocket(0)) {
+ return socket.getLocalPort();
+ }
}
@BeforeEach
- public void setUp() {
+ public void setUp() throws IOException {
int port = findFreePort();
curator = CuratorFrameworkFactory.builder()
.connectString("localhost:" + port)