import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.util.Objects;
+import java.util.concurrent.TimeUnit;
abstract class BaseApiClient {
BaseApiClient(ConfigProvider config) {
this.config = config;
- this.client = OkHttpClientFactory.INSTANCE.create(config.isApiHostInsecure());
+ this.client = OkHttpClientFactory.INSTANCE.create(config.isApiHostInsecure())
+ .newBuilder()
+ .connectTimeout(config.getConnectTimeout(), TimeUnit.MILLISECONDS)
+ .readTimeout(config.getReadTimeout(), TimeUnit.MILLISECONDS)
+ .writeTimeout(config.getWriteTimeout(), TimeUnit.MILLISECONDS)
+ .build();
}
Request.Builder getRequestBuilder() {
private File fileSplitDirectory;
private int numberOfCopies;
private int numberOfRetries;
+ private int connectTimeout;
+ private int readTimeout;
+ private int writeTimeout;
+
+ ExternalConfigProvider(boolean apiHostInsecure, String keepWebHost, int keepWebPort, String apiHost, int apiPort,
+ String apiToken, String apiProtocol, int fileSplitSize, File fileSplitDirectory,
+ int numberOfCopies, int numberOfRetries)
+ {
+ this.apiHostInsecure = apiHostInsecure;
+ this.keepWebHost = keepWebHost;
+ this.keepWebPort = keepWebPort;
+ this.apiHost = apiHost;
+ this.apiPort = apiPort;
+ this.apiToken = apiToken;
+ this.apiProtocol = apiProtocol;
+ this.fileSplitSize = fileSplitSize;
+ this.fileSplitDirectory = fileSplitDirectory;
+ this.numberOfCopies = numberOfCopies;
+ this.numberOfRetries = numberOfRetries;
+ this.connectTimeout = 60000;
+ this.readTimeout = 60000;
+ this.writeTimeout = 60000;
+ }
- ExternalConfigProvider(boolean apiHostInsecure, String keepWebHost, int keepWebPort, String apiHost, int apiPort, String apiToken, String apiProtocol, int fileSplitSize, File fileSplitDirectory, int numberOfCopies, int numberOfRetries) {
+ ExternalConfigProvider(boolean apiHostInsecure, String keepWebHost, int keepWebPort, String apiHost, int apiPort,
+ String apiToken, String apiProtocol, int fileSplitSize, File fileSplitDirectory,
+ int numberOfCopies, int numberOfRetries,
+ int connectTimeout, int readTimeout, int writeTimeout)
+ {
this.apiHostInsecure = apiHostInsecure;
this.keepWebHost = keepWebHost;
this.keepWebPort = keepWebPort;
this.fileSplitDirectory = fileSplitDirectory;
this.numberOfCopies = numberOfCopies;
this.numberOfRetries = numberOfRetries;
+ this.connectTimeout = connectTimeout;
+ this.readTimeout = readTimeout;
+ this.writeTimeout = writeTimeout;
}
public static ExternalConfigProviderBuilder builder() {
return this.numberOfRetries;
}
+ public int getConnectTimeout() {
+ return this.connectTimeout;
+ }
+
+ public int getReadTimeout() {
+ return this.readTimeout;
+ }
+
+ public int getWriteTimeout() {
+ return this.writeTimeout;
+ }
+
public static class ExternalConfigProviderBuilder {
private boolean apiHostInsecure;
private String keepWebHost;