diff --git a/kafka-sample/spring-modulith-outbox-pattern/pom.xml b/kafka-sample/spring-modulith-outbox-pattern/pom.xml
index 3b781d95..5796e40d 100644
--- a/kafka-sample/spring-modulith-outbox-pattern/pom.xml
+++ b/kafka-sample/spring-modulith-outbox-pattern/pom.xml
@@ -144,11 +144,6 @@
postgresql
test
-
- com.h2database
- h2
- test
-
diff --git a/kafka-sample/spring-modulith-outbox-pattern/src/main/java/com/example/outboxpattern/config/GlobalExceptionHandler.java b/kafka-sample/spring-modulith-outbox-pattern/src/main/java/com/example/outboxpattern/exception/GlobalExceptionHandler.java
similarity index 96%
rename from kafka-sample/spring-modulith-outbox-pattern/src/main/java/com/example/outboxpattern/config/GlobalExceptionHandler.java
rename to kafka-sample/spring-modulith-outbox-pattern/src/main/java/com/example/outboxpattern/exception/GlobalExceptionHandler.java
index 618fd7e2..45bfb841 100644
--- a/kafka-sample/spring-modulith-outbox-pattern/src/main/java/com/example/outboxpattern/config/GlobalExceptionHandler.java
+++ b/kafka-sample/spring-modulith-outbox-pattern/src/main/java/com/example/outboxpattern/exception/GlobalExceptionHandler.java
@@ -1,6 +1,5 @@
-package com.example.outboxpattern.config;
+package com.example.outboxpattern.exception;
-import com.example.outboxpattern.exception.ResourceNotFoundException;
import java.net.URI;
import java.time.Instant;
import java.util.Comparator;
diff --git a/kafka-sample/spring-modulith-outbox-pattern/src/main/java/com/example/outboxpattern/order/internal/entities/Order.java b/kafka-sample/spring-modulith-outbox-pattern/src/main/java/com/example/outboxpattern/order/internal/entities/Order.java
index 785c3835..1556f718 100644
--- a/kafka-sample/spring-modulith-outbox-pattern/src/main/java/com/example/outboxpattern/order/internal/entities/Order.java
+++ b/kafka-sample/spring-modulith-outbox-pattern/src/main/java/com/example/outboxpattern/order/internal/entities/Order.java
@@ -1,6 +1,15 @@
package com.example.outboxpattern.order.internal.entities;
-import jakarta.persistence.*;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
diff --git a/kafka-sample/spring-modulith-outbox-pattern/src/main/java/com/example/outboxpattern/order/internal/request/OrderItemRequest.java b/kafka-sample/spring-modulith-outbox-pattern/src/main/java/com/example/outboxpattern/order/internal/request/OrderItemRequest.java
index 81637d21..443b441c 100644
--- a/kafka-sample/spring-modulith-outbox-pattern/src/main/java/com/example/outboxpattern/order/internal/request/OrderItemRequest.java
+++ b/kafka-sample/spring-modulith-outbox-pattern/src/main/java/com/example/outboxpattern/order/internal/request/OrderItemRequest.java
@@ -1,7 +1,10 @@
package com.example.outboxpattern.order.internal.request;
import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.Positive;
import java.math.BigDecimal;
public record OrderItemRequest(
- @NotBlank(message = "Product cannot be blank") String productCode, BigDecimal productPrice, int quantity) {}
+ @NotBlank(message = "Product cannot be blank") String productCode,
+ BigDecimal productPrice,
+ @Positive(message = "quantity cant be 0 or negative") Integer quantity) {}
diff --git a/kafka-sample/spring-modulith-outbox-pattern/src/main/java/com/example/outboxpattern/producer/Producer.java b/kafka-sample/spring-modulith-outbox-pattern/src/main/java/com/example/outboxpattern/producer/Producer.java
index 24a89643..29f62902 100644
--- a/kafka-sample/spring-modulith-outbox-pattern/src/main/java/com/example/outboxpattern/producer/Producer.java
+++ b/kafka-sample/spring-modulith-outbox-pattern/src/main/java/com/example/outboxpattern/producer/Producer.java
@@ -14,8 +14,9 @@
public class Producer {
@ApplicationModuleListener
- void onOrderResponseEvent(OrderRecord event) {
- publish(event.id());
+ void onOrderResponseEvent(OrderRecord orderRecord) {
+ log.info("Received Event :{}", orderRecord);
+ publish(orderRecord.id());
}
private void publish(Long orderId) {
diff --git a/kafka-sample/spring-modulith-outbox-pattern/src/test/java/com/example/outboxpattern/order/internal/OrderModuleTests.java b/kafka-sample/spring-modulith-outbox-pattern/src/test/java/com/example/outboxpattern/order/internal/OrderModuleIntTests.java
similarity index 91%
rename from kafka-sample/spring-modulith-outbox-pattern/src/test/java/com/example/outboxpattern/order/internal/OrderModuleTests.java
rename to kafka-sample/spring-modulith-outbox-pattern/src/test/java/com/example/outboxpattern/order/internal/OrderModuleIntTests.java
index e54260a3..2cc55d30 100644
--- a/kafka-sample/spring-modulith-outbox-pattern/src/test/java/com/example/outboxpattern/order/internal/OrderModuleTests.java
+++ b/kafka-sample/spring-modulith-outbox-pattern/src/test/java/com/example/outboxpattern/order/internal/OrderModuleIntTests.java
@@ -4,6 +4,7 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;
+import com.example.outboxpattern.common.ContainersConfig;
import com.example.outboxpattern.order.OrderRecord;
import com.example.outboxpattern.order.internal.request.OrderItemRequest;
import com.example.outboxpattern.order.internal.request.OrderRequest;
@@ -14,6 +15,7 @@
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.context.annotation.Import;
import org.springframework.kafka.core.KafkaOperations;
import org.springframework.kafka.support.SendResult;
import org.springframework.modulith.test.ApplicationModuleTest;
@@ -21,7 +23,8 @@
@Slf4j
@ApplicationModuleTest
-class OrderModuleTests {
+@Import(ContainersConfig.class)
+class OrderModuleIntTests {
@MockBean
KafkaOperations, ?> kafkaOperations;