1 package de.juplo.kafka.chat.backend.storage.files;
3 import com.fasterxml.jackson.databind.ObjectMapper;
4 import de.juplo.kafka.chat.backend.ChatBackendProperties;
5 import de.juplo.kafka.chat.backend.implementation.ShardingStrategy;
6 import de.juplo.kafka.chat.backend.implementation.StorageStrategy;
7 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
8 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
9 import org.springframework.boot.autoconfigure.data.mongo.MongoReactiveDataAutoConfiguration;
10 import org.springframework.boot.autoconfigure.data.mongo.MongoReactiveRepositoriesAutoConfiguration;
11 import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
12 import org.springframework.context.annotation.Bean;
13 import org.springframework.context.annotation.Configuration;
15 import java.nio.file.Paths;
18 @ConditionalOnProperty(
19 prefix = "chat.backend.inmemory",
20 name = "storage-strategy",
21 havingValue = "files")
23 @EnableAutoConfiguration(
25 MongoReactiveDataAutoConfiguration.class,
26 MongoReactiveRepositoriesAutoConfiguration.class,
27 MongoAutoConfiguration.class })
28 public class FilesStorageConfiguration
31 public StorageStrategy storageStrategy(
32 ChatBackendProperties properties,
33 ShardingStrategy shardingStrategy,
36 return new FilesStorageStrategy(
37 Paths.get(properties.getInmemory().getStorageDirectory()),
40 properties.getProjectreactor().getLoggingLevel(),
41 properties.getProjectreactor().isShowOperatorLine());