Add Java InfoContributor
See gh-28136
This commit is contained in:
committed by
Stephane Nicoll
parent
0b58d4858d
commit
fc87da7ef3
@@ -20,6 +20,7 @@ import org.springframework.boot.actuate.info.BuildInfoContributor;
|
||||
import org.springframework.boot.actuate.info.EnvironmentInfoContributor;
|
||||
import org.springframework.boot.actuate.info.GitInfoContributor;
|
||||
import org.springframework.boot.actuate.info.InfoContributor;
|
||||
import org.springframework.boot.actuate.info.java.JavaInfoContributor;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
@@ -40,6 +41,7 @@ import org.springframework.core.env.ConfigurableEnvironment;
|
||||
*
|
||||
* @author Meang Akira Tanaka
|
||||
* @author Stephane Nicoll
|
||||
* @author Jonatan Ivanov
|
||||
* @since 2.0.0
|
||||
*/
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@@ -77,4 +79,11 @@ public class InfoContributorAutoConfiguration {
|
||||
return new BuildInfoContributor(buildProperties);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnEnabledInfoContributor("java")
|
||||
@Order(DEFAULT_ORDER)
|
||||
public InfoContributor javaInfoContributor() {
|
||||
return new JavaInfoContributor();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -23,9 +23,12 @@ import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.actuate.info.BuildInfoContributor;
|
||||
import org.springframework.boot.actuate.info.EnvironmentInfoContributor;
|
||||
import org.springframework.boot.actuate.info.GitInfoContributor;
|
||||
import org.springframework.boot.actuate.info.Info;
|
||||
import org.springframework.boot.actuate.info.InfoContributor;
|
||||
import org.springframework.boot.actuate.info.java.JavaInfo;
|
||||
import org.springframework.boot.actuate.info.java.JavaInfoContributor;
|
||||
import org.springframework.boot.info.BuildProperties;
|
||||
import org.springframework.boot.info.GitProperties;
|
||||
import org.springframework.boot.test.util.TestPropertyValues;
|
||||
@@ -39,6 +42,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* Tests for {@link InfoContributorAutoConfiguration}.
|
||||
*
|
||||
* @author Stephane Nicoll
|
||||
* @author Jonatan Ivanov
|
||||
*/
|
||||
class InfoContributorAutoConfigurationTests {
|
||||
|
||||
@@ -55,7 +59,26 @@ class InfoContributorAutoConfigurationTests {
|
||||
void disableEnvContributor() {
|
||||
load("management.info.env.enabled:false");
|
||||
Map<String, InfoContributor> beans = this.context.getBeansOfType(InfoContributor.class);
|
||||
assertThat(beans).hasSize(0);
|
||||
assertThat(beans).extractingFromEntries(Map.Entry::getValue).allSatisfy(
|
||||
(infoContributor) -> assertThat(infoContributor).isNotInstanceOf(EnvironmentInfoContributor.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
void disableJavaContributor() {
|
||||
load("management.info.java.enabled:false");
|
||||
Map<String, InfoContributor> beans = this.context.getBeansOfType(InfoContributor.class);
|
||||
assertThat(beans).extractingFromEntries(Map.Entry::getValue).allSatisfy(
|
||||
(infoContributor) -> assertThat(infoContributor).isNotInstanceOf(JavaInfoContributor.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
void defaultInfoContributorsEnabled() {
|
||||
load();
|
||||
Map<String, InfoContributor> beans = this.context.getBeansOfType(InfoContributor.class);
|
||||
assertThat(beans).hasSize(2).extractingFromEntries(Map.Entry::getValue)
|
||||
.anySatisfy(
|
||||
(infoContributor) -> assertThat(infoContributor).isInstanceOf(EnvironmentInfoContributor.class))
|
||||
.anySatisfy((infoContributor) -> assertThat(infoContributor).isInstanceOf(JavaInfoContributor.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -129,6 +152,17 @@ class InfoContributorAutoConfigurationTests {
|
||||
.isSameAs(this.context.getBean("customBuildInfoContributor"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void javaInfoContributor() {
|
||||
load();
|
||||
Map<String, InfoContributor> beans = this.context.getBeansOfType(InfoContributor.class);
|
||||
assertThat(beans).containsKeys("javaInfoContributor");
|
||||
Map<String, Object> content = invokeContributor(
|
||||
this.context.getBean("javaInfoContributor", InfoContributor.class));
|
||||
Object javaInfo = content.get("java");
|
||||
assertThat(javaInfo).isInstanceOf(JavaInfo.class);
|
||||
}
|
||||
|
||||
private Map<String, Object> invokeContributor(InfoContributor contributor) {
|
||||
Info.Builder builder = new Info.Builder();
|
||||
contributor.contribute(builder);
|
||||
|
||||
Reference in New Issue
Block a user