32bedb8f627bf667befaa5e84d00bef7e456b73c
[demos/kafka/chat] / src / main / java / de / juplo / kafka / chat / backend / persistence / storage / files / FilesStorageConfiguration.java
1 package de.juplo.kafka.chat.backend.persistence.storage.files;
2
3 import com.fasterxml.jackson.databind.ObjectMapper;
4 import de.juplo.kafka.chat.backend.ChatBackendProperties;
5 import de.juplo.kafka.chat.backend.persistence.StorageStrategy;
6 import de.juplo.kafka.chat.backend.persistence.inmemory.InMemoryChatRoomService;
7 import org.springframework.context.annotation.Bean;
8 import org.springframework.context.annotation.Configuration;
9
10 import java.nio.file.Paths;
11 import java.time.Clock;
12
13
14 @Configuration
15 public class FilesStorageConfiguration
16 {
17   @Bean
18   public StorageStrategy storageStrategy(
19       ChatBackendProperties properties,
20       Clock clock,
21       ObjectMapper mapper)
22   {
23     return new FilesStorageStrategy(
24         Paths.get(properties.getStorageDirectory()),
25         clock,
26         properties.getChatroomBufferSize(),
27         messageFlux -> new InMemoryChatRoomService(messageFlux),
28         mapper);
29   }
30 }