1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.openehealth.ipf.boot.xds;
18
19 import org.openehealth.ipf.boot.atna.IpfAtnaAutoConfiguration;
20 import org.openehealth.ipf.commons.ihe.ws.correlation.AsynchronyCorrelator;
21 import org.springframework.beans.factory.annotation.Autowired;
22 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
23 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
24 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
25 import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
26 import org.springframework.boot.context.properties.EnableConfigurationProperties;
27 import org.springframework.cache.CacheManager;
28 import org.springframework.context.annotation.Bean;
29 import org.springframework.context.annotation.Configuration;
30
31
32
33
34 @Configuration
35 @AutoConfigureAfter(IpfAtnaAutoConfiguration.class)
36 @EnableConfigurationProperties(IpfXdsConfigurationProperties.class)
37 public class IpfXdsAutoConfiguration {
38
39 @Autowired
40 private IpfXdsConfigurationProperties xdsConfig;
41
42
43 @Bean
44 @ConditionalOnMissingBean(AsynchronyCorrelator.class)
45 @ConditionalOnSingleCandidate(CacheManager.class)
46 @ConditionalOnProperty("ipf.xds.caching")
47 public AsynchronyCorrelator cachingAsynchronyCorrelator(CacheManager cacheManager) {
48 return new CachingAsynchronyCorrelator(cacheManager);
49 }
50
51 }