Skip to content
This repository was archived by the owner on Oct 6, 2025. It is now read-only.

Commit 9ee5213

Browse files
committed
exposed connect/read/... timeout parameters
1 parent c0a81cf commit 9ee5213

3 files changed

Lines changed: 41 additions & 14 deletions

File tree

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/client/FttpClientFactory.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,18 +89,27 @@ public void testConnection()
8989
private final String fttpStudy;
9090
private final String fttpTarget;
9191

92+
private final int connectTimeout;
93+
private final int socketTimeout;
94+
private final int connectionRequestTimeout;
95+
9296
private final String proxySchemeHostPort;
9397
private final String proxyUsername;
9498
private final String proxyPassword;
9599

96-
public FttpClientFactory(Path trustStorePath, Path certificatePath, Path privateKeyPath,
97-
String fttpBasicAuthUsername, String fttpBasicAuthPassword, String fttpServerBase, String fttpApiKey,
98-
String fttpStudy, String fttpTarget, String proxySchemeHostPort, String proxyUsername, String proxyPassword)
100+
public FttpClientFactory(Path trustStorePath, Path certificatePath, Path privateKeyPath, int connectTimeout,
101+
int socketTimeout, int connectionRequestTimeout, String fttpBasicAuthUsername, String fttpBasicAuthPassword,
102+
String fttpServerBase, String fttpApiKey, String fttpStudy, String fttpTarget, String proxySchemeHostPort,
103+
String proxyUsername, String proxyPassword)
99104
{
100105
this.trustStorePath = trustStorePath;
101106
this.certificatePath = certificatePath;
102107
this.privateKeyPath = privateKeyPath;
103108

109+
this.connectTimeout = connectTimeout;
110+
this.socketTimeout = socketTimeout;
111+
this.connectionRequestTimeout = connectionRequestTimeout;
112+
104113
this.fttpBasicAuthUsername = fttpBasicAuthUsername;
105114
this.fttpBasicAuthPassword = fttpBasicAuthPassword;
106115

@@ -155,8 +164,9 @@ protected FttpClient createFttpClient()
155164
logger.debug("Creating key-store from {} and {}", certificatePath.toString(), privateKeyPath.toString());
156165
KeyStore keyStore = readKeyStore(certificatePath, privateKeyPath, keyStorePassword);
157166

158-
return new FttpClientImpl(trustStore, keyStore, keyStorePassword, fttpBasicAuthUsername, fttpBasicAuthPassword,
159-
fttpServerBase, fttpApiKey, fttpStudy, fttpTarget, proxySchemeHostPort, proxyUsername, proxyPassword);
167+
return new FttpClientImpl(trustStore, keyStore, keyStorePassword, connectTimeout, socketTimeout,
168+
connectionRequestTimeout, fttpBasicAuthUsername, fttpBasicAuthPassword, fttpServerBase, fttpApiKey,
169+
fttpStudy, fttpTarget, proxySchemeHostPort, proxyUsername, proxyPassword);
160170
}
161171

162172
private KeyStore readTrustStore(Path trustPath)

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/client/FttpClientImpl.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,14 @@ public class FttpClientImpl implements FttpClient, InitializingBean
4949
private final String proxyUsername;
5050
private final String proxyPassword;
5151

52-
public FttpClientImpl(KeyStore trustStore, KeyStore keyStore, char[] keyStorePassword, String fttpBasicAuthUsername,
53-
String fttpBasicAuthPassword, String fttpServerBase, String fttpApiKey, String fttpStudy, String fttpTarget,
52+
public FttpClientImpl(KeyStore trustStore, KeyStore keyStore, char[] keyStorePassword, int connectTimeout,
53+
int socketTimeout, int connectionRequestTimeout, String fttpBasicAuthUsername, String fttpBasicAuthPassword,
54+
String fttpServerBase, String fttpApiKey, String fttpStudy, String fttpTarget,
55+
5456
String proxySchemeHostPort, String proxyUsername, String proxyPassword)
5557
{
56-
this.proxySchemeHostPort = proxySchemeHostPort;
57-
this.proxyUsername = proxyUsername;
58-
this.proxyPassword = proxyPassword;
59-
60-
clientFactory = createClientFactory(trustStore, keyStore, keyStorePassword);
58+
clientFactory = createClientFactory(trustStore, keyStore, keyStorePassword, connectTimeout, socketTimeout,
59+
connectionRequestTimeout);
6160

6261
this.fttpServerBase = fttpServerBase;
6362
this.fttpBasicAuthUsername = fttpBasicAuthUsername;
@@ -66,10 +65,14 @@ public FttpClientImpl(KeyStore trustStore, KeyStore keyStore, char[] keyStorePas
6665
this.fttpApiKey = fttpApiKey;
6766
this.fttpStudy = fttpStudy;
6867
this.fttpTarget = fttpTarget;
68+
69+
this.proxySchemeHostPort = proxySchemeHostPort;
70+
this.proxyUsername = proxyUsername;
71+
this.proxyPassword = proxyPassword;
6972
}
7073

7174
protected ApacheRestfulClientFactoryWithTlsConfig createClientFactory(KeyStore trustStore, KeyStore keyStore,
72-
char[] keyStorePassword)
75+
char[] keyStorePassword, int connectTimeout, int socketTimeout, int connectionRequestTimeout)
7376
{
7477
Objects.requireNonNull(trustStore, "trustStore");
7578
Objects.requireNonNull(keyStore, "keyStore");
@@ -81,6 +84,10 @@ protected ApacheRestfulClientFactoryWithTlsConfig createClientFactory(KeyStore t
8184
hapiClientFactory.setServerValidationMode(ServerValidationModeEnum.NEVER);
8285
configureProxy(hapiClientFactory);
8386

87+
hapiClientFactory.setConnectTimeout(connectTimeout);
88+
hapiClientFactory.setSocketTimeout(socketTimeout);
89+
hapiClientFactory.setConnectionRequestTimeout(connectionRequestTimeout);
90+
8491
fhirContext.setRestfulClientFactory(hapiClientFactory);
8592
return hapiClientFactory;
8693
}

codex-process-data-transfer/src/main/java/de/netzwerk_universitaetsmedizin/codex/processes/data_transfer/client/HapiFhirClientFactory.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,16 @@ public class HapiFhirClientFactory
6161
* may be <code>null</code>
6262
* @param bearerToken
6363
* may be <code>null</code>
64+
* @param connectTimeout
65+
* >= -1, -1: system default, 0: infinity, >0: timeout in ms
66+
* @param socketTimeout
67+
* >= -1, -1: system default, 0: infinity, >0: timeout in ms
68+
* @param connectionRequestTimeout
69+
* >= -1, -1: system default, 0: infinity, >0: timeout in ms
6470
*/
6571
public HapiFhirClientFactory(FhirContext fhirContext, String serverBase, String basicAuthUsername,
66-
String basicAuthPassword, String bearerToken)
72+
String basicAuthPassword, String bearerToken, int connectTimeout, int socketTimeout,
73+
int connectionRequestTimeout)
6774
{
6875
if (fhirContext != null)
6976
this.fhirContext = fhirContext;
@@ -79,6 +86,9 @@ public HapiFhirClientFactory(FhirContext fhirContext, String serverBase, String
7986
{
8087
clientFactory = new ApacheRestfulClientFactory(this.fhirContext);
8188
clientFactory.setServerValidationMode(ServerValidationModeEnum.NEVER);
89+
clientFactory.setConnectTimeout(connectTimeout);
90+
clientFactory.setSocketTimeout(socketTimeout);
91+
clientFactory.setConnectionRequestTimeout(connectionRequestTimeout);
8292
}
8393
else
8494
clientFactory = null;

0 commit comments

Comments
 (0)