ZookeeperDiscoveryHealthIndicator should be a DiscoveryHealthIndicator

fixes gh-85
This commit is contained in:
Spencer Gibb
2016-06-15 14:05:55 -06:00
parent 1ac5e32a3d
commit 8cfa7334a2
2 changed files with 17 additions and 7 deletions

View File

@@ -19,8 +19,8 @@ package org.springframework.cloud.zookeeper.discovery;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.curator.x.discovery.ServiceInstance;
import org.springframework.boot.actuate.health.AbstractHealthIndicator;
import org.springframework.boot.actuate.health.Health;
import org.springframework.cloud.client.discovery.health.DiscoveryHealthIndicator;
import org.springframework.cloud.zookeeper.discovery.dependency.ZookeeperDependencies;
/**
@@ -30,9 +30,9 @@ import org.springframework.cloud.zookeeper.discovery.dependency.ZookeeperDepende
* @author Spencer Gibb
* @since 1.0.0
*/
public class ZookeeperDiscoveryHealthIndicator extends AbstractHealthIndicator {
public class ZookeeperDiscoveryHealthIndicator implements DiscoveryHealthIndicator {
private static final Log log = LogFactory.getLog(ZookeeperDiscoveryHealthIndicator.class);
private static final Log log = LogFactory .getLog(ZookeeperDiscoveryHealthIndicator.class);
private ZookeeperServiceDiscovery serviceDiscovery;
private ZookeeperDependencies zookeeperDependencies;
@@ -47,15 +47,25 @@ public class ZookeeperDiscoveryHealthIndicator extends AbstractHealthIndicator {
}
@Override
protected void doHealthCheck(Health.Builder builder) throws Exception {
public String getName() {
return "zookeeper";
}
@Override
public Health health() {
Health.Builder builder = Health.unknown();
try {
Iterable<ServiceInstance<ZookeeperInstance>> allInstances = new ZookeeperServiceInstances(
this.serviceDiscovery, this.zookeeperDependencies, this.zookeeperDiscoveryProperties);
this.serviceDiscovery, this.zookeeperDependencies,
this.zookeeperDiscoveryProperties);
builder.up().withDetail("services", allInstances);
}
catch (Exception e) {
log.error("Error", e);
builder.down(e);
}
return builder.build();
}
}

View File

@@ -45,8 +45,8 @@ public class ZookeeperDiscoveryHealthIndicatorWithNestedStructureTests {
}
private boolean twoServicesArePresentedInHealthEndpoint(String response) {
assertThat(response).field("zookeeperDiscovery").array("services").field("name").isEqualTo("me");
assertThat(response).field("zookeeperDiscovery").array("services").field("name").isEqualTo("/a/b/c/d/anotherservice");
assertThat(response).field("discoveryComposite").field("zookeeper").array("services").field("name").isEqualTo("me");
assertThat(response).field("discoveryComposite").field("zookeeper").array("services").field("name").isEqualTo("/a/b/c/d/anotherservice");
return true;
}