WIP - Ein Versuch (vielleicht Unsinn)
[demos/kafka/chat] / src / main / java / de / juplo / kafka / chat / backend / storage / nostorage / NoStorageStorageConfiguration.java
1 package de.juplo.kafka.chat.backend.storage.nostorage;
2
3 import de.juplo.kafka.chat.backend.domain.ChatRoomInfo;
4 import de.juplo.kafka.chat.backend.domain.Message;
5 import de.juplo.kafka.chat.backend.implementation.StorageStrategy;
6 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
7 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
8 import org.springframework.boot.autoconfigure.data.mongo.MongoReactiveDataAutoConfiguration;
9 import org.springframework.boot.autoconfigure.data.mongo.MongoReactiveRepositoriesAutoConfiguration;
10 import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
11 import org.springframework.context.annotation.Bean;
12 import org.springframework.context.annotation.Configuration;
13 import reactor.core.publisher.Flux;
14
15 import java.util.UUID;
16
17
18 @ConditionalOnProperty(
19     prefix = "chat.backend.inmemory",
20     name = "storage-strategy",
21     havingValue = "none",
22     matchIfMissing = true)
23 @Configuration
24 @EnableAutoConfiguration(
25     exclude = {
26         MongoReactiveDataAutoConfiguration.class,
27         MongoReactiveRepositoriesAutoConfiguration.class,
28         MongoAutoConfiguration.class })
29 public class NoStorageStorageConfiguration
30 {
31   @Bean
32   public StorageStrategy storageStrategy()
33   {
34     return new StorageStrategy()
35     {
36       @Override
37       public void writeChatRoomInfo(Flux<ChatRoomInfo> chatRoomInfoFlux) {}
38
39       @Override
40       public Flux<ChatRoomInfo> readChatRoomInfo()
41       {
42         return Flux.empty();
43       }
44
45       @Override
46       public void writeChatRoomData(UUID chatRoomId, Flux<Message> messageFlux) {}
47
48       @Override
49       public Flux<Message> readChatRoomData(UUID chatRoomId)
50       {
51         return Flux.empty();
52       }
53     };
54   }
55 }