diff --git a/pom.xml b/pom.xml index 32ea3ff80..d4a06d3ae 100644 --- a/pom.xml +++ b/pom.xml @@ -24,11 +24,17 @@ 2.1.0.BUILD-SNAPSHOT spring.data.jdbc - reuseReports - 1.8.0.10 - + 3.6.2 + 0.1.4 + 2.2.8 + 3.4.4 + 1.3.1 + 1.5.1 + 5.1.41 + 42.0.0 + @@ -137,63 +143,63 @@ org.mybatis mybatis-spring - 1.3.1 + ${mybatis-spring.version} true org.mybatis mybatis - 3.4.4 + ${mybatis.version} true org.hsqldb hsqldb - 2.2.8 + ${hsqldb.version} test org.assertj assertj-core - 3.6.2 + ${assertj-core.version} test mysql mysql-connector-java - 5.1.41 + ${mysql-connector-java.version} test org.postgresql postgresql - 42.0.0 + ${postgresql.version} test de.schauderhaft.degraph degraph-check - 0.1.4 + ${degraph-check.version} test org.testcontainers mysql - 1.5.1 + ${mysql.version} test org.testcontainers postgresql - 1.5.1 + ${mysql.version} test diff --git a/src/test/java/org/springframework/data/jdbc/testing/MySqlDataSourceConfiguration.java b/src/test/java/org/springframework/data/jdbc/testing/MySqlDataSourceConfiguration.java index 6c74213a5..f82203fbe 100644 --- a/src/test/java/org/springframework/data/jdbc/testing/MySqlDataSourceConfiguration.java +++ b/src/test/java/org/springframework/data/jdbc/testing/MySqlDataSourceConfiguration.java @@ -31,6 +31,8 @@ import com.mysql.jdbc.jdbc2.optional.MysqlDataSource; /** * {@link DataSource} setup for MySQL. * + * Starts a docker container with a MySql database and sets up a database name "test" in it. + * * @author Jens Schauder * @author Oliver Gierke * @author Sedat Gokcen @@ -39,10 +41,10 @@ import com.mysql.jdbc.jdbc2.optional.MysqlDataSource; @Profile("mysql") class MySqlDataSourceConfiguration extends DataSourceConfiguration { - private static final MySQLContainer MYSQL_CONTAINER = new MySQLContainer(); + private static final MySQLContainer MYSQL_CONTAINER = new MySQLContainer().withConfigurationOverride(""); static { - MYSQL_CONTAINER.withConfigurationOverride("mysql_cnf_override").withDatabaseName("test").start(); + MYSQL_CONTAINER.start(); } /* @@ -52,7 +54,10 @@ class MySqlDataSourceConfiguration extends DataSourceConfiguration { @Override protected DataSource createDataSource() { - MysqlDataSource dataSource = getCommonDataSource(); + MysqlDataSource dataSource = new MysqlDataSource(); + dataSource.setUrl(MYSQL_CONTAINER.getJdbcUrl()); + dataSource.setUser(MYSQL_CONTAINER.getUsername()); + dataSource.setPassword(MYSQL_CONTAINER.getPassword()); dataSource.setDatabaseName(MYSQL_CONTAINER.getDatabaseName()); return dataSource; @@ -60,18 +65,6 @@ class MySqlDataSourceConfiguration extends DataSourceConfiguration { @PostConstruct public void initDatabase() throws SQLException, ScriptException { - - MysqlDataSource dataSource = getCommonDataSource(); - ScriptUtils.executeSqlScript(dataSource.getConnection(), null, "DROP DATABASE test;CREATE DATABASE test;"); - } - - private MysqlDataSource getCommonDataSource() { - - MysqlDataSource dataSource = new MysqlDataSource(); - dataSource.setUrl(MYSQL_CONTAINER.getJdbcUrl()); - dataSource.setUser(MYSQL_CONTAINER.getUsername()); - dataSource.setPassword(MYSQL_CONTAINER.getPassword()); - - return dataSource; + ScriptUtils.executeSqlScript(createDataSource().getConnection(), null, "DROP DATABASE test;CREATE DATABASE test;"); } } diff --git a/src/test/java/org/springframework/data/jdbc/testing/PostgresDataSourceConfiguration.java b/src/test/java/org/springframework/data/jdbc/testing/PostgresDataSourceConfiguration.java index 803033ab0..9adfdca1b 100644 --- a/src/test/java/org/springframework/data/jdbc/testing/PostgresDataSourceConfiguration.java +++ b/src/test/java/org/springframework/data/jdbc/testing/PostgresDataSourceConfiguration.java @@ -24,7 +24,9 @@ import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; import org.testcontainers.containers.PostgreSQLContainer; /** - * {@link DataSource} setup for PostgreSQL + * {@link DataSource} setup for PostgreSQL. + * + * Starts a docker container with a Postgres database. * * @author Jens Schauder * @author Oliver Gierke @@ -47,12 +49,12 @@ public class PostgresDataSourceConfiguration extends DataSourceConfiguration { @Override protected DataSource createDataSource() { - PGSimpleDataSource ds = new PGSimpleDataSource(); - ds.setUrl(POSTGRESQL_CONTAINER.getJdbcUrl()); - ds.setUser(POSTGRESQL_CONTAINER.getUsername()); - ds.setPassword(POSTGRESQL_CONTAINER.getPassword()); + PGSimpleDataSource dataSource = new PGSimpleDataSource(); + dataSource.setUrl(POSTGRESQL_CONTAINER.getJdbcUrl()); + dataSource.setUser(POSTGRESQL_CONTAINER.getUsername()); + dataSource.setPassword(POSTGRESQL_CONTAINER.getPassword()); - return ds; + return dataSource; } /* diff --git a/src/test/resources/mysql.cnf b/src/test/resources/mysql.cnf new file mode 100644 index 000000000..0eea2cf59 --- /dev/null +++ b/src/test/resources/mysql.cnf @@ -0,0 +1,4 @@ +[mysqld] + +# the only change we make, other params with the comments all together are the default ones. +lower_case_table_names = 1 \ No newline at end of file diff --git a/src/test/resources/mysql_cnf_override/mysql.cnf b/src/test/resources/mysql_cnf_override/mysql.cnf deleted file mode 100644 index 44b3039c4..000000000 --- a/src/test/resources/mysql_cnf_override/mysql.cnf +++ /dev/null @@ -1,53 +0,0 @@ -[mysqld] - -# the only change we make, other params with the comments all together are the default ones. -lower_case_table_names = 1 - -user = mysql -datadir = /var/lib/mysql -port = 3306 -#socket = /tmp/mysql.sock -skip-external-locking -key_buffer_size = 16K -max_allowed_packet = 1M -table_open_cache = 4 -sort_buffer_size = 64K -read_buffer_size = 256K -read_rnd_buffer_size = 256K -net_buffer_length = 2K -skip-host-cache -skip-name-resolve - -# Don't listen on a TCP/IP port at all. This can be a security enhancement, -# if all processes that need to connect to mysqld run on the same host. -# All interaction with mysqld must be made via Unix sockets or named pipes. -# Note that using this option without enabling named pipes on Windows -# (using the "enable-named-pipe" option) will render mysqld useless! -# -#skip-networking -#server-id = 1 - -# Uncomment the following if you want to log updates -#log-bin=mysql-bin - -# binary logging format - mixed recommended -#binlog_format=mixed - -# Causes updates to non-transactional engines using statement format to be -# written directly to binary log. Before using this option make sure that -# there are no dependencies between transactional and non-transactional -# tables such as in the statement INSERT INTO t_myisam SELECT * FROM -# t_innodb; otherwise, slaves may diverge from the master. -#binlog_direct_non_transactional_updates=TRUE - -# Uncomment the following if you are using InnoDB tables -innodb_data_file_path = ibdata1:10M:autoextend -# You can set .._buffer_pool_size up to 50 - 80 % -# of RAM but beware of setting memory usage too high -innodb_buffer_pool_size = 16M -#innodb_additional_mem_pool_size = 2M -# Set .._log_file_size to 25 % of buffer pool size -innodb_log_file_size = 5M -innodb_log_buffer_size = 8M -innodb_flush_log_at_trx_commit = 1 -innodb_lock_wait_timeout = 50 \ No newline at end of file