diff --git a/pom.xml b/pom.xml index 9cd277db..fa80ac57 100644 --- a/pom.xml +++ b/pom.xml @@ -258,6 +258,11 @@ bootstrap 3.2.0 + + javax.inject + javax.inject + 1 + diff --git a/spring-cloud-netflix-core/pom.xml b/spring-cloud-netflix-core/pom.xml index d65b01bf..ba0347e1 100644 --- a/spring-cloud-netflix-core/pom.xml +++ b/spring-cloud-netflix-core/pom.xml @@ -135,6 +135,10 @@ spring-boot-starter-test test + + javax.inject + javax.inject + com.google.guava guava diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/feign/SpringDecoder.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/feign/SpringDecoder.java index 179da79b..0992188f 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/feign/SpringDecoder.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/feign/SpringDecoder.java @@ -17,6 +17,8 @@ import feign.Response; import feign.codec.DecodeException; import feign.codec.Decoder; +import javax.inject.Provider; + import static org.springframework.cloud.netflix.feign.FeignUtils.getHttpHeaders; /** @@ -25,7 +27,7 @@ import static org.springframework.cloud.netflix.feign.FeignUtils.getHttpHeaders; public class SpringDecoder implements Decoder { @Autowired - HttpMessageConverters messageConverters; + Provider messageConverters; public SpringDecoder() { } @@ -35,7 +37,7 @@ public class SpringDecoder implements Decoder { if (type instanceof Class || type instanceof ParameterizedType) { @SuppressWarnings({ "unchecked", "rawtypes" }) HttpMessageConverterExtractor extractor = new HttpMessageConverterExtractor( - type, messageConverters.getConverters()); + type, messageConverters.get().getConverters()); return extractor.extractData(new FeignResponseAdapter(response)); } diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/feign/SpringEncoder.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/feign/SpringEncoder.java index 6c160679..68fd5a60 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/feign/SpringEncoder.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/feign/SpringEncoder.java @@ -15,6 +15,7 @@ import org.springframework.http.HttpOutputMessage; import org.springframework.http.MediaType; import org.springframework.http.converter.HttpMessageConverter; +import javax.inject.Provider; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; @@ -29,7 +30,7 @@ public class SpringEncoder implements Encoder { private static final Logger logger = LoggerFactory.getLogger(SpringEncoder.class); @Autowired - HttpMessageConverters messageConverters; + Provider messageConverters; public SpringEncoder() { } @@ -48,7 +49,7 @@ public class SpringEncoder implements Encoder { requestContentType = MediaType.valueOf(type); } - for (HttpMessageConverter messageConverter : messageConverters.getConverters()) { + for (HttpMessageConverter messageConverter : messageConverters.get().getConverters()) { if (messageConverter.canWrite(requestType, requestContentType)) { if (logger.isDebugEnabled()) { if (requestContentType != null) {