refactor: A `ChatRoom` does not have to remember its shard any more
[demos/kafka/chat] / src / main / java / de / juplo / kafka / chat / backend / persistence / storage / files / FilesStorageConfiguration.java
index ae6af2f..0da1b95 100644 (file)
@@ -4,7 +4,10 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import de.juplo.kafka.chat.backend.ChatBackendProperties;
 import de.juplo.kafka.chat.backend.persistence.StorageStrategy;
 import de.juplo.kafka.chat.backend.persistence.inmemory.InMemoryChatRoomService;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration;
+import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
@@ -13,11 +16,15 @@ import java.time.Clock;
 
 
 @ConditionalOnProperty(
-    prefix = "chat.backend",
-    name = "storage",
+    prefix = "chat.backend.inmemory",
+    name = "storage-strategy",
     havingValue = "files",
     matchIfMissing = true)
 @Configuration
+@EnableAutoConfiguration(
+    exclude = {
+        MongoRepositoriesAutoConfiguration.class,
+        MongoAutoConfiguration.class })
 public class FilesStorageConfiguration
 {
   @Bean
@@ -27,9 +34,10 @@ public class FilesStorageConfiguration
       ObjectMapper mapper)
   {
     return new FilesStorageStrategy(
-        Paths.get(properties.getStorageDirectory()),
+        Paths.get(properties.getInmemory().getStorageDirectory()),
         clock,
         properties.getChatroomBufferSize(),
+
         messageFlux -> new InMemoryChatRoomService(messageFlux),
         mapper);
   }