projects
/
demos
/
kafka
/
chat
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactor: Moved `FilesStorageStrategy` in its own package -- Move
[demos/kafka/chat]
/
src
/
main
/
java
/
de
/
juplo
/
kafka
/
chat
/
backend
/
ChatBackendConfiguration.java
diff --git
a/src/main/java/de/juplo/kafka/chat/backend/ChatBackendConfiguration.java
b/src/main/java/de/juplo/kafka/chat/backend/ChatBackendConfiguration.java
index
aea5f8e
..
33734a7
100644
(file)
--- a/
src/main/java/de/juplo/kafka/chat/backend/ChatBackendConfiguration.java
+++ b/
src/main/java/de/juplo/kafka/chat/backend/ChatBackendConfiguration.java
@@
-2,10
+2,11
@@
package de.juplo.kafka.chat.backend;
import de.juplo.kafka.chat.backend.domain.ChatHome;
import com.fasterxml.jackson.databind.ObjectMapper;
import de.juplo.kafka.chat.backend.domain.ChatHome;
import com.fasterxml.jackson.databind.ObjectMapper;
-import de.juplo.kafka.chat.backend.domain.Chat
roomFactory
;
-import de.juplo.kafka.chat.backend.persistence.
InMemoryChatroomFactory
;
-import de.juplo.kafka.chat.backend.persistence.
LocalJsonFiles
StorageStrategy;
+import de.juplo.kafka.chat.backend.domain.Chat
HomeService
;
+import de.juplo.kafka.chat.backend.persistence.
inmemory.InMemoryChatHomeService
;
+import de.juplo.kafka.chat.backend.persistence.
filestorage.File
StorageStrategy;
import de.juplo.kafka.chat.backend.persistence.StorageStrategy;
import de.juplo.kafka.chat.backend.persistence.StorageStrategy;
+import de.juplo.kafka.chat.backend.persistence.inmemory.InMemoryChatRoomService;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@
-19,31
+20,35
@@
import java.time.Clock;
public class ChatBackendConfiguration
{
@Bean
public class ChatBackendConfiguration
{
@Bean
- public ChatHome chatHome(
- ChatroomFactory chatroomFactory,
- StorageStrategy storageStrategy)
+ public ChatHome chatHome(ChatHomeService chatHomeService)
{
{
- return new ChatHome(
- storageStrategy.readChatrooms().collectMap(chatroom -> chatroom.getId()).block(),
- chatroomFactory);
+ return new ChatHome(chatHomeService);
}
@Bean
}
@Bean
-
public StorageStrategy storageStrategy
(
-
ChatBackendProperties properties
,
-
ObjectMapper mapper
,
- Chat
roomFactory chatroomFactory
)
+
InMemoryChatHomeService chatHomeService
(
+
StorageStrategy storageStrategy
,
+
Clock clock
,
+ Chat
BackendProperties properties
)
{
{
- return new
LocalJsonFilesStorageStrategy
(
-
Paths.get(properties.getDatadir()
),
-
mapper
,
-
chatroomFactory
);
+ return new
InMemoryChatHomeService
(
+
storageStrategy.readChatrooms(
),
+
clock
,
+
properties.getChatroomBufferSize()
);
}
@Bean
}
@Bean
- ChatroomFactory chatroomFactory()
+ public StorageStrategy storageStrategy(
+ ChatBackendProperties properties,
+ Clock clock,
+ ObjectMapper mapper)
{
{
- return new InMemoryChatroomFactory();
+ return new FileStorageStrategy(
+ Paths.get(properties.getStorageDirectory()),
+ clock,
+ properties.getChatroomBufferSize(),
+ messageFlux -> new InMemoryChatRoomService(messageFlux),
+ mapper);
}
@Bean
}
@Bean