From 539a537abba58ed2261c4485d7f9426d2aa57453 Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Mon, 22 Feb 2016 16:54:51 -0700 Subject: [PATCH] Expose some information. See https://github.com/spring-cloud/spring-cloud-netflix/issues/643 --- .../health/DiscoveryCompositeHealthIndicator.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/health/DiscoveryCompositeHealthIndicator.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/health/DiscoveryCompositeHealthIndicator.java index f1dce429..fab693b3 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/health/DiscoveryCompositeHealthIndicator.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/health/DiscoveryCompositeHealthIndicator.java @@ -16,6 +16,7 @@ package org.springframework.cloud.client.discovery.health; +import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; @@ -29,17 +30,26 @@ import org.springframework.boot.actuate.health.HealthIndicator; * and aggregates the statuses. * @author Spencer Gibb */ +//TODO: do we need this? Can they just be independent HealthIndicators? public class DiscoveryCompositeHealthIndicator extends CompositeHealthIndicator { + private final ArrayList healthIndicators = new ArrayList<>(); + @Autowired public DiscoveryCompositeHealthIndicator(HealthAggregator healthAggregator, List indicators) { super(healthAggregator); for (DiscoveryHealthIndicator indicator : indicators) { - addHealthIndicator(indicator.getName(), new Holder(indicator)); + Holder holder = new Holder(indicator); + addHealthIndicator(indicator.getName(), holder); + healthIndicators.add(holder); } } + public ArrayList getHealthIndicators() { + return healthIndicators; + } + public static class Holder implements HealthIndicator { private DiscoveryHealthIndicator delegate; @@ -52,7 +62,7 @@ public class DiscoveryCompositeHealthIndicator extends CompositeHealthIndicator return this.delegate.health(); } - protected DiscoveryHealthIndicator getDelegate() { + public DiscoveryHealthIndicator getDelegate() { return delegate; } }