From: Kai Moritz Date: Sun, 26 May 2024 09:34:56 +0000 (+0200) Subject: splitter: 1.1.6 - Moved config `SplitterApplicationConfiguration` -- ALIGN X-Git-Tag: splitter-1.2.0~16 X-Git-Url: http://juplo.de/gitweb/?a=commitdiff_plain;h=995e7b14e49db4a6f82dc682cb32f970973d8b82;p=demos%2Fkafka%2Fwordcount splitter: 1.1.6 - Moved config `SplitterApplicationConfiguration` -- ALIGN --- diff --git a/pom.xml b/pom.xml index 4cca9b1..51f085a 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ de.juplo.kafka.wordcount splitter - 1.1.5 + 1.1.6 Wordcount-Splitter Stream-processor of the multi-user wordcount-example, that splits the sentences up into single words diff --git a/src/main/java/de/juplo/kafka/wordcount/splitter/SplitterApplication.java b/src/main/java/de/juplo/kafka/wordcount/splitter/SplitterApplication.java index f01460f..5b9d91d 100644 --- a/src/main/java/de/juplo/kafka/wordcount/splitter/SplitterApplication.java +++ b/src/main/java/de/juplo/kafka/wordcount/splitter/SplitterApplication.java @@ -1,65 +1,12 @@ package de.juplo.kafka.wordcount.splitter; -import lombok.extern.slf4j.Slf4j; -import org.apache.kafka.clients.consumer.ConsumerConfig; -import org.apache.kafka.common.serialization.Serdes; -import org.apache.kafka.streams.StreamsConfig; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.context.annotation.Bean; -import org.springframework.kafka.support.serializer.JsonDeserializer; -import org.springframework.kafka.support.serializer.JsonSerde; -import org.springframework.kafka.support.serializer.JsonSerializer; - -import java.util.Properties; -import java.util.concurrent.CompletableFuture; - -import static org.apache.kafka.streams.errors.StreamsUncaughtExceptionHandler.StreamThreadExceptionResponse.SHUTDOWN_CLIENT; @SpringBootApplication -@EnableConfigurationProperties(SplitterApplicationProperties.class) -@Slf4j public class SplitterApplication { - @Bean(initMethod = "start", destroyMethod = "stop") - public SplitterStreamProcessor streamProcessor( - SplitterApplicationProperties properties, - ConfigurableApplicationContext context) - { - Properties propertyMap = new Properties(); - - propertyMap.put(StreamsConfig.APPLICATION_ID_CONFIG, properties.getApplicationId()); - propertyMap.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, properties.getBootstrapServer()); - propertyMap.put(StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG, Serdes.StringSerde.class.getName()); - propertyMap.put(StreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG, JsonSerde.class.getName()); - propertyMap.put(JsonDeserializer.TRUSTED_PACKAGES, Recording.class.getName() ); - propertyMap.put(JsonDeserializer.VALUE_DEFAULT_TYPE, Recording.class.getName()); - propertyMap.put(JsonSerializer.ADD_TYPE_INFO_HEADERS, false); - propertyMap.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest"); - - SplitterStreamProcessor streamProcessor = new SplitterStreamProcessor( - properties.getInputTopic(), - properties.getOutputTopic(), - propertyMap); - - streamProcessor.streams.setUncaughtExceptionHandler((Throwable e) -> - { - log.error("Unexpected error!", e); - CompletableFuture.runAsync(() -> - { - log.info("Stopping application..."); - SpringApplication.exit(context, () -> 1); - }); - return SHUTDOWN_CLIENT; - }); - - - return streamProcessor; - } - public static void main(String[] args) { SpringApplication.run(SplitterApplication.class, args); diff --git a/src/main/java/de/juplo/kafka/wordcount/splitter/SplitterApplicationConfiguration.java b/src/main/java/de/juplo/kafka/wordcount/splitter/SplitterApplicationConfiguration.java index 6be4b59..ead41f8 100644 --- a/src/main/java/de/juplo/kafka/wordcount/splitter/SplitterApplicationConfiguration.java +++ b/src/main/java/de/juplo/kafka/wordcount/splitter/SplitterApplicationConfiguration.java @@ -5,10 +5,10 @@ import org.apache.kafka.clients.consumer.ConsumerConfig; import org.apache.kafka.common.serialization.Serdes; import org.apache.kafka.streams.StreamsConfig; import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.kafka.support.serializer.JsonDeserializer; import org.springframework.kafka.support.serializer.JsonSerde; import org.springframework.kafka.support.serializer.JsonSerializer; @@ -19,7 +19,7 @@ import java.util.concurrent.CompletableFuture; import static org.apache.kafka.streams.errors.StreamsUncaughtExceptionHandler.StreamThreadExceptionResponse.SHUTDOWN_CLIENT; -@SpringBootApplication +@Configuration @EnableConfigurationProperties(SplitterApplicationProperties.class) @Slf4j public class SplitterApplicationConfiguration @@ -35,7 +35,7 @@ public class SplitterApplicationConfiguration propertyMap.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, properties.getBootstrapServer()); propertyMap.put(StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG, Serdes.StringSerde.class.getName()); propertyMap.put(StreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG, JsonSerde.class.getName()); - propertyMap.put(JsonDeserializer.TRUSTED_PACKAGES, Recording.class.getName() ); + propertyMap.put(JsonDeserializer.TRUSTED_PACKAGES, SplitterApplication.class.getName()); propertyMap.put(JsonDeserializer.VALUE_DEFAULT_TYPE, Recording.class.getName()); propertyMap.put(JsonSerializer.ADD_TYPE_INFO_HEADERS, false); propertyMap.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest"); @@ -46,22 +46,16 @@ public class SplitterApplicationConfiguration propertyMap); streamProcessor.streams.setUncaughtExceptionHandler((Throwable e) -> - { - log.error("Unexpected error!", e); - CompletableFuture.runAsync(() -> { - log.info("Stopping application..."); - SpringApplication.exit(context, () -> 1); + log.error("Unexpected error!", e); + CompletableFuture.runAsync(() -> + { + log.info("Stopping application..."); + SpringApplication.exit(context, () -> 1); + }); + return SHUTDOWN_CLIENT; }); - return SHUTDOWN_CLIENT; - }); - return streamProcessor; } - - public static void main(String[] args) - { - SpringApplication.run(SplitterApplicationConfiguration.class, args); - } }