diff --git a/spring-boot-project/spring-boot-autoconfigure/src/dockerTest/java/org/springframework/boot/autoconfigure/cassandra/CassandraAutoConfigurationIntegrationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/dockerTest/java/org/springframework/boot/autoconfigure/cassandra/CassandraAutoConfigurationIntegrationTests.java index 5d89b6c9aec..666cae4a8f1 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/dockerTest/java/org/springframework/boot/autoconfigure/cassandra/CassandraAutoConfigurationIntegrationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/dockerTest/java/org/springframework/boot/autoconfigure/cassandra/CassandraAutoConfigurationIntegrationTests.java @@ -19,7 +19,7 @@ package org.springframework.boot.autoconfigure.cassandra; import com.datastax.oss.driver.api.core.CqlSession; import com.datastax.oss.driver.api.core.config.DriverConfigLoader; import org.junit.jupiter.api.Test; -import org.testcontainers.containers.CassandraContainer; +import org.testcontainers.cassandra.CassandraContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; @@ -44,7 +44,7 @@ import static org.mockito.Mockito.spy; class CassandraAutoConfigurationIntegrationTests { @Container - static final CassandraContainer cassandra = TestImage.container(CassandraContainer.class); + static final CassandraContainer cassandra = TestImage.container(CassandraContainer.class); private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() .withConfiguration(AutoConfigurations.of(CassandraAutoConfiguration.class)) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/dockerTest/java/org/springframework/boot/autoconfigure/cassandra/CassandraAutoConfigurationWithPasswordAuthenticationIntegrationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/dockerTest/java/org/springframework/boot/autoconfigure/cassandra/CassandraAutoConfigurationWithPasswordAuthenticationIntegrationTests.java index 4f144c65d59..fec320466a5 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/dockerTest/java/org/springframework/boot/autoconfigure/cassandra/CassandraAutoConfigurationWithPasswordAuthenticationIntegrationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/dockerTest/java/org/springframework/boot/autoconfigure/cassandra/CassandraAutoConfigurationWithPasswordAuthenticationIntegrationTests.java @@ -27,7 +27,7 @@ import com.datastax.oss.driver.api.core.cql.SimpleStatement; import org.junit.jupiter.api.Test; import org.rnorth.ducttape.TimeoutException; import org.rnorth.ducttape.unreliables.Unreliables; -import org.testcontainers.containers.CassandraContainer; +import org.testcontainers.cassandra.CassandraContainer; import org.testcontainers.containers.ContainerLaunchException; import org.testcontainers.containers.wait.strategy.AbstractWaitStrategy; import org.testcontainers.images.builder.Transferable; @@ -53,8 +53,7 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType; class CassandraAutoConfigurationWithPasswordAuthenticationIntegrationTests { @Container - static final PasswordAuthenticatorCassandraContainer cassandra = TestImage - .container(PasswordAuthenticatorCassandraContainer.class) + static final CassandraContainer cassandra = TestImage.container(PasswordAuthenticatorCassandraContainer.class) .withStartupAttempts(5) .waitingFor(new CassandraWaitStrategy()); @@ -85,8 +84,7 @@ class CassandraAutoConfigurationWithPasswordAuthenticationIntegrationTests { .withMessageContaining("Authentication error")); } - static final class PasswordAuthenticatorCassandraContainer - extends CassandraContainer { + static final class PasswordAuthenticatorCassandraContainer extends CassandraContainer { PasswordAuthenticatorCassandraContainer(DockerImageName dockerImageName) { super(dockerImageName); diff --git a/spring-boot-project/spring-boot-autoconfigure/src/dockerTest/java/org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfigurationIntegrationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/dockerTest/java/org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfigurationIntegrationTests.java index fd5c2727d62..eb125d06ff0 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/dockerTest/java/org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfigurationIntegrationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/dockerTest/java/org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfigurationIntegrationTests.java @@ -19,7 +19,7 @@ package org.springframework.boot.autoconfigure.data.cassandra; import com.datastax.oss.driver.api.core.CqlSession; import com.datastax.oss.driver.api.core.CqlSessionBuilder; import org.junit.jupiter.api.Test; -import org.testcontainers.containers.CassandraContainer; +import org.testcontainers.cassandra.CassandraContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; @@ -47,7 +47,7 @@ import static org.assertj.core.api.Assertions.assertThat; class CassandraDataAutoConfigurationIntegrationTests { @Container - static final CassandraContainer cassandra = TestImage.container(CassandraContainer.class); + static final CassandraContainer cassandra = TestImage.container(CassandraContainer.class); private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() .withConfiguration( diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index c8098fb0d4f..5fc8404a6e1 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2180,7 +2180,7 @@ bom { releaseNotes("https://github.com/xerial/sqlite-jdbc/releases/tag/{version}") } } - library("Testcontainers", "1.20.1") { + library("Testcontainers", "1.20.2") { group("org.testcontainers") { imports = [ "testcontainers-bom" diff --git a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/testcontainers.adoc b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/testcontainers.adoc index 7a0fde2bf30..2bfff6c8e93 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/testcontainers.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/testcontainers.adoc @@ -60,7 +60,7 @@ The following service connection factories are provided in the `spring-boot-test | Containers of type `JdbcDatabaseContainer` | `KafkaConnectionDetails` -| Containers of type `org.testcontainers.containers.KafkaContainer`, `org.testcontainers.kafka.KafkaContainer` or `RedpandaContainer` +| Containers of type `org.testcontainers.kafka.KafkaContainer`, `org.testcontainers.kafka.ConfluentKafkaContainer` or `RedpandaContainer` | `LiquibaseConnectionDetails` | Containers of type `JdbcDatabaseContainer` diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/dockerTest/java/org/springframework/boot/test/autoconfigure/data/cassandra/DataCassandraTestIntegrationTests.java b/spring-boot-project/spring-boot-test-autoconfigure/src/dockerTest/java/org/springframework/boot/test/autoconfigure/data/cassandra/DataCassandraTestIntegrationTests.java index 5fd24430d24..5486ed745c1 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/dockerTest/java/org/springframework/boot/test/autoconfigure/data/cassandra/DataCassandraTestIntegrationTests.java +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/dockerTest/java/org/springframework/boot/test/autoconfigure/data/cassandra/DataCassandraTestIntegrationTests.java @@ -21,7 +21,7 @@ import java.util.UUID; import com.datastax.oss.driver.api.core.CqlSession; import com.datastax.oss.driver.api.core.CqlSessionBuilder; import org.junit.jupiter.api.Test; -import org.testcontainers.containers.CassandraContainer; +import org.testcontainers.cassandra.CassandraContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; @@ -56,7 +56,7 @@ class DataCassandraTestIntegrationTests { @Container @ServiceConnection - static final CassandraContainer cassandra = TestImage.container(CassandraContainer.class); + static final CassandraContainer cassandra = TestImage.container(CassandraContainer.class); @Autowired private CassandraTemplate cassandraTemplate; diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/dockerTest/java/org/springframework/boot/test/autoconfigure/data/cassandra/DataCassandraTestWithIncludeFilterIntegrationTests.java b/spring-boot-project/spring-boot-test-autoconfigure/src/dockerTest/java/org/springframework/boot/test/autoconfigure/data/cassandra/DataCassandraTestWithIncludeFilterIntegrationTests.java index 1056a9ac24a..0858b6ee3e5 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/dockerTest/java/org/springframework/boot/test/autoconfigure/data/cassandra/DataCassandraTestWithIncludeFilterIntegrationTests.java +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/dockerTest/java/org/springframework/boot/test/autoconfigure/data/cassandra/DataCassandraTestWithIncludeFilterIntegrationTests.java @@ -21,7 +21,7 @@ import java.util.UUID; import com.datastax.oss.driver.api.core.CqlSession; import com.datastax.oss.driver.api.core.CqlSessionBuilder; import org.junit.jupiter.api.Test; -import org.testcontainers.containers.CassandraContainer; +import org.testcontainers.cassandra.CassandraContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; @@ -53,7 +53,7 @@ class DataCassandraTestWithIncludeFilterIntegrationTests { @Container @ServiceConnection - static final CassandraContainer cassandra = TestImage.container(CassandraContainer.class); + static final CassandraContainer cassandra = TestImage.container(CassandraContainer.class); @Autowired private ExampleRepository exampleRepository; diff --git a/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/cassandra/CassandraContainerConnectionDetailsFactoryTests.java b/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/cassandra/CassandraContainerConnectionDetailsFactoryTests.java index 19535dc537f..2747d5a29bb 100644 --- a/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/cassandra/CassandraContainerConnectionDetailsFactoryTests.java +++ b/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/cassandra/CassandraContainerConnectionDetailsFactoryTests.java @@ -18,7 +18,7 @@ package org.springframework.boot.testcontainers.service.connection.cassandra; import com.datastax.oss.driver.api.core.CqlSession; import org.junit.jupiter.api.Test; -import org.testcontainers.containers.CassandraContainer; +import org.testcontainers.cassandra.CassandraContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; @@ -44,7 +44,7 @@ class CassandraContainerConnectionDetailsFactoryTests { @Container @ServiceConnection - static final CassandraContainer cassandra = TestImage.container(CassandraContainer.class); + static final CassandraContainer cassandra = TestImage.container(CassandraContainer.class); @Autowired(required = false) private CassandraConnectionDetails connectionDetails; diff --git a/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/kafka/ConfluentKafkaContainerConnectionDetailsFactoryIntegrationTests.java b/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/kafka/ConfluentKafkaContainerConnectionDetailsFactoryIntegrationTests.java index d02f9b93e3a..50db3de4f35 100644 --- a/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/kafka/ConfluentKafkaContainerConnectionDetailsFactoryIntegrationTests.java +++ b/spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/kafka/ConfluentKafkaContainerConnectionDetailsFactoryIntegrationTests.java @@ -22,9 +22,9 @@ import java.util.List; import org.awaitility.Awaitility; import org.junit.jupiter.api.Test; -import org.testcontainers.containers.KafkaContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; +import org.testcontainers.kafka.ConfluentKafkaContainer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.ImportAutoConfiguration; @@ -55,7 +55,7 @@ class ConfluentKafkaContainerConnectionDetailsFactoryIntegrationTests { @Container @ServiceConnection - static final KafkaContainer kafka = TestImage.container(KafkaContainer.class); + static final ConfluentKafkaContainer kafka = TestImage.container(ConfluentKafkaContainer.class); @Autowired private KafkaTemplate kafkaTemplate; diff --git a/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/cassandra/CassandraContainerConnectionDetailsFactory.java b/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/cassandra/CassandraContainerConnectionDetailsFactory.java index c2dc8fc6ff9..e8b82096ff0 100644 --- a/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/cassandra/CassandraContainerConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/cassandra/CassandraContainerConnectionDetailsFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2023 the original author or authors. + * Copyright 2012-2024 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. @@ -19,7 +19,7 @@ package org.springframework.boot.testcontainers.service.connection.cassandra; import java.net.InetSocketAddress; import java.util.List; -import org.testcontainers.containers.CassandraContainer; +import org.testcontainers.cassandra.CassandraContainer; import org.springframework.boot.autoconfigure.cassandra.CassandraConnectionDetails; import org.springframework.boot.testcontainers.service.connection.ContainerConnectionDetailsFactory; @@ -36,11 +36,11 @@ import org.springframework.boot.testcontainers.service.connection.ServiceConnect * @author Phillip Webb */ class CassandraContainerConnectionDetailsFactory - extends ContainerConnectionDetailsFactory, CassandraConnectionDetails> { + extends ContainerConnectionDetailsFactory { @Override protected CassandraConnectionDetails getContainerConnectionDetails( - ContainerConnectionSource> source) { + ContainerConnectionSource source) { return new CassandraContainerConnectionDetails(source); } @@ -48,9 +48,9 @@ class CassandraContainerConnectionDetailsFactory * {@link CassandraConnectionDetails} backed by a {@link ContainerConnectionSource}. */ private static final class CassandraContainerConnectionDetails - extends ContainerConnectionDetails> implements CassandraConnectionDetails { + extends ContainerConnectionDetails implements CassandraConnectionDetails { - private CassandraContainerConnectionDetails(ContainerConnectionSource> source) { + private CassandraContainerConnectionDetails(ContainerConnectionSource source) { super(source); } diff --git a/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/kafka/ConfluentKafkaContainerConnectionDetailsFactory.java b/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/kafka/ConfluentKafkaContainerConnectionDetailsFactory.java index 7fdc0232396..d7a23db2957 100644 --- a/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/kafka/ConfluentKafkaContainerConnectionDetailsFactory.java +++ b/spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/kafka/ConfluentKafkaContainerConnectionDetailsFactory.java @@ -18,7 +18,7 @@ package org.springframework.boot.testcontainers.service.connection.kafka; import java.util.List; -import org.testcontainers.containers.KafkaContainer; +import org.testcontainers.kafka.ConfluentKafkaContainer; import org.springframework.boot.autoconfigure.kafka.KafkaConnectionDetails; import org.springframework.boot.testcontainers.service.connection.ContainerConnectionDetailsFactory; @@ -27,17 +27,19 @@ import org.springframework.boot.testcontainers.service.connection.ServiceConnect /** * {@link ContainerConnectionDetailsFactory} to create {@link KafkaConnectionDetails} from - * a {@link ServiceConnection @ServiceConnection}-annotated {@link KafkaContainer}. + * a {@link ServiceConnection @ServiceConnection}-annotated + * {@link ConfluentKafkaContainer}. * * @author Moritz Halbritter * @author Andy Wilkinson * @author Phillip Webb */ class ConfluentKafkaContainerConnectionDetailsFactory - extends ContainerConnectionDetailsFactory { + extends ContainerConnectionDetailsFactory { @Override - protected KafkaConnectionDetails getContainerConnectionDetails(ContainerConnectionSource source) { + protected KafkaConnectionDetails getContainerConnectionDetails( + ContainerConnectionSource source) { return new ConfluentKafkaContainerConnectionDetails(source); } @@ -45,9 +47,9 @@ class ConfluentKafkaContainerConnectionDetailsFactory * {@link KafkaConnectionDetails} backed by a {@link ContainerConnectionSource}. */ private static final class ConfluentKafkaContainerConnectionDetails - extends ContainerConnectionDetails implements KafkaConnectionDetails { + extends ContainerConnectionDetails implements KafkaConnectionDetails { - private ConfluentKafkaContainerConnectionDetails(ContainerConnectionSource source) { + private ConfluentKafkaContainerConnectionDetails(ContainerConnectionSource source) { super(source); } 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 96daef3968a..b4011ffba4b 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 @@ -27,10 +27,9 @@ import com.redis.testcontainers.RedisContainer; import com.redis.testcontainers.RedisStackContainer; import org.testcontainers.activemq.ActiveMQContainer; import org.testcontainers.activemq.ArtemisContainer; -import org.testcontainers.containers.CassandraContainer; +import org.testcontainers.cassandra.CassandraContainer; import org.testcontainers.containers.Container; import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.KafkaContainer; import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.containers.Neo4jContainer; import org.testcontainers.containers.PostgreSQLContainer; @@ -39,6 +38,7 @@ 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.redpanda.RedpandaContainer; import org.testcontainers.utility.DockerImageName; @@ -81,7 +81,7 @@ public enum TestImage { * A container image suitable for testing Cassandra. */ CASSANDRA("cassandra", "3.11.10", () -> CassandraContainer.class, - (container) -> ((CassandraContainer) container).withStartupTimeout(Duration.ofMinutes(10))), + (container) -> ((CassandraContainer) container).withStartupTimeout(Duration.ofMinutes(10))), /** * A container image suitable for testing Couchbase. @@ -117,7 +117,7 @@ public enum TestImage { /** * A container image suitable for testing Confluent's distribution of Kafka. */ - CONFLUENT_KAFKA("confluentinc/cp-kafka", "7.4.0", () -> KafkaContainer.class), + CONFLUENT_KAFKA("confluentinc/cp-kafka", "7.4.0", () -> ConfluentKafkaContainer.class), /** * A container image suitable for testing OpenLDAP. diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-cassandra/src/dockerTest/java/smoketest/data/cassandra/SecureCassandraContainer.java b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-cassandra/src/dockerTest/java/smoketest/data/cassandra/SecureCassandraContainer.java index 22b8b4bcb74..91ca358d6dd 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-cassandra/src/dockerTest/java/smoketest/data/cassandra/SecureCassandraContainer.java +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-cassandra/src/dockerTest/java/smoketest/data/cassandra/SecureCassandraContainer.java @@ -16,7 +16,7 @@ package smoketest.data.cassandra; -import org.testcontainers.containers.CassandraContainer; +import org.testcontainers.cassandra.CassandraContainer; import org.testcontainers.utility.DockerImageName; import org.testcontainers.utility.MountableFile; @@ -25,7 +25,7 @@ import org.testcontainers.utility.MountableFile; * * @author Scott Frederick */ -class SecureCassandraContainer extends CassandraContainer { +class SecureCassandraContainer extends CassandraContainer { SecureCassandraContainer(DockerImageName dockerImageName) { super(dockerImageName); diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-kafka/src/dockerTest/java/smoketest/kafka/ssl/SampleKafkaSslApplicationTests.java b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-kafka/src/dockerTest/java/smoketest/kafka/ssl/SampleKafkaSslApplicationTests.java index 8582c5bddf3..62d093b664c 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-kafka/src/dockerTest/java/smoketest/kafka/ssl/SampleKafkaSslApplicationTests.java +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-kafka/src/dockerTest/java/smoketest/kafka/ssl/SampleKafkaSslApplicationTests.java @@ -20,9 +20,9 @@ import java.time.Duration; import org.awaitility.Awaitility; import org.junit.jupiter.api.Test; -import org.testcontainers.containers.KafkaContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; +import org.testcontainers.kafka.KafkaContainer; import org.testcontainers.utility.MountableFile; import smoketest.kafka.Consumer; import smoketest.kafka.Producer;