Skip to content

Commit b6bc3db

Browse files
committed
Releasing 1.0.8
Adding ability to setup OkHttp call timeout
1 parent 80af417 commit b6bc3db

File tree

5 files changed

+23
-7
lines changed

5 files changed

+23
-7
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<modelVersion>4.0.0</modelVersion>
77
<groupId>com.taboola</groupId>
88
<artifactId>api-java-client-core</artifactId>
9-
<version>1.0.7</version>
9+
<version>1.0.8</version>
1010

1111
<name>${project.groupId}:${project.artifactId}</name>
1212
<description>API Java client core</description>

src/main/java/com/taboola/rest/api/RestAPIClient.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public static RestAPIClientBuilder builder() {
5353
}
5454

5555
public static class RestAPIClientBuilder {
56-
private static final String VERSION = "1.0.7";
56+
private static final String VERSION = "1.0.8";
5757
private static final Integer DEFAULT_MAX_IDLE_CONNECTIONS = 5;
5858
private static final Long DEFAULT_KEEP_ALIVE_DURATION_MILLIS = 300_000L;
5959
private static final SerializationConfig DEFAULT_SERIALIZATION_CONFIG = new SerializationConfig();
@@ -69,6 +69,7 @@ public static class RestAPIClientBuilder {
6969
private Long readTimeoutMillis;
7070
private Integer maxIdleConnections;
7171
private Long keepAliveDurationMillis;
72+
private Long callTimeoutMillis;
7273
private Boolean debug;
7374
private SerializationConfig serializationConfig;
7475
private Collection<RequestHeader> headers;
@@ -127,6 +128,11 @@ public RestAPIClientBuilder setKeepAliveDurationMillis(Long keepAliveDurationMil
127128
return this;
128129
}
129130

131+
public RestAPIClientBuilder setCallTimeoutMillis(Long callTimeoutMillis) {
132+
this.callTimeoutMillis = callTimeoutMillis;
133+
return this;
134+
}
135+
130136
public RestAPIClientBuilder setDebug(Boolean debug) {
131137
this.debug = debug;
132138
return this;
@@ -179,7 +185,7 @@ public RestAPIClient build() {
179185
RequestHeadersSupplier multiRequestHeadersSupplier = new MultiRequestHeadersSupplier(() -> headers, headersSupplier);
180186

181187
CommunicationConfig config = new CommunicationConfig(baseUrl, connectionTimeoutMillis, readTimeoutMillis, writeTimeoutMillis, maxIdleConnections,
182-
keepAliveDurationMillis, multiRequestHeadersSupplier, debug, exceptionFactory, objectMapper, stringResponseFactories, loggingLevel, communicationInterceptor);
188+
keepAliveDurationMillis, callTimeoutMillis, multiRequestHeadersSupplier, debug, exceptionFactory, objectMapper, stringResponseFactories, loggingLevel, communicationInterceptor);
183189
return new RestAPIClient(new CommunicationFactory(config));
184190
}
185191

@@ -211,6 +217,10 @@ private void organizeState() {
211217
writeTimeoutMillis = 0L;
212218
}
213219

220+
if (callTimeoutMillis == null) {
221+
callTimeoutMillis = 0L;
222+
}
223+
214224
if (maxIdleConnections == null) {
215225
maxIdleConnections = DEFAULT_MAX_IDLE_CONNECTIONS;
216226
}

src/main/java/com/taboola/rest/api/internal/CommunicationFactory.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ private OkHttpClient createOkHttpClient(CommunicationConfig config) {
6363
.readTimeout(config.getReadTimeoutMillis(), TimeUnit.MILLISECONDS)
6464
.writeTimeout(config.getWriteTimeoutMillis(), TimeUnit.MILLISECONDS)
6565
.connectTimeout(config.getConnectionTimeoutMillis(), TimeUnit.MILLISECONDS)
66+
.callTimeout(config.getCallTimeoutMillis(), TimeUnit.MILLISECONDS)
6667
.connectionPool(new ConnectionPool(config.getMaxIdleConnections(),
6768
config.getKeepAliveDurationMillis(), TimeUnit.MILLISECONDS))
6869
.build();

src/main/java/com/taboola/rest/api/internal/config/CommunicationConfig.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package com.taboola.rest.api.internal.config;
22

33

4-
import java.util.Collection;
5-
64
import com.fasterxml.jackson.databind.ObjectMapper;
75
import com.taboola.rest.api.exceptions.factories.ExceptionFactory;
86
import com.taboola.rest.api.internal.StringResponseFactories;
@@ -24,6 +22,7 @@ public class CommunicationConfig {
2422
private final long writeTimeoutMillis;
2523
private final int maxIdleConnections;
2624
private final long keepAliveDurationMillis;
25+
private final long callTimeoutMillis;
2726
private final boolean debug;
2827
private final RequestHeadersSupplier requestHeadersSupplier;
2928
private final ExceptionFactory exceptionFactory;
@@ -33,7 +32,7 @@ public class CommunicationConfig {
3332
private final CommunicationInterceptor communicationInterceptor;
3433

3534
public CommunicationConfig(String baseUrl, Long connectionTimeoutMillis, Long readTimeoutMillis,
36-
Long writeTimeoutMillis, Integer maxIdleConnections, Long keepAliveDurationMillis,
35+
Long writeTimeoutMillis, Integer maxIdleConnections, Long keepAliveDurationMillis, Long callTimeoutMillis,
3736
RequestHeadersSupplier requestHeadersSupplier, boolean debug, ExceptionFactory exceptionFactory,
3837
ObjectMapper objectMapper, StringResponseFactories stringResponseFactories, HttpLoggingLevel loggingLevel,
3938
CommunicationInterceptor communicationInterceptor) {
@@ -44,6 +43,7 @@ public CommunicationConfig(String baseUrl, Long connectionTimeoutMillis, Long re
4443
this.maxIdleConnections = maxIdleConnections;
4544
this.keepAliveDurationMillis = keepAliveDurationMillis;
4645
this.requestHeadersSupplier = requestHeadersSupplier;
46+
this.callTimeoutMillis = callTimeoutMillis;
4747
this.debug = debug;
4848
this.exceptionFactory = exceptionFactory;
4949
this.objectMapper = objectMapper;
@@ -76,6 +76,10 @@ public long getKeepAliveDurationMillis() {
7676
return keepAliveDurationMillis;
7777
}
7878

79+
public long getCallTimeoutMillis() {
80+
return callTimeoutMillis;
81+
}
82+
7983
public RequestHeadersSupplier getRequestHeadersSupplier() {
8084
return requestHeadersSupplier;
8185
}
@@ -112,6 +116,7 @@ public String toString() {
112116
", readTimeoutMillis=" + readTimeoutMillis +
113117
", writeTimeoutMillis=" + writeTimeoutMillis +
114118
", maxIdleConnections=" + maxIdleConnections +
119+
", callTimeoutMillis=" + callTimeoutMillis +
115120
", keepAliveDurationMillis=" + keepAliveDurationMillis +
116121
", debug=" + debug +
117122
", requestHeadersSupplier=" + requestHeadersSupplier +

src/test/java/com/taboola/rest/api/internal/CommunicationFactoryTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public interface TestEndpoint {
3737
@Before
3838
public void beforeTest() {
3939
CommunicationConfig communicationConfig = new CommunicationConfig("http://localhost",
40-
1L, 1L, 1L, 1, 60L,
40+
1L, 1L, 1L, 1, 60L, 1L,
4141
() -> Collections.singleton(new UserAgentHeader("Dummy-Agent")), true, new DefaultExceptionFactory(),
4242
new ObjectMapper(), new StringResponseFactories(), HttpLoggingLevel.BASIC, new NoOpCommunicationInterceptor());
4343
testInstance = new CommunicationFactory(communicationConfig);

0 commit comments

Comments
 (0)