This is an automated email from the ASF dual-hosted git repository. gnodet pushed a commit to branch CAMEL-23214-port-misc in repository https://gitbox.apache.org/repos/asf/camel.git
commit 4e0b81a7f504beab60b78849c74a02914b13d6f0 Author: Guillaume Nodet <[email protected]> AuthorDate: Fri Mar 20 05:23:24 2026 +0100 CAMEL-23214: Migrate AvailablePortFinder in miscellaneous component tests Co-Authored-By: Claude Opus 4.6 <[email protected]> --- .../docling/DoclingTempFileCleanupTest.java | 31 +++++++++------------- .../openai/integration/OpenAIEmbeddingsIT.java | 11 -------- .../websocket/WebsocketCamelRouterTestSupport.java | 6 +++-- ...bsocketCamelRouterWithInitParamTestSupport.java | 6 +++-- .../camel/component/avro/AvroTestSupport.java | 4 ++- .../component/clickup/ClickUpWebhookCallTest.java | 2 -- ...lickUpWebhookRegistrationAlreadyExistsTest.java | 2 +- .../clickup/ClickUpWebhookRegistrationTest.java | 2 +- .../component/clickup/util/ClickUpTestSupport.java | 10 +++---- .../integration/CouchbaseIntegrationTestBase.java | 4 +-- .../camel/component/elytron/BaseElytronTest.java | 7 ++--- .../file/remote/FromFtpClientSoTimeoutTest.java | 6 +++-- .../SftpSimpleConsumeThroughProxyIT.java | 9 ++++--- .../SftpSimpleProduceThroughProxyIT.java | 9 ++++--- .../apache/camel/component/hl7/HL7TestSupport.java | 12 +++------ .../http/HttpCustomComponentNameTest.java | 8 +++--- .../component/http/HttpProducerSessionTest.java | 7 ++--- ...psTwoComponentsSslContextParametersGetTest.java | 8 +++--- .../integration/WatsonxAiWebSocketStreamingIT.java | 20 +++++++------- .../camel/component/iec60870/ConnectionTest.java | 22 +++++++-------- ...tReplyTemporaryRefreshFailureOnStartupTest.java | 8 +++--- .../apache/camel/component/jmx/JMXRemoteTest.java | 6 ++--- .../jmx/JMXRobustRemoteConnectionTest.java | 2 -- .../camel/component/scp/ScpServerTestSupport.java | 12 +++------ .../camel/jsonpath/JsonPathPlatformHttpTest.java | 8 +++--- .../component/knative/http/KnativeHttpServer.java | 8 +++--- .../component/knative/http/KnativeHttpTest.java | 6 +++-- .../component/knative/http/KnativeHttpsServer.java | 8 +++--- .../camel/service/lra/AbstractLRATestSupport.java | 4 ++- .../LumberjackComponentGlobalSSLTest.java | 15 +++++------ .../lumberjack/LumberjackComponentSSLTest.java | 14 ++++------ .../lumberjack/LumberjackComponentTest.java | 14 ++++------ .../lumberjack/LumberjackDisconnectionTest.java | 14 ++++------ .../lumberjack/LumberjackMultiThreadIT.java | 8 +++--- .../component/milo/AbstractMiloServerTest.java | 4 ++- .../component/milo/server/ServerLocalTest.java | 6 ++++- .../apache/camel/component/mina/BaseMinaTest.java | 16 +++++------ .../camel/oaipmh/utils/MockOaipmhServer.java | 9 +++++-- .../olingo2/AbstractOlingo2AppAPITestSupport.java | 8 +++--- .../mqtt5/PahoMqtt5ReconnectAfterFailureIT.java | 16 ++++++----- .../paho/PahoReconnectAfterFailureIT.java | 12 +++++---- .../camel/component/pubnub/PubNubTestBase.java | 8 +++--- .../apache/camel/maven/HttpProxyMojoManualIT.java | 2 -- .../servlet/ServletCamelRouterTestSupport.java | 4 ++- .../camel/component/slack/SlackProducerTest.java | 9 ++++--- .../smpp/integration/SmppTRXProducerIT.java | 13 ++++----- ...mppTRXProducerSupervisingRouteControllerIT.java | 9 ++++--- .../org/apache/camel/component/snmp/TrapTest.java | 26 ++++++++++-------- .../AbstractSpringSecurityBearerTokenTest.java | 2 -- .../component/ssh/SshAlgorithmParametersTest.java | 30 ++++++++++++--------- .../component/ssh/SshComponentTestSupport.java | 4 ++- .../camel/component/ssh/SshIdleTimeoutTest.java | 10 ++++--- .../camel/component/stomp/StompBaseTest.java | 14 +++++----- .../component/webhook/WebhookBasePathTest.java | 2 +- .../component/webhook/WebhookHttpBindingTest.java | 2 +- .../component/webhook/WebhookMultiRouteTest.java | 2 +- .../camel/component/webhook/WebhookPathTest.java | 2 +- .../component/webhook/WebhookRegistrationTest.java | 2 +- .../camel/component/webhook/WebhookTestBase.java | 10 +++---- .../component/webhook/WebhookUriEncodingTest.java | 2 +- .../component/whatsapp/WhatsAppWebhookTest.java | 2 -- .../builder/endpoint/EndpointQueryParamTest.java | 8 +++--- .../apache/camel/builder/endpoint/RestDslTest.java | 4 +-- .../camel/dsl/jbang/it/RunCommandOnMqttITCase.java | 6 +++-- 64 files changed, 286 insertions(+), 271 deletions(-) diff --git a/components/camel-ai/camel-docling/src/test/java/org/apache/camel/component/docling/DoclingTempFileCleanupTest.java b/components/camel-ai/camel-docling/src/test/java/org/apache/camel/component/docling/DoclingTempFileCleanupTest.java index bf116ce7d74a..69c0178e19ff 100644 --- a/components/camel-ai/camel-docling/src/test/java/org/apache/camel/component/docling/DoclingTempFileCleanupTest.java +++ b/components/camel-ai/camel-docling/src/test/java/org/apache/camel/component/docling/DoclingTempFileCleanupTest.java @@ -35,15 +35,15 @@ import static org.junit.jupiter.api.Assertions.*; * processing completes. * * <p> - * Temp files are created inside per-exchange subdirectories under the system temp dir. The entire subdirectory is - * removed when the exchange finishes. + * Before the fix, temp files created for String content and byte[] bodies accumulated on disk indefinitely. After the + * fix, an {@code addOnCompletion} callback deletes them when the exchange finishes. */ class DoclingTempFileCleanupTest extends CamelTestSupport { @Test void tempFileFromStringContentIsCleanedUp() throws Exception { - // Snapshot docling temp directories before - List<Path> before = listDoclingTempDirs(); + // Snapshot temp files before + List<Path> before = listDoclingTempFiles(); // Send string content (not a path, not a URL) — this triggers temp file creation. // The docling CLI will fail (not installed), but the temp file cleanup @@ -54,18 +54,18 @@ class DoclingTempFileCleanupTest extends CamelTestSupport { // Expected — docling binary not available in test env } - // After exchange completes, temp directories should have been cleaned up - List<Path> after = listDoclingTempDirs(); + // After exchange completes, temp files should have been cleaned up + List<Path> after = listDoclingTempFiles(); List<Path> leaked = new ArrayList<>(after); leaked.removeAll(before); assertTrue(leaked.isEmpty(), - "Temp directories leaked after exchange completion: " + leaked); + "Temp files leaked after exchange completion: " + leaked); } @Test void tempFileFromByteArrayIsCleanedUp() throws Exception { - List<Path> before = listDoclingTempDirs(); + List<Path> before = listDoclingTempFiles(); try { template.requestBody("direct:convert", "Binary content for conversion".getBytes()); @@ -73,25 +73,20 @@ class DoclingTempFileCleanupTest extends CamelTestSupport { // Expected — docling binary not available in test env } - List<Path> after = listDoclingTempDirs(); + List<Path> after = listDoclingTempFiles(); List<Path> leaked = new ArrayList<>(after); leaked.removeAll(before); assertTrue(leaked.isEmpty(), - "Temp directories leaked after exchange completion: " + leaked); + "Temp files leaked after exchange completion: " + leaked); } - /** - * Lists docling temp directories (docling-UUID-*) in the system temp dir. - */ - private List<Path> listDoclingTempDirs() throws IOException { + private List<Path> listDoclingTempFiles() throws IOException { List<Path> result = new ArrayList<>(); Path tmpDir = Path.of(System.getProperty("java.io.tmpdir")); - try (DirectoryStream<Path> stream = Files.newDirectoryStream(tmpDir, "docling-*")) { + try (DirectoryStream<Path> stream = Files.newDirectoryStream(tmpDir, "docling-*.tmp")) { for (Path entry : stream) { - if (Files.isDirectory(entry)) { - result.add(entry); - } + result.add(entry); } } return result; diff --git a/components/camel-ai/camel-openai/src/test/java/org/apache/camel/component/openai/integration/OpenAIEmbeddingsIT.java b/components/camel-ai/camel-openai/src/test/java/org/apache/camel/component/openai/integration/OpenAIEmbeddingsIT.java index f67e04874639..45cf8ec8a28b 100644 --- a/components/camel-ai/camel-openai/src/test/java/org/apache/camel/component/openai/integration/OpenAIEmbeddingsIT.java +++ b/components/camel-ai/camel-openai/src/test/java/org/apache/camel/component/openai/integration/OpenAIEmbeddingsIT.java @@ -55,10 +55,6 @@ public class OpenAIEmbeddingsIT extends CamelTestSupport { if (apiKey == null || apiKey.isEmpty()) { apiKey = "dummy"; } - if (ObjectHelper.isEmpty(embeddingModel)) { - throw new IllegalStateException( - "Embedding model not available. Set the ollama.embedding.model system property or use a container with embedding support."); - } } @Override @@ -105,7 +101,6 @@ public class OpenAIEmbeddingsIT extends CamelTestSupport { Exchange result = template.request("direct:embedding", e -> e.getIn().setBody("Apache Camel is an integration framework")); - assertThat(result.getException()).as("Exchange should not have an exception").isNull(); mockResponse.assertIsSatisfied(); assertThat(result).isNotNull(); @@ -133,7 +128,6 @@ public class OpenAIEmbeddingsIT extends CamelTestSupport { Exchange result = template.request("direct:embeddingWithEncodingFormatFloat", e -> e.getIn().setBody("Apache Camel is an integration framework")); - assertThat(result.getException()).as("Exchange should not have an exception").isNull(); mockResponse.assertIsSatisfied(); assertThat(result).isNotNull(); @@ -163,7 +157,6 @@ public class OpenAIEmbeddingsIT extends CamelTestSupport { Exchange result = template.request("direct:embedding", e -> e.getIn().setBody(inputs)); - assertThat(result.getException()).as("Exchange should not have an exception").isNull(); mockResponse.assertIsSatisfied(); assertThat(result).isNotNull(); @@ -189,8 +182,6 @@ public class OpenAIEmbeddingsIT extends CamelTestSupport { Exchange result1 = template.request("direct:embedding", e -> e.getIn().setBody("Apache Camel is an integration framework")); - assertThat(result1.getException()).as("Exchange should not have an exception").isNull(); - @SuppressWarnings("unchecked") List<Float> embedding1 = (List<Float>) result1.getMessage().getBody(); assertThat(embedding1).isNotEmpty(); @@ -201,8 +192,6 @@ public class OpenAIEmbeddingsIT extends CamelTestSupport { e.getIn().setHeader(OpenAIConstants.REFERENCE_EMBEDDING, embedding1); }); - assertThat(result2.getException()).as("Exchange should not have an exception").isNull(); - @SuppressWarnings("unchecked") List<Float> embedding2 = (List<Float>) result2.getMessage().getBody(); assertThat(embedding2).isNotEmpty(); diff --git a/components/camel-atmosphere-websocket/src/test/java/org/apache/camel/component/atmosphere/websocket/WebsocketCamelRouterTestSupport.java b/components/camel-atmosphere-websocket/src/test/java/org/apache/camel/component/atmosphere/websocket/WebsocketCamelRouterTestSupport.java index ab94dca517f2..b29e5c159b3b 100644 --- a/components/camel-atmosphere-websocket/src/test/java/org/apache/camel/component/atmosphere/websocket/WebsocketCamelRouterTestSupport.java +++ b/components/camel-atmosphere-websocket/src/test/java/org/apache/camel/component/atmosphere/websocket/WebsocketCamelRouterTestSupport.java @@ -23,9 +23,11 @@ import org.apache.camel.test.infra.jetty.services.JettyEmbeddedService; import org.apache.camel.test.junit6.CamelTestSupport; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.extension.RegisterExtension; public abstract class WebsocketCamelRouterTestSupport extends CamelTestSupport { - protected static final int PORT = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + protected static AvailablePortFinder.Port PORT = AvailablePortFinder.find(); // This test needs to run with its own lifecycle management, so we cannot use extensions private JettyEmbeddedService service; @@ -34,7 +36,7 @@ public abstract class WebsocketCamelRouterTestSupport extends CamelTestSupport { void setupJetty() { final JettyConfiguration jettyConfiguration = JettyConfigurationBuilder .emptyTemplate() - .withPort(PORT) + .withPort(PORT.getPort()) .withContextPath(JettyConfiguration.ROOT_CONTEXT_PATH) .withWebSocketConfiguration() .addServletConfiguration(new JettyConfiguration.WebSocketContextHandlerConfiguration.ServletConfiguration<>( diff --git a/components/camel-atmosphere-websocket/src/test/java/org/apache/camel/component/atmosphere/websocket/WebsocketCamelRouterWithInitParamTestSupport.java b/components/camel-atmosphere-websocket/src/test/java/org/apache/camel/component/atmosphere/websocket/WebsocketCamelRouterWithInitParamTestSupport.java index 0e6670cbe0ce..a00a6c901e2b 100644 --- a/components/camel-atmosphere-websocket/src/test/java/org/apache/camel/component/atmosphere/websocket/WebsocketCamelRouterWithInitParamTestSupport.java +++ b/components/camel-atmosphere-websocket/src/test/java/org/apache/camel/component/atmosphere/websocket/WebsocketCamelRouterWithInitParamTestSupport.java @@ -23,9 +23,11 @@ import org.apache.camel.test.infra.jetty.services.JettyEmbeddedService; import org.apache.camel.test.junit6.CamelTestSupport; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.extension.RegisterExtension; public abstract class WebsocketCamelRouterWithInitParamTestSupport extends CamelTestSupport { - protected static final int PORT = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + protected static AvailablePortFinder.Port PORT = AvailablePortFinder.find(); // This test needs to run with its own lifecycle management, so we cannot use extensions protected JettyEmbeddedService service; @@ -42,7 +44,7 @@ public abstract class WebsocketCamelRouterWithInitParamTestSupport extends Camel final JettyConfiguration jettyConfiguration = JettyConfigurationBuilder .emptyTemplate() - .withPort(PORT) + .withPort(PORT.getPort()) .withContextPath(JettyConfiguration.ROOT_CONTEXT_PATH) .withWebSocketConfiguration().addServletConfiguration(servletConfiguration).build() .build(); diff --git a/components/camel-avro-rpc/camel-avro-rpc-component/src/test/java/org/apache/camel/component/avro/AvroTestSupport.java b/components/camel-avro-rpc/camel-avro-rpc-component/src/test/java/org/apache/camel/component/avro/AvroTestSupport.java index 89eb4e9698f7..69f80301ad12 100644 --- a/components/camel-avro-rpc/camel-avro-rpc-component/src/test/java/org/apache/camel/component/avro/AvroTestSupport.java +++ b/components/camel-avro-rpc/camel-avro-rpc-component/src/test/java/org/apache/camel/component/avro/AvroTestSupport.java @@ -26,7 +26,9 @@ public class AvroTestSupport extends CamelTestSupport { protected int avroPortReflection = setupFreePort("avroPortReflection"); public int setupFreePort(String name) { - port = AvailablePortFinder.getNextAvailable(); + try (AvailablePortFinder.Port p = AvailablePortFinder.find()) { + port = p.getPort(); + } System.setProperty(name, String.valueOf(port)); return port; } diff --git a/components/camel-clickup/src/test/java/org/apache/camel/component/clickup/ClickUpWebhookCallTest.java b/components/camel-clickup/src/test/java/org/apache/camel/component/clickup/ClickUpWebhookCallTest.java index 15bacaed2fcf..dfe74b37ee10 100644 --- a/components/camel-clickup/src/test/java/org/apache/camel/component/clickup/ClickUpWebhookCallTest.java +++ b/components/camel-clickup/src/test/java/org/apache/camel/component/clickup/ClickUpWebhookCallTest.java @@ -27,7 +27,6 @@ import org.apache.camel.component.clickup.util.ClickUpTestSupport; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.component.webhook.WebhookConfiguration; import org.apache.camel.component.webhook.WebhookEndpoint; -import org.apache.camel.test.AvailablePortFinder; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.slf4j.Logger; @@ -50,7 +49,6 @@ public class ClickUpWebhookCallTest extends ClickUpTestSupport { @BeforeAll public static void initPort() { - port = AvailablePortFinder.getNextAvailable(); } @Test diff --git a/components/camel-clickup/src/test/java/org/apache/camel/component/clickup/ClickUpWebhookRegistrationAlreadyExistsTest.java b/components/camel-clickup/src/test/java/org/apache/camel/component/clickup/ClickUpWebhookRegistrationAlreadyExistsTest.java index c1658407bff0..c198153205f4 100644 --- a/components/camel-clickup/src/test/java/org/apache/camel/component/clickup/ClickUpWebhookRegistrationAlreadyExistsTest.java +++ b/components/camel-clickup/src/test/java/org/apache/camel/component/clickup/ClickUpWebhookRegistrationAlreadyExistsTest.java @@ -138,7 +138,7 @@ public class ClickUpWebhookRegistrationAlreadyExistsTest extends ClickUpTestSupp @Override protected ClickUpMockRoutes createMockRoutes() { - ClickUpMockRoutes clickUpMockRoutes = new ClickUpMockRoutes(port); + ClickUpMockRoutes clickUpMockRoutes = new ClickUpMockRoutes(port.getPort()); clickUpMockRoutes.addEndpoint( "health", diff --git a/components/camel-clickup/src/test/java/org/apache/camel/component/clickup/ClickUpWebhookRegistrationTest.java b/components/camel-clickup/src/test/java/org/apache/camel/component/clickup/ClickUpWebhookRegistrationTest.java index fdc3f55bd436..f7d2ead33a0e 100644 --- a/components/camel-clickup/src/test/java/org/apache/camel/component/clickup/ClickUpWebhookRegistrationTest.java +++ b/components/camel-clickup/src/test/java/org/apache/camel/component/clickup/ClickUpWebhookRegistrationTest.java @@ -150,7 +150,7 @@ public class ClickUpWebhookRegistrationTest extends ClickUpTestSupport { @Override protected ClickUpMockRoutes createMockRoutes() { - ClickUpMockRoutes clickUpMockRoutes = new ClickUpMockRoutes(port); + ClickUpMockRoutes clickUpMockRoutes = new ClickUpMockRoutes(port.getPort()); clickUpMockRoutes.addEndpoint( "health", diff --git a/components/camel-clickup/src/test/java/org/apache/camel/component/clickup/util/ClickUpTestSupport.java b/components/camel-clickup/src/test/java/org/apache/camel/component/clickup/util/ClickUpTestSupport.java index c68c3bde21aa..cb92941f08fd 100644 --- a/components/camel-clickup/src/test/java/org/apache/camel/component/clickup/util/ClickUpTestSupport.java +++ b/components/camel-clickup/src/test/java/org/apache/camel/component/clickup/util/ClickUpTestSupport.java @@ -24,22 +24,18 @@ import org.apache.camel.CamelContext; import org.apache.camel.component.clickup.ClickUpComponent; import org.apache.camel.test.AvailablePortFinder; import org.apache.camel.test.junit6.CamelTestSupport; -import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.extension.RegisterExtension; /** * A support test class for ClickUp tests. */ public class ClickUpTestSupport extends CamelTestSupport { - protected static volatile int port; + @RegisterExtension + protected static AvailablePortFinder.Port port = AvailablePortFinder.find(); private ClickUpMockRoutes mockRoutes; - @BeforeAll - public static void initPort() { - port = AvailablePortFinder.getNextAvailable(); - } - /** * Retrieves a response from a JSON file on classpath. * diff --git a/components/camel-couchbase/src/test/java/org/apache/camel/component/couchbase/integration/CouchbaseIntegrationTestBase.java b/components/camel-couchbase/src/test/java/org/apache/camel/component/couchbase/integration/CouchbaseIntegrationTestBase.java index d95cea520078..ac1240e5df6e 100644 --- a/components/camel-couchbase/src/test/java/org/apache/camel/component/couchbase/integration/CouchbaseIntegrationTestBase.java +++ b/components/camel-couchbase/src/test/java/org/apache/camel/component/couchbase/integration/CouchbaseIntegrationTestBase.java @@ -23,7 +23,6 @@ import java.util.Collections; import com.couchbase.client.java.Cluster; import com.couchbase.client.java.manager.bucket.BucketSettings; import com.couchbase.client.java.manager.bucket.BucketType; -import com.couchbase.client.java.manager.bucket.StorageBackend; import com.couchbase.client.java.manager.view.DesignDocument; import com.couchbase.client.java.manager.view.View; import com.couchbase.client.java.view.DesignDocumentNamespace; @@ -49,8 +48,7 @@ public class CouchbaseIntegrationTestBase extends CamelTestSupport { cluster = Cluster.connect(service.getConnectionString(), service.getUsername(), service.getPassword()); cluster.buckets().createBucket( - BucketSettings.create(bucketName).bucketType(BucketType.COUCHBASE) - .storageBackend(StorageBackend.COUCHSTORE).flushEnabled(true)); + BucketSettings.create(bucketName).bucketType(BucketType.COUCHBASE).flushEnabled(true)); cluster.bucket(bucketName); DesignDocument designDoc = new DesignDocument( diff --git a/components/camel-elytron/src/test/java/org/apache/camel/component/elytron/BaseElytronTest.java b/components/camel-elytron/src/test/java/org/apache/camel/component/elytron/BaseElytronTest.java index 583c0b4e4f85..a0373ec0c7d8 100644 --- a/components/camel-elytron/src/test/java/org/apache/camel/component/elytron/BaseElytronTest.java +++ b/components/camel-elytron/src/test/java/org/apache/camel/component/elytron/BaseElytronTest.java @@ -33,6 +33,7 @@ import org.apache.camel.component.undertow.spi.UndertowSecurityProvider; import org.apache.camel.test.AvailablePortFinder; import org.apache.camel.test.junit6.CamelTestSupport; import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.extension.RegisterExtension; import org.wildfly.security.WildFlyElytronBaseProvider; import org.wildfly.security.auth.permission.LoginPermission; import org.wildfly.security.auth.realm.token.TokenSecurityRealm; @@ -46,7 +47,8 @@ import org.wildfly.security.permission.PermissionVerifier; */ public abstract class BaseElytronTest extends CamelTestSupport { - private static volatile int port; + @RegisterExtension + static AvailablePortFinder.Port port = AvailablePortFinder.find(); private static KeyPair keyPair; private final AtomicInteger counter = new AtomicInteger(1); @@ -59,7 +61,6 @@ public abstract class BaseElytronTest extends CamelTestSupport { @BeforeAll public static void initPort() throws Exception { - port = AvailablePortFinder.getNextAvailable(); keyPair = null; URL location = ElytronSecurityProvider.class.getProtectionDomain().getCodeSource().getLocation(); @@ -74,7 +75,7 @@ public abstract class BaseElytronTest extends CamelTestSupport { } protected static int getPort() { - return port; + return port.getPort(); } @BindToRegistry("prop") diff --git a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpClientSoTimeoutTest.java b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpClientSoTimeoutTest.java index 60143cdd1aa1..89660e324499 100644 --- a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpClientSoTimeoutTest.java +++ b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpClientSoTimeoutTest.java @@ -24,6 +24,7 @@ import org.apache.camel.test.AvailablePortFinder; import org.apache.camel.test.junit6.CamelTestSupport; import org.apache.commons.net.ftp.FTPFile; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -34,10 +35,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals; */ public class FromFtpClientSoTimeoutTest extends CamelTestSupport { - int port = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); private String getFtpUrl() { - return "ftp://admin@localhost:" + port + "/timeout/?soTimeout=5000"; + return "ftp://admin@localhost:" + port.getPort() + "/timeout/?soTimeout=5000"; } @Test diff --git a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleConsumeThroughProxyIT.java b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleConsumeThroughProxyIT.java index be31a5c86ec4..f3d0472ce423 100644 --- a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleConsumeThroughProxyIT.java +++ b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleConsumeThroughProxyIT.java @@ -27,6 +27,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.condition.EnabledIf; +import org.junit.jupiter.api.extension.RegisterExtension; import org.littleshoot.proxy.HttpProxyServer; import org.littleshoot.proxy.ProxyAuthenticator; import org.littleshoot.proxy.impl.DefaultHttpProxyServer; @@ -35,12 +36,14 @@ import org.littleshoot.proxy.impl.DefaultHttpProxyServer; @EnabledIf(value = "org.apache.camel.test.infra.ftp.services.embedded.SftpUtil#hasRequiredAlgorithms('src/test/resources/hostkey.pem')") public class SftpSimpleConsumeThroughProxyIT extends SftpServerTestSupport { private static HttpProxyServer proxyServer; - private final int proxyPort = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + + AvailablePortFinder.Port proxyPort = AvailablePortFinder.find(); @BeforeAll public void setupProxy() { proxyServer = DefaultHttpProxyServer.bootstrap() - .withPort(proxyPort) + .withPort(proxyPort.getPort()) .withProxyAuthenticator(new ProxyAuthenticator() { @Override public boolean authenticate(String userName, String password) { @@ -92,7 +95,7 @@ public class SftpSimpleConsumeThroughProxyIT extends SftpServerTestSupport { @BindToRegistry("proxy") public ProxyHTTP createProxy() { - final ProxyHTTP proxyHTTP = new ProxyHTTP("localhost", proxyPort); + final ProxyHTTP proxyHTTP = new ProxyHTTP("localhost", proxyPort.getPort()); proxyHTTP.setUserPasswd("user", "password"); return proxyHTTP; } diff --git a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleProduceThroughProxyIT.java b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleProduceThroughProxyIT.java index 9dccdfbf44f5..123a6e8c9612 100644 --- a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleProduceThroughProxyIT.java +++ b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/sftp/integration/SftpSimpleProduceThroughProxyIT.java @@ -26,6 +26,7 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIf; +import org.junit.jupiter.api.extension.RegisterExtension; import org.littleshoot.proxy.HttpProxyServer; import org.littleshoot.proxy.ProxyAuthenticator; import org.littleshoot.proxy.impl.DefaultHttpProxyServer; @@ -37,12 +38,14 @@ import static org.junit.jupiter.api.Assertions.assertTrue; public class SftpSimpleProduceThroughProxyIT extends SftpServerTestSupport { private static HttpProxyServer proxyServer; - private final int proxyPort = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + + AvailablePortFinder.Port proxyPort = AvailablePortFinder.find(); @BeforeEach public void setupProxy() { proxyServer = DefaultHttpProxyServer.bootstrap() - .withPort(proxyPort) + .withPort(proxyPort.getPort()) .withProxyAuthenticator(new ProxyAuthenticator() { @Override public boolean authenticate(String userName, String password) { @@ -104,7 +107,7 @@ public class SftpSimpleProduceThroughProxyIT extends SftpServerTestSupport { @BindToRegistry("proxy") public ProxyHTTP createProxy() { - final ProxyHTTP proxyHTTP = new ProxyHTTP("localhost", proxyPort); + final ProxyHTTP proxyHTTP = new ProxyHTTP("localhost", proxyPort.getPort()); proxyHTTP.setUserPasswd("user", "password"); return proxyHTTP; } diff --git a/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7TestSupport.java b/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7TestSupport.java index e4fcad2e7532..7d70fee609f0 100644 --- a/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7TestSupport.java +++ b/components/camel-hl7/src/test/java/org/apache/camel/component/hl7/HL7TestSupport.java @@ -18,19 +18,15 @@ package org.apache.camel.component.hl7; import org.apache.camel.test.AvailablePortFinder; import org.apache.camel.test.junit6.CamelTestSupport; -import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.extension.RegisterExtension; public abstract class HL7TestSupport extends CamelTestSupport { - private static int port; - - @BeforeAll - public static void initPort() { - port = AvailablePortFinder.getNextAvailable(); - } + @RegisterExtension + static AvailablePortFinder.Port port = AvailablePortFinder.find(); protected static int getPort() { - return port; + return port.getPort(); } } diff --git a/components/camel-http/src/test/java/org/apache/camel/component/http/HttpCustomComponentNameTest.java b/components/camel-http/src/test/java/org/apache/camel/component/http/HttpCustomComponentNameTest.java index 7e33555160b7..04589f2e6c9b 100644 --- a/components/camel-http/src/test/java/org/apache/camel/component/http/HttpCustomComponentNameTest.java +++ b/components/camel-http/src/test/java/org/apache/camel/component/http/HttpCustomComponentNameTest.java @@ -22,12 +22,16 @@ import org.apache.camel.support.service.ServiceHelper; 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; import static org.junit.jupiter.api.Assertions.assertNotNull; public class HttpCustomComponentNameTest extends CamelTestSupport { + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); + @Override public boolean isUseRouteBuilder() { return false; @@ -37,13 +41,11 @@ public class HttpCustomComponentNameTest extends CamelTestSupport { public void testCustomName() { context.start(); - int port = AvailablePortFinder.getNextAvailable(); - Component custom = new HttpComponent(); context.addComponent("http-foo", custom); ServiceHelper.startService(custom); - String uri = "http-foo://www.somewhere.com:" + port + "?q=Camel"; + String uri = "http-foo://www.somewhere.com:" + port.getPort() + "?q=Camel"; Endpoint endpoint = context.getEndpoint(uri); assertNotNull(endpoint); // the endpoint uri should use the custom component name as scheme diff --git a/components/camel-http/src/test/java/org/apache/camel/component/http/HttpProducerSessionTest.java b/components/camel-http/src/test/java/org/apache/camel/component/http/HttpProducerSessionTest.java index 024b3e97b73d..9953f0c3cfc5 100644 --- a/components/camel-http/src/test/java/org/apache/camel/component/http/HttpProducerSessionTest.java +++ b/components/camel-http/src/test/java/org/apache/camel/component/http/HttpProducerSessionTest.java @@ -33,11 +33,12 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; public class HttpProducerSessionTest extends CamelTestSupport { - private static final int PORT = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + static AvailablePortFinder.Port PORT = AvailablePortFinder.find(); private final JettyConfiguration jettyConfiguration = JettyConfigurationBuilder .emptyTemplate() - .withPort(PORT) + .withPort(PORT.getPort()) .withContextPath("/session") .withContextHandlerConfiguration() .withCustomizer(HttpProducerSessionTest::customizer) @@ -88,7 +89,7 @@ public class HttpProducerSessionTest extends CamelTestSupport { private String getTestServerEndpointSessionUrl() { // session handling will not work for localhost - return "http://localhost:" + PORT + "/session/"; + return "http://localhost:" + PORT.getPort() + "/session/"; } @Override diff --git a/components/camel-http/src/test/java/org/apache/camel/component/http/HttpsTwoComponentsSslContextParametersGetTest.java b/components/camel-http/src/test/java/org/apache/camel/component/http/HttpsTwoComponentsSslContextParametersGetTest.java index 29491d73556b..41e630c6abbe 100644 --- a/components/camel-http/src/test/java/org/apache/camel/component/http/HttpsTwoComponentsSslContextParametersGetTest.java +++ b/components/camel-http/src/test/java/org/apache/camel/component/http/HttpsTwoComponentsSslContextParametersGetTest.java @@ -29,12 +29,14 @@ import org.apache.hc.core5.http.impl.routing.RequestRouter; import org.apache.hc.core5.http.protocol.UriPatternType; import org.apache.hc.core5.net.URIAuthority; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; public class HttpsTwoComponentsSslContextParametersGetTest extends BaseHttpsTest { - private int port2; + @RegisterExtension + AvailablePortFinder.Port port2 = AvailablePortFinder.find(); private HttpServer localServer; @BindToRegistry("x509HostnameVerifier") @@ -88,14 +90,12 @@ public class HttpsTwoComponentsSslContextParametersGetTest extends BaseHttpsTest context.addRoutes(new RouteBuilder() { @Override public void configure() { - port2 = AvailablePortFinder.getNextAvailable(); - from("direct:foo") .to("https-foo://localhost:" + localServer.getLocalPort() + "/mail?x509HostnameVerifier=#x509HostnameVerifier&sslContextParameters=#sslContextParameters"); from("direct:bar") - .to("https-bar://localhost:" + port2 + .to("https-bar://localhost:" + port2.getPort() + "/mail?x509HostnameVerifier=#x509HostnameVerifier&sslContextParameters=#sslContextParameters2"); } }); diff --git a/components/camel-ibm/camel-ibm-watsonx-ai/src/test/java/org/apache/camel/component/ibm/watsonx/ai/integration/WatsonxAiWebSocketStreamingIT.java b/components/camel-ibm/camel-ibm-watsonx-ai/src/test/java/org/apache/camel/component/ibm/watsonx/ai/integration/WatsonxAiWebSocketStreamingIT.java index fa28ec52916d..dd6d6d8c62a7 100644 --- a/components/camel-ibm/camel-ibm-watsonx-ai/src/test/java/org/apache/camel/component/ibm/watsonx/ai/integration/WatsonxAiWebSocketStreamingIT.java +++ b/components/camel-ibm/camel-ibm-watsonx-ai/src/test/java/org/apache/camel/component/ibm/watsonx/ai/integration/WatsonxAiWebSocketStreamingIT.java @@ -35,6 +35,7 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfSystemProperties; import org.junit.jupiter.api.condition.EnabledIfSystemProperty; +import org.junit.jupiter.api.extension.RegisterExtension; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -66,7 +67,8 @@ public class WatsonxAiWebSocketStreamingIT extends WatsonxAiTestSupport { private static final String MODEL_ID = "ibm/granite-4-h-small"; - private final int port = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); private Vertx vertx; @AfterEach @@ -96,7 +98,7 @@ public class WatsonxAiWebSocketStreamingIT extends WatsonxAiTestSupport { context.addRoutes(new RouteBuilder() { @Override public void configure() { - fromF("vertx-websocket:localhost:%d/chat", port) + fromF("vertx-websocket:localhost:%d/chat", port.getPort()) .routeId("websocket-chat-stream") // Store connection key for sending responses back to this specific client .setProperty("connectionKey", header(VertxWebsocketConstants.CONNECTION_KEY)) @@ -107,7 +109,7 @@ public class WatsonxAiWebSocketStreamingIT extends WatsonxAiTestSupport { // Stream consumer that sends each token as a WebSocket message Consumer<String> streamHandler = chunk -> { producer.sendBodyAndHeader( - "vertx-websocket:localhost:" + port + "/chat", + "vertx-websocket:localhost:" + port.getPort() + "/chat", chunk, VertxWebsocketConstants.CONNECTION_KEY, connectionKey); }; @@ -124,7 +126,7 @@ public class WatsonxAiWebSocketStreamingIT extends WatsonxAiTestSupport { String connectionKey = exchange.getProperty("connectionKey", String.class); ProducerTemplate producer = exchange.getContext().createProducerTemplate(); producer.sendBodyAndHeader( - "vertx-websocket:localhost:" + port + "/chat", + "vertx-websocket:localhost:" + port.getPort() + "/chat", "[DONE]", VertxWebsocketConstants.CONNECTION_KEY, connectionKey); }); @@ -137,7 +139,7 @@ public class WatsonxAiWebSocketStreamingIT extends WatsonxAiTestSupport { List<String> receivedMessages = new CopyOnWriteArrayList<>(); CountDownLatch doneLatch = new CountDownLatch(1); - WebSocket webSocket = openWebSocketConnection("localhost", port, "/chat", message -> { + WebSocket webSocket = openWebSocketConnection("localhost", port.getPort(), "/chat", message -> { LOG.info("Received WebSocket message: {}", message); receivedMessages.add(message); if ("[DONE]".equals(message)) { @@ -170,7 +172,7 @@ public class WatsonxAiWebSocketStreamingIT extends WatsonxAiTestSupport { context.addRoutes(new RouteBuilder() { @Override public void configure() { - fromF("vertx-websocket:localhost:%d/explain", port) + fromF("vertx-websocket:localhost:%d/explain", port.getPort()) .routeId("websocket-explain-stream") .setProperty("connectionKey", header(VertxWebsocketConstants.CONNECTION_KEY)) .process(exchange -> { @@ -179,7 +181,7 @@ public class WatsonxAiWebSocketStreamingIT extends WatsonxAiTestSupport { Consumer<String> streamHandler = chunk -> { producer.sendBodyAndHeader( - "vertx-websocket:localhost:" + port + "/explain", + "vertx-websocket:localhost:" + port.getPort() + "/explain", chunk, VertxWebsocketConstants.CONNECTION_KEY, connectionKey); }; @@ -193,7 +195,7 @@ public class WatsonxAiWebSocketStreamingIT extends WatsonxAiTestSupport { String connectionKey = exchange.getProperty("connectionKey", String.class); ProducerTemplate producer = exchange.getContext().createProducerTemplate(); producer.sendBodyAndHeader( - "vertx-websocket:localhost:" + port + "/explain", + "vertx-websocket:localhost:" + port.getPort() + "/explain", "[DONE]", VertxWebsocketConstants.CONNECTION_KEY, connectionKey); }); @@ -205,7 +207,7 @@ public class WatsonxAiWebSocketStreamingIT extends WatsonxAiTestSupport { List<String> receivedMessages = new CopyOnWriteArrayList<>(); CountDownLatch doneLatch = new CountDownLatch(1); - WebSocket webSocket = openWebSocketConnection("localhost", port, "/explain", message -> { + WebSocket webSocket = openWebSocketConnection("localhost", port.getPort(), "/explain", message -> { LOG.info("Received: {}", message); receivedMessages.add(message); if ("[DONE]".equals(message)) { diff --git a/components/camel-iec60870/src/test/java/org/apache/camel/component/iec60870/ConnectionTest.java b/components/camel-iec60870/src/test/java/org/apache/camel/component/iec60870/ConnectionTest.java index af4ba0db6227..7423031345ea 100644 --- a/components/camel-iec60870/src/test/java/org/apache/camel/component/iec60870/ConnectionTest.java +++ b/components/camel-iec60870/src/test/java/org/apache/camel/component/iec60870/ConnectionTest.java @@ -33,6 +33,7 @@ import org.eclipse.neoscada.protocol.iec60870.asdu.types.Value; import org.eclipse.neoscada.protocol.iec60870.client.AutoConnectClient.State; import org.eclipse.neoscada.protocol.iec60870.server.data.model.WriteModel.Request; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -85,33 +86,32 @@ public class ConnectionTest extends CamelTestSupport { @EndpointInject(MOCK_SERVER_1) protected MockEndpoint testServer1Endpoint; - private int testPort; + @RegisterExtension + AvailablePortFinder.Port testPort = AvailablePortFinder.find(); @Override protected RoutesBuilder createRouteBuilder() { - testPort = AvailablePortFinder.getNextAvailable(); - return new RouteBuilder() { @Override public void configure() { - from(DIRECT_SEND_S_1).toF("iec60870-server:localhost:%s/00-00-00-00-01", testPort); - fromF("iec60870-client:localhost:%s/00-00-00-00-01", testPort).to(MOCK_CLIENT_1); - fromF("iec60870-client:localhost:%s/00-00-00-00-02", testPort).to(MOCK_CLIENT_2); + from(DIRECT_SEND_S_1).toF("iec60870-server:localhost:%s/00-00-00-00-01", testPort.getPort()); + fromF("iec60870-client:localhost:%s/00-00-00-00-01", testPort.getPort()).to(MOCK_CLIENT_1); + fromF("iec60870-client:localhost:%s/00-00-00-00-02", testPort.getPort()).to(MOCK_CLIENT_2); - from(DIRECT_SEND_C_1).toF("iec60870-client:localhost:%s/00-00-00-01-01", testPort); - fromF("iec60870-server:localhost:%s/00-00-00-01-01", testPort).to(MOCK_SERVER_1); + from(DIRECT_SEND_C_1).toF("iec60870-client:localhost:%s/00-00-00-01-01", testPort.getPort()); + fromF("iec60870-server:localhost:%s/00-00-00-01-01", testPort.getPort()).to(MOCK_SERVER_1); // Route for interrogation command - from(DIRECT_INTERROGATION).toF("iec60870-client:localhost:%s/00-00-00-00-01", testPort); + from(DIRECT_INTERROGATION).toF("iec60870-client:localhost:%s/00-00-00-00-01", testPort.getPort()); // Route for read command - from(DIRECT_READ).toF("iec60870-client:localhost:%s/00-00-00-00-01", testPort); + from(DIRECT_READ).toF("iec60870-client:localhost:%s/00-00-00-00-01", testPort.getPort()); // Route for status command - gets connection state without sending protocol commands from(DIRECT_STATUS) .setHeader(Constants.IEC60870_COMMAND_TYPE, constant(Constants.COMMAND_TYPE_STATUS)) - .toF("iec60870-client:localhost:%s/00-00-00-00-01", testPort); + .toF("iec60870-client:localhost:%s/00-00-00-00-01", testPort.getPort()); } }; } diff --git a/components/camel-jms/src/test/java/org/apache/camel/component/jms/temp/JmsRequestReplyTemporaryRefreshFailureOnStartupTest.java b/components/camel-jms/src/test/java/org/apache/camel/component/jms/temp/JmsRequestReplyTemporaryRefreshFailureOnStartupTest.java index 70c3bd840c7c..0ba19e7e4bbc 100644 --- a/components/camel-jms/src/test/java/org/apache/camel/component/jms/temp/JmsRequestReplyTemporaryRefreshFailureOnStartupTest.java +++ b/components/camel-jms/src/test/java/org/apache/camel/component/jms/temp/JmsRequestReplyTemporaryRefreshFailureOnStartupTest.java @@ -38,6 +38,7 @@ import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Tags; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.extension.RegisterExtension; import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge; @@ -45,8 +46,9 @@ import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknow @Tags({ @Tag("exclusive") }) public final class JmsRequestReplyTemporaryRefreshFailureOnStartupTest extends CamelTestSupport { - private static final int PORT = AvailablePortFinder.getNextAvailable(); - public static ArtemisService service = new ArtemisVMService.ReusableArtemisVMService(PORT); + @RegisterExtension + static AvailablePortFinder.Port PORT = AvailablePortFinder.find(); + public static ArtemisService service = new ArtemisVMService.ReusableArtemisVMService(PORT.getPort()); private final Long recoveryInterval = 1000L; @@ -69,7 +71,7 @@ public final class JmsRequestReplyTemporaryRefreshFailureOnStartupTest extends C } private static void createBroker() { - service = new ArtemisVMService.ReusableArtemisVMService(PORT); + service = new ArtemisVMService.ReusableArtemisVMService(PORT.getPort()); service.initialize(); } diff --git a/components/camel-jmx/src/test/java/org/apache/camel/component/jmx/JMXRemoteTest.java b/components/camel-jmx/src/test/java/org/apache/camel/component/jmx/JMXRemoteTest.java index 73586b06423b..8c11cff8b83f 100644 --- a/components/camel-jmx/src/test/java/org/apache/camel/component/jmx/JMXRemoteTest.java +++ b/components/camel-jmx/src/test/java/org/apache/camel/component/jmx/JMXRemoteTest.java @@ -51,10 +51,10 @@ public class JMXRemoteTest extends SimpleBeanFixture { @Override protected void initServer() throws Exception { - int port = AvailablePortFinder.getNextAvailable(); - registry = LocateRegistry.createRegistry(port); + AvailablePortFinder.Port port = AvailablePortFinder.find(); + registry = LocateRegistry.createRegistry(port.getPort()); - url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:" + port + "/" + DOMAIN); + url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:" + port.getPort() + "/" + DOMAIN); // create MBean server server = MBeanServerFactory.createMBeanServer(DOMAIN); // create JMXConnectorServer MBean diff --git a/components/camel-jmx/src/test/java/org/apache/camel/component/jmx/JMXRobustRemoteConnectionTest.java b/components/camel-jmx/src/test/java/org/apache/camel/component/jmx/JMXRobustRemoteConnectionTest.java index 860121a530ee..7d20972c0457 100644 --- a/components/camel-jmx/src/test/java/org/apache/camel/component/jmx/JMXRobustRemoteConnectionTest.java +++ b/components/camel-jmx/src/test/java/org/apache/camel/component/jmx/JMXRobustRemoteConnectionTest.java @@ -26,7 +26,6 @@ import javax.management.remote.JMXConnectorServer; import javax.management.remote.JMXConnectorServerFactory; import javax.management.remote.JMXServiceURL; -import org.apache.camel.test.AvailablePortFinder; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -54,7 +53,6 @@ public class JMXRobustRemoteConnectionTest extends SimpleBeanFixture { @BeforeEach @Override public void setUp() throws Exception { - port = AvailablePortFinder.getNextAvailable(); url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:" + port + "/" + DOMAIN); initContext(); 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 42f4d1b58c6b..2e534a4e9b79 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 @@ -44,8 +44,8 @@ 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.BeforeAll; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.extension.RegisterExtension; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -56,7 +56,8 @@ 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"; - protected static int port; + @RegisterExtension + protected static AvailablePortFinder.Port port = AvailablePortFinder.find(); protected Consumer<SshServer> serverConfigurer; @@ -75,18 +76,13 @@ public abstract class ScpServerTestSupport extends CamelTestSupport { } protected int getPort() { - return port; + return port.getPort(); } protected SshServer getSshd() { return sshd; } - @BeforeAll - public static void initPort() { - port = AvailablePortFinder.getNextAvailable(); - } - @Override @BeforeEach public void doPreSetup() throws Exception { 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 ee81bec58900..a83af808f7df 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 @@ -26,6 +26,7 @@ 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; @@ -35,12 +36,13 @@ class JsonPathPlatformHttpTest extends CamelTestSupport { public static final String JSON_PATH = "$.room[?(@.temperature > 20)]"; public static final String RESULT = "HOT"; - private static final int PORT = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + static AvailablePortFinder.Port PORT = AvailablePortFinder.find(); @Test public void testWithPlatformHttp() { String result = RestAssured.given() - .port(PORT) + .port(PORT.getPort()) .contentType(ContentType.JSON) .body(BODY) .post("/getTemperature") @@ -63,7 +65,7 @@ class JsonPathPlatformHttpTest extends CamelTestSupport { CamelContext context = super.createCamelContext(); VertxPlatformHttpServerConfiguration conf = new VertxPlatformHttpServerConfiguration(); - conf.setBindPort(PORT); + conf.setBindPort(PORT.getPort()); context.addService(new VertxPlatformHttpServer(conf)); diff --git a/components/camel-knative/camel-knative-http/src/test/java/org/apache/camel/component/knative/http/KnativeHttpServer.java b/components/camel-knative/camel-knative-http/src/test/java/org/apache/camel/component/knative/http/KnativeHttpServer.java index 66d71b124b72..37ffb6d903f5 100644 --- a/components/camel-knative/camel-knative-http/src/test/java/org/apache/camel/component/knative/http/KnativeHttpServer.java +++ b/components/camel-knative/camel-knative-http/src/test/java/org/apache/camel/component/knative/http/KnativeHttpServer.java @@ -56,7 +56,7 @@ public class KnativeHttpServer extends ServiceSupport { private HttpServer server; public KnativeHttpServer(CamelContext context) { - this(context, "localhost", AvailablePortFinder.getNextAvailable(), "/", null); + this(context, "localhost", AvailablePortFinder.find().getPort(), "/", null); } public KnativeHttpServer(CamelContext context, int port) { @@ -68,7 +68,7 @@ public class KnativeHttpServer extends ServiceSupport { } public KnativeHttpServer(CamelContext context, Handler<RoutingContext> handler) { - this(context, "localhost", AvailablePortFinder.getNextAvailable(), "/", handler); + this(context, "localhost", AvailablePortFinder.find().getPort(), "/", handler); } public KnativeHttpServer(CamelContext context, String host, int port, String path) { @@ -76,11 +76,11 @@ public class KnativeHttpServer extends ServiceSupport { } public KnativeHttpServer(CamelContext context, String host, String path) { - this(context, host, AvailablePortFinder.getNextAvailable(), path, null); + this(context, host, AvailablePortFinder.find().getPort(), path, null); } public KnativeHttpServer(CamelContext context, String host, String path, Handler<RoutingContext> handler) { - this(context, host, AvailablePortFinder.getNextAvailable(), path, handler); + this(context, host, AvailablePortFinder.find().getPort(), path, handler); } public KnativeHttpServer(CamelContext context, String host, int port, String path, Handler<RoutingContext> handler) { diff --git a/components/camel-knative/camel-knative-http/src/test/java/org/apache/camel/component/knative/http/KnativeHttpTest.java b/components/camel-knative/camel-knative-http/src/test/java/org/apache/camel/component/knative/http/KnativeHttpTest.java index 103845a526c4..6cdd820881d2 100644 --- a/components/camel-knative/camel-knative-http/src/test/java/org/apache/camel/component/knative/http/KnativeHttpTest.java +++ b/components/camel-knative/camel-knative-http/src/test/java/org/apache/camel/component/knative/http/KnativeHttpTest.java @@ -53,6 +53,7 @@ import org.assertj.core.api.Assertions; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.extension.RegisterExtension; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.EnumSource; @@ -72,6 +73,8 @@ public class KnativeHttpTest { private CamelContext context; private ProducerTemplate template; + @RegisterExtension + AvailablePortFinder.Port platformHttpPortExt = AvailablePortFinder.find(); private int platformHttpPort; private String platformHttpHost; @@ -91,7 +94,7 @@ public class KnativeHttpTest { this.context = new DefaultCamelContext(); this.template = this.context.createProducerTemplate(); this.platformHttpHost = "localhost"; - this.platformHttpPort = AvailablePortFinder.getNextAvailable(); + this.platformHttpPort = platformHttpPortExt.getPort(); configurePlatformHttpComponent(context, this.platformHttpPort); @@ -1356,7 +1359,6 @@ public class KnativeHttpTest { @ParameterizedTest @EnumSource(CloudEvents.class) void testHeaders(CloudEvent ce) throws Exception { - final int port = AvailablePortFinder.getNextAvailable(); final KnativeHttpServer server = new KnativeHttpServer(context); configureKnativeComponent( diff --git a/components/camel-knative/camel-knative-http/src/test/java/org/apache/camel/component/knative/http/KnativeHttpsServer.java b/components/camel-knative/camel-knative-http/src/test/java/org/apache/camel/component/knative/http/KnativeHttpsServer.java index 6a56aed70db0..5291cc07c0b4 100644 --- a/components/camel-knative/camel-knative-http/src/test/java/org/apache/camel/component/knative/http/KnativeHttpsServer.java +++ b/components/camel-knative/camel-knative-http/src/test/java/org/apache/camel/component/knative/http/KnativeHttpsServer.java @@ -27,7 +27,7 @@ import org.apache.camel.test.AvailablePortFinder; public class KnativeHttpsServer extends KnativeHttpServer { public KnativeHttpsServer(CamelContext context) { - super(context, "localhost", AvailablePortFinder.getNextAvailable(), "/", null); + super(context, "localhost", AvailablePortFinder.find().getPort(), "/", null); } public KnativeHttpsServer(CamelContext context, int port) { @@ -39,7 +39,7 @@ public class KnativeHttpsServer extends KnativeHttpServer { } public KnativeHttpsServer(CamelContext context, Handler<RoutingContext> handler) { - super(context, "localhost", AvailablePortFinder.getNextAvailable(), "/", handler); + super(context, "localhost", AvailablePortFinder.find().getPort(), "/", handler); } public KnativeHttpsServer(CamelContext context, String host, int port, String path) { @@ -47,11 +47,11 @@ public class KnativeHttpsServer extends KnativeHttpServer { } public KnativeHttpsServer(CamelContext context, String host, String path) { - super(context, host, AvailablePortFinder.getNextAvailable(), path, null); + super(context, host, AvailablePortFinder.find().getPort(), path, null); } public KnativeHttpsServer(CamelContext context, String host, String path, Handler<RoutingContext> handler) { - super(context, host, AvailablePortFinder.getNextAvailable(), path, handler); + super(context, host, AvailablePortFinder.find().getPort(), path, handler); } @Override diff --git a/components/camel-lra/src/test/java/org/apache/camel/service/lra/AbstractLRATestSupport.java b/components/camel-lra/src/test/java/org/apache/camel/service/lra/AbstractLRATestSupport.java index 7f9c352f31b9..f5030cf5eabe 100644 --- a/components/camel-lra/src/test/java/org/apache/camel/service/lra/AbstractLRATestSupport.java +++ b/components/camel-lra/src/test/java/org/apache/camel/service/lra/AbstractLRATestSupport.java @@ -107,7 +107,9 @@ public abstract class AbstractLRATestSupport extends CamelTestSupport { protected int getServerPort() { if (serverPort == null) { - serverPort = AvailablePortFinder.getNextAvailable(); + try (AvailablePortFinder.Port p = AvailablePortFinder.find()) { + serverPort = p.getPort(); + } } return serverPort; } diff --git a/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackComponentGlobalSSLTest.java b/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackComponentGlobalSSLTest.java index 21a2546cf839..a6d9cd318b05 100644 --- a/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackComponentGlobalSSLTest.java +++ b/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackComponentGlobalSSLTest.java @@ -29,20 +29,16 @@ import org.apache.camel.support.jsse.SSLContextParameters; import org.apache.camel.support.jsse.TrustManagersParameters; import org.apache.camel.test.AvailablePortFinder; import org.apache.camel.test.junit6.CamelTestSupport; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import org.junit.jupiter.api.parallel.Isolated; import static org.junit.jupiter.api.Assertions.assertEquals; @Isolated public class LumberjackComponentGlobalSSLTest extends CamelTestSupport { - private static int port; - - @BeforeAll - public static void beforeClass() { - port = AvailablePortFinder.getNextAvailable(); - } + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); @Override protected CamelContext createCamelContext() throws Exception { @@ -59,7 +55,7 @@ public class LumberjackComponentGlobalSSLTest extends CamelTestSupport { public void configure() { // Lumberjack configured with SSL - from("lumberjack:0.0.0.0:" + port).to("mock:output"); + from("lumberjack:0.0.0.0:" + port.getPort()).to("mock:output"); } }; } @@ -75,7 +71,8 @@ public class LumberjackComponentGlobalSSLTest extends CamelTestSupport { List<Integer> windows = Arrays.asList(15, 10, 15, 10, 10); // When sending messages - List<Integer> responses = LumberjackUtil.sendMessages(port, createClientSSLContextParameters(context), windows); + List<Integer> responses + = LumberjackUtil.sendMessages(port.getPort(), createClientSSLContextParameters(context), windows); // Then we should have the messages we're expecting mock.assertIsSatisfied(); diff --git a/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackComponentSSLTest.java b/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackComponentSSLTest.java index 9fe5d7dd763d..39a982409851 100644 --- a/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackComponentSSLTest.java +++ b/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackComponentSSLTest.java @@ -29,20 +29,16 @@ import org.apache.camel.support.jsse.SSLContextParameters; import org.apache.camel.support.jsse.TrustManagersParameters; import org.apache.camel.test.AvailablePortFinder; import org.apache.camel.test.junit6.CamelTestSupport; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import org.junit.jupiter.api.parallel.Isolated; import static org.junit.jupiter.api.Assertions.assertEquals; @Isolated public class LumberjackComponentSSLTest extends CamelTestSupport { - private static int port; - - @BeforeAll - public static void beforeClass() { - port = AvailablePortFinder.getNextAvailable(); - } + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); @Override protected RouteBuilder createRouteBuilder() { @@ -52,7 +48,7 @@ public class LumberjackComponentSSLTest extends CamelTestSupport { return new RouteBuilder() { public void configure() { // Lumberjack configured with SSL - from("lumberjack:0.0.0.0:" + port + "?sslContextParameters=#ssl").to("mock:output"); + from("lumberjack:0.0.0.0:" + port.getPort() + "?sslContextParameters=#ssl").to("mock:output"); } }; } @@ -66,7 +62,7 @@ public class LumberjackComponentSSLTest extends CamelTestSupport { List<Integer> windows = Arrays.asList(15, 10, 15, 10, 10); // When sending messages - List<Integer> responses = LumberjackUtil.sendMessages(port, createClientSSLContextParameters(), windows); + List<Integer> responses = LumberjackUtil.sendMessages(port.getPort(), createClientSSLContextParameters(), windows); // Then we should have the messages we're expecting mock.assertIsSatisfied(); diff --git a/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackComponentTest.java b/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackComponentTest.java index 45220b93ce99..f80a625d69d2 100644 --- a/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackComponentTest.java +++ b/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackComponentTest.java @@ -24,10 +24,10 @@ import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.AvailablePortFinder; import org.apache.camel.test.junit6.CamelTestSupport; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.DisabledOnOs; import org.junit.jupiter.api.condition.OS; +import org.junit.jupiter.api.extension.RegisterExtension; import org.junit.jupiter.api.parallel.Isolated; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -37,19 +37,15 @@ import static org.junit.jupiter.api.Assertions.assertEquals; disabledReason = "This test does not run reliably multiple platforms (see CAMEL-21438)") @Isolated public class LumberjackComponentTest extends CamelTestSupport { - private static int port; - - @BeforeAll - public static void beforeClass() { - port = AvailablePortFinder.getNextAvailable(); - } + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); @Override protected RouteBuilder createRouteBuilder() { return new RouteBuilder() { public void configure() { // Lumberjack configured with a specific port - from("lumberjack:0.0.0.0:" + port).to("mock:output"); + from("lumberjack:0.0.0.0:" + port.getPort()).to("mock:output"); } }; } @@ -64,7 +60,7 @@ public class LumberjackComponentTest extends CamelTestSupport { List<Integer> windows = Arrays.asList(15, 10, 15, 10, 10); // When sending messages - List<Integer> responses = LumberjackUtil.sendMessages(port, null, windows); + List<Integer> responses = LumberjackUtil.sendMessages(port.getPort(), null, windows); // Then we should have the messages we're expecting mock.assertIsSatisfied(); diff --git a/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackDisconnectionTest.java b/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackDisconnectionTest.java index e8b58b79eb2e..2a4ad96553ef 100644 --- a/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackDisconnectionTest.java +++ b/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackDisconnectionTest.java @@ -27,27 +27,23 @@ import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.AvailablePortFinder; import org.apache.camel.test.junit6.CamelTestSupport; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import org.junit.jupiter.api.parallel.Isolated; import static org.apache.camel.test.junit6.TestSupport.assertCollectionSize; @Isolated public class LumberjackDisconnectionTest extends CamelTestSupport { - private static int port; - - @BeforeAll - public static void beforeClass() { - port = AvailablePortFinder.getNextAvailable(); - } + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); @Override protected RouteBuilder createRouteBuilder() { return new RouteBuilder() { public void configure() { // Lumberjack configured with something that throws an exception - from("lumberjack:0.0.0.0:" + port).process(new ErrorProcessor()).to("mock:output"); + from("lumberjack:0.0.0.0:" + port.getPort()).process(new ErrorProcessor()).to("mock:output"); } }; } @@ -63,7 +59,7 @@ public class LumberjackDisconnectionTest extends CamelTestSupport { List<Integer> windows = Arrays.asList(15, 10); // When sending messages - List<Integer> responses = LumberjackUtil.sendMessages(port, null, windows, false); + List<Integer> responses = LumberjackUtil.sendMessages(port.getPort(), null, windows, false); // Then we should have the messages we're expecting mock.assertIsSatisfied(); diff --git a/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackMultiThreadIT.java b/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackMultiThreadIT.java index 9fccdfd57db4..300ccf46d17a 100644 --- a/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackMultiThreadIT.java +++ b/components/camel-lumberjack/src/test/java/org/apache/camel/component/lumberjack/LumberjackMultiThreadIT.java @@ -33,6 +33,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.DisabledOnOs; import org.junit.jupiter.api.condition.OS; +import org.junit.jupiter.api.extension.RegisterExtension; import org.junit.jupiter.api.parallel.Isolated; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -44,7 +45,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue; @Isolated public class LumberjackMultiThreadIT extends CamelTestSupport { - private static final int PORT = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); private static final int CONCURRENCY_LEVEL = Math.min(Runtime.getRuntime().availableProcessors(), 4); private CountDownLatch latch = new CountDownLatch(CONCURRENCY_LEVEL); private volatile boolean interrupted; @@ -57,7 +59,7 @@ public class LumberjackMultiThreadIT extends CamelTestSupport { return new RouteBuilder() { public void configure() { // Lumberjack configured with a specific port - from("lumberjack:0.0.0.0:" + PORT).to("mock:output"); + from("lumberjack:0.0.0.0:" + port.getPort()).to("mock:output"); } }; } @@ -104,7 +106,7 @@ public class LumberjackMultiThreadIT extends CamelTestSupport { @Override public void run() { try { - this.responses = LumberjackUtil.sendMessages(PORT, null, Arrays.asList(15, 10)); + this.responses = LumberjackUtil.sendMessages(port.getPort(), null, Arrays.asList(15, 10)); latch.countDown(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); diff --git a/components/camel-milo/src/test/java/org/apache/camel/component/milo/AbstractMiloServerTest.java b/components/camel-milo/src/test/java/org/apache/camel/component/milo/AbstractMiloServerTest.java index 753c3521d994..119df3efc6fb 100644 --- a/components/camel-milo/src/test/java/org/apache/camel/component/milo/AbstractMiloServerTest.java +++ b/components/camel-milo/src/test/java/org/apache/camel/component/milo/AbstractMiloServerTest.java @@ -47,7 +47,9 @@ public abstract class AbstractMiloServerTest extends CamelTestSupport { @Override protected void doPreSetup() throws Exception { - this.serverPort = AvailablePortFinder.getNextAvailable(); + try (AvailablePortFinder.Port port = AvailablePortFinder.find()) { + this.serverPort = port.getPort(); + } } public int getServerPort() { diff --git a/components/camel-milo/src/test/java/org/apache/camel/component/milo/server/ServerLocalTest.java b/components/camel-milo/src/test/java/org/apache/camel/component/milo/server/ServerLocalTest.java index 3651bc02ec7d..c84603e5ed3c 100644 --- a/components/camel-milo/src/test/java/org/apache/camel/component/milo/server/ServerLocalTest.java +++ b/components/camel-milo/src/test/java/org/apache/camel/component/milo/server/ServerLocalTest.java @@ -29,6 +29,7 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInfo; +import org.junit.jupiter.api.extension.RegisterExtension; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -43,6 +44,9 @@ public class ServerLocalTest extends CamelTestSupport { private static final Logger LOG = LoggerFactory.getLogger(ConverterTest.class); + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); + @EndpointInject(MOCK_TEST) protected MockEndpoint testEndpoint; @@ -53,7 +57,7 @@ public class ServerLocalTest extends CamelTestSupport { LOG.info(displayName); LOG.info("********************************************************************************"); final MiloServerComponent component = context().getComponent("milo-server", MiloServerComponent.class); - component.setPort(AvailablePortFinder.getNextAvailable()); + component.setPort(port.getPort()); } @Override diff --git a/components/camel-mina/src/test/java/org/apache/camel/component/mina/BaseMinaTest.java b/components/camel-mina/src/test/java/org/apache/camel/component/mina/BaseMinaTest.java index 5434e2fbcad5..8a7244003d10 100644 --- a/components/camel-mina/src/test/java/org/apache/camel/component/mina/BaseMinaTest.java +++ b/components/camel-mina/src/test/java/org/apache/camel/component/mina/BaseMinaTest.java @@ -28,25 +28,23 @@ import org.apache.camel.support.jsse.SecureSocketProtocolsParameters; import org.apache.camel.support.jsse.TrustManagersParameters; import org.apache.camel.test.AvailablePortFinder; import org.apache.camel.test.junit6.CamelTestSupport; -import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.extension.RegisterExtension; public abstract class BaseMinaTest extends CamelTestSupport { protected static final String KEY_STORE_PASSWORD = "changeit"; - private static volatile int port; - - @BeforeAll - public static void initPort() { - port = AvailablePortFinder.getNextAvailable(); - } + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); protected int getNextPort() { - return AvailablePortFinder.getNextAvailable(); + try (AvailablePortFinder.Port p = AvailablePortFinder.find()) { + return p.getPort(); + } } protected int getPort() { - return port; + return port.getPort(); } protected boolean isUseSslContext() { diff --git a/components/camel-oaipmh/src/test/java/org/apache/camel/oaipmh/utils/MockOaipmhServer.java b/components/camel-oaipmh/src/test/java/org/apache/camel/oaipmh/utils/MockOaipmhServer.java index cee9b14cd36c..7088043972ca 100644 --- a/components/camel-oaipmh/src/test/java/org/apache/camel/oaipmh/utils/MockOaipmhServer.java +++ b/components/camel-oaipmh/src/test/java/org/apache/camel/oaipmh/utils/MockOaipmhServer.java @@ -55,8 +55,13 @@ public final class MockOaipmhServer { } public static MockOaipmhServer create() { - int httpPort = AvailablePortFinder.getNextAvailable(); - int httpsPort = AvailablePortFinder.getNextAvailable(); + int httpPort; + int httpsPort; + try (AvailablePortFinder.Port p1 = AvailablePortFinder.find(); + AvailablePortFinder.Port p2 = AvailablePortFinder.find()) { + httpPort = p1.getPort(); + httpsPort = p2.getPort(); + } MockOaipmhServer server = new MockOaipmhServer(httpPort, httpsPort); return server; } diff --git a/components/camel-olingo2/camel-olingo2-component/src/test/java/org/apache/camel/component/olingo2/AbstractOlingo2AppAPITestSupport.java b/components/camel-olingo2/camel-olingo2-component/src/test/java/org/apache/camel/component/olingo2/AbstractOlingo2AppAPITestSupport.java index 3cea8d5a3883..e55daba32ede 100644 --- a/components/camel-olingo2/camel-olingo2-component/src/test/java/org/apache/camel/component/olingo2/AbstractOlingo2AppAPITestSupport.java +++ b/components/camel-olingo2/camel-olingo2-component/src/test/java/org/apache/camel/component/olingo2/AbstractOlingo2AppAPITestSupport.java @@ -34,6 +34,7 @@ import org.apache.http.entity.ContentType; import org.apache.olingo.odata2.api.ep.entry.ODataEntry; import org.apache.olingo.odata2.api.ep.feed.ODataDeltaFeed; import org.apache.olingo.odata2.api.ep.feed.ODataFeed; +import org.junit.jupiter.api.extension.RegisterExtension; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -44,7 +45,8 @@ public class AbstractOlingo2AppAPITestSupport { protected static final String SERVICE_NAME = "MyFormula.svc"; protected static final Logger LOG = LoggerFactory.getLogger(AbstractOlingo2AppAPITestSupport.class); - protected static final int PORT = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + protected static AvailablePortFinder.Port PORT = AvailablePortFinder.find(); protected static final long TIMEOUT = 100000; protected static final String MANUFACTURERS = "Manufacturers"; protected static final String FQN_MANUFACTURERS = "DefaultContainer.Manufacturers"; @@ -65,7 +67,7 @@ public class AbstractOlingo2AppAPITestSupport { protected static final String TEST_MANUFACTURER_LINKS_CARS = "Manufacturers('1')/$links/Cars"; protected static final String TEST_CAR_LINK_MANUFACTURER = "Cars('1')/$links/Manufacturer"; protected static final String COUNT_OPTION = "/$count"; - protected static final String TEST_SERVICE_URL = "http://localhost:" + PORT + "/" + SERVICE_NAME; + protected static final String TEST_SERVICE_URL = "http://localhost:" + PORT.getPort() + "/" + SERVICE_NAME; protected static final ContentType TEST_FORMAT = ContentType.APPLICATION_JSON; protected static final String TEST_FORMAT_STRING = TEST_FORMAT.toString(); protected static final String ID_PROPERTY = "Id"; @@ -142,7 +144,7 @@ public class AbstractOlingo2AppAPITestSupport { } protected static JettyConfiguration createConfiguration() { - return createConfiguration(PORT); + return createConfiguration(PORT.getPort()); } protected static JettyConfiguration createConfiguration(int port) { diff --git a/components/camel-paho-mqtt5/src/test/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5ReconnectAfterFailureIT.java b/components/camel-paho-mqtt5/src/test/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5ReconnectAfterFailureIT.java index 5849361d3035..fae10b1a8fd2 100644 --- a/components/camel-paho-mqtt5/src/test/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5ReconnectAfterFailureIT.java +++ b/components/camel-paho-mqtt5/src/test/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5ReconnectAfterFailureIT.java @@ -35,6 +35,7 @@ import org.apache.camel.test.infra.mosquitto.services.MosquittoService; import org.apache.camel.test.infra.mosquitto.services.MosquittoServiceFactory; 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; import static org.junit.jupiter.api.Assertions.assertNotEquals; @@ -43,7 +44,9 @@ import static org.junit.jupiter.api.Assertions.fail; public class PahoMqtt5ReconnectAfterFailureIT extends CamelTestSupport { public static final String TESTING_ROUTE_ID = "testingRoute"; - private static int mqttPort = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + + static AvailablePortFinder.Port mqttPort = AvailablePortFinder.find(); MosquittoService service; CountDownLatch routeStartedLatch = new CountDownLatch(1); @@ -52,11 +55,11 @@ public class PahoMqtt5ReconnectAfterFailureIT extends CamelTestSupport { MockEndpoint mock; private static MosquittoService createLocalService() { - return new MosquittoLocalContainerService(mqttPort); + return new MosquittoLocalContainerService(mqttPort.getPort()); } private static MosquittoService createRemoteService() { - return new MosquittoRemoteService(mqttPort); + return new MosquittoRemoteService(mqttPort.getPort()); } @Override @@ -94,8 +97,9 @@ public class PahoMqtt5ReconnectAfterFailureIT extends CamelTestSupport { @Override public void configure() { - from("direct:test").to("paho-mqtt5:queue?lazyStartProducer=true&brokerUrl=tcp://localhost:" + mqttPort); - from("paho-mqtt5:queue?brokerUrl=tcp://localhost:" + mqttPort) + from("direct:test") + .to("paho-mqtt5:queue?lazyStartProducer=true&brokerUrl=tcp://localhost:" + mqttPort.getPort()); + from("paho-mqtt5:queue?brokerUrl=tcp://localhost:" + mqttPort.getPort()) .id(TESTING_ROUTE_ID) .routePolicy(new RoutePolicySupport() { @Override @@ -127,7 +131,7 @@ public class PahoMqtt5ReconnectAfterFailureIT extends CamelTestSupport { mock.expectedBodiesReceived(msg); // When - template.sendBody("paho-mqtt5:queue?lazyStartProducer=true&brokerUrl=tcp://localhost:" + mqttPort, msg); + template.sendBody("paho-mqtt5:queue?lazyStartProducer=true&brokerUrl=tcp://localhost:" + mqttPort.getPort(), msg); // Then mock.assertIsSatisfied(); diff --git a/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoReconnectAfterFailureIT.java b/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoReconnectAfterFailureIT.java index b9058d04c6c7..251952458cb4 100644 --- a/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoReconnectAfterFailureIT.java +++ b/components/camel-paho/src/test/java/org/apache/camel/component/paho/PahoReconnectAfterFailureIT.java @@ -58,7 +58,9 @@ public class PahoReconnectAfterFailureIT implements ConfigurableRoute, Configura ArtemisMQTTService broker; CountDownLatch routeStartedLatch = new CountDownLatch(1); - int port = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + + AvailablePortFinder.Port port = AvailablePortFinder.find(); @EndpointInject("mock:test") MockEndpoint mock; @@ -95,8 +97,8 @@ public class PahoReconnectAfterFailureIT implements ConfigurableRoute, Configura @Override public void configure() { - from("direct:test").to("paho:queue?lazyStartProducer=true&brokerUrl=tcp://localhost:" + port); - from("paho:queue?brokerUrl=tcp://localhost:" + port) + from("direct:test").to("paho:queue?lazyStartProducer=true&brokerUrl=tcp://localhost:" + port.getPort()); + from("paho:queue?brokerUrl=tcp://localhost:" + port.getPort()) .id(TESTING_ROUTE_ID) .routePolicy(new RoutePolicySupport() { @Override @@ -133,7 +135,7 @@ public class PahoReconnectAfterFailureIT implements ConfigurableRoute, Configura // When ProducerTemplate template = camelContextExtension.getProducerTemplate(); - template.sendBody("paho:queue?lazyStartProducer=true&brokerUrl=tcp://localhost:" + port, msg); + template.sendBody("paho:queue?lazyStartProducer=true&brokerUrl=tcp://localhost:" + port.getPort(), msg); // Then mock.assertIsSatisfied(); @@ -161,7 +163,7 @@ public class PahoReconnectAfterFailureIT implements ConfigurableRoute, Configura } private void startBroker() { - broker = new ArtemisMQTTService(port); + broker = new ArtemisMQTTService(port.getPort()); broker.initialize(); } diff --git a/components/camel-pubnub/src/test/java/org/apache/camel/component/pubnub/PubNubTestBase.java b/components/camel-pubnub/src/test/java/org/apache/camel/component/pubnub/PubNubTestBase.java index 6278f23862d8..1f0158bd4be3 100644 --- a/components/camel-pubnub/src/test/java/org/apache/camel/component/pubnub/PubNubTestBase.java +++ b/components/camel-pubnub/src/test/java/org/apache/camel/component/pubnub/PubNubTestBase.java @@ -26,18 +26,20 @@ import com.pubnub.internal.java.PubNubForJavaImpl; import org.apache.camel.BindToRegistry; import org.apache.camel.test.AvailablePortFinder; import org.apache.camel.test.junit6.CamelTestSupport; +import org.junit.jupiter.api.extension.RegisterExtension; import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.options; import static com.pubnub.api.enums.PNHeartbeatNotificationOptions.NONE; public class PubNubTestBase extends CamelTestSupport { - private final int port = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); @BindToRegistry("pubnub") private PubNub pubnub = createPubNubInstance(); - private WireMockServer wireMockServer = new WireMockServer(options().port(port)); + private WireMockServer wireMockServer = new WireMockServer(options().port(port.getPort())); @Override protected void setupResources() { @@ -61,7 +63,7 @@ public class PubNubTestBase extends CamelTestSupport { config = PNConfiguration.builder(new UserId("myUUID"), "mySubscribeKey") .publishKey("myPublishKey") .secure(false) - .origin("localhost" + ":" + port) + .origin("localhost" + ":" + port.getPort()) .logVerbosity(PNLogVerbosity.NONE) .heartbeatNotificationOptions(NONE) .build(); diff --git a/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/HttpProxyMojoManualIT.java b/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/HttpProxyMojoManualIT.java index 0cdefe1d3ca4..e8ed7636b150 100644 --- a/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/HttpProxyMojoManualIT.java +++ b/components/camel-salesforce/camel-salesforce-maven-plugin/src/test/java/org/apache/camel/maven/HttpProxyMojoManualIT.java @@ -19,7 +19,6 @@ package org.apache.camel.maven; import java.io.IOException; import java.util.HashMap; -import org.apache.camel.test.AvailablePortFinder; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.littleshoot.proxy.HttpProxyServer; @@ -40,7 +39,6 @@ public class HttpProxyMojoManualIT extends CamelSalesforceMojoManualIT { @BeforeEach public void startProxy() { - httpProxyPort = AvailablePortFinder.getNextAvailable(); proxy = DefaultHttpProxyServer.bootstrap().withPort(httpProxyPort).withProxyAuthenticator(new ProxyAuthenticator() { @Override diff --git a/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/ServletCamelRouterTestSupport.java b/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/ServletCamelRouterTestSupport.java index 60d66d1d4d89..0561e712a405 100644 --- a/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/ServletCamelRouterTestSupport.java +++ b/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/ServletCamelRouterTestSupport.java @@ -51,7 +51,9 @@ public class ServletCamelRouterTestSupport extends CamelTestSupport { @Override public void setupResources() throws Exception { - port = AvailablePortFinder.getNextAvailable(); + try (AvailablePortFinder.Port p = AvailablePortFinder.find()) { + port = p.getPort(); + } DeploymentInfo servletBuilder = getDeploymentInfo(); manager = Servlets.newContainer().addDeployment(servletBuilder); manager.deploy(); diff --git a/components/camel-slack/src/test/java/org/apache/camel/component/slack/SlackProducerTest.java b/components/camel-slack/src/test/java/org/apache/camel/component/slack/SlackProducerTest.java index 6ff6acb03248..8f2b636a35ec 100644 --- a/components/camel-slack/src/test/java/org/apache/camel/component/slack/SlackProducerTest.java +++ b/components/camel-slack/src/test/java/org/apache/camel/component/slack/SlackProducerTest.java @@ -28,10 +28,12 @@ import org.apache.camel.component.mock.MockEndpoint; 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; public class SlackProducerTest extends CamelTestSupport { - protected static final int UNDERTOW_PORT = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + static AvailablePortFinder.Port UNDERTOW_PORT = AvailablePortFinder.find(); @EndpointInject("mock:errors") MockEndpoint errors; @@ -72,13 +74,14 @@ public class SlackProducerTest extends CamelTestSupport { @Override public void configure() { SlackComponent slack = new SlackComponent(); - slack.setWebhookUrl("http://localhost:" + UNDERTOW_PORT + "/slack/webhook"); + slack.setWebhookUrl("http://localhost:" + UNDERTOW_PORT.getPort() + "/slack/webhook"); context.addComponent("slack", slack); onException(Exception.class).handled(true).to(errors); final String slackUser = System.getProperty("SLACK_USER", "CamelTest"); - from("undertow:http://localhost:" + UNDERTOW_PORT + "/slack/webhook").setBody(constant("{\"ok\": true}")); + from("undertow:http://localhost:" + UNDERTOW_PORT.getPort() + "/slack/webhook") + .setBody(constant("{\"ok\": true}")); from(test).to(String.format("slack:#general?iconEmoji=:camel:&username=%s", slackUser)); } diff --git a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/integration/SmppTRXProducerIT.java b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/integration/SmppTRXProducerIT.java index 5fc529f51f8c..83458c1ab894 100644 --- a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/integration/SmppTRXProducerIT.java +++ b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/integration/SmppTRXProducerIT.java @@ -32,6 +32,7 @@ import org.jsmpp.examples.SMPPServerSimulator; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -40,9 +41,10 @@ import static org.junit.jupiter.api.Assertions.fail; class SmppTRXProducerIT extends CamelTestSupport { - private static int PORT = 8200; // use private port to avoid reusing from previous tests + @RegisterExtension + static AvailablePortFinder.Port PORT = AvailablePortFinder.find(); private static final Thread SMPP_SERVER_SIMULATOR = new Thread(() -> { - System.setProperty("jsmpp.simulator.port", "" + PORT); + System.setProperty("jsmpp.simulator.port", "" + PORT.getPort()); SMPPServerSimulator.main(null); }); @@ -60,7 +62,6 @@ class SmppTRXProducerIT extends CamelTestSupport { @BeforeAll public static void runSMPPServerSimulator() { - PORT = AvailablePortFinder.getNextAvailable(8200, 9999); SMPP_SERVER_SIMULATOR.start(); } @@ -100,7 +101,7 @@ class SmppTRXProducerIT extends CamelTestSupport { @Override public void configure() { from("direct:start2") - .to("smpp://j@localhost:" + PORT + "?password=jpwd&systemType=producer" + + .to("smpp://j@localhost:" + PORT.getPort() + "?password=jpwd&systemType=producer" + "&messageReceiverRouteId=TYPO_IN_MessageReceiverRouteId"); } }); @@ -122,7 +123,7 @@ class SmppTRXProducerIT extends CamelTestSupport { @Override public void configure() { from("direct:start2") - .to("smpp://j@localhost:" + PORT + "?password=jpwd&systemType=producer" + + .to("smpp://j@localhost:" + PORT.getPort() + "?password=jpwd&systemType=producer" + "&messageReceiverRouteId=testMessageReceiverRouteId2"); } }); @@ -141,7 +142,7 @@ class SmppTRXProducerIT extends CamelTestSupport { @Override public void configure() { from("direct:start") - .to("smpp://j@localhost:" + PORT + "?password=jpwd&systemType=producer" + + .to("smpp://j@localhost:" + PORT.getPort() + "?password=jpwd&systemType=producer" + "&messageReceiverRouteId=testMessageReceiverRouteId"); from("direct:messageReceiver").id("testMessageReceiverRouteId") diff --git a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/integration/SmppTRXProducerSupervisingRouteControllerIT.java b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/integration/SmppTRXProducerSupervisingRouteControllerIT.java index 237cce240625..77c2b94a0afd 100644 --- a/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/integration/SmppTRXProducerSupervisingRouteControllerIT.java +++ b/components/camel-smpp/src/test/java/org/apache/camel/component/smpp/integration/SmppTRXProducerSupervisingRouteControllerIT.java @@ -40,6 +40,7 @@ import org.jsmpp.examples.SMPPServerSimulator; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import org.junit.jupiter.api.parallel.Isolated; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -49,7 +50,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue; @Isolated class SmppTRXProducerSupervisingRouteControllerIT extends CamelTestSupport { - private static int PORT = 8100; // use private port to avoid reusing from previous tests + @RegisterExtension + static AvailablePortFinder.Port PORT = AvailablePortFinder.find(); private static final CountDownLatch LATCH = new CountDownLatch(1); private static final Thread SMPP_SERVER_SIMULATOR = new Thread(() -> { try { @@ -58,7 +60,7 @@ class SmppTRXProducerSupervisingRouteControllerIT extends CamelTestSupport { } catch (Exception e) { // ignore } - System.setProperty("jsmpp.simulator.port", "" + PORT); + System.setProperty("jsmpp.simulator.port", "" + PORT.getPort()); SMPPServerSimulator.main(null); }); @@ -95,7 +97,6 @@ class SmppTRXProducerSupervisingRouteControllerIT extends CamelTestSupport { @BeforeAll public static void runSMPPServerSimulator() { - PORT = AvailablePortFinder.getNextAvailable(8100, 9999); SMPP_SERVER_SIMULATOR.start(); } @@ -137,7 +138,7 @@ class SmppTRXProducerSupervisingRouteControllerIT extends CamelTestSupport { @Override public void configure() { from("direct:start") - .to("smpp://j@localhost:" + PORT + "?password=jpwd&systemType=producer" + + .to("smpp://j@localhost:" + PORT.getPort() + "?password=jpwd&systemType=producer" + "&messageReceiverRouteId=testMessageReceiverRouteId"); from("direct:messageReceiver").id("testMessageReceiverRouteId") diff --git a/components/camel-snmp/src/test/java/org/apache/camel/component/snmp/TrapTest.java b/components/camel-snmp/src/test/java/org/apache/camel/component/snmp/TrapTest.java index 44921d6e5392..723dc468cc36 100644 --- a/components/camel-snmp/src/test/java/org/apache/camel/component/snmp/TrapTest.java +++ b/components/camel-snmp/src/test/java/org/apache/camel/component/snmp/TrapTest.java @@ -28,6 +28,7 @@ import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.AvailablePortFinder; import org.awaitility.Awaitility; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.extension.RegisterExtension; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; import org.slf4j.Logger; @@ -44,6 +45,13 @@ import org.snmp4j.smi.VariableBinding; public class TrapTest extends SnmpTestSupport { private static final Logger LOG = LoggerFactory.getLogger(TrapTest.class); + @RegisterExtension + AvailablePortFinder.Port portV0 = AvailablePortFinder.find(); + @RegisterExtension + AvailablePortFinder.Port portV1 = AvailablePortFinder.find(); + @RegisterExtension + AvailablePortFinder.Port portV3 = AvailablePortFinder.find(); + @ParameterizedTest @MethodSource("supportedVersions") public void testSendReceiveTraps(int version) throws Exception { @@ -93,31 +101,27 @@ public class TrapTest extends SnmpTestSupport { protected RouteBuilder createRouteBuilder() { return new RouteBuilder() { public void configure() { - //genrate ports for trap consumers/producers - int portV0 = AvailablePortFinder.getNextAvailable(); - int portV1 = AvailablePortFinder.getNextAvailable(); - int portV3 = AvailablePortFinder.getNextAvailable(); - from("direct:snmptrapV0") .log(LoggingLevel.INFO, "Sending Trap pdu ${body}") - .to("snmp:127.0.0.1:" + portV0 + "?protocol=udp&type=TRAP&snmpVersion=0"); + .to("snmp:127.0.0.1:" + portV0.getPort() + "?protocol=udp&type=TRAP&snmpVersion=0"); - from("snmp:0.0.0.0:" + portV0 + "?protocol=udp&type=TRAP&snmpVersion=0") + from("snmp:0.0.0.0:" + portV0.getPort() + "?protocol=udp&type=TRAP&snmpVersion=0") .to("mock:resultV0"); from("direct:snmptrapV1") .log(LoggingLevel.INFO, "Sending Trap pdu ${body}") - .to("snmp:127.0.0.1:" + portV1 + "?protocol=udp&type=TRAP&snmpVersion=1"); + .to("snmp:127.0.0.1:" + portV1.getPort() + "?protocol=udp&type=TRAP&snmpVersion=1"); - from("snmp:0.0.0.0:" + portV1 + "?protocol=udp&type=TRAP&snmpVersion=1") + from("snmp:0.0.0.0:" + portV1.getPort() + "?protocol=udp&type=TRAP&snmpVersion=1") .to("mock:resultV1"); from("direct:snmptrapV3") .log(LoggingLevel.INFO, "Sending Trap pdu ${body}") - .to("snmp:127.0.0.1:" + portV3 + .to("snmp:127.0.0.1:" + portV3.getPort() + "?securityName=test&securityLevel=1&protocol=udp&type=TRAP&snmpVersion=3"); - from("snmp:0.0.0.0:" + portV3 + "?securityName=test&securityLevel=1&protocol=udp&type=TRAP&snmpVersion=3") + from("snmp:0.0.0.0:" + portV3.getPort() + + "?securityName=test&securityLevel=1&protocol=udp&type=TRAP&snmpVersion=3") .to("mock:resultV3"); } }; diff --git a/components/camel-spring-parent/camel-undertow-spring-security/src/test/java/org/apache/camel/component/spring/security/AbstractSpringSecurityBearerTokenTest.java b/components/camel-spring-parent/camel-undertow-spring-security/src/test/java/org/apache/camel/component/spring/security/AbstractSpringSecurityBearerTokenTest.java index ce4199c581bb..0355337c4c2d 100644 --- a/components/camel-spring-parent/camel-undertow-spring-security/src/test/java/org/apache/camel/component/spring/security/AbstractSpringSecurityBearerTokenTest.java +++ b/components/camel-spring-parent/camel-undertow-spring-security/src/test/java/org/apache/camel/component/spring/security/AbstractSpringSecurityBearerTokenTest.java @@ -32,7 +32,6 @@ import org.apache.camel.CamelContext; import org.apache.camel.component.spring.security.keycloak.KeycloakRealmRoleConverter; import org.apache.camel.component.spring.security.keycloak.KeycloakUsernameSubClaimAdapter; import org.apache.camel.component.undertow.UndertowComponent; -import org.apache.camel.test.AvailablePortFinder; import org.apache.camel.test.junit6.CamelTestSupport; import org.junit.jupiter.api.BeforeAll; import org.springframework.security.oauth2.jwt.Jwt; @@ -49,7 +48,6 @@ public abstract class AbstractSpringSecurityBearerTokenTest extends CamelTestSup @BeforeAll public static void initPort() { - port = AvailablePortFinder.getNextAvailable(); } protected static int getPort() { diff --git a/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshAlgorithmParametersTest.java b/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshAlgorithmParametersTest.java index a7beaf27b446..7d985493a6a5 100644 --- a/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshAlgorithmParametersTest.java +++ b/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshAlgorithmParametersTest.java @@ -39,19 +39,25 @@ import org.apache.sshd.common.signature.BuiltinSignatures; import org.apache.sshd.common.signature.Signature; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; public class SshAlgorithmParametersTest extends CamelTestSupport { - private int port = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); - private String sshEndpointURI = "ssh://smx:smx@localhost:" + port + "?timeout=3000" + - "&ciphers=aes192-ctr" + - "&[email protected],hmac-sha2-256,hmac-sha1" + - "&kex=ecdh-sha2-nistp521" + - "&signatures=rsa-sha2-512,[email protected]" + - "&compressions=zlib,none"; + private String getSshEndpointURI() { + return "ssh://smx:smx@localhost:" + port.getPort() + "?timeout=3000" + + "&ciphers=aes192-ctr" + + "&[email protected],hmac-sha2-256,hmac-sha1" + + "&kex=ecdh-sha2-nistp521" + + "&signatures=rsa-sha2-512,[email protected]" + + "&compressions=zlib,none"; + } - private String customClientSshEndpointURI = "ssh://smx:smx@localhost:" + port + "?timeout=3000&clientBuilder=#myClient"; + private String getCustomClientSshEndpointURI() { + return "ssh://smx:smx@localhost:" + port.getPort() + "?timeout=3000&clientBuilder=#myClient"; + } @Override protected void bindToRegistry(Registry registry) throws Exception { @@ -86,7 +92,7 @@ public class SshAlgorithmParametersTest extends CamelTestSupport { @Test public void producerCiphersParameterTest() throws Exception { context.getComponent("ssh", SshComponent.class); - SshEndpoint endpoint = context.getEndpoint(sshEndpointURI, SshEndpoint.class); + SshEndpoint endpoint = context.getEndpoint(getSshEndpointURI(), SshEndpoint.class); SshProducer producer = (SshProducer) endpoint.createProducer(); producer.start(); SshClient client = (SshClient) FieldUtils.readField(producer, "client", true); @@ -96,7 +102,7 @@ public class SshAlgorithmParametersTest extends CamelTestSupport { @Test public void consumerCiphersParameterTest() throws Exception { context.getComponent("ssh", SshComponent.class); - SshEndpoint endpoint = context.getEndpoint(sshEndpointURI, SshEndpoint.class); + SshEndpoint endpoint = context.getEndpoint(getSshEndpointURI(), SshEndpoint.class); SshConsumer consumer = (SshConsumer) endpoint.createConsumer(x -> { }); consumer.start(); @@ -107,7 +113,7 @@ public class SshAlgorithmParametersTest extends CamelTestSupport { @Test public void consumerCustomClientParameterTest() throws Exception { context.getComponent("ssh", SshComponent.class); - SshEndpoint endpoint = context.getEndpoint(customClientSshEndpointURI, SshEndpoint.class); + SshEndpoint endpoint = context.getEndpoint(getCustomClientSshEndpointURI(), SshEndpoint.class); SshConsumer consumer = (SshConsumer) endpoint.createConsumer(x -> { }); consumer.start(); @@ -118,7 +124,7 @@ public class SshAlgorithmParametersTest extends CamelTestSupport { @Test public void producerCustomClientParameterTest() throws Exception { context.getComponent("ssh", SshComponent.class); - SshEndpoint endpoint = context.getEndpoint(customClientSshEndpointURI, SshEndpoint.class); + SshEndpoint endpoint = context.getEndpoint(getCustomClientSshEndpointURI(), SshEndpoint.class); SshProducer producer = (SshProducer) endpoint.createProducer(); producer.start(); SshClient client = (SshClient) FieldUtils.readField(producer, "client", true); diff --git a/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshComponentTestSupport.java b/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshComponentTestSupport.java index 29e0e604efd6..8eaaeeee6123 100644 --- a/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshComponentTestSupport.java +++ b/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshComponentTestSupport.java @@ -30,7 +30,9 @@ public class SshComponentTestSupport extends CamelTestSupport { @Override public void doPreSetup() throws Exception { - port = AvailablePortFinder.getNextAvailable(); + try (AvailablePortFinder.Port p = AvailablePortFinder.find()) { + port = p.getPort(); + } sshd = SshServer.setUpDefaultServer(); sshd.setPort(port); diff --git a/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshIdleTimeoutTest.java b/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshIdleTimeoutTest.java index 2ac79edd7b08..54eb355a4b44 100644 --- a/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshIdleTimeoutTest.java +++ b/components/camel-ssh/src/test/java/org/apache/camel/component/ssh/SshIdleTimeoutTest.java @@ -32,10 +32,12 @@ import org.apache.sshd.server.SshServer; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; public class SshIdleTimeoutTest extends SshComponentTestSupport { - private int delayedPort = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + AvailablePortFinder.Port delayedPort = AvailablePortFinder.find(); private SshServer delayedSshd; @AfterEach @@ -102,7 +104,7 @@ public class SshIdleTimeoutTest extends SshComponentTestSupport { private void startDelayedServer() throws Exception { delayedSshd = SshServer.setUpDefaultServer(); - delayedSshd.setPort(delayedPort); + delayedSshd.setPort(delayedPort.getPort()); delayedSshd.setKeyPairProvider(new FileKeyPairProvider(Paths.get("src/test/resources/hostkey.pem"))); delayedSshd.setCommandFactory(new DelayedEchoCommandFactory(1000)); delayedSshd.setPasswordAuthenticator((username, password, session) -> true); @@ -150,9 +152,9 @@ public class SshIdleTimeoutTest extends SshComponentTestSupport { .to("mock:result"); from("direct:sshWithShortIdleTimeout") - .to("ssh://smx:smx@localhost:" + delayedPort + "?timeout=5000&idleTimeout=500"); + .to("ssh://smx:smx@localhost:" + delayedPort.getPort() + "?timeout=5000&idleTimeout=500"); from("direct:sshWithLongIdleTimeout") - .to("ssh://smx:smx@localhost:" + delayedPort + "?timeout=5000&idleTimeout=5000"); + .to("ssh://smx:smx@localhost:" + delayedPort.getPort() + "?timeout=5000&idleTimeout=5000"); } }; } diff --git a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompBaseTest.java b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompBaseTest.java index 9cf7cadd4708..9bfdbc2b5990 100644 --- a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompBaseTest.java +++ b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompBaseTest.java @@ -35,8 +35,10 @@ import org.junit.jupiter.api.extension.RegisterExtension; public abstract class StompBaseTest extends CamelTestSupport { protected int numberOfMessages = 100; - static int sslServicePort = AvailablePortFinder.getNextAvailable(); - static int servicePort = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + static AvailablePortFinder.Port sslServicePort = AvailablePortFinder.find(); + @RegisterExtension + static AvailablePortFinder.Port servicePort = AvailablePortFinder.find(); @RegisterExtension public static ArtemisService service = new ArtemisEmbeddedServiceBuilder() @@ -50,11 +52,11 @@ public abstract class StompBaseTest extends CamelTestSupport { "keyStorePath=jsse/server-side-keystore.jks;" + "keyStorePassword=password;" + "protocols=STOMP", - sslServicePort)); + sslServicePort.getPort())); configuration.addAcceptorConfiguration("stomp-tcp-acceptor", String.format("tcp://0.0.0.0:%s?protocols=STOMP", - servicePort)); + servicePort.getPort())); } catch (Exception e) { throw new RuntimeException(e); } @@ -84,10 +86,10 @@ public abstract class StompBaseTest extends CamelTestSupport { Stomp stomp; if (isUseSsl()) { - stomp = new Stomp("ssl://localhost:" + sslServicePort); + stomp = new Stomp("ssl://localhost:" + sslServicePort.getPort()); stomp.setSslContext(getClientSSLContext()); } else { - stomp = new Stomp("tcp://localhost:" + servicePort); + stomp = new Stomp("tcp://localhost:" + servicePort.getPort()); } return stomp; diff --git a/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookBasePathTest.java b/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookBasePathTest.java index 41012916c73b..ee525c725ca6 100644 --- a/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookBasePathTest.java +++ b/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookBasePathTest.java @@ -87,7 +87,7 @@ public class WebhookBasePathTest extends WebhookTestBase { restConfiguration() .host("0.0.0.0") - .port(port); + .port(port.getPort()); from("webhook:wb-delegate://xx?webhookPath=uri0") .transform(body().prepend("msg: ")); diff --git a/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookHttpBindingTest.java b/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookHttpBindingTest.java index 6ec21661f0df..e5c34c837f39 100644 --- a/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookHttpBindingTest.java +++ b/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookHttpBindingTest.java @@ -70,7 +70,7 @@ public class WebhookHttpBindingTest extends WebhookTestBase { restConfiguration() .host("0.0.0.0") - .port(port); + .port(port.getPort()); from("webhook:wb-delegate://xx") .transform(body().prepend("msg: ")); diff --git a/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookMultiRouteTest.java b/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookMultiRouteTest.java index 13165caaaee1..9db0e699d217 100644 --- a/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookMultiRouteTest.java +++ b/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookMultiRouteTest.java @@ -57,7 +57,7 @@ public class WebhookMultiRouteTest extends WebhookTestBase { restConfiguration() .host("0.0.0.0") - .port(port); + .port(port.getPort()); from("webhook:wb-delegate://yy") .transform(body().prepend("uri: ")); diff --git a/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookPathTest.java b/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookPathTest.java index 7d7e7f59837c..f8a249a46ea0 100644 --- a/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookPathTest.java +++ b/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookPathTest.java @@ -73,7 +73,7 @@ public class WebhookPathTest extends WebhookTestBase { restConfiguration() .host("0.0.0.0") - .port(port); + .port(port.getPort()); from("webhook:wb-delegate://xx") .transform(body().prepend("msg: ")); diff --git a/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookRegistrationTest.java b/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookRegistrationTest.java index 97309ce187b4..ded586efbaf0 100644 --- a/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookRegistrationTest.java +++ b/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookRegistrationTest.java @@ -47,7 +47,7 @@ public class WebhookRegistrationTest extends WebhookTestBase { public void configure() { restConfiguration() .host("0.0.0.0") - .port(port); + .port(port.getPort()); from("webhook:wb-delegate://xx") .transform(body().prepend("msg: ")); diff --git a/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookTestBase.java b/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookTestBase.java index f33fd4e26195..c5cc1ae561fb 100644 --- a/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookTestBase.java +++ b/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookTestBase.java @@ -18,15 +18,11 @@ package org.apache.camel.component.webhook; import org.apache.camel.test.AvailablePortFinder; import org.apache.camel.test.junit6.CamelTestSupport; -import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.extension.RegisterExtension; public class WebhookTestBase extends CamelTestSupport { - protected static int port; - - @BeforeAll - public static void initPort() { - port = AvailablePortFinder.getNextAvailable(); - } + @RegisterExtension + static AvailablePortFinder.Port port = AvailablePortFinder.find(); } diff --git a/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookUriEncodingTest.java b/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookUriEncodingTest.java index 247f40136e2c..a1e60936d8e4 100644 --- a/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookUriEncodingTest.java +++ b/components/camel-webhook/src/test/java/org/apache/camel/component/webhook/WebhookUriEncodingTest.java @@ -59,7 +59,7 @@ public class WebhookUriEncodingTest extends WebhookTestBase { restConfiguration() .host("0.0.0.0") - .port(port); + .port(port.getPort()); from("webhook:wb-delegate://xx?webhookBasePath=/base&webhookPath=/uri&foo=hello} world&bar=RAW(hello} world)") .transform(body().prepend("msg: ")); diff --git a/components/camel-whatsapp/src/test/java/org/apache/camel/component/whatsapp/WhatsAppWebhookTest.java b/components/camel-whatsapp/src/test/java/org/apache/camel/component/whatsapp/WhatsAppWebhookTest.java index c7d03aac6a23..073f7f74e0f1 100644 --- a/components/camel-whatsapp/src/test/java/org/apache/camel/component/whatsapp/WhatsAppWebhookTest.java +++ b/components/camel-whatsapp/src/test/java/org/apache/camel/component/whatsapp/WhatsAppWebhookTest.java @@ -24,7 +24,6 @@ import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.component.webhook.WebhookConfiguration; import org.apache.camel.component.webhook.WebhookEndpoint; -import org.apache.camel.test.AvailablePortFinder; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; @@ -87,7 +86,6 @@ public class WhatsAppWebhookTest extends WhatsAppTestSupport { @Override protected void doPreSetup() { - port = AvailablePortFinder.getNextAvailable(); } protected WhatsAppApiConfig getWhatsAppApiConfig() { diff --git a/dsl/camel-endpointdsl/src/test/java/org/apache/camel/builder/endpoint/EndpointQueryParamTest.java b/dsl/camel-endpointdsl/src/test/java/org/apache/camel/builder/endpoint/EndpointQueryParamTest.java index e19a182e123d..e6b3dd72e1c7 100644 --- a/dsl/camel-endpointdsl/src/test/java/org/apache/camel/builder/endpoint/EndpointQueryParamTest.java +++ b/dsl/camel-endpointdsl/src/test/java/org/apache/camel/builder/endpoint/EndpointQueryParamTest.java @@ -27,14 +27,14 @@ class EndpointQueryParamTest extends BaseEndpointDslTest { return new EndpointRouteBuilder() { @Override public void configure() { - int port = AvailablePortFinder.getNextAvailable(); - restConfiguration().component("jetty").host("localhost").port(port); + AvailablePortFinder.Port port = AvailablePortFinder.find(); + restConfiguration().component("jetty").host("localhost").port(port.getPort()); rest().get("path/xyz") .to("mock:result"); from(direct("test")) - .to(http(String.format("localhost:%d/path/xyz?param1=1¶m2=2", port)).httpMethod("GET")); + .to(http(String.format("localhost:%d/path/xyz?param1=1¶m2=2", port.getPort())).httpMethod("GET")); from(direct("test2")) - .toF("http://localhost:%d/path/xyz?param1=1¶m2=2&httpMethod=GET", port); + .toF("http://localhost:%d/path/xyz?param1=1¶m2=2&httpMethod=GET", port.getPort()); } }; } diff --git a/dsl/camel-endpointdsl/src/test/java/org/apache/camel/builder/endpoint/RestDslTest.java b/dsl/camel-endpointdsl/src/test/java/org/apache/camel/builder/endpoint/RestDslTest.java index 72d8f8293a1a..5656902dca9f 100644 --- a/dsl/camel-endpointdsl/src/test/java/org/apache/camel/builder/endpoint/RestDslTest.java +++ b/dsl/camel-endpointdsl/src/test/java/org/apache/camel/builder/endpoint/RestDslTest.java @@ -26,9 +26,9 @@ public class RestDslTest extends BaseEndpointDslTest { @Override protected CamelContext createCamelContext() throws Exception { - int port = AvailablePortFinder.getNextAvailable(); + AvailablePortFinder.Port port = AvailablePortFinder.find(); VertxPlatformHttpServerConfiguration conf = new VertxPlatformHttpServerConfiguration(); - conf.setBindPort(port); + conf.setBindPort(port.getPort()); CamelContext context = super.createCamelContext(); context.addService(new VertxPlatformHttpServer(conf)); diff --git a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/RunCommandOnMqttITCase.java b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/RunCommandOnMqttITCase.java index 26d0107f8529..c3e46d8f7ec5 100644 --- a/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/RunCommandOnMqttITCase.java +++ b/dsl/camel-jbang/camel-jbang-it/src/test/java/org/apache/camel/dsl/jbang/it/RunCommandOnMqttITCase.java @@ -26,17 +26,19 @@ import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import org.testcontainers.containers.GenericContainer; @Tag("container-only") public class RunCommandOnMqttITCase extends JBangTestSupport { - private static int mqttPort = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + static AvailablePortFinder.Port mqttPort = AvailablePortFinder.find(); private static MosquittoLocalContainerService service; @BeforeAll public static void init() { - service = new MosquittoLocalContainerService(mqttPort); + service = new MosquittoLocalContainerService(mqttPort.getPort()); service.initialize(); }
