View Javadoc
1   package cn.home1.cloud.config.server.environment;
2   
3   import cn.home1.cloud.config.server.security.ConfigSecurity;
4   
5   import org.eclipse.jgit.api.TransportConfigCallback;
6   import org.springframework.beans.factory.annotation.Autowired;
7   import org.springframework.beans.factory.annotation.Value;
8   import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
9   import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
10  import org.springframework.cloud.config.server.environment.EnvironmentRepository;
11  import org.springframework.context.annotation.Bean;
12  import org.springframework.context.annotation.Configuration;
13  import org.springframework.core.env.ConfigurableEnvironment;
14  
15  @ConditionalOnProperty(prefix = "spring.cloud.config.server.git", name = "parent-support-enabled", havingValue = "true")
16  @ConditionalOnMissingBean(EnvironmentRepository.class)
17  @Configuration
18  public class GitParentSupportConfiguration {
19  
20      @Value("${spring.cloud.config.server.default-label:master}")
21      private String defaultLabel;
22  
23      @Value("${spring.cloud.config.server.git.delete-untracked-branches:true}")
24      private Boolean deleteUntrackedBranches;
25  
26      @Autowired
27      private ConfigurableEnvironment environment;
28  
29      @Value("${spring.cloud.config.server.git.force-pull:true}")
30      private Boolean forcePull;
31  
32      @Value("${spring.cloud.config.server.git.strict-host-key-checking:false}")
33      private Boolean strictHostKeyChecking;
34  
35      @Value("${spring.cloud.config.server.git.timeout:30}")
36      private Integer timeout;
37  
38      @Autowired(required = false)
39      private TransportConfigCallback transportConfigCallback;
40  
41      @Bean
42      public ConfigSecurity configSecurity() {
43          return new ConfigSecurity();
44      }
45  
46      @Bean
47      @ConditionalOnMissingBean(EnvironmentRepository.class)
48      public EnvironmentRepository environmentRepository() {
49          final GitParentSupportMultipleJGitEnvironmentRepository repository =
50              new GitParentSupportMultipleJGitEnvironmentRepository(this.environment);
51  
52          repository.setConfigSecurity(this.configSecurity());
53  
54          repository.setDefaultLabel(this.defaultLabel);
55          repository.setDeleteUntrackedBranches(this.deleteUntrackedBranches);
56          repository.setForcePull(this.forcePull);
57          repository.setStrictHostKeyChecking(this.strictHostKeyChecking);
58          repository.setTimeout(this.timeout);
59  
60          repository.setTransportConfigCallback(this.transportConfigCallback);
61  
62          return repository;
63      }
64  }