From d29ccbef7960155d0c03adb07b62f75f8e650cef Mon Sep 17 00:00:00 2001 From: "Brian M. Long" Date: Thu, 29 Jun 2023 10:31:42 -0400 Subject: [PATCH] added connect/read timeout configurability --- src/main/java/com/inteligr8/rs/Client.java | 7 +++++++ .../java/com/inteligr8/rs/ClientConfiguration.java | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/main/java/com/inteligr8/rs/Client.java b/src/main/java/com/inteligr8/rs/Client.java index 2da7a6e..b8507d2 100644 --- a/src/main/java/com/inteligr8/rs/Client.java +++ b/src/main/java/com/inteligr8/rs/Client.java @@ -14,6 +14,8 @@ */ package com.inteligr8.rs; +import java.util.concurrent.TimeUnit; + import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.WebTarget; @@ -82,6 +84,11 @@ public abstract class Client { ClientBuilder clientBuilder = ClientBuilder.newBuilder() .register(provider) .register(new LoggingFilter()); + + if (this.getConfig().getConnectTimeoutInMillis() != null) + clientBuilder.connectTimeout(this.getConfig().getConnectTimeoutInMillis(), TimeUnit.MILLISECONDS); + if (this.getConfig().getResponseTimeoutInMillis() != null) + clientBuilder.readTimeout(this.getConfig().getResponseTimeoutInMillis(), TimeUnit.MILLISECONDS); if (authFilter == null) authFilter = this.getConfig().createAuthorizationFilter(); diff --git a/src/main/java/com/inteligr8/rs/ClientConfiguration.java b/src/main/java/com/inteligr8/rs/ClientConfiguration.java index 48834b0..98b2fc2 100644 --- a/src/main/java/com/inteligr8/rs/ClientConfiguration.java +++ b/src/main/java/com/inteligr8/rs/ClientConfiguration.java @@ -119,6 +119,16 @@ public interface ClientConfiguration { } + + default Integer getConnectTimeoutInMillis() { + return null; + } + + default Integer getResponseTimeoutInMillis() { + return null; + } + + /** * @return true to enable Jackson UNWRAP_ROOT_VALUE feature; false otherwise.