All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.home1.cloud.config.server.environment.GitParentSupportConfiguration Maven / Gradle / Ivy

The newest version!
package cn.home1.cloud.config.server.environment;

import cn.home1.cloud.config.server.security.ConfigSecurity;

import org.eclipse.jgit.api.TransportConfigCallback;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.cloud.config.server.environment.EnvironmentRepository;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.ConfigurableEnvironment;

@ConditionalOnProperty(prefix = "spring.cloud.config.server.git", name = "parent-support-enabled", havingValue = "true")
@ConditionalOnMissingBean(EnvironmentRepository.class)
@Configuration
public class GitParentSupportConfiguration {

    @Value("${spring.cloud.config.server.default-label:master}")
    private String defaultLabel;

    @Value("${spring.cloud.config.server.git.delete-untracked-branches:true}")
    private Boolean deleteUntrackedBranches;

    @Autowired
    private ConfigurableEnvironment environment;

    @Value("${spring.cloud.config.server.git.force-pull:true}")
    private Boolean forcePull;

    @Value("${spring.cloud.config.server.git.strict-host-key-checking:false}")
    private Boolean strictHostKeyChecking;

    @Value("${spring.cloud.config.server.git.timeout:30}")
    private Integer timeout;

    @Autowired(required = false)
    private TransportConfigCallback transportConfigCallback;

    @Bean
    public ConfigSecurity configSecurity() {
        return new ConfigSecurity();
    }

    @Bean
    @ConditionalOnMissingBean(EnvironmentRepository.class)
    public EnvironmentRepository environmentRepository() {
        final GitParentSupportMultipleJGitEnvironmentRepository repository =
            new GitParentSupportMultipleJGitEnvironmentRepository(this.environment);

        repository.setConfigSecurity(this.configSecurity());

        repository.setDefaultLabel(this.defaultLabel);
        repository.setDeleteUntrackedBranches(this.deleteUntrackedBranches);
        repository.setForcePull(this.forcePull);
        repository.setStrictHostKeyChecking(this.strictHostKeyChecking);
        repository.setTimeout(this.timeout);

        repository.setTransportConfigCallback(this.transportConfigCallback);

        return repository;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy