From b64cde4df257c1a7729024f280ad83532fadce80 Mon Sep 17 00:00:00 2001 From: vitaxa Date: Fri, 14 Nov 2025 16:52:50 +0300 Subject: [PATCH 1/7] Fix route change event serialization: - bump damsel --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index 110f558..16b8c9b 100644 --- a/pom.xml +++ b/pom.xml @@ -63,6 +63,7 @@ dev.vality damsel + 1.674-368f05b dev.vality.geck From 353b9227ddb2e0bddaf9d45e0c4d488fd1639620 Mon Sep 17 00:00:00 2001 From: vitaxa Date: Fri, 14 Nov 2025 17:07:53 +0300 Subject: [PATCH 2/7] fix test kafka image --- src/test/resources/testcontainers.properties | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 src/test/resources/testcontainers.properties diff --git a/src/test/resources/testcontainers.properties b/src/test/resources/testcontainers.properties new file mode 100644 index 0000000..f1b01e8 --- /dev/null +++ b/src/test/resources/testcontainers.properties @@ -0,0 +1,2 @@ +kafka.container.image=apache/kafka:3.8.0 + From 07626849209601d9e786a18b970cfcb2f0383b6f Mon Sep 17 00:00:00 2001 From: vitaxa Date: Fri, 14 Nov 2025 17:23:54 +0300 Subject: [PATCH 3/7] fix test kafka image [2] --- src/test/resources/application.yml | 17 +++++++++++++++++ src/test/resources/testcontainers.properties | 2 -- 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 src/test/resources/application.yml delete mode 100644 src/test/resources/testcontainers.properties diff --git a/src/test/resources/application.yml b/src/test/resources/application.yml new file mode 100644 index 0000000..6aa0d6f --- /dev/null +++ b/src/test/resources/application.yml @@ -0,0 +1,17 @@ +testcontainers: + kafka: + apache: + tag: '3.8.0' + +kafka: + topics: + invoice: + id: mg-invoice-100-2 + enabled: true + concurrency: 8 + topic: + webhook-dispatcher: + name: webhook-dispatcher-topic + produce: + enabled: true + diff --git a/src/test/resources/testcontainers.properties b/src/test/resources/testcontainers.properties deleted file mode 100644 index f1b01e8..0000000 --- a/src/test/resources/testcontainers.properties +++ /dev/null @@ -1,2 +0,0 @@ -kafka.container.image=apache/kafka:3.8.0 - From 0b70476fe1c0225588a0bd66c1f73858ef9f2920 Mon Sep 17 00:00:00 2001 From: vitaxa Date: Fri, 14 Nov 2025 17:37:01 +0300 Subject: [PATCH 4/7] fix test kafka image [3] --- src/test/resources/application.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/test/resources/application.yml b/src/test/resources/application.yml index 6aa0d6f..52b26e1 100644 --- a/src/test/resources/application.yml +++ b/src/test/resources/application.yml @@ -3,6 +3,16 @@ testcontainers: apache: tag: '3.8.0' +spring: + kafka: + bootstrap-servers: ${spring.kafka.bootstrap-servers} + client-id: hooker + consumer: + group-id: "HookerListener" + enable-auto-commit: false + auto-offset-reset: earliest + max-poll-records: 20 + kafka: topics: invoice: @@ -15,3 +25,12 @@ kafka: produce: enabled: true +service: + invoicing: + url: http://localhost:8022/v1/processing/invoicing + networkTimeout: 5000 + +limit: + perShop: 10 + perParty: 5 + From 8e0543b7bdd3669d6f52e5cb0a44c9e57bc4ba7a Mon Sep 17 00:00:00 2001 From: vitaxa Date: Fri, 14 Nov 2025 17:54:38 +0300 Subject: [PATCH 5/7] fix test kafka image [4] --- src/test/resources/application.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/test/resources/application.yml b/src/test/resources/application.yml index 52b26e1..93b75d7 100644 --- a/src/test/resources/application.yml +++ b/src/test/resources/application.yml @@ -5,19 +5,26 @@ testcontainers: spring: kafka: - bootstrap-servers: ${spring.kafka.bootstrap-servers} + bootstrap-servers: PLAINTEXT:9092 client-id: hooker consumer: group-id: "HookerListener" enable-auto-commit: false auto-offset-reset: earliest max-poll-records: 20 + datasource: + hikari: + data-source-properties: + search_path: hook,public + flyway: + schemas: hook + table: schema_version kafka: topics: invoice: id: mg-invoice-100-2 - enabled: true + enabled: false concurrency: 8 topic: webhook-dispatcher: From c13252f719a00445d4c75feec445856d0495076a Mon Sep 17 00:00:00 2001 From: vitaxa Date: Fri, 14 Nov 2025 18:09:50 +0300 Subject: [PATCH 6/7] fix test kafka image [5] --- src/test/java/dev/vality/hooker/config/KafkaTest.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/test/java/dev/vality/hooker/config/KafkaTest.java b/src/test/java/dev/vality/hooker/config/KafkaTest.java index 6120c31..0d958b1 100644 --- a/src/test/java/dev/vality/hooker/config/KafkaTest.java +++ b/src/test/java/dev/vality/hooker/config/KafkaTest.java @@ -1,19 +1,20 @@ package dev.vality.hooker.config; - -import dev.vality.testcontainers.annotations.KafkaConfig; -import dev.vality.testcontainers.annotations.kafka.KafkaTestcontainerSingleton; - import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import dev.vality.testcontainers.annotations.KafkaConfig; +import dev.vality.testcontainers.annotations.kafka.KafkaTestcontainerSingleton; +import dev.vality.testcontainers.annotations.kafka.constants.Provider; + @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @KafkaTestcontainerSingleton( properties = {"kafka.topics.invoice.enabled=true"}, - topicsKeys = {"kafka.topics.invoice.id"}) + topicsKeys = {"kafka.topics.invoice.id"}, + provider = Provider.APACHE) @KafkaConfig public @interface KafkaTest { } \ No newline at end of file From ddb3022e7a53c9ada1ea98ad3078497d56af6441 Mon Sep 17 00:00:00 2001 From: vitaxa Date: Fri, 14 Nov 2025 18:41:28 +0300 Subject: [PATCH 7/7] fix test kafka image [6] --- .../dev/vality/hooker/config/KafkaTest.java | 6 ------ .../kafka/MachineEventListenerKafkaTest.java | 20 +++++++++++++++++++ src/test/resources/application.yml | 5 ++--- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/test/java/dev/vality/hooker/config/KafkaTest.java b/src/test/java/dev/vality/hooker/config/KafkaTest.java index 0d958b1..1e81730 100644 --- a/src/test/java/dev/vality/hooker/config/KafkaTest.java +++ b/src/test/java/dev/vality/hooker/config/KafkaTest.java @@ -6,15 +6,9 @@ import java.lang.annotation.Target; import dev.vality.testcontainers.annotations.KafkaConfig; -import dev.vality.testcontainers.annotations.kafka.KafkaTestcontainerSingleton; -import dev.vality.testcontainers.annotations.kafka.constants.Provider; @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) -@KafkaTestcontainerSingleton( - properties = {"kafka.topics.invoice.enabled=true"}, - topicsKeys = {"kafka.topics.invoice.id"}, - provider = Provider.APACHE) @KafkaConfig public @interface KafkaTest { } \ No newline at end of file diff --git a/src/test/java/dev/vality/hooker/kafka/MachineEventListenerKafkaTest.java b/src/test/java/dev/vality/hooker/kafka/MachineEventListenerKafkaTest.java index e743751..f1c2348 100644 --- a/src/test/java/dev/vality/hooker/kafka/MachineEventListenerKafkaTest.java +++ b/src/test/java/dev/vality/hooker/kafka/MachineEventListenerKafkaTest.java @@ -13,7 +13,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.DynamicPropertyRegistry; +import org.springframework.test.context.DynamicPropertySource; import org.springframework.test.context.bean.override.mockito.MockitoBean; +import org.testcontainers.containers.KafkaContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; +import org.testcontainers.utility.DockerImageName; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -24,11 +30,25 @@ @KafkaTest @PostgresqlSpringBootITest @SpringBootTest +@Testcontainers class MachineEventListenerKafkaTest { public static final String SOURCE_ID = "source_id"; public static final String SOURCE_NS = "source_ns"; + @Container + private static final KafkaContainer kafkaContainer = new KafkaContainer( + DockerImageName.parse("confluentinc/cp-kafka:7.8.0")) + .withEnv("KAFKA_AUTO_CREATE_TOPICS_ENABLE", "true"); + + @DynamicPropertySource + static void kafkaProperties(DynamicPropertyRegistry registry) { + registry.add("kafka.bootstrap-servers", kafkaContainer::getBootstrapServers); + registry.add("spring.kafka.bootstrap-servers", kafkaContainer::getBootstrapServers); + registry.add("kafka.ssl.enabled", () -> "false"); + registry.add("kafka.topics.invoice.enabled", () -> "true"); + } + @Value("${kafka.topics.invoice.id}") private String invoiceTopic; diff --git a/src/test/resources/application.yml b/src/test/resources/application.yml index 93b75d7..8804d43 100644 --- a/src/test/resources/application.yml +++ b/src/test/resources/application.yml @@ -1,8 +1,7 @@ testcontainers: kafka: - apache: - tag: '3.8.0' - + confluent: + tag: '7.8.0' spring: kafka: bootstrap-servers: PLAINTEXT:9092