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

dev.logchange.hofund.git.springboot.autoconfigure.HofundGitInfoAutoConfiguration Maven / Gradle / Ivy

There is a newer version: 2.2.0
Show newest version
package dev.logchange.hofund.git.springboot.autoconfigure;

import dev.logchange.hofund.git.HofundGitInfoMeter;
import dev.logchange.hofund.git.HofundGitInfoProvider;
import lombok.RequiredArgsConstructor;
import org.springframework.boot.actuate.autoconfigure.metrics.export.ConditionalOnEnabledMetricsExport;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@RequiredArgsConstructor
@Configuration(proxyBeanMethods = false)
@ConditionalOnEnabledMetricsExport(value="prometheus")
@EnableConfigurationProperties(HofundGitInfoProperties.class)
public class HofundGitInfoAutoConfiguration {

    private final HofundGitInfoProperties properties;

    private final HofundDefaultGitInfoProperties defaultProperties;

    @Bean
    @ConditionalOnMissingBean
    public HofundGitInfoMeter hofundGitInfoMeter(HofundGitInfoProvider infoProvider) {
        return new HofundGitInfoMeter(infoProvider);
    }


    @Bean
    @ConditionalOnMissingBean
    public HofundGitInfoProvider hofundGitInfoProvider() {
        return new HofundGitInfoProvider() {
            @Override
            public String getCommitId() {
                return defaultIfEmpty(properties.getCommit().getIdAbbrev(), defaultProperties.getCommitIdAbbrev());
            }

            @Override
            public String dirty() {
                return defaultIfEmpty(properties.getDirty(), defaultProperties.getDirty());
            }

            @Override
            public String getBranch() {
                return defaultIfEmpty(properties.getBranch(), defaultProperties.getBranch());
            }

            @Override
            public String getBuildHost() {
                return defaultIfEmpty(properties.getBuild().getHost(), defaultProperties.getBuildHost());
            }

            @Override
            public String getBuildTime() {
                return defaultIfEmpty(properties.getBuild().getTime(), defaultProperties.getBuildTime());
            }
        };
    }

    public static String defaultIfEmpty(String val, String defaultVal) {
        if (isEmpty(val)) {
            return defaultVal;
        }

        return val;
    }

    public static boolean isEmpty(String val) {
        return val == null || val.trim().isEmpty();
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy