projects
/
demos
/
kafka
/
chat
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
NG
[demos/kafka/chat]
/
src
/
main
/
java
/
de
/
juplo
/
kafka
/
chat
/
backend
/
persistence
/
kafka
/
KafkaChatRoomService.java
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
3a8c2c6
..
f802234
100644
(file)
--- 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;
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 lombok.extern.slf4j.Slf4j;
-import org.apache.kafka.clients.producer.ProducerRecord;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@@
-18,7
+15,7
@@
import java.util.UUID;
@Slf4j
public class KafkaChatRoomService implements ChatRoomService
{
@Slf4j
public class KafkaChatRoomService implements ChatRoomService
{
- private final
KafkaChatHomeService kafkaChatHomeService
;
+ private final
ChatMessageChannel chatMessageChannel
;
private final UUID chatRoomId;
private final LinkedHashMap<Message.MessageKey, Message> messages = new LinkedHashMap<>();
private final UUID chatRoomId;
private final LinkedHashMap<Message.MessageKey, Message> messages = new LinkedHashMap<>();
@@
-30,21
+27,19
@@
public class KafkaChatRoomService implements ChatRoomService
LocalDateTime timestamp,
String text)
{
LocalDateTime timestamp,
String text)
{
- return
kafkaChatHomeService
- .sendMessage(chatRoomId, key, timestamp, text)
+ return
chatMessageChannel
+ .send
Chat
Message(chatRoomId, key, timestamp, text)
.doOnSuccess(message -> persistMessage(message));
}
.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<Message> getMessage(Message.MessageKey key)
{
}
@Override
synchronized public Mono<Message> 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));
}
return Mono.fromSupplier(() -> messages.get(key));
}