diff --git a/examples/build.gradle b/examples/build.gradle index 123b5ad..454b252 100644 --- a/examples/build.gradle +++ b/examples/build.gradle @@ -16,5 +16,5 @@ dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' compile 'com.fasterxml.jackson.core:jackson-core:2.11.0' compile 'com.fasterxml.jackson.core:jackson-databind:2.11.0' - compile group: 'com.socketlabs', name: 'injectionApi', version: '1.1.0' + compile group: 'com.socketlabs', name: 'injectionApi', version: '1.1.1' } diff --git a/injectionApi/build.gradle b/injectionApi/build.gradle index 7d9dd7e..24597cf 100644 --- a/injectionApi/build.gradle +++ b/injectionApi/build.gradle @@ -7,7 +7,7 @@ plugins { def baseGroupId = "com.socketlabs" def baseArtifactId = 'injectionApi' def computeVersion() { - def baseVersion = "1.1.0" + def baseVersion = "1.1.1" def release = true if (release) return "${baseVersion}" diff --git a/injectionApi/pom.xml b/injectionApi/pom.xml index 2cbc27b..607e84a 100644 --- a/injectionApi/pom.xml +++ b/injectionApi/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.socketlabs injectionApi - 1.1.0 + 1.1.1 socketlabs-java SocketLabs Email Delivery Java library https://github.com/socketlabs/socketlabs-java/ diff --git a/injectionApi/src/main/java/com/socketLabs/injectionApi/SocketLabsClient.java b/injectionApi/src/main/java/com/socketLabs/injectionApi/SocketLabsClient.java index 608b262..397dc9c 100644 --- a/injectionApi/src/main/java/com/socketLabs/injectionApi/SocketLabsClient.java +++ b/injectionApi/src/main/java/com/socketLabs/injectionApi/SocketLabsClient.java @@ -15,6 +15,7 @@ public class SocketLabsClient implements SocketLabsClientAPI { private String apiKey; private String endPointUrl = "https://inject.socketlabs.com/api/v1/email"; private Proxy proxy; + private int requestTimeout = 100; /** * Set the SocketLabs Injection API endpoint Url @@ -24,6 +25,12 @@ public void setEndPointUrl(String value) { this.endPointUrl = value; } + /** + * Set the Timeout period used by the HttpClient (in seconds) + * @param value int + */ + public void setRequestTimeout(int value) { this.requestTimeout = value; } + private final String VERSION = "1.0.0"; private final String userAgent = String.format("SocketLabs-java/%s(%s)", VERSION, Package.getPackage("java.util").getImplementationVersion()); @@ -36,6 +43,7 @@ public SocketLabsClient(int serverId, String apiKey) { this.serverId = serverId; this.apiKey = apiKey; } + /** * * Creates a new instance of the SocketLabsClient. @@ -159,7 +167,7 @@ private SendResponse Validate(BulkMessage message) { private HttpRequest buildHttpRequest(Proxy optionalProxy) { - HttpRequest request = new HttpRequest(HttpRequest.HttpRequestMethod.POST, this.endPointUrl); + HttpRequest request = new HttpRequest(HttpRequest.HttpRequestMethod.POST, this.endPointUrl, this.requestTimeout); request.setHeader("User-Agent", this.userAgent); request.setHeader("content-type", "application/json"); diff --git a/injectionApi/src/main/java/com/socketLabs/injectionApi/core/HttpRequest.java b/injectionApi/src/main/java/com/socketLabs/injectionApi/core/HttpRequest.java index d1f4329..b4c995f 100644 --- a/injectionApi/src/main/java/com/socketLabs/injectionApi/core/HttpRequest.java +++ b/injectionApi/src/main/java/com/socketLabs/injectionApi/core/HttpRequest.java @@ -5,8 +5,10 @@ import okhttp3.*; import okhttp3.Request.Builder; + import java.io.*; import java.net.Proxy; +import java.util.concurrent.TimeUnit; import java.util.HashMap; import java.util.Map; @@ -35,15 +37,18 @@ public enum HttpRequestMethod { private Proxy proxy; /** The headers to add to the HTTP Request */ private Map headers = new HashMap<>(); + private int timeout; + /** * Creates a new instance of the HTTP Request class * @param method HTTpRequestMethod * @param endPointUrl String */ - public HttpRequest(HttpRequestMethod method, String endPointUrl) { + public HttpRequest(HttpRequestMethod method, String endPointUrl, int timeout) { this.method = method; this.endPointUrl = endPointUrl; + this.timeout = timeout; } /** @@ -114,16 +119,23 @@ public void onFailure(Call call, IOException ex) { } + /** * Build the HTTP Client call * @return Call */ private Call BuildClientCall() { - OkHttpClient client = new OkHttpClient(); + OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder() + .connectTimeout(this.timeout, TimeUnit.SECONDS) + .writeTimeout(this.timeout, TimeUnit.SECONDS) + .readTimeout(this.timeout, TimeUnit.SECONDS) + .callTimeout(this.timeout, TimeUnit.SECONDS); + + OkHttpClient client = clientBuilder.build(); if (this.proxy != null) - client = new OkHttpClient.Builder() + client = clientBuilder .proxy(this.proxy) .build();