From 2aae51b1a16d23bc6a73b1c7244d4b0916240ca2 Mon Sep 17 00:00:00 2001 From: Vedran Pavic Date: Tue, 10 Nov 2020 23:59:38 +0100 Subject: [PATCH] Rationalize JDBC integration tests This commit reduces the JDBC integration tests to only single (latest) version per RDBMS vendor, due to a growing number of integration tests. Additionally, the configuration of most containers is simplified due to improved defaults within the Testcontainers library. --- .../session/jdbc/DatabaseContainers.java | 182 +++--------------- ...xedSessionRepositoryCustomizerITests.java} | 6 +- ...b2JdbcIndexedSessionRepositoryITests.java} | 8 +- ...b10JdbcIndexedSessionRepositoryITests.java | 56 ------ ...xedSessionRepositoryCustomizerITests.java} | 6 +- ...DbJdbcIndexedSessionRepositoryITests.java} | 10 +- ...ql8JdbcIndexedSessionRepositoryITests.java | 56 ------ ...xedSessionRepositoryCustomizerITests.java} | 6 +- ...qlJdbcIndexedSessionRepositoryITests.java} | 10 +- ...cleJdbcIndexedSessionRepositoryITests.java | 4 +- ...l10JdbcIndexedSessionRepositoryITests.java | 57 ------ ...l11JdbcIndexedSessionRepositoryITests.java | 57 ------ ...xedSessionRepositoryCustomizerITests.java} | 6 +- ...qlJdbcIndexedSessionRepositoryITests.java} | 11 +- ...verJdbcIndexedSessionRepositoryITests.java | 6 +- .../container-license-acceptance.txt | 4 +- 16 files changed, 65 insertions(+), 420 deletions(-) rename spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/{Db211JdbcIndexedSessionRepositoryCustomizerITests.java => Db2JdbcIndexedSessionRepositoryCustomizerITests.java} (88%) rename spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/{Db211JdbcIndexedSessionRepositoryITests.java => Db2JdbcIndexedSessionRepositoryITests.java} (86%) delete mode 100644 spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDb10JdbcIndexedSessionRepositoryITests.java rename spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/{MySql8JdbcIndexedSessionRepositoryCustomizerITests.java => MariaDbJdbcIndexedSessionRepositoryCustomizerITests.java} (88%) rename spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/{MariaDb5JdbcIndexedSessionRepositoryITests.java => MariaDbJdbcIndexedSessionRepositoryITests.java} (83%) delete mode 100644 spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySql8JdbcIndexedSessionRepositoryITests.java rename spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/{MariaDb10JdbcIndexedSessionRepositoryCustomizerITests.java => MySqlJdbcIndexedSessionRepositoryCustomizerITests.java} (87%) rename spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/{MySql5JdbcIndexedSessionRepositoryITests.java => MySqlJdbcIndexedSessionRepositoryITests.java} (83%) delete mode 100644 spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSql10JdbcIndexedSessionRepositoryITests.java delete mode 100644 spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSql11JdbcIndexedSessionRepositoryITests.java rename spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/{PostgreSql11JdbcIndexedSessionRepositoryCustomizerITests.java => PostgreSqlJdbcIndexedSessionRepositoryCustomizerITests.java} (87%) rename spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/{PostgreSql9JdbcIndexedSessionRepositoryITests.java => PostgreSqlJdbcIndexedSessionRepositoryITests.java} (82%) 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 71a9a25c..0d97f3aa 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 @@ -1,5 +1,5 @@ /* - * Copyright 2014-2019 the original author or authors. + * Copyright 2014-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. @@ -17,7 +17,6 @@ package org.springframework.session.jdbc; import java.time.Duration; -import java.time.temporal.ChronoUnit; import org.testcontainers.containers.Db2Container; import org.testcontainers.containers.JdbcDatabaseContainer; @@ -38,169 +37,42 @@ final class DatabaseContainers { private DatabaseContainers() { } - static Db211Container db211() { - return new Db211Container(); + static Db2Container db2() { + return new Db2Container("ibmcom/db2:11.5.4.0"); } - static MariaDBContainer mariaDb5() { - return new MariaDb5Container(); + static MariaDBContainer mariaDb() { + return new MariaDBContainer<>("mariadb:10.5.7"); } - static MariaDBContainer mariaDb10() { - return new MariaDb10Container(); + static MySQLContainer mySql() { + return new MySQLContainer<>("mysql:8.0.22"); } - static MySQLContainer mySql5() { - return new MySql5Container(); + 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 MySQLContainer mySql8() { - return new MySql8Container(); + static PostgreSQLContainer postgreSql() { + return new PostgreSQLContainer<>("postgres:13.0"); } - static OracleXeContainer oracleXe() { - return new OracleXeContainer(); - } - - static PostgreSQLContainer postgreSql9() { - return new PostgreSql9Container(); - } - - static PostgreSQLContainer postgreSql10() { - return new PostgreSql10Container(); - } - - static PostgreSQLContainer postgreSql11() { - return new PostgreSql11Container(); - } - - static MSSQLServerContainer sqlServer2017() { - return new SqlServer2017Container(); - } - - private static class Db211Container extends Db2Container { - - Db211Container() { - super("ibmcom/db2:11.5.0.0a"); - } - - } - - private static class MariaDb5Container extends MariaDBContainer { - - MariaDb5Container() { - super("mariadb:5.5.64"); - } - - @Override - protected void configure() { - super.configure(); - setCommand("mysqld", "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci", - "--innodb_large_prefix", "--innodb_file_format=barracuda", "--innodb-file-per-table"); - } - - } - - private static class MariaDb10Container extends MariaDBContainer { - - MariaDb10Container() { - super("mariadb:10.4.8"); - } - - @Override - protected void configure() { - super.configure(); - setCommand("mysqld", "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"); - } - - } - - private static class MySql5Container extends MySQLContainer { - - MySql5Container() { - super("mysql:5.7.27"); - } - - @Override - protected void configure() { - super.configure(); - setCommand("mysqld", "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"); - } - - @Override - public String getDriverClassName() { - return "com.mysql.cj.jdbc.Driver"; - } - - } - - private static class MySql8Container extends MySQLContainer { - - MySql8Container() { - super("mysql:8.0.17"); - } - - @Override - protected void configure() { - super.configure(); - setCommand("mysqld", "--default-authentication-plugin=mysql_native_password"); - } - - @Override - public String getDriverClassName() { - return "com.mysql.cj.jdbc.Driver"; - } - - } - - private static class OracleXeContainer extends OracleContainer { - - @Override - protected void configure() { - super.configure(); - this.waitStrategy = new LogMessageWaitStrategy().withRegEx(".*DATABASE IS READY TO USE!.*\\s") - .withStartupTimeout(Duration.of(10, ChronoUnit.MINUTES)); - setShmSize(1024L * 1024L * 1024L); - addEnv("ORACLE_PWD", getPassword()); - } - - @Override - protected void waitUntilContainerStarted() { - getWaitStrategy().waitUntilReady(this); - } - - } - - private static class PostgreSql9Container extends PostgreSQLContainer { - - PostgreSql9Container() { - super("postgres:9.6.15"); - } - - } - - private static class PostgreSql10Container extends PostgreSQLContainer { - - PostgreSql10Container() { - super("postgres:10.10"); - } - - } - - private static class PostgreSql11Container extends PostgreSQLContainer { - - PostgreSql11Container() { - super("postgres:11.5"); - } - - } - - private static class SqlServer2017Container extends MSSQLServerContainer { - - SqlServer2017Container() { - super("mcr.microsoft.com/mssql/server:2017-CU16"); - } - + static MSSQLServerContainer sqlServer() { + return new MSSQLServerContainer<>("mcr.microsoft.com/mssql/server:2019-CU8-ubuntu-16.04"); } } diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/Db211JdbcIndexedSessionRepositoryCustomizerITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/Db2JdbcIndexedSessionRepositoryCustomizerITests.java similarity index 88% rename from spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/Db211JdbcIndexedSessionRepositoryCustomizerITests.java rename to spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/Db2JdbcIndexedSessionRepositoryCustomizerITests.java index 227fd4b3..b7611131 100644 --- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/Db211JdbcIndexedSessionRepositoryCustomizerITests.java +++ b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/Db2JdbcIndexedSessionRepositoryCustomizerITests.java @@ -25,15 +25,15 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.context.web.WebAppConfiguration; /** - * Integration tests for {@link JdbcIndexedSessionRepository} using IBM DB2 11.x database - * with {@link Db2JdbcIndexedSessionRepositoryCustomizer}. + * Integration tests for {@link JdbcIndexedSessionRepository} using IBM DB2 database with + * {@link Db2JdbcIndexedSessionRepositoryCustomizer}. * * @author Vedran Pavic */ @ExtendWith(SpringExtension.class) @WebAppConfiguration @ContextConfiguration -class Db211JdbcIndexedSessionRepositoryCustomizerITests extends Db211JdbcIndexedSessionRepositoryITests { +class Db2JdbcIndexedSessionRepositoryCustomizerITests extends Db2JdbcIndexedSessionRepositoryITests { @Configuration static class CustomizerConfig extends Config { diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/Db211JdbcIndexedSessionRepositoryITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/Db2JdbcIndexedSessionRepositoryITests.java similarity index 86% rename from spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/Db211JdbcIndexedSessionRepositoryITests.java rename to spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/Db2JdbcIndexedSessionRepositoryITests.java index 8b5c8571..8a9e77dc 100644 --- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/Db211JdbcIndexedSessionRepositoryITests.java +++ b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/Db2JdbcIndexedSessionRepositoryITests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2019 the original author or authors. + * Copyright 2014-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. @@ -27,21 +27,21 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.context.web.WebAppConfiguration; /** - * Integration tests for {@link JdbcIndexedSessionRepository} using IBM DB2 11.x database. + * Integration tests for {@link JdbcIndexedSessionRepository} using IBM DB2 database. * * @author Vedran Pavic */ @ExtendWith(SpringExtension.class) @WebAppConfiguration @ContextConfiguration -class Db211JdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcIndexedSessionRepositoryITests { +class Db2JdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcIndexedSessionRepositoryITests { @Configuration static class Config extends BaseContainerConfig { @Bean Db2Container databaseContainer() { - Db2Container databaseContainer = DatabaseContainers.db211(); + Db2Container databaseContainer = DatabaseContainers.db2(); databaseContainer.start(); return databaseContainer; } diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDb10JdbcIndexedSessionRepositoryITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDb10JdbcIndexedSessionRepositoryITests.java deleted file mode 100644 index 948194ce..00000000 --- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDb10JdbcIndexedSessionRepositoryITests.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2014-2019 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.session.jdbc; - -import org.junit.jupiter.api.extension.ExtendWith; -import org.testcontainers.containers.MariaDBContainer; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit.jupiter.SpringExtension; -import org.springframework.test.context.web.WebAppConfiguration; - -/** - * Integration tests for {@link JdbcIndexedSessionRepository} using MariaDB 10.x database. - * - * @author Vedran Pavic - */ -@ExtendWith(SpringExtension.class) -@WebAppConfiguration -@ContextConfiguration -class MariaDb10JdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcIndexedSessionRepositoryITests { - - @Configuration - static class Config extends BaseContainerConfig { - - @Bean - MariaDBContainer databaseContainer() { - MariaDBContainer databaseContainer = DatabaseContainers.mariaDb10(); - databaseContainer.start(); - return databaseContainer; - } - - @Bean - ResourceDatabasePopulator databasePopulator() { - return DatabasePopulators.mySql(); - } - - } - -} diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySql8JdbcIndexedSessionRepositoryCustomizerITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDbJdbcIndexedSessionRepositoryCustomizerITests.java similarity index 88% rename from spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySql8JdbcIndexedSessionRepositoryCustomizerITests.java rename to spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDbJdbcIndexedSessionRepositoryCustomizerITests.java index 09cf6f2d..5e66ba4a 100644 --- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySql8JdbcIndexedSessionRepositoryCustomizerITests.java +++ b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDbJdbcIndexedSessionRepositoryCustomizerITests.java @@ -25,15 +25,15 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.context.web.WebAppConfiguration; /** - * Integration tests for {@link JdbcIndexedSessionRepository} using MySQL 8.x database - * with {@link MySqlJdbcIndexedSessionRepositoryCustomizer}. + * Integration tests for {@link JdbcIndexedSessionRepository} using MariaDB database with + * {@link MySqlJdbcIndexedSessionRepositoryCustomizer}. * * @author Vedran Pavic */ @ExtendWith(SpringExtension.class) @WebAppConfiguration @ContextConfiguration -class MySql8JdbcIndexedSessionRepositoryCustomizerITests extends MySql8JdbcIndexedSessionRepositoryITests { +class MariaDbJdbcIndexedSessionRepositoryCustomizerITests extends MariaDbJdbcIndexedSessionRepositoryITests { @Configuration static class CustomizerConfig extends Config { diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDb5JdbcIndexedSessionRepositoryITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDbJdbcIndexedSessionRepositoryITests.java similarity index 83% rename from spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDb5JdbcIndexedSessionRepositoryITests.java rename to spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDbJdbcIndexedSessionRepositoryITests.java index 688dcecd..81d874e8 100644 --- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDb5JdbcIndexedSessionRepositoryITests.java +++ b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDbJdbcIndexedSessionRepositoryITests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2019 the original author or authors. + * Copyright 2014-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. @@ -27,21 +27,21 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.context.web.WebAppConfiguration; /** - * Integration tests for {@link JdbcIndexedSessionRepository} using MariaDB 5.x database. + * Integration tests for {@link JdbcIndexedSessionRepository} using MariaDB database. * * @author Vedran Pavic */ @ExtendWith(SpringExtension.class) @WebAppConfiguration @ContextConfiguration -class MariaDb5JdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcIndexedSessionRepositoryITests { +class MariaDbJdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcIndexedSessionRepositoryITests { @Configuration static class Config extends BaseContainerConfig { @Bean - MariaDBContainer databaseContainer() { - MariaDBContainer databaseContainer = DatabaseContainers.mariaDb5(); + MariaDBContainer databaseContainer() { + MariaDBContainer databaseContainer = DatabaseContainers.mariaDb(); databaseContainer.start(); return databaseContainer; } diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySql8JdbcIndexedSessionRepositoryITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySql8JdbcIndexedSessionRepositoryITests.java deleted file mode 100644 index 84841822..00000000 --- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySql8JdbcIndexedSessionRepositoryITests.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2014-2019 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.session.jdbc; - -import org.junit.jupiter.api.extension.ExtendWith; -import org.testcontainers.containers.MySQLContainer; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit.jupiter.SpringExtension; -import org.springframework.test.context.web.WebAppConfiguration; - -/** - * Integration tests for {@link JdbcIndexedSessionRepository} using MySQL 8.x database. - * - * @author Vedran Pavic - */ -@ExtendWith(SpringExtension.class) -@WebAppConfiguration -@ContextConfiguration -class MySql8JdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcIndexedSessionRepositoryITests { - - @Configuration - static class Config extends BaseContainerConfig { - - @Bean - MySQLContainer databaseContainer() { - MySQLContainer databaseContainer = DatabaseContainers.mySql8(); - databaseContainer.start(); - return databaseContainer; - } - - @Bean - ResourceDatabasePopulator databasePopulator() { - return DatabasePopulators.mySql(); - } - - } - -} diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDb10JdbcIndexedSessionRepositoryCustomizerITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySqlJdbcIndexedSessionRepositoryCustomizerITests.java similarity index 87% rename from spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDb10JdbcIndexedSessionRepositoryCustomizerITests.java rename to spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySqlJdbcIndexedSessionRepositoryCustomizerITests.java index c730e262..8013a8bd 100644 --- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MariaDb10JdbcIndexedSessionRepositoryCustomizerITests.java +++ b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySqlJdbcIndexedSessionRepositoryCustomizerITests.java @@ -25,15 +25,15 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.context.web.WebAppConfiguration; /** - * Integration tests for {@link JdbcIndexedSessionRepository} using MariaDB 10.x database - * with {@link MySqlJdbcIndexedSessionRepositoryCustomizer}. + * Integration tests for {@link JdbcIndexedSessionRepository} using MySQL database with + * {@link MySqlJdbcIndexedSessionRepositoryCustomizer}. * * @author Vedran Pavic */ @ExtendWith(SpringExtension.class) @WebAppConfiguration @ContextConfiguration -class MariaDb10JdbcIndexedSessionRepositoryCustomizerITests extends MariaDb10JdbcIndexedSessionRepositoryITests { +class MySqlJdbcIndexedSessionRepositoryCustomizerITests extends MySqlJdbcIndexedSessionRepositoryITests { @Configuration static class CustomizerConfig extends Config { diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySql5JdbcIndexedSessionRepositoryITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySqlJdbcIndexedSessionRepositoryITests.java similarity index 83% rename from spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySql5JdbcIndexedSessionRepositoryITests.java rename to spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySqlJdbcIndexedSessionRepositoryITests.java index 6c573613..6a4f79ed 100644 --- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySql5JdbcIndexedSessionRepositoryITests.java +++ b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/MySqlJdbcIndexedSessionRepositoryITests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2019 the original author or authors. + * Copyright 2014-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. @@ -27,21 +27,21 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.context.web.WebAppConfiguration; /** - * Integration tests for {@link JdbcIndexedSessionRepository} using MySQL 5.x database. + * Integration tests for {@link JdbcIndexedSessionRepository} using MySQL database. * * @author Vedran Pavic */ @ExtendWith(SpringExtension.class) @WebAppConfiguration @ContextConfiguration -class MySql5JdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcIndexedSessionRepositoryITests { +class MySqlJdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcIndexedSessionRepositoryITests { @Configuration static class Config extends BaseContainerConfig { @Bean - MySQLContainer databaseContainer() { - MySQLContainer databaseContainer = DatabaseContainers.mySql5(); + MySQLContainer databaseContainer() { + MySQLContainer 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 0ad4299f..7abe83a9 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-2019 the original author or authors. + * Copyright 2014-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. @@ -54,7 +54,7 @@ class OracleJdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcInde @Bean OracleContainer databaseContainer() { - OracleContainer databaseContainer = DatabaseContainers.oracleXe(); + OracleContainer databaseContainer = DatabaseContainers.oracle(); databaseContainer.start(); return databaseContainer; } diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSql10JdbcIndexedSessionRepositoryITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSql10JdbcIndexedSessionRepositoryITests.java deleted file mode 100644 index 33dbd093..00000000 --- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSql10JdbcIndexedSessionRepositoryITests.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2014-2019 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.session.jdbc; - -import org.junit.jupiter.api.extension.ExtendWith; -import org.testcontainers.containers.PostgreSQLContainer; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit.jupiter.SpringExtension; -import org.springframework.test.context.web.WebAppConfiguration; - -/** - * Integration tests for {@link JdbcIndexedSessionRepository} using PostgreSQL 10.x - * database. - * - * @author Vedran Pavic - */ -@ExtendWith(SpringExtension.class) -@WebAppConfiguration -@ContextConfiguration -class PostgreSql10JdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcIndexedSessionRepositoryITests { - - @Configuration - static class Config extends BaseContainerConfig { - - @Bean - PostgreSQLContainer databaseContainer() { - PostgreSQLContainer databaseContainer = DatabaseContainers.postgreSql10(); - databaseContainer.start(); - return databaseContainer; - } - - @Bean - ResourceDatabasePopulator databasePopulator() { - return DatabasePopulators.postgreSql(); - } - - } - -} diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSql11JdbcIndexedSessionRepositoryITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSql11JdbcIndexedSessionRepositoryITests.java deleted file mode 100644 index a51f700e..00000000 --- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSql11JdbcIndexedSessionRepositoryITests.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2014-2019 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.session.jdbc; - -import org.junit.jupiter.api.extension.ExtendWith; -import org.testcontainers.containers.PostgreSQLContainer; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit.jupiter.SpringExtension; -import org.springframework.test.context.web.WebAppConfiguration; - -/** - * Integration tests for {@link JdbcIndexedSessionRepository} using PostgreSQL 11.x - * database. - * - * @author Vedran Pavic - */ -@ExtendWith(SpringExtension.class) -@WebAppConfiguration -@ContextConfiguration -class PostgreSql11JdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcIndexedSessionRepositoryITests { - - @Configuration - static class Config extends BaseContainerConfig { - - @Bean - PostgreSQLContainer databaseContainer() { - PostgreSQLContainer databaseContainer = DatabaseContainers.postgreSql11(); - databaseContainer.start(); - return databaseContainer; - } - - @Bean - ResourceDatabasePopulator databasePopulator() { - return DatabasePopulators.postgreSql(); - } - - } - -} diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSql11JdbcIndexedSessionRepositoryCustomizerITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSqlJdbcIndexedSessionRepositoryCustomizerITests.java similarity index 87% rename from spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSql11JdbcIndexedSessionRepositoryCustomizerITests.java rename to spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSqlJdbcIndexedSessionRepositoryCustomizerITests.java index c1296e13..68504c01 100644 --- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSql11JdbcIndexedSessionRepositoryCustomizerITests.java +++ b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSqlJdbcIndexedSessionRepositoryCustomizerITests.java @@ -25,15 +25,15 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.context.web.WebAppConfiguration; /** - * Integration tests for {@link JdbcIndexedSessionRepository} using PostgreSQL 11.x - * database with {@link PostgreSqlJdbcIndexedSessionRepositoryCustomizer}. + * Integration tests for {@link JdbcIndexedSessionRepository} using PostgreSQL database + * with {@link PostgreSqlJdbcIndexedSessionRepositoryCustomizer}. * * @author Vedran Pavic */ @ExtendWith(SpringExtension.class) @WebAppConfiguration @ContextConfiguration -class PostgreSql11JdbcIndexedSessionRepositoryCustomizerITests extends PostgreSql11JdbcIndexedSessionRepositoryITests { +class PostgreSqlJdbcIndexedSessionRepositoryCustomizerITests extends PostgreSqlJdbcIndexedSessionRepositoryITests { @Configuration static class CustomizerConfig extends Config { diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSql9JdbcIndexedSessionRepositoryITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSqlJdbcIndexedSessionRepositoryITests.java similarity index 82% rename from spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSql9JdbcIndexedSessionRepositoryITests.java rename to spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSqlJdbcIndexedSessionRepositoryITests.java index 480efcfb..df40af84 100644 --- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSql9JdbcIndexedSessionRepositoryITests.java +++ b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/PostgreSqlJdbcIndexedSessionRepositoryITests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2019 the original author or authors. + * Copyright 2014-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. @@ -27,22 +27,21 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.context.web.WebAppConfiguration; /** - * Integration tests for {@link JdbcIndexedSessionRepository} using PostgreSQL 9.x - * database. + * Integration tests for {@link JdbcIndexedSessionRepository} using PostgreSQL database. * * @author Vedran Pavic */ @ExtendWith(SpringExtension.class) @WebAppConfiguration @ContextConfiguration -class PostgreSql9JdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcIndexedSessionRepositoryITests { +class PostgreSqlJdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcIndexedSessionRepositoryITests { @Configuration static class Config extends BaseContainerConfig { @Bean - PostgreSQLContainer databaseContainer() { - PostgreSQLContainer databaseContainer = DatabaseContainers.postgreSql9(); + PostgreSQLContainer databaseContainer() { + PostgreSQLContainer 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 752196fc..e8cdf23e 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-2019 the original author or authors. + * Copyright 2014-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. @@ -41,8 +41,8 @@ class SqlServerJdbcIndexedSessionRepositoryITests extends AbstractContainerJdbcI static class Config extends BaseContainerConfig { @Bean - MSSQLServerContainer databaseContainer() { - MSSQLServerContainer databaseContainer = DatabaseContainers.sqlServer2017(); + MSSQLServerContainer databaseContainer() { + MSSQLServerContainer 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 4b8ae90e..d7c7055d 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.0.0a -mcr.microsoft.com/mssql/server:2017-CU16 +ibmcom/db2:11.5.4.0 +mcr.microsoft.com/mssql/server:2019-CU8-ubuntu-16.04