Only create composite health indicator if needed.

Only if there is at least one DiscoveryHealthIndicator.

fixes gh-135
This commit is contained in:
Spencer Gibb
2016-10-04 19:00:36 -06:00
parent 8089c0d411
commit a2c1fe6909
2 changed files with 10 additions and 0 deletions

View File

@@ -59,6 +59,7 @@ public class CommonsClientAutoConfiguration {
@Bean
@ConditionalOnProperty(value = "spring.cloud.discovery.client.composite-indicator.enabled", matchIfMissing = true)
@ConditionalOnBean(DiscoveryHealthIndicator.class)
public DiscoveryCompositeHealthIndicator discoveryCompositeHealthIndicator(
HealthAggregator aggregator, List<DiscoveryHealthIndicator> indicators) {
return new DiscoveryCompositeHealthIndicator(aggregator, indicators);

View File

@@ -60,6 +60,15 @@ public class CommonsClientAutoConfigurationTests {
}
}
@Test
public void disableHealthIndicator() {
try (ConfigurableApplicationContext ctxt = init(
"spring.cloud.discovery.client.health-indicator.enabled=false")) {
assertBeanNonExistant(ctxt, DiscoveryClientHealthIndicator.class);
assertBeanNonExistant(ctxt, DiscoveryCompositeHealthIndicator.class);
}
}
private void assertBeanNonExistant(ConfigurableApplicationContext ctxt,
Class<?> beanClass) {
try {