This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch camel-quarkus-main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus-examples.git


The following commit(s) were added to refs/heads/camel-quarkus-main by this 
push:
     new ab57fa45 Make Artemis, Elasticsearch and LRA test container images 
configurable
ab57fa45 is described below

commit ab57fa453d4961502eb772e3c2e04bd37a8be426
Author: Kirk Crane <[email protected]>
AuthorDate: Sat Oct 24 03:06:51 2026 -0400

    Make Artemis, Elasticsearch and LRA test container images configurable
    
    CustomPahoTestResource and ElasticSearchTestResource hardcode their 
container
    images with an architecture switch that only handles ppc64le, and
    SagaTestResource hardcodes its images outright. None of these images 
publish an
    s390x variant, so the examples cannot run there.
    
    Rather than add an s390x branch and then another for the next architecture, 
make
    the images configurable, following the pattern Aws2S3TestResource already 
uses
    for floci.container.image:
    
      artemis.container.image          artemis-elasticsearch, saga
      elasticsearch.container.image    artemis-elasticsearch
      lra-coordinator.container.image  saga
    
    All three are optional. When unset the behaviour is unchanged, including the
    existing ppc64le defaults, which are preserved as the fallback.
---
 .../test/java/org/acme/resource/CustomPahoTestResource.java    | 10 ++++++----
 .../test/java/org/acme/resource/ElasticSearchTestResource.java | 10 ++++++----
 .../java/org/apache/camel/example/saga/SagaTestResource.java   |  9 +++++++--
 3 files changed, 19 insertions(+), 10 deletions(-)

diff --git 
a/artemis-elasticsearch/src/test/java/org/acme/resource/CustomPahoTestResource.java
 
b/artemis-elasticsearch/src/test/java/org/acme/resource/CustomPahoTestResource.java
index d9306534..9c3c9bb2 100644
--- 
a/artemis-elasticsearch/src/test/java/org/acme/resource/CustomPahoTestResource.java
+++ 
b/artemis-elasticsearch/src/test/java/org/acme/resource/CustomPahoTestResource.java
@@ -21,6 +21,7 @@ import java.util.Map;
 
 import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
 import org.apache.commons.lang3.SystemUtils;
+import org.eclipse.microprofile.config.ConfigProvider;
 import org.testcontainers.containers.GenericContainer;
 import org.testcontainers.utility.DockerImageName;
 
@@ -28,14 +29,15 @@ public class CustomPahoTestResource implements 
QuarkusTestResourceLifecycleManag
     private static final String AMQ_USER = "admin";
     private static final String AMQ_PASSWORD = "admin";
     private static final String AMQ_EXTRA_ARGS = "--relax-jolokia 
--no-autotune --mapped --no-fsync 
--java-options=-Dbrokerconfig.maxDiskUsage=-1";
+    private static final String DEFAULT_IMAGE = 
"quay.io/arkmq-org/activemq-artemis-broker:artemis.2.52.0";
+    private static final String PPC64LE_IMAGE = 
"icr.io/ppc64le-oss/activemq-artemis-broker-ppc64le:2.0.2";
     private GenericContainer<?> container;
 
     @Override
     public Map<String, String> start() {
-        String imageName = 
"quay.io/arkmq-org/activemq-artemis-broker:artemis.2.52.0";
-        if ("ppc64le".equals(SystemUtils.OS_ARCH)) {
-            imageName = 
"icr.io/ppc64le-oss/activemq-artemis-broker-ppc64le:2.0.2";
-        }
+        String imageName = ConfigProvider.getConfig()
+                .getOptionalValue("artemis.container.image", String.class)
+                .orElseGet(() -> "ppc64le".equals(SystemUtils.OS_ARCH) ? 
PPC64LE_IMAGE : DEFAULT_IMAGE);
 
         container = new GenericContainer<>(DockerImageName.parse(imageName))
                 .withExposedPorts(61616, 8161, 1883)
diff --git 
a/artemis-elasticsearch/src/test/java/org/acme/resource/ElasticSearchTestResource.java
 
b/artemis-elasticsearch/src/test/java/org/acme/resource/ElasticSearchTestResource.java
index 04acd6f4..99405359 100644
--- 
a/artemis-elasticsearch/src/test/java/org/acme/resource/ElasticSearchTestResource.java
+++ 
b/artemis-elasticsearch/src/test/java/org/acme/resource/ElasticSearchTestResource.java
@@ -21,6 +21,7 @@ import java.util.Map;
 
 import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
 import org.apache.commons.lang3.SystemUtils;
+import org.eclipse.microprofile.config.ConfigProvider;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testcontainers.containers.wait.strategy.Wait;
@@ -29,14 +30,15 @@ import org.testcontainers.utility.DockerImageName;
 
 public class ElasticSearchTestResource implements 
QuarkusTestResourceLifecycleManager {
     private static final Logger LOG = 
LoggerFactory.getLogger(ElasticSearchTestResource.class);
+    private static final String DEFAULT_IMAGE = 
"mirror.gcr.io/elastic/elasticsearch:9.1.0";
+    private static final String PPC64LE_IMAGE = 
"icr.io/ppc64le-oss/elasticsearch-ppc64le:8.3.3";
     private ElasticsearchContainer container;
 
     @Override
     public Map<String, String> start() {
-        String imageName = "mirror.gcr.io/elastic/elasticsearch:9.1.0";
-        if ("ppc64le".equals(SystemUtils.OS_ARCH)) {
-            imageName = "icr.io/ppc64le-oss/elasticsearch-ppc64le:8.3.3";
-        }
+        String imageName = ConfigProvider.getConfig()
+                .getOptionalValue("elasticsearch.container.image", 
String.class)
+                .orElseGet(() -> "ppc64le".equals(SystemUtils.OS_ARCH) ? 
PPC64LE_IMAGE : DEFAULT_IMAGE);
 
         DockerImageName parsedImageName = DockerImageName.parse(imageName)
                 
.asCompatibleSubstituteFor("docker.elastic.co/elasticsearch/elasticsearch");
diff --git 
a/saga/saga-integration-tests/src/test/java/org/apache/camel/example/saga/SagaTestResource.java
 
b/saga/saga-integration-tests/src/test/java/org/apache/camel/example/saga/SagaTestResource.java
index f1302119..ec512f6c 100644
--- 
a/saga/saga-integration-tests/src/test/java/org/apache/camel/example/saga/SagaTestResource.java
+++ 
b/saga/saga-integration-tests/src/test/java/org/apache/camel/example/saga/SagaTestResource.java
@@ -22,6 +22,7 @@ import java.util.Map;
 
 import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
 import org.apache.commons.lang3.SystemUtils;
+import org.eclipse.microprofile.config.ConfigProvider;
 import org.testcontainers.containers.GenericContainer;
 import org.testcontainers.containers.Network;
 import org.testcontainers.containers.wait.strategy.Wait;
@@ -41,12 +42,16 @@ public class SagaTestResource implements 
QuarkusTestResourceLifecycleManager {
     private GenericContainer<?> artemisContainer;
     private Network network;
 
+    private static String image(String property, String defaultImage) {
+        return ConfigProvider.getConfig().getOptionalValue(property, 
String.class).orElse(defaultImage);
+    }
+
     @Override
     public Map<String, String> start() {
         network = Network.newNetwork();
 
         // Start Artemis broker
-        artemisContainer = new GenericContainer<>(ARTEMIS_IMAGE)
+        artemisContainer = new 
GenericContainer<>(image("artemis.container.image", ARTEMIS_IMAGE))
                 .withNetwork(network)
                 .withNetworkAliases("artemis")
                 .withEnv("AMQ_USER", "admin")
@@ -58,7 +63,7 @@ public class SagaTestResource implements 
QuarkusTestResourceLifecycleManager {
         artemisContainer.start();
 
         // Start LRA Coordinator
-        lraContainer = new GenericContainer<>(LRA_IMAGE)
+        lraContainer = new 
GenericContainer<>(image("lra-coordinator.container.image", LRA_IMAGE))
                 .withNetwork(network)
                 .withNetworkAliases("lra-coordinator")
                 .withEnv("QUARKUS_HTTP_PORT", String.valueOf(LRA_PORT))

Reply via email to