summaryrefslogtreecommitdiffstats
path: root/common/src/main/java/org/onap
diff options
context:
space:
mode:
authorSteve Smokowski <ss835w@att.com>2019-06-27 18:23:42 +0000
committerGerrit Code Review <gerrit@onap.org>2019-06-27 18:23:42 +0000
commit205f358c6e06726de738b0c7706ec1c3c94afeaa (patch)
treeb57932da8fb3d00449c015c977ab3e06382ddef4 /common/src/main/java/org/onap
parent53c9acdac34c8ae726d61d22b88fbe711597ea37 (diff)
parent577bd39ac9e9495b0c6a38e6f7c567acfcba1c42 (diff)
Merge "Update failsafe dependency to 2.0.1"
Diffstat (limited to 'common/src/main/java/org/onap')
-rw-r--r--common/src/main/java/org/onap/so/client/RestClient.java16
-rw-r--r--common/src/main/java/org/onap/so/client/RestRequest.java6
-rw-r--r--common/src/main/java/org/onap/so/rest/exceptions/ExhaustedRetriesException.java19
3 files changed, 29 insertions, 12 deletions
diff --git a/common/src/main/java/org/onap/so/client/RestClient.java b/common/src/main/java/org/onap/so/client/RestClient.java
index 0b3aa651a0..d3a4d444f7 100644
--- a/common/src/main/java/org/onap/so/client/RestClient.java
+++ b/common/src/main/java/org/onap/so/client/RestClient.java
@@ -26,6 +26,7 @@ import java.net.SocketTimeoutException;
import java.net.URI;
import java.net.URL;
import java.security.GeneralSecurityException;
+import java.time.Duration;
import java.util.ArrayList;
import java.util.Base64;
import java.util.HashMap;
@@ -33,7 +34,6 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Optional;
-import java.util.concurrent.TimeUnit;
import java.util.function.Predicate;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
@@ -275,22 +275,20 @@ public abstract class RestClient {
}
public Response method(String method, Object entity) {
- RetryPolicy policy = new RetryPolicy();
List<Predicate<Throwable>> items = retryOn();
Predicate<Throwable> pred = items.stream().reduce(Predicate::or).orElse(x -> false);
- policy.retryOn(error -> pred.test(error));
+ RetryPolicy<Object> policy =
+ new RetryPolicy<>().handleIf(pred).withDelay(Duration.ofMillis(this.props.getDelayBetweenRetries()))
+ .withMaxRetries(this.props.getRetries());
- policy.withDelay(this.props.getDelayBetweenRetries(), TimeUnit.MILLISECONDS)
- .withMaxRetries(this.props.getRetries());
-
- return Failsafe.with(policy).get(buildRequest(method, entity));
+ return Failsafe.with(policy).get(() -> buildRequest(method, entity));
}
- protected RestRequest buildRequest(String method, Object entity) {
- return new RestRequest(this, method, entity);
+ protected Response buildRequest(String method, Object entity) throws Exception {
+ return new RestRequest(this, method, entity).get();
}
private <T> Optional<T> format(Response response, Class<T> resultClass) {
diff --git a/common/src/main/java/org/onap/so/client/RestRequest.java b/common/src/main/java/org/onap/so/client/RestRequest.java
index 9d2fa42d00..9e6e818171 100644
--- a/common/src/main/java/org/onap/so/client/RestRequest.java
+++ b/common/src/main/java/org/onap/so/client/RestRequest.java
@@ -23,15 +23,15 @@
package org.onap.so.client;
import java.util.Optional;
-import java.util.concurrent.Callable;
import javax.ws.rs.HttpMethod;
import javax.ws.rs.NotFoundException;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import net.jodah.failsafe.function.CheckedSupplier;
-public class RestRequest implements Callable<Response> {
+public class RestRequest implements CheckedSupplier<Response> {
private static final Logger logger = LoggerFactory.getLogger(RestRequest.class);
@@ -46,7 +46,7 @@ public class RestRequest implements Callable<Response> {
}
@Override
- public Response call() throws Exception {
+ public Response get() throws Exception {
final Response response;
if ("GET".equals(method)) {
response = this.client.getBuilder().accept(this.client.getAccept()).get();
diff --git a/common/src/main/java/org/onap/so/rest/exceptions/ExhaustedRetriesException.java b/common/src/main/java/org/onap/so/rest/exceptions/ExhaustedRetriesException.java
new file mode 100644
index 0000000000..6c91516b84
--- /dev/null
+++ b/common/src/main/java/org/onap/so/rest/exceptions/ExhaustedRetriesException.java
@@ -0,0 +1,19 @@
+package org.onap.so.rest.exceptions;
+
+public class ExhaustedRetriesException extends RuntimeException {
+
+ private static final long serialVersionUID = -8303091412739222943L;
+
+ public ExhaustedRetriesException(String s) {
+ super(s);
+ }
+
+ public ExhaustedRetriesException(Throwable t) {
+ super(t);
+ }
+
+ public ExhaustedRetriesException(String s, Throwable t) {
+ super(s, t);
+ }
+
+}