updated EurekaHealthIndicator to implement the new DiscoveryHealthIndicator

fixes gh-98
This commit is contained in:
Spencer Gibb
2014-12-15 13:19:01 -07:00
parent 70648b0ec0
commit 7423decc54
5 changed files with 33 additions and 7 deletions

View File

@@ -20,13 +20,20 @@ import static com.google.common.collect.Iterables.*;
*/
public class EurekaDiscoveryClient implements DiscoveryClient {
@Autowired
public static final String DESCRIPTION = "Spring Cloud Eureka Discovery Client";
@Autowired
private EurekaInstanceConfigBean config;
@Autowired
private com.netflix.discovery.DiscoveryClient discovery;
@Override
@Override
public String description() {
return DESCRIPTION;
}
@Override
public ServiceInstance getLocalServiceInstance() {
return new ServiceInstance() {
@Override

View File

@@ -21,7 +21,6 @@ import java.util.Map;
import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.Health.Builder;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.boot.actuate.health.Status;
import org.springframework.boot.actuate.metrics.Metric;
import org.springframework.boot.actuate.metrics.reader.MetricReader;
@@ -30,12 +29,13 @@ import com.netflix.appinfo.EurekaInstanceConfig;
import com.netflix.discovery.DiscoveryClient;
import com.netflix.discovery.shared.Application;
import com.netflix.discovery.shared.Applications;
import org.springframework.cloud.client.discovery.DiscoveryHealthIndicator;
/**
* @author Dave Syer
*
*/
public class EurekaHealthIndicator implements HealthIndicator {
public class EurekaHealthIndicator implements DiscoveryHealthIndicator {
private EurekaInstanceConfig instanceConfig;
@@ -53,6 +53,11 @@ public class EurekaHealthIndicator implements HealthIndicator {
this.instanceConfig = instanceConfig;
}
@Override
public String getName() {
return "eureka";
}
@Override
public Health health() {
Builder builder = Health.unknown();

View File

@@ -9,7 +9,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@SpringApplicationConfiguration(classes = EurekaSampleApplication.class)
@WebAppConfiguration
@IntegrationTest("server.port=0")
@DirtiesContext

View File

@@ -2,6 +2,7 @@ package org.springframework.cloud.netflix.eureka.sample;
import com.netflix.appinfo.HealthCheckHandler;
import com.netflix.appinfo.InstanceInfo;
import org.springframework.boot.actuate.metrics.repository.InMemoryMetricRepository;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@@ -16,7 +17,12 @@ import org.springframework.web.bind.annotation.RestController;
@EnableAutoConfiguration
@RestController
@EnableDiscoveryClient
public class Application {
public class EurekaSampleApplication {
@Bean
public InMemoryMetricRepository inMemoryMetricRepository() {
return new InMemoryMetricRepository();
}
@Bean
public HealthCheckHandler healthCheckHandler() {
@@ -34,7 +40,7 @@ public class Application {
}
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
new SpringApplicationBuilder(EurekaSampleApplication.class).web(true).run(args);
}
}

View File

@@ -1,13 +1,21 @@
package org.springframework.cloud.netflix.sidecar;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.actuate.metrics.repository.InMemoryMetricRepository;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@EnableSidecar
@RestController
public class SidecarApplication {
@Bean
public InMemoryMetricRepository inMemoryMetricRepository() {
return new InMemoryMetricRepository();
}
public static void main(String[] args) {
SpringApplication.run(SidecarApplication.class, args);
}