From 3672d2fae01ccd033076be582ba414e82e9306e0 Mon Sep 17 00:00:00 2001 From: issam liqali Date: Wed, 10 Dec 2025 15:02:35 +0100 Subject: [PATCH 1/7] remove spock and groovy version --- gradle/libs.versions.toml | 3 --- 1 file changed, 3 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d56faf14..474c76ac 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -12,9 +12,6 @@ micronaut-session = "4.8.0" micronaut-test-resources = "2.10.1" micronaut-gradle-plugin = "4.6.1" -groovy = "4.0.23" -spock = "2.3-groovy-4.0" - [libraries] micronaut-core = { module = 'io.micronaut:micronaut-core-bom', version.ref = 'micronaut' } managed-lettuce = { module = "io.lettuce:lettuce-core", version.ref = "managed-lettuce" } From 09ef6a6c132bac7f9860171b8f28ce097ceca486 Mon Sep 17 00:00:00 2001 From: issam liqali Date: Wed, 10 Dec 2025 15:03:02 +0100 Subject: [PATCH 2/7] update micronaut serde to 3.0.0-M1 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 474c76ac..02d28197 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -6,7 +6,7 @@ micronaut = "4.10.9" micronaut-test = "4.9.0" micronaut-cache = "5.3.0" micronaut-micrometer = "5.13.2" -micronaut-serde = "2.16.2" +micronaut-serde = "3.0.0-M1" micronaut-logging = "1.7.1" micronaut-session = "4.8.0" micronaut-test-resources = "2.10.1" From 0f23afbf989f4cd34cfff74f8e723fb37ecc6e10 Mon Sep 17 00:00:00 2001 From: issam liqali Date: Wed, 10 Dec 2025 15:03:26 +0100 Subject: [PATCH 3/7] update to micronaut 5.0.0-M2 --- gradle/libs.versions.toml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 02d28197..4e1c3bbb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,9 +1,7 @@ [versions] managed-lettuce = "6.7.1.RELEASE" -micronaut-docs = "3.0.0" -micronaut = "4.10.9" -micronaut-test = "4.9.0" +micronaut = "5.0.0-M2" micronaut-cache = "5.3.0" micronaut-micrometer = "5.13.2" micronaut-serde = "3.0.0-M1" From 6cf049883e840431ca4f3811a98edaf476ba0a9f Mon Sep 17 00:00:00 2001 From: issam liqali Date: Wed, 10 Dec 2025 15:03:47 +0100 Subject: [PATCH 4/7] update lettuce to 7.2.0.RELEASE --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4e1c3bbb..3e63568b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -managed-lettuce = "6.7.1.RELEASE" +managed-lettuce = "7.2.0.RELEASE" micronaut = "5.0.0-M2" micronaut-cache = "5.3.0" From f30dd164aaa75c726bc78d3d15a8825f74686f5d Mon Sep 17 00:00:00 2001 From: issam liqali Date: Wed, 10 Dec 2025 15:37:11 +0100 Subject: [PATCH 5/7] add descriptor --- redis-lettuce/build.gradle | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/redis-lettuce/build.gradle b/redis-lettuce/build.gradle index 7c050719..6203d062 100644 --- a/redis-lettuce/build.gradle +++ b/redis-lettuce/build.gradle @@ -11,7 +11,7 @@ dependencies { compileOnly mnSession.micronaut.session compileOnly mn.micronaut.management compileOnly mnMicrometer.micronaut.micrometer.core - + testAnnotationProcessor mn.micronaut.inject.java testImplementation(mnTestResources.testcontainers.core) @@ -31,3 +31,9 @@ dependencies { testRuntimeOnly(mnLogging.logback.classic) testImplementation mn.snakeyaml } + +micronautBuild { + descriptor { + parentModuleId = "io.micronaut.redis:micronaut-redis-lettuce" + } +} From 10bcc560ca48634375568c2a88e3498af0334f97 Mon Sep 17 00:00:00 2001 From: Sergio del Amo Date: Wed, 31 Dec 2025 14:18:21 +0100 Subject: [PATCH 6/7] remove test-resources dependency --- ...t.build.internal.redis-native-tests.gradle | 1 - gradle/libs.versions.toml | 6 ++- redis-lettuce/build.gradle | 3 +- settings.gradle | 2 +- test-suite-graal/build.gradle | 1 + .../src/test/java/example/RedisTest.java | 18 +++++++-- test-suite-utils/build.gradle.kts | 9 +++++ .../micronaut/redis/testcontainers/Redis.java | 39 +++++++++++++++++++ 8 files changed, 71 insertions(+), 8 deletions(-) create mode 100644 test-suite-utils/build.gradle.kts create mode 100644 test-suite-utils/src/main/java/io/micronaut/redis/testcontainers/Redis.java diff --git a/buildSrc/src/main/groovy/io.micronaut.build.internal.redis-native-tests.gradle b/buildSrc/src/main/groovy/io.micronaut.build.internal.redis-native-tests.gradle index cf9890ac..d666bc8b 100644 --- a/buildSrc/src/main/groovy/io.micronaut.build.internal.redis-native-tests.gradle +++ b/buildSrc/src/main/groovy/io.micronaut.build.internal.redis-native-tests.gradle @@ -1,7 +1,6 @@ plugins { id "io.micronaut.build.internal.redis-base" id "io.micronaut.application" - id "io.micronaut.test-resources" } tasks.named("test") { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b18f4d96..1e716770 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,8 +7,8 @@ micronaut-micrometer = "5.13.2" micronaut-serde = "3.0.0-M1" micronaut-logging = "1.7.1" micronaut-session = "5.0.0-M1" -micronaut-test-resources = "2.10.1" micronaut-gradle-plugin = "4.6.1" +testcontainers-redis = "1.6.4" [libraries] micronaut-core = { module = 'io.micronaut:micronaut-core-bom', version.ref = 'micronaut' } @@ -17,7 +17,9 @@ micronaut-cache = { module = "io.micronaut.cache:micronaut-cache-bom", version.r micronaut-micrometer = { module = "io.micronaut.micrometer:micronaut-micrometer-bom", version.ref = "micronaut-micrometer" } micronaut-serde = { module = "io.micronaut.serde:micronaut-serde-bom", version.ref = "micronaut-serde" } micronaut-session = { module = "io.micronaut.session:micronaut-session-bom", version.ref = "micronaut-session" } -micronaut-test-resources = { module = "io.micronaut.testresources:micronaut-test-resources-bom", version.ref = "micronaut-test-resources" } junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher" } gradle-micronaut = { module = "io.micronaut.gradle:micronaut-gradle-plugin", version.ref = "micronaut-gradle-plugin" } + +testcontainers = { module = "org.testcontainers:testcontainers" } +testcontainers-redis = { module = "com.redis.testcontainers:testcontainers-redis", version.ref = "testcontainers-redis" } diff --git a/redis-lettuce/build.gradle b/redis-lettuce/build.gradle index 6203d062..413d57e1 100644 --- a/redis-lettuce/build.gradle +++ b/redis-lettuce/build.gradle @@ -13,7 +13,8 @@ dependencies { compileOnly mnMicrometer.micronaut.micrometer.core testAnnotationProcessor mn.micronaut.inject.java - testImplementation(mnTestResources.testcontainers.core) + testImplementation(platform(mnTest.boms.testcontainers)) + testImplementation(libs.testcontainers) testImplementation mn.reactor diff --git a/settings.gradle b/settings.gradle index 6c6f0d12..026e9db8 100644 --- a/settings.gradle +++ b/settings.gradle @@ -14,6 +14,7 @@ rootProject.name = 'redis-parent' include 'redis-bom' include 'redis-lettuce' include 'test-suite-graal' +include 'test-suite-utils' micronautBuild { useStandardizedProjectNames = true @@ -22,5 +23,4 @@ micronautBuild { importMicronautCatalog("micronaut-micrometer") importMicronautCatalog("micronaut-serde") importMicronautCatalog("micronaut-session") - importMicronautCatalog("micronaut-test-resources") } diff --git a/test-suite-graal/build.gradle b/test-suite-graal/build.gradle index 8058885a..6e216493 100644 --- a/test-suite-graal/build.gradle +++ b/test-suite-graal/build.gradle @@ -22,6 +22,7 @@ dependencies { implementation mn.micronaut.context implementation mn.micronaut.jackson.databind implementation project(':micronaut-redis-lettuce') + testImplementation(project(':test-suite-utils')) implementation mn.snakeyaml runtimeOnly mnLogging.logback.classic testRuntimeOnly(libs.junit.platform.launcher) diff --git a/test-suite-graal/src/test/java/example/RedisTest.java b/test-suite-graal/src/test/java/example/RedisTest.java index 58eb3a4e..87e48efe 100644 --- a/test-suite-graal/src/test/java/example/RedisTest.java +++ b/test-suite-graal/src/test/java/example/RedisTest.java @@ -1,12 +1,20 @@ package example; import static org.junit.jupiter.api.Assertions.assertEquals; + +import io.micronaut.core.annotation.NonNull; +import io.micronaut.redis.testcontainers.Redis; +import io.micronaut.test.support.TestPropertyProvider; import org.junit.jupiter.api.Test; import io.micronaut.test.extensions.junit5.annotation.MicronautTest; +import org.junit.jupiter.api.TestInstance; + +import java.util.Map; @MicronautTest -class RedisTest { +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +class RedisTest implements TestPropertyProvider { @Test void testRedis(RedisController controller) { @@ -15,5 +23,9 @@ void testRedis(RedisController controller) { controller.keyCommandSet(); assertEquals("Hello World", controller.keyCommandGet()); } - -} \ No newline at end of file + + @Override + public @NonNull Map getProperties() { + return Redis.getProperties(); + } +} diff --git a/test-suite-utils/build.gradle.kts b/test-suite-utils/build.gradle.kts new file mode 100644 index 00000000..d80d22bc --- /dev/null +++ b/test-suite-utils/build.gradle.kts @@ -0,0 +1,9 @@ +plugins { + id("io.micronaut.build.internal.java-base") + `java-library` +} +dependencies { + implementation(platform(mnTest.boms.testcontainers)) + api(libs.testcontainers) + api(libs.testcontainers.redis) +} diff --git a/test-suite-utils/src/main/java/io/micronaut/redis/testcontainers/Redis.java b/test-suite-utils/src/main/java/io/micronaut/redis/testcontainers/Redis.java new file mode 100644 index 00000000..956f20f0 --- /dev/null +++ b/test-suite-utils/src/main/java/io/micronaut/redis/testcontainers/Redis.java @@ -0,0 +1,39 @@ +package io.micronaut.redis.testcontainers; + +import com.redis.testcontainers.RedisContainer; +import org.testcontainers.utility.DockerImageName; + +import java.util.Map; + +public class Redis { + private static final String REDIS_URI = "redis.uri"; + private static final String IMAGE_NAME = RedisContainer.DEFAULT_IMAGE_NAME.asCanonicalNameString(); + private static RedisContainer container; + + public static RedisContainer getContainer() { + if (container == null) { + container = new RedisContainer(DockerImageName.parse(IMAGE_NAME)); + container.start(); + do { + try { + Thread.sleep(100); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } while(!container.isRunning()); + return container; + } else { + return container; + } + } + + public static Map getProperties() { + return getProperties(getContainer()); + } + + private static Map getProperties(RedisContainer container) { + return Map.of( + REDIS_URI, container.getRedisURI() + ); + } +} From abab20e5378181163abf37275427cb6f359fbc24 Mon Sep 17 00:00:00 2001 From: Sergio del Amo Date: Wed, 31 Dec 2025 14:35:51 +0100 Subject: [PATCH 7/7] add native image config --- .../io.micronaut.redis/micronaut-redis/native-image.properties | 1 + 1 file changed, 1 insertion(+) create mode 100644 test-suite-utils/src/main/resources/META-INF/native-image/io.micronaut.redis/micronaut-redis/native-image.properties diff --git a/test-suite-utils/src/main/resources/META-INF/native-image/io.micronaut.redis/micronaut-redis/native-image.properties b/test-suite-utils/src/main/resources/META-INF/native-image/io.micronaut.redis/micronaut-redis/native-image.properties new file mode 100644 index 00000000..ed559ade --- /dev/null +++ b/test-suite-utils/src/main/resources/META-INF/native-image/io.micronaut.redis/micronaut-redis/native-image.properties @@ -0,0 +1 @@ +Args =--initialize-at-build-time=org.junit.platform.commons.logging.LoggerFactory$DelegatingLogger