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))