From 4aff06aa17f7953bcedfe78c4a91a1eb438412f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 20 Jun 2025 15:47:07 +0200 Subject: [PATCH] Polish "Upgrade to Elasticsearch 9.0.2" CLoses gh-46052 --- ...eConnectionDetailsFactoryIntegrationTests.java | 4 ++-- .../spring-boot-testcontainers/build.gradle | 1 + ...rchContainerConnectionDetailsFactoryTests.java | 4 ++-- ...ntainer8.java => ElasticsearchContainer9.java} | 6 +++--- .../boot/testsupport/container/TestImage.java | 15 +++------------ .../SampleElasticsearch8ApplicationTests.java | 2 +- 6 files changed, 12 insertions(+), 20 deletions(-) rename spring-boot-project/spring-boot-tools/spring-boot-test-support-docker/src/main/java/org/springframework/boot/testsupport/container/{ElasticsearchContainer8.java => ElasticsearchContainer9.java} (86%) diff --git a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests.java index 48f1c0d6b6d..150b51a9232 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/dockerTest/java/org/springframework/boot/docker/compose/service/connection/elasticsearch/ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -34,7 +34,7 @@ import static org.assertj.core.api.Assertions.assertThat; */ class ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests { - @DockerComposeTest(composeFile = "elasticsearch-compose.yaml", image = TestImage.ELASTICSEARCH_8) + @DockerComposeTest(composeFile = "elasticsearch-compose.yaml", image = TestImage.ELASTICSEARCH) void runCreatesConnectionDetails(ElasticsearchConnectionDetails connectionDetails) { assertConnectionDetails(connectionDetails); } diff --git a/spring-boot-project/spring-boot-testcontainers/build.gradle b/spring-boot-project/spring-boot-testcontainers/build.gradle index 3f24b34c820..a6a85753d4b 100644 --- a/spring-boot-project/spring-boot-testcontainers/build.gradle +++ b/spring-boot-project/spring-boot-testcontainers/build.gradle @@ -28,6 +28,7 @@ dependencies { } dockerTestImplementation("org.assertj:assertj-core") dockerTestImplementation("org.awaitility:awaitility") + dockerTestImplementation("org.elasticsearch.client:elasticsearch-rest-client") dockerTestImplementation("org.flywaydb:flyway-core") dockerTestImplementation("org.junit.jupiter:junit-jupiter") dockerTestImplementation("org.junit.platform:junit-platform-launcher") diff --git a/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/elasticsearch/ElasticsearchContainerConnectionDetailsFactoryTests.java b/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/elasticsearch/ElasticsearchContainerConnectionDetailsFactoryTests.java index 212c47757c7..8481cc050f3 100644 --- a/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/elasticsearch/ElasticsearchContainerConnectionDetailsFactoryTests.java +++ b/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/elasticsearch/ElasticsearchContainerConnectionDetailsFactoryTests.java @@ -31,7 +31,7 @@ import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchClientA import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchConnectionDetails; import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration; import org.springframework.boot.testcontainers.service.connection.ServiceConnection; -import org.springframework.boot.testsupport.container.ElasticsearchContainer8; +import org.springframework.boot.testsupport.container.ElasticsearchContainer9; import org.springframework.context.annotation.Configuration; import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; @@ -48,7 +48,7 @@ class ElasticsearchContainerConnectionDetailsFactoryTests { @Container @ServiceConnection - static final ElasticsearchContainer elasticsearch = new ElasticsearchContainer8().withStartupAttempts(5) + static final ElasticsearchContainer elasticsearch = new ElasticsearchContainer9().withStartupAttempts(5) .withStartupTimeout(Duration.ofMinutes(10)); @Autowired(required = false) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support-docker/src/main/java/org/springframework/boot/testsupport/container/ElasticsearchContainer8.java b/spring-boot-project/spring-boot-tools/spring-boot-test-support-docker/src/main/java/org/springframework/boot/testsupport/container/ElasticsearchContainer9.java similarity index 86% rename from spring-boot-project/spring-boot-tools/spring-boot-test-support-docker/src/main/java/org/springframework/boot/testsupport/container/ElasticsearchContainer8.java rename to spring-boot-project/spring-boot-tools/spring-boot-test-support-docker/src/main/java/org/springframework/boot/testsupport/container/ElasticsearchContainer9.java index 587849e4fc7..3698dc9f329 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-test-support-docker/src/main/java/org/springframework/boot/testsupport/container/ElasticsearchContainer8.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support-docker/src/main/java/org/springframework/boot/testsupport/container/ElasticsearchContainer9.java @@ -23,10 +23,10 @@ import org.testcontainers.elasticsearch.ElasticsearchContainer; * * @author Dmytro Nosan */ -public class ElasticsearchContainer8 extends ElasticsearchContainer { +public class ElasticsearchContainer9 extends ElasticsearchContainer { - public ElasticsearchContainer8() { - super(TestImage.ELASTICSEARCH_8.toString()); + public ElasticsearchContainer9() { + super(TestImage.ELASTICSEARCH.toString()); addEnv("ES_JAVA_OPTS", "-Xms32m -Xmx512m"); addEnv("xpack.security.enabled", "false"); } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support-docker/src/main/java/org/springframework/boot/testsupport/container/TestImage.java b/spring-boot-project/spring-boot-tools/spring-boot-test-support-docker/src/main/java/org/springframework/boot/testsupport/container/TestImage.java index cd59344757f..389fea153f4 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-test-support-docker/src/main/java/org/springframework/boot/testsupport/container/TestImage.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support-docker/src/main/java/org/springframework/boot/testsupport/container/TestImage.java @@ -36,7 +36,6 @@ import org.testcontainers.containers.PostgreSQLContainer; import org.testcontainers.containers.PulsarContainer; import org.testcontainers.containers.RabbitMQContainer; import org.testcontainers.couchbase.CouchbaseContainer; -import org.testcontainers.elasticsearch.ElasticsearchContainer; import org.testcontainers.grafana.LgtmStackContainer; import org.testcontainers.kafka.ConfluentKafkaContainer; import org.testcontainers.ldap.LLdapContainer; @@ -108,17 +107,9 @@ public enum TestImage { .withStartupTimeout(Duration.ofMinutes(10))), /** - * A container image suitable for testing Elasticsearch 7. + * A container image suitable for testing Elasticsearch. */ - ELASTICSEARCH("docker.elastic.co/elasticsearch/elasticsearch", "7.17.28", () -> ElasticsearchContainer.class, - (container) -> ((ElasticsearchContainer) container).withEnv("ES_JAVA_OPTS", "-Xms32m -Xmx512m") - .withStartupAttempts(5) - .withStartupTimeout(Duration.ofMinutes(10))), - - /** - * A container image suitable for testing Elasticsearch 8. - */ - ELASTICSEARCH_8("elasticsearch", "8.17.1"), + ELASTICSEARCH("elasticsearch", "9.0.2"), /** * A container image suitable for testing Grafana OTel LGTM. @@ -279,7 +270,7 @@ public enum TestImage { /** * A container image suitable for testing Elasticsearch via Bitnami. */ - BITNAMI_ELASTICSEARCH("bitnami/elasticsearch", "8.12.1"), + BITNAMI_ELASTICSEARCH("bitnami/elasticsearch", "9.0.2"), /** * A container image suitable for testing MariaDB via Bitnami. diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-elasticsearch/src/dockerTest/java/smoketest/data/elasticsearch/SampleElasticsearch8ApplicationTests.java b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-elasticsearch/src/dockerTest/java/smoketest/data/elasticsearch/SampleElasticsearch8ApplicationTests.java index c5daee55022..616537527de 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-elasticsearch/src/dockerTest/java/smoketest/data/elasticsearch/SampleElasticsearch8ApplicationTests.java +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-elasticsearch/src/dockerTest/java/smoketest/data/elasticsearch/SampleElasticsearch8ApplicationTests.java @@ -44,7 +44,7 @@ class SampleElasticsearch8ApplicationTests { @Container @ServiceConnection @Ssl - static final ElasticsearchContainer elasticSearch = new ElasticsearchContainer(TestImage.ELASTICSEARCH_8.toString()) + static final ElasticsearchContainer elasticSearch = new ElasticsearchContainer(TestImage.ELASTICSEARCH.toString()) .withPassword("my-custom-password"); @Autowired