From e2583f538077b81471bea3188fc8450e356826e7 Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Fri, 6 Mar 2015 12:47:27 -0700 Subject: [PATCH] upgrade Ribbon to version 2.0.0. From 2.0.RC13 fixes gh-216 --- pom.xml | 7 ++++++- spring-cloud-netflix-core/pom.xml | 5 +++++ .../zuul/filters/route/RibbonCommand.java | 16 ++++++++-------- .../filters/route/RibbonRoutingFilter.java | 18 +++--------------- 4 files changed, 22 insertions(+), 24 deletions(-) diff --git a/pom.xml b/pom.xml index eb3ea84a..b5c90a7c 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ 1.1.147 7.3.0 1.4.0 - 2.0-RC13 + 2.0.0 1.0.28 0.20.7 1.7 @@ -238,6 +238,11 @@ + + com.netflix.ribbon + ribbon-loadbalancer + ${ribbon.version} + com.netflix.rxjava rxjava-core diff --git a/spring-cloud-netflix-core/pom.xml b/spring-cloud-netflix-core/pom.xml index adf032d3..f429f24c 100644 --- a/spring-cloud-netflix-core/pom.xml +++ b/spring-cloud-netflix-core/pom.xml @@ -54,6 +54,11 @@ eureka-core true + + com.netflix.ribbon + ribbon-loadbalancer + true + com.thoughtworks.xstream diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/route/RibbonCommand.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/route/RibbonCommand.java index 8251b5dc..7cd09efe 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/route/RibbonCommand.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/route/RibbonCommand.java @@ -21,8 +21,6 @@ import java.net.URI; import java.net.URISyntaxException; import java.util.List; -import javax.ws.rs.core.MultivaluedMap; - import com.netflix.client.http.HttpRequest; import com.netflix.client.http.HttpRequest.Builder; import com.netflix.client.http.HttpRequest.Verb; @@ -37,6 +35,7 @@ import com.netflix.hystrix.HystrixCommandProperties.ExecutionIsolationStrategy; import com.netflix.niws.client.http.RestClient; import com.netflix.zuul.constants.ZuulConstants; import com.netflix.zuul.context.RequestContext; +import org.springframework.util.MultiValueMap; /** * Hystrix wrapper around Eureka Ribbon command @@ -45,6 +44,7 @@ import com.netflix.zuul.context.RequestContext; * https://github.com/Netflix/zuul/blob/master/zuul-netflix/src/main/java/com/ * netflix/zuul/dependency/ribbon/hystrix/RibbonCommand.java */ +@SuppressWarnings("deprecation") public class RibbonCommand extends HystrixCommand { private RestClient restClient; @@ -55,24 +55,24 @@ public class RibbonCommand extends HystrixCommand { private Boolean retryable; - private MultivaluedMap headers; + private MultiValueMap headers; - private MultivaluedMap params; + private MultiValueMap params; private InputStream requestEntity; public RibbonCommand(RestClient restClient, Verb verb, String uri, Boolean retryable, - MultivaluedMap headers, - MultivaluedMap params, InputStream requestEntity) + MultiValueMap headers, + MultiValueMap params, InputStream requestEntity) throws URISyntaxException { this("default", restClient, verb, uri, retryable , headers, params, requestEntity); } public RibbonCommand(String commandKey, RestClient restClient, Verb verb, String uri, Boolean retryable, - MultivaluedMap headers, - MultivaluedMap params, InputStream requestEntity) + MultiValueMap headers, + MultiValueMap params, InputStream requestEntity) throws URISyntaxException { super(getSetter(commandKey)); this.restClient = restClient; diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/route/RibbonRoutingFilter.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/route/RibbonRoutingFilter.java index c782a4eb..e1e90062 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/route/RibbonRoutingFilter.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/route/RibbonRoutingFilter.java @@ -20,13 +20,11 @@ import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Collection; -import java.util.List; import java.util.Map; import java.util.Map.Entry; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.core.MultivaluedMap; import lombok.extern.apachecommons.CommonsLog; @@ -43,7 +41,6 @@ import com.netflix.niws.client.http.RestClient; import com.netflix.zuul.ZuulFilter; import com.netflix.zuul.context.RequestContext; import com.netflix.zuul.exception.ZuulException; -import com.sun.jersey.core.util.MultivaluedMapImpl; @CommonsLog public class RibbonRoutingFilter extends ZuulFilter { @@ -125,7 +122,7 @@ public class RibbonRoutingFilter extends ZuulFilter { Map info = this.helper.debug(verb.verb(), uri, headers, params, requestEntity); RibbonCommand command = new RibbonCommand(service, restClient, verb, uri, retryable, - convertHeaders(headers), convertHeaders(params), requestEntity); + headers, params, requestEntity); try { HttpResponse response = command.execute(); this.helper.appendDebug(info, response.getStatus(), @@ -150,18 +147,9 @@ public class RibbonRoutingFilter extends ZuulFilter { private MultiValueMap revertHeaders( Map> headers) { - MultiValueMap map = new LinkedMultiValueMap(); + MultiValueMap map = new LinkedMultiValueMap<>(); for (Entry> entry : headers.entrySet()) { - map.put(entry.getKey(), new ArrayList(entry.getValue())); - } - return map; - } - - private MultivaluedMap convertHeaders( - MultiValueMap headers) { - MultivaluedMap map = new MultivaluedMapImpl(); - for (Entry> entry : headers.entrySet()) { - map.put(entry.getKey(), entry.getValue()); + map.put(entry.getKey(), new ArrayList<>(entry.getValue())); } return map; }