diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
index 19d6e7210d..5d588e5e42 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
@@ -22,7 +22,7 @@ dependencies {
implementation(platform("io.micronaut.platform:micronaut-platform:$micronautVersion"))
implementation("io.micronaut.starter:micronaut-starter-api:$micronautVersion")
implementation("io.micronaut:micronaut-inject-java")
- implementation("org.apache.commons:commons-compress:1.20")
+ implementation('org.apache.commons:commons-compress:1.21')
implementation "io.micronaut.docs:micronaut-docs-asciidoc-extensions:$micronautDocsVersion", {
exclude group: "org.codehaus.groovy"
}
diff --git a/buildSrc/src/main/java/io/micronaut/guides/feature/MockServerClient.java b/buildSrc/src/main/java/io/micronaut/guides/feature/MockServerClient.java
deleted file mode 100644
index 669838823e..0000000000
--- a/buildSrc/src/main/java/io/micronaut/guides/feature/MockServerClient.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package io.micronaut.guides.feature;
-
-import io.micronaut.core.annotation.NonNull;
-import io.micronaut.core.annotation.Nullable;
-import io.micronaut.starter.application.ApplicationType;
-import io.micronaut.starter.application.generator.GeneratorContext;
-import io.micronaut.starter.build.dependencies.Dependency;
-import io.micronaut.starter.feature.Feature;
-import io.micronaut.starter.feature.database.TestContainers;
-import jakarta.inject.Singleton;
-
-@Singleton
-public class MockServerClient implements Feature {
-
- public static final String ARTIFACT_ID_MOCKSERVER_CLIENT_JAVA = "mockserver-client-java";
- public static final String ARTIFACT_ID_TEST_CONTAINERS_MOCKSERVER = "mockserver";
-
- @Override
- public @NonNull String getName() {
- return "mockserver-client-java";
- }
-
- @Override
- public boolean supports(ApplicationType applicationType) {
- return true;
- }
-
- @Override
- public @Nullable String getThirdPartyDocumentation() {
- return "https://www.mock-server.com/mock_server/mockserver_clients.html#java-mockserver-client";
- }
-
- @Override
- public void apply(GeneratorContext generatorContext) {
- addDependencies(generatorContext);
- }
-
- protected void addDependencies(GeneratorContext generatorContext) {
- if (generatorContext.getFeatures().hasFeature(TestContainers.class)) {
- generatorContext.addDependency(Dependency.builder().groupId(TestContainers.TESTCONTAINERS_GROUP_ID).artifactId(ARTIFACT_ID_TEST_CONTAINERS_MOCKSERVER).test().build());
- }
- generatorContext.addDependency(Dependency.builder().lookupArtifactId(ARTIFACT_ID_MOCKSERVER_CLIENT_JAVA).test());
- }
-}
\ No newline at end of file
diff --git a/buildSrc/src/main/java/io/micronaut/guides/feature/OracleTestContainer.java b/buildSrc/src/main/java/io/micronaut/guides/feature/OracleTestContainer.java
deleted file mode 100644
index 62e88658f6..0000000000
--- a/buildSrc/src/main/java/io/micronaut/guides/feature/OracleTestContainer.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package io.micronaut.guides.feature;
-
-import jakarta.inject.Singleton;
-
-import static io.micronaut.starter.build.dependencies.Scope.TEST;
-
-@Singleton
-public class OracleTestContainer extends AbstractFeature {
- public OracleTestContainer() {
- super("testcontainers-oracle", "oracle-xe", TEST);
- }
-}
diff --git a/buildSrc/src/main/resources/pom.xml b/buildSrc/src/main/resources/pom.xml
index 07b1c67129..39f9c3255b 100644
--- a/buildSrc/src/main/resources/pom.xml
+++ b/buildSrc/src/main/resources/pom.xml
@@ -55,11 +55,6 @@
kotlin-gradle-plugin
1.8.22
-
- org.jetbrains.kotlin
- kotlin-allopen
- 1.8.22
-
org.springframework.boot
spring-boot-gradle-plugin
diff --git a/guides/micronaut-mqtt/metadata.json b/guides/micronaut-mqtt/metadata.json
index eb4289d48d..55d4c95f9d 100644
--- a/guides/micronaut-mqtt/metadata.json
+++ b/guides/micronaut-mqtt/metadata.json
@@ -18,7 +18,7 @@
"name": "cli",
"features": ["yaml","graalvm", "mqtt"],
"javaFeatures": [ "awaitility"],
- "kotlinFeatures": [ "awaitility"]
+ "kotlinFeatures": [ "awaitility", "kapt"]
}
]
}
diff --git a/guides/micronaut-oracle-autonomous-db/groovy/src/test/groovy/example/micronaut/repository/Oracle.groovy b/guides/micronaut-oracle-autonomous-db/groovy/src/test/groovy/example/micronaut/repository/Oracle.groovy
new file mode 100644
index 0000000000..7dffa6a6cc
--- /dev/null
+++ b/guides/micronaut-oracle-autonomous-db/groovy/src/test/groovy/example/micronaut/repository/Oracle.groovy
@@ -0,0 +1,37 @@
+package example.micronaut.repository;
+
+import org.testcontainers.containers.OracleContainer;
+
+import java.util.Map;
+
+public class Oracle {
+
+ public static OracleContainer oracle = new OracleContainer("gvenzl/oracle-xe:21-slim-faststart")
+ .withDatabaseName("testDB")
+ .withUsername("testUser")
+ .withPassword("testPassword");
+
+ public static Map getConfiguration() {
+ start();
+ return Map.of("datasources.default.url", oracle.getJdbcUrl(),
+ "datasources.default.username", oracle.getUsername(),
+ "datasources.default.password", oracle.getPassword(),
+ "datasources.default.driver-class-name", oracle.getDriverClassName());
+ }
+ public static void start() {
+ if (!oracle.isRunning()) {
+ oracle.start();
+ }
+ }
+
+ public static void stop() {
+ if (oracle.isRunning()) {
+ oracle.stop();
+ }
+ }
+
+ public static void close() {
+ oracle.close();
+ }
+
+}
diff --git a/guides/micronaut-oracle-autonomous-db/groovy/src/test/groovy/example/micronaut/repository/ThingRepositorySpec.groovy b/guides/micronaut-oracle-autonomous-db/groovy/src/test/groovy/example/micronaut/repository/ThingRepositorySpec.groovy
index 2acb45aaf7..938aa00339 100644
--- a/guides/micronaut-oracle-autonomous-db/groovy/src/test/groovy/example/micronaut/repository/ThingRepositorySpec.groovy
+++ b/guides/micronaut-oracle-autonomous-db/groovy/src/test/groovy/example/micronaut/repository/ThingRepositorySpec.groovy
@@ -1,61 +1,80 @@
package example.micronaut.repository
+import com.github.dockerjava.api.model.Info
import example.micronaut.domain.Thing
-import example.micronaut.repository.ThingRepository
-import io.micronaut.test.extensions.spock.annotation.MicronautTest
+import io.micronaut.context.ApplicationContext
+import spock.lang.IgnoreIf
+import org.testcontainers.DockerClientFactory
import spock.lang.Specification
-import jakarta.inject.Inject
-import java.util.stream.Collectors
-
-@MicronautTest
class ThingRepositorySpec extends Specification {
- @Inject
- ThingRepository thingRepository
+ /**
+ * WARN t.gvenzl/oracle-xe:21-slim-faststart - The architecture 'amd64' for image 'gvenzl/oracle-xe:21-slim-faststart'
+ * (ID sha256:395e7780aaba5f8c33082bf533a17a4bffdb7bcdd58034702a1634fcbd3d1137) does not match the Docker server architecture 'arm64'.
+ * This will cause the container to execute much more slowly due to emulation and may lead to timeout failures.
+ */
+ static boolean dockerArchitecture() {
+ Info info = DockerClientFactory.instance().getInfo()
+ String architecture = info.getArchitecture()
+ if (!architecture) {
+ return true
+ }
+ architecture == "x86_64"
+ }
- void 'test findAll'() {
+ @IgnoreIf({ !dockerArchitecture() })
+ void testFindAll() {
+ given:
+ ApplicationContext applicationContext = ApplicationContext.run(Oracle.getConfiguration())
+ ThingRepository thingRepository = applicationContext.getBean(ThingRepository.class)
- when:
// clear out existing data; safe because each
// test runs in a transaction that's rolled back
+ when:
thingRepository.deleteAll()
then:
- !thingRepository.count()
+ 0 == thingRepository.count()
when:
thingRepository.saveAll(Arrays.asList(
- new Thing('t1'),
- new Thing('t2'),
- new Thing('t3')))
-
+ new Thing("t1"),
+ new Thing("t2"),
+ new Thing("t3")))
List things = thingRepository.findAll()
then:
- things.size() == 3
- ['t1', 't2', 't3'] == things.stream()
- .map(Thing::getName)
- .sorted()
- .collect(Collectors.toList())
+ 3 == things.size()
+ Arrays.asList("t1", "t2", "t3") ==
+ things.stream()
+ .map(Thing::getName)
+ .sorted()
+ .toList()
+ cleanup:
+ applicationContext.close()
}
- void 'test findByName'() {
+ @IgnoreIf({ !dockerArchitecture() })
+ void testFindByName() {
given:
- String name = UUID.randomUUID()
-
+ ApplicationContext applicationContext = ApplicationContext.run(Oracle.getConfiguration())
+ ThingRepository thingRepository = applicationContext.getBean(ThingRepository.class)
+ String name = UUID.randomUUID().toString()
when:
- Thing thing = thingRepository.findByName(name).orElse(null)
-
+ Thing thing = thingRepository.findByName(name).orElse(null);
then:
!thing
when:
- thingRepository.save(new Thing(name))
- thing = thingRepository.findByName(name).orElse(null)
+ thingRepository.save(new Thing(name));
+ thing = thingRepository.findByName(name).orElse(null);
then:
thing
name == thing.name
+
+ cleanup:
+ applicationContext.close()
}
}
diff --git a/guides/micronaut-oracle-autonomous-db/java/src/test/java/example/micronaut/repository/Oracle.java b/guides/micronaut-oracle-autonomous-db/java/src/test/java/example/micronaut/repository/Oracle.java
new file mode 100644
index 0000000000..7dffa6a6cc
--- /dev/null
+++ b/guides/micronaut-oracle-autonomous-db/java/src/test/java/example/micronaut/repository/Oracle.java
@@ -0,0 +1,37 @@
+package example.micronaut.repository;
+
+import org.testcontainers.containers.OracleContainer;
+
+import java.util.Map;
+
+public class Oracle {
+
+ public static OracleContainer oracle = new OracleContainer("gvenzl/oracle-xe:21-slim-faststart")
+ .withDatabaseName("testDB")
+ .withUsername("testUser")
+ .withPassword("testPassword");
+
+ public static Map getConfiguration() {
+ start();
+ return Map.of("datasources.default.url", oracle.getJdbcUrl(),
+ "datasources.default.username", oracle.getUsername(),
+ "datasources.default.password", oracle.getPassword(),
+ "datasources.default.driver-class-name", oracle.getDriverClassName());
+ }
+ public static void start() {
+ if (!oracle.isRunning()) {
+ oracle.start();
+ }
+ }
+
+ public static void stop() {
+ if (oracle.isRunning()) {
+ oracle.stop();
+ }
+ }
+
+ public static void close() {
+ oracle.close();
+ }
+
+}
diff --git a/guides/micronaut-oracle-autonomous-db/java/src/test/java/example/micronaut/repository/ThingRepositoryTest.java b/guides/micronaut-oracle-autonomous-db/java/src/test/java/example/micronaut/repository/ThingRepositoryTest.java
index a634c81770..049cbbc721 100644
--- a/guides/micronaut-oracle-autonomous-db/java/src/test/java/example/micronaut/repository/ThingRepositoryTest.java
+++ b/guides/micronaut-oracle-autonomous-db/java/src/test/java/example/micronaut/repository/ThingRepositoryTest.java
@@ -1,28 +1,40 @@
package example.micronaut.repository;
+import com.github.dockerjava.api.model.Info;
import example.micronaut.domain.Thing;
-import example.micronaut.repository.ThingRepository;
-import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
+import io.micronaut.context.ApplicationContext;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledIf;
+import org.testcontainers.DockerClientFactory;
-import jakarta.inject.Inject;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.*;
-@MicronautTest
class ThingRepositoryTest {
- @Inject
- ThingRepository thingRepository;
+ /**
+ * WARN t.gvenzl/oracle-xe:21-slim-faststart - The architecture 'amd64' for image 'gvenzl/oracle-xe:21-slim-faststart'
+ * (ID sha256:395e7780aaba5f8c33082bf533a17a4bffdb7bcdd58034702a1634fcbd3d1137) does not match the Docker server architecture 'arm64'.
+ * This will cause the container to execute much more slowly due to emulation and may lead to timeout failures.
+ */
+ boolean dockerArchitecture() {
+ Info info = DockerClientFactory.instance().getInfo();
+ String architecture = info.getArchitecture();
+ if (architecture == null) {
+ return true;
+ }
+ return architecture.equals("x86_64");
+ }
+ @EnabledIf("dockerArchitecture")
@Test
void testFindAll() {
+ ApplicationContext applicationContext = ApplicationContext.run(Oracle.getConfiguration());
+ ThingRepository thingRepository = applicationContext.getBean(ThingRepository.class);
// clear out existing data; safe because each
// test runs in a transaction that's rolled back
@@ -42,10 +54,15 @@ void testFindAll() {
.map(Thing::getName)
.sorted()
.collect(Collectors.toList()));
+ applicationContext.close();
}
+ @EnabledIf("dockerArchitecture")
@Test
void testFindByName() {
+ ApplicationContext applicationContext = ApplicationContext.run(Oracle.getConfiguration());
+ ThingRepository thingRepository = applicationContext.getBean(ThingRepository.class);
+
String name = UUID.randomUUID().toString();
Thing thing = thingRepository.findByName(name).orElse(null);
@@ -55,5 +72,6 @@ void testFindByName() {
thing = thingRepository.findByName(name).orElse(null);
assertNotNull(thing);
assertEquals(name, thing.getName());
+ applicationContext.close();
}
}
diff --git a/guides/micronaut-oracle-autonomous-db/kotlin/src/test/kotlin/example/micronaut/repository/Oracle.kt b/guides/micronaut-oracle-autonomous-db/kotlin/src/test/kotlin/example/micronaut/repository/Oracle.kt
new file mode 100644
index 0000000000..fa405263b8
--- /dev/null
+++ b/guides/micronaut-oracle-autonomous-db/kotlin/src/test/kotlin/example/micronaut/repository/Oracle.kt
@@ -0,0 +1,37 @@
+package example.micronaut.repository
+
+import org.testcontainers.containers.OracleContainer
+
+object Oracle {
+ var oracle = OracleContainer("gvenzl/oracle-xe:21-slim-faststart")
+ .withDatabaseName("testDB")
+ .withUsername("testUser")
+ .withPassword("testPassword")
+
+ val configuration: Map
+ get() {
+ start()
+ return java.util.Map.of(
+ "datasources.default.url", oracle.jdbcUrl,
+ "datasources.default.username", oracle.username,
+ "datasources.default.password", oracle.password,
+ "datasources.default.driver-class-name", oracle.driverClassName
+ )
+ }
+
+ fun start() {
+ if (!oracle.isRunning()) {
+ oracle.start()
+ }
+ }
+
+ fun stop() {
+ if (oracle.isRunning()) {
+ oracle.stop()
+ }
+ }
+
+ fun close() {
+ oracle.close()
+ }
+}
diff --git a/guides/micronaut-oracle-autonomous-db/kotlin/src/test/kotlin/example/micronaut/repository/ThingRepositoryTest.kt b/guides/micronaut-oracle-autonomous-db/kotlin/src/test/kotlin/example/micronaut/repository/ThingRepositoryTest.kt
index be188ef316..63ef4f0534 100644
--- a/guides/micronaut-oracle-autonomous-db/kotlin/src/test/kotlin/example/micronaut/repository/ThingRepositoryTest.kt
+++ b/guides/micronaut-oracle-autonomous-db/kotlin/src/test/kotlin/example/micronaut/repository/ThingRepositoryTest.kt
@@ -1,20 +1,33 @@
package example.micronaut.repository
import example.micronaut.domain.Thing
-import example.micronaut.repository.ThingRepository
-import io.micronaut.test.extensions.junit5.annotation.MicronautTest
-import org.junit.jupiter.api.Assertions.assertEquals
-import org.junit.jupiter.api.Assertions.assertNotNull
-import org.junit.jupiter.api.Assertions.assertNull
+import example.micronaut.repository.Oracle.configuration
+import io.micronaut.context.ApplicationContext
+import org.junit.jupiter.api.Assertions.*
import org.junit.jupiter.api.Test
-import java.util.UUID
+import org.junit.jupiter.api.condition.EnabledIf
+import org.testcontainers.DockerClientFactory
+import java.util.*
import java.util.stream.Collectors
-@MicronautTest
-class ThingRepositoryTest(private val thingRepository: ThingRepository) {
+class ThingRepositoryTest {
+ /**
+ * WARN t.gvenzl/oracle-xe:21-slim-faststart - The architecture 'amd64' for image 'gvenzl/oracle-xe:21-slim-faststart'
+ * (ID sha256:395e7780aaba5f8c33082bf533a17a4bffdb7bcdd58034702a1634fcbd3d1137) does not match the Docker server architecture 'arm64'.
+ * This will cause the container to execute much more slowly due to emulation and may lead to timeout failures.
+ */
+ fun dockerArchitecture(): Boolean {
+ val info = DockerClientFactory.instance().info
+ val architecture = info.architecture ?: return true
+ return architecture == "x86_64"
+ }
+
+ @EnabledIf("dockerArchitecture")
@Test
fun testFindAll() {
+ val applicationContext = ApplicationContext.run(configuration)
+ val thingRepository = applicationContext.getBean(ThingRepository::class.java)
// clear out existing data; safe because each
// test runs in a transaction that's rolled back
@@ -34,10 +47,16 @@ class ThingRepositoryTest(private val thingRepository: ThingRepository) {
.map(Thing::name)
.sorted()
.collect(Collectors.toList()))
+
+ applicationContext.close()
}
+ @EnabledIf("dockerArchitecture")
@Test
fun testFindByName() {
+ val applicationContext = ApplicationContext.run(configuration)
+ val thingRepository = applicationContext.getBean(ThingRepository::class.java)
+
val name = UUID.randomUUID().toString()
var thing = thingRepository.findByName(name).orElse(null)
@@ -47,5 +66,7 @@ class ThingRepositoryTest(private val thingRepository: ThingRepository) {
thing = thingRepository.findByName(name).orElse(null)
assertNotNull(thing)
assertEquals(name, thing.name)
+
+ applicationContext.close()
}
}
diff --git a/guides/micronaut-oracle-autonomous-db/metadata.json b/guides/micronaut-oracle-autonomous-db/metadata.json
index 25e8881288..7875aed612 100644
--- a/guides/micronaut-oracle-autonomous-db/metadata.json
+++ b/guides/micronaut-oracle-autonomous-db/metadata.json
@@ -5,8 +5,10 @@
"tags": ["oracle", "cloud", "database"],
"categories": ["Oracle Cloud"],
"publicationDate": "2021-05-17",
- "apps": [{
+ "apps": [
+ {
+ "excludeTest": ["DefaultTest"],
"name": "default",
- "features": ["yaml","data-jdbc", "flyway", "graalvm", "oracle-cloud-atp", "testcontainers", "testcontainers-oracle"]
+ "features": ["yaml","data-jdbc", "flyway", "graalvm", "oracle-cloud-atp", "testcontainers", "testcontainers-oracle-xe"]
}]
}
diff --git a/guides/micronaut-oracle-autonomous-db/src/test/resources/application-test.yml b/guides/micronaut-oracle-autonomous-db/src/test/resources/application-test.yml
index 8385f804dc..3a0bc1d371 100644
--- a/guides/micronaut-oracle-autonomous-db/src/test/resources/application-test.yml
+++ b/guides/micronaut-oracle-autonomous-db/src/test/resources/application-test.yml
@@ -1,11 +1,3 @@
-#tag::datasource[]
-datasources:
- default:
- url: jdbc:tc:oracle:thin:@/xe
- driverClassName: org.testcontainers.jdbc.ContainerDatabaseDriver
- username: system
- password: oracle
-#end::datasource[]
#tag::flyway[]
flyway:
datasources:
diff --git a/guides/micronaut-oracle-cloud-streaming/metadata.json b/guides/micronaut-oracle-cloud-streaming/metadata.json
index e94ac9483e..cd6e40c54a 100644
--- a/guides/micronaut-oracle-cloud-streaming/metadata.json
+++ b/guides/micronaut-oracle-cloud-streaming/metadata.json
@@ -6,6 +6,8 @@
"categories": ["Oracle Cloud"],
"publicationDate": "2021-07-30",
"zipIncludes": ["docker/docker-compose.yml"],
+ "skipGradleTests": true,
+ "skipMavenTests": true,
"apps": [
{
"name": "chess-game",
diff --git a/guides/micronaut-oracle-email-delivery/metadata.json b/guides/micronaut-oracle-email-delivery/metadata.json
index 3255f88d4d..738fa1fbf4 100644
--- a/guides/micronaut-oracle-email-delivery/metadata.json
+++ b/guides/micronaut-oracle-email-delivery/metadata.json
@@ -5,6 +5,8 @@
"tags": ["oracle", "cloud"],
"categories": ["Oracle Cloud", "Email"],
"publicationDate": "2022-05-17",
+ "skipGradleTests": true,
+ "skipMavenTests": true,
"apps": [{
"name": "default",
"features": ["yaml","email-javamail","email-template","views-thymeleaf", "serialization-jackson","validation"]
diff --git a/guides/micronaut-security-basicauth/groovy/src/main/groovy/example/micronaut/AuthenticationProviderUserPassword.groovy b/guides/micronaut-security-basicauth/groovy/src/main/groovy/example/micronaut/AuthenticationProviderUserPassword.groovy
index a889f7e044..a04049e8b8 100644
--- a/guides/micronaut-security-basicauth/groovy/src/main/groovy/example/micronaut/AuthenticationProviderUserPassword.groovy
+++ b/guides/micronaut-security-basicauth/groovy/src/main/groovy/example/micronaut/AuthenticationProviderUserPassword.groovy
@@ -1,6 +1,5 @@
package example.micronaut
-import groovy.transform.CompileStatic
import io.micronaut.core.annotation.Nullable
import io.micronaut.http.HttpRequest
import io.micronaut.security.authentication.AuthenticationProvider
@@ -11,21 +10,19 @@ import org.reactivestreams.Publisher
import reactor.core.publisher.Flux
import reactor.core.publisher.FluxSink
-@CompileStatic
@Singleton // <1>
class AuthenticationProviderUserPassword implements AuthenticationProvider> { // <2>
@Override
Publisher authenticate(@Nullable HttpRequest> httpRequest,
AuthenticationRequest, ?> authenticationRequest) {
- Flux.create({ emitter ->
- if ( authenticationRequest.identity == "sherlock" && authenticationRequest.secret == "password" ) {
+ Flux.create(emitter -> {
+ if (authenticationRequest.identity == "sherlock" && authenticationRequest.secret == "password") {
emitter.next(AuthenticationResponse.success((String) authenticationRequest.identity))
emitter.complete()
} else {
emitter.error(AuthenticationResponse.exception())
}
-
}, FluxSink.OverflowStrategy.ERROR)
}
}
diff --git a/guides/spring-boot-to-micronaut-application-class/metadata.json b/guides/spring-boot-to-micronaut-application-class/metadata.json
index c4d5713adb..2e6886c542 100644
--- a/guides/spring-boot-to-micronaut-application-class/metadata.json
+++ b/guides/spring-boot-to-micronaut-application-class/metadata.json
@@ -5,6 +5,7 @@
"tags": ["spring-boot"],
"categories": ["Spring Boot to Micronaut Framework"],
"publicationDate": "2022-09-13",
+ "languages": ["java"],
"apps": [
{
"framework": "Spring Boot",
diff --git a/guides/working-with-jooq-flyway-using-testcontainers/metadata.json b/guides/working-with-jooq-flyway-using-testcontainers/metadata.json
index fd3444b135..46b817016e 100644
--- a/guides/working-with-jooq-flyway-using-testcontainers/metadata.json
+++ b/guides/working-with-jooq-flyway-using-testcontainers/metadata.json
@@ -7,6 +7,7 @@
"publicationDate": "2022-09-13",
"languages": ["java"],
"buildTools": ["maven"],
+ "skipMavenTests": true,
"apps": [
{
"name": "testcontainers",
diff --git a/version.txt b/version.txt
index 561ad3349b..6aba2b245a 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-4.1.6
+4.2.0