Skip to content

Commit 9524730

Browse files
vpavicrwinch
authored andcommitted
Update integration tests
This commit updates Docker images used in all the integration tests. Additionally, it updates JDBC session repository Oracle integration tests to run unconditionally.
1 parent 7856113 commit 9524730

File tree

29 files changed

+99
-125
lines changed

29 files changed

+99
-125
lines changed

spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/integration/AbstractMongoRepositoryITest.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2014-2016 the original author or authors.
2+
* Copyright 2014-2022 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -389,11 +389,13 @@ protected String getChangedSecurityName() {
389389

390390
protected static class BaseConfig {
391391

392-
private static final String DOCKER_IMAGE = "mongo:4.0.10";
392+
private static final String DOCKER_IMAGE = "mongo:5.0.11";
393393

394-
@Bean(initMethod = "start", destroyMethod = "stop")
395-
public MongoDBContainer mongoContainer() {
396-
return new MongoDBContainer(DOCKER_IMAGE).withExposedPorts(27017);
394+
@Bean
395+
public MongoDBContainer mongoDbContainer() {
396+
MongoDBContainer mongoDbContainer = new MongoDBContainer(DOCKER_IMAGE);
397+
mongoDbContainer.start();
398+
return mongoDbContainer;
397399
}
398400

399401
@Bean

spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/integration/MongoDbDeleteJacksonSessionVerificationTest.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -176,11 +176,13 @@ AbstractMongoSessionConverter mongoSessionConverter() {
176176
@EnableMongoWebSession
177177
static class Config {
178178

179-
private static final String DOCKER_IMAGE = "mongo:4.0.10";
179+
private static final String DOCKER_IMAGE = "mongo:5.0.11";
180180

181-
@Bean(initMethod = "start", destroyMethod = "stop")
182-
MongoDBContainer mongoContainer() {
183-
return new MongoDBContainer(DOCKER_IMAGE).withExposedPorts(27017);
181+
@Bean
182+
MongoDBContainer mongoDbContainer() {
183+
MongoDBContainer mongoDbContainer = new MongoDBContainer(DOCKER_IMAGE);
184+
mongoDbContainer.start();
185+
return mongoDbContainer;
184186
}
185187

186188
@Bean

spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/integration/MongoDbLogoutVerificationTest.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,11 +171,13 @@ MapReactiveUserDetailsService userDetailsService() {
171171
@EnableMongoWebSession
172172
static class Config {
173173

174-
private static final String DOCKER_IMAGE = "mongo:4.0.10";
174+
private static final String DOCKER_IMAGE = "mongo:5.0.11";
175175

176-
@Bean(initMethod = "start", destroyMethod = "stop")
177-
MongoDBContainer mongoContainer() {
178-
return new MongoDBContainer(DOCKER_IMAGE).withExposedPorts(27017);
176+
@Bean
177+
MongoDBContainer mongoDbContainer() {
178+
MongoDBContainer mongoDbContainer = new MongoDBContainer(DOCKER_IMAGE);
179+
mongoDbContainer.start();
180+
return mongoDbContainer;
179181
}
180182

181183
@Bean

spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/AbstractRedisITests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2014-2019 the original author or authors.
2+
* Copyright 2014-2022 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -29,7 +29,7 @@
2929
*/
3030
public abstract class AbstractRedisITests {
3131

32-
private static final String DOCKER_IMAGE = "redis:5.0.10";
32+
private static final String DOCKER_IMAGE = "redis:7.0.4-alpine";
3333

3434
protected static class BaseConfig {
3535

spring-session-hazelcast/src/integration-test/java/org/springframework/session/hazelcast/ClientServerHazelcastIndexedSessionRepositoryITests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2014-2019 the original author or authors.
2+
* Copyright 2014-2022 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -48,7 +48,7 @@
4848
@Disabled("Re-enable when Hazelcast image uses JDK 17")
4949
class ClientServerHazelcastIndexedSessionRepositoryITests extends AbstractHazelcastIndexedSessionRepositoryITests {
5050

51-
private static GenericContainer container = new GenericContainer<>("hazelcast/hazelcast:5.0.2")
51+
private static GenericContainer container = new GenericContainer<>("hazelcast/hazelcast:5.0.3-slim")
5252
.withExposedPorts(5701).withCopyFileToContainer(MountableFile.forClasspathResource("/hazelcast-server.xml"),
5353
"/opt/hazelcast/hazelcast.xml")
5454
.withEnv("HAZELCAST_CONFIG", "hazelcast.xml");

spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/DatabaseContainers.java

Lines changed: 18 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,13 @@
1616

1717
package org.springframework.session.jdbc;
1818

19-
import java.time.Duration;
20-
21-
import org.testcontainers.containers.Db2Container;
19+
import org.testcontainers.containers.Db2ContainerProvider;
2220
import org.testcontainers.containers.JdbcDatabaseContainer;
23-
import org.testcontainers.containers.MSSQLServerContainer;
24-
import org.testcontainers.containers.MariaDBContainer;
25-
import org.testcontainers.containers.MySQLContainer;
26-
import org.testcontainers.containers.OracleContainer;
27-
import org.testcontainers.containers.PostgreSQLContainer;
28-
import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy;
21+
import org.testcontainers.containers.MSSQLServerContainerProvider;
22+
import org.testcontainers.containers.MariaDBContainerProvider;
23+
import org.testcontainers.containers.MySQLContainerProvider;
24+
import org.testcontainers.containers.OracleContainerProvider;
25+
import org.testcontainers.containers.PostgreSQLContainerProvider;
2926

3027
/**
3128
* Factories for various {@link JdbcDatabaseContainer}s.
@@ -37,42 +34,28 @@ final class DatabaseContainers {
3734
private DatabaseContainers() {
3835
}
3936

40-
static Db2Container db2() {
41-
return new Db2Container("ibmcom/db2:11.5.7.0");
37+
static JdbcDatabaseContainer<?> db2() {
38+
return new Db2ContainerProvider().newInstance("11.5.7.0a");
4239
}
4340

44-
static MariaDBContainer<?> mariaDb() {
45-
return new MariaDBContainer<>("mariadb:10.6.4");
41+
static JdbcDatabaseContainer<?> mariaDb() {
42+
return new MariaDBContainerProvider().newInstance("10.8.3");
4643
}
4744

48-
static MySQLContainer<?> mySql() {
49-
return new MySQLContainer<>("mysql:8.0.27");
45+
static JdbcDatabaseContainer<?> mySql() {
46+
return new MySQLContainerProvider().newInstance("8.0.30");
5047
}
5148

52-
static OracleContainer oracle() {
53-
return new OracleContainer() {
54-
55-
@Override
56-
protected void configure() {
57-
this.waitStrategy = new LogMessageWaitStrategy().withRegEx(".*DATABASE IS READY TO USE!.*\\s")
58-
.withStartupTimeout(Duration.ofMinutes(10));
59-
addEnv("ORACLE_PWD", getPassword());
60-
}
61-
62-
@Override
63-
protected void waitUntilContainerStarted() {
64-
getWaitStrategy().waitUntilReady(this);
65-
}
66-
67-
};
49+
static JdbcDatabaseContainer<?> oracle() {
50+
return new OracleContainerProvider().newInstance("21.3.0-slim");
6851
}
6952

70-
static PostgreSQLContainer<?> postgreSql() {
71-
return new PostgreSQLContainer<>("postgres:14.0");
53+
static JdbcDatabaseContainer<?> postgreSql() {
54+
return new PostgreSQLContainerProvider().newInstance("14.5-alpine");
7255
}
7356

74-
static MSSQLServerContainer<?> sqlServer() {
75-
return new MSSQLServerContainer<>("mcr.microsoft.com/mssql/server:2019-CU8-ubuntu-16.04");
57+
static JdbcDatabaseContainer<?> sqlServer() {
58+
return new MSSQLServerContainerProvider().newInstance("2019-CU17-ubuntu-20.04");
7659
}
7760

7861
}

spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/Db2JdbcIndexedSessionRepositoryITests.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2014-2020 the original author or authors.
2+
* Copyright 2014-2022 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -17,7 +17,7 @@
1717
package org.springframework.session.jdbc;
1818

1919
import org.junit.jupiter.api.extension.ExtendWith;
20-
import org.testcontainers.containers.Db2Container;
20+
import org.testcontainers.containers.JdbcDatabaseContainer;
2121

2222
import org.springframework.context.annotation.Bean;
2323
import org.springframework.context.annotation.Configuration;
@@ -40,8 +40,8 @@ class Db2JdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcIndexed
4040
static class Config extends BaseContainerConfig {
4141

4242
@Bean
43-
Db2Container databaseContainer() {
44-
Db2Container databaseContainer = DatabaseContainers.db2();
43+
JdbcDatabaseContainer<?> databaseContainer() {
44+
JdbcDatabaseContainer<?> databaseContainer = DatabaseContainers.db2();
4545
databaseContainer.start();
4646
return databaseContainer;
4747
}

spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDbJdbcIndexedSessionRepositoryITests.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2014-2020 the original author or authors.
2+
* Copyright 2014-2022 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -17,7 +17,7 @@
1717
package org.springframework.session.jdbc;
1818

1919
import org.junit.jupiter.api.extension.ExtendWith;
20-
import org.testcontainers.containers.MariaDBContainer;
20+
import org.testcontainers.containers.JdbcDatabaseContainer;
2121

2222
import org.springframework.context.annotation.Bean;
2323
import org.springframework.context.annotation.Configuration;
@@ -40,8 +40,8 @@ class MariaDbJdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcInd
4040
static class Config extends BaseContainerConfig {
4141

4242
@Bean
43-
MariaDBContainer<?> databaseContainer() {
44-
MariaDBContainer<?> databaseContainer = DatabaseContainers.mariaDb();
43+
JdbcDatabaseContainer<?> databaseContainer() {
44+
JdbcDatabaseContainer<?> databaseContainer = DatabaseContainers.mariaDb();
4545
databaseContainer.start();
4646
return databaseContainer;
4747
}

spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySqlJdbcIndexedSessionRepositoryITests.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2014-2020 the original author or authors.
2+
* Copyright 2014-2022 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -17,7 +17,7 @@
1717
package org.springframework.session.jdbc;
1818

1919
import org.junit.jupiter.api.extension.ExtendWith;
20-
import org.testcontainers.containers.MySQLContainer;
20+
import org.testcontainers.containers.JdbcDatabaseContainer;
2121

2222
import org.springframework.context.annotation.Bean;
2323
import org.springframework.context.annotation.Configuration;
@@ -40,8 +40,8 @@ class MySqlJdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcIndex
4040
static class Config extends BaseContainerConfig {
4141

4242
@Bean
43-
MySQLContainer<?> databaseContainer() {
44-
MySQLContainer<?> databaseContainer = DatabaseContainers.mySql();
43+
JdbcDatabaseContainer<?> databaseContainer() {
44+
JdbcDatabaseContainer<?> databaseContainer = DatabaseContainers.mySql();
4545
databaseContainer.start();
4646
return databaseContainer;
4747
}

spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/OracleJdbcIndexedSessionRepositoryITests.java

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2014-2020 the original author or authors.
2+
* Copyright 2014-2022 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -16,11 +16,8 @@
1616

1717
package org.springframework.session.jdbc;
1818

19-
import org.junit.jupiter.api.Assumptions;
20-
import org.junit.jupiter.api.BeforeAll;
2119
import org.junit.jupiter.api.extension.ExtendWith;
22-
import org.testcontainers.containers.OracleContainer;
23-
import org.testcontainers.utility.TestcontainersConfiguration;
20+
import org.testcontainers.containers.JdbcDatabaseContainer;
2421

2522
import org.springframework.context.annotation.Bean;
2623
import org.springframework.context.annotation.Configuration;
@@ -31,9 +28,6 @@
3128

3229
/**
3330
* Integration tests for {@link JdbcIndexedSessionRepository} using Oracle database.
34-
* <p>
35-
* This test is conditional on Testcontainers property {@code oracle.container.image}
36-
* being set.
3731
*
3832
* @author Vedran Pavic
3933
*/
@@ -42,19 +36,12 @@
4236
@ContextConfiguration
4337
class OracleJdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcIndexedSessionRepositoryITests {
4438

45-
@BeforeAll
46-
static void setUpClass() {
47-
Assumptions.assumeTrue(
48-
TestcontainersConfiguration.getInstance().getProperties().containsKey("oracle.container.image"),
49-
"Testcontainers property `oracle.container.image` is set");
50-
}
51-
5239
@Configuration
5340
static class Config extends BaseContainerConfig {
5441

5542
@Bean
56-
OracleContainer databaseContainer() {
57-
OracleContainer databaseContainer = DatabaseContainers.oracle();
43+
JdbcDatabaseContainer<?> databaseContainer() {
44+
JdbcDatabaseContainer<?> databaseContainer = DatabaseContainers.oracle();
5845
databaseContainer.start();
5946
return databaseContainer;
6047
}

0 commit comments

Comments
 (0)