]> juplo.de Git - demos/kafka/training/commitdiff
Umstellung auf die Message-Bibliothek sumup-messages springkafka/spring-producer--kafkatemplate--messageconverter--messages
authorKai Moritz <kai@juplo.de>
Thu, 11 Jun 2026 17:19:06 +0000 (19:19 +0200)
committerKai Moritz <kai@juplo.de>
Thu, 11 Jun 2026 17:19:06 +0000 (19:19 +0200)
build.gradle
pom.xml
src/main/java/de/juplo/kafka/AddNumberMessage.java [deleted file]
src/main/java/de/juplo/kafka/ApplicationConfiguration.java
src/main/java/de/juplo/kafka/CalculateSumMessage.java [deleted file]
src/main/java/de/juplo/kafka/ExampleProducer.java
src/main/java/de/juplo/kafka/SumupMessage.java [deleted file]

index f97308f5961c8a2683c36f855126dacbc0395f06..6e259880965a6ebd200aaabb10fd746212f5ce36 100644 (file)
@@ -29,6 +29,7 @@ dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-actuator'
        implementation 'org.springframework.boot:spring-boot-starter-validation'
        implementation 'org.springframework.boot:spring-boot-starter-web'
+       implementation 'de.juplo.messages:sumup-messages:1.0-SNAPSHOT'
        compileOnly 'org.projectlombok:lombok'
        developmentOnly 'org.springframework.boot:spring-boot-devtools'
        annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
diff --git a/pom.xml b/pom.xml
index 0d31c7f2183ea4b1b2a179b1ace8f72ed7d573bc..c82257b6c3bf9331a23cc75004469cccc3ba6c01 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -19,6 +19,7 @@
 
   <properties>
     <java.version>21</java.version>
+    <sumup-messages.version>1.0-SNAPSHOT</sumup-messages.version>
   </properties>
 
   <dependencies>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-kafka</artifactId>
     </dependency>
+    <dependency>
+      <groupId>de.juplo.messages</groupId>
+      <artifactId>sumup-messages</artifactId>
+      <version>${sumup-messages.version}</version>
+    </dependency>
     <dependency>
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
diff --git a/src/main/java/de/juplo/kafka/AddNumberMessage.java b/src/main/java/de/juplo/kafka/AddNumberMessage.java
deleted file mode 100644 (file)
index deb6350..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-package de.juplo.kafka;
-
-import lombok.Value;
-
-
-@Value
-public class AddNumberMessage implements SumupMessage
-{
-  private final int number;
-  private final int next;
-}
index aac39623a971a19d3c8226ccdbe372e6d0b12e17..dc266292ce74013842a06c1c8f421a5a74efddb2 100644 (file)
@@ -1,5 +1,8 @@
 package de.juplo.kafka;
 
+import de.juplo.messages.Add;
+import de.juplo.messages.Calculate;
+import de.juplo.messages.Message;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.ConfigurableApplicationContext;
@@ -25,7 +28,7 @@ public class ApplicationConfiguration
   public ExampleProducer exampleProducer(
     @Value("${spring.kafka.client-id}") String clientId,
     ApplicationProperties properties,
-    KafkaTemplate<String, SumupMessage> kafkaTemplate,
+    KafkaTemplate<String, Message> kafkaTemplate,
     ConfigurableApplicationContext applicationContext)
   {
     return
@@ -41,11 +44,11 @@ public class ApplicationConfiguration
   }
 
   @Bean
-  public KafkaTemplate<String, SumupMessage> kafkaTemplate(
-    ProducerFactory<String, SumupMessage> producerFactory,
+  public KafkaTemplate<String, Message> kafkaTemplate(
+    ProducerFactory<String, Message> producerFactory,
     JacksonJsonMessageConverter jacksonJsonMessageConverter) {
 
-    KafkaTemplate<String, SumupMessage> template = new KafkaTemplate<>(producerFactory);
+    KafkaTemplate<String, Message> template = new KafkaTemplate<>(producerFactory);
     template.setMessageConverter(jacksonJsonMessageConverter);
 
     return template;
@@ -60,8 +63,8 @@ public class ApplicationConfiguration
     // Verwende eine einfache, kurze Type-ID anstatt FQN
     typeMapper.setTypePrecedence(JacksonJavaTypeMapper.TypePrecedence.TYPE_ID);
     Map<String, Class<?>> typeMappings = new HashMap<>();
-    typeMappings.put("ADD", AddNumberMessage.class);
-    typeMappings.put("CALC", CalculateSumMessage.class);
+    typeMappings.put("ADD", Add.class);
+    typeMappings.put("CALC", Calculate.class);
     typeMapper.setIdClassMapping(typeMappings);
 
     converter.setTypeMapper(typeMapper);
diff --git a/src/main/java/de/juplo/kafka/CalculateSumMessage.java b/src/main/java/de/juplo/kafka/CalculateSumMessage.java
deleted file mode 100644 (file)
index 6aa0121..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-package de.juplo.kafka;
-
-
-import lombok.Value;
-
-
-@Value
-public class CalculateSumMessage implements SumupMessage
-{
-  private final int number;
-}
index 8f52ce4c324651f8aafab8187eb959c8f96e1d45..b05a84ad44c5f7f1a943e0b092e68d59b991c7f6 100644 (file)
@@ -1,10 +1,10 @@
 package de.juplo.kafka;
 
+import de.juplo.messages.*;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.kafka.clients.producer.RecordMetadata;
 import org.springframework.kafka.core.KafkaTemplate;
 import org.springframework.kafka.support.KafkaHeaders;
-import org.springframework.messaging.Message;
 import org.springframework.messaging.support.MessageBuilder;
 
 import java.time.Duration;
@@ -16,7 +16,7 @@ public class ExampleProducer implements Runnable
   private final String id;
   private final String topic;
   private final Duration throttle;
-  private final KafkaTemplate<String, SumupMessage> kafkaTemplate;
+  private final KafkaTemplate<String, Message> kafkaTemplate;
   private final Thread workerThread;
   private final Runnable closeCallback;
 
@@ -28,7 +28,7 @@ public class ExampleProducer implements Runnable
     String id,
     String topic,
     Duration throttle,
-    KafkaTemplate<String, SumupMessage> kafkaTemplate,
+    KafkaTemplate<String, Message> kafkaTemplate,
     Runnable closeCallback)
   {
     this.id = id;
@@ -53,9 +53,9 @@ public class ExampleProducer implements Runnable
       for (; running; i++)
       {
         int number = (int) i % 10;
-        SumupMessage message = (i % 7 == 0)
-          ? new CalculateSumMessage(number)
-          : new AddNumberMessage(number, (int)i);
+        Message message = (i % 7 == 0)
+          ? Calculate.builder().number(number).build()
+          : Add.builder().number(number).next((int)i).build();
 
         send(Long.toString(number), message);
 
@@ -84,11 +84,11 @@ public class ExampleProducer implements Runnable
     }
   }
 
-  void send(String key, SumupMessage value)
+  void send(String key, de.juplo.messages.Message value)
   {
     final long sendRequested = System.currentTimeMillis();
 
-    Message<SumupMessage> message = MessageBuilder
+    org.springframework.messaging.Message<Message> message = MessageBuilder
       .withPayload(value)
       .setHeader(KafkaHeaders.TOPIC, topic)
       .setHeader(KafkaHeaders.KEY, key)
diff --git a/src/main/java/de/juplo/kafka/SumupMessage.java b/src/main/java/de/juplo/kafka/SumupMessage.java
deleted file mode 100644 (file)
index 739efd1..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-package de.juplo.kafka;
-
-public interface SumupMessage
-{
-}