feat: Introduced `ChatHome` that gives multiple `Chatroom`s a home
[demos/kafka/chat] / src / main / java / de / juplo / kafka / chat / backend / ChatBackendConfiguration.java
1 package de.juplo.kafka.chat.backend;
2
3 import de.juplo.kafka.chat.backend.domain.ChatHome;
4 import de.juplo.kafka.chat.backend.domain.ChatroomFactory;
5 import de.juplo.kafka.chat.backend.persistence.InMemoryChatroomFactory;
6 import de.juplo.kafka.chat.backend.persistence.InMemoryPersistenceStrategy;
7 import org.springframework.context.annotation.Bean;
8 import org.springframework.context.annotation.Configuration;
9
10 import java.time.Clock;
11
12
13 @Configuration
14 public class ChatBackendConfiguration
15 {
16   @Bean
17   public ChatHome chatHome(ChatroomFactory chatroomFactory)
18   {
19     return new ChatHome(chatroomFactory);
20   }
21
22   @Bean
23   ChatroomFactory chatroomFactory(InMemoryPersistenceStrategy persistenceStrategy)
24   {
25     return new InMemoryChatroomFactory(persistenceStrategy);
26   }
27
28   @Bean
29   InMemoryPersistenceStrategy persistenceStrategy()
30   {
31     return new InMemoryPersistenceStrategy();
32   }
33
34   @Bean
35   public Clock clock()
36   {
37     return Clock.systemDefaultZone();
38   }
39 }