projects
/
demos
/
kafka
/
chat
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactor: Only `LocalJsonFileStorageStrategy` restores `Chatroom`s
[demos/kafka/chat]
/
src
/
main
/
java
/
de
/
juplo
/
kafka
/
chat
/
backend
/
ChatBackendConfiguration.java
diff --git
a/src/main/java/de/juplo/kafka/chat/backend/ChatBackendConfiguration.java
b/src/main/java/de/juplo/kafka/chat/backend/ChatBackendConfiguration.java
index
835627a
..
b9d1d29
100644
(file)
--- a/
src/main/java/de/juplo/kafka/chat/backend/ChatBackendConfiguration.java
+++ b/
src/main/java/de/juplo/kafka/chat/backend/ChatBackendConfiguration.java
@@
-1,34
+1,47
@@
package de.juplo.kafka.chat.backend;
import de.juplo.kafka.chat.backend.domain.ChatHome;
package de.juplo.kafka.chat.backend;
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.ChatroomFactory;
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 org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import java.nio.file.Paths;
import java.time.Clock;
@Configuration
import java.time.Clock;
@Configuration
+@EnableConfigurationProperties(ChatBackendProperties.class)
public class ChatBackendConfiguration
{
@Bean
public class ChatBackendConfiguration
{
@Bean
- public ChatHome chatHome(ChatroomFactory chatroomFactory)
+ public ChatHome chatHome(
+ ChatroomFactory chatroomFactory,
+ StorageStrategy storageStrategy)
{
{
- return new ChatHome(chatroomFactory);
+ return new ChatHome(chatroomFactory
, storageStrategy.readChatrooms()
);
}
@Bean
}
@Bean
- ChatroomFactory chatroomFactory(InMemoryPersistenceStrategy persistenceStrategy)
+ public StorageStrategy storageStrategy(
+ ChatBackendProperties properties,
+ ObjectMapper mapper,
+ InMemoryChatroomFactory chatroomFactory)
{
{
- return new InMemoryChatroomFactory(persistenceStrategy);
+ return new LocalJsonFilesStorageStrategy(
+ Paths.get(properties.getDatadir()),
+ mapper,
+ chatroomFactory);
}
@Bean
}
@Bean
- InMemory
PersistenceStrategy persistenceStrategy(
)
+ InMemory
ChatroomFactory chatroomFactory(ChatBackendProperties properties
)
{
{
- return new InMemory
PersistenceStrategy(
);
+ return new InMemory
ChatroomFactory(properties.getChatroomBufferSize()
);
}
@Bean
}
@Bean