This is an automated email from the ASF dual-hosted git repository. gnodet pushed a commit to branch CAMEL-23214-port-http-servers in repository https://gitbox.apache.org/repos/asf/camel.git
commit 507734e8d1e042817178497a2e26a05b46054362 Author: Guillaume Nodet <[email protected]> AuthorDate: Fri Mar 20 05:23:18 2026 +0100 CAMEL-23214: Migrate AvailablePortFinder in camel-platform-http, camel-jetty, camel-coap, camel-undertow tests Co-Authored-By: Claude Opus 4.6 <[email protected]> --- .../java/org/apache/camel/coap/CoAPCORSTest.java | 2 +- .../camel/coap/CoAPComponentTLSTestBase.java | 72 ++++++++----- .../org/apache/camel/coap/CoAPComponentTest.java | 8 +- .../camel/coap/CoAPRestComponentTestBase.java | 16 +-- .../apache/camel/coap/CoAPRestContextPathTest.java | 2 +- .../org/apache/camel/coap/CoAPRestVerbTest.java | 2 +- .../org/apache/camel/coap/CoAPTestSupport.java | 6 +- .../jetty/JettyBridgeHostHeaderIssueTest.java | 58 ++++++----- .../jetty/JettyFailoverRoundRobinTest.java | 34 +++--- .../component/jetty/JettyValidatorStreamTest.java | 10 +- ...alidatorStreamWithStreamCachingEnabledTest.java | 10 +- .../camel/component/jetty/JettyValidatorTest.java | 12 +-- .../component/jetty/JettyXsltHttpTemplateTest.java | 10 +- .../camel/component/jetty/JettyXsltTest.java | 10 +- .../jetty/SpringFailoverRoundRobinTest.java | 28 ++--- .../jetty/rest/RestJettyRedirectTest.java | 12 ++- .../http/main/MainHttpServerRouteTest.java | 8 +- .../http/main/ManagementHttpServerTest.java | 8 +- .../RestOpenApiCodeFirstOnExceptionIssueTest.java | 8 +- ...stOpenApiContractFirstOnExceptionIssueTest.java | 8 +- .../vertx/VertxPlatformHttpAuthenticationTest.java | 8 +- .../http/vertx/VertxPlatformHttpCookieTest.java | 10 +- .../http/vertx/VertxPlatformHttpEngineTest.java | 115 +++++++++++---------- .../vertx/VertxPlatformHttpNoBodyHandlerTest.java | 8 +- .../vertx/VertxPlatformHttpPooledExchangeTest.java | 12 ++- .../http/vertx/VertxPlatformHttpProxyTest.java | 8 +- .../http/vertx/VertxPlatformHttpSessionTest.java | 15 +-- .../vertx/VertxPlatformHttpSharedVertxTest.java | 6 +- .../http/vertx/VertxPlatformHttpsProxyTest.java | 19 ++-- .../VertxPlatformMultipleContentTypeTest.java | 13 ++- .../camel/component/undertow/BaseUndertowTest.java | 30 +++--- .../undertow/UndertowHttpProducerSessionTest.java | 12 +-- .../undertow/UndertowMethodRestricTest.java | 8 +- 33 files changed, 327 insertions(+), 261 deletions(-) diff --git a/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPCORSTest.java b/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPCORSTest.java index 38a3dfa8670c..c02facda7f6c 100644 --- a/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPCORSTest.java +++ b/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPCORSTest.java @@ -43,7 +43,7 @@ public class CoAPCORSTest extends CoAPTestSupport { return new RouteBuilder() { @Override public void configure() { - restConfiguration().component("coap").port(PORT).enableCORS(true); + restConfiguration().component("coap").port(PORT.getPort()).enableCORS(true); rest().get("/rest").to("direct:rest"); from("direct:rest").setBody(constant(COAP_RESPONSE)); diff --git a/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPComponentTLSTestBase.java b/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPComponentTLSTestBase.java index f7479a21747b..17de5e952920 100644 --- a/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPComponentTLSTestBase.java +++ b/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPComponentTLSTestBase.java @@ -45,19 +45,28 @@ import org.eclipse.californium.scandium.dtls.x509.NewAdvancedCertificateVerifier import org.eclipse.californium.scandium.dtls.x509.StaticNewAdvancedCertificateVerifier; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; abstract class CoAPComponentTLSTestBase extends CamelTestSupport { - private static final int PORT = AvailablePortFinder.getNextAvailable(); - private static final int PORT2 = AvailablePortFinder.getNextAvailable(); - private static final int PORT3 = AvailablePortFinder.getNextAvailable(); - private static final int PORT4 = AvailablePortFinder.getNextAvailable(); - private static final int PORT5 = AvailablePortFinder.getNextAvailable(); - private static final int PORT6 = AvailablePortFinder.getNextAvailable(); - private static final int PORT7 = AvailablePortFinder.getNextAvailable(); - private static final int PORT8 = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + static AvailablePortFinder.Port PORT = AvailablePortFinder.find(); + @RegisterExtension + static AvailablePortFinder.Port PORT2 = AvailablePortFinder.find(); + @RegisterExtension + static AvailablePortFinder.Port PORT3 = AvailablePortFinder.find(); + @RegisterExtension + static AvailablePortFinder.Port PORT4 = AvailablePortFinder.find(); + @RegisterExtension + static AvailablePortFinder.Port PORT5 = AvailablePortFinder.find(); + @RegisterExtension + static AvailablePortFinder.Port PORT6 = AvailablePortFinder.find(); + @RegisterExtension + static AvailablePortFinder.Port PORT7 = AvailablePortFinder.find(); + @RegisterExtension + static AvailablePortFinder.Port PORT8 = AvailablePortFinder.find(); @ParameterizedTest @ValueSource(strings = { "direct:start", "direct:selfsigned", /*"direct:clientauth",*/ "direct:ciphersuites" }) @@ -200,68 +209,74 @@ abstract class CoAPComponentTLSTestBase extends CamelTestSupport { @Override public void configure() { - fromF(getProtocol() + "://localhost:%d/TestResource?sslContextParameters=#serviceSSLContextParameters", PORT) + fromF(getProtocol() + "://localhost:%d/TestResource?sslContextParameters=#serviceSSLContextParameters", + PORT.getPort()) .transform(body().prepend("Hello ")); fromF(getProtocol() + "://localhost:%d/TestResource?alias=selfsigned&sslContextParameters=#selfSignedServiceSSLContextParameters", - PORT2) + PORT2.getPort()) .transform(body().prepend("Hello ")); fromF(getProtocol() + "://localhost:%d/TestResource?sslContextParameters=#serviceSSLContextParameters&cipherSuites=TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8", - PORT4) + PORT4.getPort()) .transform(body().prepend("Hello ")); from("direct:start") .toF(getProtocol() + "://localhost:%d/TestResource?sslContextParameters=#clientSSLContextParameters", - PORT) + PORT.getPort()) .to("mock:result"); - from("direct:notruststore").toF(getProtocol() + "://localhost:%d/TestResource", PORT).to("mock:result"); + from("direct:notruststore").toF(getProtocol() + "://localhost:%d/TestResource", PORT.getPort()) + .to("mock:result"); from("direct:failedtrust") .toF(getProtocol() + "://localhost:%d/TestResource?sslContextParameters=#clientSSLContextParameters2", - PORT) + PORT.getPort()) .to("mock:result"); from("direct:selfsigned") .toF(getProtocol() - + "://localhost:%d/TestResource?sslContextParameters=#selfSignedClientSSLContextParameters", PORT2) + + "://localhost:%d/TestResource?sslContextParameters=#selfSignedClientSSLContextParameters", + PORT2.getPort()) .to("mock:result"); from("direct:clientauth") .toF(getProtocol() - + "://localhost:%d/TestResource?sslContextParameters=#clientAuthClientSSLContextParameters", PORT3) + + "://localhost:%d/TestResource?sslContextParameters=#clientAuthClientSSLContextParameters", + PORT3.getPort()) .to("mock:result"); from("direct:failedclientauth") .toF(getProtocol() + "://localhost:%d/TestResource?sslContextParameters=#clientAuthClientSSLContextParameters2", - PORT3) + PORT3.getPort()) .to("mock:result"); from("direct:ciphersuites") .toF(getProtocol() + "://localhost:%d/TestResource?sslContextParameters=#clientSSLContextParameters&cipherSuites=TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8", - PORT4) + PORT4.getPort()) .to("mock:result"); if (isRPKSupported()) { - fromF(getProtocol() + "://localhost:%d/TestResource?privateKey=#privateKey&publicKey=#publicKey", PORT5) + fromF(getProtocol() + "://localhost:%d/TestResource?privateKey=#privateKey&publicKey=#publicKey", + PORT5.getPort()) .transform(body().prepend("Hello ")); fromF(getProtocol() + "://localhost:%d/TestResource?privateKey=#privateKey&publicKey=#publicKey&clientAuthentication=NEEDED&advancedCertificateVerifier=#advancedCertificateVerifier", - PORT6).transform(body().prepend("Hello ")); + PORT6.getPort()).transform(body().prepend("Hello ")); from("direct:rpk") .toF(getProtocol() + "://localhost:%d/TestResource?advancedCertificateVerifier=#advancedCertificateVerifier", - PORT5) + PORT5.getPort()) .to("mock:result"); - from("direct:rpknotruststore").toF(getProtocol() + "://localhost:%d/TestResource", PORT5).to("mock:result"); + from("direct:rpknotruststore").toF(getProtocol() + "://localhost:%d/TestResource", PORT5.getPort()) + .to("mock:result"); // from("direct:rpkfailedtrust") // .toF(getProtocol() @@ -272,33 +287,34 @@ abstract class CoAPComponentTLSTestBase extends CamelTestSupport { from("direct:rpkclientauth") .toF(getProtocol() + "://localhost:%d/TestResource?advancedCertificateVerifier=#advancedCertificateVerifier&privateKey=#privateKey&publicKey=#publicKey", - PORT6) + PORT6.getPort()) .to("mock:result"); } if (isPSKSupported()) { - fromF(getProtocol() + "://localhost:%d/TestResource?advancedPskStore=#advancedPskStore", PORT7) + fromF(getProtocol() + "://localhost:%d/TestResource?advancedPskStore=#advancedPskStore", PORT7.getPort()) .transform(body().prepend("Hello ")); fromF(getProtocol() + "://localhost:%d/TestResource?sslContextParameters=#serviceSSLContextParameters&advancedPskStore=#advancedPskStore", - PORT8) + PORT8.getPort()) .transform(body().prepend("Hello ")); from("direct:psk") - .toF(getProtocol() + "://localhost:%d/TestResource?advancedPskStore=#advancedPskStore", PORT7) + .toF(getProtocol() + "://localhost:%d/TestResource?advancedPskStore=#advancedPskStore", + PORT7.getPort()) .to("mock:result"); from("direct:pskciphersuite") .toF(getProtocol() + "://localhost:%d/TestResource?advancedPskStore=#advancedPskStore&cipherSuites=TLS_PSK_WITH_AES_128_GCM_SHA256", - PORT7) + PORT7.getPort()) .to("mock:result"); from("direct:pskx509") .toF(getProtocol() + "://localhost:%d/TestResource?advancedPskStore=#advancedPskStore&sslContextParameters=#clientSSLContextParameters", - PORT8) + PORT8.getPort()) .to("mock:result"); } diff --git a/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPComponentTest.java b/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPComponentTest.java index 7e1c268a5643..275395d13fe7 100644 --- a/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPComponentTest.java +++ b/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPComponentTest.java @@ -26,12 +26,14 @@ import org.eclipse.californium.core.CoapResponse; import org.eclipse.californium.core.coap.CoAP; import org.eclipse.californium.core.coap.MediaTypeRegistry; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import static org.junit.jupiter.api.Assertions.assertEquals; public class CoAPComponentTest extends CoAPTestSupport { - protected static final int TCP_PORT = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + static AvailablePortFinder.Port TCP_PORT = AvailablePortFinder.find(); @Produce("direct:start") protected ProducerTemplate sender; @@ -74,12 +76,12 @@ public class CoAPComponentTest extends CoAPTestSupport { public void configure() { fromF("coap://localhost:%d/TestResource", PORT).convertBodyTo(String.class).transform(body().prepend("Hello ")); - fromF("coap+tcp://localhost:%d/TestResource", TCP_PORT).convertBodyTo(String.class) + fromF("coap+tcp://localhost:%d/TestResource", TCP_PORT.getPort()).convertBodyTo(String.class) .transform(body().prepend("Hello ")); from("direct:start").toF("coap://localhost:%d/TestResource", PORT).to("mock:result"); - from("direct:starttcp").toF("coap+tcp://localhost:%d/TestResource", TCP_PORT).to("mock:result"); + from("direct:starttcp").toF("coap+tcp://localhost:%d/TestResource", TCP_PORT.getPort()).to("mock:result"); } }; } diff --git a/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPRestComponentTestBase.java b/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPRestComponentTestBase.java index c0748812a51a..8e2b22c3b968 100644 --- a/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPRestComponentTestBase.java +++ b/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPRestComponentTestBase.java @@ -33,11 +33,13 @@ import org.eclipse.californium.core.coap.CoAP.ResponseCode; import org.eclipse.californium.core.coap.MediaTypeRegistry; import org.eclipse.californium.elements.config.Configuration; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import static org.junit.jupiter.api.Assertions.assertEquals; abstract class CoAPRestComponentTestBase extends CamelTestSupport { - static int coapport = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + static AvailablePortFinder.Port coapport = AvailablePortFinder.find(); @Produce("direct:start") protected ProducerTemplate sender; @@ -48,7 +50,7 @@ abstract class CoAPRestComponentTestBase extends CamelTestSupport { CoapClient client; CoapResponse rsp; - client = new CoapClient(getProtocol() + "://localhost:" + coapport + "/TestResource/Ducky"); + client = new CoapClient(getProtocol() + "://localhost:" + coapport.getPort() + "/TestResource/Ducky"); decorateClient(client); rsp = client.get(); assertEquals(ResponseCode.CONTENT, rsp.getCode()); @@ -57,7 +59,7 @@ abstract class CoAPRestComponentTestBase extends CamelTestSupport { assertEquals(ResponseCode.CONTENT, rsp.getCode()); assertEquals("Hello Ducky: data", rsp.getResponseText()); - client = new CoapClient(getProtocol() + "://localhost:" + coapport + "/TestParams?id=Ducky"); + client = new CoapClient(getProtocol() + "://localhost:" + coapport.getPort() + "/TestParams?id=Ducky"); decorateClient(client); client.setTimeout(1000000L); rsp = client.get(); @@ -72,7 +74,7 @@ abstract class CoAPRestComponentTestBase extends CamelTestSupport { @Test void testCoAPMethodNotAllowedResponse() throws Exception { Configuration.createStandardWithoutFile(); - CoapClient client = new CoapClient(getProtocol() + "://localhost:" + coapport + "/TestResource/Ducky"); + CoapClient client = new CoapClient(getProtocol() + "://localhost:" + coapport.getPort() + "/TestResource/Ducky"); decorateClient(client); client.setTimeout(1000000L); CoapResponse rsp = client.delete(); @@ -82,7 +84,7 @@ abstract class CoAPRestComponentTestBase extends CamelTestSupport { @Test void testCoAPNotFoundResponse() throws Exception { Configuration.createStandardWithoutFile(); - CoapClient client = new CoapClient(getProtocol() + "://localhost:" + coapport + "/foo/bar/cheese"); + CoapClient client = new CoapClient(getProtocol() + "://localhost:" + coapport.getPort() + "/foo/bar/cheese"); decorateClient(client); client.setTimeout(1000000L); CoapResponse rsp = client.get(); @@ -125,7 +127,7 @@ abstract class CoAPRestComponentTestBase extends CamelTestSupport { @Override public void configure() { RestConfigurationDefinition restConfig - = restConfiguration().scheme(getProtocol()).host("localhost").port(coapport); + = restConfiguration().scheme(getProtocol()).host("localhost").port(coapport.getPort()); decorateRestConfiguration(restConfig); rest("/TestParams").get().to("direct:get1").post().to("direct:post1"); @@ -144,7 +146,7 @@ abstract class CoAPRestComponentTestBase extends CamelTestSupport { exchange.getMessage().setHeader(CoAPConstants.CONTENT_TYPE, ct); }); - from("direct:start").toF(getClientURI(), coapport).to("mock:result"); + from("direct:start").toF(getClientURI(), coapport.getPort()).to("mock:result"); } }; } diff --git a/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPRestContextPathTest.java b/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPRestContextPathTest.java index 6ec9633a2e0e..c8e8071fa7bd 100644 --- a/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPRestContextPathTest.java +++ b/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPRestContextPathTest.java @@ -39,7 +39,7 @@ public class CoAPRestContextPathTest extends CoAPTestSupport { return new RouteBuilder() { @Override public void configure() { - restConfiguration().host("localhost").port(PORT).contextPath("/rest/services"); + restConfiguration().host("localhost").port(PORT.getPort()).contextPath("/rest/services"); rest("/test").get("/a").to("direct:a"); from("direct:a").setBody(constant("GET: /test/a")); diff --git a/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPRestVerbTest.java b/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPRestVerbTest.java index 9656ce5dd419..0de80b3fe08d 100644 --- a/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPRestVerbTest.java +++ b/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPRestVerbTest.java @@ -84,7 +84,7 @@ public class CoAPRestVerbTest extends CoAPTestSupport { return new RouteBuilder() { @Override public void configure() { - restConfiguration().component("coap").host("localhost").port(PORT); + restConfiguration().component("coap").host("localhost").port(PORT.getPort()); rest() .get("/users").to("direct:users") diff --git a/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPTestSupport.java b/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPTestSupport.java index bf7a692e1c99..3862c91976c6 100644 --- a/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPTestSupport.java +++ b/components/camel-coap/src/test/java/org/apache/camel/coap/CoAPTestSupport.java @@ -21,10 +21,12 @@ import org.apache.camel.test.junit6.CamelTestSupport; import org.apache.camel.util.FileUtil; import org.eclipse.californium.core.CoapClient; import org.eclipse.californium.elements.config.Configuration; +import org.junit.jupiter.api.extension.RegisterExtension; public class CoAPTestSupport extends CamelTestSupport { - protected static final int PORT = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + static AvailablePortFinder.Port PORT = AvailablePortFinder.find(); @Override public void doPostSetup() { @@ -32,7 +34,7 @@ public class CoAPTestSupport extends CamelTestSupport { } protected CoapClient createClient(String path) { - return createClient(path, PORT); + return createClient(path, PORT.getPort()); } protected CoapClient createClient(String path, int port) { diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyBridgeHostHeaderIssueTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyBridgeHostHeaderIssueTest.java index 958552c9e71f..226e8f32f966 100644 --- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyBridgeHostHeaderIssueTest.java +++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyBridgeHostHeaderIssueTest.java @@ -21,17 +21,23 @@ import org.apache.camel.builder.RouteBuilder; 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 JettyBridgeHostHeaderIssueTest extends CamelTestSupport { - private int port; - private int port2; - private int port3; - private int port4; - private int port5; + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); + @RegisterExtension + AvailablePortFinder.Port port2 = AvailablePortFinder.find(); + @RegisterExtension + AvailablePortFinder.Port port3 = AvailablePortFinder.find(); + @RegisterExtension + AvailablePortFinder.Port port4 = AvailablePortFinder.find(); + @RegisterExtension + AvailablePortFinder.Port port5 = AvailablePortFinder.find(); private String receivedHostHeaderEndpoint1; private String receivedHostHeaderEndpoint2; private String receivedHostHeaderEndpoint3; @@ -45,75 +51,71 @@ public class JettyBridgeHostHeaderIssueTest extends CamelTestSupport { //The first call to our service will hit the first destination in the round robin load balancer //this destination has the preserveProxyHeader parameter set to true, so we verify the Host header //received by our downstream instance matches the address and port of the proxied service - Exchange reply = template.request("http:localhost:" + port + "/myapp", + Exchange reply = template.request("http:localhost:" + port.getPort() + "/myapp", exchange -> exchange.getIn().setBody("Hello World")); assertNotNull(reply); assertEquals("foo", reply.getMessage().getBody(String.class)); //assert the received Host header is localhost:port (where port matches the /myapp port) - assertEquals("localhost:" + port, receivedHostHeaderEndpoint1); + assertEquals("localhost:" + port.getPort(), receivedHostHeaderEndpoint1); //The second call to our service will hit the second destination in the round robin load balancer //this destination does not have the preserveProxyHeader, so we expect the Host header received by the destination //to match the url of the destination service itself - Exchange reply2 = template.request("http:localhost:" + port + "/myapp", + Exchange reply2 = template.request("http:localhost:" + port.getPort() + "/myapp", exchange -> exchange.getIn().setBody("Bye World")); assertNotNull(reply2); assertEquals("bar", reply2.getMessage().getBody(String.class)); //assert the received Host header is localhost:port3 (where port3 matches the /bar destination server) - assertEquals("localhost:" + port3, receivedHostHeaderEndpoint2); + assertEquals("localhost:" + port3.getPort(), receivedHostHeaderEndpoint2); //The next two calls will use/test the jetty producers in the round robin load balancer //The first has the preserveHostHeader option set to true, so we would expect to receive a Host header matching the /myapp proxied service - Exchange reply3 = template.request("http:localhost:" + port + "/myapp", + Exchange reply3 = template.request("http:localhost:" + port.getPort() + "/myapp", exchange -> exchange.getIn().setBody("Bye JWorld")); assertNotNull(reply3); assertEquals("jbar", reply3.getMessage().getBody(String.class)); //assert the received Host header is localhost:port (where port matches the /myapp destination server) - assertEquals("localhost:" + port, receivedHostHeaderEndpoint3); + assertEquals("localhost:" + port.getPort(), receivedHostHeaderEndpoint3); //The second does not have a preserveHostHeader (preserveHostHeader=false), we would expect to see a Host header matching the destination service - Exchange reply4 = template.request("http:localhost:" + port + "/myapp", + Exchange reply4 = template.request("http:localhost:" + port.getPort() + "/myapp", exchange -> exchange.getIn().setBody("JAVA!!!!")); assertNotNull(reply4); assertEquals("java???", reply4.getMessage().getBody(String.class)); //assert the received Host header is localhost:port5 (where port3 matches the /jbarf destination server) - assertEquals("localhost:" + port5, receivedHostHeaderEndpoint4); + assertEquals("localhost:" + port5.getPort(), receivedHostHeaderEndpoint4); } @Override protected RouteBuilder createRouteBuilder() { - port = AvailablePortFinder.getNextAvailable(); - port2 = AvailablePortFinder.getNextAvailable(); - port3 = AvailablePortFinder.getNextAvailable(); - port4 = AvailablePortFinder.getNextAvailable(); - port5 = AvailablePortFinder.getNextAvailable(); - return new RouteBuilder() { @Override public void configure() { - from("jetty:http://localhost:" + port + "/myapp?matchOnUriPrefix=true") + from("jetty:http://localhost:" + port.getPort() + "/myapp?matchOnUriPrefix=true") .loadBalance().roundRobin() - .to("http://localhost:" + port2 + .to("http://localhost:" + port2.getPort() + "/foo?bridgeEndpoint=true&throwExceptionOnFailure=false&preserveHostHeader=true") - .to("http://localhost:" + port3 + "/bar?bridgeEndpoint=true&throwExceptionOnFailure=false") - .to("http://localhost:" + port4 + .to("http://localhost:" + port3.getPort() + + "/bar?bridgeEndpoint=true&throwExceptionOnFailure=false") + .to("http://localhost:" + port4.getPort() + "/jbar?bridgeEndpoint=true&throwExceptionOnFailure=false&preserveHostHeader=true") - .to("http://localhost:" + port5 + "/jbarf?bridgeEndpoint=true&throwExceptionOnFailure=false"); + .to("http://localhost:" + port5.getPort() + + "/jbarf?bridgeEndpoint=true&throwExceptionOnFailure=false"); - from("jetty:http://localhost:" + port2 + "/foo") + from("jetty:http://localhost:" + port2.getPort() + "/foo") .process(exchange -> receivedHostHeaderEndpoint1 = exchange.getIn().getHeader("Host", String.class)) .transform().constant("foo"); - from("jetty:http://localhost:" + port3 + "/bar") + from("jetty:http://localhost:" + port3.getPort() + "/bar") .process(exchange -> receivedHostHeaderEndpoint2 = exchange.getIn().getHeader("Host", String.class)) .transform().constant("bar"); - from("jetty:http://localhost:" + port4 + "/jbar") + from("jetty:http://localhost:" + port4.getPort() + "/jbar") .process(exchange -> receivedHostHeaderEndpoint3 = exchange.getIn().getHeader("Host", String.class)) .transform().constant("jbar"); - from("jetty:http://localhost:" + port5 + "/jbarf") + from("jetty:http://localhost:" + port5.getPort() + "/jbarf") .process(exchange -> receivedHostHeaderEndpoint4 = exchange.getIn().getHeader("Host", String.class)) .transform().constant("java???"); } diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyFailoverRoundRobinTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyFailoverRoundRobinTest.java index 5259ff901d44..b668b8e57f06 100644 --- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyFailoverRoundRobinTest.java +++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyFailoverRoundRobinTest.java @@ -22,20 +22,23 @@ 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; import static org.junit.jupiter.api.Assertions.assertEquals; public class JettyFailoverRoundRobinTest extends CamelTestSupport { + private static int port1 = AvailablePortFinder.getNextAvailable(); + private static int port2 = AvailablePortFinder.getNextAvailable(); + private static int port3 = AvailablePortFinder.getNextAvailable(); + private static int port4 = AvailablePortFinder.getNextAvailable(); - @RegisterExtension - AvailablePortFinder.Port port1 = AvailablePortFinder.find(); - @RegisterExtension - AvailablePortFinder.Port port2 = AvailablePortFinder.find(); - @RegisterExtension - AvailablePortFinder.Port port3 = AvailablePortFinder.find(); - @RegisterExtension - AvailablePortFinder.Port port4 = AvailablePortFinder.find(); + private String bad = "jetty:http://localhost:" + port1 + "/bad"; + private String bad2 = "jetty:http://localhost:" + port2 + "/bad2"; + private String good = "jetty:http://localhost:" + port3 + "/good"; + private String good2 = "jetty:http://localhost:" + port4 + "/good2"; + private String hbad = "http://localhost:" + port1 + "/bad"; + private String hbad2 = "http://localhost:" + port2 + "/bad2"; + private String hgood = "http://localhost:" + port3 + "/good"; + private String hgood2 = "http://localhost:" + port4 + "/good2"; @Test void testJettyFailoverRoundRobin() throws Exception { @@ -75,31 +78,28 @@ public class JettyFailoverRoundRobinTest extends CamelTestSupport { // -1 is to indicate that failover LB should newer exhaust and keep trying .loadBalance().failover(-1, false, true) // this is the four endpoints we will load balance with failover - .to("http://localhost:" + port1.getPort() + "/bad", - "http://localhost:" + port2.getPort() + "/bad2", - "http://localhost:" + port3.getPort() + "/good", - "http://localhost:" + port4.getPort() + "/good2"); + .to(hbad, hbad2, hgood, hgood2); // END SNIPPET: e1 - from("jetty:http://localhost:" + port1.getPort() + "/bad") + from(bad) .to("mock:bad") .process(exchange -> { exchange.getIn().setHeader(Exchange.HTTP_RESPONSE_CODE, 500); exchange.getIn().setBody("Something bad happened"); }); - from("jetty:http://localhost:" + port2.getPort() + "/bad2") + from(bad2) .to("mock:bad2") .process(exchange -> { exchange.getIn().setHeader(Exchange.HTTP_RESPONSE_CODE, 404); exchange.getIn().setBody("Not found"); }); - from("jetty:http://localhost:" + port3.getPort() + "/good") + from(good) .to("mock:good") .process(exchange -> exchange.getIn().setBody("Good")); - from("jetty:http://localhost:" + port4.getPort() + "/good2") + from(good2) .to("mock:good2") .process(exchange -> exchange.getIn().setBody("Also good")); } diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyValidatorStreamTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyValidatorStreamTest.java index 625f5cefb1ca..84495419659e 100644 --- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyValidatorStreamTest.java +++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyValidatorStreamTest.java @@ -22,31 +22,31 @@ import org.apache.camel.builder.RouteBuilder; 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 JettyValidatorStreamTest extends CamelTestSupport { - private int port; + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); @Test void testValideRequestAsStream() { InputStream inputStream = this.getClass().getResourceAsStream("ValidRequest.xml"); assertNotNull(inputStream, "The inputStream should not be null"); - String response = template.requestBody("http://localhost:" + port + "/test", inputStream, String.class); + String response = template.requestBody("http://localhost:" + port.getPort() + "/test", inputStream, String.class); assertEquals("<ok/>", response, "The response should be ok"); } @Override protected RouteBuilder createRouteBuilder() { - port = AvailablePortFinder.getNextAvailable(); - return new RouteBuilder() { @Override public void configure() { - from("jetty:http://localhost:" + port + "/test") + from("jetty:http://localhost:" + port.getPort() + "/test") .to("validator:OptimizationRequest.xsd") .transform(constant("<ok/>")); } diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyValidatorStreamWithStreamCachingEnabledTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyValidatorStreamWithStreamCachingEnabledTest.java index b2865afa73fa..42151c3bbc50 100644 --- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyValidatorStreamWithStreamCachingEnabledTest.java +++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyValidatorStreamWithStreamCachingEnabledTest.java @@ -22,33 +22,33 @@ import org.apache.camel.builder.RouteBuilder; 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 JettyValidatorStreamWithStreamCachingEnabledTest extends CamelTestSupport { - private int port; + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); @Test void testValideRequestAsStream() { InputStream inputStream = this.getClass().getResourceAsStream("ValidRequest.xml"); assertNotNull(inputStream, "The inputStream should not be null"); - String response = template.requestBody("http://localhost:" + port + "/test", inputStream, String.class); + String response = template.requestBody("http://localhost:" + port.getPort() + "/test", inputStream, String.class); assertEquals("<ok/>", response, "The response should be ok"); } @Override protected RouteBuilder createRouteBuilder() { - port = AvailablePortFinder.getNextAvailable(); - return new RouteBuilder() { @Override public void configure() { context.setStreamCaching(true); - from("jetty:http://localhost:" + port + "/test") + from("jetty:http://localhost:" + port.getPort() + "/test") .to("validator:OptimizationRequest.xsd") .transform(constant("<ok/>")); } diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyValidatorTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyValidatorTest.java index aa39f8b365c2..e85325979949 100644 --- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyValidatorTest.java +++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyValidatorTest.java @@ -23,20 +23,22 @@ import org.apache.camel.builder.RouteBuilder; 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 JettyValidatorTest extends CamelTestSupport { - private int port; + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); @Test void testValidRequest() { InputStream inputStream = this.getClass().getResourceAsStream("ValidRequest.xml"); assertNotNull(inputStream, "The inputStream should not be null"); - String response = template.requestBody("http://localhost:" + port + "/test", inputStream, String.class); + String response = template.requestBody("http://localhost:" + port.getPort() + "/test", inputStream, String.class); assertEquals("<ok/>", response, "The response should be ok"); } @@ -46,17 +48,15 @@ public class JettyValidatorTest extends CamelTestSupport { InputStream inputStream = this.getClass().getResourceAsStream("InvalidRequest.xml"); assertNotNull(inputStream, "The inputStream should not be null"); - String response = template.requestBody("http://localhost:" + port + "/test", inputStream, String.class); + String response = template.requestBody("http://localhost:" + port.getPort() + "/test", inputStream, String.class); assertEquals("<error/>", response, "The response should be error"); } @Override protected RouteBuilder createRouteBuilder() { - port = AvailablePortFinder.getNextAvailable(); - return new RouteBuilder() { public void configure() { - from("jetty:http://localhost:" + port + "/test") + from("jetty:http://localhost:" + port.getPort() + "/test") .convertBodyTo(String.class) .to("log:in") .doTry() diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyXsltHttpTemplateTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyXsltHttpTemplateTest.java index 1bb49243c845..5499be9732be 100644 --- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyXsltHttpTemplateTest.java +++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyXsltHttpTemplateTest.java @@ -23,20 +23,22 @@ import org.apache.camel.test.AvailablePortFinder; import org.apache.camel.test.junit6.CamelTestSupport; import org.awaitility.Awaitility; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; public class JettyXsltHttpTemplateTest extends CamelTestSupport { - private int port; + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); @Test void testXsltHttpTemplate() throws Exception { // give Jetty a bit of time to startup and be ready Awaitility.await().atMost(1, TimeUnit.SECONDS).until(() -> context.isStarted()); - String xml = template.requestBody("xslt:http://0.0.0.0:" + port + "/myxslt", + String xml = template.requestBody("xslt:http://0.0.0.0:" + port.getPort() + "/myxslt", "<mail><subject>Hey</subject><body>Hello world!</body></mail>", String.class); assertNotNull(xml, "The transformed XML should not be null"); @@ -49,12 +51,10 @@ public class JettyXsltHttpTemplateTest extends CamelTestSupport { @Override protected RouteBuilder createRouteBuilder() { - port = AvailablePortFinder.getNextAvailable(); - return new RouteBuilder() { @Override public void configure() { - from("jetty:http://0.0.0.0:" + port + "/myxslt") + from("jetty:http://0.0.0.0:" + port.getPort() + "/myxslt") .pollEnrich( "file://src/test/resources/org/apache/camel/component/jetty/?fileName=transform.xsl&noop=true&readLock=none", 2000) diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyXsltTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyXsltTest.java index 408d9115af60..44671ea2fef5 100644 --- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyXsltTest.java +++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyXsltTest.java @@ -26,6 +26,7 @@ import org.apache.camel.test.AvailablePortFinder; import org.apache.camel.test.junit6.CamelTestSupport; import org.apache.camel.util.ObjectHelper; 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.assertThrows; @@ -33,7 +34,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue; public class JettyXsltTest extends CamelTestSupport { - private int port; + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); @Test void testClasspath() { @@ -56,7 +58,7 @@ public class JettyXsltTest extends CamelTestSupport { @Test void testHttp() { - String response = template.requestBody("xslt://http://localhost:" + port + "/test?name=greeting.xsl", + String response = template.requestBody("xslt://http://localhost:" + port.getPort() + "/test?name=greeting.xsl", "<hello>Camel</hello>", String.class); assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?><goodbye>Camel</goodbye>", response); @@ -64,11 +66,9 @@ public class JettyXsltTest extends CamelTestSupport { @Override protected RouteBuilder createRouteBuilder() { - port = AvailablePortFinder.getNextAvailable(); - return new RouteBuilder() { public void configure() { - from("jetty:http://localhost:" + port + "/test") + from("jetty:http://localhost:" + port.getPort() + "/test") .process(exchange -> { String name = exchange.getIn().getHeader("name", String.class); ObjectHelper.notNull(name, "name"); diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/SpringFailoverRoundRobinTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/SpringFailoverRoundRobinTest.java index deccf1deb9a7..38ab1102a984 100644 --- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/SpringFailoverRoundRobinTest.java +++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/SpringFailoverRoundRobinTest.java @@ -20,6 +20,7 @@ import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.AvailablePortFinder; import org.apache.camel.test.spring.junit6.CamelSpringTestSupport; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import org.springframework.context.support.AbstractXmlApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -27,22 +28,23 @@ import static org.junit.jupiter.api.Assertions.assertEquals; public class SpringFailoverRoundRobinTest extends CamelSpringTestSupport { - private static int port1 = AvailablePortFinder.getNextAvailable(); - private static int port2 = AvailablePortFinder.getNextAvailable(); - private static int port3 = AvailablePortFinder.getNextAvailable(); - private static int port4 = AvailablePortFinder.getNextAvailable(); - - static { - //set them as system properties so Spring can use the property placeholder - //things to set them into the URL's in the spring contexts - System.setProperty("JettySpringFailoverRoundRobinTest.port1", Integer.toString(port1)); - System.setProperty("JettySpringFailoverRoundRobinTest.port2", Integer.toString(port2)); - System.setProperty("JettySpringFailoverRoundRobinTest.port3", Integer.toString(port3)); - System.setProperty("JettySpringFailoverRoundRobinTest.port4", Integer.toString(port4)); - } + @RegisterExtension + AvailablePortFinder.Port port1 = AvailablePortFinder.find(); + @RegisterExtension + AvailablePortFinder.Port port2 = AvailablePortFinder.find(); + @RegisterExtension + AvailablePortFinder.Port port3 = AvailablePortFinder.find(); + @RegisterExtension + AvailablePortFinder.Port port4 = AvailablePortFinder.find(); @Override protected AbstractXmlApplicationContext createApplicationContext() { + //set them as system properties so Spring can use the property placeholder + //things to set them into the URL's in the spring contexts + System.setProperty("JettySpringFailoverRoundRobinTest.port1", Integer.toString(port1.getPort())); + System.setProperty("JettySpringFailoverRoundRobinTest.port2", Integer.toString(port2.getPort())); + System.setProperty("JettySpringFailoverRoundRobinTest.port3", Integer.toString(port3.getPort())); + System.setProperty("JettySpringFailoverRoundRobinTest.port4", Integer.toString(port4.getPort())); return new ClassPathXmlApplicationContext("/org/apache/camel/component/jetty/JettySpringFailoverRoundRobinTest.xml"); } diff --git a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestJettyRedirectTest.java b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestJettyRedirectTest.java index 4cad70b0e238..dc9e6b3ef807 100644 --- a/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestJettyRedirectTest.java +++ b/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/rest/RestJettyRedirectTest.java @@ -22,31 +22,33 @@ import org.apache.camel.component.http.HttpComponent; 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; public class RestJettyRedirectTest extends CamelTestSupport { - private int port; + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); @Test void testRedirectInvocation() { - String response = template.requestBody("http://localhost:" + port + "/metadata/profile/tag", "<hello>Camel</hello>", + String response = template.requestBody("http://localhost:" + port.getPort() + "/metadata/profile/tag", + "<hello>Camel</hello>", String.class); assertEquals("Mock profile", response, "It should support the redirect out of box."); } @Override protected RouteBuilder createRouteBuilder() { - port = AvailablePortFinder.getNextAvailable(); - return new RouteBuilder() { public void configure() { // enable follow redirects HttpComponent http = context.getComponent("http", HttpComponent.class); http.setFollowRedirects(true); - restConfiguration().component("jetty").host("localhost").scheme("http").port(port).producerComponent("http"); + restConfiguration().component("jetty").host("localhost").scheme("http").port(port.getPort()) + .producerComponent("http"); rest("/metadata/profile") .get("/{id}").to("direct:profileLookup") .post("/tag").to("direct:tag"); diff --git a/components/camel-platform-http-main/src/test/java/org/apache/camel/component/platform/http/main/MainHttpServerRouteTest.java b/components/camel-platform-http-main/src/test/java/org/apache/camel/component/platform/http/main/MainHttpServerRouteTest.java index 2998a7b3bca5..7e351f5174d6 100644 --- a/components/camel-platform-http-main/src/test/java/org/apache/camel/component/platform/http/main/MainHttpServerRouteTest.java +++ b/components/camel-platform-http-main/src/test/java/org/apache/camel/component/platform/http/main/MainHttpServerRouteTest.java @@ -28,12 +28,14 @@ import org.apache.camel.test.AvailablePortFinder; 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; class MainHttpServerRouteTest { - private static final int port = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + static AvailablePortFinder.Port port = AvailablePortFinder.find(); private static CamelContext camelContext; @@ -52,7 +54,7 @@ class MainHttpServerRouteTest { // MainHttpServer needs to get registered/started explicitly // https://issues.apache.org/jira/browse/CAMEL-21741 MainHttpServer httpServer = new MainHttpServer(); - httpServer.setPort(port); + httpServer.setPort(port.getPort()); camelContext.addService(httpServer); camelContext.start(); @@ -69,7 +71,7 @@ class MainHttpServerRouteTest { public void routeStatusOk() throws Exception { HttpRequest request = HttpRequest.newBuilder() - .uri(URI.create("http://localhost:" + port + "/hello")) + .uri(URI.create("http://localhost:" + port.getPort() + "/hello")) .build(); HttpResponse<String> response = HttpClient.newBuilder().build() diff --git a/components/camel-platform-http-main/src/test/java/org/apache/camel/component/platform/http/main/ManagementHttpServerTest.java b/components/camel-platform-http-main/src/test/java/org/apache/camel/component/platform/http/main/ManagementHttpServerTest.java index 46600a4aeae0..7d451dab1238 100644 --- a/components/camel-platform-http-main/src/test/java/org/apache/camel/component/platform/http/main/ManagementHttpServerTest.java +++ b/components/camel-platform-http-main/src/test/java/org/apache/camel/component/platform/http/main/ManagementHttpServerTest.java @@ -26,6 +26,7 @@ import org.apache.camel.CamelContext; import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.test.AvailablePortFinder; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -33,7 +34,8 @@ class ManagementHttpServerTest { private CamelContext camelContext; - private final int port = AvailablePortFinder.getNextAvailable(); + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); @Test public void statusIsNotSatisfied() throws IOException, InterruptedException { @@ -45,7 +47,7 @@ class ManagementHttpServerTest { camelContext.getRegistry().bind("fake", new MainHttpFakeHealthCheck()); server.setHost("0.0.0.0"); - server.setPort(port); + server.setPort(port.getPort()); server.setPath("/"); server.setHealthCheckEnabled(true); @@ -53,7 +55,7 @@ class ManagementHttpServerTest { server.start(); HttpRequest request = HttpRequest.newBuilder() - .uri(URI.create("http://localhost:" + port + "/q/health/ready")) + .uri(URI.create("http://localhost:" + port.getPort() + "/q/health/ready")) .build(); HttpResponse<String> response = HttpClient.newBuilder().build().send(request, HttpResponse.BodyHandlers.ofString()); diff --git a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/RestOpenApiCodeFirstOnExceptionIssueTest.java b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/RestOpenApiCodeFirstOnExceptionIssueTest.java index 520a484c4160..2420fd576deb 100644 --- a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/RestOpenApiCodeFirstOnExceptionIssueTest.java +++ b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/RestOpenApiCodeFirstOnExceptionIssueTest.java @@ -24,10 +24,13 @@ import org.apache.camel.impl.DefaultCamelContext; 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 io.restassured.RestAssured.given; public class RestOpenApiCodeFirstOnExceptionIssueTest extends CamelTestSupport { + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); @Override protected boolean useJmx() { @@ -110,11 +113,10 @@ public class RestOpenApiCodeFirstOnExceptionIssueTest extends CamelTestSupport { @Override public CamelContext createCamelContext() throws Exception { - int port = AvailablePortFinder.getNextAvailable(); VertxPlatformHttpServerConfiguration conf = new VertxPlatformHttpServerConfiguration(); - conf.setBindPort(port); + conf.setBindPort(port.getPort()); - RestAssured.port = port; + RestAssured.port = port.getPort(); CamelContext context = new DefaultCamelContext(); context.addService(new VertxPlatformHttpServer(conf)); diff --git a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/RestOpenApiContractFirstOnExceptionIssueTest.java b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/RestOpenApiContractFirstOnExceptionIssueTest.java index df56c22a13cf..498927848c23 100644 --- a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/RestOpenApiContractFirstOnExceptionIssueTest.java +++ b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/RestOpenApiContractFirstOnExceptionIssueTest.java @@ -24,10 +24,13 @@ import org.apache.camel.impl.DefaultCamelContext; 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 io.restassured.RestAssured.given; public class RestOpenApiContractFirstOnExceptionIssueTest extends CamelTestSupport { + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); @Override protected boolean useJmx() { @@ -102,11 +105,10 @@ public class RestOpenApiContractFirstOnExceptionIssueTest extends CamelTestSuppo @Override public CamelContext createCamelContext() throws Exception { - int port = AvailablePortFinder.getNextAvailable(); VertxPlatformHttpServerConfiguration conf = new VertxPlatformHttpServerConfiguration(); - conf.setBindPort(port); + conf.setBindPort(port.getPort()); - RestAssured.port = port; + RestAssured.port = port.getPort(); CamelContext context = new DefaultCamelContext(); context.addService(new VertxPlatformHttpServer(conf)); diff --git a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpAuthenticationTest.java b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpAuthenticationTest.java index fa63c984af93..8f2c54a7beb6 100644 --- a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpAuthenticationTest.java +++ b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpAuthenticationTest.java @@ -32,11 +32,14 @@ import org.apache.camel.component.platform.http.vertx.auth.AuthenticationConfig. import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.test.AvailablePortFinder; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import static io.restassured.RestAssured.given; import static org.hamcrest.Matchers.equalTo; public class VertxPlatformHttpAuthenticationTest { + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); @Test public void testAuthenticationDisabled() throws Exception { @@ -287,9 +290,8 @@ public class VertxPlatformHttpAuthenticationTest { private CamelContext createCamelContext(AuthenticationConfigCustomizer customizer) throws Exception { - int bindPort = AvailablePortFinder.getNextAvailable(); - RestAssured.port = bindPort; - return createCamelContext(bindPort, customizer); + RestAssured.port = port.getPort(); + return createCamelContext(port.getPort(), customizer); } private CamelContext createCamelContext(int bindPort, AuthenticationConfigCustomizer customizer) diff --git a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpCookieTest.java b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpCookieTest.java index b042fed5094f..6a1e5b27332c 100644 --- a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpCookieTest.java +++ b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpCookieTest.java @@ -25,6 +25,7 @@ import org.apache.camel.component.platform.http.cookie.CookieHandler; import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.test.AvailablePortFinder; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import static io.restassured.RestAssured.given; import static io.restassured.matcher.RestAssuredMatchers.detailedCookie; @@ -32,6 +33,8 @@ import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.notNullValue; public class VertxPlatformHttpCookieTest { + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); // add a cookie using the default cookie configuration @Test @@ -250,12 +253,11 @@ public class VertxPlatformHttpCookieTest { return exchange.getProperty(Exchange.COOKIE_HANDLER, CookieHandler.class); } - static CamelContext createCamelContext() throws Exception { - int port = AvailablePortFinder.getNextAvailable(); + CamelContext createCamelContext() throws Exception { VertxPlatformHttpServerConfiguration conf = new VertxPlatformHttpServerConfiguration(); - conf.setBindPort(port); + conf.setBindPort(port.getPort()); - RestAssured.port = port; + RestAssured.port = port.getPort(); CamelContext context = new DefaultCamelContext(); context.addService(new VertxPlatformHttpServer(conf)); diff --git a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpEngineTest.java b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpEngineTest.java index 249d624e5796..a49e136363fe 100644 --- a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpEngineTest.java +++ b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpEngineTest.java @@ -65,6 +65,7 @@ import org.apache.camel.test.AvailablePortFinder; import org.apache.hc.client5.http.utils.Base64; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import static io.restassured.RestAssured.get; import static io.restassured.RestAssured.given; @@ -82,6 +83,13 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; public class VertxPlatformHttpEngineTest { + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); + @RegisterExtension + AvailablePortFinder.Port port2 = AvailablePortFinder.find(); + @RegisterExtension + AvailablePortFinder.Port port3 = AvailablePortFinder.find(); + public static SSLContextParameters serverSSLParameters; public static SSLContextParameters clientSSLParameters; @@ -123,7 +131,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testEngineSetup() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.start(); @@ -140,7 +148,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testEngine() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); VertxPlatformHttpServer platformHttpServer; try { @@ -197,7 +205,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testSlowConsumer() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.getRegistry().bind( @@ -232,7 +240,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testSlowConsumerWithTimeout() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.getRegistry().bind( @@ -266,7 +274,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testTimeoutNotExceeded() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); String response = "Request did not time out"; try { @@ -295,7 +303,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testFailingConsumer() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.addRoutes(new RouteBuilder() { @@ -325,7 +333,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testEngineSSL() throws Exception { final CamelContext context - = createCamelContext(configuration -> configuration.setSslContextParameters(serverSSLParameters)); + = createCamelContextForTest(configuration -> configuration.setSslContextParameters(serverSSLParameters)); try { context.getRegistry().bind("clientSSLContextParameters", clientSSLParameters); @@ -352,7 +360,8 @@ public class VertxPlatformHttpEngineTest { @Test public void testEngineGlobalSSL() throws Exception { - final CamelContext context = createCamelContext(configuration -> configuration.setUseGlobalSslContextParameters(true)); + final CamelContext context + = createCamelContextForTest(configuration -> configuration.setUseGlobalSslContextParameters(true)); try { context.setSSLContextParameters(serverSSLParameters); @@ -381,7 +390,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testEngineCORS() throws Exception { - final CamelContext context = createCamelContext(configuration -> { + final CamelContext context = createCamelContextForTest(configuration -> { configuration.getCors().setEnabled(true); configuration.getCors().setMethods(Arrays.asList("GET", "POST")); }); @@ -419,7 +428,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testMatchOnUriPrefix() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { final String greeting = "Hello Camel"; context.addRoutes(new RouteBuilder() { @@ -476,7 +485,7 @@ public class VertxPlatformHttpEngineTest { Files.write(tempFile.toPath(), fileContent.getBytes(StandardCharsets.UTF_8)); } - final CamelContext context = createCamelContext(configuration -> { + final CamelContext context = createCamelContextForTest(configuration -> { VertxPlatformHttpServerConfiguration.BodyHandler bodyHandler = new VertxPlatformHttpServerConfiguration.BodyHandler(); // turn on file uploads @@ -528,7 +537,7 @@ public class VertxPlatformHttpEngineTest { final String attachmentId = "myTestFile"; final String fileContent = "Test multipart upload content"; final File tempFile = File.createTempFile("platform-http", ".txt"); - final CamelContext context = createCamelContext(configuration -> { + final CamelContext context = createCamelContextForTest(configuration -> { VertxPlatformHttpServerConfiguration.BodyHandler bodyHandler = new VertxPlatformHttpServerConfiguration.BodyHandler(); // turn on file uploads @@ -573,7 +582,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testFormPost() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.addRoutes(new RouteBuilder() { @@ -601,7 +610,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testTextContentPost() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.addRoutes(new RouteBuilder() { @@ -630,7 +639,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testRestCORSWitchConsumes() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.addRoutes(new RouteBuilder() { @@ -670,7 +679,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testBodyClientRequestValidation() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.addRoutes(new RouteBuilder() { @@ -723,7 +732,7 @@ public class VertxPlatformHttpEngineTest { AuthenticationProvider authProvider = PropertyFileAuthentication.create(vertx, "authentication/auth.properties"); BasicAuthHandler basicAuthHandler = BasicAuthHandler.create(authProvider); - CamelContext context = createCamelContext(); + CamelContext context = createCamelContextForTest(); context.addRoutes(new RouteBuilder() { @Override public void configure() { @@ -772,7 +781,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testRequestBodyAllowed() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.addRoutes(new RouteBuilder() { @@ -810,7 +819,7 @@ public class VertxPlatformHttpEngineTest { public void testRequestBodyAllowedFormUrlEncoded() throws Exception { // Methods that are allowed a request body by Vert.x web for application/x-www-form-urlencoded final List<Method> methodsWithBodyAllowed = List.of(Method.POST, Method.PUT, Method.PATCH, Method.DELETE); - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.addRoutes(new RouteBuilder() { @@ -848,7 +857,7 @@ public class VertxPlatformHttpEngineTest { @Test public void responseHeaders() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.addRoutes(new RouteBuilder() { @@ -881,7 +890,7 @@ public class VertxPlatformHttpEngineTest { @Test public void responseMultipleHeaders() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.addRoutes(new RouteBuilder() { @@ -911,7 +920,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testConsumerSuspended() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.addRoutes(new RouteBuilder() { @@ -947,7 +956,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testInvalidContentTypeClientRequestValidation() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.addRoutes(new RouteBuilder() { @@ -982,7 +991,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testLocalAddressHeader() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.addRoutes(new RouteBuilder() { @@ -1011,7 +1020,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testRemoteAddressHeader() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.addRoutes(new RouteBuilder() { @@ -1040,7 +1049,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testVertxRequestResponseObjects() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.addRoutes(new RouteBuilder() { @@ -1070,7 +1079,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testAddCookie() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.addRoutes(new RouteBuilder() { @@ -1103,7 +1112,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testRemoveCookie() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.addRoutes(new RouteBuilder() { @@ -1139,7 +1148,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testReplaceCookie() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.addRoutes(new RouteBuilder() { @@ -1177,7 +1186,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testResponseTypeConversionErrorHandled() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.addRoutes(new RouteBuilder() { @@ -1201,7 +1210,7 @@ public class VertxPlatformHttpEngineTest { @Test public void testResponseBadQueryParamErrorHandled() throws Exception { - final CamelContext context = createCamelContext(); + final CamelContext context = createCamelContextForTest(); try { context.addRoutes(new RouteBuilder() { @@ -1228,8 +1237,8 @@ public class VertxPlatformHttpEngineTest { // This test simulates CAMEL-22937: when both main server and management server are running, // findSingleByType returns null because there are multiple instances of VertxPlatformHttpServer. // The engine should prefer the main server (SERVER_TYPE_SERVER) over the management server. - int mainPort = AvailablePortFinder.getNextAvailable(); - int managementPort = AvailablePortFinder.getNextAvailable(); + int mainPort = port2.getPort(); + int managementPort = port3.getPort(); VertxPlatformHttpServerConfiguration mainConf = new VertxPlatformHttpServerConfiguration(); mainConf.setBindPort(mainPort); @@ -1285,16 +1294,8 @@ public class VertxPlatformHttpEngineTest { // camel.server.port = 8084 // camel.management.port = 8083 // The engine should always prefer the main server port. - int serverPort = 8084; - int managementPort = 8083; - - // Check if ports are available, otherwise use dynamic ports - if (!isPortAvailable(serverPort)) { - serverPort = AvailablePortFinder.getNextAvailable(); - } - if (!isPortAvailable(managementPort)) { - managementPort = AvailablePortFinder.getNextAvailable(); - } + int serverPort = port2.getPort(); + int managementPort = port3.getPort(); VertxPlatformHttpServerConfiguration mainConf = new VertxPlatformHttpServerConfiguration(); mainConf.setBindPort(serverPort); @@ -1343,21 +1344,27 @@ public class VertxPlatformHttpEngineTest { } } - private boolean isPortAvailable(int port) { - try (java.net.ServerSocket socket = new java.net.ServerSocket(port)) { - socket.setReuseAddress(true); - return true; - } catch (java.io.IOException e) { - return false; - } - } - static CamelContext createCamelContext() throws Exception { - return createCamelContext(null); + return createCamelContext(AvailablePortFinder.find().getPort(), null); } static CamelContext createCamelContext(ServerConfigurationCustomizer customizer) throws Exception { - int port = AvailablePortFinder.getNextAvailable(); + return createCamelContext(AvailablePortFinder.find().getPort(), customizer); + } + + CamelContext createCamelContextForTest() throws Exception { + return createCamelContext(port.getPort(), null); + } + + CamelContext createCamelContextForTest(ServerConfigurationCustomizer customizer) throws Exception { + return createCamelContext(port.getPort(), customizer); + } + + static CamelContext createCamelContext(int port) throws Exception { + return createCamelContext(port, null); + } + + static CamelContext createCamelContext(int port, ServerConfigurationCustomizer customizer) throws Exception { VertxPlatformHttpServerConfiguration conf = new VertxPlatformHttpServerConfiguration(); conf.setBindPort(port); diff --git a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpNoBodyHandlerTest.java b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpNoBodyHandlerTest.java index 48b23bd37d1a..216b1ed36ceb 100644 --- a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpNoBodyHandlerTest.java +++ b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpNoBodyHandlerTest.java @@ -24,6 +24,7 @@ import org.apache.camel.test.AvailablePortFinder; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.containing; @@ -34,11 +35,14 @@ import static io.restassured.RestAssured.given; import static org.hamcrest.Matchers.is; public class VertxPlatformHttpNoBodyHandlerTest { - private final int port = AvailablePortFinder.getNextAvailable(); - private final WireMockServer wireMockServer = new WireMockServer(options().port(port)); + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); + + private WireMockServer wireMockServer; @BeforeEach void before() { + wireMockServer = new WireMockServer(options().port(port.getPort())); wireMockServer.stubFor(post(urlPathEqualTo("/test")) .withRequestBody(containing("Hello World")) .willReturn(aResponse() diff --git a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpPooledExchangeTest.java b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpPooledExchangeTest.java index 1ca531ce8781..392d91893d6c 100644 --- a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpPooledExchangeTest.java +++ b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpPooledExchangeTest.java @@ -31,6 +31,7 @@ import org.apache.camel.spi.PooledObjectFactory; import org.apache.camel.test.AvailablePortFinder; import org.awaitility.Awaitility; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import static io.restassured.RestAssured.get; import static org.assertj.core.api.Assertions.assertThat; @@ -38,6 +39,8 @@ import static org.hamcrest.Matchers.is; import static org.junit.jupiter.api.Assertions.assertEquals; public class VertxPlatformHttpPooledExchangeTest { + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); @Test public void testEngineSetup() throws Exception { @@ -93,16 +96,15 @@ public class VertxPlatformHttpPooledExchangeTest { } } - static CamelContext createCamelContext() throws Exception { + CamelContext createCamelContext() throws Exception { return createCamelContext(null); } - private static CamelContext createCamelContext(ServerConfigurationCustomizer customizer) throws Exception { - int port = AvailablePortFinder.getNextAvailable(); + private CamelContext createCamelContext(ServerConfigurationCustomizer customizer) throws Exception { VertxPlatformHttpServerConfiguration conf = new VertxPlatformHttpServerConfiguration(); - conf.setBindPort(port); + conf.setBindPort(port.getPort()); - RestAssured.port = port; + RestAssured.port = port.getPort(); if (customizer != null) { customizer.customize(conf); diff --git a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpProxyTest.java b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpProxyTest.java index b393b4dd7f09..e2a3083be4bc 100644 --- a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpProxyTest.java +++ b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpProxyTest.java @@ -25,6 +25,7 @@ import org.apache.camel.builder.RouteBuilder; import org.apache.camel.test.AvailablePortFinder; import org.junit.jupiter.api.AfterEach; 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.ValueSource; @@ -36,11 +37,14 @@ import static io.restassured.RestAssured.given; import static org.hamcrest.Matchers.containsString; public class VertxPlatformHttpProxyTest { - private final int port = AvailablePortFinder.getNextAvailable(); - private final WireMockServer wireMockServer = new WireMockServer(options().port(port)); + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); + + private WireMockServer wireMockServer; @BeforeEach void before() { + wireMockServer = new WireMockServer(options().port(port.getPort())); wireMockServer.stubFor(get(urlPathEqualTo("/")) .willReturn(aResponse() .withBody( diff --git a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpSessionTest.java b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpSessionTest.java index 8f6dd316ff09..77bd6da80f21 100644 --- a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpSessionTest.java +++ b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpSessionTest.java @@ -34,6 +34,7 @@ import org.apache.camel.http.base.cookie.InstanceCookieHandler; import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.test.AvailablePortFinder; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import static io.restassured.RestAssured.given; import static io.restassured.matcher.RestAssuredMatchers.detailedCookie; @@ -43,6 +44,10 @@ import static org.hamcrest.Matchers.nullValue; import static org.junit.jupiter.api.Assertions.*; public class VertxPlatformHttpSessionTest { + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); + @RegisterExtension + AvailablePortFinder.Port sessionPort = AvailablePortFinder.find(); @Test public void testSessionDisabled() throws Exception { @@ -160,8 +165,7 @@ public class VertxPlatformHttpSessionTest { @Test public void testSessionHandling() throws Exception { - int port = AvailablePortFinder.getNextAvailable(); - CamelContext context = createCamelContext(port, + CamelContext context = createCamelContext(sessionPort.getPort(), sessionConfig -> { sessionConfig.setEnabled(true); }); @@ -177,7 +181,7 @@ public class VertxPlatformHttpSessionTest { from("direct:session") .toF("http://localhost:%d/session?cookieHandler=#instanceCookieHander", - port); + sessionPort.getPort()); } }); @@ -211,9 +215,8 @@ public class VertxPlatformHttpSessionTest { private CamelContext createCamelContext(SessionConfigCustomizer customizer) throws Exception { - int bindPort = AvailablePortFinder.getNextAvailable(); - RestAssured.port = bindPort; - return createCamelContext(bindPort, customizer); + RestAssured.port = port.getPort(); + return createCamelContext(port.getPort(), customizer); } private CamelContext createCamelContext(int bindPort, SessionConfigCustomizer customizer) diff --git a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpSharedVertxTest.java b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpSharedVertxTest.java index 4fc124b33ed5..0a5d1ea6ae5e 100644 --- a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpSharedVertxTest.java +++ b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpSharedVertxTest.java @@ -26,10 +26,14 @@ import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.test.AvailablePortFinder; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import static org.junit.jupiter.api.Assertions.assertTrue; class VertxPlatformHttpSharedVertxTest { + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); + private static final Vertx vertx = Vertx.vertx(); @AfterAll @@ -43,7 +47,7 @@ class VertxPlatformHttpSharedVertxTest { void sharedVertxInstanceNotClosed() throws Exception { try (CamelContext context = new DefaultCamelContext()) { VertxPlatformHttpServerConfiguration configuration = new VertxPlatformHttpServerConfiguration(); - configuration.setBindPort(AvailablePortFinder.getNextAvailable()); + configuration.setBindPort(port.getPort()); context.getRegistry().bind("vertx", vertx); context.addService(new VertxPlatformHttpServer(configuration)); diff --git a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpsProxyTest.java b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpsProxyTest.java index b904706c09a4..7f77878ef0af 100644 --- a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpsProxyTest.java +++ b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformHttpsProxyTest.java @@ -31,6 +31,7 @@ import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.get; @@ -40,17 +41,19 @@ import static io.restassured.RestAssured.given; import static org.hamcrest.Matchers.containsString; public class VertxPlatformHttpsProxyTest { + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); - private final int port = AvailablePortFinder.getNextAvailable(); - private final WireMockServer wireMockServer = new WireMockServer( - options().httpsPort(port) - .httpDisabled(true) - .keystorePath("proxy/keystore.p12") - .keystorePassword("changeit") - .keyManagerPassword("changeit")); + private WireMockServer wireMockServer; @BeforeEach void before() { + wireMockServer = new WireMockServer( + options().httpsPort(port.getPort()) + .httpDisabled(true) + .keystorePath("proxy/keystore.p12") + .keystorePassword("changeit") + .keyManagerPassword("changeit")); wireMockServer.stubFor(get(urlPathEqualTo("/")) .willReturn(aResponse() .withBody( @@ -91,7 +94,7 @@ public class VertxPlatformHttpsProxyTest { // In order to make sure that RestAssured don't perform a CONNECT instead of a GET, we do trick with http // if we want to do test manually from a terminal we use the real HTTPS address - final var originURI = "http://localhost:" + port; + final var originURI = "http://localhost:" + port.getPort(); given() .proxy(proxyURI) diff --git a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformMultipleContentTypeTest.java b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformMultipleContentTypeTest.java index 2b7055897c62..7f4ba2040c62 100644 --- a/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformMultipleContentTypeTest.java +++ b/components/camel-platform-http-vertx/src/test/java/org/apache/camel/component/platform/http/vertx/VertxPlatformMultipleContentTypeTest.java @@ -30,10 +30,14 @@ import org.apache.camel.support.jsse.TrustManagersParameters; import org.apache.camel.test.AvailablePortFinder; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import static org.hamcrest.Matchers.is; public class VertxPlatformMultipleContentTypeTest { + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); + public static SSLContextParameters serverSSLParameters; public static SSLContextParameters clientSSLParameters; @@ -179,16 +183,15 @@ public class VertxPlatformMultipleContentTypeTest { } } - static CamelContext createCamelContext() throws Exception { + CamelContext createCamelContext() throws Exception { return createCamelContext(null); } - private static CamelContext createCamelContext(ServerConfigurationCustomizer customizer) throws Exception { - int port = AvailablePortFinder.getNextAvailable(); + private CamelContext createCamelContext(ServerConfigurationCustomizer customizer) throws Exception { VertxPlatformHttpServerConfiguration conf = new VertxPlatformHttpServerConfiguration(); - conf.setBindPort(port); + conf.setBindPort(port.getPort()); - RestAssured.port = port; + RestAssured.port = port.getPort(); if (customizer != null) { customizer.customize(conf); diff --git a/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/BaseUndertowTest.java b/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/BaseUndertowTest.java index 07b49090ebcb..bdfacce0e34d 100644 --- a/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/BaseUndertowTest.java +++ b/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/BaseUndertowTest.java @@ -23,29 +23,25 @@ import org.apache.camel.BindToRegistry; import org.apache.camel.CamelContext; 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; /** * Base class of tests which allocates ports */ public abstract class BaseUndertowTest extends CamelTestSupport { - private static volatile int port; - private static volatile int port2; + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); + @RegisterExtension + AvailablePortFinder.Port port2 = AvailablePortFinder.find(); private final AtomicInteger counter = new AtomicInteger(1); - @BeforeAll - public static void initPort() { - port = AvailablePortFinder.getNextAvailable(); - port2 = AvailablePortFinder.getNextAvailable(); + protected int getPort() { + return port.getPort(); } - protected static int getPort() { - return port; - } - - protected static int getPort2() { - return port2; + protected int getPort2() { + return port2.getPort(); } @Override @@ -65,10 +61,14 @@ public abstract class BaseUndertowTest extends CamelTestSupport { } protected int getNextPort() { - return AvailablePortFinder.getNextAvailable(); + try (AvailablePortFinder.Port p = AvailablePortFinder.find()) { + return p.getPort(); + } } protected int getNextPort(int startWithPort) { - return AvailablePortFinder.getNextAvailable(); + try (AvailablePortFinder.Port p = AvailablePortFinder.find()) { + return p.getPort(); + } } } diff --git a/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowHttpProducerSessionTest.java b/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowHttpProducerSessionTest.java index d5852263aa3c..7338c3ce7cdf 100644 --- a/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowHttpProducerSessionTest.java +++ b/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowHttpProducerSessionTest.java @@ -26,11 +26,12 @@ import org.apache.camel.http.base.cookie.ExchangeCookieHandler; import org.apache.camel.http.base.cookie.InstanceCookieHandler; 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; public class UndertowHttpProducerSessionTest extends CamelTestSupport { - private static volatile int port; + @RegisterExtension + AvailablePortFinder.Port port = AvailablePortFinder.find(); @BindToRegistry("instanceCookieHandler") private InstanceCookieHandler instanceCookieHandler = new InstanceCookieHandler(); @@ -38,11 +39,6 @@ public class UndertowHttpProducerSessionTest extends CamelTestSupport { @BindToRegistry("exchangeCookieHandler") private ExchangeCookieHandler exchangeCookieHandler = new ExchangeCookieHandler(); - @BeforeAll - public static void initPort() { - port = AvailablePortFinder.getNextAvailable(); - } - @Test public void testNoSession() throws Exception { getMockEndpoint("mock:result").expectedBodiesReceived("New New World", "New New World"); @@ -69,7 +65,7 @@ public class UndertowHttpProducerSessionTest extends CamelTestSupport { private String getTestServerEndpointSessionUrl() { // session handling will not work for localhost - return "http://127.0.0.1:" + port + "/session"; + return "http://127.0.0.1:" + port.getPort() + "/session"; } private String getTestServerEndpointSessionUri() { diff --git a/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowMethodRestricTest.java b/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowMethodRestricTest.java index bccbd4ae01d2..3ec6a5a9581d 100644 --- a/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowMethodRestricTest.java +++ b/components/camel-undertow/src/test/java/org/apache/camel/component/undertow/UndertowMethodRestricTest.java @@ -25,17 +25,17 @@ import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; import org.apache.hc.client5.http.impl.classic.HttpClients; import org.apache.hc.core5.http.io.entity.EntityUtils; import org.apache.hc.core5.http.io.entity.StringEntity; -import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; public class UndertowMethodRestricTest extends BaseUndertowTest { - private static String url; + private String url; - @BeforeAll - public static void init() { + @BeforeEach + public void init() { url = "http://localhost:" + getPort() + "/methodRestrict"; }
