package io.muoncore.spring.boot;
import io.muoncore.spring.annotations.EnableMuonControllers;
import io.muoncore.spring.repository.DefaultMuonEventStoreRepository;
import io.muoncore.spring.repository.MuonEventStoreRepository;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
@Configuration
@EnableConfigurationProperties(MuonConfigurationProperties.class)
@EnableMuonControllers(streamKeepAliveTimeout = 100)
@PropertySource(value="classpath:application.properties", ignoreResourceNotFound=true)
public class MuonAutoConfiguration {
@Bean
@ConditionalOnMissingBean(MuonEventStoreRepository.class)
MuonEventStoreRepository muonEventStore(ApplicationContext applicationContext) {
MuonEventStoreRepository repo = new DefaultMuonEventStoreRepository();
return repo;
}
}