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.domain.Message;
import de.juplo.kafka.chat.backend.persistence.InMemoryChatroomFactory;
-import de.juplo.kafka.chat.backend.persistence.InMemoryPersistenceStrategy;
import de.juplo.kafka.chat.backend.persistence.LocalJsonFilesStorageStrategy;
import de.juplo.kafka.chat.backend.persistence.StorageStrategy;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import java.nio.file.Paths;
import java.time.Clock;
-import java.util.LinkedHashMap;
@Configuration
ChatroomFactory chatroomFactory,
StorageStrategy storageStrategy)
{
- return new ChatHome(
- storageStrategy.readChatrooms().collectMap(chatroom -> chatroom.getId()).block(),
- chatroomFactory);
+ return new ChatHome(chatroomFactory, storageStrategy.readChatrooms());
}
@Bean
public StorageStrategy storageStrategy(
ChatBackendProperties properties,
ObjectMapper mapper,
- ChatroomFactory chatroomFactory)
+ InMemoryChatroomFactory chatroomFactory)
{
return new LocalJsonFilesStorageStrategy(
Paths.get(properties.getDatadir()),
}
@Bean
- ChatroomFactory chatroomFactory(InMemoryPersistenceStrategy persistenceStrategy)
- {
- return new InMemoryChatroomFactory(persistenceStrategy);
- }
-
- @Bean
- InMemoryPersistenceStrategy persistenceStrategy()
+ InMemoryChatroomFactory chatroomFactory(ChatBackendProperties properties)
{
- return new InMemoryPersistenceStrategy(new LinkedHashMap<>());
+ return new InMemoryChatroomFactory(properties.getChatroomBufferSize());
}
@Bean