diff --git a/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/integration/AbstractMongoRepositoryITest.java b/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/integration/AbstractMongoRepositoryITest.java index 7b3d7fe8..144e8d31 100644 --- a/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/integration/AbstractMongoRepositoryITest.java +++ b/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/integration/AbstractMongoRepositoryITest.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2016 the original author or authors. + * Copyright 2014-2022 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. @@ -389,11 +389,13 @@ public abstract class AbstractMongoRepositoryITest extends AbstractITest { protected static class BaseConfig { - private static final String DOCKER_IMAGE = "mongo:4.0.10"; + private static final String DOCKER_IMAGE = "mongo:5.0.11"; - @Bean(initMethod = "start", destroyMethod = "stop") - public MongoDBContainer mongoContainer() { - return new MongoDBContainer(DOCKER_IMAGE).withExposedPorts(27017); + @Bean + public MongoDBContainer mongoDbContainer() { + MongoDBContainer mongoDbContainer = new MongoDBContainer(DOCKER_IMAGE); + mongoDbContainer.start(); + return mongoDbContainer; } @Bean diff --git a/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/integration/MongoDbDeleteJacksonSessionVerificationTest.java b/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/integration/MongoDbDeleteJacksonSessionVerificationTest.java index f06ad0ca..f9640ecc 100644 --- a/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/integration/MongoDbDeleteJacksonSessionVerificationTest.java +++ b/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/integration/MongoDbDeleteJacksonSessionVerificationTest.java @@ -176,11 +176,13 @@ public class MongoDbDeleteJacksonSessionVerificationTest { @EnableMongoWebSession static class Config { - private static final String DOCKER_IMAGE = "mongo:4.0.10"; + private static final String DOCKER_IMAGE = "mongo:5.0.11"; - @Bean(initMethod = "start", destroyMethod = "stop") - MongoDBContainer mongoContainer() { - return new MongoDBContainer(DOCKER_IMAGE).withExposedPorts(27017); + @Bean + MongoDBContainer mongoDbContainer() { + MongoDBContainer mongoDbContainer = new MongoDBContainer(DOCKER_IMAGE); + mongoDbContainer.start(); + return mongoDbContainer; } @Bean diff --git a/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/integration/MongoDbLogoutVerificationTest.java b/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/integration/MongoDbLogoutVerificationTest.java index 3a061c71..55f17eaa 100644 --- a/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/integration/MongoDbLogoutVerificationTest.java +++ b/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/integration/MongoDbLogoutVerificationTest.java @@ -171,11 +171,13 @@ public class MongoDbLogoutVerificationTest { @EnableMongoWebSession static class Config { - private static final String DOCKER_IMAGE = "mongo:4.0.10"; + private static final String DOCKER_IMAGE = "mongo:5.0.11"; - @Bean(initMethod = "start", destroyMethod = "stop") - MongoDBContainer mongoContainer() { - return new MongoDBContainer(DOCKER_IMAGE).withExposedPorts(27017); + @Bean + MongoDBContainer mongoDbContainer() { + MongoDBContainer mongoDbContainer = new MongoDBContainer(DOCKER_IMAGE); + mongoDbContainer.start(); + return mongoDbContainer; } @Bean diff --git a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/AbstractRedisITests.java b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/AbstractRedisITests.java index 93f575ca..45859d3f 100644 --- a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/AbstractRedisITests.java +++ b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/AbstractRedisITests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2019 the original author or authors. + * Copyright 2014-2022 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. @@ -29,7 +29,7 @@ import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactor */ public abstract class AbstractRedisITests { - private static final String DOCKER_IMAGE = "redis:5.0.10"; + private static final String DOCKER_IMAGE = "redis:7.0.4-alpine"; protected static class BaseConfig { diff --git a/spring-session-hazelcast/src/integration-test/java/org/springframework/session/hazelcast/ClientServerHazelcastIndexedSessionRepositoryITests.java b/spring-session-hazelcast/src/integration-test/java/org/springframework/session/hazelcast/ClientServerHazelcastIndexedSessionRepositoryITests.java index 679b99b9..f5949f4c 100644 --- a/spring-session-hazelcast/src/integration-test/java/org/springframework/session/hazelcast/ClientServerHazelcastIndexedSessionRepositoryITests.java +++ b/spring-session-hazelcast/src/integration-test/java/org/springframework/session/hazelcast/ClientServerHazelcastIndexedSessionRepositoryITests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2019 the original author or authors. + * Copyright 2014-2022 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. @@ -48,7 +48,7 @@ import org.springframework.test.context.web.WebAppConfiguration; @Disabled("Re-enable when Hazelcast image uses JDK 17") class ClientServerHazelcastIndexedSessionRepositoryITests extends AbstractHazelcastIndexedSessionRepositoryITests { - private static GenericContainer container = new GenericContainer<>("hazelcast/hazelcast:5.0.2") + private static GenericContainer container = new GenericContainer<>("hazelcast/hazelcast:5.0.3-slim") .withExposedPorts(5701).withCopyFileToContainer(MountableFile.forClasspathResource("/hazelcast-server.xml"), "/opt/hazelcast/hazelcast.xml") .withEnv("HAZELCAST_CONFIG", "hazelcast.xml"); diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/DatabaseContainers.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/DatabaseContainers.java index 7affd20f..37207623 100644 --- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/DatabaseContainers.java +++ b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/DatabaseContainers.java @@ -16,16 +16,13 @@ package org.springframework.session.jdbc; -import java.time.Duration; - -import org.testcontainers.containers.Db2Container; +import org.testcontainers.containers.Db2ContainerProvider; import org.testcontainers.containers.JdbcDatabaseContainer; -import org.testcontainers.containers.MSSQLServerContainer; -import org.testcontainers.containers.MariaDBContainer; -import org.testcontainers.containers.MySQLContainer; -import org.testcontainers.containers.OracleContainer; -import org.testcontainers.containers.PostgreSQLContainer; -import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy; +import org.testcontainers.containers.MSSQLServerContainerProvider; +import org.testcontainers.containers.MariaDBContainerProvider; +import org.testcontainers.containers.MySQLContainerProvider; +import org.testcontainers.containers.OracleContainerProvider; +import org.testcontainers.containers.PostgreSQLContainerProvider; /** * Factories for various {@link JdbcDatabaseContainer}s. @@ -37,42 +34,28 @@ final class DatabaseContainers { private DatabaseContainers() { } - static Db2Container db2() { - return new Db2Container("ibmcom/db2:11.5.7.0"); + static JdbcDatabaseContainer> db2() { + return new Db2ContainerProvider().newInstance("11.5.7.0a"); } - static MariaDBContainer> mariaDb() { - return new MariaDBContainer<>("mariadb:10.6.4"); + static JdbcDatabaseContainer> mariaDb() { + return new MariaDBContainerProvider().newInstance("10.8.3"); } - static MySQLContainer> mySql() { - return new MySQLContainer<>("mysql:8.0.27"); + static JdbcDatabaseContainer> mySql() { + return new MySQLContainerProvider().newInstance("8.0.30"); } - static OracleContainer oracle() { - return new OracleContainer() { - - @Override - protected void configure() { - this.waitStrategy = new LogMessageWaitStrategy().withRegEx(".*DATABASE IS READY TO USE!.*\\s") - .withStartupTimeout(Duration.ofMinutes(10)); - addEnv("ORACLE_PWD", getPassword()); - } - - @Override - protected void waitUntilContainerStarted() { - getWaitStrategy().waitUntilReady(this); - } - - }; + static JdbcDatabaseContainer> oracle() { + return new OracleContainerProvider().newInstance("21.3.0-slim"); } - static PostgreSQLContainer> postgreSql() { - return new PostgreSQLContainer<>("postgres:14.0"); + static JdbcDatabaseContainer> postgreSql() { + return new PostgreSQLContainerProvider().newInstance("14.5-alpine"); } - static MSSQLServerContainer> sqlServer() { - return new MSSQLServerContainer<>("mcr.microsoft.com/mssql/server:2019-CU8-ubuntu-16.04"); + static JdbcDatabaseContainer> sqlServer() { + return new MSSQLServerContainerProvider().newInstance("2019-CU17-ubuntu-20.04"); } } diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/Db2JdbcIndexedSessionRepositoryITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/Db2JdbcIndexedSessionRepositoryITests.java index 8a9e77dc..30daeceb 100644 --- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/Db2JdbcIndexedSessionRepositoryITests.java +++ b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/Db2JdbcIndexedSessionRepositoryITests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2020 the original author or authors. + * Copyright 2014-2022 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. @@ -17,7 +17,7 @@ package org.springframework.session.jdbc; import org.junit.jupiter.api.extension.ExtendWith; -import org.testcontainers.containers.Db2Container; +import org.testcontainers.containers.JdbcDatabaseContainer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -40,8 +40,8 @@ class Db2JdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcIndexed static class Config extends BaseContainerConfig { @Bean - Db2Container databaseContainer() { - Db2Container databaseContainer = DatabaseContainers.db2(); + JdbcDatabaseContainer> databaseContainer() { + JdbcDatabaseContainer> databaseContainer = DatabaseContainers.db2(); databaseContainer.start(); return databaseContainer; } diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDbJdbcIndexedSessionRepositoryITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDbJdbcIndexedSessionRepositoryITests.java index 81d874e8..dc77daf5 100644 --- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDbJdbcIndexedSessionRepositoryITests.java +++ b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDbJdbcIndexedSessionRepositoryITests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2020 the original author or authors. + * Copyright 2014-2022 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. @@ -17,7 +17,7 @@ package org.springframework.session.jdbc; import org.junit.jupiter.api.extension.ExtendWith; -import org.testcontainers.containers.MariaDBContainer; +import org.testcontainers.containers.JdbcDatabaseContainer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -40,8 +40,8 @@ class MariaDbJdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcInd static class Config extends BaseContainerConfig { @Bean - MariaDBContainer> databaseContainer() { - MariaDBContainer> databaseContainer = DatabaseContainers.mariaDb(); + JdbcDatabaseContainer> databaseContainer() { + JdbcDatabaseContainer> databaseContainer = DatabaseContainers.mariaDb(); databaseContainer.start(); return databaseContainer; } diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySqlJdbcIndexedSessionRepositoryITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySqlJdbcIndexedSessionRepositoryITests.java index 6a4f79ed..8c3a0ca4 100644 --- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySqlJdbcIndexedSessionRepositoryITests.java +++ b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySqlJdbcIndexedSessionRepositoryITests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2020 the original author or authors. + * Copyright 2014-2022 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. @@ -17,7 +17,7 @@ package org.springframework.session.jdbc; import org.junit.jupiter.api.extension.ExtendWith; -import org.testcontainers.containers.MySQLContainer; +import org.testcontainers.containers.JdbcDatabaseContainer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -40,8 +40,8 @@ class MySqlJdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcIndex static class Config extends BaseContainerConfig { @Bean - MySQLContainer> databaseContainer() { - MySQLContainer> databaseContainer = DatabaseContainers.mySql(); + JdbcDatabaseContainer> databaseContainer() { + JdbcDatabaseContainer> databaseContainer = DatabaseContainers.mySql(); databaseContainer.start(); return databaseContainer; } diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/OracleJdbcIndexedSessionRepositoryITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/OracleJdbcIndexedSessionRepositoryITests.java index 7abe83a9..47020774 100644 --- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/OracleJdbcIndexedSessionRepositoryITests.java +++ b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/OracleJdbcIndexedSessionRepositoryITests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2020 the original author or authors. + * Copyright 2014-2022 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. @@ -16,11 +16,8 @@ package org.springframework.session.jdbc; -import org.junit.jupiter.api.Assumptions; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.extension.ExtendWith; -import org.testcontainers.containers.OracleContainer; -import org.testcontainers.utility.TestcontainersConfiguration; +import org.testcontainers.containers.JdbcDatabaseContainer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -31,9 +28,6 @@ import org.springframework.test.context.web.WebAppConfiguration; /** * Integration tests for {@link JdbcIndexedSessionRepository} using Oracle database. - *
- * This test is conditional on Testcontainers property {@code oracle.container.image}
- * being set.
*
* @author Vedran Pavic
*/
@@ -42,19 +36,12 @@ import org.springframework.test.context.web.WebAppConfiguration;
@ContextConfiguration
class OracleJdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcIndexedSessionRepositoryITests {
- @BeforeAll
- static void setUpClass() {
- Assumptions.assumeTrue(
- TestcontainersConfiguration.getInstance().getProperties().containsKey("oracle.container.image"),
- "Testcontainers property `oracle.container.image` is set");
- }
-
@Configuration
static class Config extends BaseContainerConfig {
@Bean
- OracleContainer databaseContainer() {
- OracleContainer databaseContainer = DatabaseContainers.oracle();
+ JdbcDatabaseContainer> databaseContainer() {
+ JdbcDatabaseContainer> databaseContainer = DatabaseContainers.oracle();
databaseContainer.start();
return databaseContainer;
}
diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSqlJdbcIndexedSessionRepositoryITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSqlJdbcIndexedSessionRepositoryITests.java
index df40af84..8bae4de2 100644
--- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSqlJdbcIndexedSessionRepositoryITests.java
+++ b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSqlJdbcIndexedSessionRepositoryITests.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2014-2020 the original author or authors.
+ * Copyright 2014-2022 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.
@@ -17,7 +17,7 @@
package org.springframework.session.jdbc;
import org.junit.jupiter.api.extension.ExtendWith;
-import org.testcontainers.containers.PostgreSQLContainer;
+import org.testcontainers.containers.JdbcDatabaseContainer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -40,8 +40,8 @@ class PostgreSqlJdbcIndexedSessionRepositoryITests extends AbstractContainerJdbc
static class Config extends BaseContainerConfig {
@Bean
- PostgreSQLContainer> databaseContainer() {
- PostgreSQLContainer> databaseContainer = DatabaseContainers.postgreSql();
+ JdbcDatabaseContainer> databaseContainer() {
+ JdbcDatabaseContainer> databaseContainer = DatabaseContainers.postgreSql();
databaseContainer.start();
return databaseContainer;
}
diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/SqlServerJdbcIndexedSessionRepositoryITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/SqlServerJdbcIndexedSessionRepositoryITests.java
index e8cdf23e..80262f0a 100644
--- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/SqlServerJdbcIndexedSessionRepositoryITests.java
+++ b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/SqlServerJdbcIndexedSessionRepositoryITests.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2014-2020 the original author or authors.
+ * Copyright 2014-2022 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.
@@ -17,7 +17,7 @@
package org.springframework.session.jdbc;
import org.junit.jupiter.api.extension.ExtendWith;
-import org.testcontainers.containers.MSSQLServerContainer;
+import org.testcontainers.containers.JdbcDatabaseContainer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -41,8 +41,8 @@ class SqlServerJdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcI
static class Config extends BaseContainerConfig {
@Bean
- MSSQLServerContainer> databaseContainer() {
- MSSQLServerContainer> databaseContainer = DatabaseContainers.sqlServer();
+ JdbcDatabaseContainer> databaseContainer() {
+ JdbcDatabaseContainer> databaseContainer = DatabaseContainers.sqlServer();
databaseContainer.start();
return databaseContainer;
}
diff --git a/spring-session-jdbc/src/integration-test/resources/container-license-acceptance.txt b/spring-session-jdbc/src/integration-test/resources/container-license-acceptance.txt
index 7c6bc934..265b9de8 100644
--- a/spring-session-jdbc/src/integration-test/resources/container-license-acceptance.txt
+++ b/spring-session-jdbc/src/integration-test/resources/container-license-acceptance.txt
@@ -1,2 +1,2 @@
-ibmcom/db2:11.5.7.0
-mcr.microsoft.com/mssql/server:2019-CU8-ubuntu-16.04
+ibmcom/db2:11.5.7.0a
+mcr.microsoft.com/mssql/server:2019-CU17-ubuntu-20.04
diff --git a/spring-session-samples/spring-session-sample-boot-findbyusername/src/integration-test/java/sample/FindByUsernameTests.java b/spring-session-samples/spring-session-sample-boot-findbyusername/src/integration-test/java/sample/FindByUsernameTests.java
index f765ccb1..21539566 100644
--- a/spring-session-samples/spring-session-sample-boot-findbyusername/src/integration-test/java/sample/FindByUsernameTests.java
+++ b/spring-session-samples/spring-session-sample-boot-findbyusername/src/integration-test/java/sample/FindByUsernameTests.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2014-2019 the original author or authors.
+ * Copyright 2014-2022 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.
@@ -46,7 +46,7 @@ import org.springframework.test.web.servlet.htmlunit.webdriver.MockMvcHtmlUnitDr
@SpringBootTest(webEnvironment = WebEnvironment.MOCK)
class FindByUsernameTests {
- private static final String DOCKER_IMAGE = "redis:5.0.10";
+ private static final String DOCKER_IMAGE = "redis:7.0.4-alpine";
@Autowired
private MockMvc mockMvc;
diff --git a/spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/main/java/org/springframework/session/mongodb/examples/SpringSessionMongoReactiveApplication.java b/spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/main/java/org/springframework/session/mongodb/examples/SpringSessionMongoReactiveApplication.java
index d11245cc..f1c55a26 100644
--- a/spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/main/java/org/springframework/session/mongodb/examples/SpringSessionMongoReactiveApplication.java
+++ b/spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/main/java/org/springframework/session/mongodb/examples/SpringSessionMongoReactiveApplication.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2017 the original author or authors.
+ * Copyright 2014-2022 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.
@@ -20,7 +20,6 @@ import java.util.HashMap;
import java.util.Map;
import org.testcontainers.containers.MongoDBContainer;
-import org.testcontainers.utility.DockerImageName;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -57,7 +56,7 @@ public class SpringSessionMongoReactiveApplication {
*/
static class Initializer implements ApplicationContextInitializer