refactor: Refined (simplified) `StorageStrategy`
[demos/kafka/chat] / src / main / java / de / juplo / kafka / chat / backend / ChatBackendConfiguration.java
index 68ccc4f..87965ab 100644 (file)
@@ -3,9 +3,10 @@ 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.ChatHomeService;
-import de.juplo.kafka.chat.backend.persistence.InMemoryChatHomeService;
-import de.juplo.kafka.chat.backend.persistence.LocalJsonFilesStorageStrategy;
+import de.juplo.kafka.chat.backend.persistence.inmemory.InMemoryChatHomeService;
+import de.juplo.kafka.chat.backend.persistence.storage.files.FilesStorageStrategy;
 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;
@@ -31,7 +32,7 @@ public class ChatBackendConfiguration
       ChatBackendProperties properties)
   {
     return new InMemoryChatHomeService(
-        storageStrategy.readChatrooms(),
+        storageStrategy.read(),
         clock,
         properties.getChatroomBufferSize());
   }
@@ -42,10 +43,11 @@ public class ChatBackendConfiguration
       Clock clock,
       ObjectMapper mapper)
   {
-    return new LocalJsonFilesStorageStrategy(
-        Paths.get(properties.getDatadir()),
+    return new FilesStorageStrategy(
+        Paths.get(properties.getStorageDirectory()),
         clock,
         properties.getChatroomBufferSize(),
+        messageFlux -> new InMemoryChatRoomService(messageFlux),
         mapper);
   }