From 84f56ec3b205c617d6c9c2b56046bc054c0eb477 Mon Sep 17 00:00:00 2001 From: Ryan Baxter Date: Tue, 9 Jan 2018 08:25:40 -0500 Subject: [PATCH] Move Ribbon to its own module (#2548) * Move Ribbon to its own module. Fixes #2299 --- pom.xml | 3 +- spring-cloud-netflix-core/pom.xml | 80 +++-------- .../feign/SpringRetryDisabledTests.java | 74 ++++++++++ .../feign/SpringRetryEnabledTests.java | 62 +++++++++ .../src/test/resources/application.yml | 8 -- spring-cloud-netflix-dependencies/pom.xml | 5 + spring-cloud-netflix-ribbon/pom.xml | 126 ++++++++++++++++++ .../ribbon/DefaultServerIntrospector.java | 7 +- .../netflix/ribbon/PropertiesFactory.java | 5 +- .../ribbon/RestClientRibbonConfiguration.java | 10 +- .../RibbonApplicationContextInitializer.java | 3 +- .../ribbon/RibbonAutoConfiguration.java | 6 +- .../cloud/netflix/ribbon/RibbonClient.java | 2 - .../ribbon/RibbonClientConfiguration.java | 7 +- .../RibbonClientConfigurationRegistrar.java | 1 - .../RibbonClientHttpRequestFactory.java | 2 - .../ribbon/RibbonClientSpecification.java | 3 +- .../cloud/netflix/ribbon/RibbonClients.java | 1 - .../ribbon/RibbonEagerLoadProperties.java | 3 +- .../netflix/ribbon/RibbonHttpRequest.java | 2 - .../netflix/ribbon/RibbonHttpResponse.java | 9 +- .../ribbon/RibbonLoadBalancedRetryPolicy.java | 11 +- .../RibbonLoadBalancedRetryPolicyFactory.java | 0 .../ribbon/RibbonLoadBalancerClient.java | 0 .../ribbon/RibbonLoadBalancerContext.java | 0 .../netflix/ribbon/RibbonStatsRecorder.java | 1 - .../cloud/netflix/ribbon/RibbonUtils.java | 1 - .../netflix/ribbon/ServerIntrospector.java | 1 - .../ribbon/ServerIntrospectorProperties.java | 3 +- .../netflix/ribbon/SpringClientFactory.java | 2 - .../netflix/ribbon/StaticServerList.java | 5 +- .../ZonePreferenceServerListFilter.java | 1 - .../apache/HttpClientRibbonConfiguration.java | 3 +- ...etryableRibbonLoadBalancingHttpClient.java | 8 +- .../apache/RibbonApacheHttpRequest.java | 7 +- .../apache/RibbonApacheHttpResponse.java | 2 - .../apache/RibbonLoadBalancingHttpClient.java | 16 +-- .../okhttp/OkHttpLoadBalancingClient.java | 22 ++- .../okhttp/OkHttpRibbonConfiguration.java | 14 +- .../ribbon/okhttp/OkHttpRibbonRequest.java | 19 ++- .../ribbon/okhttp/OkHttpRibbonResponse.java | 8 +- .../RetryableOkHttpLoadBalancingClient.java | 10 +- .../support/AbstractLoadBalancingClient.java | 3 +- .../ribbon/support/ContextAwareRequest.java | 2 - .../ResettableServletInputStreamWrapper.java | 4 +- .../ribbon/support/RibbonCommandContext.java | 9 +- .../support/RibbonRequestCustomizer.java | 0 .../ribbon/support/RibbonRetryPolicy.java | 90 +++++++++++++ .../main/resources/META-INF/spring.factories | 2 + ...DefaultServerIntrospectorDefaultTests.java | 2 +- .../DefaultServerIntrospectorTests.java | 2 +- ...bonClientPreprocessorIntegrationTests.java | 1 - ...bonApplicationContextInitializerTests.java | 5 +- ...bbonAutoConfigurationIntegrationTests.java | 1 - ...onClientConfigurationIntegrationTests.java | 9 +- .../RibbonClientConfigurationTests.java | 2 - .../RibbonClientHttpRequestFactoryTests.java | 2 - ...bonClientPreprocessorIntegrationTests.java | 1 - ...PreprocessorOverridesIntegrationTests.java | 1 - ...ClientPreprocessorOverridesRetryTests.java | 2 - ...orPropertiesOverridesIntegrationTests.java | 1 - ...RibbonClientsEagerInitializationTests.java | 4 +- ...onClientsPreprocessorIntegrationTests.java | 12 +- .../netflix/ribbon/RibbonDisabledTests.java | 1 - .../ribbon/RibbonInterceptorTests.java | 0 ...onLoadBalancedRetryPolicyFactoryTests.java | 23 ++-- .../ribbon/RibbonLoadBalancerClientTests.java | 2 - .../netflix/ribbon/RibbonUtilsTests.java | 2 - .../ribbon/SpringClientFactoryTests.java | 1 - .../ribbon/SpringRetryDisabledTests.java | 13 +- .../ribbon/SpringRetryEnabledTests.java | 36 ++--- .../ZonePreferenceServerListFilterTests.java | 2 - .../apache/RibbonApacheHttpRequestTests.java | 40 +++--- .../apache/RibbonApacheHttpResponseTests.java | 1 - .../RibbonLoadBalancingHttpClientTests.java | 4 +- .../OkHttpLoadBalancingClientTests.java | 7 +- .../okhttp/OkHttpRibbonRequestTests.java | 9 +- .../okhttp/OkHttpRibbonResponseTests.java | 19 ++- .../SpringRetryDisableOkHttpClientTests.java | 4 +- .../SpringRetryEnabledOkHttpClientTests.java | 0 .../support/ContextAwareRequestTests.java | 1 - .../support/RibbonCommandContextTest.java | 6 +- ...RibbonClientDefaultConfigurationTests.java | 9 +- ...ClientDefaultConfigurationTestsConfig.java | 3 +- .../ribbon/test/TestAutoConfiguration.java | 70 ++++++++++ .../netflix/ribbon/test/TestLoadBalancer.java | 0 .../netflix/ribbon/test/TestServerList.java | 1 - .../test/resources/META-INF/spring.factories | 2 + .../src/test/resources/application.yml | 8 ++ spring-cloud-netflix-zuul/pom.xml | 20 +++ .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- 93 files changed, 654 insertions(+), 344 deletions(-) create mode 100644 spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/SpringRetryDisabledTests.java create mode 100644 spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/SpringRetryEnabledTests.java create mode 100644 spring-cloud-netflix-ribbon/pom.xml rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospector.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/PropertiesFactory.java (96%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/RestClientRibbonConfiguration.java (100%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonApplicationContextInitializer.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonAutoConfiguration.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClient.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfiguration.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationRegistrar.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientHttpRequestFactory.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientSpecification.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClients.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonEagerLoadProperties.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonHttpRequest.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonHttpResponse.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancedRetryPolicy.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancedRetryPolicyFactory.java (100%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerClient.java (100%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerContext.java (100%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonStatsRecorder.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonUtils.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/ServerIntrospector.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/ServerIntrospectorProperties.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/SpringClientFactory.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/StaticServerList.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/ZonePreferenceServerListFilter.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/apache/HttpClientRibbonConfiguration.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RetryableRibbonLoadBalancingHttpClient.java (98%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpRequest.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpResponse.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonLoadBalancingHttpClient.java (97%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpLoadBalancingClient.java (98%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonConfiguration.java (100%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonRequest.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonResponse.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/RetryableOkHttpLoadBalancingClient.java (97%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/support/AbstractLoadBalancingClient.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/support/ContextAwareRequest.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/support/ResettableServletInputStreamWrapper.java (100%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/support/RibbonCommandContext.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/main/java/org/springframework/cloud/netflix/ribbon/support/RibbonRequestCustomizer.java (100%) create mode 100644 spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/support/RibbonRetryPolicy.java create mode 100644 spring-cloud-netflix-ribbon/src/main/resources/META-INF/spring.factories rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospectorDefaultTests.java (100%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospectorTests.java (100%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/PlainRibbonClientPreprocessorIntegrationTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonApplicationContextInitializerTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonAutoConfigurationIntegrationTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationIntegrationTests.java (98%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientHttpRequestFactoryTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorIntegrationTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorOverridesIntegrationTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorOverridesRetryTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorPropertiesOverridesIntegrationTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientsEagerInitializationTests.java (97%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientsPreprocessorIntegrationTests.java (98%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonDisabledTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonInterceptorTests.java (100%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancedRetryPolicyFactoryTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerClientTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonUtilsTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/SpringClientFactoryTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/SpringRetryDisabledTests.java (76%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/SpringRetryEnabledTests.java (60%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/ZonePreferenceServerListFilterTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpRequestTests.java (95%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpResponseTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonLoadBalancingHttpClientTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpLoadBalancingClientTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonRequestTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonResponseTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/SpringRetryDisableOkHttpClientTests.java (100%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/SpringRetryEnabledOkHttpClientTests.java (100%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/support/ContextAwareRequestTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/support/RibbonCommandContextTest.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/test/RibbonClientDefaultConfigurationTests.java (99%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/test/RibbonClientDefaultConfigurationTestsConfig.java (99%) create mode 100644 spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/test/TestAutoConfiguration.java rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/test/TestLoadBalancer.java (100%) rename {spring-cloud-netflix-core => spring-cloud-netflix-ribbon}/src/test/java/org/springframework/cloud/netflix/ribbon/test/TestServerList.java (99%) create mode 100644 spring-cloud-netflix-ribbon/src/test/resources/META-INF/spring.factories create mode 100644 spring-cloud-netflix-ribbon/src/test/resources/application.yml diff --git a/pom.xml b/pom.xml index 8e409500..312fdc99 100644 --- a/pom.xml +++ b/pom.xml @@ -150,9 +150,10 @@ spring-cloud-netflix-turbine-stream spring-cloud-netflix-sidecar spring-cloud-netflix-zuul + spring-cloud-netflix-ribbon spring-cloud-starter-netflix docs - + spring diff --git a/spring-cloud-netflix-core/pom.xml b/spring-cloud-netflix-core/pom.xml index 9142c4a7..75f7670c 100644 --- a/spring-cloud-netflix-core/pom.xml +++ b/spring-cloud-netflix-core/pom.xml @@ -18,11 +18,11 @@ org.springframework.boot - spring-boot + spring-boot-autoconfigure - org.springframework.boot - spring-boot-autoconfigure + org.springframework.cloud + spring-cloud-netflix-ribbon org.springframework.boot @@ -44,26 +44,20 @@ reactor-core true - - io.projectreactor - reactor-test - test - io.reactivex rxjava-reactive-streams true - - org.springframework.boot - spring-boot-starter-aop - true - org.springframework.retry spring-retry true + + org.springframework.boot + spring-boot-starter-aop + org.springframework.cloud spring-cloud-commons @@ -74,31 +68,6 @@ spring-cloud-context true - - org.springframework.cloud - spring-cloud-netflix-archaius - ${project.version} - - - commons-configuration - commons-configuration - true - - - com.netflix.servo - servo-core - true - - - com.netflix.netflix-commons - netflix-commons-util - true - - - javax.inject - javax.inject - true - com.netflix.ribbon ribbon-loadbalancer @@ -149,11 +118,6 @@ hystrix-javanica true - - com.netflix.ribbon - ribbon - true - com.netflix.ribbon ribbon-core @@ -164,21 +128,6 @@ ribbon-httpclient true - - com.netflix.zuul - zuul-core - true - - - groovy-all - org.codehaus.groovy - - - mockito-all - org.mockito - - - io.reactivex rxjava @@ -194,11 +143,6 @@ okhttp true - - io.micrometer - micrometer-core - true - org.springframework.boot spring-boot-starter-test @@ -209,6 +153,16 @@ spring-cloud-test-support test + + io.projectreactor + reactor-test + test + + + com.netflix.ribbon + ribbon + test + diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/SpringRetryDisabledTests.java b/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/SpringRetryDisabledTests.java new file mode 100644 index 00000000..11ca4d1b --- /dev/null +++ b/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/SpringRetryDisabledTests.java @@ -0,0 +1,74 @@ +/* + * Copyright 2013-2017 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +package org.springframework.cloud.netflix.feign; + +import java.util.Map; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.cloud.client.loadbalancer.LoadBalancerAutoConfiguration; +import org.springframework.cloud.netflix.feign.ribbon.CachingSpringLoadBalancerFactory; +import org.springframework.cloud.netflix.feign.ribbon.FeignLoadBalancer; +import org.springframework.cloud.netflix.feign.ribbon.FeignRibbonClientAutoConfiguration; +import org.springframework.cloud.netflix.feign.ribbon.RetryableFeignLoadBalancer; +import org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration; +import org.springframework.cloud.netflix.ribbon.RibbonClientConfiguration; +import org.springframework.cloud.test.ClassPathExclusions; +import org.springframework.cloud.test.ModifiedClassPathRunner; +import org.springframework.context.ConfigurableApplicationContext; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.hasSize; +import static org.hamcrest.Matchers.instanceOf; +import static org.hamcrest.Matchers.not; +import static org.hamcrest.core.Is.is; + +/** + * @author Ryan Baxter + */ +@RunWith(ModifiedClassPathRunner.class) +@ClassPathExclusions({"spring-retry-*.jar", "spring-boot-starter-aop-*.jar"}) +public class SpringRetryDisabledTests { + + private ConfigurableApplicationContext context; + + @Before + public void setUp() { + context = new SpringApplicationBuilder().web(false) + .sources(RibbonAutoConfiguration.class, LoadBalancerAutoConfiguration.class, RibbonClientConfiguration.class, + FeignRibbonClientAutoConfiguration.class).run(); + } + + @After + public void tearDown() { + if(context != null) { + context.close(); + } + } + + @Test + public void testLoadBalancedRetryFactoryBean() throws Exception { + Map lbFactorys = context.getBeansOfType(CachingSpringLoadBalancerFactory.class); + assertThat(lbFactorys.values(), hasSize(1)); + FeignLoadBalancer lb =lbFactorys.values().iterator().next().create("foo"); + assertThat(lb, instanceOf(FeignLoadBalancer.class)); + assertThat(lb, is(not(instanceOf(RetryableFeignLoadBalancer.class)))); + } +} diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/SpringRetryEnabledTests.java b/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/SpringRetryEnabledTests.java new file mode 100644 index 00000000..5a2eb512 --- /dev/null +++ b/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/feign/SpringRetryEnabledTests.java @@ -0,0 +1,62 @@ +/* + * Copyright 2013-2017 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.netflix.feign; + +import java.util.Map; +import org.hamcrest.Matchers; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.BeansException; +import org.springframework.cloud.client.loadbalancer.LoadBalancerAutoConfiguration; +import org.springframework.cloud.commons.httpclient.HttpClientConfiguration; +import org.springframework.cloud.netflix.feign.ribbon.CachingSpringLoadBalancerFactory; +import org.springframework.cloud.netflix.feign.ribbon.FeignLoadBalancer; +import org.springframework.cloud.netflix.feign.ribbon.FeignRibbonClientAutoConfiguration; +import org.springframework.cloud.netflix.feign.ribbon.RetryableFeignLoadBalancer; +import org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration; +import org.springframework.cloud.netflix.ribbon.RibbonClientConfiguration; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.instanceOf; + +/** + * @author Ryan Baxter + */ +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = {RibbonAutoConfiguration.class, RibbonClientConfiguration.class, LoadBalancerAutoConfiguration.class, + FeignRibbonClientAutoConfiguration.class, HttpClientConfiguration.class}) +public class SpringRetryEnabledTests implements ApplicationContextAware { + + private ApplicationContext context; + + @Test + public void testLoadBalancedRetryFactoryBean() throws Exception { + Map lbFactorys = context.getBeansOfType(CachingSpringLoadBalancerFactory.class); + assertThat(lbFactorys.values(), Matchers.hasSize(1)); + FeignLoadBalancer lb =lbFactorys.values().iterator().next().create("foo"); + assertThat(lb, instanceOf(RetryableFeignLoadBalancer.class)); + } + + @Override + public void setApplicationContext(ApplicationContext context) throws BeansException { + this.context = context; + } +} \ No newline at end of file diff --git a/spring-cloud-netflix-core/src/test/resources/application.yml b/spring-cloud-netflix-core/src/test/resources/application.yml index 6cae89d2..60815792 100644 --- a/spring-cloud-netflix-core/src/test/resources/application.yml +++ b/spring-cloud-netflix-core/src/test/resources/application.yml @@ -23,14 +23,6 @@ foo: ribbon: ConnectTimeout: 7 ReadTimeout: 17 -# for RibbonClientPreprocessorPropertiesOverridesIntegrationTests -foo2: - ribbon: - NFLoadBalancerPingClassName: com.netflix.loadbalancer.NoOpPing - NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule - NIWSServerListClassName: org.springframework.cloud.netflix.ribbon.test.TestServerList - NIWSServerListFilterClassName: com.netflix.loadbalancer.ServerListSubsetFilter - NFLoadBalancerClassName: org.springframework.cloud.netflix.ribbon.test.TestLoadBalancer badClients: ribbon: MaxAutoRetriesNextServer: 10 diff --git a/spring-cloud-netflix-dependencies/pom.xml b/spring-cloud-netflix-dependencies/pom.xml index 442f860c..4a62ae9a 100644 --- a/spring-cloud-netflix-dependencies/pom.xml +++ b/spring-cloud-netflix-dependencies/pom.xml @@ -135,6 +135,11 @@ spring-cloud-netflix-zuul ${project.version} + + org.springframework.cloud + spring-cloud-netflix-ribbon + ${project.version} + com.netflix.netflix-commons netflix-commons-util diff --git a/spring-cloud-netflix-ribbon/pom.xml b/spring-cloud-netflix-ribbon/pom.xml new file mode 100644 index 00000000..17807f67 --- /dev/null +++ b/spring-cloud-netflix-ribbon/pom.xml @@ -0,0 +1,126 @@ + + + + spring-cloud-netflix + org.springframework.cloud + 2.0.0.BUILD-SNAPSHOT + .. + + 4.0.0 + + org.springframework.cloud + spring-cloud-netflix-ribbon + + ${basedir}/.. + + + + + org.springframework.boot + spring-boot-starter-web + true + + + org.springframework.boot + spring-boot + true + + + org.springframework.boot + spring-boot-autoconfigure + true + + + org.springframework.cloud + spring-cloud-commons + true + + + org.springframework.cloud + spring-cloud-context + true + + + org.springframework.cloud + spring-cloud-netflix-archaius + + + com.netflix.ribbon + ribbon + true + + + com.netflix.ribbon + ribbon-core + true + + + com.netflix.ribbon + ribbon-httpclient + true + + + com.netflix.ribbon + ribbon-loadbalancer + true + + + + com.sun.jersey.contribs + jersey-apache-client4 + true + + + com.squareup.okhttp3 + okhttp + true + + + org.springframework.retry + spring-retry + true + + + commons-configuration + commons-configuration + true + + + com.netflix.servo + servo-core + true + + + com.netflix.netflix-commons + netflix-commons-util + true + + + com.netflix.hystrix + hystrix-javanica + true + + + org.springframework.cloud + spring-cloud-test-support + test + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-starter-security + test + + + org.springframework.boot + spring-boot-starter-actuator + test + + + \ No newline at end of file diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospector.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospector.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospector.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospector.java index 6b6b703e..c1dfcb1d 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospector.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospector.java @@ -16,12 +16,13 @@ package org.springframework.cloud.netflix.ribbon; -import com.netflix.loadbalancer.Server; -import org.springframework.beans.factory.annotation.Autowired; - import java.util.Collections; import java.util.Map; +import org.springframework.beans.factory.annotation.Autowired; + +import com.netflix.loadbalancer.Server; + /** * @author Spencer Gibb */ diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/PropertiesFactory.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/PropertiesFactory.java similarity index 96% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/PropertiesFactory.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/PropertiesFactory.java index e6c0763d..ed0fc42f 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/PropertiesFactory.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/PropertiesFactory.java @@ -2,11 +2,9 @@ package org.springframework.cloud.netflix.ribbon; import java.util.HashMap; import java.util.Map; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.util.StringUtils; - import com.netflix.client.config.IClientConfig; import com.netflix.loadbalancer.ILoadBalancer; import com.netflix.loadbalancer.IPing; @@ -17,6 +15,7 @@ import com.netflix.loadbalancer.ServerListFilter; import static org.springframework.cloud.netflix.ribbon.SpringClientFactory.NAMESPACE; import static org.springframework.cloud.netflix.ribbon.SpringClientFactory.instantiateWithConfig; + /** * @author Spencer Gibb */ @@ -53,7 +52,7 @@ public class PropertiesFactory { if (StringUtils.hasText(className)) { try { Class toInstantiate = Class.forName(className); - return (C) instantiateWithConfig(toInstantiate, config); + return (C) SpringClientFactory.instantiateWithConfig(toInstantiate, config); } catch (ClassNotFoundException e) { throw new IllegalArgumentException("Unknown class to load "+className+" for class " + clazz + " named " + name); } diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RestClientRibbonConfiguration.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RestClientRibbonConfiguration.java similarity index 100% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RestClientRibbonConfiguration.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RestClientRibbonConfiguration.java index ca829560..10a598e5 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RestClientRibbonConfiguration.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RestClientRibbonConfiguration.java @@ -17,17 +17,17 @@ package org.springframework.cloud.netflix.ribbon; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Lazy; import com.netflix.client.AbstractLoadBalancerAwareClient; import com.netflix.client.RetryHandler; import com.netflix.client.config.IClientConfig; import com.netflix.loadbalancer.ILoadBalancer; import com.netflix.niws.client.http.RestClient; import com.netflix.servo.monitor.Monitors; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Lazy; /** * @author Spencer Gibb diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonApplicationContextInitializer.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonApplicationContextInitializer.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonApplicationContextInitializer.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonApplicationContextInitializer.java index a6590e49..3051bb49 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonApplicationContextInitializer.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonApplicationContextInitializer.java @@ -16,11 +16,10 @@ package org.springframework.cloud.netflix.ribbon; +import java.util.List; import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.context.ApplicationListener; -import java.util.List; - /** * Responsible for eagerly creating the child application context holding the Ribbon * related configuration diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonAutoConfiguration.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonAutoConfiguration.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonAutoConfiguration.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonAutoConfiguration.java index 4ce53fb9..6c9bff20 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonAutoConfiguration.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonAutoConfiguration.java @@ -23,7 +23,6 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.util.ArrayList; import java.util.List; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.AutoConfigureBefore; @@ -45,7 +44,6 @@ import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Configuration; import org.springframework.web.client.AsyncRestTemplate; import org.springframework.web.client.RestTemplate; - import com.netflix.client.IClient; import com.netflix.client.http.HttpRequest; import com.netflix.ribbon.Ribbon; @@ -67,7 +65,7 @@ public class RibbonAutoConfiguration { @Autowired(required = false) private List configurations = new ArrayList<>(); - + @Autowired private RibbonEagerLoadProperties ribbonEagerLoadProperties; @@ -115,7 +113,7 @@ public class RibbonAutoConfiguration { public PropertiesFactory propertiesFactory() { return new PropertiesFactory(); } - + @Bean @ConditionalOnProperty(value = "ribbon.eager-load.enabled", matchIfMissing = false) public RibbonApplicationContextInitializer ribbonApplicationContextInitializer() { diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClient.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClient.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClient.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClient.java index 61d39b19..1b6e017b 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClient.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClient.java @@ -21,10 +21,8 @@ import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; - import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; - import com.netflix.loadbalancer.ILoadBalancer; import com.netflix.loadbalancer.IRule; import com.netflix.loadbalancer.ServerListFilter; diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfiguration.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfiguration.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfiguration.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfiguration.java index dc251478..0724db36 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfiguration.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfiguration.java @@ -17,9 +17,7 @@ package org.springframework.cloud.netflix.ribbon; import java.net.URI; - import javax.annotation.PostConstruct; - import org.apache.http.client.params.ClientPNames; import org.apache.http.client.params.CookiePolicy; import org.springframework.beans.factory.annotation.Autowired; @@ -28,11 +26,10 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.commons.httpclient.HttpClientConfiguration; import org.springframework.cloud.netflix.ribbon.apache.HttpClientRibbonConfiguration; -import org.springframework.cloud.netflix.ribbon.okhttp.OkHttpRibbonConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; - +import org.springframework.cloud.netflix.ribbon.okhttp.OkHttpRibbonConfiguration; import com.netflix.client.DefaultLoadBalancerRetryHandler; import com.netflix.client.RetryHandler; import com.netflix.client.config.CommonClientConfigKey; @@ -157,7 +154,7 @@ public class RibbonClientConfiguration { @Bean @ConditionalOnMissingBean public RibbonLoadBalancerContext ribbonLoadBalancerContext(ILoadBalancer loadBalancer, - IClientConfig config, RetryHandler retryHandler) { + IClientConfig config, RetryHandler retryHandler) { return new RibbonLoadBalancerContext(loadBalancer, config, retryHandler); } diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationRegistrar.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationRegistrar.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationRegistrar.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationRegistrar.java index bb481a77..b72841ca 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationRegistrar.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationRegistrar.java @@ -17,7 +17,6 @@ package org.springframework.cloud.netflix.ribbon; import java.util.Map; - import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientHttpRequestFactory.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientHttpRequestFactory.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientHttpRequestFactory.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientHttpRequestFactory.java index 8fde9b57..910206b4 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientHttpRequestFactory.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientHttpRequestFactory.java @@ -18,11 +18,9 @@ package org.springframework.cloud.netflix.ribbon; import java.io.IOException; import java.net.URI; - import org.springframework.http.HttpMethod; import org.springframework.http.client.ClientHttpRequest; import org.springframework.http.client.ClientHttpRequestFactory; - import com.netflix.client.config.IClientConfig; import com.netflix.client.http.HttpRequest; import com.netflix.niws.client.http.RestClient; diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientSpecification.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientSpecification.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientSpecification.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientSpecification.java index 5b3edb59..ad1827fe 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientSpecification.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientSpecification.java @@ -16,10 +16,9 @@ package org.springframework.cloud.netflix.ribbon; -import org.springframework.cloud.context.named.NamedContextFactory; - import java.util.Arrays; import java.util.Objects; +import org.springframework.cloud.context.named.NamedContextFactory; /** * @author Dave Syer diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClients.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClients.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClients.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClients.java index f623eab0..32e88cc2 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClients.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClients.java @@ -21,7 +21,6 @@ import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; - import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonEagerLoadProperties.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonEagerLoadProperties.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonEagerLoadProperties.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonEagerLoadProperties.java index 4589edb3..f27b6b48 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonEagerLoadProperties.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonEagerLoadProperties.java @@ -16,9 +16,8 @@ package org.springframework.cloud.netflix.ribbon; -import org.springframework.boot.context.properties.ConfigurationProperties; - import java.util.List; +import org.springframework.boot.context.properties.ConfigurationProperties; /* * Configuration Properties to indicate which Ribbon configurations diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonHttpRequest.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonHttpRequest.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonHttpRequest.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonHttpRequest.java index 70edfcef..803f2cb7 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonHttpRequest.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonHttpRequest.java @@ -21,12 +21,10 @@ import java.io.IOException; import java.io.OutputStream; import java.net.URI; import java.util.List; - import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.client.AbstractClientHttpRequest; import org.springframework.http.client.ClientHttpResponse; - import com.netflix.client.config.IClientConfig; import com.netflix.client.http.HttpRequest; import com.netflix.client.http.HttpResponse; diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonHttpResponse.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonHttpResponse.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonHttpResponse.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonHttpResponse.java index 356b27bd..12a6e192 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonHttpResponse.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonHttpResponse.java @@ -16,15 +16,14 @@ package org.springframework.cloud.netflix.ribbon; -import com.netflix.client.http.HttpResponse; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.client.AbstractClientHttpResponse; - import java.io.IOException; import java.io.InputStream; import java.util.List; import java.util.Map; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.client.AbstractClientHttpResponse; +import com.netflix.client.http.HttpResponse; /** * @author Spencer Gibb diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancedRetryPolicy.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancedRetryPolicy.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancedRetryPolicy.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancedRetryPolicy.java index 762cbe2d..335b3b8c 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancedRetryPolicy.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancedRetryPolicy.java @@ -16,9 +16,9 @@ package org.springframework.cloud.netflix.ribbon; -import com.netflix.client.config.CommonClientConfigKey; -import com.netflix.client.config.IClientConfig; -import com.netflix.client.config.IClientConfigKey; +import java.util.ArrayList; +import java.util.List; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryContext; @@ -27,8 +27,9 @@ import org.springframework.cloud.client.loadbalancer.ServiceInstanceChooser; import org.springframework.http.HttpMethod; import org.springframework.util.StringUtils; -import java.util.ArrayList; -import java.util.List; +import com.netflix.client.config.CommonClientConfigKey; +import com.netflix.client.config.IClientConfig; +import com.netflix.client.config.IClientConfigKey; /** * {@link LoadBalancedRetryPolicy} for Ribbon clients. diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancedRetryPolicyFactory.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancedRetryPolicyFactory.java similarity index 100% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancedRetryPolicyFactory.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancedRetryPolicyFactory.java diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerClient.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerClient.java similarity index 100% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerClient.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerClient.java diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerContext.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerContext.java similarity index 100% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerContext.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerContext.java diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonStatsRecorder.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonStatsRecorder.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonStatsRecorder.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonStatsRecorder.java index 7aee9724..4f01100f 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonStatsRecorder.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonStatsRecorder.java @@ -1,7 +1,6 @@ package org.springframework.cloud.netflix.ribbon; import java.util.concurrent.TimeUnit; - import com.netflix.loadbalancer.Server; import com.netflix.loadbalancer.ServerStats; import com.netflix.servo.monitor.Stopwatch; diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonUtils.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonUtils.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonUtils.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonUtils.java index 464af407..d316f30a 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonUtils.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonUtils.java @@ -4,7 +4,6 @@ import java.net.URI; import org.springframework.util.StringUtils; import org.springframework.web.util.UriComponentsBuilder; - import com.netflix.client.config.CommonClientConfigKey; import com.netflix.client.config.IClientConfig; import com.netflix.config.ConfigurationManager; diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/ServerIntrospector.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/ServerIntrospector.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/ServerIntrospector.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/ServerIntrospector.java index 0e62b8f3..d6364178 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/ServerIntrospector.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/ServerIntrospector.java @@ -17,7 +17,6 @@ package org.springframework.cloud.netflix.ribbon; import java.util.Map; - import com.netflix.loadbalancer.Server; /** diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/ServerIntrospectorProperties.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/ServerIntrospectorProperties.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/ServerIntrospectorProperties.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/ServerIntrospectorProperties.java index 1d038bc6..ce863345 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/ServerIntrospectorProperties.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/ServerIntrospectorProperties.java @@ -16,11 +16,10 @@ package org.springframework.cloud.netflix.ribbon; -import org.springframework.boot.context.properties.ConfigurationProperties; - import java.util.Arrays; import java.util.List; import java.util.Objects; +import org.springframework.boot.context.properties.ConfigurationProperties; /** * @author Rico Pahlisch diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/SpringClientFactory.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/SpringClientFactory.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/SpringClientFactory.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/SpringClientFactory.java index 1f9dcdda..d2340874 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/SpringClientFactory.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/SpringClientFactory.java @@ -17,11 +17,9 @@ package org.springframework.cloud.netflix.ribbon; import java.lang.reflect.Constructor; - import org.springframework.beans.BeanUtils; import org.springframework.cloud.context.named.NamedContextFactory; import org.springframework.context.annotation.AnnotationConfigApplicationContext; - import com.netflix.client.IClient; import com.netflix.client.IClientConfigAware; import com.netflix.client.config.IClientConfig; diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/StaticServerList.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/StaticServerList.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/StaticServerList.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/StaticServerList.java index dae6293f..959e3f8c 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/StaticServerList.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/StaticServerList.java @@ -16,11 +16,10 @@ package org.springframework.cloud.netflix.ribbon; -import com.netflix.loadbalancer.Server; -import com.netflix.loadbalancer.ServerList; - import java.util.Arrays; import java.util.List; +import com.netflix.loadbalancer.Server; +import com.netflix.loadbalancer.ServerList; /** * @author Spencer Gibb diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/ZonePreferenceServerListFilter.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/ZonePreferenceServerListFilter.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/ZonePreferenceServerListFilter.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/ZonePreferenceServerListFilter.java index d016f5f0..8fc140b8 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/ZonePreferenceServerListFilter.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/ZonePreferenceServerListFilter.java @@ -19,7 +19,6 @@ package org.springframework.cloud.netflix.ribbon; import java.util.ArrayList; import java.util.List; import java.util.Objects; - import com.netflix.client.config.IClientConfig; import com.netflix.config.ConfigurationManager; import com.netflix.config.DeploymentContext.ContextKey; diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/apache/HttpClientRibbonConfiguration.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/apache/HttpClientRibbonConfiguration.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/apache/HttpClientRibbonConfiguration.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/apache/HttpClientRibbonConfiguration.java index 2eb8e41c..ef11920f 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/apache/HttpClientRibbonConfiguration.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/apache/HttpClientRibbonConfiguration.java @@ -35,10 +35,9 @@ import org.springframework.cloud.client.loadbalancer.LoadBalancedBackOffPolicyFa import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory; import org.springframework.cloud.commons.httpclient.ApacheHttpClientConnectionManagerFactory; import org.springframework.cloud.commons.httpclient.ApacheHttpClientFactory; -import org.springframework.cloud.netflix.ribbon.ServerIntrospector; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; - +import org.springframework.cloud.netflix.ribbon.ServerIntrospector; import com.netflix.client.AbstractLoadBalancerAwareClient; import com.netflix.client.RetryHandler; import com.netflix.client.config.CommonClientConfigKey; diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RetryableRibbonLoadBalancingHttpClient.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RetryableRibbonLoadBalancingHttpClient.java similarity index 98% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RetryableRibbonLoadBalancingHttpClient.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RetryableRibbonLoadBalancingHttpClient.java index 3bff78b8..21a4f03a 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RetryableRibbonLoadBalancingHttpClient.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RetryableRibbonLoadBalancingHttpClient.java @@ -30,9 +30,7 @@ import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicy; import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory; import org.springframework.cloud.client.loadbalancer.RetryableStatusCodeException; import org.springframework.cloud.client.loadbalancer.ServiceInstanceChooser; -import org.springframework.cloud.netflix.feign.ribbon.FeignRetryPolicy; -import org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient; -import org.springframework.cloud.netflix.ribbon.ServerIntrospector; +import org.springframework.cloud.netflix.ribbon.support.RibbonRetryPolicy; import org.springframework.http.HttpRequest; import org.springframework.retry.RetryCallback; import org.springframework.retry.RetryContext; @@ -40,6 +38,8 @@ import org.springframework.retry.backoff.BackOffPolicy; import org.springframework.retry.backoff.NoBackOffPolicy; import org.springframework.retry.policy.NeverRetryPolicy; import org.springframework.retry.support.RetryTemplate; +import org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient; +import org.springframework.cloud.netflix.ribbon.ServerIntrospector; import com.netflix.client.RequestSpecificRetryHandler; import com.netflix.client.RetryHandler; import com.netflix.client.config.CommonClientConfigKey; @@ -150,7 +150,7 @@ public class RetryableRibbonLoadBalancingHttpClient extends RibbonLoadBalancingH return new RequestSpecificRetryHandler(false, false, RetryHandler.DEFAULT, null); } - static class RetryPolicy extends FeignRetryPolicy { + static class RetryPolicy extends RibbonRetryPolicy { public RetryPolicy(HttpRequest request, LoadBalancedRetryPolicy policy, ServiceInstanceChooser serviceInstanceChooser, String serviceName) { super(request, policy, serviceInstanceChooser, serviceName); } diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpRequest.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpRequest.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpRequest.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpRequest.java index df56751f..ed11f8f6 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpRequest.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpRequest.java @@ -16,17 +16,16 @@ package org.springframework.cloud.netflix.ribbon.apache; -import static org.springframework.cloud.netflix.ribbon.support.RibbonRequestCustomizer.Runner.customize; - import java.net.URI; import java.util.List; - import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.client.methods.RequestBuilder; import org.apache.http.entity.BasicHttpEntity; -import org.springframework.cloud.netflix.ribbon.support.ContextAwareRequest; import org.springframework.cloud.netflix.ribbon.support.RibbonCommandContext; +import org.springframework.cloud.netflix.ribbon.support.ContextAwareRequest; + +import static org.springframework.cloud.netflix.ribbon.support.RibbonRequestCustomizer.Runner.customize; /** * @author Christian Lohmann diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpResponse.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpResponse.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpResponse.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpResponse.java index a6367c91..689fff08 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpResponse.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpResponse.java @@ -25,12 +25,10 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; - import org.apache.http.Header; import org.apache.http.HttpResponse; import org.springframework.http.HttpStatus; import org.springframework.util.Assert; - import com.google.common.reflect.TypeToken; import com.netflix.client.ClientException; import com.netflix.client.http.CaseInsensitiveMultiMap; diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonLoadBalancingHttpClient.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonLoadBalancingHttpClient.java similarity index 97% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonLoadBalancingHttpClient.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonLoadBalancingHttpClient.java index 52cacdc0..a0fad0ca 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonLoadBalancingHttpClient.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/apache/RibbonLoadBalancingHttpClient.java @@ -16,11 +16,7 @@ package org.springframework.cloud.netflix.ribbon.apache; -import com.netflix.client.RequestSpecificRetryHandler; -import com.netflix.client.RetryHandler; -import com.netflix.client.config.CommonClientConfigKey; -import com.netflix.client.config.IClientConfig; -import com.netflix.loadbalancer.Server; +import java.net.URI; import org.apache.http.HttpResponse; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.HttpUriRequest; @@ -29,8 +25,12 @@ import org.apache.http.impl.client.HttpClientBuilder; import org.springframework.cloud.netflix.ribbon.ServerIntrospector; import org.springframework.cloud.netflix.ribbon.support.AbstractLoadBalancingClient; import org.springframework.web.util.UriComponentsBuilder; - -import java.net.URI; +import org.springframework.cloud.netflix.ribbon.RibbonUtils; +import com.netflix.client.RequestSpecificRetryHandler; +import com.netflix.client.RetryHandler; +import com.netflix.client.config.CommonClientConfigKey; +import com.netflix.client.config.IClientConfig; +import com.netflix.loadbalancer.Server; import static org.springframework.cloud.netflix.ribbon.RibbonUtils.updateToSecureConnectionIfNeeded; @@ -67,7 +67,7 @@ public class RibbonLoadBalancingHttpClient extends @Override public RibbonApacheHttpResponse execute(RibbonApacheHttpRequest request, - final IClientConfig configOverride) throws Exception { + final IClientConfig configOverride) throws Exception { final RequestConfig.Builder builder = RequestConfig.custom(); IClientConfig config = configOverride != null ? configOverride : this.config; builder.setConnectTimeout( diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpLoadBalancingClient.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpLoadBalancingClient.java similarity index 98% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpLoadBalancingClient.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpLoadBalancingClient.java index f7b325db..dabf79fa 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpLoadBalancingClient.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpLoadBalancingClient.java @@ -16,21 +16,19 @@ package org.springframework.cloud.netflix.ribbon.okhttp; -import java.net.URI; -import java.util.concurrent.TimeUnit; - -import org.springframework.cloud.netflix.ribbon.ServerIntrospector; -import org.springframework.cloud.netflix.ribbon.support.AbstractLoadBalancingClient; -import org.springframework.web.util.UriComponentsBuilder; - -import com.netflix.client.config.CommonClientConfigKey; -import com.netflix.client.config.IClientConfig; -import com.netflix.loadbalancer.Server; - import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; +import java.net.URI; +import java.util.concurrent.TimeUnit; +import org.springframework.cloud.netflix.ribbon.support.AbstractLoadBalancingClient; +import org.springframework.web.util.UriComponentsBuilder; +import org.springframework.cloud.netflix.ribbon.ServerIntrospector; +import com.netflix.client.config.CommonClientConfigKey; +import com.netflix.client.config.IClientConfig; +import com.netflix.loadbalancer.Server; + import static org.springframework.cloud.netflix.ribbon.RibbonUtils.updateToSecureConnectionIfNeeded; /** @@ -58,7 +56,7 @@ public class OkHttpLoadBalancingClient @Override public OkHttpRibbonResponse execute(OkHttpRibbonRequest ribbonRequest, - final IClientConfig configOverride) throws Exception { + final IClientConfig configOverride) throws Exception { boolean secure = isSecure(configOverride); if (secure) { final URI secureUri = UriComponentsBuilder.fromUri(ribbonRequest.getUri()) diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonConfiguration.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonConfiguration.java similarity index 100% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonConfiguration.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonConfiguration.java index 1e1f2fbf..5bb8f696 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonConfiguration.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonConfiguration.java @@ -22,13 +22,6 @@ import okhttp3.OkHttpClient; import java.util.concurrent.TimeUnit; import javax.annotation.PreDestroy; -import com.netflix.client.AbstractLoadBalancerAwareClient; -import com.netflix.client.RetryHandler; -import com.netflix.client.config.CommonClientConfigKey; -import com.netflix.client.config.DefaultClientConfigImpl; -import com.netflix.client.config.IClientConfig; -import com.netflix.loadbalancer.ILoadBalancer; -import com.netflix.servo.monitor.Monitors; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -41,6 +34,13 @@ import org.springframework.cloud.commons.httpclient.OkHttpClientFactory; import org.springframework.cloud.netflix.ribbon.ServerIntrospector; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import com.netflix.client.AbstractLoadBalancerAwareClient; +import com.netflix.client.RetryHandler; +import com.netflix.client.config.CommonClientConfigKey; +import com.netflix.client.config.DefaultClientConfigImpl; +import com.netflix.client.config.IClientConfig; +import com.netflix.loadbalancer.ILoadBalancer; +import com.netflix.servo.monitor.Monitors; /** * @author Spencer Gibb diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonRequest.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonRequest.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonRequest.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonRequest.java index 44928436..7df4c8a5 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonRequest.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonRequest.java @@ -16,16 +16,6 @@ package org.springframework.cloud.netflix.ribbon.okhttp; -import java.io.IOException; -import java.io.InputStream; -import java.net.URI; -import java.util.List; - -import org.springframework.cloud.netflix.ribbon.support.ContextAwareRequest; -import org.springframework.cloud.netflix.ribbon.support.RibbonCommandContext; - -import static org.springframework.cloud.netflix.ribbon.support.RibbonRequestCustomizer.Runner.customize; - import okhttp3.Headers; import okhttp3.HttpUrl; import okhttp3.MediaType; @@ -36,6 +26,15 @@ import okio.BufferedSink; import okio.Okio; import okio.Source; +import java.io.IOException; +import java.io.InputStream; +import java.net.URI; +import java.util.List; +import org.springframework.cloud.netflix.ribbon.support.ContextAwareRequest; +import org.springframework.cloud.netflix.ribbon.support.RibbonCommandContext; + +import static org.springframework.cloud.netflix.ribbon.support.RibbonRequestCustomizer.Runner.customize; + /** * @author Spencer Gibb */ diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonResponse.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonResponse.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonResponse.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonResponse.java index f5826539..6fcfdc15 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonResponse.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonResponse.java @@ -16,6 +16,9 @@ package org.springframework.cloud.netflix.ribbon.okhttp; +import okhttp3.Response; +import okhttp3.ResponseBody; + import java.io.InputStream; import java.lang.reflect.Type; import java.net.URI; @@ -24,17 +27,12 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; - import org.springframework.util.Assert; - import com.google.common.reflect.TypeToken; import com.netflix.client.ClientException; import com.netflix.client.http.CaseInsensitiveMultiMap; import com.netflix.client.http.HttpHeaders; -import okhttp3.Response; -import okhttp3.ResponseBody; - /** * @author Spencer Gibb */ diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/RetryableOkHttpLoadBalancingClient.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/RetryableOkHttpLoadBalancingClient.java similarity index 97% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/RetryableOkHttpLoadBalancingClient.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/RetryableOkHttpLoadBalancingClient.java index 67876d47..ad18830f 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/RetryableOkHttpLoadBalancingClient.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/okhttp/RetryableOkHttpLoadBalancingClient.java @@ -28,9 +28,7 @@ import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicy; import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory; import org.springframework.cloud.client.loadbalancer.RetryableStatusCodeException; import org.springframework.cloud.client.loadbalancer.ServiceInstanceChooser; -import org.springframework.cloud.netflix.feign.ribbon.FeignRetryPolicy; -import org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient; -import org.springframework.cloud.netflix.ribbon.ServerIntrospector; +import org.springframework.cloud.netflix.ribbon.support.RibbonRetryPolicy; import org.springframework.http.HttpRequest; import org.springframework.retry.RetryCallback; import org.springframework.retry.RetryContext; @@ -39,6 +37,8 @@ import org.springframework.retry.backoff.NoBackOffPolicy; import org.springframework.retry.policy.NeverRetryPolicy; import org.springframework.retry.support.RetryTemplate; import org.springframework.web.util.UriComponentsBuilder; +import org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient; +import org.springframework.cloud.netflix.ribbon.ServerIntrospector; import com.netflix.client.RequestSpecificRetryHandler; import com.netflix.client.RetryHandler; import com.netflix.client.config.IClientConfig; @@ -71,7 +71,7 @@ public class RetryableOkHttpLoadBalancingClient extends OkHttpLoadBalancingClien } private OkHttpRibbonResponse executeWithRetry(OkHttpRibbonRequest request, LoadBalancedRetryPolicy retryPolicy, - RetryCallback callback) + RetryCallback callback) throws Exception { RetryTemplate retryTemplate = new RetryTemplate(); BackOffPolicy backOffPolicy = loadBalancedBackOffPolicyFactory.createBackOffPolicy(this.getClientName()); @@ -134,7 +134,7 @@ public class RetryableOkHttpLoadBalancingClient extends OkHttpLoadBalancingClien return new RequestSpecificRetryHandler(false, false, RetryHandler.DEFAULT, null); } - static class RetryPolicy extends FeignRetryPolicy { + static class RetryPolicy extends RibbonRetryPolicy { public RetryPolicy(HttpRequest request, LoadBalancedRetryPolicy policy, ServiceInstanceChooser serviceInstanceChooser, String serviceName) { super(request, policy, serviceInstanceChooser, serviceName); } diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/support/AbstractLoadBalancingClient.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/support/AbstractLoadBalancingClient.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/support/AbstractLoadBalancingClient.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/support/AbstractLoadBalancingClient.java index a3988c66..ffed373b 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/support/AbstractLoadBalancingClient.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/support/AbstractLoadBalancingClient.java @@ -17,11 +17,9 @@ package org.springframework.cloud.netflix.ribbon.support; -import com.netflix.loadbalancer.reactive.LoadBalancerCommand; import org.springframework.cloud.netflix.ribbon.DefaultServerIntrospector; import org.springframework.cloud.netflix.ribbon.RibbonClientConfiguration; import org.springframework.cloud.netflix.ribbon.ServerIntrospector; - import com.netflix.client.AbstractLoadBalancerAwareClient; import com.netflix.client.IResponse; import com.netflix.client.RequestSpecificRetryHandler; @@ -30,6 +28,7 @@ import com.netflix.client.config.CommonClientConfigKey; import com.netflix.client.config.DefaultClientConfigImpl; import com.netflix.client.config.IClientConfig; import com.netflix.loadbalancer.ILoadBalancer; +import com.netflix.loadbalancer.reactive.LoadBalancerCommand; /** * @author Spencer Gibb diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/support/ContextAwareRequest.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/support/ContextAwareRequest.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/support/ContextAwareRequest.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/support/ContextAwareRequest.java index 428a406c..9258d51c 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/support/ContextAwareRequest.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/support/ContextAwareRequest.java @@ -18,12 +18,10 @@ package org.springframework.cloud.netflix.ribbon.support; import java.net.URI; - import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.HttpRequest; import org.springframework.util.MultiValueMap; - import com.netflix.client.ClientRequest; /** diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/support/ResettableServletInputStreamWrapper.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/support/ResettableServletInputStreamWrapper.java similarity index 100% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/support/ResettableServletInputStreamWrapper.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/support/ResettableServletInputStreamWrapper.java index 7b6abbf9..11d5b93c 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/support/ResettableServletInputStreamWrapper.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/support/ResettableServletInputStreamWrapper.java @@ -15,10 +15,10 @@ */ package org.springframework.cloud.netflix.ribbon.support; -import javax.servlet.ReadListener; -import javax.servlet.ServletInputStream; import java.io.ByteArrayInputStream; import java.io.IOException; +import javax.servlet.ReadListener; +import javax.servlet.ServletInputStream; public class ResettableServletInputStreamWrapper extends ServletInputStream { private final ByteArrayInputStream input; diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/support/RibbonCommandContext.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/support/RibbonCommandContext.java similarity index 99% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/support/RibbonCommandContext.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/support/RibbonCommandContext.java index a70ef713..acc99900 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/support/RibbonCommandContext.java +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/support/RibbonCommandContext.java @@ -16,17 +16,16 @@ package org.springframework.cloud.netflix.ribbon.support; -import org.springframework.util.Assert; -import org.springframework.util.MultiValueMap; -import org.springframework.util.ReflectionUtils; -import org.springframework.util.StreamUtils; - import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import org.springframework.util.Assert; +import org.springframework.util.MultiValueMap; +import org.springframework.util.ReflectionUtils; +import org.springframework.util.StreamUtils; /** * @author Spencer Gibb diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/support/RibbonRequestCustomizer.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/support/RibbonRequestCustomizer.java similarity index 100% rename from spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/support/RibbonRequestCustomizer.java rename to spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/support/RibbonRequestCustomizer.java diff --git a/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/support/RibbonRetryPolicy.java b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/support/RibbonRetryPolicy.java new file mode 100644 index 00000000..c2d1ba80 --- /dev/null +++ b/spring-cloud-netflix-ribbon/src/main/java/org/springframework/cloud/netflix/ribbon/support/RibbonRetryPolicy.java @@ -0,0 +1,90 @@ +package org.springframework.cloud.netflix.ribbon.support; + +import java.net.URI; +import java.util.HashMap; +import java.util.Map; +import org.springframework.cloud.client.ServiceInstance; +import org.springframework.cloud.client.loadbalancer.InterceptorRetryPolicy; +import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryContext; +import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicy; +import org.springframework.cloud.client.loadbalancer.ServiceInstanceChooser; +import org.springframework.http.HttpRequest; +import org.springframework.retry.RetryContext; + +/** + * @author Ryan Baxter + */ +public class RibbonRetryPolicy extends InterceptorRetryPolicy { + private HttpRequest request; + private String serviceId; + public RibbonRetryPolicy(HttpRequest request, LoadBalancedRetryPolicy policy, ServiceInstanceChooser serviceInstanceChooser, String serviceName) { + super(request, policy, serviceInstanceChooser, serviceName); + this.request = request; + this.serviceId = serviceName; + } + + @Override + public boolean canRetry(RetryContext context) { + /* + * In InterceptorRetryPolicy.canRetry we ask the LoadBalancer to choose a server if one is not + * set in the retry context and then return true. RetryTemplat calls the canRetry method of + * the policy even on its first execution. So the fact that we didnt have a service instance set + * in the RetryContext signaled that it was the first execution and we should return true. + * + */ + if(context.getRetryCount() == 0) { + return true; + } + return super.canRetry(context); + } + + @Override + public RetryContext open(RetryContext parent) { + LoadBalancedRetryContext context = new LoadBalancedRetryContext(parent, this.request); + context.setServiceInstance(new RibbonRetryPolicyServiceInstance(serviceId, request)); + return context; + } + + class RibbonRetryPolicyServiceInstance implements ServiceInstance { + + private String serviceId; + private HttpRequest request; + private Map metadata; + + RibbonRetryPolicyServiceInstance(String serviceId, HttpRequest request) { + this.serviceId = serviceId; + this.request = request; + this.metadata = new HashMap(); + } + + @Override + public String getServiceId() { + return serviceId; + } + + @Override + public String getHost() { + return request.getURI().getHost(); + } + + @Override + public int getPort() { + return request.getURI().getPort(); + } + + @Override + public boolean isSecure() { + return "https".equals(request.getURI().getScheme()); + } + + @Override + public URI getUri() { + return request.getURI(); + } + + @Override + public Map getMetadata() { + return metadata; + } + } +} diff --git a/spring-cloud-netflix-ribbon/src/main/resources/META-INF/spring.factories b/spring-cloud-netflix-ribbon/src/main/resources/META-INF/spring.factories new file mode 100644 index 00000000..be8c8c7b --- /dev/null +++ b/spring-cloud-netflix-ribbon/src/main/resources/META-INF/spring.factories @@ -0,0 +1,2 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ +org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration \ No newline at end of file diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospectorDefaultTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospectorDefaultTests.java similarity index 100% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospectorDefaultTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospectorDefaultTests.java index 61ceb9ca..caa1f915 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospectorDefaultTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospectorDefaultTests.java @@ -16,7 +16,6 @@ package org.springframework.cloud.netflix.ribbon; -import com.netflix.loadbalancer.Server; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @@ -26,6 +25,7 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import com.netflix.loadbalancer.Server; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospectorTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospectorTests.java similarity index 100% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospectorTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospectorTests.java index 867fe424..4e614df6 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospectorTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/DefaultServerIntrospectorTests.java @@ -16,7 +16,6 @@ package org.springframework.cloud.netflix.ribbon; -import com.netflix.loadbalancer.Server; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @@ -27,6 +26,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import com.netflix.loadbalancer.Server; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/PlainRibbonClientPreprocessorIntegrationTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/PlainRibbonClientPreprocessorIntegrationTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/PlainRibbonClientPreprocessorIntegrationTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/PlainRibbonClientPreprocessorIntegrationTests.java index 33abc824..14e39602 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/PlainRibbonClientPreprocessorIntegrationTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/PlainRibbonClientPreprocessorIntegrationTests.java @@ -28,7 +28,6 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - import com.netflix.loadbalancer.ConfigurationBasedServerList; import com.netflix.loadbalancer.Server; import com.netflix.loadbalancer.ZoneAwareLoadBalancer; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonApplicationContextInitializerTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonApplicationContextInitializerTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonApplicationContextInitializerTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonApplicationContextInitializerTests.java index 9dc129b4..690cbc7a 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonApplicationContextInitializerTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonApplicationContextInitializerTests.java @@ -16,6 +16,8 @@ package org.springframework.cloud.netflix.ribbon; +import java.util.Arrays; +import java.util.concurrent.atomic.AtomicInteger; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -27,9 +29,6 @@ import org.springframework.context.annotation.Configuration; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringRunner; -import java.util.Arrays; -import java.util.concurrent.atomic.AtomicInteger; - import static org.assertj.core.api.Assertions.assertThat; /** diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonAutoConfigurationIntegrationTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonAutoConfigurationIntegrationTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonAutoConfigurationIntegrationTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonAutoConfigurationIntegrationTests.java index 1486505b..e1699839 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonAutoConfigurationIntegrationTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonAutoConfigurationIntegrationTests.java @@ -28,7 +28,6 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - import com.netflix.client.config.CommonClientConfigKey; import com.netflix.client.config.IClientConfig; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationIntegrationTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationIntegrationTests.java similarity index 98% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationIntegrationTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationIntegrationTests.java index 050c7ff1..f4c16a3d 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationIntegrationTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationIntegrationTests.java @@ -17,10 +17,6 @@ package org.springframework.cloud.netflix.ribbon; -import com.netflix.loadbalancer.ILoadBalancer; -import com.netflix.loadbalancer.PollingServerListUpdater; -import com.netflix.loadbalancer.ServerListUpdater; -import com.netflix.loadbalancer.ZoneAwareLoadBalancer; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -30,8 +26,11 @@ import org.springframework.context.annotation.Configuration; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.util.ReflectionTestUtils; +import com.netflix.loadbalancer.ILoadBalancer; +import com.netflix.loadbalancer.PollingServerListUpdater; +import com.netflix.loadbalancer.ServerListUpdater; +import com.netflix.loadbalancer.ZoneAwareLoadBalancer; -import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.sameInstance; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationTests.java index 2c21966a..8b77275c 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientConfigurationTests.java @@ -19,7 +19,6 @@ package org.springframework.cloud.netflix.ribbon; import java.net.URI; import java.util.ArrayList; import java.util.List; - import org.junit.Before; import org.junit.Test; import org.mockito.Mock; @@ -34,7 +33,6 @@ import org.springframework.cloud.netflix.ribbon.apache.RibbonLoadBalancingHttpCl import org.springframework.cloud.netflix.ribbon.okhttp.OkHttpLoadBalancingClient; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Configuration; - import com.netflix.client.AbstractLoadBalancerAwareClient; import com.netflix.client.config.CommonClientConfigKey; import com.netflix.client.config.DefaultClientConfigImpl; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientHttpRequestFactoryTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientHttpRequestFactoryTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientHttpRequestFactoryTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientHttpRequestFactoryTests.java index 4ed3bce4..e62d6d7f 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientHttpRequestFactoryTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientHttpRequestFactoryTests.java @@ -18,7 +18,6 @@ package org.springframework.cloud.netflix.ribbon; import java.lang.reflect.Field; import java.net.URI; - import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; @@ -47,7 +46,6 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.ResourceAccessException; import org.springframework.web.client.RestTemplate; - import com.netflix.loadbalancer.Server; import com.netflix.loadbalancer.ServerList; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorIntegrationTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorIntegrationTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorIntegrationTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorIntegrationTests.java index 18482626..26633866 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorIntegrationTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorIntegrationTests.java @@ -28,7 +28,6 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - import com.netflix.loadbalancer.ConfigurationBasedServerList; import com.netflix.loadbalancer.DummyPing; import com.netflix.loadbalancer.Server; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorOverridesIntegrationTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorOverridesIntegrationTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorOverridesIntegrationTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorOverridesIntegrationTests.java index caee7bbc..0fdf5734 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorOverridesIntegrationTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorOverridesIntegrationTests.java @@ -29,7 +29,6 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - import com.netflix.client.config.IClientConfig; import com.netflix.loadbalancer.ConfigurationBasedServerList; import com.netflix.loadbalancer.DummyPing; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorOverridesRetryTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorOverridesRetryTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorOverridesRetryTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorOverridesRetryTests.java index f6e698f3..9fa5f137 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorOverridesRetryTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorOverridesRetryTests.java @@ -23,7 +23,6 @@ import java.net.SocketTimeoutException; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; - import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -36,7 +35,6 @@ import org.springframework.context.annotation.Import; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.util.Assert; - import com.netflix.client.DefaultLoadBalancerRetryHandler; import com.netflix.client.RetryHandler; import com.netflix.client.config.IClientConfig; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorPropertiesOverridesIntegrationTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorPropertiesOverridesIntegrationTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorPropertiesOverridesIntegrationTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorPropertiesOverridesIntegrationTests.java index eb07f03a..b894cc19 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorPropertiesOverridesIntegrationTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientPreprocessorPropertiesOverridesIntegrationTests.java @@ -31,7 +31,6 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - import com.netflix.loadbalancer.ConfigurationBasedServerList; import com.netflix.loadbalancer.DummyPing; import com.netflix.loadbalancer.NoOpPing; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientsEagerInitializationTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientsEagerInitializationTests.java similarity index 97% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientsEagerInitializationTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientsEagerInitializationTests.java index e4efbbb2..53ece37f 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientsEagerInitializationTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientsEagerInitializationTests.java @@ -16,6 +16,7 @@ package org.springframework.cloud.netflix.ribbon; +import java.util.concurrent.atomic.AtomicInteger; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -23,11 +24,8 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; -import java.util.concurrent.atomic.AtomicInteger; - import static org.assertj.core.api.Assertions.assertThat; /** diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientsPreprocessorIntegrationTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientsPreprocessorIntegrationTests.java similarity index 98% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientsPreprocessorIntegrationTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientsPreprocessorIntegrationTests.java index fee2ede3..2ac7a27e 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientsPreprocessorIntegrationTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonClientsPreprocessorIntegrationTests.java @@ -17,11 +17,6 @@ package org.springframework.cloud.netflix.ribbon; -import com.netflix.loadbalancer.IPing; -import com.netflix.loadbalancer.PingUrl; -import com.netflix.loadbalancer.Server; -import com.netflix.loadbalancer.ZoneAvoidanceRule; -import com.netflix.loadbalancer.ZoneAwareLoadBalancer; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -36,11 +31,14 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import com.netflix.loadbalancer.IPing; +import com.netflix.loadbalancer.PingUrl; +import com.netflix.loadbalancer.Server; +import com.netflix.loadbalancer.ZoneAvoidanceRule; +import com.netflix.loadbalancer.ZoneAwareLoadBalancer; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertEquals; - /** * @author Dave Syer */ diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonDisabledTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonDisabledTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonDisabledTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonDisabledTests.java index 2e2bd7f9..4385c360 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonDisabledTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonDisabledTests.java @@ -19,7 +19,6 @@ package org.springframework.cloud.netflix.ribbon; import org.junit.Test; import org.junit.runner.RunWith; - import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.cloud.test.ClassPathExclusions; import org.springframework.cloud.test.ModifiedClassPathRunner; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonInterceptorTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonInterceptorTests.java similarity index 100% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonInterceptorTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonInterceptorTests.java diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancedRetryPolicyFactoryTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancedRetryPolicyFactoryTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancedRetryPolicyFactoryTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancedRetryPolicyFactoryTests.java index 416ead1f..bfaee124 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancedRetryPolicyFactoryTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancedRetryPolicyFactoryTests.java @@ -16,13 +16,9 @@ package org.springframework.cloud.netflix.ribbon; -import com.netflix.client.DefaultLoadBalancerRetryHandler; -import com.netflix.client.config.CommonClientConfigKey; -import com.netflix.client.config.IClientConfig; -import com.netflix.loadbalancer.BaseLoadBalancer; -import com.netflix.loadbalancer.LoadBalancerStats; -import com.netflix.loadbalancer.Server; -import com.netflix.loadbalancer.ServerStats; +import java.io.IOException; +import java.util.Collections; +import java.util.Map; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -31,13 +27,16 @@ import org.mockito.MockitoAnnotations; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryContext; import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicy; +import org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.RibbonServer; import org.springframework.http.HttpMethod; import org.springframework.http.HttpRequest; -import org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.RibbonServer; - -import java.io.IOException; -import java.util.Collections; -import java.util.Map; +import com.netflix.client.DefaultLoadBalancerRetryHandler; +import com.netflix.client.config.CommonClientConfigKey; +import com.netflix.client.config.IClientConfig; +import com.netflix.loadbalancer.BaseLoadBalancer; +import com.netflix.loadbalancer.LoadBalancerStats; +import com.netflix.loadbalancer.Server; +import com.netflix.loadbalancer.ServerStats; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerClientTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerClientTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerClientTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerClientTests.java index fa0746ca..3b5155a0 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerClientTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerClientTests.java @@ -21,7 +21,6 @@ import java.net.URI; import java.net.URL; import java.util.Collections; import java.util.Map; - import org.junit.Before; import org.junit.Test; import org.mockito.Mock; @@ -30,7 +29,6 @@ import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.loadbalancer.LoadBalancerRequest; import org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.RibbonServer; import org.springframework.web.util.DefaultUriTemplateHandler; - import com.netflix.client.config.CommonClientConfigKey; import com.netflix.client.config.IClientConfig; import com.netflix.loadbalancer.BaseLoadBalancer; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonUtilsTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonUtilsTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonUtilsTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonUtilsTests.java index 0ebbc3b7..13051356 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonUtilsTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/RibbonUtilsTests.java @@ -20,10 +20,8 @@ package org.springframework.cloud.netflix.ribbon; import java.net.URI; import java.net.URISyntaxException; import java.util.Map; - import org.junit.Assert; import org.junit.Test; - import com.netflix.client.config.CommonClientConfigKey; import com.netflix.client.config.DefaultClientConfigImpl; import com.netflix.loadbalancer.Server; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/SpringClientFactoryTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/SpringClientFactoryTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/SpringClientFactoryTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/SpringClientFactoryTests.java index 045ffa02..44070a9e 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/SpringClientFactoryTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/SpringClientFactoryTests.java @@ -22,7 +22,6 @@ import org.junit.Test; import org.springframework.cloud.commons.httpclient.HttpClientConfiguration; import org.springframework.cloud.netflix.archaius.ArchaiusAutoConfiguration; import org.springframework.context.annotation.AnnotationConfigApplicationContext; - import com.netflix.client.DefaultLoadBalancerRetryHandler; import com.netflix.client.IClientConfigAware; import com.netflix.client.config.DefaultClientConfigImpl; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/SpringRetryDisabledTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/SpringRetryDisabledTests.java similarity index 76% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/SpringRetryDisabledTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/SpringRetryDisabledTests.java index e6de6941..848f1304 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/SpringRetryDisabledTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/SpringRetryDisabledTests.java @@ -18,7 +18,6 @@ package org.springframework.cloud.netflix.ribbon; import java.util.Map; - import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -26,10 +25,6 @@ import org.junit.runner.RunWith; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory; import org.springframework.cloud.client.loadbalancer.LoadBalancerAutoConfiguration; -import org.springframework.cloud.netflix.feign.ribbon.CachingSpringLoadBalancerFactory; -import org.springframework.cloud.netflix.feign.ribbon.FeignLoadBalancer; -import org.springframework.cloud.netflix.feign.ribbon.FeignRibbonClientAutoConfiguration; -import org.springframework.cloud.netflix.feign.ribbon.RetryableFeignLoadBalancer; import org.springframework.cloud.netflix.ribbon.apache.RibbonLoadBalancingHttpClient; import org.springframework.cloud.test.ClassPathExclusions; import org.springframework.cloud.test.ModifiedClassPathRunner; @@ -53,8 +48,7 @@ public class SpringRetryDisabledTests { @Before public void setUp() { context = new SpringApplicationBuilder().web(false) - .sources(RibbonAutoConfiguration.class,LoadBalancerAutoConfiguration.class, RibbonClientConfiguration.class, - FeignRibbonClientAutoConfiguration.class).run(); + .sources(RibbonAutoConfiguration.class,LoadBalancerAutoConfiguration.class, RibbonClientConfiguration.class).run(); } @After @@ -72,10 +66,5 @@ public class SpringRetryDisabledTests { Map clients = context.getBeansOfType(RibbonLoadBalancingHttpClient.class); assertThat(clients.values(), hasSize(1)); assertThat(clients.values().toArray()[0], instanceOf(RibbonLoadBalancingHttpClient.class)); - Map lbFactorys = context.getBeansOfType(CachingSpringLoadBalancerFactory.class); - assertThat(lbFactorys.values(), hasSize(1)); - FeignLoadBalancer lb =lbFactorys.values().iterator().next().create("foo"); - assertThat(lb, instanceOf(FeignLoadBalancer.class)); - assertThat(lb, is(not(instanceOf(RetryableFeignLoadBalancer.class)))); } } diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/SpringRetryEnabledTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/SpringRetryEnabledTests.java similarity index 60% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/SpringRetryEnabledTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/SpringRetryEnabledTests.java index b15cb38b..52e6d108 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/SpringRetryEnabledTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/SpringRetryEnabledTests.java @@ -1,18 +1,18 @@ /* * - * * Copyright 2013-2016 the original author or authors. - * * - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. + * Copyright 2013-2016 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. * */ @@ -26,10 +26,6 @@ import org.springframework.beans.BeansException; import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory; import org.springframework.cloud.client.loadbalancer.LoadBalancerAutoConfiguration; import org.springframework.cloud.commons.httpclient.HttpClientConfiguration; -import org.springframework.cloud.netflix.feign.ribbon.CachingSpringLoadBalancerFactory; -import org.springframework.cloud.netflix.feign.ribbon.FeignLoadBalancer; -import org.springframework.cloud.netflix.feign.ribbon.FeignRibbonClientAutoConfiguration; -import org.springframework.cloud.netflix.feign.ribbon.RetryableFeignLoadBalancer; import org.springframework.cloud.netflix.ribbon.apache.RetryableRibbonLoadBalancingHttpClient; import org.springframework.cloud.netflix.ribbon.apache.RibbonLoadBalancingHttpClient; import org.springframework.context.ApplicationContext; @@ -46,7 +42,7 @@ import static org.hamcrest.collection.IsCollectionWithSize.hasSize; */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = {RibbonAutoConfiguration.class, RibbonClientConfiguration.class, LoadBalancerAutoConfiguration.class, - FeignRibbonClientAutoConfiguration.class, HttpClientConfiguration.class}) + HttpClientConfiguration.class}) public class SpringRetryEnabledTests implements ApplicationContextAware { private ApplicationContext context; @@ -59,10 +55,6 @@ public class SpringRetryEnabledTests implements ApplicationContextAware { Map clients = context.getBeansOfType(RibbonLoadBalancingHttpClient.class); assertThat(clients.values(), hasSize(1)); assertThat(clients.values().toArray()[0], instanceOf(RetryableRibbonLoadBalancingHttpClient.class)); - Map lbFactorys = context.getBeansOfType(CachingSpringLoadBalancerFactory.class); - assertThat(lbFactorys.values(), Matchers.hasSize(1)); - FeignLoadBalancer lb =lbFactorys.values().iterator().next().create("foo"); - assertThat(lb, instanceOf(RetryableFeignLoadBalancer.class)); } @Override diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/ZonePreferenceServerListFilterTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/ZonePreferenceServerListFilterTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/ZonePreferenceServerListFilterTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/ZonePreferenceServerListFilterTests.java index 776a03ed..e7524e47 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/ZonePreferenceServerListFilterTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/ZonePreferenceServerListFilterTests.java @@ -18,12 +18,10 @@ package org.springframework.cloud.netflix.ribbon; import java.util.Arrays; import java.util.List; - import org.junit.Before; import org.junit.Test; import org.springframework.cloud.netflix.ribbon.ZonePreferenceServerListFilter; import org.springframework.test.util.ReflectionTestUtils; - import com.netflix.loadbalancer.Server; import static org.junit.Assert.assertEquals; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpRequestTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpRequestTests.java similarity index 95% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpRequestTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpRequestTests.java index 270e8718..c1662126 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpRequestTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpRequestTests.java @@ -17,6 +17,23 @@ package org.springframework.cloud.netflix.ribbon.apache; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.net.URI; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.Collections; +import org.apache.http.HttpEntity; +import org.apache.http.HttpEntityEnclosingRequest; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.HttpUriRequest; +import org.apache.http.client.methods.RequestBuilder; +import org.junit.Test; +import org.springframework.cloud.netflix.ribbon.support.RibbonCommandContext; +import org.springframework.cloud.netflix.ribbon.support.RibbonRequestCustomizer; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.StreamUtils; + import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.is; @@ -25,25 +42,6 @@ import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.startsWith; import static org.junit.Assert.assertThat; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.net.URI; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Collections; - -import org.apache.http.HttpEntity; -import org.apache.http.HttpEntityEnclosingRequest; -import org.apache.http.client.config.RequestConfig; -import org.apache.http.client.methods.HttpUriRequest; -import org.apache.http.client.methods.RequestBuilder; -import org.junit.Test; -import org.springframework.cloud.netflix.feign.encoding.HttpEncoding; -import org.springframework.cloud.netflix.ribbon.support.RibbonCommandContext; -import org.springframework.cloud.netflix.ribbon.support.RibbonRequestCustomizer; -import org.springframework.util.LinkedMultiValueMap; -import org.springframework.util.StreamUtils; - /** * @author Spencer Gibb */ @@ -54,7 +52,7 @@ public class RibbonApacheHttpRequestTests { String uri = "http://example.com"; LinkedMultiValueMap headers = new LinkedMultiValueMap<>(); headers.add("my-header", "my-value"); - headers.add(HttpEncoding.CONTENT_LENGTH, "5192"); + headers.add("content-length", "5192"); LinkedMultiValueMap params = new LinkedMultiValueMap<>(); params.add("myparam", "myparamval"); RibbonApacheHttpRequest httpRequest = @@ -67,7 +65,7 @@ public class RibbonApacheHttpRequestTests { assertThat("uri is wrong", request.getURI().toString(), startsWith(uri)); assertThat("my-header is missing", request.getFirstHeader("my-header"), is(notNullValue())); assertThat("my-header is wrong", request.getFirstHeader("my-header").getValue(), is(equalTo("my-value"))); - assertThat("Content-Length is wrong", request.getFirstHeader(HttpEncoding.CONTENT_LENGTH).getValue(), is(equalTo("5192"))); + assertThat("Content-Length is wrong", request.getFirstHeader("content-length").getValue(), is(equalTo("5192"))); assertThat("myparam is missing", request.getURI().getQuery(), is(equalTo("myparam=myparamval"))); } diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpResponseTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpResponseTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpResponseTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpResponseTests.java index 58a8c57d..0611dd0b 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpResponseTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonApacheHttpResponseTests.java @@ -18,7 +18,6 @@ package org.springframework.cloud.netflix.ribbon.apache; import java.io.ByteArrayInputStream; import java.net.URI; - import org.apache.http.HttpResponse; import org.apache.http.StatusLine; import org.apache.http.entity.BasicHttpEntity; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonLoadBalancingHttpClientTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonLoadBalancingHttpClientTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonLoadBalancingHttpClientTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonLoadBalancingHttpClientTests.java index 90c4039a..415d3f79 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonLoadBalancingHttpClientTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/apache/RibbonLoadBalancingHttpClientTests.java @@ -33,9 +33,8 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; -import org.springframework.cloud.client.loadbalancer.LoadBalancedBackOffPolicyFactory; - import org.mockito.ArgumentMatcher; +import org.springframework.cloud.client.loadbalancer.LoadBalancedBackOffPolicyFactory; import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory; import org.springframework.cloud.commons.httpclient.HttpClientConfiguration; import org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration; @@ -56,7 +55,6 @@ import org.springframework.retry.backoff.BackOffInterruptedException; import org.springframework.retry.backoff.BackOffPolicy; import org.springframework.test.util.ReflectionTestUtils; import org.springframework.util.LinkedMultiValueMap; - import com.netflix.client.DefaultLoadBalancerRetryHandler; import com.netflix.client.RetryHandler; import com.netflix.client.config.CommonClientConfigKey; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpLoadBalancingClientTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpLoadBalancingClientTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpLoadBalancingClientTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpLoadBalancingClientTests.java index 96812e84..755e997b 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpLoadBalancingClientTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpLoadBalancingClientTests.java @@ -16,8 +16,7 @@ package org.springframework.cloud.netflix.ribbon.okhttp; -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import okhttp3.OkHttpClient; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -27,12 +26,12 @@ import org.springframework.cloud.netflix.ribbon.SpringClientFactory; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; - import com.netflix.client.config.CommonClientConfigKey; import com.netflix.client.config.DefaultClientConfigImpl; import com.netflix.client.config.IClientConfig; -import okhttp3.OkHttpClient; +import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertThat; /** * @author Spencer Gibb diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonRequestTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonRequestTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonRequestTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonRequestTests.java index 8e35021a..09a48c62 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonRequestTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonRequestTests.java @@ -17,11 +17,14 @@ package org.springframework.cloud.netflix.ribbon.okhttp; +import okhttp3.Request; +import okhttp3.RequestBody; +import okio.Buffer; + import java.io.ByteArrayInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; - import org.junit.Test; import org.springframework.cloud.netflix.ribbon.support.RibbonCommandContext; import org.springframework.cloud.netflix.ribbon.support.RibbonRequestCustomizer; @@ -34,10 +37,6 @@ import static org.hamcrest.Matchers.nullValue; import static org.hamcrest.Matchers.startsWith; import static org.junit.Assert.assertThat; -import okhttp3.Request; -import okhttp3.RequestBody; -import okio.Buffer; - /** * @author Spencer Gibb */ diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonResponseTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonResponseTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonResponseTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonResponseTests.java index 09a55ed8..8a65c9fa 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonResponseTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/OkHttpRibbonResponseTests.java @@ -16,16 +16,6 @@ package org.springframework.cloud.netflix.ribbon.okhttp; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.notNullValue; -import static org.hamcrest.Matchers.nullValue; -import static org.junit.Assert.assertThat; - -import java.net.URI; - -import org.junit.Test; -import org.springframework.http.HttpStatus; - import okhttp3.HttpUrl; import okhttp3.MediaType; import okhttp3.Protocol; @@ -33,6 +23,15 @@ import okhttp3.Request; import okhttp3.Response; import okhttp3.ResponseBody; +import java.net.URI; +import org.junit.Test; +import org.springframework.http.HttpStatus; + +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.notNullValue; +import static org.hamcrest.Matchers.nullValue; +import static org.junit.Assert.assertThat; + /** * @author Spencer Gibb */ diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/SpringRetryDisableOkHttpClientTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/SpringRetryDisableOkHttpClientTests.java similarity index 100% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/SpringRetryDisableOkHttpClientTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/SpringRetryDisableOkHttpClientTests.java index f58a1658..f3e25538 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/SpringRetryDisableOkHttpClientTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/SpringRetryDisableOkHttpClientTests.java @@ -22,13 +22,13 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.cloud.test.ClassPathExclusions; -import org.springframework.cloud.test.ModifiedClassPathRunner; import org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory; import org.springframework.cloud.client.loadbalancer.LoadBalancerAutoConfiguration; import org.springframework.cloud.commons.httpclient.HttpClientConfiguration; import org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration; import org.springframework.cloud.netflix.ribbon.RibbonClientConfiguration; +import org.springframework.cloud.test.ClassPathExclusions; +import org.springframework.cloud.test.ModifiedClassPathRunner; import org.springframework.context.ConfigurableApplicationContext; import static org.hamcrest.MatcherAssert.assertThat; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/SpringRetryEnabledOkHttpClientTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/SpringRetryEnabledOkHttpClientTests.java similarity index 100% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/SpringRetryEnabledOkHttpClientTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/okhttp/SpringRetryEnabledOkHttpClientTests.java diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/support/ContextAwareRequestTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/support/ContextAwareRequestTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/support/ContextAwareRequestTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/support/ContextAwareRequestTests.java index c4f28e9c..b8abf629 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/support/ContextAwareRequestTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/support/ContextAwareRequestTests.java @@ -22,7 +22,6 @@ package org.springframework.cloud.netflix.ribbon.support; import java.net.URI; import java.util.Arrays; import java.util.Collections; - import org.junit.After; import org.junit.Before; import org.junit.Test; diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/support/RibbonCommandContextTest.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/support/RibbonCommandContextTest.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/support/RibbonCommandContextTest.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/support/RibbonCommandContextTest.java index dc571dad..5e21c41d 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/support/RibbonCommandContextTest.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/support/RibbonCommandContextTest.java @@ -16,15 +16,15 @@ package org.springframework.cloud.netflix.ribbon.support; +import okhttp3.Request; + import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Collections; - import org.junit.Test; import org.springframework.http.HttpMethod; import org.springframework.util.LinkedMultiValueMap; - import com.google.common.collect.Lists; import static org.junit.Assert.assertEquals; @@ -32,8 +32,6 @@ import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import okhttp3.Request; - /** * @author Andre Dörnbrack diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/test/RibbonClientDefaultConfigurationTests.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/test/RibbonClientDefaultConfigurationTests.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/test/RibbonClientDefaultConfigurationTests.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/test/RibbonClientDefaultConfigurationTests.java index 1d811b58..8037ffed 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/test/RibbonClientDefaultConfigurationTests.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/test/RibbonClientDefaultConfigurationTests.java @@ -16,10 +16,6 @@ package org.springframework.cloud.netflix.ribbon.test; -import static org.hamcrest.Matchers.instanceOf; -import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; - import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -28,13 +24,16 @@ import org.springframework.cloud.netflix.ribbon.SpringClientFactory; import org.springframework.cloud.netflix.ribbon.test.RibbonClientDefaultConfigurationTestsConfig.BazServiceList; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - import com.netflix.loadbalancer.BestAvailableRule; import com.netflix.loadbalancer.PingUrl; import com.netflix.loadbalancer.Server; import com.netflix.loadbalancer.ServerListSubsetFilter; import com.netflix.loadbalancer.ZoneAwareLoadBalancer; +import static org.hamcrest.Matchers.instanceOf; +import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertThat; + /** * @author Dave Syer * @author Spencer Gibb diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/test/RibbonClientDefaultConfigurationTestsConfig.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/test/RibbonClientDefaultConfigurationTestsConfig.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/test/RibbonClientDefaultConfigurationTestsConfig.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/test/RibbonClientDefaultConfigurationTestsConfig.java index 85d90beb..fb1346ff 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/test/RibbonClientDefaultConfigurationTestsConfig.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/test/RibbonClientDefaultConfigurationTestsConfig.java @@ -17,8 +17,8 @@ package org.springframework.cloud.netflix.ribbon.test; -import org.springframework.cloud.commons.httpclient.HttpClientConfiguration; import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; +import org.springframework.cloud.commons.httpclient.HttpClientConfiguration; import org.springframework.cloud.commons.util.UtilAutoConfiguration; import org.springframework.cloud.netflix.archaius.ArchaiusAutoConfiguration; import org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration; @@ -26,7 +26,6 @@ import org.springframework.cloud.netflix.ribbon.RibbonClients; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; - import com.netflix.client.config.IClientConfig; import com.netflix.loadbalancer.BestAvailableRule; import com.netflix.loadbalancer.ConfigurationBasedServerList; diff --git a/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/test/TestAutoConfiguration.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/test/TestAutoConfiguration.java new file mode 100644 index 00000000..228a1b46 --- /dev/null +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/test/TestAutoConfiguration.java @@ -0,0 +1,70 @@ +/* + * Copyright 2013-2015 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.netflix.ribbon.test; + +import org.springframework.boot.autoconfigure.AutoConfigureBefore; +import org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration; +import org.springframework.cloud.client.discovery.noop.NoopDiscoveryClientAutoConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import org.springframework.core.Ordered; +import org.springframework.core.annotation.Order; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.provisioning.InMemoryUserDetailsManager; + +/** + * @author Spencer Gibb + */ +@Configuration +@Import({NoopDiscoveryClientAutoConfiguration.class}) +@AutoConfigureBefore(SecurityAutoConfiguration.class) +public class TestAutoConfiguration { + + public static final String USER = "user"; + public static final String PASSWORD = "{noop}password"; + + @Configuration + @Order(Ordered.HIGHEST_PRECEDENCE) + protected static class TestSecurityConfiguration extends WebSecurityConfigurerAdapter { + + + TestSecurityConfiguration() { + super(true); + } + + @Bean + public UserDetailsService userDetailsService() { + InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager(); + manager.createUser(User.withUsername(USER).password(PASSWORD).roles("USER").build()); + return manager; + } + + @Override + protected void configure(HttpSecurity http) throws Exception { + // super.configure(http); + http.antMatcher("/proxy-username") + .httpBasic() + .and() + .authorizeRequests().antMatchers("/**").permitAll(); + } + + } +} diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/test/TestLoadBalancer.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/test/TestLoadBalancer.java similarity index 100% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/test/TestLoadBalancer.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/test/TestLoadBalancer.java diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/test/TestServerList.java b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/test/TestServerList.java similarity index 99% rename from spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/test/TestServerList.java rename to spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/test/TestServerList.java index 08c9bdc6..70335a18 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/ribbon/test/TestServerList.java +++ b/spring-cloud-netflix-ribbon/src/test/java/org/springframework/cloud/netflix/ribbon/test/TestServerList.java @@ -18,7 +18,6 @@ package org.springframework.cloud.netflix.ribbon.test; import java.util.ArrayList; import java.util.List; - import com.netflix.loadbalancer.Server; import com.netflix.loadbalancer.ServerList; diff --git a/spring-cloud-netflix-ribbon/src/test/resources/META-INF/spring.factories b/spring-cloud-netflix-ribbon/src/test/resources/META-INF/spring.factories new file mode 100644 index 00000000..8e405ed6 --- /dev/null +++ b/spring-cloud-netflix-ribbon/src/test/resources/META-INF/spring.factories @@ -0,0 +1,2 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ +org.springframework.cloud.netflix.ribbon.test.TestAutoConfiguration diff --git a/spring-cloud-netflix-ribbon/src/test/resources/application.yml b/spring-cloud-netflix-ribbon/src/test/resources/application.yml new file mode 100644 index 00000000..30a3f68a --- /dev/null +++ b/spring-cloud-netflix-ribbon/src/test/resources/application.yml @@ -0,0 +1,8 @@ +# for RibbonClientPreprocessorPropertiesOverridesIntegrationTests +foo2: + ribbon: + NFLoadBalancerPingClassName: com.netflix.loadbalancer.NoOpPing + NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule + NIWSServerListClassName: org.springframework.cloud.netflix.ribbon.test.TestServerList + NIWSServerListFilterClassName: com.netflix.loadbalancer.ServerListSubsetFilter + NFLoadBalancerClassName: org.springframework.cloud.netflix.ribbon.test.TestLoadBalancer diff --git a/spring-cloud-netflix-zuul/pom.xml b/spring-cloud-netflix-zuul/pom.xml index b24cb115..3bd5e544 100644 --- a/spring-cloud-netflix-zuul/pom.xml +++ b/spring-cloud-netflix-zuul/pom.xml @@ -24,6 +24,26 @@ org.springframework.cloud spring-cloud-netflix-core + + com.netflix.hystrix + hystrix-core + true + + + com.netflix.ribbon + ribbon-loadbalancer + true + + + com.netflix.ribbon + ribbon-core + true + + + com.netflix.ribbon + ribbon-httpclient + true + org.springframework.boot spring-boot-starter-actuator diff --git a/spring-cloud-starter-netflix/spring-cloud-starter-netflix-archaius/pom.xml b/spring-cloud-starter-netflix/spring-cloud-starter-netflix-archaius/pom.xml index 85fbc7cf..f65eb97a 100644 --- a/spring-cloud-starter-netflix/spring-cloud-starter-netflix-archaius/pom.xml +++ b/spring-cloud-starter-netflix/spring-cloud-starter-netflix-archaius/pom.xml @@ -24,7 +24,7 @@ org.springframework.cloud - spring-cloud-netflix-core + spring-cloud-netflix-ribbon org.springframework.cloud diff --git a/spring-cloud-starter-netflix/spring-cloud-starter-netflix-hystrix/pom.xml b/spring-cloud-starter-netflix/spring-cloud-starter-netflix-hystrix/pom.xml index 9c6b6b6f..c92eb573 100644 --- a/spring-cloud-starter-netflix/spring-cloud-starter-netflix-hystrix/pom.xml +++ b/spring-cloud-starter-netflix/spring-cloud-starter-netflix-hystrix/pom.xml @@ -24,7 +24,7 @@ org.springframework.cloud - spring-cloud-netflix-core + spring-cloud-netflix-ribbon org.springframework.cloud diff --git a/spring-cloud-starter-netflix/spring-cloud-starter-netflix-ribbon/pom.xml b/spring-cloud-starter-netflix/spring-cloud-starter-netflix-ribbon/pom.xml index c2fe2c86..9125d009 100644 --- a/spring-cloud-starter-netflix/spring-cloud-starter-netflix-ribbon/pom.xml +++ b/spring-cloud-starter-netflix/spring-cloud-starter-netflix-ribbon/pom.xml @@ -24,7 +24,7 @@ org.springframework.cloud - spring-cloud-netflix-core + spring-cloud-netflix-ribbon org.springframework.cloud