From 888378ba0dd27ff80e7b9d1176aa189b12932bd4 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 28 Oct 2025 08:57:07 +0100 Subject: [PATCH] Upgrade to Testcontainers 2.0. See spring-projects/spring-data-build#2688 --- spring-data-jdbc/pom.xml | 31 ++++++++----------- .../testing/Db2DataSourceConfiguration.java | 7 +++-- .../MariaDBDataSourceConfiguration.java | 6 ++-- .../testing/MsSqlDataSourceConfiguration.java | 6 ++-- .../testing/MySqlDataSourceConfiguration.java | 6 ++-- .../PostgresDataSourceConfiguration.java | 6 ++-- spring-data-r2dbc/pom.xml | 24 +++++++------- .../r2dbc/testing/MariaDbTestSupport.java | 4 +-- .../r2dbc/testing/MySqlDbTestSupport.java | 4 +-- .../r2dbc/testing/PostgresTestSupport.java | 2 +- .../r2dbc/testing/SqlServerTestSupport.java | 4 +-- 11 files changed, 49 insertions(+), 51 deletions(-) diff --git a/spring-data-jdbc/pom.xml b/spring-data-jdbc/pom.xml index 9fc8266b9..052c9fed7 100644 --- a/spring-data-jdbc/pom.xml +++ b/spring-data-jdbc/pom.xml @@ -23,18 +23,6 @@ ${basedir}/.. - - - - org.testcontainers - testcontainers-bom - ${testcontainers} - pom - import - - - - @@ -248,9 +236,16 @@ + + org.apache.commons + commons-lang3 + 3.19.0 + test + + org.testcontainers - mysql + testcontainers-mysql test @@ -262,31 +257,31 @@ org.testcontainers - postgresql + testcontainers-postgresql test org.testcontainers - mariadb + testcontainers-mariadb test org.testcontainers - mssqlserver + testcontainers-mssqlserver test org.testcontainers - db2 + testcontainers-db2 test org.testcontainers - oracle-free + testcontainers-oracle-free test diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/Db2DataSourceConfiguration.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/Db2DataSourceConfiguration.java index ea5af2060..29113083a 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/Db2DataSourceConfiguration.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/Db2DataSourceConfiguration.java @@ -23,7 +23,8 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; import org.springframework.jdbc.datasource.DriverManagerDataSource; import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; -import org.testcontainers.containers.Db2Container; +import org.testcontainers.db2.Db2Container; +import org.testcontainers.utility.DockerImageName; /** * {@link DataSource} setup for DB2. @@ -50,7 +51,9 @@ class Db2DataSourceConfiguration extends DataSourceConfiguration { if (DB_2_CONTAINER == null) { LOG.info("DB2 starting..."); - Db2Container container = new Db2Container(DOCKER_IMAGE_NAME).withReuse(true); + Db2Container container = new Db2Container( + DockerImageName.parse(DOCKER_IMAGE_NAME).asCompatibleSubstituteFor("icr.io/db2_community/db2")) + .withReuse(true); container.start(); LOG.info("DB2 started"); diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/MariaDBDataSourceConfiguration.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/MariaDBDataSourceConfiguration.java index bfe5065b2..a2f5f8369 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/MariaDBDataSourceConfiguration.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/MariaDBDataSourceConfiguration.java @@ -26,7 +26,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; import org.springframework.core.io.ByteArrayResource; import org.springframework.jdbc.datasource.init.ScriptUtils; -import org.testcontainers.containers.MariaDBContainer; +import org.testcontainers.mariadb.MariaDBContainer; /** * {@link DataSource} setup for MariaDB. Starts a Docker-container with a MariaDB database, and sets up database "test". @@ -39,7 +39,7 @@ import org.testcontainers.containers.MariaDBContainer; @ConditionalOnDatabase(DatabaseType.MARIADB) class MariaDBDataSourceConfiguration extends DataSourceConfiguration implements InitializingBean { - private static MariaDBContainer MARIADB_CONTAINER; + private static MariaDBContainer MARIADB_CONTAINER; public MariaDBDataSourceConfiguration(TestClass testClass, Environment environment) { super(testClass, environment); @@ -50,7 +50,7 @@ class MariaDBDataSourceConfiguration extends DataSourceConfiguration implements if (MARIADB_CONTAINER == null) { - MariaDBContainer container = new MariaDBContainer<>("mariadb:10.8.3").withUsername("root").withPassword("") + MariaDBContainer container = new MariaDBContainer("mariadb:10.8.3").withUsername("root").withPassword("") .withConfigurationOverride(""); container.start(); diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/MsSqlDataSourceConfiguration.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/MsSqlDataSourceConfiguration.java index 828da0380..4536a50d2 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/MsSqlDataSourceConfiguration.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/MsSqlDataSourceConfiguration.java @@ -20,7 +20,7 @@ import javax.sql.DataSource; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; -import org.testcontainers.containers.MSSQLServerContainer; +import org.testcontainers.mssqlserver.MSSQLServerContainer; import com.microsoft.sqlserver.jdbc.SQLServerDataSource; @@ -39,7 +39,7 @@ import com.microsoft.sqlserver.jdbc.SQLServerDataSource; public class MsSqlDataSourceConfiguration extends DataSourceConfiguration { public static final String MS_SQL_SERVER_VERSION = "mcr.microsoft.com/mssql/server:2022-latest"; - private static MSSQLServerContainer MSSQL_CONTAINER; + private static MSSQLServerContainer MSSQL_CONTAINER; public MsSqlDataSourceConfiguration(TestClass testClass, Environment environment) { super(testClass, environment); @@ -50,7 +50,7 @@ public class MsSqlDataSourceConfiguration extends DataSourceConfiguration { if (MSSQL_CONTAINER == null) { - MSSQLServerContainer container = new MSSQLServerContainer<>(MS_SQL_SERVER_VERSION) // + MSSQLServerContainer container = new MSSQLServerContainer(MS_SQL_SERVER_VERSION) // .withReuse(true); container.start(); diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/MySqlDataSourceConfiguration.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/MySqlDataSourceConfiguration.java index 88c0d5d1c..ffd0cd078 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/MySqlDataSourceConfiguration.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/MySqlDataSourceConfiguration.java @@ -24,7 +24,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; import org.springframework.core.io.ByteArrayResource; import org.springframework.jdbc.datasource.init.ScriptUtils; -import org.testcontainers.containers.MySQLContainer; +import org.testcontainers.mysql.MySQLContainer; import com.mysql.cj.jdbc.MysqlDataSource; @@ -41,7 +41,7 @@ import com.mysql.cj.jdbc.MysqlDataSource; @ConditionalOnDatabase(DatabaseType.MYSQL) class MySqlDataSourceConfiguration extends DataSourceConfiguration implements InitializingBean { - private static MySQLContainer MYSQL_CONTAINER; + private static MySQLContainer MYSQL_CONTAINER; public MySqlDataSourceConfiguration(TestClass testClass, Environment environment) { super(testClass, environment); @@ -52,7 +52,7 @@ class MySqlDataSourceConfiguration extends DataSourceConfiguration implements In if (MYSQL_CONTAINER == null) { - MySQLContainer container = new MySQLContainer<>("mysql:8.0.29").withUsername("test").withPassword("test") + MySQLContainer container = new MySQLContainer("mysql:8.0.29").withUsername("test").withPassword("test") .withConfigurationOverride(""); container.start(); diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/PostgresDataSourceConfiguration.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/PostgresDataSourceConfiguration.java index 4b6745ce4..d7b28f33c 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/PostgresDataSourceConfiguration.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/PostgresDataSourceConfiguration.java @@ -21,7 +21,7 @@ import org.postgresql.ds.PGSimpleDataSource; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; -import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.postgresql.PostgreSQLContainer; /** * {@link DataSource} setup for PostgreSQL. Starts a docker container with a Postgres database. @@ -35,7 +35,7 @@ import org.testcontainers.containers.PostgreSQLContainer; @ConditionalOnDatabase(DatabaseType.POSTGRES) public class PostgresDataSourceConfiguration extends DataSourceConfiguration { - private static PostgreSQLContainer POSTGRESQL_CONTAINER; + private static PostgreSQLContainer POSTGRESQL_CONTAINER; public PostgresDataSourceConfiguration(TestClass testClass, Environment environment) { super(testClass, environment); @@ -46,7 +46,7 @@ public class PostgresDataSourceConfiguration extends DataSourceConfiguration { if (POSTGRESQL_CONTAINER == null) { - PostgreSQLContainer container = new PostgreSQLContainer<>("postgres:14.3"); + PostgreSQLContainer container = new PostgreSQLContainer("postgres:14.3"); container.start(); POSTGRESQL_CONTAINER = container; diff --git a/spring-data-r2dbc/pom.xml b/spring-data-r2dbc/pom.xml index 7cb5f7a10..46341f727 100644 --- a/spring-data-r2dbc/pom.xml +++ b/spring-data-r2dbc/pom.xml @@ -35,13 +35,6 @@ - - org.testcontainers - testcontainers-bom - ${testcontainers} - pom - import - io.netty netty-bom @@ -247,9 +240,16 @@ + + org.apache.commons + commons-lang3 + 3.19.0 + test + + org.testcontainers - mysql + testcontainers-mysql test @@ -261,7 +261,7 @@ org.testcontainers - mariadb + testcontainers-mariadb test @@ -273,7 +273,7 @@ org.testcontainers - mssqlserver + testcontainers-mssqlserver test @@ -285,13 +285,13 @@ org.testcontainers - oracle-free + testcontainers-oracle-free test org.testcontainers - postgresql + testcontainers-postgresql test diff --git a/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/testing/MariaDbTestSupport.java b/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/testing/MariaDbTestSupport.java index 1946f1641..ca579f66f 100644 --- a/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/testing/MariaDbTestSupport.java +++ b/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/testing/MariaDbTestSupport.java @@ -27,7 +27,7 @@ import javax.sql.DataSource; import org.mariadb.jdbc.MariaDbDataSource; import org.mariadb.r2dbc.MariadbConnectionFactoryProvider; import org.springframework.data.r2dbc.testing.ExternalDatabase.ProvidedDatabase; -import org.testcontainers.containers.MariaDBContainer; +import org.testcontainers.mariadb.MariaDBContainer; import org.testcontainers.utility.DockerImageName; /** @@ -123,7 +123,7 @@ public class MariaDbTestSupport { .asCompatibleSubstituteFor("mariadb"); DockerImageName mariadb = DockerImageName.parse("mariadb").withTag("10.3.6"); - var container = new MariaDBContainer<>("aarch64".equals(osArch) ? armImageName : mariadb); + var container = new MariaDBContainer("aarch64".equals(osArch) ? armImageName : mariadb); container.start(); diff --git a/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/testing/MySqlDbTestSupport.java b/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/testing/MySqlDbTestSupport.java index 9fb7fa406..a960595f0 100644 --- a/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/testing/MySqlDbTestSupport.java +++ b/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/testing/MySqlDbTestSupport.java @@ -25,7 +25,7 @@ import java.util.stream.Stream; import javax.sql.DataSource; import org.springframework.data.r2dbc.testing.ExternalDatabase.ProvidedDatabase; -import org.testcontainers.containers.MySQLContainer; +import org.testcontainers.mysql.MySQLContainer; import com.mysql.cj.jdbc.MysqlDataSource; @@ -116,7 +116,7 @@ public class MySqlDbTestSupport { try { - var container = new MySQLContainer<>("mysql:8.0.32").withUsername("test").withPassword("test") + var container = new MySQLContainer("mysql:8.0.32").withUsername("test").withPassword("test") .withConfigurationOverride(""); container.start(); diff --git a/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/testing/PostgresTestSupport.java b/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/testing/PostgresTestSupport.java index c0a3e88d7..d5b1eaa34 100644 --- a/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/testing/PostgresTestSupport.java +++ b/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/testing/PostgresTestSupport.java @@ -24,7 +24,7 @@ import javax.sql.DataSource; import org.postgresql.ds.PGSimpleDataSource; import org.springframework.data.r2dbc.testing.ExternalDatabase.ProvidedDatabase; -import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.postgresql.PostgreSQLContainer; /** * Utility class for testing against Postgres. diff --git a/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/testing/SqlServerTestSupport.java b/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/testing/SqlServerTestSupport.java index 5766413d3..d15b1cc03 100644 --- a/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/testing/SqlServerTestSupport.java +++ b/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/testing/SqlServerTestSupport.java @@ -23,7 +23,7 @@ import java.util.stream.Stream; import javax.sql.DataSource; import org.springframework.data.r2dbc.testing.ExternalDatabase.ProvidedDatabase; -import org.testcontainers.containers.MSSQLServerContainer; +import org.testcontainers.mssqlserver.MSSQLServerContainer; import com.microsoft.sqlserver.jdbc.SQLServerDataSource; @@ -124,7 +124,7 @@ public class SqlServerTestSupport { if (testContainerDatabase == null) { try { - MSSQLServerContainer container = new MSSQLServerContainer("mcr.microsoft.com/mssql/server:2022-latest") { + MSSQLServerContainer container = new MSSQLServerContainer("mcr.microsoft.com/mssql/server:2022-latest") { @Override public String getDatabaseName() { return "master";