refactor: Moved configuration in a separate class and made it more explicit
[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.ChatroomFactory;
4 import de.juplo.kafka.chat.backend.persistence.InMemoryChatroomFactory;
5 import de.juplo.kafka.chat.backend.persistence.InMemoryPersistenceStrategy;
6 import org.springframework.context.annotation.Bean;
7 import org.springframework.context.annotation.Configuration;
8
9 import java.time.Clock;
10
11
12 @Configuration
13 public class ChatBackendConfiguration
14 {
15   @Bean
16   ChatroomFactory chatroomFactory(InMemoryPersistenceStrategy persistenceStrategy)
17   {
18     return new InMemoryChatroomFactory(persistenceStrategy);
19   }
20
21   @Bean
22   InMemoryPersistenceStrategy persistenceStrategy()
23   {
24     return new InMemoryPersistenceStrategy();
25   }
26
27   @Bean
28   public Clock clock()
29   {
30     return Clock.systemDefaultZone();
31   }
32 }