X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fchat%2Fbackend%2Fpersistence%2Fkafka%2FKafkaChatRoomService.java;h=f80223489ae3cd71099ba36cd501aa230ec301bf;hb=28a98bfdbed0cf56697bece5efbe6eb52f331611;hp=3a8c2c6fba81715a2a3f4884f400ef5c7a8897e8;hpb=3dcdfa896eaecf9802fdc2af4e2bd4951b0f5f6a;p=demos%2Fkafka%2Fchat diff --git a/src/main/java/de/juplo/kafka/chat/backend/persistence/kafka/KafkaChatRoomService.java b/src/main/java/de/juplo/kafka/chat/backend/persistence/kafka/KafkaChatRoomService.java index 3a8c2c6f..f8022348 100644 --- a/src/main/java/de/juplo/kafka/chat/backend/persistence/kafka/KafkaChatRoomService.java +++ b/src/main/java/de/juplo/kafka/chat/backend/persistence/kafka/KafkaChatRoomService.java @@ -1,11 +1,8 @@ package de.juplo.kafka.chat.backend.persistence.kafka; import de.juplo.kafka.chat.backend.domain.ChatRoomService; -import de.juplo.kafka.chat.backend.domain.Message; -import de.juplo.kafka.chat.backend.domain.MessageMutationException; -import lombok.RequiredArgsConstructor; +import de.juplo.kafka.chat.backend.domain.Message;import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.kafka.clients.producer.ProducerRecord; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -18,7 +15,7 @@ import java.util.UUID; @Slf4j public class KafkaChatRoomService implements ChatRoomService { - private final KafkaChatHomeService kafkaChatHomeService; + private final ChatMessageChannel chatMessageChannel; private final UUID chatRoomId; private final LinkedHashMap messages = new LinkedHashMap<>(); @@ -30,21 +27,19 @@ public class KafkaChatRoomService implements ChatRoomService LocalDateTime timestamp, String text) { - return kafkaChatHomeService - .sendMessage(chatRoomId, key, timestamp, text) + return chatMessageChannel + .sendChatMessage(chatRoomId, key, timestamp, text) .doOnSuccess(message -> persistMessage(message)); } - public void persistMessage(Message message) + void persistMessage(Message message) { - messages.put(message.getKey(), message) + messages.put(message.getKey(), message); } @Override synchronized public Mono getMessage(Message.MessageKey key) { - // TODO: Aufrufe, auf eine Nachricht (einge gewisse Zeit) warten lassen - // und dann bedienen, wenn der der Callback vom Producer aufgerufen wird? return Mono.fromSupplier(() -> messages.get(key)); }