X-Git-Url: http://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fchat%2Fbackend%2Fimplementation%2Fkafka%2FKafkaServicesConfiguration.java;h=d17c79c935550fabebe944a5254de278e968bc43;hb=d66fb5500e6572c15447f5231306df102d5227bd;hp=c4479ce5d09a90765bb9d791bbbf25c8547e0513;hpb=60777d1ca87e578e93ef29e6e4af98453ee199f9;p=demos%2Fkafka%2Fchat diff --git a/src/main/java/de/juplo/kafka/chat/backend/implementation/kafka/KafkaServicesConfiguration.java b/src/main/java/de/juplo/kafka/chat/backend/implementation/kafka/KafkaServicesConfiguration.java index c4479ce5..d17c79c9 100644 --- a/src/main/java/de/juplo/kafka/chat/backend/implementation/kafka/KafkaServicesConfiguration.java +++ b/src/main/java/de/juplo/kafka/chat/backend/implementation/kafka/KafkaServicesConfiguration.java @@ -1,10 +1,10 @@ -package de.juplo.kafka.chat.backend.persistence.kafka; +package de.juplo.kafka.chat.backend.implementation.kafka; import de.juplo.kafka.chat.backend.ChatBackendProperties; import de.juplo.kafka.chat.backend.domain.ChatHomeService; -import de.juplo.kafka.chat.backend.persistence.kafka.messages.AbstractMessageTo; -import de.juplo.kafka.chat.backend.persistence.kafka.messages.CommandCreateChatRoomTo; -import de.juplo.kafka.chat.backend.persistence.kafka.messages.EventChatMessageReceivedTo; +import de.juplo.kafka.chat.backend.implementation.kafka.messages.AbstractMessageTo; +import de.juplo.kafka.chat.backend.implementation.kafka.messages.CommandCreateChatRoomTo; +import de.juplo.kafka.chat.backend.implementation.kafka.messages.EventChatMessageReceivedTo; import org.apache.kafka.clients.consumer.Consumer; import org.apache.kafka.clients.consumer.ConsumerConfig; import org.apache.kafka.clients.consumer.KafkaConsumer; @@ -18,10 +18,12 @@ 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.JsonSerializer; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import java.time.Clock; import java.time.ZoneId; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Properties; @@ -34,7 +36,34 @@ import java.util.Properties; public class KafkaServicesConfiguration { @Bean - ChatHomeService kafkaChatHome( + KafkaServicesApplicationRunner kafkaServicesApplicationRunner( + ThreadPoolTaskExecutor taskExecutor, + ChatRoomChannel chatRoomChannel, + Consumer chatRoomChannelConsumer, + KafkaServicesApplicationRunner.WorkAssignor workAssignor) + { + return new KafkaServicesApplicationRunner( + taskExecutor, + chatRoomChannel, + chatRoomChannelConsumer, + workAssignor); + } + + @Bean + KafkaServicesApplicationRunner.WorkAssignor workAssignor( + ChatBackendProperties properties, + ChatRoomChannel chatRoomChannel) + { + return consumer -> + { + List topics = + List.of(properties.getKafka().getChatRoomChannelTopic()); + consumer.subscribe(topics, chatRoomChannel); + }; + } + + @Bean + ChatHomeService kafkaChatHome( ChatBackendProperties properties, ChatRoomChannel chatRoomChannel) {