diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cassandra/CassandraAutoConfigurationWithPasswordAuthenticationIntegrationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cassandra/CassandraAutoConfigurationWithPasswordAuthenticationIntegrationTests.java index af67db0756..57a173aeb4 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cassandra/CassandraAutoConfigurationWithPasswordAuthenticationIntegrationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cassandra/CassandraAutoConfigurationWithPasswordAuthenticationIntegrationTests.java @@ -28,7 +28,6 @@ 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.containers.ContainerLaunchException; import org.testcontainers.containers.wait.strategy.AbstractWaitStrategy; import org.testcontainers.images.builder.Transferable; @@ -37,6 +36,7 @@ import org.testcontainers.junit.jupiter.Testcontainers; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; +import org.springframework.boot.testsupport.testcontainers.CassandraContainer; import org.springframework.util.StreamUtils; import static org.assertj.core.api.Assertions.assertThat; @@ -51,7 +51,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; class CassandraAutoConfigurationWithPasswordAuthenticationIntegrationTests { @Container - static final CassandraContainer cassandra = new PasswordAuthenticatorCassandraContainer().withStartupAttempts(5) + static final CassandraContainer cassandra = new PasswordAuthenticatorCassandraContainer().withStartupAttempts(5) .withStartupTimeout(Duration.ofMinutes(10)).waitingFor(new CassandraWaitStrategy()); private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() @@ -80,8 +80,7 @@ class CassandraAutoConfigurationWithPasswordAuthenticationIntegrationTests { .hasMessageContaining("Authentication error")); } - static final class PasswordAuthenticatorCassandraContainer - extends CassandraContainer { + static final class PasswordAuthenticatorCassandraContainer extends CassandraContainer { @Override protected void containerIsCreated(String containerId) { diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfigurationIntegrationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfigurationIntegrationTests.java index 31c9ba7e98..a129f63afd 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfigurationIntegrationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfigurationIntegrationTests.java @@ -21,7 +21,6 @@ import java.time.Duration; 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.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; @@ -31,6 +30,7 @@ import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration; import org.springframework.boot.autoconfigure.data.cassandra.city.City; import org.springframework.boot.test.context.runner.ApplicationContextRunner; +import org.springframework.boot.testsupport.testcontainers.CassandraContainer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.cassandra.config.SchemaAction; @@ -48,7 +48,7 @@ import static org.assertj.core.api.Assertions.assertThat; class CassandraDataAutoConfigurationIntegrationTests { @Container - static final CassandraContainer cassandra = new CassandraContainer<>().withStartupAttempts(5) + static final CassandraContainer cassandra = new CassandraContainer().withStartupAttempts(5) .withStartupTimeout(Duration.ofMinutes(10)); private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-test-support/build.gradle index 185a534eed..e84df4e337 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-test-support/build.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support/build.gradle @@ -18,6 +18,7 @@ dependencies { compileOnly("org.neo4j:neo4j-ogm-core") compileOnly("org.springframework:spring-context") compileOnly("org.springframework.data:spring-data-redis") + compileOnly("org.testcontainers:cassandra") compileOnly("org.testcontainers:elasticsearch") compileOnly("org.testcontainers:testcontainers") diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/CassandraContainer.java b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/CassandraContainer.java new file mode 100644 index 0000000000..f3f1655d72 --- /dev/null +++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/CassandraContainer.java @@ -0,0 +1,34 @@ +/* + * Copyright 2012-2020 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.testsupport.testcontainers; + +import org.testcontainers.utility.DockerImageName; + +/** + * Extension of {@link org.testcontainers.containers.CassandraContainer} that provides a + * default version. + * + * @author Stephane Nicoll + * @since 2.3.6 + */ +public class CassandraContainer extends org.testcontainers.containers.CassandraContainer { + + public CassandraContainer() { + super(DockerImageName.parse("cassandra").withTag("3.11.2")); + } + +} diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/VersionOverridingElasticsearchContainer.java b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/VersionOverridingElasticsearchContainer.java index c2474983d1..94fd6197d1 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/VersionOverridingElasticsearchContainer.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/VersionOverridingElasticsearchContainer.java @@ -22,16 +22,17 @@ import org.testcontainers.elasticsearch.ElasticsearchContainer; * Extension of {@link ElasticsearchContainer} to override default version. * * @author Scott Frederick + * @since 2.3.6 */ public class VersionOverridingElasticsearchContainer extends ElasticsearchContainer { /** - * Elasticsearch Docker base URL + * Elasticsearch Docker base URL. */ private static final String ELASTICSEARCH_IMAGE = "docker.elastic.co/elasticsearch/elasticsearch"; /** - * Elasticsearch version + * Elasticsearch version. */ protected static final String ELASTICSEARCH_VERSION = Version.CURRENT.toString();