From a30b3dc7e4a08f6af663fca0b805ce6be05f2e1b Mon Sep 17 00:00:00 2001 From: Jan Stadler Date: Wed, 12 Dec 2018 20:05:57 +0100 Subject: [PATCH] Support for setting connection and read timeouts in milliseconds --- src/main/java/com/ciscospark/Client.java | 17 +++++++++++++++++ src/main/java/com/ciscospark/Spark.java | 15 ++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ciscospark/Client.java b/src/main/java/com/ciscospark/Client.java index 225ef1f..e78cdd7 100644 --- a/src/main/java/com/ciscospark/Client.java +++ b/src/main/java/com/ciscospark/Client.java @@ -35,8 +35,14 @@ class Client { final String clientId; final String clientSecret; final Logger logger; + final private Integer connectTimeout; + final private Integer readTimeout; Client(URI baseUri, String authCode, URI redirectUri, String accessToken, String refreshToken, String clientId, String clientSecret, Logger logger) { + this(baseUri, authCode, redirectUri, accessToken, refreshToken, clientId, clientSecret, logger, null, null); + } + + Client(URI baseUri, String authCode, URI redirectUri, String accessToken, String refreshToken, String clientId, String clientSecret, Logger logger, Integer connectTimeout, Integer readTimeout) { this.authCode = authCode; this.redirectUri = redirectUri; this.baseUri = baseUri; @@ -45,6 +51,8 @@ class Client { this.clientId = clientId; this.clientSecret = clientSecret; this.logger = logger; + this.connectTimeout = connectTimeout; + this.readTimeout = readTimeout; } T post(Class clazz, String path, T body) { @@ -320,6 +328,15 @@ private HttpURLConnection getConnection(URL url) throws IOException { connection.setRequestProperty("Authorization", authorization); } connection.setRequestProperty(TRACKING_ID, UUID.randomUUID().toString()); + + if(connectTimeout != null) { + connection.setConnectTimeout(connectTimeout); + } + + if(readTimeout != null) { + connection.setReadTimeout(readTimeout); + } + return connection; } diff --git a/src/main/java/com/ciscospark/Spark.java b/src/main/java/com/ciscospark/Spark.java index cd69b16..5ac0c97 100644 --- a/src/main/java/com/ciscospark/Spark.java +++ b/src/main/java/com/ciscospark/Spark.java @@ -31,12 +31,25 @@ public static class Builder { private String clientSecret; private Logger logger; private URI baseUrl = URI.create("https://api.ciscospark.com/v1"); + private Integer connectTimeout; + private Integer readTimeout; + public Builder baseUrl(URI uri) { this.baseUrl = uri; return this; } + public Builder connectTimeout(Integer connectTimeout) { + this.connectTimeout = connectTimeout; + return this; + } + + public Builder readTimeout(Integer readTimeout) { + this.readTimeout = readTimeout; + return this; + } + public Builder redirectUri(URI uri) { this.redirectUri = uri; return this; @@ -73,7 +86,7 @@ public Builder logger(Logger logger) { } public Spark build() { - return new SparkImpl(new Client(baseUrl, authCode, redirectUri, accessToken, refreshToken, clientId, clientSecret, logger)); + return new SparkImpl(new Client(baseUrl, authCode, redirectUri, accessToken, refreshToken, clientId, clientSecret, logger, connectTimeout, readTimeout)); } }