This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch 3.2.x in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit 1b74642f090cc7810c99f1cabb91cbf3c1349656 Author: James Netherton <[email protected]> AuthorDate: Tue Nov 14 15:24:29 2023 +0000 Clean up usage of hard coded hosts that use containers --- .../component/http/common/HttpTestResource.java | 1 + .../quarkus/component/http/http/HttpResource.java | 9 ++++--- .../ProxyCapableClientInitializerFactory.java | 7 ++++-- .../component/http/vertx/VertxResource.java | 9 ++++--- .../camel/quarkus/component/mail/CamelRoute.java | 27 +++++++++++---------- .../camel/quarkus/component/mail/MailTest.java | 7 +++--- .../quarkus/component/mail/MailTestResource.java | 2 ++ .../component/paho/mqtt5/it/PahoMqtt5Resource.java | 28 ++++++++++++++++++++-- .../paho/mqtt5/it/PahoMqtt5TestResource.java | 12 ++++++---- .../camel/quarkus/component/paho/PahoResource.java | 23 +++++++++++++++++- .../component/paho/it/PahoTestResource.java | 12 ++++++---- .../component/splunk/it/SplunkResource.java | 26 +++++++++++--------- .../quarkus/component/splunk/it/SplunkTest.java | 6 +++-- .../component/splunk/it/SplunkTestResource.java | 5 +++- 14 files changed, 125 insertions(+), 49 deletions(-) diff --git a/integration-test-groups/http/common/src/test/java/org/apache/camel/quarkus/component/http/common/HttpTestResource.java b/integration-test-groups/http/common/src/test/java/org/apache/camel/quarkus/component/http/common/HttpTestResource.java index e7ac637bc5..2d00cfe7eb 100644 --- a/integration-test-groups/http/common/src/test/java/org/apache/camel/quarkus/component/http/common/HttpTestResource.java +++ b/integration-test-groups/http/common/src/test/java/org/apache/camel/quarkus/component/http/common/HttpTestResource.java @@ -51,6 +51,7 @@ public class HttpTestResource implements QuarkusTestResourceLifecycleManager { "camel.netty-http.test-port", "camel.netty-http.https-test-port", "camel.netty-http.compression-test-port"); + options.put("tiny.proxy.host", container.getHost()); options.put("tiny.proxy.port", container.getMappedPort(TINY_PROXY_PORT).toString()); return options; } diff --git a/integration-test-groups/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpResource.java b/integration-test-groups/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpResource.java index a72de9d50b..7897e15013 100644 --- a/integration-test-groups/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpResource.java +++ b/integration-test-groups/http/http/src/main/java/org/apache/camel/quarkus/component/http/http/HttpResource.java @@ -33,6 +33,7 @@ import org.apache.camel.builder.EndpointConsumerBuilder; import org.apache.camel.builder.EndpointProducerBuilder; import org.apache.camel.builder.endpoint.EndpointRouteBuilder; import org.apache.camel.quarkus.component.http.common.AbstractHttpResource; +import org.eclipse.microprofile.config.Config; import org.eclipse.microprofile.config.ConfigProvider; @Path("/test/client/http") @@ -104,15 +105,17 @@ public class HttpResource extends AbstractHttpResource { @GET @Produces(MediaType.APPLICATION_XML) public String httpProxy() { - Integer proxyPort = ConfigProvider.getConfig().getValue("tiny.proxy.port", Integer.class); + Config config = ConfigProvider.getConfig(); + String proxyHost = config.getValue("tiny.proxy.host", String.class); + Integer proxyPort = config.getValue("tiny.proxy.port", Integer.class); return producerTemplate .toF("%s?" + "proxyAuthMethod=Basic" + "&proxyAuthScheme=http" - + "&proxyAuthHost=localhost" + + "&proxyAuthHost=%s" + "&proxyAuthPort=%d" + "&proxyAuthUsername=%s" - + "&proxyAuthPassword=%s", String.format(PROXIED_URL, "http"), proxyPort, USER_ADMIN, + + "&proxyAuthPassword=%s", String.format(PROXIED_URL, "http"), proxyHost, proxyPort, USER_ADMIN, USER_ADMIN_PASSWORD) .request(String.class); } diff --git a/integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/ProxyCapableClientInitializerFactory.java b/integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/ProxyCapableClientInitializerFactory.java index dd24d2568d..89db81aa0b 100644 --- a/integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/ProxyCapableClientInitializerFactory.java +++ b/integration-test-groups/http/netty-http/src/main/java/org/apache/camel/quarkus/component/http/netty/ProxyCapableClientInitializerFactory.java @@ -24,6 +24,7 @@ import org.apache.camel.component.netty.ClientInitializerFactory; import org.apache.camel.component.netty.NettyProducer; import org.apache.camel.component.netty.http.HttpClientInitializerFactory; import org.apache.camel.component.netty.http.NettyHttpProducer; +import org.eclipse.microprofile.config.Config; import org.eclipse.microprofile.config.ConfigProvider; import static org.apache.camel.quarkus.component.http.common.AbstractHttpResource.USER_ADMIN; @@ -40,8 +41,10 @@ public class ProxyCapableClientInitializerFactory extends HttpClientInitializerF @Override protected void initChannel(Channel channel) throws Exception { - Integer proxyPort = ConfigProvider.getConfig().getValue("tiny.proxy.port", Integer.class); - InetSocketAddress proxyServerAddress = new InetSocketAddress("localhost", proxyPort); + Config config = ConfigProvider.getConfig(); + String proxyHost = config.getValue("tiny.proxy.host", String.class); + Integer proxyPort = config.getValue("tiny.proxy.port", Integer.class); + InetSocketAddress proxyServerAddress = new InetSocketAddress(proxyHost, proxyPort); HttpProxyHandler httpProxyHandler = new HttpProxyHandler(proxyServerAddress, USER_ADMIN, USER_ADMIN_PASSWORD); httpProxyHandler.setConnectTimeoutMillis(5000); super.initChannel(channel); diff --git a/integration-test-groups/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxResource.java b/integration-test-groups/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxResource.java index 984af4ae72..b21e392339 100644 --- a/integration-test-groups/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxResource.java +++ b/integration-test-groups/http/vertx-http/src/main/java/org/apache/camel/quarkus/component/http/vertx/VertxResource.java @@ -35,6 +35,7 @@ import org.apache.camel.PropertyBindingException; import org.apache.camel.ResolveEndpointFailedException; import org.apache.camel.http.base.HttpOperationFailedException; import org.apache.camel.quarkus.component.http.common.AbstractHttpResource; +import org.eclipse.microprofile.config.Config; import org.eclipse.microprofile.config.ConfigProvider; import static org.apache.camel.component.vertx.http.VertxHttpConstants.CONTENT_TYPE_FORM_URLENCODED; @@ -91,14 +92,16 @@ public class VertxResource extends AbstractHttpResource { @GET @Produces(MediaType.APPLICATION_XML) public String httpProxy() { - Integer proxyPort = ConfigProvider.getConfig().getValue("tiny.proxy.port", Integer.class); + Config config = ConfigProvider.getConfig(); + String proxyHost = config.getValue("tiny.proxy.host", String.class); + Integer proxyPort = config.getValue("tiny.proxy.port", Integer.class); return producerTemplate .toF("vertx-http:%s?" - + "proxyHost=localhost" + + "proxyHost=%s" + "&proxyPort=%d" + "&proxyType=HTTP" + "&proxyUsername=%s" - + "&proxyPassword=%s", String.format(PROXIED_URL, "vertx-http"), proxyPort, USER_ADMIN, + + "&proxyPassword=%s", String.format(PROXIED_URL, "vertx-http"), proxyHost, proxyPort, USER_ADMIN, USER_ADMIN_PASSWORD) .request(String.class); } diff --git a/integration-tests/mail/src/main/java/org/apache/camel/quarkus/component/mail/CamelRoute.java b/integration-tests/mail/src/main/java/org/apache/camel/quarkus/component/mail/CamelRoute.java index f6c0fac239..8506f56830 100644 --- a/integration-tests/mail/src/main/java/org/apache/camel/quarkus/component/mail/CamelRoute.java +++ b/integration-tests/mail/src/main/java/org/apache/camel/quarkus/component/mail/CamelRoute.java @@ -66,6 +66,9 @@ public class CamelRoute extends RouteBuilder { static final String USERNAME = "test"; static final String PASSWORD = "s3cr3t"; + @ConfigProperty(name = "mail.host") + String mailHost; + @ConfigProperty(name = "mail.smtp.port") int smtpPort; @@ -91,11 +94,11 @@ public class CamelRoute extends RouteBuilder { .handled(false); from("direct:sendMail") - .toF("smtp://localhost:%d?username=%s&password=%s", smtpPort, USERNAME, PASSWORD); + .toF("smtp://%s:%d?username=%s&password=%s", mailHost, smtpPort, USERNAME, PASSWORD); from("direct:sendMailSecured").toF( - "smtps://localhost:%d?username=%s&password=%s&sslContextParameters=#sslContextParameters&additionalJavaMailProperties=#additionalProperties", - smtpsPort, USERNAME, PASSWORD); + "smtps://%s:%d?username=%s&password=%s&sslContextParameters=#sslContextParameters&additionalJavaMailProperties=#additionalProperties", + mailHost, smtpsPort, USERNAME, PASSWORD); from("direct:mimeMultipartMarshal") .marshal().mimeMultipart(); @@ -104,34 +107,34 @@ public class CamelRoute extends RouteBuilder { .unmarshal().mimeMultipart() .marshal().mimeMultipart(); - fromF("pop3://localhost:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true", pop3Port, USERNAME, + fromF("pop3://%s:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true", mailHost, pop3Port, USERNAME, PASSWORD) .id(Routes.pop3ReceiveRoute.name()) .autoStartup(false) .process(exchange -> handleMail(exchange)); - fromF("pop3s://localhost:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true&sslContextParameters=#sslContextParameters&additionalJavaMailProperties=#additionalProperties", - pop3sPort, USERNAME, + fromF("pop3s://%s:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true&sslContextParameters=#sslContextParameters&additionalJavaMailProperties=#additionalProperties", + mailHost, pop3sPort, USERNAME, PASSWORD) .id(Routes.pop3sReceiveRoute.name()) .autoStartup(false) .process(exchange -> handleMail(exchange)); - fromF("imap://localhost:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true", imapPort, USERNAME, + fromF("imap://%s:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true", mailHost, imapPort, USERNAME, PASSWORD) .id(Routes.imapReceiveRoute.name()) .autoStartup(false) .process(exchange -> handleMail(exchange)); - fromF("imaps://localhost:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true&sslContextParameters=#sslContextParameters&additionalJavaMailProperties=#additionalProperties", - imapsPort, USERNAME, + fromF("imaps://%s:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true&sslContextParameters=#sslContextParameters&additionalJavaMailProperties=#additionalProperties", + mailHost, imapsPort, USERNAME, PASSWORD) .id(Routes.imapsReceiveRoute.name()) .autoStartup(false) .process(exchange -> handleMail(exchange)); - fromF("pop3://localhost:%d?initialDelay=100&delay=500&username=%s&password=%s" - + "&delete=true&maxMessagesPerPoll=3", pop3Port, USERNAME, PASSWORD) + fromF("pop3://%s:%d?initialDelay=100&delay=500&username=%s&password=%s" + + "&delete=true&maxMessagesPerPoll=3", mailHost, pop3Port, USERNAME, PASSWORD) .id(Routes.batchReceiveRoute.name()) .autoStartup(false) .process(e -> { @@ -142,7 +145,7 @@ public class CamelRoute extends RouteBuilder { map.put(ExchangePropertyKey.BATCH_SIZE.getName(), e.getProperty(ExchangePropertyKey.BATCH_SIZE)); }); - fromF("pop3://localhost:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true", pop3Port, USERNAME, + fromF("pop3://%s:%d?initialDelay=100&delay=500&username=%s&password=%s&delete=true", mailHost, pop3Port, USERNAME, PASSWORD) .id(Routes.convertersRoute.name()) .autoStartup(false) diff --git a/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTest.java b/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTest.java index 30de0a2d9c..4ca05a9f7b 100644 --- a/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTest.java +++ b/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTest.java @@ -81,7 +81,8 @@ public class MailTest { RestAssured.given() .contentType(ContentType.JSON) .body(userJson) - .post("http://localhost:" + config.getValue("mail.api.port", Integer.class) + "/api/user") + .post("http://" + config.getValue("mail.host", String.class) + ":" + + config.getValue("mail.api.port", Integer.class) + "/api/user") .then() .statusCode(200); } @@ -91,8 +92,8 @@ public class MailTest { // Clear mailboxes Config config = ConfigProvider.getConfig(); RestAssured.given() - .port(config.getValue("mail.api.port", Integer.class)) - .post("/api/service/reset") + .post("http://" + config.getValue("mail.host", String.class) + ":" + + config.getValue("mail.api.port", Integer.class) + "/api/service/reset") .then() .statusCode(200) .body("message", is("Performed reset")); diff --git a/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTestResource.java b/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTestResource.java index e051140a61..eae68a091f 100644 --- a/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTestResource.java +++ b/integration-tests/mail/src/test/java/org/apache/camel/quarkus/component/mail/MailTestResource.java @@ -47,6 +47,8 @@ public class MailTestResource implements QuarkusTestResourceLifecycleManager { container.start(); Map<String, String> options = new HashMap<>(); + options.put("mail.host", container.getHost()); + for (MailProtocol protocol : MailProtocol.values()) { String optionName = String.format("mail.%s.port", protocol.name().toLowerCase()); Integer mappedPort = container.getMappedPort(protocol.getPort()); diff --git a/integration-tests/paho-mqtt5/src/main/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5Resource.java b/integration-tests/paho-mqtt5/src/main/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5Resource.java index 150332eb33..339a4cc3c5 100644 --- a/integration-tests/paho-mqtt5/src/main/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5Resource.java +++ b/integration-tests/paho-mqtt5/src/main/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5Resource.java @@ -24,8 +24,13 @@ import java.nio.file.Paths; import java.nio.file.StandardCopyOption; import java.util.concurrent.TimeUnit; +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.SSLSession; + import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import jakarta.ws.rs.Consumes; import jakarta.ws.rs.DefaultValue; import jakarta.ws.rs.GET; @@ -42,6 +47,7 @@ import org.apache.camel.ProducerTemplate; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.component.paho.mqtt5.PahoMqtt5Constants; import org.apache.camel.spi.RouteController; +import org.eclipse.microprofile.config.Config; import org.eclipse.microprofile.config.ConfigProvider; @Path("/paho-mqtt5") @@ -76,7 +82,9 @@ public class PahoMqtt5Resource { try { if ("ssl".equals(protocol)) { tmpKeystore = setKeyStore(keystore); - sslClientProps = "&sslClientProps.com.ibm.ssl.keyStore=" + tmpKeystore + + sslClientProps = "&httpsHostnameVerificationEnabled=false" + + "&sslHostnameVerifier=#hostnameVerifier" + + "&sslClientProps.com.ibm.ssl.keyStore=" + tmpKeystore + "&sslClientProps.com.ibm.ssl.keyStorePassword=" + password + "&sslClientProps.com.ibm.ssl.trustStore=" + tmpKeystore + "&sslClientProps.com.ibm.ssl.trustStorePassword=" + password; @@ -105,7 +113,9 @@ public class PahoMqtt5Resource { try { if ("ssl".equals(protocol)) { tmpKeystore = setKeyStore(keystore); - sslClientProps = "&sslClientProps.com.ibm.ssl.keyStore=" + tmpKeystore + + sslClientProps = "&httpsHostnameVerificationEnabled=false" + + "&sslHostnameVerifier=#hostnameVerifier" + + "&sslClientProps.com.ibm.ssl.keyStore=" + tmpKeystore + "&sslClientProps.com.ibm.ssl.keyStorePassword=" + password + "&sslClientProps.com.ibm.ssl.trustStore=" + tmpKeystore + "&sslClientProps.com.ibm.ssl.trustStorePassword=" + password; @@ -176,6 +186,20 @@ public class PahoMqtt5Resource { return Response.created(new URI("https://camel.apache.org/")).build(); } + @Singleton + @Named + HostnameVerifier hostnameVerifier() { + // Allow certificate host name validation to work with whatever container host name is used + return new HostnameVerifier() { + final Config config = ConfigProvider.getConfig(); + + @Override + public boolean verify(String hostname, SSLSession session) { + return config.getValue("paho5.broker.host", String.class).equals(hostname); + } + }; + } + private String brokerUrl(String protocol) { return ConfigProvider.getConfig().getValue("paho5.broker." + protocol + ".url", String.class); } diff --git a/integration-tests/paho-mqtt5/src/test/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5TestResource.java b/integration-tests/paho-mqtt5/src/test/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5TestResource.java index 0f9e08cc79..2a22a98ee5 100644 --- a/integration-tests/paho-mqtt5/src/test/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5TestResource.java +++ b/integration-tests/paho-mqtt5/src/test/java/org/apache/camel/quarkus/component/paho/mqtt5/it/PahoMqtt5TestResource.java @@ -78,7 +78,7 @@ public class PahoMqtt5TestResource implements QuarkusTestResourceLifecycleManage .withFixedExposedPort(port, TCP_PORT); result = CollectionHelper.mapOf( - "paho5.broker.tcp.url", "tcp://localhost:" + port); + "paho5.broker.tcp.url", "tcp://" + container.getHost() + ":" + port); } else { container = new GenericContainer<>(IMAGE) .withExposedPorts(TCP_PORT, WS_PORT, SSL_PORT) @@ -103,9 +103,13 @@ public class PahoMqtt5TestResource implements QuarkusTestResourceLifecycleManage result = CollectionHelper.mapOf( "camel.component.paho-mqtt5.username", MQTT_USERNAME, "camel.component.paho-mqtt5.password", MQTT_PASSWORD, - "paho5.broker.tcp.url", String.format("tcp://localhost:%d", container.getMappedPort(TCP_PORT)), - "paho5.broker.ssl.url", String.format("ssl://localhost:%d", container.getMappedPort(SSL_PORT)), - "paho5.broker.ws.url", String.format("ws://localhost:%d", container.getMappedPort(WS_PORT))); + "paho5.broker.host", container.getHost(), + "paho5.broker.tcp.url", + String.format("tcp://%s:%d", container.getHost(), container.getMappedPort(TCP_PORT)), + "paho5.broker.ssl.url", + String.format("ssl://%s:%d", container.getHost(), container.getMappedPort(SSL_PORT)), + "paho5.broker.ws.url", + String.format("ws://%s:%d", container.getHost(), container.getMappedPort(WS_PORT))); } return result; diff --git a/integration-tests/paho/src/main/java/org/apache/camel/quarkus/component/paho/PahoResource.java b/integration-tests/paho/src/main/java/org/apache/camel/quarkus/component/paho/PahoResource.java index 4e3c27cf0c..8269c71fa1 100644 --- a/integration-tests/paho/src/main/java/org/apache/camel/quarkus/component/paho/PahoResource.java +++ b/integration-tests/paho/src/main/java/org/apache/camel/quarkus/component/paho/PahoResource.java @@ -21,8 +21,13 @@ import java.net.URI; import java.nio.file.Files; import java.nio.file.StandardCopyOption; +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.SSLSession; + import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import jakarta.ws.rs.Consumes; import jakarta.ws.rs.GET; import jakarta.ws.rs.POST; @@ -35,6 +40,7 @@ import jakarta.ws.rs.core.Response; import org.apache.camel.ConsumerTemplate; import org.apache.camel.ProducerTemplate; import org.apache.camel.component.paho.PahoConstants; +import org.eclipse.microprofile.config.Config; import org.eclipse.microprofile.config.ConfigProvider; import org.eclipse.paho.client.mqttv3.MqttException; import org.jboss.logging.Logger; @@ -143,10 +149,25 @@ public class PahoResource { return ConfigProvider.getConfig().getValue("paho.broker." + protocol + ".url", String.class); } + @Singleton + @Named + HostnameVerifier hostnameVerifier() { + // Allow certificate host name validation to work with whatever container host name is used + return new HostnameVerifier() { + final Config config = ConfigProvider.getConfig(); + + @Override + public boolean verify(String hostname, SSLSession session) { + return config.getValue("paho.broker.host", String.class).equals(hostname); + } + }; + } + private String sslOptions(java.nio.file.Path keyStore) { return keyStore == null ? "" - : "&sslClientProps.com.ibm.ssl.keyStore=" + keyStore + + : "&httpsHostnameVerificationEnabled=false&sslHostnameVerifier=#hostnameVerifier" + + "&sslClientProps.com.ibm.ssl.keyStore=" + keyStore + "&sslClientProps.com.ibm.ssl.keyStorePassword=" + KEYSTORE_PASSWORD + "&sslClientProps.com.ibm.ssl.trustStore=" + keyStore + "&sslClientProps.com.ibm.ssl.trustStorePassword=" + KEYSTORE_PASSWORD; diff --git a/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoTestResource.java b/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoTestResource.java index fa9e01a021..1070489fc3 100644 --- a/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoTestResource.java +++ b/integration-tests/paho/src/test/java/org/apache/camel/quarkus/component/paho/it/PahoTestResource.java @@ -60,11 +60,13 @@ public class PahoTestResource implements QuarkusTestResourceLifecycleManager { container.start(); - result = CollectionHelper.mapOf("camel.component.paho.username", MQTT_USERNAME, - "camel.component.paho.password", MQTT_PASSWORD, "paho.broker.tcp.url", - String.format("tcp://localhost:%d", container.getMappedPort(TCP_PORT)), "paho.broker.ssl.url", - String.format("ssl://localhost:%d", container.getMappedPort(SSL_PORT)), "paho.broker.ws.url", - String.format("ws://localhost:%d", container.getMappedPort(WS_PORT))); + result = CollectionHelper.mapOf( + "camel.component.paho.username", MQTT_USERNAME, + "camel.component.paho.password", MQTT_PASSWORD, + "paho.broker.host", container.getHost(), + "paho.broker.tcp.url", String.format("tcp://%s:%d", container.getHost(), container.getMappedPort(TCP_PORT)), + "paho.broker.ssl.url", String.format("ssl://%s:%d", container.getHost(), container.getMappedPort(SSL_PORT)), + "paho.broker.ws.url", String.format("ws://%s:%d", container.getHost(), container.getMappedPort(WS_PORT))); return result; } catch (Exception e) { diff --git a/integration-tests/splunk/src/main/java/org/apache/camel/quarkus/component/splunk/it/SplunkResource.java b/integration-tests/splunk/src/main/java/org/apache/camel/quarkus/component/splunk/it/SplunkResource.java index afe65d099f..f00eea9e16 100644 --- a/integration-tests/splunk/src/main/java/org/apache/camel/quarkus/component/splunk/it/SplunkResource.java +++ b/integration-tests/splunk/src/main/java/org/apache/camel/quarkus/component/splunk/it/SplunkResource.java @@ -47,6 +47,7 @@ import org.eclipse.microprofile.config.inject.ConfigProperty; public class SplunkResource { public static final String SAVED_SEARCH_NAME = "savedSearchForTest"; + public static final String PARAM_REMOTE_HOST = "org.apache.camel.quarkus.component.splunk.it.SplunkResource_host"; public static final String PARAM_REMOTE_PORT = "org.apache.camel.quarkus.component.splunk.it.SplunkResource_remotePort"; public static final String PARAM_TCP_PORT = "org.apache.camel.quarkus.component.splunk.it.SplunkResource_tcpPort"; public static final String SOURCE = "test"; @@ -58,6 +59,9 @@ public class SplunkResource { @Inject ConsumerTemplate consumerTemplate; + @ConfigProperty(name = PARAM_REMOTE_HOST) + String host; + @ConfigProperty(name = PARAM_REMOTE_PORT) Integer port; @@ -79,21 +83,21 @@ public class SplunkResource { if ("savedSearch".equals(mapName)) { url = String.format( - "splunk://savedsearch?username=admin&password=changeit&scheme=http&port=%d&delay=500&initEarliestTime=-10m&savedsearch=%s", - port, SAVED_SEARCH_NAME); + "splunk://savedsearch?username=admin&password=changeit&scheme=http&host=%s&port=%d&delay=500&initEarliestTime=-10m&savedsearch=%s", + host, port, SAVED_SEARCH_NAME); } else if ("normalSearch".equals(mapName)) { url = String.format( - "splunk://normal?username=admin&password=changeit&scheme=http&port=%d&delay=5000&initEarliestTime=-10s&search=" + "splunk://normal?username=admin&password=changeit&scheme=http&host=%s&port=%d&delay=5000&initEarliestTime=-10s&search=" + "search sourcetype=\"SUBMIT\" | rex field=_raw \"Name: (?<name>.*) From: (?<from>.*)\"", - port); + host, port); } else { url = String.format( - "splunk://realtime?username=admin&password=changeit&scheme=http&port=%d&delay=3000&initEarliestTime=rt-10s&latestTime=RAW(rt+40s)&search=" + "splunk://realtime?username=admin&password=changeit&scheme=http&host=%s&port=%d&delay=3000&initEarliestTime=rt-10s&latestTime=RAW(rt+40s)&search=" + "search sourcetype=\"STREAM\" | rex field=_raw \"Name: (?<name>.*) From: (?<from>.*)\"", - port, ProducerType.STREAM.name()); + host, port, ProducerType.STREAM.name()); } - List<SplunkEvent> events = events = new LinkedList<>(); + List<SplunkEvent> events = new LinkedList<>(); for (int i = 0; i < count; i++) { SplunkEvent se = consumerTemplate.receiveBody(url, 5000, SplunkEvent.class); if (se == null) { @@ -137,14 +141,14 @@ public class SplunkResource { String url; if (ProducerType.TCP == ProducerType.valueOf(producerType)) { url = String.format( - "splunk:%s?raw=%b&username=admin&password=changeit&scheme=http&port=%d&index=%s&sourceType=%s&source=%s&tcpReceiverLocalPort=%d&tcpReceiverPort=%d", - producerType.toLowerCase(), !(message instanceof SplunkEvent), port, index, producerType, SOURCE, + "splunk:%s?raw=%b&username=admin&password=changeit&scheme=http&host=%s&port=%d&index=%s&sourceType=%s&source=%s&tcpReceiverLocalPort=%d&tcpReceiverPort=%d", + producerType.toLowerCase(), !(message instanceof SplunkEvent), host, port, index, producerType, SOURCE, LOCAL_TCP_PORT, tcpPort); } else { url = String.format( - "splunk:%s?raw=%b&scheme=http&port=%d&index=%s&sourceType=%s&source=%s", - producerType.toLowerCase(), !(message instanceof SplunkEvent), port, index, producerType, SOURCE); + "splunk:%s?raw=%b&scheme=http&host=%s&port=%d&index=%s&sourceType=%s&source=%s", + producerType.toLowerCase(), !(message instanceof SplunkEvent), host, port, index, producerType, SOURCE); } final String response = producerTemplate.requestBody(url, message, String.class); return Response diff --git a/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java b/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java index 37d2f7705d..33f992361f 100644 --- a/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java +++ b/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java @@ -30,6 +30,7 @@ import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; import io.restassured.http.ContentType; import org.apache.camel.component.splunk.ProducerType; +import org.eclipse.microprofile.config.Config; import org.eclipse.microprofile.config.ConfigProvider; import org.hamcrest.Matchers; import org.junit.jupiter.api.Test; @@ -69,9 +70,10 @@ class SplunkTest { public void testSavedSearchWithTcp() throws InterruptedException { String suffix = "_SavedSearchOfTcp"; //create saved search + Config config = ConfigProvider.getConfig(); RestAssured.given() - .baseUri("http://localhost") - .port(ConfigProvider.getConfig().getValue(SplunkResource.PARAM_REMOTE_PORT, Integer.class)) + .baseUri("http://" + config.getValue(SplunkResource.PARAM_REMOTE_HOST, String.class)) + .port(config.getValue(SplunkResource.PARAM_REMOTE_PORT, Integer.class)) .contentType(ContentType.JSON) .param("name", SplunkResource.SAVED_SEARCH_NAME) .param("disabled", "0") diff --git a/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTestResource.java b/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTestResource.java index dee01b4a2e..5b740ec2cd 100644 --- a/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTestResource.java +++ b/integration-tests/splunk/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTestResource.java @@ -69,12 +69,15 @@ public class SplunkTestResource implements QuarkusTestResourceLifecycleManager { "-sourcetype", ProducerType.TCP.name()); + String splunkHost = container.getHost(); + String banner = StringUtils.repeat("*", 50); LOG.info(banner); - LOG.infof("Splunk UI running on: http://localhost:%d", container.getMappedPort(WEB_PORT)); + LOG.infof("Splunk UI running on: http://%s:%d", splunkHost, container.getMappedPort(WEB_PORT)); LOG.info(banner); return Map.of( + SplunkResource.PARAM_REMOTE_HOST, splunkHost, SplunkResource.PARAM_REMOTE_PORT, container.getMappedPort(REMOTE_PORT).toString(), SplunkResource.PARAM_TCP_PORT, container.getMappedPort(SplunkResource.LOCAL_TCP_PORT).toString()); } catch (Exception e) {
