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