You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2022/12/01 07:08:24 UTC

[camel] 02/03: default implementation for run(Predicate, payload) in BlockingTask

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

orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit a5764537c61506759cf2a8d578714b0029e61f96
Author: Michael Lück <gi...@lueckonline.net>
AuthorDate: Mon Nov 28 20:00:29 2022 +0100

    default implementation for run(Predicate, payload) in BlockingTask
---
 .../apache/camel/support/task/BackgroundTask.java  |  5 ----
 .../apache/camel/support/task/BlockingTask.java    |  4 ++-
 .../apache/camel/support/task/ForegroundTask.java  | 30 ----------------------
 3 files changed, 3 insertions(+), 36 deletions(-)

diff --git a/core/camel-support/src/main/java/org/apache/camel/support/task/BackgroundTask.java b/core/camel-support/src/main/java/org/apache/camel/support/task/BackgroundTask.java
index c7e63fb50e9..035e795b422 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/task/BackgroundTask.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/task/BackgroundTask.java
@@ -105,11 +105,6 @@ public class BackgroundTask implements BlockingTask {
         }
     }
 
-    @Override
-    public <T> boolean run(Predicate<T> predicate, T payload) {
-        return this.run(() -> predicate.test(payload));
-    }
-
     @Override
     public boolean run(BooleanSupplier supplier) {
         final CountDownLatch latch = new CountDownLatch(1);
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/task/BlockingTask.java b/core/camel-support/src/main/java/org/apache/camel/support/task/BlockingTask.java
index a7e93e1d572..757a7bcea20 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/task/BlockingTask.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/task/BlockingTask.java
@@ -36,7 +36,9 @@ public interface BlockingTask extends Task {
      * @return           true if the task has completed successfully or false if: 1) the budget is exhausted or 2) the
      *                   task was interrupted.
      */
-    <T> boolean run(Predicate<T> predicate, T payload);
+    default <T> boolean run(Predicate<T> predicate, T payload) {
+    	return this.run(() -> predicate.test(payload));
+    }
 
     /**
      * Run the task
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/task/ForegroundTask.java b/core/camel-support/src/main/java/org/apache/camel/support/task/ForegroundTask.java
index deefe7e8d78..e5e32df2242 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/task/ForegroundTask.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/task/ForegroundTask.java
@@ -80,36 +80,6 @@ public class ForegroundTask implements BlockingTask {
         this.name = name;
     }
 
-    @Override
-    public <T> boolean run(Predicate<T> predicate, T payload) {
-        boolean completed = false;
-        try {
-            if (budget.initialDelay() > 0) {
-                Thread.sleep(budget.initialDelay());
-            }
-
-            while (budget.next()) {
-                if (predicate.test(payload)) {
-                    LOG.debug("Task {} is complete after {} iterations and it is ready to continue",
-                            name, budget.iteration());
-                    completed = true;
-                    break;
-                }
-
-                if (budget.canContinue()) {
-                    Thread.sleep(budget.interval());
-                }
-            }
-        } catch (InterruptedException e) {
-            LOG.warn("Interrupted {} while waiting for the repeatable task to finish", name);
-            Thread.currentThread().interrupt();
-        } finally {
-            elapsed = budget.elapsed();
-        }
-
-        return completed;
-    }
-
     @Override
     public boolean run(BooleanSupplier supplier) {
         boolean completed = false;