From 31663023a9d23189445af136f280176aa5b836ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edd=C3=BA=20Mel=C3=A9ndez?= Date: Tue, 26 Jul 2022 21:52:43 -0500 Subject: [PATCH] Improve Pulsar's wait strategy to rely on clusterName `PulsarContainer` allow to override configuration using env vars, using `PULSAR_PREFIX_clusterName" will override the default's value "standalone". The endpoint response should adapt accordingly. --- .../testcontainers/containers/PulsarContainer.java | 8 ++++---- .../containers/PulsarContainerTest.java | 11 +++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/modules/pulsar/src/main/java/org/testcontainers/containers/PulsarContainer.java b/modules/pulsar/src/main/java/org/testcontainers/containers/PulsarContainer.java index 30c36db01d8..10dc35dc4c8 100644 --- a/modules/pulsar/src/main/java/org/testcontainers/containers/PulsarContainer.java +++ b/modules/pulsar/src/main/java/org/testcontainers/containers/PulsarContainer.java @@ -96,13 +96,13 @@ protected void setupCommandAndEnv() { withCommand("/bin/bash", "-c", standaloneBaseCommand); + final String clusterName = getEnvMap().getOrDefault("PULSAR_PREFIX_clusterName", "standalone"); + final String response = String.format("[\"%s\"]", clusterName); + List waitStrategies = new ArrayList<>(); waitStrategies.add(Wait.defaultWaitStrategy()); waitStrategies.add( - Wait - .forHttp(ADMIN_CLUSTERS_ENDPOINT) - .forPort(BROKER_HTTP_PORT) - .forResponsePredicate("[\"standalone\"]"::equals) + Wait.forHttp(ADMIN_CLUSTERS_ENDPOINT).forPort(BROKER_HTTP_PORT).forResponsePredicate(response::equals) ); if (transactionsEnabled) { withEnv("PULSAR_PREFIX_transactionCoordinatorEnabled", "true"); diff --git a/modules/pulsar/src/test/java/org/testcontainers/containers/PulsarContainerTest.java b/modules/pulsar/src/test/java/org/testcontainers/containers/PulsarContainerTest.java index 29de6c4c872..bf9f3d2201f 100644 --- a/modules/pulsar/src/test/java/org/testcontainers/containers/PulsarContainerTest.java +++ b/modules/pulsar/src/test/java/org/testcontainers/containers/PulsarContainerTest.java @@ -54,6 +54,17 @@ public void envVarsUsage() throws Exception { } } + @Test + public void customClusterName() throws Exception { + try ( + PulsarContainer pulsar = new PulsarContainer(PULSAR_IMAGE) + .withEnv("PULSAR_PREFIX_clusterName", "tc-cluster"); + ) { + pulsar.start(); + testPulsarFunctionality(pulsar.getPulsarBrokerUrl()); + } + } + @Test public void shouldNotEnableFunctionsWorkerByDefault() throws Exception { try (PulsarContainer pulsar = new PulsarContainer(PULSAR_IMAGE)) {