Remove Bitnami support

Closes gh-47267
This commit is contained in:
Phillip Webb 2025-09-18 14:41:16 -07:00
parent 255ea92a57
commit c1d51f8687
45 changed files with 24 additions and 341 deletions

View File

@ -90,25 +90,25 @@ The following service connections are currently supported:
| Containers named "apache/activemq-artemis"
| javadoc:org.springframework.boot.cassandra.autoconfigure.CassandraConnectionDetails[]
| Containers named "cassandra" or "bitnami/cassandra"
| Containers named "cassandra"
| javadoc:org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchConnectionDetails[]
| Containers named "elasticsearch" or "bitnami/elasticsearch"
| Containers named "elasticsearch"
| javadoc:org.springframework.boot.autoconfigure.hazelcast.HazelcastConnectionDetails[]
| Containers named "hazelcast/hazelcast".
| javadoc:org.springframework.boot.autoconfigure.jdbc.JdbcConnectionDetails[]
| Containers named "clickhouse/clickhouse-server", "bitnami/clickhouse", "gvenzl/oracle-free", "gvenzl/oracle-xe", "mariadb", "bitnami/mariadb", "mssql/server", "mysql", "bitnami/mysql", "postgres", or "bitnami/postgresql"
| Containers named "clickhouse/clickhouse-server", "gvenzl/oracle-free", "gvenzl/oracle-xe", "mariadb", "mssql/server", "mysql", or "postgres"
| javadoc:org.springframework.boot.ldap.autoconfigure.LdapConnectionDetails[]
| Containers named "osixia/openldap", "lldap/lldap"
| javadoc:org.springframework.boot.autoconfigure.mongo.MongoConnectionDetails[]
| Containers named "mongo" or "bitnami/mongodb"
| Containers named "mongo"
| javadoc:org.springframework.boot.neo4j.autoconfigure.Neo4jConnectionDetails[]
| Containers named "neo4j" or "bitnami/neo4j"
| Containers named "neo4j"
| javadoc:org.springframework.boot.opentelemetry.actuate.autoconfigure.logging.OpenTelemetryLoggingConnectionDetails[]
| Containers named "otel/opentelemetry-collector-contrib", "grafana/otel-lgtm"
@ -123,13 +123,13 @@ The following service connections are currently supported:
| Containers named "apachepulsar/pulsar"
| javadoc:org.springframework.boot.autoconfigure.r2dbc.R2dbcConnectionDetails[]
| Containers named "clickhouse/clickhouse-server", "bitnami/clickhouse", "gvenzl/oracle-free", "gvenzl/oracle-xe", "mariadb", "bitnami/mariadb", "mssql/server", "mysql", "bitnami/mysql", "postgres", or "bitnami/postgresql"
| Containers named "clickhouse/clickhouse-server", "gvenzl/oracle-free", "gvenzl/oracle-xe", "mariadb", "mssql/server", "mysql", or "postgres"
| javadoc:org.springframework.boot.autoconfigure.amqp.RabbitConnectionDetails[]
| Containers named "rabbitmq" or "bitnami/rabbitmq"
| Containers named "rabbitmq"
| javadoc:org.springframework.boot.data.redis.autoconfigure.RedisConnectionDetails[]
| Containers named "redis", "bitnami/redis", "redis/redis-stack" or "redis/redis-stack-server"
| Containers named "redis", "redis/redis-stack" or "redis/redis-stack-server"
| javadoc:org.springframework.boot.micrometer.tracing.autoconfigure.zipkin.ZipkinConnectionDetails[]
| Containers named "openzipkin/zipkin".

View File

@ -16,8 +16,6 @@
package org.springframework.boot.amqp.docker.compose;
import org.junit.jupiter.api.Disabled;
import org.springframework.boot.amqp.autoconfigure.RabbitConnectionDetails;
import org.springframework.boot.amqp.autoconfigure.RabbitConnectionDetails.Address;
import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest;
@ -40,12 +38,6 @@ class RabbitDockerComposeConnectionDetailsFactoryIntegrationTests {
assertConnectionDetails(connectionDetails);
}
@DockerComposeTest(composeFile = "rabbit-bitnami-compose.yaml", image = TestImage.BITNAMI_RABBITMQ)
@Disabled("https://github.com/spring-projects/spring-boot/issues/46983")
void runWithBitnamiImageCreatesConnectionDetails(RabbitConnectionDetails connectionDetails) {
assertConnectionDetails(connectionDetails);
}
private void assertConnectionDetails(RabbitConnectionDetails connectionDetails) {
assertThat(connectionDetails.getUsername()).isEqualTo("myuser");
assertThat(connectionDetails.getPassword()).isEqualTo("secret");

View File

@ -1,8 +0,0 @@
services:
rabbitmq:
image: '{imageName}'
environment:
- 'RABBITMQ_DEFAULT_USER=myuser'
- 'RABBITMQ_DEFAULT_PASS=secret'
ports:
- '5672'

View File

@ -37,12 +37,10 @@ import org.springframework.boot.docker.compose.service.connection.DockerComposeC
class RabbitDockerComposeConnectionDetailsFactory
extends DockerComposeConnectionDetailsFactory<RabbitConnectionDetails> {
private static final String[] RABBITMQ_CONTAINER_NAMES = { "rabbitmq", "bitnami/rabbitmq" };
private static final int RABBITMQ_PORT = 5672;
protected RabbitDockerComposeConnectionDetailsFactory() {
super(RABBITMQ_CONTAINER_NAMES);
super("rabbitmq");
}
@Override

View File

@ -18,8 +18,6 @@ package org.springframework.boot.cassandra.docker.compose;
import java.util.List;
import org.junit.jupiter.api.Disabled;
import org.springframework.boot.cassandra.autoconfigure.CassandraConnectionDetails;
import org.springframework.boot.cassandra.autoconfigure.CassandraConnectionDetails.Node;
import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest;
@ -39,12 +37,6 @@ class CassandraDockerComposeConnectionDetailsFactoryIntegrationTests {
assertConnectionDetails(connectionDetails);
}
@Disabled("https://github.com/spring-projects/spring-boot/issues/46983")
@DockerComposeTest(composeFile = "cassandra-bitnami-compose.yaml", image = TestImage.BITNAMI_CASSANDRA)
void runWithBitnamiImageCreatesConnectionDetails(CassandraConnectionDetails connectionDetails) {
assertConnectionDetails(connectionDetails);
}
private void assertConnectionDetails(CassandraConnectionDetails connectionDetails) {
List<Node> contactPoints = connectionDetails.getContactPoints();
assertThat(contactPoints).hasSize(1);

View File

@ -1,8 +0,0 @@
services:
cassandra:
image: '{imageName}'
ports:
- '9042'
environment:
- 'CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch'
- 'CASSANDRA_DATACENTER=testdc1'

View File

@ -32,12 +32,10 @@ import org.springframework.boot.docker.compose.service.connection.DockerComposeC
class CassandraDockerComposeConnectionDetailsFactory
extends DockerComposeConnectionDetailsFactory<CassandraConnectionDetails> {
private static final String[] CASSANDRA_CONTAINER_NAMES = { "cassandra", "bitnami/cassandra" };
private static final int CASSANDRA_PORT = 9042;
CassandraDockerComposeConnectionDetailsFactory() {
super(CASSANDRA_CONTAINER_NAMES);
super("cassandra");
}
@Override

View File

@ -18,8 +18,6 @@ package org.springframework.boot.data.redis.docker.compose;
import javax.net.ssl.SSLContext;
import org.junit.jupiter.api.Disabled;
import org.springframework.boot.data.redis.autoconfigure.RedisConnectionDetails;
import org.springframework.boot.data.redis.autoconfigure.RedisConnectionDetails.Standalone;
import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest;
@ -55,12 +53,6 @@ class RedisDockerComposeConnectionDetailsFactoryIntegrationTests {
assertThat(sslContext).isNotNull();
}
@DockerComposeTest(composeFile = "redis-bitnami-compose.yaml", image = TestImage.BITNAMI_REDIS)
@Disabled("https://github.com/spring-projects/spring-boot/issues/46983")
void runWithBitnamiImageCreatesConnectionDetails(RedisConnectionDetails connectionDetails) {
assertConnectionDetails(connectionDetails);
}
@DockerComposeTest(composeFile = "redis-compose.yaml", image = TestImage.REDIS_STACK)
void runWithRedisStackCreatesConnectionDetails(RedisConnectionDetails connectionDetails) {
assertConnectionDetails(connectionDetails);

View File

@ -1,7 +0,0 @@
services:
redis:
image: '{imageName}'
ports:
- '6379'
environment:
- 'ALLOW_EMPTY_PASSWORD=yes'

View File

@ -33,8 +33,7 @@ import org.springframework.boot.docker.compose.service.connection.DockerComposeC
*/
class RedisDockerComposeConnectionDetailsFactory extends DockerComposeConnectionDetailsFactory<RedisConnectionDetails> {
private static final String[] REDIS_CONTAINER_NAMES = { "redis", "bitnami/redis", "redis/redis-stack",
"redis/redis-stack-server" };
private static final String[] REDIS_CONTAINER_NAMES = { "redis", "redis/redis-stack", "redis/redis-stack-server" };
private static final int REDIS_PORT = 6379;

View File

@ -41,7 +41,7 @@ import org.springframework.boot.testcontainers.service.connection.ServiceConnect
class RedisContainerConnectionDetailsFactory
extends ContainerConnectionDetailsFactory<Container<?>, RedisConnectionDetails> {
private static final List<String> REDIS_IMAGE_NAMES = List.of("redis", "bitnami/redis", "redis/redis-stack",
private static final List<String> REDIS_IMAGE_NAMES = List.of("redis", "redis/redis-stack",
"redis/redis-stack-server");
private static final int REDIS_PORT = 6379;

View File

@ -16,8 +16,6 @@
package org.springframework.boot.elasticsearch.docker.compose;
import org.junit.jupiter.api.Disabled;
import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest;
import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchConnectionDetails;
import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchConnectionDetails.Node;
@ -41,12 +39,6 @@ class ElasticsearchDockerComposeConnectionDetailsFactoryIntegrationTests {
assertConnectionDetails(connectionDetails);
}
@DockerComposeTest(composeFile = "elasticsearch-bitnami-compose.yaml", image = TestImage.BITNAMI_ELASTICSEARCH)
@Disabled("https://github.com/spring-projects/spring-boot/issues/46983")
void runWithBitnamiImageCreatesConnectionDetails(ElasticsearchConnectionDetails connectionDetails) {
assertConnectionDetails(connectionDetails);
}
private void assertConnectionDetails(ElasticsearchConnectionDetails connectionDetails) {
assertThat(connectionDetails.getUsername()).isEqualTo("elastic");
assertThat(connectionDetails.getPassword()).isEqualTo("secret");

View File

@ -1,9 +0,0 @@
services:
elasticsearch:
image: '{imageName}'
environment:
- 'ELASTIC_PASSWORD=secret'
- 'ES_JAVA_OPTS=-Xmx1024m'
ports:
- '9200'
- '9300'

View File

@ -38,12 +38,10 @@ import org.springframework.boot.elasticsearch.autoconfigure.ElasticsearchConnect
class ElasticsearchDockerComposeConnectionDetailsFactory
extends DockerComposeConnectionDetailsFactory<ElasticsearchConnectionDetails> {
private static final String[] ELASTICSEARCH_CONTAINER_NAMES = { "elasticsearch", "bitnami/elasticsearch" };
private static final int ELASTICSEARCH_PORT = 9200;
protected ElasticsearchDockerComposeConnectionDetailsFactory() {
super(ELASTICSEARCH_CONTAINER_NAMES);
super("elasticsearch");
}
@Override

View File

@ -18,8 +18,6 @@ package org.springframework.boot.jdbc.docker.compose;
import java.sql.Driver;
import org.junit.jupiter.api.Disabled;
import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest;
import org.springframework.boot.jdbc.DatabaseDriver;
import org.springframework.boot.jdbc.autoconfigure.JdbcConnectionDetails;
@ -43,14 +41,6 @@ class ClickHouseJdbcDockerComposeConnectionDetailsFactoryIntegrationTests {
checkDatabaseAccess(connectionDetails);
}
@DockerComposeTest(composeFile = "clickhouse-bitnami-compose.yaml", image = TestImage.BITNAMI_CLICKHOUSE)
@Disabled("https://github.com/spring-projects/spring-boot/issues/46983")
void runWithBitnamiImageCreatesConnectionDetails(JdbcConnectionDetails connectionDetails) {
assertConnectionDetails(connectionDetails);
// See https://github.com/bitnami/containers/issues/73550
// checkDatabaseAccess(connectionDetails);
}
private void assertConnectionDetails(JdbcConnectionDetails connectionDetails) {
assertThat(connectionDetails.getUsername()).isEqualTo("myuser");
assertThat(connectionDetails.getPassword()).isEqualTo("secret");

View File

@ -16,8 +16,6 @@
package org.springframework.boot.jdbc.docker.compose;
import org.junit.jupiter.api.Disabled;
import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest;
import org.springframework.boot.jdbc.autoconfigure.JdbcConnectionDetails;
import org.springframework.boot.testsupport.container.TestImage;
@ -39,12 +37,6 @@ class MariaDbJdbcDockerComposeConnectionDetailsFactoryIntegrationTests {
assertConnectionDetails(connectionDetails);
}
@DockerComposeTest(composeFile = "mariadb-bitnami-compose.yaml", image = TestImage.BITNAMI_MARIADB)
@Disabled("https://github.com/spring-projects/spring-boot/issues/46983")
void runWithBitnamiImageCreatesConnectionDetails(JdbcConnectionDetails connectionDetails) {
assertConnectionDetails(connectionDetails);
}
private void assertConnectionDetails(JdbcConnectionDetails connectionDetails) {
assertThat(connectionDetails.getUsername()).isEqualTo("myuser");
assertThat(connectionDetails.getPassword()).isEqualTo("secret");

View File

@ -16,8 +16,6 @@
package org.springframework.boot.jdbc.docker.compose;
import org.junit.jupiter.api.Disabled;
import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest;
import org.springframework.boot.jdbc.autoconfigure.JdbcConnectionDetails;
import org.springframework.boot.testsupport.container.TestImage;
@ -39,12 +37,6 @@ class MySqlJdbcDockerComposeConnectionDetailsFactoryIntegrationTests {
assertConnectionDetails(connectionDetails);
}
@DockerComposeTest(composeFile = "mysql-bitnami-compose.yaml", image = TestImage.BITNAMI_MYSQL)
@Disabled("https://github.com/spring-projects/spring-boot/issues/46983")
void runWithBitnamiImageCreatesConnectionDetails(JdbcConnectionDetails connectionDetails) {
assertConnectionDetails(connectionDetails);
}
private void assertConnectionDetails(JdbcConnectionDetails connectionDetails) {
assertThat(connectionDetails.getUsername()).isEqualTo("myuser");
assertThat(connectionDetails.getPassword()).isEqualTo("secret");

View File

@ -18,8 +18,6 @@ package org.springframework.boot.jdbc.docker.compose;
import java.sql.Driver;
import org.junit.jupiter.api.Disabled;
import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest;
import org.springframework.boot.jdbc.DatabaseDriver;
import org.springframework.boot.jdbc.autoconfigure.JdbcConnectionDetails;
@ -56,14 +54,6 @@ class PostgresJdbcDockerComposeConnectionDetailsFactoryIntegrationTests {
checkDatabaseAccess(connectionDetails);
}
@DockerComposeTest(composeFile = "postgres-bitnami-compose.yaml", image = TestImage.BITNAMI_POSTGRESQL)
@Disabled("https://github.com/spring-projects/spring-boot/issues/46983")
void runWithBitnamiImageCreatesConnectionDetails(JdbcConnectionDetails connectionDetails)
throws ClassNotFoundException {
assertConnectionDetails(connectionDetails);
checkDatabaseAccess(connectionDetails);
}
@DockerComposeTest(composeFile = "postgres-application-name-compose.yaml", image = TestImage.POSTGRESQL)
void runCreatesConnectionDetailsApplicationName(JdbcConnectionDetails connectionDetails)
throws ClassNotFoundException {

View File

@ -1,9 +0,0 @@
services:
database:
image: '{imageName}'
ports:
- '8123'
environment:
- 'CLICKHOUSE_USER=myuser'
- 'CLICKHOUSE_PASSWORD=secret'
- 'CLICKHOUSE_DB=mydatabase'

View File

@ -1,10 +0,0 @@
services:
database:
image: '{imageName}'
ports:
- '3306'
environment:
- 'MARIADB_ROOT_PASSWORD=verysecret'
- 'MARIADB_USER=myuser'
- 'MARIADB_PASSWORD=secret'
- 'MARIADB_DATABASE=mydatabase'

View File

@ -1,10 +0,0 @@
services:
database:
image: '{imageName}'
ports:
- '3306'
environment:
- 'MYSQL_ROOT_PASSWORD=verysecret'
- 'MYSQL_USER=myuser'
- 'MYSQL_PASSWORD=secret'
- 'MYSQL_DATABASE=mydatabase'

View File

@ -1,9 +0,0 @@
services:
database:
image: '{imageName}'
ports:
- '5432'
environment:
- 'POSTGRESQL_USERNAME=myuser'
- 'POSTGRESQL_DATABASE=mydatabase'
- 'POSTGRESQL_PASSWORD=secret'

View File

@ -30,10 +30,8 @@ import org.springframework.boot.jdbc.autoconfigure.JdbcConnectionDetails;
class ClickHouseJdbcDockerComposeConnectionDetailsFactory
extends DockerComposeConnectionDetailsFactory<JdbcConnectionDetails> {
private static final String[] CLICKHOUSE_CONTAINER_NAMES = { "clickhouse/clickhouse-server", "bitnami/clickhouse" };
protected ClickHouseJdbcDockerComposeConnectionDetailsFactory() {
super(CLICKHOUSE_CONTAINER_NAMES);
super("clickhouse/clickhouse-server");
}
@Override

View File

@ -33,10 +33,8 @@ import org.springframework.boot.jdbc.autoconfigure.JdbcConnectionDetails;
class MariaDbJdbcDockerComposeConnectionDetailsFactory
extends DockerComposeConnectionDetailsFactory<JdbcConnectionDetails> {
private static final String[] MARIADB_CONTAINER_NAMES = { "mariadb", "bitnami/mariadb" };
protected MariaDbJdbcDockerComposeConnectionDetailsFactory() {
super(MARIADB_CONTAINER_NAMES);
super("mariadb");
}
@Override

View File

@ -33,10 +33,8 @@ import org.springframework.boot.jdbc.autoconfigure.JdbcConnectionDetails;
class MySqlJdbcDockerComposeConnectionDetailsFactory
extends DockerComposeConnectionDetailsFactory<JdbcConnectionDetails> {
private static final String[] MYSQL_CONTAINER_NAMES = { "mysql", "bitnami/mysql" };
protected MySqlJdbcDockerComposeConnectionDetailsFactory() {
super(MYSQL_CONTAINER_NAMES);
super("mysql");
}
@Override

View File

@ -40,10 +40,8 @@ import org.springframework.util.StringUtils;
class PostgresJdbcDockerComposeConnectionDetailsFactory
extends DockerComposeConnectionDetailsFactory<JdbcConnectionDetails> {
private static final String[] POSTGRES_CONTAINER_NAMES = { "postgres", "bitnami/postgresql" };
protected PostgresJdbcDockerComposeConnectionDetailsFactory() {
super(POSTGRES_CONTAINER_NAMES);
super("postgres");
}
@Override

View File

@ -17,13 +17,10 @@
package org.springframework.boot.mongodb.docker.compose;
import com.mongodb.ConnectionString;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.condition.OS;
import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest;
import org.springframework.boot.mongodb.autoconfigure.MongoConnectionDetails;
import org.springframework.boot.testsupport.container.TestImage;
import org.springframework.boot.testsupport.junit.DisabledOnOs;
import static org.assertj.core.api.Assertions.assertThat;
@ -42,13 +39,6 @@ class MongoDockerComposeConnectionDetailsFactoryIntegrationTests {
assertConnectionDetailsWithDatabase(connectionDetails, "mydatabase");
}
@DisabledOnOs(os = { OS.LINUX, OS.MAC }, architecture = "aarch64", disabledReason = "The image has no ARM support")
@DockerComposeTest(composeFile = "mongo-bitnami-compose.yaml", image = TestImage.BITNAMI_MONGODB)
@Disabled("https://github.com/spring-projects/spring-boot/issues/46983")
void runWithBitnamiImageCreatesConnectionDetails(MongoConnectionDetails connectionDetails) {
assertConnectionDetailsWithDatabase(connectionDetails, "testdb");
}
private void assertConnectionDetailsWithDatabase(MongoConnectionDetails connectionDetails, String database) {
ConnectionString connectionString = connectionDetails.getConnectionString();
assertThat(connectionString.getCredential().getUserName()).isEqualTo("root");

View File

@ -1,9 +0,0 @@
services:
mongo:
image: '{imageName}'
ports:
- '27017'
environment:
- 'MONGODB_ROOT_USERNAME=root'
- 'MONGODB_ROOT_PASSWORD=secret'
- 'MONGODB_DATABASE=testdb'

View File

@ -34,12 +34,10 @@ import org.springframework.boot.mongodb.autoconfigure.MongoConnectionDetails;
*/
class MongoDockerComposeConnectionDetailsFactory extends DockerComposeConnectionDetailsFactory<MongoConnectionDetails> {
private static final String[] MONGODB_CONTAINER_NAMES = { "mongo", "bitnami/mongodb" };
private static final int MONGODB_PORT = 27017;
protected MongoDockerComposeConnectionDetailsFactory() {
super(MONGODB_CONTAINER_NAMES, "com.mongodb.ConnectionString");
super("mongo", "com.mongodb.ConnectionString");
}
@Override

View File

@ -16,7 +16,6 @@
package org.springframework.boot.neo4j.docker.compose;
import org.junit.jupiter.api.Disabled;
import org.neo4j.driver.AuthTokens;
import org.neo4j.driver.Driver;
import org.neo4j.driver.GraphDatabase;
@ -41,12 +40,6 @@ class Neo4jDockerComposeConnectionDetailsFactoryIntegrationTests {
assertConnectionDetailsWithPassword(connectionDetails, "absolutelysecret");
}
@DockerComposeTest(composeFile = "neo4j-bitnami-compose.yaml", image = TestImage.BITNAMI_NEO4J)
@Disabled("https://github.com/spring-projects/spring-boot/issues/46983")
void runWithBitnamiImageCreatesConnectionDetailsThatCanAccessNeo4j(Neo4jConnectionDetails connectionDetails) {
assertConnectionDetailsWithPassword(connectionDetails, "bitnami2");
}
private void assertConnectionDetailsWithPassword(Neo4jConnectionDetails connectionDetails, String password) {
assertThat(connectionDetails.getAuthToken()).isEqualTo(AuthTokens.basic("neo4j", password));
try (Driver driver = GraphDatabase.driver(connectionDetails.getUri(), connectionDetails.getAuthToken())) {

View File

@ -1,7 +0,0 @@
services:
neo4j:
image: 'bitnami/neo4j:5.16.0'
ports:
- '7687'
environment:
- 'NEO4J_PASSWORD=bitnami2'

View File

@ -36,10 +36,8 @@ import org.springframework.boot.neo4j.autoconfigure.Neo4jConnectionDetails;
*/
class Neo4jDockerComposeConnectionDetailsFactory extends DockerComposeConnectionDetailsFactory<Neo4jConnectionDetails> {
private static final String[] NEO4J_CONTAINER_NAMES = { "neo4j", "bitnami/neo4j" };
Neo4jDockerComposeConnectionDetailsFactory() {
super(NEO4J_CONTAINER_NAMES);
super("neo4j");
}
@Override

View File

@ -21,7 +21,6 @@ import java.time.Duration;
import io.r2dbc.spi.ConnectionFactories;
import io.r2dbc.spi.ConnectionFactory;
import io.r2dbc.spi.ConnectionFactoryOptions;
import org.junit.jupiter.api.Disabled;
import reactor.core.publisher.Mono;
import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest;
@ -44,14 +43,6 @@ class ClickHouseR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests {
checkDatabaseAccess(connectionDetails);
}
@DockerComposeTest(composeFile = "clickhouse-bitnami-compose.yaml", image = TestImage.BITNAMI_CLICKHOUSE)
@Disabled("https://github.com/spring-projects/spring-boot/issues/46983")
void runWithBitnamiImageCreatesConnectionDetails(R2dbcConnectionDetails connectionDetails) {
assertConnectionDetails(connectionDetails);
// See https://github.com/bitnami/containers/issues/73550
// checkDatabaseAccess(connectionDetails);
}
private void assertConnectionDetails(R2dbcConnectionDetails connectionDetails) {
ConnectionFactoryOptions connectionFactoryOptions = connectionDetails.getConnectionFactoryOptions();
assertThat(connectionFactoryOptions.toString()).contains("database=mydatabase", "driver=clickhouse",

View File

@ -17,7 +17,6 @@
package org.springframework.boot.r2dbc.docker.compose;
import io.r2dbc.spi.ConnectionFactoryOptions;
import org.junit.jupiter.api.Disabled;
import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest;
import org.springframework.boot.r2dbc.autoconfigure.R2dbcConnectionDetails;
@ -40,12 +39,6 @@ class MariaDbR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests {
assertConnectionDetails(connectionDetails);
}
@DockerComposeTest(composeFile = "mariadb-bitnami-compose.yaml", image = TestImage.BITNAMI_MARIADB)
@Disabled("https://github.com/spring-projects/spring-boot/issues/46983")
void runWithBitnamiImageCreatesConnectionDetails(R2dbcConnectionDetails connectionDetails) {
assertConnectionDetails(connectionDetails);
}
private void assertConnectionDetails(R2dbcConnectionDetails connectionDetails) {
ConnectionFactoryOptions connectionFactoryOptions = connectionDetails.getConnectionFactoryOptions();
assertThat(connectionFactoryOptions.toString()).contains("database=mydatabase", "driver=mariadb",

View File

@ -17,7 +17,6 @@
package org.springframework.boot.r2dbc.docker.compose;
import io.r2dbc.spi.ConnectionFactoryOptions;
import org.junit.jupiter.api.Disabled;
import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest;
import org.springframework.boot.r2dbc.autoconfigure.R2dbcConnectionDetails;
@ -39,12 +38,6 @@ class MySqlR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests {
assertConnectionDetails(connectionDetails);
}
@DockerComposeTest(composeFile = "mysql-bitnami-compose.yaml", image = TestImage.BITNAMI_MYSQL)
@Disabled("https://github.com/spring-projects/spring-boot/issues/46983")
void runWithBitnamiImageCreatesConnectionDetails(R2dbcConnectionDetails connectionDetails) {
assertConnectionDetails(connectionDetails);
}
private void assertConnectionDetails(R2dbcConnectionDetails connectionDetails) {
ConnectionFactoryOptions connectionFactoryOptions = connectionDetails.getConnectionFactoryOptions();
assertThat(connectionFactoryOptions.toString()).contains("database=mydatabase", "driver=mysql",

View File

@ -21,7 +21,6 @@ import java.time.Duration;
import io.r2dbc.spi.ConnectionFactories;
import io.r2dbc.spi.ConnectionFactoryOptions;
import io.r2dbc.spi.Option;
import org.junit.jupiter.api.Disabled;
import org.springframework.boot.docker.compose.service.connection.test.DockerComposeTest;
import org.springframework.boot.jdbc.DatabaseDriver;
@ -59,13 +58,6 @@ class PostgresR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests {
checkDatabaseAccess(connectionDetails);
}
@DockerComposeTest(composeFile = "postgres-bitnami-compose.yaml", image = TestImage.BITNAMI_POSTGRESQL)
@Disabled("https://github.com/spring-projects/spring-boot/issues/46983")
void runWithBitnamiImageCreatesConnectionDetails(R2dbcConnectionDetails connectionDetails) {
assertConnectionDetails(connectionDetails);
checkDatabaseAccess(connectionDetails);
}
@DockerComposeTest(composeFile = "postgres-application-name-compose.yaml", image = TestImage.POSTGRESQL)
void runCreatesConnectionDetailsApplicationName(R2dbcConnectionDetails connectionDetails) {
assertConnectionDetails(connectionDetails);

View File

@ -1,9 +0,0 @@
services:
database:
image: '{imageName}'
ports:
- '8123'
environment:
- 'CLICKHOUSE_USER=myuser'
- 'CLICKHOUSE_PASSWORD=secret'
- 'CLICKHOUSE_DB=mydatabase'

View File

@ -1,10 +0,0 @@
services:
database:
image: '{imageName}'
ports:
- '3306'
environment:
- 'MARIADB_ROOT_PASSWORD=verysecret'
- 'MARIADB_USER=myuser'
- 'MARIADB_PASSWORD=secret'
- 'MARIADB_DATABASE=mydatabase'

View File

@ -1,10 +0,0 @@
services:
database:
image: '{imageName}'
ports:
- '3306'
environment:
- 'MYSQL_ROOT_PASSWORD=verysecret'
- 'MYSQL_USER=myuser'
- 'MYSQL_PASSWORD=secret'
- 'MYSQL_DATABASE=mydatabase'

View File

@ -1,9 +0,0 @@
services:
database:
image: '{imageName}'
ports:
- '5432'
environment:
- 'POSTGRESQL_USERNAME=myuser'
- 'POSTGRESQL_DATABASE=mydatabase'
- 'POSTGRESQL_PASSWORD=secret'

View File

@ -32,10 +32,8 @@ import org.springframework.boot.r2dbc.autoconfigure.R2dbcConnectionDetails;
class ClickHouseR2dbcDockerComposeConnectionDetailsFactory
extends DockerComposeConnectionDetailsFactory<R2dbcConnectionDetails> {
private static final String[] CLICKHOUSE_CONTAINER_NAMES = { "clickhouse/clickhouse-server", "bitnami/clickhouse" };
ClickHouseR2dbcDockerComposeConnectionDetailsFactory() {
super(CLICKHOUSE_CONTAINER_NAMES, "io.r2dbc.spi.ConnectionFactoryOptions");
super("clickhouse/clickhouse-server", "io.r2dbc.spi.ConnectionFactoryOptions");
}
@Override

View File

@ -35,10 +35,8 @@ import org.springframework.boot.r2dbc.autoconfigure.R2dbcConnectionDetails;
class MariaDbR2dbcDockerComposeConnectionDetailsFactory
extends DockerComposeConnectionDetailsFactory<R2dbcConnectionDetails> {
private static final String[] MARIADB_CONTAINER_NAMES = { "mariadb", "bitnami/mariadb" };
MariaDbR2dbcDockerComposeConnectionDetailsFactory() {
super(MARIADB_CONTAINER_NAMES, "io.r2dbc.spi.ConnectionFactoryOptions");
super("mariadb", "io.r2dbc.spi.ConnectionFactoryOptions");
}
@Override

View File

@ -35,10 +35,8 @@ import org.springframework.boot.r2dbc.autoconfigure.R2dbcConnectionDetails;
class MySqlR2dbcDockerComposeConnectionDetailsFactory
extends DockerComposeConnectionDetailsFactory<R2dbcConnectionDetails> {
private static final String[] MYSQL_CONTAINER_NAMES = { "mysql", "bitnami/mysql" };
MySqlR2dbcDockerComposeConnectionDetailsFactory() {
super(MYSQL_CONTAINER_NAMES, "io.r2dbc.spi.ConnectionFactoryOptions");
super("mysql", "io.r2dbc.spi.ConnectionFactoryOptions");
}
@Override

View File

@ -38,10 +38,8 @@ import org.springframework.util.StringUtils;
class PostgresR2dbcDockerComposeConnectionDetailsFactory
extends DockerComposeConnectionDetailsFactory<R2dbcConnectionDetails> {
private static final String[] POSTGRES_CONTAINER_NAMES = { "postgres", "bitnami/postgresql" };
PostgresR2dbcDockerComposeConnectionDetailsFactory() {
super(POSTGRES_CONTAINER_NAMES, "io.r2dbc.spi.ConnectionFactoryOptions");
super("postgres", "io.r2dbc.spi.ConnectionFactoryOptions");
}
@Override

View File

@ -256,57 +256,7 @@ public enum TestImage {
/**
* A container image suitable for testing Zipkin.
*/
ZIPKIN("openzipkin/zipkin", "3.0.6", () -> ZipkinContainer.class),
/**
* A container image suitable for testing Cassandra via Bitnami.
*/
BITNAMI_CASSANDRA("bitnami/cassandra", "4.1.3"),
/**
* A container image suitable for testing ClickHouse via Bitnami.
*/
BITNAMI_CLICKHOUSE("bitnami/clickhouse", "24.3"),
/**
* A container image suitable for testing Elasticsearch via Bitnami.
*/
BITNAMI_ELASTICSEARCH("bitnami/elasticsearch", "9.0.2"),
/**
* A container image suitable for testing MariaDB via Bitnami.
*/
BITNAMI_MARIADB("bitnami/mariadb", "11.2.3"),
/**
* A container image suitable for testing MongoDB via Bitnami.
*/
BITNAMI_MONGODB("bitnami/mongodb", "7.0.5"),
/**
* A container image suitable for testing MySQL via Bitnami.
*/
BITNAMI_MYSQL("bitnami/mysql", "8.0.36"),
/**
* A container image suitable for testing Neo4j via Bitnami.
*/
BITNAMI_NEO4J("bitnami/neo4j", "5.16.0"),
/**
* A container image suitable for testing Postgres via Bitnami.
*/
BITNAMI_POSTGRESQL("bitnami/postgresql", "16.2.0"),
/**
* A container image suitable for testing RabbitMQ via Bitnami.
*/
BITNAMI_RABBITMQ("bitnami/rabbitmq", "3.11.28"),
/**
* A container image suitable for testing Redis via Bitnami.
*/
BITNAMI_REDIS("bitnami/redis", "7.2.4");
ZIPKIN("openzipkin/zipkin", "3.0.6", () -> ZipkinContainer.class);
private final String name;