From 8feec996000c76c81b72f78a6fd3a2f882398c08 Mon Sep 17 00:00:00 2001 From: Marcos Barbero Date: Wed, 27 Jul 2016 19:07:24 -0300 Subject: [PATCH] Inject Environment into health indicator Fixes gh-457, fixes gh-456 --- .../client/ConfigClientAutoConfiguration.java | 5 +++-- .../client/ConfigServerHealthIndicator.java | 22 ++++++++----------- .../ConfigServerHealthIndicatorTests.java | 4 +++- 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/spring-cloud-config-client/src/main/java/org/springframework/cloud/config/client/ConfigClientAutoConfiguration.java b/spring-cloud-config-client/src/main/java/org/springframework/cloud/config/client/ConfigClientAutoConfiguration.java index ed950f76..7e6f7e9b 100644 --- a/spring-cloud-config-client/src/main/java/org/springframework/cloud/config/client/ConfigClientAutoConfiguration.java +++ b/spring-cloud-config-client/src/main/java/org/springframework/cloud/config/client/ConfigClientAutoConfiguration.java @@ -34,6 +34,7 @@ import org.springframework.core.env.Environment; * the config server, if there is one. * * @author Dave Syer + * @author Marcos Barbero * */ @Configuration @@ -60,8 +61,8 @@ public class ConfigClientAutoConfiguration { @Bean public ConfigServerHealthIndicator configServerHealthIndicator( - ConfigServicePropertySourceLocator locator) { - return new ConfigServerHealthIndicator(locator); + ConfigServicePropertySourceLocator locator, Environment environment) { + return new ConfigServerHealthIndicator(locator, environment); } } diff --git a/spring-cloud-config-client/src/main/java/org/springframework/cloud/config/client/ConfigServerHealthIndicator.java b/spring-cloud-config-client/src/main/java/org/springframework/cloud/config/client/ConfigServerHealthIndicator.java index e620c6b1..31932cba 100644 --- a/spring-cloud-config-client/src/main/java/org/springframework/cloud/config/client/ConfigServerHealthIndicator.java +++ b/spring-cloud-config-client/src/main/java/org/springframework/cloud/config/client/ConfigServerHealthIndicator.java @@ -5,32 +5,28 @@ import java.util.List; import org.springframework.boot.actuate.health.AbstractHealthIndicator; import org.springframework.boot.actuate.health.Health.Builder; -import org.springframework.core.env.AbstractEnvironment; import org.springframework.core.env.CompositePropertySource; import org.springframework.core.env.Environment; import org.springframework.core.env.PropertySource; /** * @author Spencer Gibb + * @author Marcos Barbero */ public class ConfigServerHealthIndicator extends AbstractHealthIndicator { - private ConfigServicePropertySourceLocator locator; - private Environment env; + private ConfigServicePropertySourceLocator locator; + private Environment environment; - public ConfigServerHealthIndicator(ConfigServicePropertySourceLocator locator) { - this.env = new AbstractEnvironment() { - @Override - public String[] getActiveProfiles() { - return new String[] {"default"}; - } - }; - this.locator = locator; - } + public ConfigServerHealthIndicator(ConfigServicePropertySourceLocator locator, + Environment environment) { + this.environment = environment; + this.locator = locator; + } @Override protected void doHealthCheck(Builder builder) throws Exception { - PropertySource propertySource = locator.locate(this.env); + PropertySource propertySource = locator.locate(this.environment); builder.up(); if (propertySource instanceof CompositePropertySource) { List sources = new ArrayList<>(); diff --git a/spring-cloud-config-client/src/test/java/org/springframework/cloud/config/client/ConfigServerHealthIndicatorTests.java b/spring-cloud-config-client/src/test/java/org/springframework/cloud/config/client/ConfigServerHealthIndicatorTests.java index 1e87b9ac..321d9891 100644 --- a/spring-cloud-config-client/src/test/java/org/springframework/cloud/config/client/ConfigServerHealthIndicatorTests.java +++ b/spring-cloud-config-client/src/test/java/org/springframework/cloud/config/client/ConfigServerHealthIndicatorTests.java @@ -29,14 +29,16 @@ import org.springframework.core.env.PropertySource; /** * @author Dave Syer + * @author Marcos Barbero * */ public class ConfigServerHealthIndicatorTests { private ConfigServicePropertySourceLocator locator = Mockito .mock(ConfigServicePropertySourceLocator.class); + private Environment environment = Mockito.mock(Environment.class); private ConfigServerHealthIndicator indicator = new ConfigServerHealthIndicator( - locator); + locator, environment); @Test public void testDefaultStatus() {