diff --git a/ribbon-loadbalancer/src/main/java/com/netflix/client/AbstractLoadBalancerAwareClient.java b/ribbon-loadbalancer/src/main/java/com/netflix/client/AbstractLoadBalancerAwareClient.java index 9b7d3fed065ab41da0391d39658e5c0346113964..c4d6a6768f97cfa85cdc605934adcbd7fa5a1887 100644 --- a/ribbon-loadbalancer/src/main/java/com/netflix/client/AbstractLoadBalancerAwareClient.java +++ b/ribbon-loadbalancer/src/main/java/com/netflix/client/AbstractLoadBalancerAwareClient.java @@ -29,7 +29,9 @@ import com.netflix.client.config.CommonClientConfigKey; import com.netflix.client.config.IClientConfig; import com.netflix.loadbalancer.AbstractLoadBalancer; import com.netflix.loadbalancer.AvailabilityFilteringRule; +import com.netflix.loadbalancer.ClientCallableProvider; import com.netflix.loadbalancer.ILoadBalancer; +import com.netflix.loadbalancer.LoadBalancerExecutor; import com.netflix.loadbalancer.LoadBalancerStats; import com.netflix.loadbalancer.Server; import com.netflix.loadbalancer.ServerStats; @@ -37,7 +39,8 @@ import com.netflix.servo.monitor.Monitors; import com.netflix.servo.monitor.Stopwatch; import com.netflix.servo.monitor.Timer; import com.netflix.utils.RxUtils; -import static com.netflix.client.LoadBalancerExecutor.CallableToObservable.toObsevableProvider; + +import static com.netflix.loadbalancer.LoadBalancerExecutor.CallableToObservable.toObsevableProvider; /** * Abstract class that provides the integration of client with load balancers. diff --git a/ribbon-loadbalancer/src/main/java/com/netflix/client/ClientCallableProvider.java b/ribbon-loadbalancer/src/main/java/com/netflix/loadbalancer/ClientCallableProvider.java similarity index 62% rename from ribbon-loadbalancer/src/main/java/com/netflix/client/ClientCallableProvider.java rename to ribbon-loadbalancer/src/main/java/com/netflix/loadbalancer/ClientCallableProvider.java index 1fd8e5b4220163527ec7a0c696f14c625c8aa184..6ee642ebb7108b09ff2079664b2f529835a6d788 100644 --- a/ribbon-loadbalancer/src/main/java/com/netflix/client/ClientCallableProvider.java +++ b/ribbon-loadbalancer/src/main/java/com/netflix/loadbalancer/ClientCallableProvider.java @@ -1,7 +1,6 @@ -package com.netflix.client; +package com.netflix.loadbalancer; -import com.netflix.loadbalancer.Server; public interface ClientCallableProvider { diff --git a/ribbon-loadbalancer/src/main/java/com/netflix/client/ClientObservableProvider.java b/ribbon-loadbalancer/src/main/java/com/netflix/loadbalancer/ClientObservableProvider.java similarity index 67% rename from ribbon-loadbalancer/src/main/java/com/netflix/client/ClientObservableProvider.java rename to ribbon-loadbalancer/src/main/java/com/netflix/loadbalancer/ClientObservableProvider.java index 23a4b31f1ff85c571aa6cd2343e87ee860a70dca..58baaf3d162edba4bf929a96fcd042a318e5f51b 100644 --- a/ribbon-loadbalancer/src/main/java/com/netflix/client/ClientObservableProvider.java +++ b/ribbon-loadbalancer/src/main/java/com/netflix/loadbalancer/ClientObservableProvider.java @@ -1,7 +1,6 @@ -package com.netflix.client; +package com.netflix.loadbalancer; import rx.Observable; -import com.netflix.loadbalancer.Server; public interface ClientObservableProvider { diff --git a/ribbon-loadbalancer/src/main/java/com/netflix/client/LoadBalancerContext.java b/ribbon-loadbalancer/src/main/java/com/netflix/loadbalancer/LoadBalancerContext.java similarity index 98% rename from ribbon-loadbalancer/src/main/java/com/netflix/client/LoadBalancerContext.java rename to ribbon-loadbalancer/src/main/java/com/netflix/loadbalancer/LoadBalancerContext.java index b9f31b743d84f4c7177ad024960a900605f5706c..bed4212d90fd2a7f912f76880b9fe564aeb8ca3a 100644 --- a/ribbon-loadbalancer/src/main/java/com/netflix/client/LoadBalancerContext.java +++ b/ribbon-loadbalancer/src/main/java/com/netflix/loadbalancer/LoadBalancerContext.java @@ -15,11 +15,10 @@ * limitations under the License. * */ -package com.netflix.client; +package com.netflix.loadbalancer; import java.net.URI; import java.net.URISyntaxException; -import java.net.URLEncoder; import java.util.concurrent.TimeUnit; import javax.annotation.Nullable; @@ -28,6 +27,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.common.base.Strings; +import com.netflix.client.ClientException; +import com.netflix.client.ClientRequest; +import com.netflix.client.DefaultLoadBalancerRetryHandler; +import com.netflix.client.IClientConfigAware; +import com.netflix.client.RetryHandler; +import com.netflix.client.ClientException.ErrorType; import com.netflix.client.config.CommonClientConfigKey; import com.netflix.client.config.DefaultClientConfigImpl; import com.netflix.client.config.IClientConfig; @@ -61,7 +66,7 @@ public class LoadBalancerContext implements IClientConfigAware { protected RetryHandler errorHandler = new DefaultLoadBalancerRetryHandler(); - boolean okToRetryOnAllOperations = DefaultClientConfigImpl.DEFAULT_OK_TO_RETRY_ON_ALL_OPERATIONS.booleanValue(); + protected boolean okToRetryOnAllOperations = DefaultClientConfigImpl.DEFAULT_OK_TO_RETRY_ON_ALL_OPERATIONS.booleanValue(); private ILoadBalancer lb; diff --git a/ribbon-loadbalancer/src/main/java/com/netflix/client/LoadBalancerExecutor.java b/ribbon-loadbalancer/src/main/java/com/netflix/loadbalancer/LoadBalancerExecutor.java similarity index 95% rename from ribbon-loadbalancer/src/main/java/com/netflix/client/LoadBalancerExecutor.java rename to ribbon-loadbalancer/src/main/java/com/netflix/loadbalancer/LoadBalancerExecutor.java index 4a904a07d4d4f5aab29d16cc9303be608b347fc1..091f6d073c5b7f7a8bdf3b95b0fca576c669bb59 100644 --- a/ribbon-loadbalancer/src/main/java/com/netflix/client/LoadBalancerExecutor.java +++ b/ribbon-loadbalancer/src/main/java/com/netflix/loadbalancer/LoadBalancerExecutor.java @@ -1,4 +1,4 @@ -package com.netflix.client; +package com.netflix.loadbalancer; import java.net.URI; import java.util.concurrent.TimeUnit; @@ -13,13 +13,13 @@ import rx.Observable; import rx.Observable.OnSubscribeFunc; import rx.Observer; import rx.Subscription; +import rx.functions.Func1; import rx.subscriptions.Subscriptions; -import rx.util.functions.Func1; +import com.netflix.client.ClientException; +import com.netflix.client.DefaultLoadBalancerRetryHandler; +import com.netflix.client.RetryHandler; import com.netflix.client.config.IClientConfig; -import com.netflix.loadbalancer.ILoadBalancer; -import com.netflix.loadbalancer.Server; -import com.netflix.loadbalancer.ServerStats; import com.netflix.servo.monitor.Stopwatch; import com.netflix.utils.RxUtils; @@ -188,7 +188,7 @@ public class LoadBalancerExecutor extends LoadBalancerContext { * of this {@link LoadBalancerExecutor} will be used. * @param loadBalancerKey An optional key passed to the load balancer to determine which server to return. */ - Observable executeWithLoadBalancer(final ClientObservableProvider clientObservableProvider, @Nullable final URI loadBalancerURI, + protected Observable executeWithLoadBalancer(final ClientObservableProvider clientObservableProvider, @Nullable final URI loadBalancerURI, @Nullable final RetryHandler retryHandler, @Nullable final Object loadBalancerKey) { OnSubscribeFunc onSubscribe = new OnSubscribeFunc() { @Override @@ -209,7 +209,7 @@ public class LoadBalancerExecutor extends LoadBalancerContext { return observable.onErrorResumeNext(retryNextServerFunc); } - Observable retrySameServer(final Server server, final ClientObservableProvider clientObservableProvider, final RetryHandler errorHandler) { + protected Observable retrySameServer(final Server server, final ClientObservableProvider clientObservableProvider, final RetryHandler errorHandler) { final ServerStats serverStats = getServerStats(server); OnSubscribeFunc onSubscribe = new OnSubscribeFunc() { @Override diff --git a/ribbon-loadbalancer/src/test/java/com/netflix/client/LoadBalancerContextTest.java b/ribbon-loadbalancer/src/test/java/com/netflix/loadbalancer/LoadBalancerContextTest.java similarity index 96% rename from ribbon-loadbalancer/src/test/java/com/netflix/client/LoadBalancerContextTest.java rename to ribbon-loadbalancer/src/test/java/com/netflix/loadbalancer/LoadBalancerContextTest.java index 94bfa1b46980f79259218927ad3842dec7fbb736..eb8643e5b8d1b559cdce518b5d7afaa9bbb7caf7 100644 --- a/ribbon-loadbalancer/src/test/java/com/netflix/client/LoadBalancerContextTest.java +++ b/ribbon-loadbalancer/src/test/java/com/netflix/loadbalancer/LoadBalancerContextTest.java @@ -15,7 +15,7 @@ * limitations under the License. * */ -package com.netflix.client; +package com.netflix.loadbalancer; import static org.junit.Assert.*; @@ -76,7 +76,7 @@ public class LoadBalancerContextTest { @Test public void testEncodedQuery() throws Exception { String uri = "http://localhost:8080/resources/abc?"; - String queryString = "name=" + URLEncoder.encode("éƎ&=*%!@#$%^&*()", "UTF-8"); + String queryString = "name=" + URLEncoder.encode("????&=*%!@#$%^&*()", "UTF-8"); URI request = new URI(uri + queryString); Server server = context.getServerFromLoadBalancer(request, null); URI newURI = context.reconstructURIWithServer(server, request); diff --git a/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/AbstractLoadBalancingClient.java b/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/AbstractLoadBalancingClient.java index 47a3dc76b2b0c65577e35c726891782f86167ef7..f8fa48fa63f1d08eec127108f9c0a7489294aea0 100644 --- a/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/AbstractLoadBalancingClient.java +++ b/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/AbstractLoadBalancingClient.java @@ -4,10 +4,10 @@ import io.netty.handler.codec.http.HttpMethod; import io.reactivex.netty.protocol.http.client.HttpClientRequest; import io.reactivex.netty.protocol.http.client.RepeatableContentHttpRequest; -import com.netflix.client.LoadBalancerExecutor; import com.netflix.client.RequestSpecificRetryHandler; import com.netflix.client.RetryHandler; import com.netflix.client.config.IClientConfig; +import com.netflix.loadbalancer.LoadBalancerExecutor; import com.netflix.loadbalancer.Server; import com.netflix.loadbalancer.ServerStats; diff --git a/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/NettyHttpClient.java b/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/NettyHttpClient.java index abf1e4a1db7c067a9b6a7b465c0b289662b451d2..287886b23e104913890714f980965c572da68b62 100644 --- a/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/NettyHttpClient.java +++ b/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/NettyHttpClient.java @@ -40,12 +40,12 @@ import rx.Observer; import com.google.common.base.Preconditions; import com.google.common.base.Strings; -import com.netflix.client.ClientObservableProvider; -import com.netflix.client.LoadBalancerExecutor; import com.netflix.client.config.CommonClientConfigKey; import com.netflix.client.config.DefaultClientConfigImpl; import com.netflix.client.config.IClientConfig; import com.netflix.client.config.IClientConfigKey; +import com.netflix.loadbalancer.ClientObservableProvider; +import com.netflix.loadbalancer.LoadBalancerExecutor; import com.netflix.loadbalancer.Server; import com.netflix.serialization.TypeDef; diff --git a/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/NettyHttpLoadBalancingClient.java b/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/NettyHttpLoadBalancingClient.java index 791f729abb8bd882da8b46a8e210063ec6a59156..920fdd973cd675c39d9c16075ce65115fcb81488 100644 --- a/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/NettyHttpLoadBalancingClient.java +++ b/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/NettyHttpLoadBalancingClient.java @@ -23,11 +23,11 @@ import io.reactivex.netty.protocol.http.client.HttpClientResponse; import io.reactivex.netty.protocol.http.client.RepeatableContentHttpRequest; import rx.Observable; -import com.netflix.client.ClientObservableProvider; -import com.netflix.client.LoadBalancerExecutor; import com.netflix.client.RetryHandler; import com.netflix.client.config.IClientConfig; +import com.netflix.loadbalancer.ClientObservableProvider; import com.netflix.loadbalancer.ILoadBalancer; +import com.netflix.loadbalancer.LoadBalancerExecutor; import com.netflix.loadbalancer.Server; public class NettyHttpLoadBalancingClient extends AbstractLoadBalancingClient { diff --git a/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/SSEClient.java b/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/SSEClient.java index 2e9732b4f5d892e0c7f1fe574b0e1a1cc20535ba..2f47e6675cce68c338487f0baed194156df163bd 100644 --- a/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/SSEClient.java +++ b/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/SSEClient.java @@ -14,9 +14,9 @@ import io.reactivex.netty.protocol.http.client.HttpClient.HttpClientConfig; import io.reactivex.netty.protocol.text.sse.ServerSentEvent; import com.google.common.base.Preconditions; -import com.netflix.client.ClientObservableProvider; import com.netflix.client.config.IClientConfig; import com.netflix.client.config.IClientConfigKey; +import com.netflix.loadbalancer.ClientObservableProvider; import com.netflix.loadbalancer.Server; public class SSEClient extends AbstractNettyHttpClient { diff --git a/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/SSELoadBalancingClient.java b/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/SSELoadBalancingClient.java index af17f836fafb2cf8d53d249920e913afa887a8aa..f80f3c5d691a107ee10c29b9d4cd6edbdb4c64bb 100644 --- a/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/SSELoadBalancingClient.java +++ b/ribbon-rxnetty/src/main/java/com/netflix/client/netty/http/SSELoadBalancingClient.java @@ -6,11 +6,11 @@ import io.reactivex.netty.protocol.http.client.RepeatableContentHttpRequest; import io.reactivex.netty.protocol.text.sse.ServerSentEvent; import rx.Observable; -import com.netflix.client.ClientObservableProvider; -import com.netflix.client.LoadBalancerExecutor; import com.netflix.client.RetryHandler; import com.netflix.client.config.IClientConfig; +import com.netflix.loadbalancer.ClientObservableProvider; import com.netflix.loadbalancer.ILoadBalancer; +import com.netflix.loadbalancer.LoadBalancerExecutor; import com.netflix.loadbalancer.Server; public class SSELoadBalancingClient extends AbstractLoadBalancingClient {