diff --git a/client-runtime/src/main/java/com/microsoft/rest/ServiceClient.java b/client-runtime/src/main/java/com/microsoft/rest/ServiceClient.java index a0655bc3ab79..5c7a8cd89b28 100644 --- a/client-runtime/src/main/java/com/microsoft/rest/ServiceClient.java +++ b/client-runtime/src/main/java/com/microsoft/rest/ServiceClient.java @@ -35,6 +35,16 @@ public abstract class ServiceClient { */ protected Retrofit.Builder retrofitBuilder; + /** + * The OkHttp client. + */ + protected OkHttpClient httpClient; + + /** + * The rest adapter. + */ + protected Retrofit retrofit; + /** * The adapter for {@link com.fasterxml.jackson.databind.ObjectMapper} for serialization * and deserialization operations. @@ -74,17 +84,6 @@ public List getClientInterceptors() { return this.clientBuilder.interceptors(); } - /** - * Sets the logging level for OkHttp client. - * - * @param logLevel the logging level enum - */ - public void setLogLevel(Level logLevel) { - HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(); - loggingInterceptor.setLevel(logLevel); - this.getClientInterceptors().add(loggingInterceptor); - } - /** * Gets the adapter for {@link com.fasterxml.jackson.databind.ObjectMapper} for serialization * and deserialization operations.. diff --git a/client-runtime/src/test/java/com/microsoft/rest/CredentialsTests.java b/client-runtime/src/test/java/com/microsoft/rest/CredentialsTests.java index 296c7c910095..d6bfbf3e148e 100644 --- a/client-runtime/src/test/java/com/microsoft/rest/CredentialsTests.java +++ b/client-runtime/src/test/java/com/microsoft/rest/CredentialsTests.java @@ -10,8 +10,11 @@ import com.microsoft.rest.credentials.BasicAuthenticationCredentials; import com.microsoft.rest.credentials.TokenCredentials; import okhttp3.Interceptor; +import okhttp3.OkHttpClient; import okhttp3.Protocol; import okhttp3.Response; +import retrofit2.Retrofit; + import org.junit.Assert; import org.junit.Test; @@ -20,29 +23,30 @@ public class CredentialsTests { @Test public void basicCredentialsTest() throws Exception { - ServiceClient serviceClient = new ServiceClient() { }; - BasicAuthenticationCredentials credentials = new BasicAuthenticationCredentials("user", "pass"); - credentials.applyCredentialsFilter(serviceClient.clientBuilder); - serviceClient.getClientInterceptors().add(new Interceptor() { + OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder(); + Retrofit.Builder retrofitBuilder = new Retrofit.Builder(); + clientBuilder.addInterceptor(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { String header = chain.request().header("Authorization"); Assert.assertEquals("Basic dXNlcjpwYXNz", header); - return new Response.Builder() - .request(chain.request()) - .code(200) - .protocol(Protocol.HTTP_1_1) - .build(); + return new Response.Builder() + .request(chain.request()) + .code(200) + .protocol(Protocol.HTTP_1_1) + .build(); } }); + ServiceClient serviceClient = new ServiceClient(clientBuilder, retrofitBuilder) { }; + BasicAuthenticationCredentials credentials = new BasicAuthenticationCredentials("user", "pass"); + credentials.applyCredentialsFilter(serviceClient.clientBuilder); } @Test public void tokenCredentialsTest() throws Exception { - ServiceClient serviceClient = new ServiceClient() { }; - TokenCredentials credentials = new TokenCredentials(null, "this_is_a_token"); - credentials.applyCredentialsFilter(serviceClient.clientBuilder); - serviceClient.getClientInterceptors().add(new Interceptor() { + OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder(); + Retrofit.Builder retrofitBuilder = new Retrofit.Builder(); + clientBuilder.addInterceptor(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { String header = chain.request().header("Authorization"); @@ -54,5 +58,8 @@ public Response intercept(Chain chain) throws IOException { .build(); } }); + ServiceClient serviceClient = new ServiceClient(clientBuilder, retrofitBuilder) { }; + TokenCredentials credentials = new TokenCredentials(null, "this_is_a_token"); + credentials.applyCredentialsFilter(serviceClient.clientBuilder); } } diff --git a/client-runtime/src/test/java/com/microsoft/rest/RetryHandlerTests.java b/client-runtime/src/test/java/com/microsoft/rest/RetryHandlerTests.java index 4291450c27d1..b0ddd36a1860 100644 --- a/client-runtime/src/test/java/com/microsoft/rest/RetryHandlerTests.java +++ b/client-runtime/src/test/java/com/microsoft/rest/RetryHandlerTests.java @@ -10,9 +10,12 @@ import com.microsoft.rest.retry.RetryHandler; import okhttp3.Interceptor; +import okhttp3.OkHttpClient; import okhttp3.Protocol; import okhttp3.Request; import okhttp3.Response; +import retrofit2.Retrofit; + import org.junit.Assert; import org.junit.Test; @@ -21,9 +24,10 @@ public class RetryHandlerTests { @Test public void exponentialRetryEndOn501() throws Exception { - ServiceClient serviceClient = new ServiceClient() { }; - serviceClient.getClientInterceptors().add(new RetryHandler()); - serviceClient.getClientInterceptors().add(new Interceptor() { + OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder(); + Retrofit.Builder retrofitBuilder = new Retrofit.Builder(); + clientBuilder.addInterceptor(new RetryHandler()); + clientBuilder.addInterceptor(new Interceptor() { // Send 408, 500, 502, all retried, with a 501 ending private int[] codes = new int[]{408, 500, 502, 501}; private int count = 0; @@ -37,6 +41,7 @@ public Response intercept(Chain chain) throws IOException { .build(); } }); + ServiceClient serviceClient = new ServiceClient(clientBuilder, retrofitBuilder) { }; Response response = serviceClient.clientBuilder.build().newCall( new Request.Builder().url("http://localhost").get().build()).execute(); Assert.assertEquals(501, response.code()); @@ -44,11 +49,13 @@ public Response intercept(Chain chain) throws IOException { @Test public void exponentialRetryMax() throws Exception { - ServiceClient serviceClient = new ServiceClient() { }; - serviceClient.getClientInterceptors().add(new RetryHandler()); - serviceClient.getClientInterceptors().add(new Interceptor() { + OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder(); + Retrofit.Builder retrofitBuilder = new Retrofit.Builder(); + clientBuilder.addInterceptor(new RetryHandler()); + clientBuilder.addInterceptor(new Interceptor() { // Send 500 until max retry is hit private int count = 0; + @Override public Response intercept(Chain chain) throws IOException { Assert.assertTrue(count++ < 5); @@ -59,6 +66,7 @@ public Response intercept(Chain chain) throws IOException { .build(); } }); + ServiceClient serviceClient = new ServiceClient(clientBuilder, retrofitBuilder) { }; Response response = serviceClient.clientBuilder.build().newCall( new Request.Builder().url("http://localhost").get().build()).execute(); Assert.assertEquals(500, response.code()); diff --git a/client-runtime/src/test/java/com/microsoft/rest/ServiceClientTests.java b/client-runtime/src/test/java/com/microsoft/rest/ServiceClientTests.java index f30127974005..ee116d1bfa52 100644 --- a/client-runtime/src/test/java/com/microsoft/rest/ServiceClientTests.java +++ b/client-runtime/src/test/java/com/microsoft/rest/ServiceClientTests.java @@ -8,7 +8,10 @@ package com.microsoft.rest; import okhttp3.Interceptor; +import okhttp3.OkHttpClient; import okhttp3.Response; +import retrofit2.Retrofit; + import org.junit.Assert; import org.junit.Test; @@ -17,10 +20,11 @@ public class ServiceClientTests { @Test public void filterTests() throws Exception { - ServiceClient serviceClient = new ServiceClient() { }; - serviceClient.getClientInterceptors().add(0, new FirstFilter()); - serviceClient.getClientInterceptors().add(1, new SecondFilter()); - serviceClient.getClientInterceptors().add(new Interceptor() { + OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder(); + Retrofit.Builder retrofitBuilder = new Retrofit.Builder(); + clientBuilder.interceptors().add(0, new FirstFilter()); + clientBuilder.interceptors().add(1, new SecondFilter()); + clientBuilder.interceptors().add(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Assert.assertEquals("1", chain.request().header("filter1")); @@ -28,6 +32,7 @@ public Response intercept(Chain chain) throws IOException { return chain.proceed(chain.request()); } }); + ServiceClient serviceClient = new ServiceClient(clientBuilder, retrofitBuilder) { }; } public class FirstFilter implements Interceptor { diff --git a/client-runtime/src/test/java/com/microsoft/rest/UserAgentTests.java b/client-runtime/src/test/java/com/microsoft/rest/UserAgentTests.java index ce06a25b8869..a87c951dfc36 100644 --- a/client-runtime/src/test/java/com/microsoft/rest/UserAgentTests.java +++ b/client-runtime/src/test/java/com/microsoft/rest/UserAgentTests.java @@ -8,8 +8,11 @@ package com.microsoft.rest; import okhttp3.Interceptor; +import okhttp3.OkHttpClient; import okhttp3.Protocol; import okhttp3.Response; +import retrofit2.Retrofit; + import org.junit.Assert; import org.junit.Test; @@ -18,36 +21,40 @@ public class UserAgentTests { @Test public void defaultUserAgentTests() throws Exception { - ServiceClient serviceClient = new ServiceClient() { }; - serviceClient.getClientInterceptors().add(new Interceptor() { + OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder(); + Retrofit.Builder retrofitBuilder = new Retrofit.Builder(); + clientBuilder.addInterceptor(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { String header = chain.request().header("User-Agent"); Assert.assertEquals("AutoRest-Java", header); return new Response.Builder() - .request(chain.request()) - .code(200) - .protocol(Protocol.HTTP_1_1) - .build(); + .request(chain.request()) + .code(200) + .protocol(Protocol.HTTP_1_1) + .build(); } }); + ServiceClient serviceClient = new ServiceClient(clientBuilder, retrofitBuilder) { }; } @Test public void customUserAgentTests() throws Exception { - ServiceClient serviceClient = new ServiceClient() { }; - serviceClient.getClientInterceptors().add(new UserAgentInterceptor("Awesome")); - serviceClient.getClientInterceptors().add(new Interceptor() { + OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder(); + Retrofit.Builder retrofitBuilder = new Retrofit.Builder(); + clientBuilder.addInterceptor(new UserAgentInterceptor("Awesome")); + clientBuilder.addInterceptor(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { String header = chain.request().header("User-Agent"); Assert.assertEquals("Awesome", header); return new Response.Builder() - .request(chain.request()) - .code(200) - .protocol(Protocol.HTTP_1_1) - .build(); + .request(chain.request()) + .code(200) + .protocol(Protocol.HTTP_1_1) + .build(); } }); + ServiceClient serviceClient = new ServiceClient(clientBuilder, retrofitBuilder) { }; } }