X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fchat%2Fbackend%2FChatBackendApplication.java;h=8e1ff9e59a402ab3169cd7eddd47d460b7b7a7dd;hb=3921344eb0c5b56ed571175f5a5b0690b5aa1f85;hp=287c9ee0a49f6d4a094047685ec611a261c57f28;hpb=7414187b1d200ee3f837a509d22e55dda3a00d32;p=demos%2Fkafka%2Fchat diff --git a/src/main/java/de/juplo/kafka/chat/backend/ChatBackendApplication.java b/src/main/java/de/juplo/kafka/chat/backend/ChatBackendApplication.java index 287c9ee0..8e1ff9e5 100644 --- a/src/main/java/de/juplo/kafka/chat/backend/ChatBackendApplication.java +++ b/src/main/java/de/juplo/kafka/chat/backend/ChatBackendApplication.java @@ -1,24 +1,43 @@ -package de.juplo.kafka.chatroom; +package de.juplo.kafka.chat.backend; +import de.juplo.kafka.chat.backend.domain.ChatHome; +import de.juplo.kafka.chat.backend.persistence.StorageStrategy; +import jakarta.annotation.PreDestroy; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.Bean; - -import java.time.Clock; +import org.springframework.web.reactive.config.CorsRegistry; +import org.springframework.web.reactive.config.WebFluxConfigurer; @SpringBootApplication -public class ChatroomApplication +public class ChatBackendApplication implements WebFluxConfigurer { - @Bean - public Clock clock() + @Autowired + ChatBackendProperties properties; + @Autowired + ChatHome[] chatHomes; + @Autowired + StorageStrategy storageStrategy; + + + @Override + public void addCorsMappings(CorsRegistry registry) { - return Clock.systemDefaultZone(); + registry + .addMapping("/**") + .allowedOrigins(properties.getAllowedOrigins()); } + @PreDestroy + public void onExit() + { + for (int shard = 0; shard < chatHomes.length; shard++) + storageStrategy.write(chatHomes[shard].getChatRooms()); + } public static void main(String[] args) { - SpringApplication.run(ChatroomApplication.class, args); + SpringApplication.run(ChatBackendApplication.class, args); } }