From e265a5e3c88f673480c57ed06b563f67091cac27 Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Mon, 26 Jan 2015 14:54:01 -0700 Subject: [PATCH] upgrade to netflix feign 7.1.0. Add feign-slf4j support. fixes gh-178 --- pom.xml | 15 ++++++++++++--- spring-cloud-netflix-core/pom.xml | 10 ++++++++++ .../netflix/eureka/EurekaHeartbeatEvent.java | 2 ++ .../netflix/feign/FeignAutoConfiguration.java | 4 ++-- .../cloud/netflix/feign/FeignConfiguration.java | 2 ++ 5 files changed, 28 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 4622459f..7443d36f 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ ${basedir} 0.6.3 1.1.145 - 6.1.3 + 7.1.0 1.4.0-RC5 2.0-RC13 1.0.28 @@ -169,8 +169,17 @@ - + + + com.squareup.dagger + dagger + 1.2.2 + + + com.netflix.feign + feign-slf4j + ${feign.version} + com.netflix.hystrix hystrix-core diff --git a/spring-cloud-netflix-core/pom.xml b/spring-cloud-netflix-core/pom.xml index 5e24719a..a7e89a8c 100644 --- a/spring-cloud-netflix-core/pom.xml +++ b/spring-cloud-netflix-core/pom.xml @@ -65,11 +65,21 @@ feign-core true + + com.netflix.feign + feign-slf4j + true + com.netflix.feign feign-ribbon true + + com.squareup.dagger + dagger + true + com.netflix.hystrix hystrix-core diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaHeartbeatEvent.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaHeartbeatEvent.java index d3a146c1..ebe658f2 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaHeartbeatEvent.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaHeartbeatEvent.java @@ -6,6 +6,8 @@ import org.springframework.context.ApplicationEvent; /** * Specifically used when eureka is in the parent bootstrap context to relay the DiscoveryHeartbeatEvent to the child. Avoids stack overflow * @author Spencer Gibb + * + * TODO: create a ParentDiscoveryHeartbeatEvent in s-c-commons rather than eureka, so eureka doesn't leak into zuul (so zuul can be used with consul for example) */ @SuppressWarnings("serial") public class EurekaHeartbeatEvent extends ApplicationEvent { diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/feign/FeignAutoConfiguration.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/feign/FeignAutoConfiguration.java index 15c5c34e..34118b97 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/feign/FeignAutoConfiguration.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/feign/FeignAutoConfiguration.java @@ -16,6 +16,7 @@ package org.springframework.cloud.netflix.feign; +import feign.slf4j.Slf4jLogger; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.cloud.netflix.archaius.ArchaiusAutoConfiguration; @@ -52,8 +53,7 @@ public class FeignAutoConfiguration { @Bean public Logger feignLogger() { - // return new Slf4jLogger(); //TODO pass Client classname in - return new Logger.JavaLogger(); + return new Slf4jLogger(); } @Bean diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/feign/FeignConfiguration.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/feign/FeignConfiguration.java index dd8be9fd..e975200b 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/feign/FeignConfiguration.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/feign/FeignConfiguration.java @@ -16,6 +16,7 @@ package org.springframework.cloud.netflix.feign; +import feign.slf4j.Slf4jLogger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.netflix.archaius.ConfigurableEnvironmentConfiguration; import org.springframework.context.annotation.Configuration; @@ -95,6 +96,7 @@ public class FeignConfiguration { } protected T loadBalance(Feign.Builder builder, Class type, String schemeName) { + builder.logger(new Slf4jLogger(type)); //TODO: how to have choice here? if (this.ribbonClient != null) { return builder.client(this.ribbonClient).target(type, schemeName); }