This is an automated email from the ASF dual-hosted git repository. orpiske pushed a commit to branch camel-4.8.x in repository https://gitbox.apache.org/repos/asf/camel.git
commit a7b99ec570641b688ce450dc4efd2daf6adbdb12 Author: Otavio Rodolfo Piske <angusyo...@gmail.com> AuthorDate: Mon Jan 6 13:22:41 2025 +0000 CAMEL-21585: resolve platform containers automatically --- .../test/infra/common/LocalPropertyResolver.java | 19 +++++++++++++++++++ .../test/infra/milvus/common/MilvusProperties.java | 2 -- .../services/OpenSearchLocalContainerService.java | 1 + 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/LocalPropertyResolver.java b/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/LocalPropertyResolver.java index 884a5f478fe..3d5fa1d440c 100644 --- a/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/LocalPropertyResolver.java +++ b/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/LocalPropertyResolver.java @@ -24,6 +24,12 @@ public class LocalPropertyResolver { public static final String CONTAINER_PROPERTIES_FILE_NAME = "container.properties"; + /** + * Resolves the container to use. Platform-specific containers are resolved automatically + * + * @param propertyName The property name pointing to the container + * @return + */ public static String getProperty(Class<?> clazz, String propertyName) { return System.getProperty(propertyName, getPropertyFromContainersPropertiesFile(clazz, propertyName)); } @@ -39,6 +45,19 @@ public class LocalPropertyResolver { throw new RuntimeException(errorMessage, e); } + return resolveProperty(properties, propertyName); + } + + private static String resolveProperty(Properties properties, String propertyName) { + // This should append the 'os.arch' version to the property (typically, one of amd64, aarch64, ppc64le or s390x) + String platformProperty = String.format("%s.%s", propertyName, System.getProperty("os.arch")); + + // Platform properties take precedence + String value = properties.getProperty(platformProperty); + if (value != null && !value.isEmpty()) { + return value; + } + return properties.getProperty(propertyName); } diff --git a/test-infra/camel-test-infra-milvus/src/test/java/org/apache/camel/test/infra/milvus/common/MilvusProperties.java b/test-infra/camel-test-infra-milvus/src/test/java/org/apache/camel/test/infra/milvus/common/MilvusProperties.java index 745053d6343..79803904f41 100644 --- a/test-infra/camel-test-infra-milvus/src/test/java/org/apache/camel/test/infra/milvus/common/MilvusProperties.java +++ b/test-infra/camel-test-infra-milvus/src/test/java/org/apache/camel/test/infra/milvus/common/MilvusProperties.java @@ -19,9 +19,7 @@ package org.apache.camel.test.infra.milvus.common; public final class MilvusProperties { public static final String MILVUS_ENDPOINT_URL = "milvus.endpoint.url"; - public static final String MILVUS_ENDPOINT_HOST = "milvus.endpoint.host"; - public static final String MILVUS_ENDPOINT_PORT = "milvus.endpoint.port"; public static final String MILVUS_CONTAINER = "milvus.container"; diff --git a/test-infra/camel-test-infra-opensearch/src/test/java/org/apache/camel/test/infra/opensearch/services/OpenSearchLocalContainerService.java b/test-infra/camel-test-infra-opensearch/src/test/java/org/apache/camel/test/infra/opensearch/services/OpenSearchLocalContainerService.java index f572c629355..8ef49dbdea8 100644 --- a/test-infra/camel-test-infra-opensearch/src/test/java/org/apache/camel/test/infra/opensearch/services/OpenSearchLocalContainerService.java +++ b/test-infra/camel-test-infra-opensearch/src/test/java/org/apache/camel/test/infra/opensearch/services/OpenSearchLocalContainerService.java @@ -28,6 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testcontainers.containers.output.Slf4jLogConsumer; import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy; +import org.testcontainers.utility.DockerImageName; public class OpenSearchLocalContainerService implements OpenSearchService, ContainerService<OpensearchContainer> { private static final Logger LOG = LoggerFactory.getLogger(OpenSearchLocalContainerService.class);