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  }