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(); } }