Browse Source

Upgrade to Testcontainers 1.20.2

Closes gh-42670
pull/42645/head
Stéphane Nicoll 1 year ago
parent
commit
a40ae49a76
  1. 4
      spring-boot-project/spring-boot-autoconfigure/src/dockerTest/java/org/springframework/boot/autoconfigure/cassandra/CassandraAutoConfigurationIntegrationTests.java
  2. 8
      spring-boot-project/spring-boot-autoconfigure/src/dockerTest/java/org/springframework/boot/autoconfigure/cassandra/CassandraAutoConfigurationWithPasswordAuthenticationIntegrationTests.java
  3. 4
      spring-boot-project/spring-boot-autoconfigure/src/dockerTest/java/org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfigurationIntegrationTests.java
  4. 2
      spring-boot-project/spring-boot-dependencies/build.gradle
  5. 2
      spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/testcontainers.adoc
  6. 4
      spring-boot-project/spring-boot-test-autoconfigure/src/dockerTest/java/org/springframework/boot/test/autoconfigure/data/cassandra/DataCassandraTestIntegrationTests.java
  7. 4
      spring-boot-project/spring-boot-test-autoconfigure/src/dockerTest/java/org/springframework/boot/test/autoconfigure/data/cassandra/DataCassandraTestWithIncludeFilterIntegrationTests.java
  8. 4
      spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/cassandra/CassandraContainerConnectionDetailsFactoryTests.java
  9. 4
      spring-boot-project/spring-boot-testcontainers/src/dockerTest/java/org/springframework/boot/testcontainers/service/connection/kafka/ConfluentKafkaContainerConnectionDetailsFactoryIntegrationTests.java
  10. 12
      spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/cassandra/CassandraContainerConnectionDetailsFactory.java
  11. 14
      spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/kafka/ConfluentKafkaContainerConnectionDetailsFactory.java
  12. 8
      spring-boot-project/spring-boot-tools/spring-boot-test-support-docker/src/main/java/org/springframework/boot/testsupport/container/TestImage.java
  13. 4
      spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-data-cassandra/src/dockerTest/java/smoketest/data/cassandra/SecureCassandraContainer.java
  14. 2
      spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-kafka/src/dockerTest/java/smoketest/kafka/ssl/SampleKafkaSslApplicationTests.java

4
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; @@ -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; @@ -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))

8
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; @@ -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; @@ -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 { @@ -85,8 +84,7 @@ class CassandraAutoConfigurationWithPasswordAuthenticationIntegrationTests {
.withMessageContaining("Authentication error"));
}
static final class PasswordAuthenticatorCassandraContainer
extends CassandraContainer<PasswordAuthenticatorCassandraContainer> {
static final class PasswordAuthenticatorCassandraContainer extends CassandraContainer {
PasswordAuthenticatorCassandraContainer(DockerImageName dockerImageName) {
super(dockerImageName);

4
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; @@ -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; @@ -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(

2
spring-boot-project/spring-boot-dependencies/build.gradle

@ -2180,7 +2180,7 @@ bom { @@ -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"

2
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 @@ -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`

4
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; @@ -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 { @@ -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;

4
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; @@ -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 { @@ -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;

4
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; @@ -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 { @@ -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;

4
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; @@ -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 { @@ -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<String, String> kafkaTemplate;

12
spring-boot-project/spring-boot-testcontainers/src/main/java/org/springframework/boot/testcontainers/service/connection/cassandra/CassandraContainerConnectionDetailsFactory.java

@ -1,5 +1,5 @@ @@ -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; @@ -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 @@ -36,11 +36,11 @@ import org.springframework.boot.testcontainers.service.connection.ServiceConnect
* @author Phillip Webb
*/
class CassandraContainerConnectionDetailsFactory
extends ContainerConnectionDetailsFactory<CassandraContainer<?>, CassandraConnectionDetails> {
extends ContainerConnectionDetailsFactory<CassandraContainer, CassandraConnectionDetails> {
@Override
protected CassandraConnectionDetails getContainerConnectionDetails(
ContainerConnectionSource<CassandraContainer<?>> source) {
ContainerConnectionSource<CassandraContainer> source) {
return new CassandraContainerConnectionDetails(source);
}
@ -48,9 +48,9 @@ class CassandraContainerConnectionDetailsFactory @@ -48,9 +48,9 @@ class CassandraContainerConnectionDetailsFactory
* {@link CassandraConnectionDetails} backed by a {@link ContainerConnectionSource}.
*/
private static final class CassandraContainerConnectionDetails
extends ContainerConnectionDetails<CassandraContainer<?>> implements CassandraConnectionDetails {
extends ContainerConnectionDetails<CassandraContainer> implements CassandraConnectionDetails {
private CassandraContainerConnectionDetails(ContainerConnectionSource<CassandraContainer<?>> source) {
private CassandraContainerConnectionDetails(ContainerConnectionSource<CassandraContainer> source) {
super(source);
}

14
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; @@ -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 @@ -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<KafkaContainer, KafkaConnectionDetails> {
extends ContainerConnectionDetailsFactory<ConfluentKafkaContainer, KafkaConnectionDetails> {
@Override
protected KafkaConnectionDetails getContainerConnectionDetails(ContainerConnectionSource<KafkaContainer> source) {
protected KafkaConnectionDetails getContainerConnectionDetails(
ContainerConnectionSource<ConfluentKafkaContainer> source) {
return new ConfluentKafkaContainerConnectionDetails(source);
}
@ -45,9 +47,9 @@ class ConfluentKafkaContainerConnectionDetailsFactory @@ -45,9 +47,9 @@ class ConfluentKafkaContainerConnectionDetailsFactory
* {@link KafkaConnectionDetails} backed by a {@link ContainerConnectionSource}.
*/
private static final class ConfluentKafkaContainerConnectionDetails
extends ContainerConnectionDetails<KafkaContainer> implements KafkaConnectionDetails {
extends ContainerConnectionDetails<ConfluentKafkaContainer> implements KafkaConnectionDetails {
private ConfluentKafkaContainerConnectionDetails(ContainerConnectionSource<KafkaContainer> source) {
private ConfluentKafkaContainerConnectionDetails(ContainerConnectionSource<ConfluentKafkaContainer> source) {
super(source);
}

8
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; @@ -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; @@ -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 { @@ -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 { @@ -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.

4
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 @@ @@ -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; @@ -25,7 +25,7 @@ import org.testcontainers.utility.MountableFile;
*
* @author Scott Frederick
*/
class SecureCassandraContainer extends CassandraContainer<SecureCassandraContainer> {
class SecureCassandraContainer extends CassandraContainer {
SecureCassandraContainer(DockerImageName dockerImageName) {
super(dockerImageName);

2
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; @@ -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;

Loading…
Cancel
Save