From f3c6d64da9ee68e34a2e761abcb8a805df5b4e9b Mon Sep 17 00:00:00 2001 From: Sascha Doemer Date: Wed, 9 Mar 2022 17:15:31 +0100 Subject: [PATCH] Adapt interface. Add check to wait only if the token was not cancelled. --- .../api/cancellation/CancellationToken.java | 4 ++-- .../api/cancellation/DefaultCancellationToken.java | 14 ++++++++------ .../impl/messaging/rest/MessageFetcher.java | 4 ++-- .../rest/CancellationTokenPollingTest.java | 4 ++-- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/agrirouter-sdk-java-api/src/main/java/com/dke/data/agrirouter/api/cancellation/CancellationToken.java b/agrirouter-sdk-java-api/src/main/java/com/dke/data/agrirouter/api/cancellation/CancellationToken.java index 9b990849..b0234e7e 100644 --- a/agrirouter-sdk-java-api/src/main/java/com/dke/data/agrirouter/api/cancellation/CancellationToken.java +++ b/agrirouter-sdk-java-api/src/main/java/com/dke/data/agrirouter/api/cancellation/CancellationToken.java @@ -14,8 +14,8 @@ public interface CancellationToken { * Will be called if one step during the whole polling mechanism is done and the next iteration * will start afterwards. */ - void step(); + void nextStep(); /** Will wait a dedicated amount of time before starting the next step. */ - void waitBeforeStartingNextStep(); + void waitIfNotCancelled(); } diff --git a/agrirouter-sdk-java-api/src/main/java/com/dke/data/agrirouter/api/cancellation/DefaultCancellationToken.java b/agrirouter-sdk-java-api/src/main/java/com/dke/data/agrirouter/api/cancellation/DefaultCancellationToken.java index a2077565..73dd5da0 100644 --- a/agrirouter-sdk-java-api/src/main/java/com/dke/data/agrirouter/api/cancellation/DefaultCancellationToken.java +++ b/agrirouter-sdk-java-api/src/main/java/com/dke/data/agrirouter/api/cancellation/DefaultCancellationToken.java @@ -21,16 +21,18 @@ public boolean isNotCancelled() { } @Override - public void step() { + public void nextStep() { nrOfTries++; } @Override - public void waitBeforeStartingNextStep() { - try { - Thread.sleep(timeToWait); - } catch (InterruptedException nop) { - wasInterrupted = true; + public void waitIfNotCancelled() { + if (isNotCancelled()) { + try { + Thread.sleep(timeToWait); + } catch (InterruptedException nop) { + wasInterrupted = true; + } } } } diff --git a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageFetcher.java b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageFetcher.java index 8cbcea4a..11512e3d 100644 --- a/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageFetcher.java +++ b/agrirouter-sdk-java-impl/src/main/java/com/dke/data/agrirouter/impl/messaging/rest/MessageFetcher.java @@ -53,8 +53,8 @@ default Optional poll( if (!StringUtils.equalsIgnoreCase(entityContent, EMPTY_CONTENT)) { return Optional.of(entityContent); } - cancellationToken.step(); - cancellationToken.waitBeforeStartingNextStep(); + cancellationToken.nextStep(); + cancellationToken.waitIfNotCancelled(); } return Optional.empty(); } diff --git a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/CancellationTokenPollingTest.java b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/CancellationTokenPollingTest.java index aec60d98..9029826f 100644 --- a/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/CancellationTokenPollingTest.java +++ b/agrirouter-sdk-java-tests/src/test/java/com/dke/data/agrirouter/test/messaging/rest/CancellationTokenPollingTest.java @@ -82,12 +82,12 @@ public boolean isNotCancelled() { } @Override - public void step() { + public void nextStep() { // NOP } @Override - public void waitBeforeStartingNextStep() { + public void waitIfNotCancelled() { // NOP } });