projects
/
demos
/
kafka
/
chat
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
test: Proofed, that there is an NPE in `ShardedChatHome.getChatRoom()`
[demos/kafka/chat]
/
src
/
main
/
java
/
de
/
juplo
/
kafka
/
chat
/
backend
/
persistence
/
inmemory
/
InMemoryChatRoomFactory.java
diff --git
a/src/main/java/de/juplo/kafka/chat/backend/persistence/inmemory/InMemoryChatRoomFactory.java
b/src/main/java/de/juplo/kafka/chat/backend/persistence/inmemory/InMemoryChatRoomFactory.java
index
3e1d360
..
2bde236
100644
(file)
--- a/
src/main/java/de/juplo/kafka/chat/backend/persistence/inmemory/InMemoryChatRoomFactory.java
+++ b/
src/main/java/de/juplo/kafka/chat/backend/persistence/inmemory/InMemoryChatRoomFactory.java
@@
-1,9
+1,6
@@
package de.juplo.kafka.chat.backend.persistence.inmemory;
package de.juplo.kafka.chat.backend.persistence.inmemory;
-import de.juplo.kafka.chat.backend.domain.ShardingStrategy;
-import de.juplo.kafka.chat.backend.domain.ChatRoom;
-import de.juplo.kafka.chat.backend.domain.ChatRoomFactory;
-import de.juplo.kafka.chat.backend.domain.ChatRoomService;
+import de.juplo.kafka.chat.backend.domain.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import reactor.core.publisher.Flux;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import reactor.core.publisher.Flux;
@@
-17,16
+14,20
@@
import java.util.UUID;
@Slf4j
public class InMemoryChatRoomFactory implements ChatRoomFactory
{
@Slf4j
public class InMemoryChatRoomFactory implements ChatRoomFactory
{
+ private final InMemoryChatHomeService chatHomeService;
private final ShardingStrategy shardingStrategy;
private final Clock clock;
private final int bufferSize;
@Override
private final ShardingStrategy shardingStrategy;
private final Clock clock;
private final int bufferSize;
@Override
- public Mono<ChatRoom> createChatRoom(UUID id, String name)
+ public Mono<ChatRoom
Info
> createChatRoom(UUID id, String name)
{
log.info("Creating ChatRoom with buffer-size {}", bufferSize);
{
log.info("Creating ChatRoom with buffer-size {}", bufferSize);
+ int shard = shardingStrategy.selectShard(id);
ChatRoomService service = new InMemoryChatRoomService(Flux.empty());
ChatRoomService service = new InMemoryChatRoomService(Flux.empty());
- return Mono.just(new ChatRoom(id, name, clock, service, bufferSize));
+ ChatRoom chatRoom = new ChatRoom(id, name, shard, clock, service, bufferSize);
+ chatHomeService.putChatRoom(chatRoom);
+ return Mono.just(chatRoom);
}
}
}
}