This is an automated email from the ASF dual-hosted git repository.

arnold pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/develop by this push:
     new b691ec4b1 FINERACT-1724 read timeout for fineract client is added.
b691ec4b1 is described below

commit b691ec4b1d18bf7fb8d7061d3db4d7ae6513c6aa
Author: Peter Bagrij <[email protected]>
AuthorDate: Wed Jul 5 16:12:07 2023 +0200

    FINERACT-1724 read timeout for fineract client is added.
---
 .../org/apache/fineract/client/util/FineractClient.java  |  6 ++++++
 .../integrationtests/client/IntegrationTest.java         | 16 ++++++++++++++--
 .../integrationtests/client/ReportExportTest.java        |  7 +++++++
 3 files changed, 27 insertions(+), 2 deletions(-)

diff --git 
a/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java
 
b/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java
index 9a14a4343..9df4eced1 100644
--- 
a/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java
+++ 
b/fineract-client/src/main/java/org/apache/fineract/client/util/FineractClient.java
@@ -23,6 +23,7 @@ import java.security.NoSuchAlgorithmException;
 import java.security.SecureRandom;
 import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
+import java.time.Duration;
 import javax.net.ssl.HostnameVerifier;
 import javax.net.ssl.SSLContext;
 import javax.net.ssl.SSLSocketFactory;
@@ -471,6 +472,11 @@ public final class FineractClient {
             return this;
         }
 
+        public Builder readTimeout(Duration timeout) {
+            okBuilder.readTimeout(timeout);
+            return this;
+        }
+
         /**
          * Skip Fineract API host SSL certificate verification. DO NOT USE 
THIS when invoking a production server's API!
          * This is intended for https://localhost:8443/ testing of development 
servers with self-signed certificates,
diff --git 
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/client/IntegrationTest.java
 
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/client/IntegrationTest.java
index a60c30dc5..f3bee6ac4 100644
--- 
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/client/IntegrationTest.java
+++ 
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/client/IntegrationTest.java
@@ -64,12 +64,24 @@ public abstract class IntegrationTest {
         if (fineract == null) {
             String url = System.getProperty("fineract.it.url", 
"https://localhost:8443/fineract-provider/api/";);
             // insecure(true) should *ONLY* ever be used for 
https://localhost:8443, NOT in real clients!!
-            fineract = 
FineractClient.builder().insecure(true).baseURL(url).tenant("default").basicAuth("mifos",
 "password")
-                    .logging(Level.NONE).build();
+            FineractClient.Builder builder = 
FineractClient.builder().insecure(true).baseURL(url).tenant("default")
+                    .basicAuth("mifos", "password").logging(Level.NONE);
+            customizeFineractClient(builder);
+            fineract = builder.build();
         }
         return fineract;
     }
 
+    /**
+     * Callback to customize FineractClient
+     *
+     * @param builder
+     *            FineractClient.Builder.
+     */
+    protected void customizeFineractClient(FineractClient.Builder builder) {
+
+    }
+
     /**
      * See {@link FineractClient#DATE_FORMAT}.
      */
diff --git 
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/client/ReportExportTest.java
 
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/client/ReportExportTest.java
index 3de4ddbc3..f01ce7868 100644
--- 
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/client/ReportExportTest.java
+++ 
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/client/ReportExportTest.java
@@ -19,9 +19,11 @@
 package org.apache.fineract.integrationtests.client;
 
 import java.io.IOException;
+import java.time.Duration;
 import java.util.Map;
 import okhttp3.MediaType;
 import okhttp3.ResponseBody;
+import org.apache.fineract.client.util.FineractClient;
 import org.apache.fineract.integrationtests.CIOnly;
 import org.apache.fineract.integrationtests.common.Utils;
 import org.junit.jupiter.api.BeforeEach;
@@ -35,6 +37,11 @@ import retrofit2.Response;
  */
 public class ReportExportTest extends IntegrationTest {
 
+    @Override
+    protected void customizeFineractClient(FineractClient.Builder builder) {
+        builder.readTimeout(Duration.ofSeconds(30));
+    }
+
     @BeforeEach
     public void setup() {
         Utils.initializeRESTAssured();

Reply via email to