Skip to content

Commit 8af7553

Browse files
committed
DATAJDBC-168 - Polishing.
Simplified initialization of MySql database. Extracted dependency versions into properties. Added JavaDoc.
1 parent 0fe791f commit 8af7553

File tree

5 files changed

+39
-87
lines changed

5 files changed

+39
-87
lines changed

pom.xml

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,17 @@
2424

2525
<springdata.commons>2.1.0.BUILD-SNAPSHOT</springdata.commons>
2626
<java-module-name>spring.data.jdbc</java-module-name>
27-
2827
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
29-
<hsqldb1>1.8.0.10</hsqldb1>
3028

31-
</properties>
29+
<assertj-core.version>3.6.2</assertj-core.version>
30+
<degraph-check.version>0.1.4</degraph-check.version>
31+
<hsqldb.version>2.2.8</hsqldb.version>
32+
<mybatis.version>3.4.4</mybatis.version>
33+
<mybatis-spring.version>1.3.1</mybatis-spring.version>
34+
<mysql.version>1.5.1</mysql.version>
35+
<mysql-connector-java.version>5.1.41</mysql-connector-java.version>
36+
<postgresql.version>42.0.0</postgresql.version>
37+
</properties>
3238

3339
<profiles>
3440
<profile>
@@ -137,63 +143,63 @@
137143
<dependency>
138144
<groupId>org.mybatis</groupId>
139145
<artifactId>mybatis-spring</artifactId>
140-
<version>1.3.1</version>
146+
<version>${mybatis-spring.version}</version>
141147
<optional>true</optional>
142148
</dependency>
143149

144150
<dependency>
145151
<groupId>org.mybatis</groupId>
146152
<artifactId>mybatis</artifactId>
147-
<version>3.4.4</version>
153+
<version>${mybatis.version}</version>
148154
<optional>true</optional>
149155
</dependency>
150156

151157
<dependency>
152158
<groupId>org.hsqldb</groupId>
153159
<artifactId>hsqldb</artifactId>
154-
<version>2.2.8</version>
160+
<version>${hsqldb.version}</version>
155161
<scope>test</scope>
156162
</dependency>
157163

158164
<dependency>
159165
<groupId>org.assertj</groupId>
160166
<artifactId>assertj-core</artifactId>
161-
<version>3.6.2</version>
167+
<version>${assertj-core.version}</version>
162168
<scope>test</scope>
163169
</dependency>
164170

165171
<dependency>
166172
<groupId>mysql</groupId>
167173
<artifactId>mysql-connector-java</artifactId>
168-
<version>5.1.41</version>
174+
<version>${mysql-connector-java.version}</version>
169175
<scope>test</scope>
170176
</dependency>
171177

172178
<dependency>
173179
<groupId>org.postgresql</groupId>
174180
<artifactId>postgresql</artifactId>
175-
<version>42.0.0</version>
181+
<version>${postgresql.version}</version>
176182
<scope>test</scope>
177183
</dependency>
178184

179185
<dependency>
180186
<groupId>de.schauderhaft.degraph</groupId>
181187
<artifactId>degraph-check</artifactId>
182-
<version>0.1.4</version>
188+
<version>${degraph-check.version}</version>
183189
<scope>test</scope>
184190
</dependency>
185191

186192
<dependency>
187193
<groupId>org.testcontainers</groupId>
188194
<artifactId>mysql</artifactId>
189-
<version>1.5.1</version>
195+
<version>${mysql.version}</version>
190196
<scope>test</scope>
191197
</dependency>
192198

193199
<dependency>
194200
<groupId>org.testcontainers</groupId>
195201
<artifactId>postgresql</artifactId>
196-
<version>1.5.1</version>
202+
<version>${mysql.version}</version>
197203
<scope>test</scope>
198204
</dependency>
199205

src/test/java/org/springframework/data/jdbc/testing/MySqlDataSourceConfiguration.java

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
/**
3232
* {@link DataSource} setup for MySQL.
3333
*
34+
* Starts a docker container with a MySql database and sets up a database name "test" in it.
35+
*
3436
* @author Jens Schauder
3537
* @author Oliver Gierke
3638
* @author Sedat Gokcen
@@ -39,10 +41,10 @@
3941
@Profile("mysql")
4042
class MySqlDataSourceConfiguration extends DataSourceConfiguration {
4143

42-
private static final MySQLContainer MYSQL_CONTAINER = new MySQLContainer();
44+
private static final MySQLContainer MYSQL_CONTAINER = new MySQLContainer().withConfigurationOverride("");
4345

4446
static {
45-
MYSQL_CONTAINER.withConfigurationOverride("mysql_cnf_override").withDatabaseName("test").start();
47+
MYSQL_CONTAINER.start();
4648
}
4749

4850
/*
@@ -52,26 +54,17 @@ class MySqlDataSourceConfiguration extends DataSourceConfiguration {
5254
@Override
5355
protected DataSource createDataSource() {
5456

55-
MysqlDataSource dataSource = getCommonDataSource();
57+
MysqlDataSource dataSource = new MysqlDataSource();
58+
dataSource.setUrl(MYSQL_CONTAINER.getJdbcUrl());
59+
dataSource.setUser(MYSQL_CONTAINER.getUsername());
60+
dataSource.setPassword(MYSQL_CONTAINER.getPassword());
5661
dataSource.setDatabaseName(MYSQL_CONTAINER.getDatabaseName());
5762

5863
return dataSource;
5964
}
6065

6166
@PostConstruct
6267
public void initDatabase() throws SQLException, ScriptException {
63-
64-
MysqlDataSource dataSource = getCommonDataSource();
65-
ScriptUtils.executeSqlScript(dataSource.getConnection(), null, "DROP DATABASE test;CREATE DATABASE test;");
66-
}
67-
68-
private MysqlDataSource getCommonDataSource() {
69-
70-
MysqlDataSource dataSource = new MysqlDataSource();
71-
dataSource.setUrl(MYSQL_CONTAINER.getJdbcUrl());
72-
dataSource.setUser(MYSQL_CONTAINER.getUsername());
73-
dataSource.setPassword(MYSQL_CONTAINER.getPassword());
74-
75-
return dataSource;
68+
ScriptUtils.executeSqlScript(createDataSource().getConnection(), null, "DROP DATABASE test;CREATE DATABASE test;");
7669
}
7770
}

src/test/java/org/springframework/data/jdbc/testing/PostgresDataSourceConfiguration.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@
2424
import org.testcontainers.containers.PostgreSQLContainer;
2525

2626
/**
27-
* {@link DataSource} setup for PostgreSQL
27+
* {@link DataSource} setup for PostgreSQL.
28+
*
29+
* Starts a docker container with a Postgres database.
2830
*
2931
* @author Jens Schauder
3032
* @author Oliver Gierke
@@ -47,12 +49,12 @@ public class PostgresDataSourceConfiguration extends DataSourceConfiguration {
4749
@Override
4850
protected DataSource createDataSource() {
4951

50-
PGSimpleDataSource ds = new PGSimpleDataSource();
51-
ds.setUrl(POSTGRESQL_CONTAINER.getJdbcUrl());
52-
ds.setUser(POSTGRESQL_CONTAINER.getUsername());
53-
ds.setPassword(POSTGRESQL_CONTAINER.getPassword());
52+
PGSimpleDataSource dataSource = new PGSimpleDataSource();
53+
dataSource.setUrl(POSTGRESQL_CONTAINER.getJdbcUrl());
54+
dataSource.setUser(POSTGRESQL_CONTAINER.getUsername());
55+
dataSource.setPassword(POSTGRESQL_CONTAINER.getPassword());
5456

55-
return ds;
57+
return dataSource;
5658
}
5759

5860
/*

src/test/resources/mysql.cnf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[mysqld]
2+
3+
# the only change we make, other params with the comments all together are the default ones.
4+
lower_case_table_names = 1

src/test/resources/mysql_cnf_override/mysql.cnf

Lines changed: 0 additions & 53 deletions
This file was deleted.

0 commit comments

Comments
 (0)