diff --git a/patterns-modules/axon/pom.xml b/patterns-modules/axon/pom.xml
index 4d83f8f9e6..bdf1bf2e41 100644
--- a/patterns-modules/axon/pom.xml
+++ b/patterns-modules/axon/pom.xml
@@ -9,9 +9,9 @@
com.baeldung
- parent-boot-2
+ parent-boot-3
0.0.1-SNAPSHOT
- ../../parent-boot-2
+ ../../parent-boot-3
@@ -74,12 +74,6 @@
${reactor.version}
test
-
- de.flapdoodle.embed
- de.flapdoodle.embed.mongo
- ${de.flapdoodle.embed.mongo.version}
- test
-
org.awaitility
awaitility
@@ -95,6 +89,17 @@
reactor-netty-http
test
+
+ org.testcontainers
+ junit-jupiter
+ test
+
+
+ org.testcontainers
+ mongodb
+ ${mongodb.testcontainer.version}
+ test
+
@@ -114,9 +119,9 @@
- 4.6.3
- 3.4.8
+ 4.9.3
3.6.0
+ 1.17.6
\ No newline at end of file
diff --git a/patterns-modules/axon/src/main/java/com/baeldung/axon/querymodel/MongoOrdersEventHandler.java b/patterns-modules/axon/src/main/java/com/baeldung/axon/querymodel/MongoOrdersEventHandler.java
index 4da98a9f97..1ee7a1465a 100644
--- a/patterns-modules/axon/src/main/java/com/baeldung/axon/querymodel/MongoOrdersEventHandler.java
+++ b/patterns-modules/axon/src/main/java/com/baeldung/axon/querymodel/MongoOrdersEventHandler.java
@@ -18,7 +18,6 @@ import com.mongodb.client.model.IndexOptions;
import com.mongodb.client.model.Indexes;
import com.mongodb.client.result.UpdateResult;
-import groovyjarjarantlr4.v4.runtime.misc.NotNull;
import org.axonframework.config.ProcessingGroup;
import org.axonframework.eventhandling.EventHandler;
@@ -30,6 +29,7 @@ import org.reactivestreams.Publisher;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Profile;
+import org.springframework.lang.NonNull;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Flux;
@@ -172,7 +172,7 @@ public class MongoOrdersEventHandler implements OrdersEventHandler {
.toString());
}
- private Order documentToOrder(@NotNull Document document) {
+ private Order documentToOrder(@NonNull Document document) {
Order order = new Order(document.getString(ORDER_ID_PROPERTY_NAME));
Document products = document.get(PRODUCTS_PROPERTY_NAME, Document.class);
products.forEach((k, v) -> order.getProducts()
diff --git a/patterns-modules/axon/src/test/java/com/baeldung/axon/querymodel/MongoOrdersEventHandlerLiveTest.java b/patterns-modules/axon/src/test/java/com/baeldung/axon/querymodel/MongoOrdersEventHandlerLiveTest.java
new file mode 100644
index 0000000000..bc05b90480
--- /dev/null
+++ b/patterns-modules/axon/src/test/java/com/baeldung/axon/querymodel/MongoOrdersEventHandlerLiveTest.java
@@ -0,0 +1,36 @@
+package com.baeldung.axon.querymodel;
+
+import com.mongodb.client.MongoClient;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest;
+import org.springframework.test.context.DynamicPropertyRegistry;
+import org.springframework.test.context.DynamicPropertySource;
+import org.testcontainers.containers.MongoDBContainer;
+import org.testcontainers.junit.jupiter.Container;
+
+@DataMongoTest
+public class MongoOrdersEventHandlerLiveTest extends AbstractOrdersEventHandlerUnitTest {
+
+ @Autowired
+ MongoClient mongoClient;
+
+ @Container
+ static MongoDBContainer mongoDBContainer = new MongoDBContainer("mongo:6.0").withExposedPorts(27017);
+
+ @DynamicPropertySource
+ static void mongoDbProperties(DynamicPropertyRegistry registry) {
+
+ mongoDBContainer.start();
+ registry.add("spring.data.mongodb.uri", mongoDBContainer::getReplicaSetUrl);
+ }
+
+
+
+ @Override
+ protected OrdersEventHandler getHandler() {
+ mongoClient.getDatabase("axonframework")
+ .drop();
+ return new MongoOrdersEventHandler(mongoClient, emitter);
+ }
+}
diff --git a/patterns-modules/axon/src/test/java/com/baeldung/axon/querymodel/MongoOrdersEventHandlerUnitTest.java b/patterns-modules/axon/src/test/java/com/baeldung/axon/querymodel/MongoOrdersEventHandlerUnitTest.java
deleted file mode 100644
index c183294dc1..0000000000
--- a/patterns-modules/axon/src/test/java/com/baeldung/axon/querymodel/MongoOrdersEventHandlerUnitTest.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.baeldung.axon.querymodel;
-
-import com.mongodb.client.MongoClient;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest;
-
-@DataMongoTest
-public class MongoOrdersEventHandlerUnitTest extends AbstractOrdersEventHandlerUnitTest {
-
- @Autowired
- MongoClient mongoClient;
-
- @Override
- protected OrdersEventHandler getHandler() {
- mongoClient.getDatabase("axonframework")
- .drop();
- return new MongoOrdersEventHandler(mongoClient, emitter);
- }
-}