From b87d6a0f36ca8233f099801246560d7998c4b911 Mon Sep 17 00:00:00 2001 From: xhh Date: Mon, 11 Jan 2016 18:10:02 +0800 Subject: [PATCH] Java okhttp-gson: implement the "debugging" option for ApiClient and upgrade OkHttp --- .../libraries/okhttp-gson/ApiClient.mustache | 14 ++++++++++++++ .../Java/libraries/okhttp-gson/pom.mustache | 7 ++++++- samples/client/petstore/java/okhttp-gson/pom.xml | 7 ++++++- .../main/java/io/swagger/client/ApiClient.java | 16 +++++++++++++++- .../java/io/swagger/client/ApiClientTest.java | 9 +++++---- 5 files changed, 46 insertions(+), 7 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/ApiClient.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/ApiClient.mustache index 8c0880bf217..c80f45b91a5 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/ApiClient.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/ApiClient.mustache @@ -11,6 +11,8 @@ import com.squareup.okhttp.MultipartBuilder; import com.squareup.okhttp.MediaType; import com.squareup.okhttp.Headers; import com.squareup.okhttp.internal.http.HttpMethod; +import com.squareup.okhttp.logging.HttpLoggingInterceptor; +import com.squareup.okhttp.logging.HttpLoggingInterceptor.Level; import java.lang.reflect.Type; @@ -116,6 +118,8 @@ public class ApiClient { private OkHttpClient httpClient; private JSON json; + private HttpLoggingInterceptor loggingInterceptor; + public ApiClient() { httpClient = new OkHttpClient(); @@ -452,6 +456,16 @@ public class ApiClient { * @param debugging To enable (true) or disable (false) debugging */ public ApiClient setDebugging(boolean debugging) { + if (debugging != this.debugging) { + if (debugging) { + loggingInterceptor = new HttpLoggingInterceptor(); + loggingInterceptor.setLevel(Level.BODY); + httpClient.interceptors().add(loggingInterceptor); + } else { + httpClient.interceptors().remove(loggingInterceptor); + loggingInterceptor = null; + } + } this.debugging = debugging; return this; } diff --git a/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/pom.mustache b/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/pom.mustache index 0d7e9015101..982334a3914 100644 --- a/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/pom.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/libraries/okhttp-gson/pom.mustache @@ -117,6 +117,11 @@ okhttp ${okhttp-version} + + com.squareup.okhttp + logging-interceptor + ${okhttp-version} + com.google.code.gson gson @@ -133,7 +138,7 @@ 1.5.0 - 2.4.0 + 2.7.2 2.3.1 1.0.0 4.8.1 diff --git a/samples/client/petstore/java/okhttp-gson/pom.xml b/samples/client/petstore/java/okhttp-gson/pom.xml index 9fa057be939..4eaf536b2c8 100644 --- a/samples/client/petstore/java/okhttp-gson/pom.xml +++ b/samples/client/petstore/java/okhttp-gson/pom.xml @@ -117,6 +117,11 @@ okhttp ${okhttp-version} + + com.squareup.okhttp + logging-interceptor + ${okhttp-version} + com.google.code.gson gson @@ -133,7 +138,7 @@ 1.5.0 - 2.4.0 + 2.7.2 2.3.1 1.0.0 4.8.1 diff --git a/samples/client/petstore/java/okhttp-gson/src/main/java/io/swagger/client/ApiClient.java b/samples/client/petstore/java/okhttp-gson/src/main/java/io/swagger/client/ApiClient.java index 7fb4cc49bf3..782f3b239c5 100644 --- a/samples/client/petstore/java/okhttp-gson/src/main/java/io/swagger/client/ApiClient.java +++ b/samples/client/petstore/java/okhttp-gson/src/main/java/io/swagger/client/ApiClient.java @@ -11,6 +11,8 @@ import com.squareup.okhttp.MultipartBuilder; import com.squareup.okhttp.MediaType; import com.squareup.okhttp.Headers; import com.squareup.okhttp.internal.http.HttpMethod; +import com.squareup.okhttp.logging.HttpLoggingInterceptor; +import com.squareup.okhttp.logging.HttpLoggingInterceptor.Level; import java.lang.reflect.Type; @@ -116,6 +118,8 @@ public class ApiClient { private OkHttpClient httpClient; private JSON json; + private HttpLoggingInterceptor loggingInterceptor; + public ApiClient() { httpClient = new OkHttpClient(); @@ -141,8 +145,8 @@ public class ApiClient { // Setup authentications (key: authentication name, value: authentication). authentications = new HashMap(); - authentications.put("api_key", new ApiKeyAuth("header", "api_key")); authentications.put("petstore_auth", new OAuth()); + authentications.put("api_key", new ApiKeyAuth("header", "api_key")); // Prevent the authentications from being modified. authentications = Collections.unmodifiableMap(authentications); } @@ -451,6 +455,16 @@ public class ApiClient { * @param debugging To enable (true) or disable (false) debugging */ public ApiClient setDebugging(boolean debugging) { + if (debugging != this.debugging) { + if (debugging) { + loggingInterceptor = new HttpLoggingInterceptor(); + loggingInterceptor.setLevel(Level.BODY); + httpClient.interceptors().add(loggingInterceptor); + } else { + httpClient.interceptors().remove(loggingInterceptor); + loggingInterceptor = null; + } + } this.debugging = debugging; return this; } diff --git a/samples/client/petstore/java/okhttp-gson/src/test/java/io/swagger/client/ApiClientTest.java b/samples/client/petstore/java/okhttp-gson/src/test/java/io/swagger/client/ApiClientTest.java index ba143470c9a..43c5ee2b86a 100644 --- a/samples/client/petstore/java/okhttp-gson/src/test/java/io/swagger/client/ApiClientTest.java +++ b/samples/client/petstore/java/okhttp-gson/src/test/java/io/swagger/client/ApiClientTest.java @@ -186,14 +186,15 @@ public class ApiClientTest { @Test public void testGetAndSetConnectTimeout() { - assertEquals(0, apiClient.getConnectTimeout()); - assertEquals(0, apiClient.getHttpClient().getConnectTimeout()); - - apiClient.setConnectTimeout(10000); + // connect timeout defaults to 10 seconds assertEquals(10000, apiClient.getConnectTimeout()); assertEquals(10000, apiClient.getHttpClient().getConnectTimeout()); apiClient.setConnectTimeout(0); + assertEquals(0, apiClient.getConnectTimeout()); + assertEquals(0, apiClient.getHttpClient().getConnectTimeout()); + + apiClient.setConnectTimeout(10000); } @Test