From aaaae3acc025b0280c4fa53b4e1ba1ce295f251f Mon Sep 17 00:00:00 2001 From: Michael Vorburger Date: Sat, 13 Mar 2021 16:13:57 +0100 Subject: [PATCH] make FineractClient expose the OkHttp client --- .../fineract/client/util/FineractClient.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java b/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java index e6a4a64bf..3aff2d2a0 100644 --- a/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java +++ b/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java @@ -28,6 +28,7 @@ import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; +import okhttp3.HttpUrl; import okhttp3.OkHttpClient; import okhttp3.logging.HttpLoggingInterceptor; import okhttp3.logging.HttpLoggingInterceptor.Level; @@ -157,6 +158,7 @@ public final class FineractClient { // Matching org.apache.fineract.client.util.JSON.LocalDateTypeAdapter.formatter public static final String DATE_FORMAT = "yyyy-MM-dd"; + private final OkHttpClient okHttpClient; private final Retrofit retrofit; public final AccountingClosureApi glClosures; @@ -264,7 +266,8 @@ public final class FineractClient { public final UsersApi users; public final WorkingDaysApi workingDays; - private FineractClient(Retrofit retrofit) { + private FineractClient(OkHttpClient okHttpClient, Retrofit retrofit) { + this.okHttpClient = okHttpClient; this.retrofit = retrofit; glClosures = retrofit.create(AccountingClosureApi.class); @@ -377,6 +380,14 @@ public final class FineractClient { return new Builder(); } + public OkHttpClient okHttpClient() { + return this.okHttpClient; + } + + public HttpUrl baseURL() { + return this.retrofit.baseUrl(); + } + /** * Create an implementation of the API endpoints defined by the {@code service} interface, using * {@link Retrofit#create(Class)}. This method is typically not required to be invoked for standard API usage, but @@ -480,9 +491,10 @@ public final class FineractClient { basicAuth.setCredentials(has("username", username), has("password", password)); okBuilder.addInterceptor(basicAuth); - retrofitBuilder.client(okBuilder.build()); + OkHttpClient okHttpClient = okBuilder.build(); + retrofitBuilder.client(okHttpClient); - return new FineractClient(retrofitBuilder.build()); + return new FineractClient(okHttpClient, retrofitBuilder.build()); } /**