import de.juplo.kafka.chat.backend.domain.ChatHome;
import com.fasterxml.jackson.databind.ObjectMapper;
-import de.juplo.kafka.chat.backend.domain.ChatroomFactory;
-import de.juplo.kafka.chat.backend.persistence.InMemoryChatroomFactory;
+import de.juplo.kafka.chat.backend.domain.ChatHomeService;
+import de.juplo.kafka.chat.backend.persistence.InMemoryChatHomeService;
import de.juplo.kafka.chat.backend.persistence.LocalJsonFilesStorageStrategy;
import de.juplo.kafka.chat.backend.persistence.StorageStrategy;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
{
@Bean
public ChatHome chatHome(
- ChatroomFactory chatroomFactory,
+ ChatHomeService chatHomeService,
StorageStrategy storageStrategy)
{
- return new ChatHome(
- storageStrategy.readChatrooms().collectMap(chatroom -> chatroom.getId()).block(),
- chatroomFactory);
+ return new ChatHome(chatHomeService, storageStrategy.readChatrooms());
}
@Bean
public StorageStrategy storageStrategy(
ChatBackendProperties properties,
ObjectMapper mapper,
- ChatroomFactory chatroomFactory)
+ InMemoryChatHomeService chatHomeService)
{
return new LocalJsonFilesStorageStrategy(
Paths.get(properties.getDatadir()),
mapper,
- chatroomFactory);
+ chatHomeService);
}
@Bean
- ChatroomFactory chatroomFactory(ChatBackendProperties properties)
+ InMemoryChatHomeService chatHomeService(
+ Clock clock,
+ ChatBackendProperties properties)
{
- return new InMemoryChatroomFactory(properties.getChatroomBufferSize());
+ return new InMemoryChatHomeService(clock, properties.getChatroomBufferSize());
}
@Bean