Skip to content

Commit 67dcaa9

Browse files
authored
feat: add EchoRequester to java APIC-257 (#90)
1 parent 5a6aa3b commit 67dcaa9

23 files changed

+2169
-636
lines changed

Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ FROM node:$NODE_VERSION-alpine
55
ENV DOCKER=true
66

77
RUN apk add openjdk11 maven jq bash perl curl
8+
ENV JAVA_HOME=/usr/lib/jvm/default-jvm
89

910
WORKDIR /app
1011

clients/algoliasearch-client-java-2/.openapi-generator-ignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ api/**
88
docs/**
99
gradle/**
1010
src/**
11+
README.md
1112

1213
.travis.yml
1314
build.gradle

clients/algoliasearch-client-java-2/README.md

Lines changed: 0 additions & 68 deletions
This file was deleted.

clients/algoliasearch-client-java-2/algoliasearch-core/com/algolia/ApiClient.java

Lines changed: 13 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.algolia;
22

3+
import com.algolia.utils.Requester;
34
import java.io.IOException;
45
import java.io.UnsupportedEncodingException;
56
import java.lang.reflect.Type;
@@ -9,11 +10,8 @@
910
import java.time.OffsetDateTime;
1011
import java.util.*;
1112
import java.util.Map.Entry;
12-
import java.util.concurrent.TimeUnit;
1313
import okhttp3.*;
1414
import okhttp3.internal.http.HttpMethod;
15-
import okhttp3.logging.HttpLoggingInterceptor;
16-
import okhttp3.logging.HttpLoggingInterceptor.Level;
1715

1816
public class ApiClient {
1917

@@ -25,36 +23,21 @@ public class ApiClient {
2523

2624
private DateFormat dateFormat;
2725

28-
private OkHttpClient httpClient;
2926
private JSON json;
3027

31-
private HttpLoggingInterceptor loggingInterceptor;
28+
private Requester requester;
3229

3330
/*
34-
* Basic constructor for ApiClient
31+
* Constructor for ApiClient with custom Requester
3532
*/
36-
public ApiClient(String appId, String apiKey) {
33+
public ApiClient(String appId, String apiKey, Requester requester) {
3734
json = new JSON();
3835
setUserAgent("OpenAPI-Generator/0.1.0/java");
39-
initHttpClient();
4036

4137
this.basePath = "https://" + appId + "-1.algolianet.com";
4238
this.appId = appId;
4339
this.apiKey = apiKey;
44-
}
45-
46-
private void initHttpClient() {
47-
initHttpClient(Collections.<Interceptor>emptyList());
48-
}
49-
50-
private void initHttpClient(List<Interceptor> interceptors) {
51-
OkHttpClient.Builder builder = new OkHttpClient.Builder();
52-
builder.addNetworkInterceptor(getProgressInterceptor());
53-
for (Interceptor interceptor : interceptors) {
54-
builder.addInterceptor(interceptor);
55-
}
56-
57-
httpClient = builder.build();
40+
this.requester = requester;
5841
}
5942

6043
/**
@@ -130,20 +113,7 @@ public boolean isDebugging() {
130113
* @return ApiClient
131114
*/
132115
public ApiClient setDebugging(boolean debugging) {
133-
if (debugging != this.debugging) {
134-
if (debugging) {
135-
loggingInterceptor = new HttpLoggingInterceptor();
136-
loggingInterceptor.setLevel(Level.BODY);
137-
httpClient =
138-
httpClient.newBuilder().addInterceptor(loggingInterceptor).build();
139-
} else {
140-
final OkHttpClient.Builder builder = httpClient.newBuilder();
141-
builder.interceptors().remove(loggingInterceptor);
142-
httpClient = builder.build();
143-
loggingInterceptor = null;
144-
}
145-
}
146-
this.debugging = debugging;
116+
requester.setDebugging(debugging);
147117
return this;
148118
}
149119

@@ -153,7 +123,7 @@ public ApiClient setDebugging(boolean debugging) {
153123
* @return Timeout in milliseconds
154124
*/
155125
public int getConnectTimeout() {
156-
return httpClient.connectTimeoutMillis();
126+
return requester.getConnectTimeout();
157127
}
158128

159129
/**
@@ -164,11 +134,7 @@ public int getConnectTimeout() {
164134
* @return Api client
165135
*/
166136
public ApiClient setConnectTimeout(int connectionTimeout) {
167-
httpClient =
168-
httpClient
169-
.newBuilder()
170-
.connectTimeout(connectionTimeout, TimeUnit.MILLISECONDS)
171-
.build();
137+
requester.setConnectTimeout(connectionTimeout);
172138
return this;
173139
}
174140

@@ -178,7 +144,7 @@ public ApiClient setConnectTimeout(int connectionTimeout) {
178144
* @return Timeout in milliseconds
179145
*/
180146
public int getReadTimeout() {
181-
return httpClient.readTimeoutMillis();
147+
return requester.getReadTimeout();
182148
}
183149

184150
/**
@@ -189,11 +155,7 @@ public int getReadTimeout() {
189155
* @return Api client
190156
*/
191157
public ApiClient setReadTimeout(int readTimeout) {
192-
httpClient =
193-
httpClient
194-
.newBuilder()
195-
.readTimeout(readTimeout, TimeUnit.MILLISECONDS)
196-
.build();
158+
requester.setReadTimeout(readTimeout);
197159
return this;
198160
}
199161

@@ -203,7 +165,7 @@ public ApiClient setReadTimeout(int readTimeout) {
203165
* @return Timeout in milliseconds
204166
*/
205167
public int getWriteTimeout() {
206-
return httpClient.writeTimeoutMillis();
168+
return requester.getWriteTimeout();
207169
}
208170

209171
/**
@@ -214,11 +176,7 @@ public int getWriteTimeout() {
214176
* @return Api client
215177
*/
216178
public ApiClient setWriteTimeout(int writeTimeout) {
217-
httpClient =
218-
httpClient
219-
.newBuilder()
220-
.writeTimeout(writeTimeout, TimeUnit.MILLISECONDS)
221-
.build();
179+
requester.setWriteTimeout(writeTimeout);
222180
return this;
223181
}
224182

@@ -672,7 +630,7 @@ public Call buildCall(
672630
callback
673631
);
674632

675-
return httpClient.newCall(request);
633+
return requester.newCall(request);
676634
}
677635

678636
/**
@@ -815,26 +773,4 @@ public RequestBody buildRequestBodyFormEncoding(
815773
}
816774
return formBuilder.build();
817775
}
818-
819-
/**
820-
* Get network interceptor to add it to the httpClient to track download progress for async
821-
* requests.
822-
*/
823-
private Interceptor getProgressInterceptor() {
824-
return new Interceptor() {
825-
@Override
826-
public Response intercept(Interceptor.Chain chain) throws IOException {
827-
final Request request = chain.request();
828-
final Response originalResponse = chain.proceed(request);
829-
if (request.tag() instanceof ApiCallback) {
830-
final ApiCallback callback = (ApiCallback) request.tag();
831-
return originalResponse
832-
.newBuilder()
833-
.body(new ProgressResponseBody(originalResponse.body(), callback))
834-
.build();
835-
}
836-
return originalResponse;
837-
}
838-
};
839-
}
840776
}

0 commit comments

Comments
 (0)