From ed103df3d1ed18fdb1e950f8dee677f0a0b51726 Mon Sep 17 00:00:00 2001 From: "david.schrenker" Date: Thu, 4 Mar 2021 13:15:29 -0500 Subject: [PATCH 1/6] adding request timeout to SocketLabsClient and HttpRequest. SocketLabsClient has set method to overide the default of 100s. --- .../com/socketLabs/injectionApi/SocketLabsClient.java | 10 +++++++++- .../com/socketLabs/injectionApi/core/HttpRequest.java | 6 +++++- 2 files changed, 14 insertions(+), 2 deletions(-) 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..f4fe5e6 100644 --- a/injectionApi/src/main/java/com/socketLabs/injectionApi/core/HttpRequest.java +++ b/injectionApi/src/main/java/com/socketLabs/injectionApi/core/HttpRequest.java @@ -35,15 +35,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; } /** @@ -124,6 +127,7 @@ private Call BuildClientCall() { if (this.proxy != null) client = new OkHttpClient.Builder() + .callTimeout(this.timeout, TimeUnit.SECONDS) .proxy(this.proxy) .build(); From 8d2166d3a68005347066c85c469a0a73cb9842cd Mon Sep 17 00:00:00 2001 From: "david.schrenker" Date: Thu, 4 Mar 2021 13:23:43 -0500 Subject: [PATCH 2/6] updating minor version --- injectionApi/build.gradle | 2 +- injectionApi/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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/ From 6ed3e8600a18973053772470fe758da87b2efac9 Mon Sep 17 00:00:00 2001 From: "david.schrenker" Date: Thu, 4 Mar 2021 13:41:35 -0500 Subject: [PATCH 3/6] adding timeouts for all parts of the call --- .../java/com/socketLabs/injectionApi/core/HttpRequest.java | 3 +++ 1 file changed, 3 insertions(+) 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 f4fe5e6..9927fea 100644 --- a/injectionApi/src/main/java/com/socketLabs/injectionApi/core/HttpRequest.java +++ b/injectionApi/src/main/java/com/socketLabs/injectionApi/core/HttpRequest.java @@ -127,6 +127,9 @@ private Call BuildClientCall() { if (this.proxy != null) client = new OkHttpClient.Builder() + .connectTimeout(this.timeout, TimeUnit.SECONDS) + .writeTimeout(this.timeout, TimeUnit.SECONDS) + .readTimeout(this.timeout, TimeUnit.SECONDS) .callTimeout(this.timeout, TimeUnit.SECONDS) .proxy(this.proxy) .build(); From 0cbede36ff5c7c49baf7e8b56d806cfee01f558b Mon Sep 17 00:00:00 2001 From: "david.schrenker" Date: Thu, 4 Mar 2021 15:38:34 -0500 Subject: [PATCH 4/6] importing Timeunit --- .../main/java/com/socketLabs/injectionApi/core/HttpRequest.java | 2 ++ 1 file changed, 2 insertions(+) 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 9927fea..55e91f2 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; From 95cbb20704fe5df13a13688a6dfaf42da6340445 Mon Sep 17 00:00:00 2001 From: "david.schrenker" Date: Thu, 4 Mar 2021 19:09:51 -0500 Subject: [PATCH 5/6] moving timeout to client builder. --- .../socketLabs/injectionApi/core/HttpRequest.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) 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 55e91f2..b4c995f 100644 --- a/injectionApi/src/main/java/com/socketLabs/injectionApi/core/HttpRequest.java +++ b/injectionApi/src/main/java/com/socketLabs/injectionApi/core/HttpRequest.java @@ -119,20 +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() - .connectTimeout(this.timeout, TimeUnit.SECONDS) - .writeTimeout(this.timeout, TimeUnit.SECONDS) - .readTimeout(this.timeout, TimeUnit.SECONDS) - .callTimeout(this.timeout, TimeUnit.SECONDS) + client = clientBuilder .proxy(this.proxy) .build(); From a29e4c9728f164733ffc79aaae0b48fb7b11c1ca Mon Sep 17 00:00:00 2001 From: "david.schrenker" Date: Fri, 5 Mar 2021 10:38:06 -0500 Subject: [PATCH 6/6] updating tests to latest version --- examples/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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' }