Commit 34785b6b by Dave Syer

Make actuator dependency optional in netflix-core

Fixes gh-117
parent 4a77b86d
......@@ -18,11 +18,11 @@
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<artifactId>spring-boot</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
......
......@@ -19,6 +19,7 @@ import org.apache.commons.configuration.SystemConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.endpoint.Endpoint;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
......@@ -61,9 +62,13 @@ public class ArchaiusAutoConfiguration {
return envConfig;
}
@Bean
protected ArchaiusEndpoint archaiusEndpoint() {
return new ArchaiusEndpoint();
@Configuration
@ConditionalOnClass(Endpoint.class)
protected static class ArchaiusEndpointConfuguration {
@Bean
protected ArchaiusEndpoint archaiusEndpoint() {
return new ArchaiusEndpoint();
}
}
@SuppressWarnings("deprecation")
......
......@@ -15,14 +15,16 @@
*/
package org.springframework.cloud.netflix.eureka;
import java.lang.reflect.Field;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import javax.annotation.PreDestroy;
import com.netflix.appinfo.EurekaInstanceConfig;
import com.netflix.appinfo.HealthCheckHandler;
import com.netflix.discovery.shared.EurekaJerseyClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.endpoint.Endpoint;
import org.springframework.boot.actuate.metrics.reader.MetricReader;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
......@@ -41,16 +43,15 @@ import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Scope;
import org.springframework.context.annotation.ScopedProxyMode;
import org.springframework.core.Ordered;
import org.springframework.util.ReflectionUtils;
import com.netflix.appinfo.ApplicationInfoManager;
import com.netflix.appinfo.EurekaInstanceConfig;
import com.netflix.appinfo.HealthCheckHandler;
import com.netflix.appinfo.InstanceInfo.InstanceStatus;
import com.netflix.discovery.DiscoveryManager;
import com.netflix.discovery.EurekaClientConfig;
import org.springframework.util.ReflectionUtils;
import java.lang.reflect.Field;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import com.netflix.discovery.shared.EurekaJerseyClient;
/**
* @author Dave Syer
......@@ -201,11 +202,16 @@ public class EurekaDiscoveryClientConfiguration implements SmartLifecycle, Order
};
}
@Bean
@ConditionalOnMissingBean
@Configuration
@ConditionalOnClass(Endpoint.class)
@ConditionalOnBean(MetricReader.class)
public EurekaHealthIndicator eurekaHealthIndicator(EurekaInstanceConfig config,
MetricReader metrics) {
return new EurekaHealthIndicator(eurekaDiscoveryClient(), metrics, config);
protected static class EurekaHealthIndicatorConfiguration {
@Bean
@ConditionalOnMissingBean
public EurekaHealthIndicator eurekaHealthIndicator(
com.netflix.discovery.DiscoveryClient eurekaDiscoveryClient,
MetricReader metrics, EurekaInstanceConfig config) {
return new EurekaHealthIndicator(eurekaDiscoveryClient, metrics, config);
}
}
}
......@@ -21,28 +21,33 @@ import com.netflix.loadbalancer.ILoadBalancer;
@ConditionalOnClass(Feign.class)
@AutoConfigureAfter(ArchaiusAutoConfiguration.class)
public class FeignAutoConfiguration {
@Bean
SpringDecoder feignDecoder() {
return new SpringDecoder();
}
@Bean
SpringDecoder feignDecoder() {
return new SpringDecoder();
}
@Bean
SpringEncoder feignEncoder() {
return new SpringEncoder();
}
@Bean
SpringEncoder feignEncoder() {
return new SpringEncoder();
}
@Bean
public Logger feignLogger() {
//return new Slf4jLogger(); //TODO pass Client classname in
return new Logger.JavaLogger();
}
@Bean
public Logger feignLogger() {
// return new Slf4jLogger(); //TODO pass Client classname in
return new Logger.JavaLogger();
}
@Bean
public Contract feignContract() {
return new SpringMvcContract();
}
@Bean
public Contract feignContract() {
return new SpringMvcContract();
}
@Bean
@ConditionalOnClass(ILoadBalancer.class)
public Client feignRibbonClient() { return new FeignRibbonClient(); }
@ConditionalOnClass(ILoadBalancer.class)
@Configuration
protected static class RibbonClientConfiguration {
@Bean
public Client feignRibbonClient() {
return new FeignRibbonClient();
}
}
}
......@@ -31,18 +31,14 @@ import com.netflix.hystrix.Hystrix;
* @author Christian Dupuis
*/
@Configuration
@AutoConfigureAfter({HealthIndicatorAutoConfiguration.class})
@ConditionalOnClass({ Hystrix.class, HealthIndicator.class })
@ConditionalOnExpression("${health.hystrix.enabled:true}")
@AutoConfigureAfter({ HealthIndicatorAutoConfiguration.class })
public class HystrixAutoConfiguration {
@Configuration
@ConditionalOnClass({Hystrix.class, HealthIndicator.class})
@ConditionalOnExpression("${health.hystrix.enabled:true}")
public static class HystrixHealthIndicatorConfiguration {
@Bean
public HystrixHealthIndicator hystrixHealthIndicator() {
return new HystrixHealthIndicator();
}
@Bean
public HystrixHealthIndicator hystrixHealthIndicator() {
return new HystrixHealthIndicator();
}
}
......@@ -22,7 +22,7 @@ import com.netflix.client.IClient;
* @author Dave Syer
*/
@Configuration
@ConditionalOnClass(IClient.class)
@ConditionalOnClass({IClient.class, RestTemplate.class})
@RibbonClients
@AutoConfigureAfter(EurekaClientAutoConfiguration.class)
public class RibbonAutoConfiguration {
......
......@@ -34,6 +34,10 @@
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
<exclusions>
<exclusion>
......
......@@ -56,7 +56,7 @@ public class ApplicationServletPathTests {
assertEquals(HttpStatus.OK, entity.getStatusCode());
String body = entity.getBody();
// System.err.println(body);
assertTrue(body.contains("euerka/js"));
assertTrue(body.contains("eureka/js"));
assertTrue(body.contains("eureka/css"));
// The "DS Replicas"
assertTrue(body.contains("<a href=\"http://localhost:8761/eureka/\">localhost</a>"));
......
......@@ -26,6 +26,18 @@
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-commons</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-core</artifactId>
......@@ -66,7 +78,11 @@
<groupId>com.netflix.zuul</groupId>
<artifactId>zuul-core</artifactId>
</dependency>
<dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-el</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<!-- Only needed at compile time -->
......
......@@ -39,6 +39,10 @@
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-commons</artifactId>
</dependency>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment