Skip to content

Commit a2dcb0a

Browse files
committed
chore(deps): Update dependencies
1 parent 49e474f commit a2dcb0a

32 files changed

+387
-283
lines changed

.github/dependabot.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "github-actions"
4+
directory: "/"
5+
schedule:
6+
interval: "weekly"

.github/workflows/release.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
runs-on: ubuntu-latest
99
steps:
1010
- name: Checkout code
11-
uses: actions/checkout@v3
11+
uses: actions/checkout@v4
1212
with:
1313
ref: master
1414
fetch-depth: 0
@@ -17,7 +17,7 @@ jobs:
1717
git config user.name "Zonky Bot"
1818
git config user.email "[email protected]"
1919
- name: Set up JDK
20-
uses: actions/setup-java@v3
20+
uses: actions/setup-java@v4
2121
with:
2222
distribution: 'zulu'
2323
java-version: 8
@@ -48,4 +48,4 @@ jobs:
4848
-Prelease.useAutomaticVersion=true \
4949
-Prelease.releaseVersion=$RELEASE_VERSION \
5050
-Possrh.username=$MAVEN_USER \
51-
-Possrh.password=$MAVEN_PASS
51+
-Possrh.password=$MAVEN_PASS

.github/workflows/test.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ jobs:
77
strategy:
88
fail-fast: false
99
matrix:
10-
java: [8, 11, 17]
10+
java: [8, 11, 17, 21]
1111
steps:
1212
- name: Checkout project
13-
uses: actions/checkout@v3
13+
uses: actions/checkout@v4
1414
- name: Set up JDK
15-
uses: actions/setup-java@v3
15+
uses: actions/setup-java@v4
1616
with:
1717
distribution: 'zulu'
1818
java-version: ${{ matrix.java }}

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -526,19 +526,19 @@ The provider configuration can be managed via properties in the
526526
and `zonky.test.database.mssql.docker` groups as shown below.
527527

528528
```properties
529-
zonky.test.database.postgres.docker.image=postgres:11-alpine # Docker image containing PostgreSQL database.
529+
zonky.test.database.postgres.docker.image=postgres:16-alpine # Docker image containing PostgreSQL database.
530530
zonky.test.database.postgres.docker.tmpfs.enabled=false # Whether to mount postgres data directory as tmpfs.
531531
zonky.test.database.postgres.docker.tmpfs.options=rw,noexec,nosuid # Mount options used to configure the tmpfs filesystem.
532532

533-
zonky.test.database.mysql.docker.image=mysql:5.7 # Docker image containing MySQL database.
533+
zonky.test.database.mysql.docker.image=mysql:9 # Docker image containing MySQL database (arm64 requires 8+).
534534
zonky.test.database.mysql.docker.tmpfs.enabled=false # Whether to mount database data directory as tmpfs.
535535
zonky.test.database.mysql.docker.tmpfs.options=rw,noexec,nosuid # Mount options used to configure the tmpfs filesystem.
536536

537-
zonky.test.database.mariadb.docker.image=mariadb:10.4 # Docker image containing MariaDB database.
537+
zonky.test.database.mariadb.docker.image=mariadb:11.5 # Docker image containing MariaDB database.
538538
zonky.test.database.mariadb.docker.tmpfs.enabled=false # Whether to mount database data directory as tmpfs.
539539
zonky.test.database.mariadb.docker.tmpfs.options=rw,noexec,nosuid # Mount options used to configure the tmpfs filesystem.
540540

541-
zonky.test.database.mssql.docker.image=mcr.microsoft.com/mssql/server:2017-latest # Docker image containing MSSQL database.
541+
zonky.test.database.mssql.docker.image=mcr.microsoft.com/mssql/server:2022-latest # Docker image containing MSSQL database.
542542
```
543543

544544
Or, the provider configuration can also be customized with a bean implementing `PostgreSQLContainerCustomizer` interface.
@@ -722,7 +722,7 @@ public class YandexProviderIntegrationTest {
722722
The provider configuration can be managed via properties in the `zonky.test.database.postgres.yandex-provider` group.
723723

724724
```properties
725-
zonky.test.database.postgres.yandex-provider.postgres-version=11.10-1 # Version of EnterpriseDB PostgreSQL binaries (https://www.enterprisedb.com/download-postgresql-binaries).
725+
zonky.test.database.postgres.yandex-provider.postgres-version=12.18-1 # Version of EnterpriseDB PostgreSQL binaries (https://www.enterprisedb.com/download-postgresql-binaries).
726726
```
727727

728728
## Advanced Topics

build.gradle

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import java.util.regex.Matcher
22

33
plugins {
4-
id 'net.researchgate.release' version '2.8.1'
5-
id 'com.github.johnrengelman.shadow' version '7.1.2'
4+
id 'net.researchgate.release' version '3.0.2'
5+
id 'com.github.johnrengelman.shadow' version '8.1.1'
66
}
77

88
ext {
@@ -69,8 +69,8 @@ ext {
6969
[name: '8.2', 'mysql': '8.2', 'mysql-driver': 'default']
7070
]],
7171
[name: 'mariadb', versions: [
72-
[name: '10.2', 'mariadb': '10.2', 'mariadb-driver': '2.7.7'],
73-
[name: '11.3', 'mariadb': '11.3', 'mariadb-driver': 'default']
72+
[name: '10.6', 'mariadb': '10.6', 'mariadb-driver': '2.7.12'],
73+
[name: '11.5', 'mariadb': '11.5', 'mariadb-driver': 'default']
7474
]],
7575
[name: 'h2', versions: [
7676
[name: '1.3.176', 'h2': '1.3.176'],
@@ -91,29 +91,33 @@ ext {
9191
]
9292
}
9393

94-
if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_11)) {
95-
testSuites.find { it.name == 'hsqldb' }.versions << [name: '2.7.1', 'hsqldb': '2.7.1']
96-
}
9794
if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_1_9)) {
9895
testSuites.find { it.name == 'derby' }.versions << [name: '10.15.2.0', 'derby': '10.15.2.0']
9996
}
97+
if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_11)) {
98+
testSuites.find { it.name == 'hsqldb' }.versions << [name: '2.7.3', 'hsqldb': '2.7.3']
99+
testSuites.find { it.name == 'h2' }.versions << [name: '2.2.232', 'h2': '2.3.232']
100+
}
100101
if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_17)) {
101102
testSuites.find { it.name == 'derby' }.versions << [name: '10.16.1.1', 'derby': '10.16.1.1']
102103

103104
testSuites.find { it.name == 'flyway' }.versions += [
104105
[name: '9.9.0', flyway: '9.9.0', 'flyway-test': '9.5.0', spring: '6.0.14', 'spring-boot': '3.0.13', 'zonky-postgres': 'default'],
105-
[name: '9.16.3', flyway: '9.16.3', 'flyway-test': '9.5.0', spring: '6.0.18', 'spring-boot': '3.1.10', 'zonky-postgres': 'default'],
106-
[name: '9.22.3', flyway: '9.22.3', 'flyway-test': '9.5.0', spring: '6.1.5', 'spring-boot': '3.2.4', 'zonky-postgres': 'default'],
107-
[name: '10.0.1', flyway: '10.0.1', 'flyway-test': '10.0.0', spring: '6.1.5', 'spring-boot': '3.2.4', 'zonky-postgres': 'default'],
108-
[name: '10.11.0', flyway: '10.5.0', 'flyway-test': '10.0.0', spring: '6.1.5', 'spring-boot': '3.2.4', 'zonky-postgres': 'default']
106+
[name: '9.16.3', flyway: '9.16.3', 'flyway-test': '9.5.0', spring: '6.0.21', 'spring-boot': '3.1.12', 'zonky-postgres': 'default'],
107+
[name: '9.22.3', flyway: '9.22.3', 'flyway-test': '9.5.0', spring: '6.1.11', 'spring-boot': '3.2.8', 'zonky-postgres': 'default'],
108+
[name: '10.0.1', flyway: '10.0.1', 'flyway-test': '10.0.0', spring: '6.1.11', 'spring-boot': '3.2.8', 'zonky-postgres': 'default'],
109+
[name: '10.17.1', flyway: '10.17.1', 'flyway-test': '10.0.0', spring: '6.1.11', 'spring-boot': '3.2.8', 'zonky-postgres': 'default']
109110
]
110111

111112
testSuites.find { it.name == 'liquibase' }.versions += [
112113
[name: '4.17.2', liquibase: '4.17.2', spring: '6.0.14', 'spring-boot': '3.0.13'],
113-
[name: '4.20.0', liquibase: '4.20.0', spring: '6.0.18', 'spring-boot': '3.1.10'],
114-
[name: '4.24.0', liquibase: '4.24.0', spring: '6.1.5', 'spring-boot': '3.2.4']
114+
[name: '4.20.0', liquibase: '4.20.0', spring: '6.0.21', 'spring-boot': '3.1.12'],
115+
[name: '4.24.0', liquibase: '4.24.0', spring: '6.1.11', 'spring-boot': '3.2.8']
115116
]
116117
}
118+
if (JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_21)) {
119+
testSuites.find { it.name == 'derby' }.versions << [name: '10.17.1.0', 'derby': '10.17.1.0']
120+
}
117121

118122
allprojects {
119123
group 'io.zonky.test'
@@ -233,7 +237,7 @@ subprojects {
233237
/(\d+)\.\d+(([^\d\.].*)?$)/: { Matcher m, Project p -> m.replaceAll("${(m[0][1] as int) + 1}.0${m[0][2]}") }
234238
]
235239
git {
236-
requireBranch = '^(master|\\d+\\.\\d+\\.x)$'
240+
requireBranch.set('^(master|\\d+\\.\\d+\\.x)$')
237241
}
238242
}
239243
}
@@ -253,20 +257,20 @@ project(':embedded-database-spring-test') {
253257
dependencies {
254258
api project(':embedded-database-spring-test-autoconfigure')
255259

256-
api 'org.testcontainers:postgresql:1.18.3'
257-
api 'org.testcontainers:mssqlserver:1.18.3'
258-
api 'org.testcontainers:mysql:1.18.3'
259-
api 'org.testcontainers:mariadb:1.18.3'
260+
api 'org.testcontainers:postgresql:1.20.1'
261+
api 'org.testcontainers:mssqlserver:1.20.1'
262+
api 'org.testcontainers:mysql:1.20.1'
263+
api 'org.testcontainers:mariadb:1.20.1'
260264

261265
optImplementation 'io.zonky.test:embedded-postgres:2.0.7'
262266
optImplementation 'com.opentable.components:otj-pg-embedded:0.13.4'
263267
optImplementation 'ru.yandex.qatools.embed:postgresql-embedded:2.10'
264268

265269
optImplementation 'org.postgresql:postgresql:42.7.3'
266-
optImplementation 'com.microsoft.sqlserver:mssql-jdbc:11.2.0.jre8'
267-
optImplementation 'mysql:mysql-connector-java:8.0.30'
268-
optImplementation 'org.mariadb.jdbc:mariadb-java-client:3.1.0'
269-
optImplementation 'com.h2database:h2:2.1.214'
270+
optImplementation 'com.microsoft.sqlserver:mssql-jdbc:12.8.0.jre8'
271+
optImplementation 'mysql:mysql-connector-java:8.0.33'
272+
optImplementation 'org.mariadb.jdbc:mariadb-java-client:3.4.1'
273+
optImplementation 'com.h2database:h2:2.2.224'
270274
optImplementation 'org.hsqldb:hsqldb:2.5.2'
271275
optImplementation 'org.apache.derby:derby:10.14.2.0'
272276
optImplementation 'org.apache.derby:derbytools:10.14.2.0'
@@ -276,22 +280,22 @@ project(':embedded-database-spring-test') {
276280
optImplementation('org.springframework.boot:spring-boot-starter-test:2.7.18') {
277281
exclude group: 'org.mockito'
278282
}
279-
optImplementation 'org.liquibase:liquibase-core:3.5.5'
283+
optImplementation 'org.liquibase:liquibase-core:3.10.3'
280284

281285
api 'org.springframework:spring-context:5.3.31'
282286
api 'org.springframework:spring-test:5.3.31'
283287

284-
optImplementation 'com.google.guava:guava:24.1.1-jre'
288+
optImplementation 'com.google.guava:guava:33.2.1-jre'
285289

286-
api('com.cedarsoftware:java-util:1.68.0') {
290+
api('com.cedarsoftware:java-util:2.13.0') {
287291
exclude group: 'org.apache.logging.log4j'
288292
}
289293

290-
testImplementation 'org.springframework:spring-jdbc:5.3.31'
291-
testImplementation 'ch.qos.logback:logback-classic:1.2.11'
292-
testImplementation 'org.mockito:mockito-core:3.12.4'
293-
testImplementation 'org.assertj:assertj-core:3.23.1'
294-
testImplementation 'com.zaxxer:HikariCP:4.0.3'
294+
testImplementation 'org.springframework:spring-jdbc:5.3.31' // 5.3 is Java 8
295+
testImplementation 'ch.qos.logback:logback-classic:1.2.12' // 1.3 is Java 8, but incompatible with Spring Boot 2.7
296+
testImplementation 'org.mockito:mockito-core:3.12.4' // 4.11.0 is Java 8
297+
testImplementation 'org.assertj:assertj-core:3.26.3'
298+
testImplementation 'com.zaxxer:HikariCP:4.0.3' // 4.0 is Java 8
295299
}
296300

297301
configurations {
@@ -327,7 +331,7 @@ project(':embedded-database-spring-test') {
327331

328332
eachDependency { details ->
329333
if (details.requested.group == 'junit') {
330-
details.useVersion "4.12"
334+
details.useVersion "4.13.2"
331335
}
332336
}
333337

@@ -579,7 +583,7 @@ task updateReadmeVersion() {
579583
}
580584

581585
// workaround for https://github.com/researchgate/gradle-release/issues/186
582-
task build(group: 'build') {
586+
tasks.named('build') {
583587
subprojects.each {
584588
dependsOn "${it.path}:build"
585589
}

embedded-database-spring-test/src/main/java/io/zonky/test/db/provider/mariadb/DockerMariaDBDatabaseProvider.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public DatabasePool load(DatabaseConfig config) {
7575
private final ClientConfig clientConfig;
7676

7777
public DockerMariaDBDatabaseProvider(Environment environment, ObjectProvider<List<MariaDBContainerCustomizer>> containerCustomizers) {
78-
String dockerImage = environment.getProperty("zonky.test.database.mariadb.docker.image", "mariadb:10.4");
78+
String dockerImage = environment.getProperty("zonky.test.database.mariadb.docker.image", "mariadb:11.5");
7979
String tmpfsOptions = environment.getProperty("zonky.test.database.mariadb.docker.tmpfs.options", "rw,noexec,nosuid");
8080
boolean tmpfsEnabled = environment.getProperty("zonky.test.database.mariadb.docker.tmpfs.enabled", boolean.class, false);
8181

@@ -140,12 +140,17 @@ protected static class DatabaseInstance {
140140

141141
private final DatabasePool databasePool;
142142
private final MariaDBContainer container;
143+
private final boolean useMariadbCommand;
143144
private final Semaphore semaphore;
144145

145146
private DatabaseInstance(DatabaseConfig config, DatabasePool pool) {
146147
databasePool = pool;
147148
container = createContainer(config.dockerImage);
148149

150+
String version = DockerImageName.parse(config.dockerImage).getVersionPart().replaceFirst("^([0-9]+\\.[0-9]+).*", "$1");
151+
Float containerVersion = Character.isDigit(version.charAt(0)) ? Float.parseFloat(version) : null;
152+
useMariadbCommand = containerVersion != null && containerVersion >= 11;
153+
149154
if (config.tmpfsEnabled) {
150155
Consumer<CreateContainerCmd> consumer = cmd -> cmd.getHostConfig()
151156
.withTmpFs(ImmutableMap.of("/var/lib/mysql", config.tmpfsOptions));
@@ -191,8 +196,9 @@ public EmbeddedDatabase createDatabase(ClientConfig config, DatabasePreparer pre
191196
}
192197

193198
protected void cleanDatabase(ClientConfig config, String dbName) {
194-
try {
195-
String dropCommand = "mysql -uroot -pdocker -N -e \"show databases\" | grep -v -E \"^(information_schema|performance_schema|mysql|sys)$\" | awk '{print \"drop database \" $1 \"\"}' | mysql -uroot -pdocker";
199+
try { // MariaDB 11 moved from mysql to mariadb binary
200+
String dropCommand = useMariadbCommand ? "mariadb -uroot -pdocker -N -e \"show databases\" | grep -v -E \"^(information_schema|performance_schema|mysql|sys)$\" | awk '{print \"drop database \" $1 \"\"}' | mariadb -uroot -pdocker" :
201+
"mysql -uroot -pdocker -N -e \"show databases\" | grep -v -E \"^(information_schema|performance_schema|mysql|sys)$\" | awk '{print \"drop database \" $1 \"\"}' | mysql -uroot -pdocker";
196202
ExecResult dropResult = container.execInContainer("sh", "-c", dropCommand);
197203
if (dropResult.getExitCode() != 0) {
198204
throw new ProviderException("Unexpected error when cleaning up the database");

embedded-database-spring-test/src/main/java/io/zonky/test/db/provider/mysql/DockerMySQLDatabaseProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public DatabasePool load(DatabaseConfig config) {
7575
private final ClientConfig clientConfig;
7676

7777
public DockerMySQLDatabaseProvider(Environment environment, ObjectProvider<List<MySQLContainerCustomizer>> containerCustomizers) {
78-
String dockerImage = environment.getProperty("zonky.test.database.mysql.docker.image", "mysql:5.7");
78+
String dockerImage = environment.getProperty("zonky.test.database.mysql.docker.image", "mysql:8.4");
7979
String tmpfsOptions = environment.getProperty("zonky.test.database.mysql.docker.tmpfs.options", "rw,noexec,nosuid");
8080
boolean tmpfsEnabled = environment.getProperty("zonky.test.database.mysql.docker.tmpfs.enabled", boolean.class, false);
8181

embedded-database-spring-test/src/main/java/io/zonky/test/db/provider/postgres/DockerPostgresDatabaseProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public DatabaseInstance load(DatabaseConfig config) {
8282
private final ClientConfig clientConfig;
8383

8484
public DockerPostgresDatabaseProvider(Environment environment, ObjectProvider<List<PostgreSQLContainerCustomizer>> containerCustomizers) {
85-
String dockerImage = environment.getProperty("zonky.test.database.postgres.docker.image", "postgres:11-alpine");
85+
String dockerImage = environment.getProperty("zonky.test.database.postgres.docker.image", "postgres:16-alpine");
8686
String tmpfsOptions = environment.getProperty("zonky.test.database.postgres.docker.tmpfs.options", "rw,noexec,nosuid");
8787
boolean tmpfsEnabled = environment.getProperty("zonky.test.database.postgres.docker.tmpfs.enabled", boolean.class, false);
8888

embedded-database-spring-test/src/main/java/io/zonky/test/db/provider/postgres/YandexPostgresDatabaseProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public DatabaseInstance load(DatabaseConfig config) throws IOException {
8080
private final ClientConfig clientConfig;
8181

8282
public YandexPostgresDatabaseProvider(Environment environment) {
83-
String postgresVersion = environment.getProperty("zonky.test.database.postgres.yandex-provider.postgres-version", "11.10-1");
83+
String postgresVersion = environment.getProperty("zonky.test.database.postgres.yandex-provider.postgres-version", "11.21-1");
8484

8585
Map<String, String> initdbProperties = PropertyUtils.extractAll(environment, "zonky.test.database.postgres.initdb.properties");
8686
Map<String, String> configProperties = PropertyUtils.extractAll(environment, "zonky.test.database.postgres.server.properties");

0 commit comments

Comments
 (0)