package com.github.signed.sandboxes.spring.boot;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;
@Configuration
@PropertySource(value = {"classpath:/version.properties"})
public class BuildNumberControllerConfiguration {
@Autowired
private Environment environment;
public static class ApplicationVersion {
public final String commitHash;
public final String version;
public final String timestamp;
public final String buildNumber;
public ApplicationVersion(String commitHash, String version, String timestamp, String buildNumber) {
this.commitHash = commitHash;
this.version = version;
this.timestamp = timestamp;
this.buildNumber = buildNumber;
}
}
@Bean
public BuildNumberController sampleController() {
String commitHash = environment.getProperty("application.build.hash");
String version = environment.getProperty("application.build.version");
String timestamp = environment.getProperty("application.build.timestamp");
String buildNumber = environment.getProperty("application.build.number");
ApplicationVersion applicationVersion = new ApplicationVersion(commitHash, version, timestamp, buildNumber);
return new BuildNumberController(applicationVersion);
}
}