Skip to content

Commit 3d521a9

Browse files
authored
Merge pull request #770 from marklogic/feature/23174-hide-retry
MLE-23174 Hiding retry capability for now
2 parents 397ea14 + 3a28188 commit 3d521a9

File tree

5 files changed

+20
-55
lines changed

5 files changed

+20
-55
lines changed

ml-app-deployer/src/main/java/com/marklogic/rest/util/RestConfig.java

Lines changed: 8 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.marklogic.client.ext.modulesloader.ssl.SimpleX509TrustManager;
1010
import com.marklogic.client.ext.ssl.SslConfig;
1111
import com.marklogic.client.ext.ssl.SslUtil;
12+
import okhttp3.OkHttpClient;
1213
import org.springframework.util.StringUtils;
1314

1415
import javax.net.ssl.SSLContext;
@@ -50,11 +51,9 @@ public class RestConfig {
5051
private String trustStoreType;
5152
private String trustStoreAlgorithm;
5253

53-
private boolean retryOnConnectionFailure = false;
54-
private int maxRetries = 3;
55-
private long initialRetryDelayMs = 1000;
56-
private double retryBackoffMultiplier = 2;
57-
private long maxRetryDelayMs = 10000;
54+
// Added in 6.0.0 as an extension mechanism until this is available
55+
// in DatabaseClientBuilder in the MarkLogic Java Client.
56+
private DatabaseClientFactory.ClientConfigurator<OkHttpClient.Builder> clientConfigurator;
5857

5958
public RestConfig() {
6059
}
@@ -475,44 +474,11 @@ public void setOauthToken(String oauthToken) {
475474
this.oauthToken = oauthToken;
476475
}
477476

478-
479-
public boolean isRetryOnConnectionFailure() {
480-
return retryOnConnectionFailure;
481-
}
482-
483-
public void setRetryOnConnectionFailure(boolean retryOnConnectionFailure) {
484-
this.retryOnConnectionFailure = retryOnConnectionFailure;
485-
}
486-
487-
public int getMaxRetries() {
488-
return maxRetries;
489-
}
490-
491-
public void setMaxRetries(int maxRetries) {
492-
this.maxRetries = maxRetries;
493-
}
494-
495-
public long getInitialRetryDelayMs() {
496-
return initialRetryDelayMs;
497-
}
498-
499-
public void setInitialRetryDelayMs(long initialRetryDelayMs) {
500-
this.initialRetryDelayMs = initialRetryDelayMs;
501-
}
502-
503-
public double getRetryBackoffMultiplier() {
504-
return retryBackoffMultiplier;
505-
}
506-
507-
public void setRetryBackoffMultiplier(double retryBackoffMultiplier) {
508-
this.retryBackoffMultiplier = retryBackoffMultiplier;
509-
}
510-
511-
public long getMaxRetryDelayMs() {
512-
return maxRetryDelayMs;
477+
protected DatabaseClientFactory.ClientConfigurator<OkHttpClient.Builder> getClientConfigurator() {
478+
return clientConfigurator;
513479
}
514480

515-
public void setMaxRetryDelayMs(long maxRetryDelayMs) {
516-
this.maxRetryDelayMs = maxRetryDelayMs;
481+
protected void setClientConfigurator(DatabaseClientFactory.ClientConfigurator<OkHttpClient.Builder> clientConfigurator) {
482+
this.clientConfigurator = clientConfigurator;
517483
}
518484
}

ml-app-deployer/src/main/java/com/marklogic/rest/util/RestTemplateUtil.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,8 @@ public static RestTemplate newRestTemplate(RestConfig config) {
2929
OkHttpClient.Builder builder = OkHttpClientBuilderFactory
3030
.newOkHttpClientBuilder(bean.getHost(), bean.getSecurityContext());
3131

32-
if (config.isRetryOnConnectionFailure()) {
33-
RetryInterceptor retryInterceptor = new RetryInterceptor(
34-
config.getMaxRetries(),
35-
config.getInitialRetryDelayMs(),
36-
config.getRetryBackoffMultiplier(),
37-
config.getMaxRetryDelayMs()
38-
);
39-
builder = builder.addInterceptor(retryInterceptor);
32+
if (config.getClientConfigurator() != null) {
33+
config.getClientConfigurator().configure(builder);
4034
}
4135

4236
client = builder.build();

ml-app-deployer/src/test/java/com/marklogic/mgmt/AbstractMgmtTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.marklogic.mgmt.admin.AdminConfig;
1010
import com.marklogic.mgmt.admin.AdminManager;
1111
import com.marklogic.mgmt.resource.clusters.ClusterManager;
12+
import com.marklogic.rest.util.TestConfig;
1213
import org.junit.jupiter.api.BeforeEach;
1314
import org.junit.jupiter.api.extension.ExtendWith;
1415
import org.springframework.beans.factory.annotation.Autowired;

ml-app-deployer/src/main/java/com/marklogic/rest/util/RetryInterceptor.java renamed to ml-app-deployer/src/test/java/com/marklogic/rest/util/RetryInterceptor.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
/*
2+
* Copyright (c) 2015-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
3+
*/
14
package com.marklogic.rest.util;
25

36
import com.marklogic.client.ext.helper.LoggingObject;

ml-app-deployer/src/test/java/com/marklogic/mgmt/TestConfig.java renamed to ml-app-deployer/src/test/java/com/marklogic/rest/util/TestConfig.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
/*
22
* Copyright (c) 2015-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.
33
*/
4-
package com.marklogic.mgmt;
4+
package com.marklogic.rest.util;
55

6+
import com.marklogic.mgmt.DefaultManageConfigFactory;
7+
import com.marklogic.mgmt.ManageConfig;
68
import com.marklogic.mgmt.admin.AdminConfig;
79
import com.marklogic.mgmt.admin.DefaultAdminConfigFactory;
810
import com.marklogic.mgmt.util.SimplePropertySource;
@@ -72,10 +74,9 @@ public ManageConfig manageConfig() {
7274
// Clean the JSON by default
7375
config.setCleanJsonPayloads(true);
7476

75-
config.setRetryOnConnectionFailure(true);
76-
config.setRetryBackoffMultiplier(2);
77-
config.setMaxRetries(3);
78-
config.setMaxRetryDelayMs(5000);
77+
config.setClientConfigurator(builder ->
78+
builder.addInterceptor(new com.marklogic.rest.util.RetryInterceptor(3, 1000, 2, 5000)));
79+
7980
return config;
8081
}
8182

0 commit comments

Comments
 (0)