@@ -110,28 +110,51 @@ public class InfluxDBImpl implements InfluxDB {
110
110
* The InfluxDB user name
111
111
* @param password
112
112
* The InfluxDB user password
113
- * @param client
113
+ * @param okHttpBuilder
114
114
* The OkHttp Client Builder
115
115
* @param responseFormat
116
116
* The {@code ResponseFormat} to use for response from InfluxDB
117
117
* server
118
118
*/
119
- public InfluxDBImpl (final String url , final String username , final String password , final OkHttpClient .Builder client ,
120
- final ResponseFormat responseFormat ) {
119
+ public InfluxDBImpl (final String url , final String username , final String password ,
120
+ final OkHttpClient .Builder okHttpBuilder , final ResponseFormat responseFormat ) {
121
+ this (url , username , password , okHttpBuilder , new Retrofit .Builder (), responseFormat );
122
+ }
123
+
124
+ /**
125
+ * Constructs a new {@code InfluxDBImpl}.
126
+ *
127
+ * @param url
128
+ * The InfluxDB server API URL
129
+ * @param username
130
+ * The InfluxDB user name
131
+ * @param password
132
+ * The InfluxDB user password
133
+ * @param okHttpBuilder
134
+ * The OkHttp Client Builder
135
+ * @param retrofitBuilder
136
+ * The Retrofit Builder
137
+ * @param responseFormat
138
+ * The {@code ResponseFormat} to use for response from InfluxDB
139
+ * server
140
+ */
141
+ public InfluxDBImpl (final String url , final String username , final String password ,
142
+ final OkHttpClient .Builder okHttpBuilder , final Retrofit .Builder retrofitBuilder ,
143
+ final ResponseFormat responseFormat ) {
121
144
this .messagePack = ResponseFormat .MSGPACK .equals (responseFormat );
122
145
this .hostName = parseHost (url );
123
146
124
147
this .loggingInterceptor = new HttpLoggingInterceptor ();
125
148
setLogLevel (LOG_LEVEL );
126
149
127
150
this .gzipRequestInterceptor = new GzipRequestInterceptor ();
128
- OkHttpClient .Builder clonedBuilder = client .build ().newBuilder ();
129
- clonedBuilder .addInterceptor (loggingInterceptor ).addInterceptor (gzipRequestInterceptor ).
151
+ OkHttpClient .Builder clonedOkHttpBuilder = okHttpBuilder .build ().newBuilder ();
152
+ clonedOkHttpBuilder .addInterceptor (loggingInterceptor ).addInterceptor (gzipRequestInterceptor ).
130
153
addInterceptor (new BasicAuthInterceptor (username , password ));
131
154
Factory converterFactory = null ;
132
155
switch (responseFormat ) {
133
156
case MSGPACK :
134
- clonedBuilder .addInterceptor (chain -> {
157
+ clonedOkHttpBuilder .addInterceptor (chain -> {
135
158
Request request = chain .request ().newBuilder ().addHeader ("Accept" , APPLICATION_MSGPACK ).build ();
136
159
return chain .proceed (request );
137
160
});
@@ -149,8 +172,9 @@ public InfluxDBImpl(final String url, final String username, final String passwo
149
172
break ;
150
173
}
151
174
152
- this .retrofit = new Retrofit .Builder ().baseUrl (url ).client (
153
- clonedBuilder .build ()).addConverterFactory (converterFactory ).build ();
175
+ Retrofit .Builder clonedRetrofitBuilder = retrofitBuilder .baseUrl (url ).build ().newBuilder ();
176
+ this .retrofit = clonedRetrofitBuilder .client (clonedOkHttpBuilder .build ())
177
+ .addConverterFactory (converterFactory ).build ();
154
178
this .influxDBService = this .retrofit .create (InfluxDBService .class );
155
179
156
180
}
0 commit comments