diff --git a/pom.xml b/pom.xml
index a6bb4427..5fdc557c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,7 @@
1.4.14
1.3.99999-SNAPSHOT
5.10.1
- 1.19.3
+ 1.19.7
3.3.0
1.6.13
3.1.0
@@ -160,7 +160,7 @@
com.mysql
mysql-connector-j
- 8.2.0
+ 8.3.0
test
diff --git a/transactionoutbox-acceptance/src/test/java/com/gruelbox/transactionoutbox/acceptance/TestMySql5.java b/transactionoutbox-acceptance/src/test/java/com/gruelbox/transactionoutbox/acceptance/TestMySql5.java
index 1a5a7115..3988cd94 100644
--- a/transactionoutbox-acceptance/src/test/java/com/gruelbox/transactionoutbox/acceptance/TestMySql5.java
+++ b/transactionoutbox-acceptance/src/test/java/com/gruelbox/transactionoutbox/acceptance/TestMySql5.java
@@ -2,18 +2,32 @@
import com.gruelbox.transactionoutbox.Dialect;
import com.gruelbox.transactionoutbox.testing.AbstractAcceptanceTest;
+import java.time.Duration;
+import java.util.Map;
+import org.testcontainers.containers.JdbcDatabaseContainer;
+import org.testcontainers.containers.MySQLContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
@SuppressWarnings("WeakerAccess")
+@Testcontainers
class TestMySql5 extends AbstractAcceptanceTest {
+ @Container
+ @SuppressWarnings({"rawtypes", "resource"})
+ private static final JdbcDatabaseContainer container =
+ new MySQLContainer<>("mysql:5")
+ .withStartupTimeout(Duration.ofMinutes(5))
+ .withTmpFs(Map.of("/var/lib/mysql", "rw"));
+
@Override
protected ConnectionDetails connectionDetails() {
return ConnectionDetails.builder()
.dialect(Dialect.MY_SQL_5)
.driverClassName("com.mysql.cj.jdbc.Driver")
- .url("jdbc:tc:mysql:5:///test?TC_REUSABLE=true&TC_TMPFS=/var/lib/mysql:rw")
- .user("test")
- .password("test")
+ .url(container.getJdbcUrl())
+ .user(container.getUsername())
+ .password(container.getPassword())
.build();
}
}
diff --git a/transactionoutbox-acceptance/src/test/java/com/gruelbox/transactionoutbox/acceptance/TestMySql8.java b/transactionoutbox-acceptance/src/test/java/com/gruelbox/transactionoutbox/acceptance/TestMySql8.java
index d620810b..c9814836 100644
--- a/transactionoutbox-acceptance/src/test/java/com/gruelbox/transactionoutbox/acceptance/TestMySql8.java
+++ b/transactionoutbox-acceptance/src/test/java/com/gruelbox/transactionoutbox/acceptance/TestMySql8.java
@@ -2,18 +2,32 @@
import com.gruelbox.transactionoutbox.Dialect;
import com.gruelbox.transactionoutbox.testing.AbstractAcceptanceTest;
+import java.time.Duration;
+import java.util.Map;
+import org.testcontainers.containers.JdbcDatabaseContainer;
+import org.testcontainers.containers.MySQLContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
@SuppressWarnings("WeakerAccess")
+@Testcontainers
class TestMySql8 extends AbstractAcceptanceTest {
+ @Container
+ @SuppressWarnings({"rawtypes", "resource"})
+ private static final JdbcDatabaseContainer container =
+ new MySQLContainer<>("mysql:8")
+ .withStartupTimeout(Duration.ofMinutes(5))
+ .withTmpFs(Map.of("/var/lib/mysql", "rw"));
+
@Override
protected ConnectionDetails connectionDetails() {
return ConnectionDetails.builder()
.dialect(Dialect.MY_SQL_8)
.driverClassName("com.mysql.cj.jdbc.Driver")
- .url("jdbc:tc:mysql:8:///test?TC_REUSABLE=true&TC_TMPFS=/var/lib/mysql:rw")
- .user("test")
- .password("test")
+ .url(container.getJdbcUrl())
+ .user(container.getUsername())
+ .password(container.getPassword())
.build();
}
}
diff --git a/transactionoutbox-acceptance/src/test/java/com/gruelbox/transactionoutbox/acceptance/persistor/TestDefaultPersistorMySql5.java b/transactionoutbox-acceptance/src/test/java/com/gruelbox/transactionoutbox/acceptance/persistor/TestDefaultPersistorMySql5.java
index 5932e356..01d5af6a 100644
--- a/transactionoutbox-acceptance/src/test/java/com/gruelbox/transactionoutbox/acceptance/persistor/TestDefaultPersistorMySql5.java
+++ b/transactionoutbox-acceptance/src/test/java/com/gruelbox/transactionoutbox/acceptance/persistor/TestDefaultPersistorMySql5.java
@@ -4,17 +4,31 @@
import com.gruelbox.transactionoutbox.Dialect;
import com.gruelbox.transactionoutbox.TransactionManager;
import com.gruelbox.transactionoutbox.testing.AbstractPersistorTest;
+import java.time.Duration;
+import java.util.Map;
+import org.testcontainers.containers.JdbcDatabaseContainer;
+import org.testcontainers.containers.MySQLContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
+@Testcontainers
class TestDefaultPersistorMySql5 extends AbstractPersistorTest {
+ @Container
+ @SuppressWarnings({"rawtypes", "resource"})
+ private static final JdbcDatabaseContainer container =
+ new MySQLContainer<>("mysql:5")
+ .withStartupTimeout(Duration.ofMinutes(5))
+ .withTmpFs(Map.of("/var/lib/mysql", "rw"));
+
private final DefaultPersistor persistor =
DefaultPersistor.builder().dialect(Dialect.MY_SQL_5).build();
private final TransactionManager txManager =
TransactionManager.fromConnectionDetails(
"com.mysql.cj.jdbc.Driver",
- "jdbc:tc:mysql:5:///test?TC_REUSABLE=true&TC_TMPFS=/var/lib/mysql:rw",
- "test",
- "test");
+ container.getJdbcUrl(),
+ container.getUsername(),
+ container.getPassword());
@Override
protected DefaultPersistor persistor() {
diff --git a/transactionoutbox-acceptance/src/test/java/com/gruelbox/transactionoutbox/acceptance/persistor/TestDefaultPersistorMySql8.java b/transactionoutbox-acceptance/src/test/java/com/gruelbox/transactionoutbox/acceptance/persistor/TestDefaultPersistorMySql8.java
index 2b822d30..5004f7f0 100644
--- a/transactionoutbox-acceptance/src/test/java/com/gruelbox/transactionoutbox/acceptance/persistor/TestDefaultPersistorMySql8.java
+++ b/transactionoutbox-acceptance/src/test/java/com/gruelbox/transactionoutbox/acceptance/persistor/TestDefaultPersistorMySql8.java
@@ -4,17 +4,31 @@
import com.gruelbox.transactionoutbox.Dialect;
import com.gruelbox.transactionoutbox.TransactionManager;
import com.gruelbox.transactionoutbox.testing.AbstractPersistorTest;
+import java.time.Duration;
+import java.util.Map;
+import org.testcontainers.containers.JdbcDatabaseContainer;
+import org.testcontainers.containers.MySQLContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
+@Testcontainers
class TestDefaultPersistorMySql8 extends AbstractPersistorTest {
+ @Container
+ @SuppressWarnings({"rawtypes", "resource"})
+ private static final JdbcDatabaseContainer container =
+ new MySQLContainer<>("mysql:8")
+ .withStartupTimeout(Duration.ofMinutes(5))
+ .withTmpFs(Map.of("/var/lib/mysql", "rw"));
+
private final DefaultPersistor persistor =
DefaultPersistor.builder().dialect(Dialect.MY_SQL_8).build();
private final TransactionManager txManager =
TransactionManager.fromConnectionDetails(
"com.mysql.cj.jdbc.Driver",
- "jdbc:tc:mysql:8:///test?TC_REUSABLE=true&TC_TMPFS=/var/lib/mysql:rw",
- "test",
- "test");
+ container.getJdbcUrl(),
+ container.getUsername(),
+ container.getPassword());
@Override
protected DefaultPersistor persistor() {
diff --git a/transactionoutbox-jooq/src/test/java/com/gruelbox/transactionoutbox/jooq/acceptance/TestJooqThreadLocalMySql5.java b/transactionoutbox-jooq/src/test/java/com/gruelbox/transactionoutbox/jooq/acceptance/TestJooqThreadLocalMySql5.java
index afd913f6..7ccf1551 100644
--- a/transactionoutbox-jooq/src/test/java/com/gruelbox/transactionoutbox/jooq/acceptance/TestJooqThreadLocalMySql5.java
+++ b/transactionoutbox-jooq/src/test/java/com/gruelbox/transactionoutbox/jooq/acceptance/TestJooqThreadLocalMySql5.java
@@ -1,20 +1,35 @@
package com.gruelbox.transactionoutbox.jooq.acceptance;
import com.gruelbox.transactionoutbox.Dialect;
+import java.time.Duration;
+import java.util.Map;
import lombok.extern.slf4j.Slf4j;
import org.jooq.SQLDialect;
+import org.testcontainers.containers.JdbcDatabaseContainer;
+import org.testcontainers.containers.MySQLContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
@Slf4j
+@Testcontainers
class TestJooqThreadLocalMySql5 extends AbstractJooqAcceptanceThreadLocalTest {
+ @Container
+ @SuppressWarnings({"rawtypes", "resource", "unchecked"})
+ private static final JdbcDatabaseContainer> container =
+ (JdbcDatabaseContainer>)
+ new MySQLContainer("mysql:5")
+ .withStartupTimeout(Duration.ofMinutes(5))
+ .withTmpFs(Map.of("/var/lib/mysql", "rw"));
+
@Override
protected ConnectionDetails connectionDetails() {
return ConnectionDetails.builder()
.dialect(Dialect.MY_SQL_5)
.driverClassName("com.mysql.cj.jdbc.Driver")
- .url("jdbc:tc:mysql:5:///test?TC_REUSABLE=true&TC_TMPFS=/var/lib/mysql:rw")
- .user("test")
- .password("test")
+ .url(container.getJdbcUrl())
+ .user(container.getUsername())
+ .password(container.getPassword())
.build();
}
diff --git a/transactionoutbox-jooq/src/test/java/com/gruelbox/transactionoutbox/jooq/acceptance/TestJooqThreadLocalMySql8.java b/transactionoutbox-jooq/src/test/java/com/gruelbox/transactionoutbox/jooq/acceptance/TestJooqThreadLocalMySql8.java
index 0daf4e10..622a19c4 100644
--- a/transactionoutbox-jooq/src/test/java/com/gruelbox/transactionoutbox/jooq/acceptance/TestJooqThreadLocalMySql8.java
+++ b/transactionoutbox-jooq/src/test/java/com/gruelbox/transactionoutbox/jooq/acceptance/TestJooqThreadLocalMySql8.java
@@ -1,20 +1,35 @@
package com.gruelbox.transactionoutbox.jooq.acceptance;
import com.gruelbox.transactionoutbox.*;
+import java.time.Duration;
+import java.util.Map;
import lombok.extern.slf4j.Slf4j;
import org.jooq.SQLDialect;
+import org.testcontainers.containers.JdbcDatabaseContainer;
+import org.testcontainers.containers.MySQLContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
@Slf4j
+@Testcontainers
class TestJooqThreadLocalMySql8 extends AbstractJooqAcceptanceThreadLocalTest {
+ @Container
+ @SuppressWarnings({"rawtypes", "resource", "unchecked"})
+ private static final JdbcDatabaseContainer> container =
+ (JdbcDatabaseContainer>)
+ new MySQLContainer("mysql:8")
+ .withStartupTimeout(Duration.ofMinutes(5))
+ .withTmpFs(Map.of("/var/lib/mysql", "rw"));
+
@Override
protected ConnectionDetails connectionDetails() {
return ConnectionDetails.builder()
.dialect(Dialect.MY_SQL_8)
.driverClassName("com.mysql.cj.jdbc.Driver")
- .url("jdbc:tc:mysql:8:///test?TC_REUSABLE=true&TC_TMPFS=/var/lib/mysql:rw")
- .user("test")
- .password("test")
+ .url(container.getJdbcUrl())
+ .user(container.getUsername())
+ .password(container.getPassword())
.build();
}
diff --git a/transactionoutbox-virtthreads/src/test/java/com/gruelbox/transactionoutbox/virtthreads/TestVirtualThreadsMySql5.java b/transactionoutbox-virtthreads/src/test/java/com/gruelbox/transactionoutbox/virtthreads/TestVirtualThreadsMySql5.java
index d9c4bd17..eb807d98 100644
--- a/transactionoutbox-virtthreads/src/test/java/com/gruelbox/transactionoutbox/virtthreads/TestVirtualThreadsMySql5.java
+++ b/transactionoutbox-virtthreads/src/test/java/com/gruelbox/transactionoutbox/virtthreads/TestVirtualThreadsMySql5.java
@@ -1,21 +1,35 @@
package com.gruelbox.transactionoutbox.virtthreads;
+import static com.gruelbox.transactionoutbox.Dialect.MY_SQL_5;
-import com.gruelbox.transactionoutbox.Dialect;
+import java.time.Duration;
+import java.util.Map;
import org.junit.jupiter.api.Disabled;
+import org.testcontainers.containers.JdbcDatabaseContainer;
+import org.testcontainers.containers.MySQLContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
@SuppressWarnings("WeakerAccess")
+@Testcontainers
@Disabled
class TestVirtualThreadsMySql5 extends AbstractVirtualThreadsTest {
+ @Container
+ @SuppressWarnings({"rawtypes", "resource"})
+ private static final JdbcDatabaseContainer container =
+ new MySQLContainer<>("mysql:5")
+ .withStartupTimeout(Duration.ofMinutes(5))
+ .withTmpFs(Map.of("/var/lib/mysql", "rw"));
+
@Override
protected ConnectionDetails connectionDetails() {
return ConnectionDetails.builder()
- .dialect(Dialect.MY_SQL_5)
+ .dialect(MY_SQL_5)
.driverClassName("com.mysql.cj.jdbc.Driver")
- .url("jdbc:tc:mysql:5:///test?TC_REUSABLE=true&TC_TMPFS=/var/lib/mysql:rw")
- .user("test")
- .password("test")
+ .url(container.getJdbcUrl())
+ .user(container.getUsername())
+ .password(container.getPassword())
.build();
}
}
diff --git a/transactionoutbox-virtthreads/src/test/java/com/gruelbox/transactionoutbox/virtthreads/TestVirtualThreadsMySql8.java b/transactionoutbox-virtthreads/src/test/java/com/gruelbox/transactionoutbox/virtthreads/TestVirtualThreadsMySql8.java
index 46a32d3d..8f355a66 100644
--- a/transactionoutbox-virtthreads/src/test/java/com/gruelbox/transactionoutbox/virtthreads/TestVirtualThreadsMySql8.java
+++ b/transactionoutbox-virtthreads/src/test/java/com/gruelbox/transactionoutbox/virtthreads/TestVirtualThreadsMySql8.java
@@ -1,21 +1,35 @@
package com.gruelbox.transactionoutbox.virtthreads;
+import static com.gruelbox.transactionoutbox.Dialect.MY_SQL_8;
-import com.gruelbox.transactionoutbox.Dialect;
+import java.time.Duration;
+import java.util.Map;
import org.junit.jupiter.api.Disabled;
+import org.testcontainers.containers.JdbcDatabaseContainer;
+import org.testcontainers.containers.MySQLContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
@SuppressWarnings("WeakerAccess")
+@Testcontainers
@Disabled
class TestVirtualThreadsMySql8 extends AbstractVirtualThreadsTest {
+ @Container
+ @SuppressWarnings({"rawtypes", "resource"})
+ private static final JdbcDatabaseContainer container =
+ new MySQLContainer<>("mysql:8")
+ .withStartupTimeout(Duration.ofMinutes(5))
+ .withTmpFs(Map.of("/var/lib/mysql", "rw"));
+
@Override
protected ConnectionDetails connectionDetails() {
return ConnectionDetails.builder()
- .dialect(Dialect.MY_SQL_8)
+ .dialect(MY_SQL_8)
.driverClassName("com.mysql.cj.jdbc.Driver")
- .url("jdbc:tc:mysql:8:///test?TC_REUSABLE=true&TC_TMPFS=/var/lib/mysql:rw")
- .user("test")
- .password("test")
+ .url(container.getJdbcUrl())
+ .user(container.getUsername())
+ .password(container.getPassword())
.build();
}
}