From 28db47c72aa348dd526b64ee988c19edb5987758 Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Wed, 25 Mar 2015 11:38:58 -0600 Subject: [PATCH] move RibbonClientHttpRequestFactory to configuration conditional on netflix httpclient classes --- .../ribbon/RibbonAutoConfiguration.java | 39 ++++++++++++------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonAutoConfiguration.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonAutoConfiguration.java index 4ed747a0..989ae3e8 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonAutoConfiguration.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonAutoConfiguration.java @@ -19,6 +19,7 @@ package org.springframework.cloud.netflix.ribbon; import java.util.ArrayList; import java.util.List; +import com.netflix.client.http.HttpRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.AutoConfigureBefore; @@ -52,21 +53,6 @@ public class RibbonAutoConfiguration { @Autowired(required = false) private List configurations = new ArrayList<>(); - @Autowired(required = false) - @LoadBalanced - private RestTemplate restTemplate; - - @PostConstruct - public void init() { - if (restTemplate != null) { - restTemplate.setRequestFactory(ribbonClientHttpRequestFactory()); - } - } - - @Bean - public RibbonClientHttpRequestFactory ribbonClientHttpRequestFactory() { - return new RibbonClientHttpRequestFactory(springClientFactory()); - } @Bean public SpringClientFactory springClientFactory() { @@ -81,4 +67,27 @@ public class RibbonAutoConfiguration { return new RibbonLoadBalancerClient(springClientFactory()); } + @Configuration + @ConditionalOnClass(HttpRequest.class) + protected static class A { + @Autowired(required = false) + @LoadBalanced + private RestTemplate restTemplate; + + @Autowired + private SpringClientFactory springClientFactory; + + @PostConstruct + public void init() { + if (restTemplate != null) { + restTemplate.setRequestFactory(ribbonClientHttpRequestFactory()); + } + } + + @Bean + public RibbonClientHttpRequestFactory ribbonClientHttpRequestFactory() { + return new RibbonClientHttpRequestFactory(springClientFactory); + } + } + }