Skip to content

Commit 23ad2b4

Browse files
committed
Rationalize Testcontainers image versions
This commit rationalizes the Docker image names used in integration tests. Closes gh-24107
1 parent 0c43d13 commit 23ad2b4

File tree

23 files changed

+163
-73
lines changed

23 files changed

+163
-73
lines changed

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cassandra/CassandraAutoConfigurationWithPasswordAuthenticationIntegrationTests.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737

3838
import org.springframework.boot.autoconfigure.AutoConfigurations;
3939
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
40+
import org.springframework.boot.testsupport.testcontainers.DockerImageNames;
4041
import org.springframework.util.StreamUtils;
4142

4243
import static org.assertj.core.api.Assertions.assertThat;
@@ -83,6 +84,10 @@ void authenticationWithInvalidCredentials() {
8384
static final class PasswordAuthenticatorCassandraContainer
8485
extends CassandraContainer<PasswordAuthenticatorCassandraContainer> {
8586

87+
PasswordAuthenticatorCassandraContainer() {
88+
super(DockerImageNames.cassandra().toString());
89+
}
90+
8691
@Override
8792
protected void containerIsCreated(String containerId) {
8893
String config = this.copyFileFromContainer("/etc/cassandra/cassandra.yaml",

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseAutoConfigurationIntegrationTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
import org.springframework.boot.autoconfigure.AutoConfigurations;
3333
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
34+
import org.springframework.boot.testsupport.testcontainers.DockerImageNames;
3435

3536
import static org.assertj.core.api.Assertions.assertThat;
3637

@@ -46,8 +47,8 @@ class CouchbaseAutoConfigurationIntegrationTests {
4647
private static final String BUCKET_NAME = "cbbucket";
4748

4849
@Container
49-
static final CouchbaseContainer couchbase = new CouchbaseContainer().withCredentials("spring", "password")
50-
.withStartupAttempts(5).withStartupTimeout(Duration.ofMinutes(10))
50+
static final CouchbaseContainer couchbase = new CouchbaseContainer(DockerImageNames.couchbase().toString())
51+
.withCredentials("spring", "password").withStartupAttempts(5).withStartupTimeout(Duration.ofMinutes(10))
5152
.withBucket(new BucketDefinition(BUCKET_NAME).withPrimaryIndex(false));
5253

5354
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfigurationIntegrationTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration;
3232
import org.springframework.boot.autoconfigure.data.cassandra.city.City;
3333
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
34+
import org.springframework.boot.testsupport.testcontainers.DockerImageNames;
3435
import org.springframework.context.annotation.Bean;
3536
import org.springframework.context.annotation.Configuration;
3637
import org.springframework.data.cassandra.config.SchemaAction;
@@ -48,8 +49,8 @@
4849
class CassandraDataAutoConfigurationIntegrationTests {
4950

5051
@Container
51-
static final CassandraContainer<?> cassandra = new CassandraContainer<>().withStartupAttempts(5)
52-
.withStartupTimeout(Duration.ofMinutes(10));
52+
static final CassandraContainer<?> cassandra = new CassandraContainer<>(DockerImageNames.cassandra().toString())
53+
.withStartupAttempts(5).withStartupTimeout(Duration.ofMinutes(10));
5354

5455
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
5556
.withConfiguration(

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/elasticsearch/ElasticsearchRepositoriesAutoConfigurationTests.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.springframework.boot.autoconfigure.data.empty.EmptyDataPackage;
3232
import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration;
3333
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
34+
import org.springframework.boot.testsupport.testcontainers.DockerImageNames;
3435
import org.springframework.context.annotation.Configuration;
3536
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
3637
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
@@ -48,8 +49,9 @@
4849
class ElasticsearchRepositoriesAutoConfigurationTests {
4950

5051
@Container
51-
static final ElasticsearchContainer elasticsearch = new VersionOverridingElasticsearchContainer()
52-
.withStartupAttempts(5).withStartupTimeout(Duration.ofMinutes(10));
52+
static final ElasticsearchContainer elasticsearch = new ElasticsearchContainer(
53+
DockerImageNames.elasticsearch().toString()).withStartupAttempts(5)
54+
.withStartupTimeout(Duration.ofMinutes(10));
5355

5456
private ApplicationContextRunner contextRunner = new ApplicationContextRunner()
5557
.withConfiguration(AutoConfigurations.of(ElasticsearchRestClientAutoConfiguration.class,

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/elasticsearch/ReactiveElasticsearchRepositoriesAutoConfigurationTests.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.springframework.boot.autoconfigure.data.elasticsearch.city.ReactiveCityRepository;
3131
import org.springframework.boot.autoconfigure.data.empty.EmptyDataPackage;
3232
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
33+
import org.springframework.boot.testsupport.testcontainers.DockerImageNames;
3334
import org.springframework.context.annotation.Configuration;
3435
import org.springframework.data.elasticsearch.core.ReactiveElasticsearchTemplate;
3536
import org.springframework.data.elasticsearch.repository.config.EnableReactiveElasticsearchRepositories;
@@ -47,8 +48,9 @@
4748
public class ReactiveElasticsearchRepositoriesAutoConfigurationTests {
4849

4950
@Container
50-
static ElasticsearchContainer elasticsearch = new VersionOverridingElasticsearchContainer().withStartupAttempts(5)
51-
.withStartupTimeout(Duration.ofMinutes(10));
51+
static ElasticsearchContainer elasticsearch = new ElasticsearchContainer(
52+
DockerImageNames.elasticsearch().toString()).withStartupAttempts(5)
53+
.withStartupTimeout(Duration.ofMinutes(10));
5254

5355
private ApplicationContextRunner contextRunner = new ApplicationContextRunner()
5456
.withConfiguration(AutoConfigurations.of(ReactiveElasticsearchRestClientAutoConfiguration.class,

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/elasticsearch/ReactiveElasticsearchRestClientAutoConfigurationTests.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030

3131
import org.springframework.boot.autoconfigure.AutoConfigurations;
3232
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
33+
import org.springframework.boot.testsupport.testcontainers.DockerImageNames;
3334
import org.springframework.context.annotation.Bean;
3435
import org.springframework.context.annotation.Configuration;
3536
import org.springframework.data.elasticsearch.client.ClientConfiguration;
@@ -47,8 +48,9 @@
4748
public class ReactiveElasticsearchRestClientAutoConfigurationTests {
4849

4950
@Container
50-
static ElasticsearchContainer elasticsearch = new VersionOverridingElasticsearchContainer().withStartupAttempts(5)
51-
.withStartupTimeout(Duration.ofMinutes(10));
51+
static ElasticsearchContainer elasticsearch = new ElasticsearchContainer(
52+
DockerImageNames.elasticsearch().toString()).withStartupAttempts(5)
53+
.withStartupTimeout(Duration.ofMinutes(10));
5254

5355
private ApplicationContextRunner contextRunner = new ApplicationContextRunner()
5456
.withConfiguration(AutoConfigurations.of(ReactiveElasticsearchRestClientAutoConfiguration.class));

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/elasticsearch/VersionOverridingElasticsearchContainer.java

Lines changed: 0 additions & 42 deletions
This file was deleted.

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/elasticsearch/ElasticsearchRestClientAutoConfigurationTests.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import org.springframework.boot.autoconfigure.AutoConfigurations;
4343
import org.springframework.boot.test.context.FilteredClassLoader;
4444
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
45+
import org.springframework.boot.testsupport.testcontainers.DockerImageNames;
4546
import org.springframework.context.annotation.Bean;
4647
import org.springframework.context.annotation.Configuration;
4748

@@ -59,8 +60,9 @@
5960
class ElasticsearchRestClientAutoConfigurationTests {
6061

6162
@Container
62-
static final ElasticsearchContainer elasticsearch = new ElasticsearchContainer().withStartupAttempts(5)
63-
.withStartupTimeout(Duration.ofMinutes(10));
63+
static final ElasticsearchContainer elasticsearch = new ElasticsearchContainer(
64+
DockerImageNames.elasticsearch().toString()).withStartupAttempts(5)
65+
.withStartupTimeout(Duration.ofMinutes(10));
6466

6567
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
6668
.withConfiguration(AutoConfigurations.of(ElasticsearchRestClientAutoConfiguration.class));

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/session/SessionAutoConfigurationMongoTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.springframework.boot.test.context.assertj.AssertableWebApplicationContext;
3131
import org.springframework.boot.test.context.runner.ContextConsumer;
3232
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
33+
import org.springframework.boot.testsupport.testcontainers.DockerImageNames;
3334
import org.springframework.session.data.mongo.MongoIndexedSessionRepository;
3435
import org.springframework.session.data.redis.RedisIndexedSessionRepository;
3536
import org.springframework.session.hazelcast.HazelcastIndexedSessionRepository;
@@ -46,8 +47,8 @@
4647
class SessionAutoConfigurationMongoTests extends AbstractSessionAutoConfigurationTests {
4748

4849
@Container
49-
static final MongoDBContainer mongoDB = new MongoDBContainer().withStartupAttempts(5)
50-
.withStartupTimeout(Duration.ofMinutes(5));
50+
static final MongoDBContainer mongoDB = new MongoDBContainer(DockerImageNames.mongo().toString())
51+
.withStartupAttempts(5).withStartupTimeout(Duration.ofMinutes(5));
5152

5253
private final WebApplicationContextRunner contextRunner = new WebApplicationContextRunner()
5354
.withConfiguration(AutoConfigurations.of(MongoAutoConfiguration.class, MongoDataAutoConfiguration.class,

spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/data/mongo/DataMongoTestIntegrationTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
2727
import org.springframework.beans.factory.annotation.Autowired;
28+
import org.springframework.boot.testsupport.testcontainers.DockerImageNames;
2829
import org.springframework.context.ApplicationContext;
2930
import org.springframework.data.mongodb.core.MongoTemplate;
3031
import org.springframework.test.context.DynamicPropertyRegistry;
@@ -43,8 +44,8 @@
4344
class DataMongoTestIntegrationTests {
4445

4546
@Container
46-
static final MongoDBContainer mongoDB = new MongoDBContainer("mongo:4.0.10").withStartupAttempts(5)
47-
.withStartupTimeout(Duration.ofMinutes(5));
47+
static final MongoDBContainer mongoDB = new MongoDBContainer(DockerImageNames.mongo().toString())
48+
.withStartupAttempts(5).withStartupTimeout(Duration.ofMinutes(5));
4849

4950
@Autowired
5051
private MongoTemplate mongoTemplate;

spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/data/mongo/DataMongoTestReactiveIntegrationTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.testcontainers.junit.jupiter.Testcontainers;
2525

2626
import org.springframework.beans.factory.annotation.Autowired;
27+
import org.springframework.boot.testsupport.testcontainers.DockerImageNames;
2728
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
2829
import org.springframework.test.context.DynamicPropertyRegistry;
2930
import org.springframework.test.context.DynamicPropertySource;
@@ -40,8 +41,8 @@
4041
class DataMongoTestReactiveIntegrationTests {
4142

4243
@Container
43-
static final MongoDBContainer mongoDB = new MongoDBContainer("mongo:4.0.10").withStartupAttempts(5)
44-
.withStartupTimeout(Duration.ofMinutes(5));
44+
static final MongoDBContainer mongoDB = new MongoDBContainer(DockerImageNames.mongo().toString())
45+
.withStartupAttempts(5).withStartupTimeout(Duration.ofMinutes(5));
4546

4647
@Autowired
4748
private ReactiveMongoTemplate mongoTemplate;

spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/data/mongo/DataMongoTestWithIncludeFilterIntegrationTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.testcontainers.junit.jupiter.Testcontainers;
2525

2626
import org.springframework.beans.factory.annotation.Autowired;
27+
import org.springframework.boot.testsupport.testcontainers.DockerImageNames;
2728
import org.springframework.context.annotation.ComponentScan.Filter;
2829
import org.springframework.stereotype.Service;
2930
import org.springframework.test.context.DynamicPropertyRegistry;
@@ -41,8 +42,8 @@
4142
class DataMongoTestWithIncludeFilterIntegrationTests {
4243

4344
@Container
44-
static final MongoDBContainer mongoDB = new MongoDBContainer("mongo:4.0.10").withStartupAttempts(5)
45-
.withStartupTimeout(Duration.ofMinutes(5));
45+
static final MongoDBContainer mongoDB = new MongoDBContainer(DockerImageNames.mongo().toString())
46+
.withStartupAttempts(5).withStartupTimeout(Duration.ofMinutes(5));
4647

4748
@Autowired
4849
private ExampleService service;

spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/data/mongo/TransactionalDataMongoTestIntegrationTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.springframework.beans.factory.InitializingBean;
2727
import org.springframework.beans.factory.annotation.Autowired;
2828
import org.springframework.boot.test.context.TestConfiguration;
29+
import org.springframework.boot.testsupport.testcontainers.DockerImageNames;
2930
import org.springframework.context.annotation.Bean;
3031
import org.springframework.data.mongodb.MongoDatabaseFactory;
3132
import org.springframework.data.mongodb.MongoTransactionManager;
@@ -47,8 +48,8 @@
4748
class TransactionalDataMongoTestIntegrationTests {
4849

4950
@Container
50-
static final MongoDBContainer mongoDB = new MongoDBContainer("mongo:4.0.10").withStartupAttempts(5)
51-
.withStartupTimeout(Duration.ofMinutes(5));
51+
static final MongoDBContainer mongoDB = new MongoDBContainer(DockerImageNames.mongo().toString())
52+
.withStartupAttempts(5).withStartupTimeout(Duration.ofMinutes(5));
5253

5354
@Autowired
5455
private ExampleRepository exampleRepository;

spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/data/neo4j/DataNeo4jTestIntegrationTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
2828
import org.springframework.beans.factory.annotation.Autowired;
29+
import org.springframework.boot.testsupport.testcontainers.DockerImageNames;
2930
import org.springframework.context.ApplicationContext;
3031
import org.springframework.test.context.DynamicPropertyRegistry;
3132
import org.springframework.test.context.DynamicPropertySource;
@@ -45,8 +46,8 @@
4546
class DataNeo4jTestIntegrationTests {
4647

4748
@Container
48-
static final Neo4jContainer<?> neo4j = new Neo4jContainer<>().withoutAuthentication()
49-
.withStartupTimeout(Duration.ofMinutes(10));
49+
static final Neo4jContainer<?> neo4j = new Neo4jContainer<>(DockerImageNames.neo4j().toString())
50+
.withoutAuthentication().withStartupTimeout(Duration.ofMinutes(10));
5051

5152
@Autowired
5253
private Session session;

spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/data/neo4j/DataNeo4jTestPropertiesIntegrationTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.testcontainers.junit.jupiter.Testcontainers;
2525

2626
import org.springframework.beans.factory.annotation.Autowired;
27+
import org.springframework.boot.testsupport.testcontainers.DockerImageNames;
2728
import org.springframework.core.env.Environment;
2829
import org.springframework.test.context.DynamicPropertyRegistry;
2930
import org.springframework.test.context.DynamicPropertySource;
@@ -41,8 +42,8 @@
4142
class DataNeo4jTestPropertiesIntegrationTests {
4243

4344
@Container
44-
static final Neo4jContainer<?> neo4j = new Neo4jContainer<>().withoutAuthentication()
45-
.withStartupTimeout(Duration.ofMinutes(10));
45+
static final Neo4jContainer<?> neo4j = new Neo4jContainer<>(DockerImageNames.neo4j().toString())
46+
.withoutAuthentication().withStartupTimeout(Duration.ofMinutes(10));
4647

4748
@Autowired
4849
private Environment environment;

spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/data/neo4j/DataNeo4jTestWithIncludeFilterIntegrationTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.testcontainers.junit.jupiter.Testcontainers;
2525

2626
import org.springframework.beans.factory.annotation.Autowired;
27+
import org.springframework.boot.testsupport.testcontainers.DockerImageNames;
2728
import org.springframework.context.annotation.ComponentScan.Filter;
2829
import org.springframework.stereotype.Service;
2930
import org.springframework.test.context.DynamicPropertyRegistry;
@@ -42,8 +43,8 @@
4243
class DataNeo4jTestWithIncludeFilterIntegrationTests {
4344

4445
@Container
45-
static final Neo4jContainer<?> neo4j = new Neo4jContainer<>().withoutAuthentication()
46-
.withStartupTimeout(Duration.ofMinutes(10));
46+
static final Neo4jContainer<?> neo4j = new Neo4jContainer<>(DockerImageNames.neo4j().toString())
47+
.withoutAuthentication().withStartupTimeout(Duration.ofMinutes(10));
4748

4849
@Autowired
4950
private ExampleService service;

spring-boot-project/spring-boot-tools/spring-boot-test-support/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ dependencies {
1111
compileOnly("com.datastax.oss:java-driver-core")
1212
compileOnly("javax.servlet:javax.servlet-api")
1313
compileOnly("junit:junit")
14+
compileOnly("org.elasticsearch:elasticsearch")
1415
compileOnly("org.junit.jupiter:junit-jupiter")
1516
compileOnly("org.junit.platform:junit-platform-engine")
1617
compileOnly("org.mockito:mockito-core")

0 commit comments

Comments
 (0)