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

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

commit 03b9b061f9926c966280ba08f3c03fecfcea71ef
Author: Claus Ibsen <[email protected]>
AuthorDate: Fri Jun 27 11:30:31 2025 +0200

    CAMEL-22189: Polish task to include iteration. Also fix copy/paste mistake.
---
 .../main/java/org/apache/camel/support/task/BackgroundTask.java   | 5 +++++
 .../main/java/org/apache/camel/support/task/ForegroundTask.java   | 5 +++++
 .../src/main/java/org/apache/camel/support/task/Task.java         | 8 ++++++++
 .../main/java/org/apache/camel/support/task/budget/Budget.java    | 7 +++++++
 .../org/apache/camel/support/task/budget/IterationBudget.java     | 6 ------
 .../camel/support/task/budget/IterationTimeBoundedBudget.java     | 2 +-
 .../org/apache/camel/support/task/budget/TimeBoundedBudget.java   | 7 +++++++
 7 files changed, 33 insertions(+), 7 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 6b8bb6393b4..3df28497529 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
@@ -140,4 +140,9 @@ public class BackgroundTask implements BlockingTask {
     public Duration elapsed() {
         return elapsed;
     }
+
+    @Override
+    public int iteration() {
+        return budget.iteration();
+    }
 }
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 71194ea2589..3fa8f8abecc 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
@@ -151,4 +151,9 @@ public class ForegroundTask implements BlockingTask {
     public Duration elapsed() {
         return elapsed;
     }
+
+    @Override
+    public int iteration() {
+        return budget.iteration();
+    }
 }
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/task/Task.java 
b/core/camel-support/src/main/java/org/apache/camel/support/task/Task.java
index c407bc4accc..e980ac321f9 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/task/Task.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/task/Task.java
@@ -30,4 +30,12 @@ public interface Task {
      * @return The duration to execute the task
      */
     Duration elapsed();
+
+    /**
+     * The current number of iterations (such as when the task is being 
repeated)
+     *
+     * @return the current number of iterations
+     */
+    int iteration();
+
 }
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/task/budget/Budget.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/task/budget/Budget.java
index fb49a5fac6c..1b38048617b 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/task/budget/Budget.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/task/budget/Budget.java
@@ -51,6 +51,13 @@ public interface Budget {
      */
     boolean next();
 
+    /**
+     * The current number of iterations
+     *
+     * @return the current number of iterations
+     */
+    int iteration();
+
     /**
      * The amount of time that has elapsed since the budget was created. This 
can be used to account for the amount of
      * time it took to run a task. The precision should be withing a few 
microseconds/milliseconds due to the start time
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/task/budget/IterationBudget.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/task/budget/IterationBudget.java
index 0d68a6d4ec9..80a69fe5c58 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/task/budget/IterationBudget.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/task/budget/IterationBudget.java
@@ -28,10 +28,4 @@ public interface IterationBudget extends Budget {
      */
     int maxIterations();
 
-    /**
-     * The current number of iterations
-     *
-     * @return the current number of iterations
-     */
-    int iteration();
 }
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/task/budget/IterationTimeBoundedBudget.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/task/budget/IterationTimeBoundedBudget.java
index b38f411a9b4..31f7fb434ff 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/task/budget/IterationTimeBoundedBudget.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/task/budget/IterationTimeBoundedBudget.java
@@ -53,7 +53,7 @@ public class IterationTimeBoundedBudget implements 
IterationBudget, TimeBudget {
 
     @Override
     public int iteration() {
-        return iterationBudget.maxIterations();
+        return iterationBudget.iteration();
     }
 
     @Override
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/task/budget/TimeBoundedBudget.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/task/budget/TimeBoundedBudget.java
index 2c7fba7262c..6606d041a54 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/task/budget/TimeBoundedBudget.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/task/budget/TimeBoundedBudget.java
@@ -30,6 +30,7 @@ public class TimeBoundedBudget implements TimeBudget {
     private final long interval;
     private final long maxDuration;
     private final Instant startTime;
+    private int iterations;
 
     TimeBoundedBudget(long initialDelay, long interval, long maxDuration) {
         this.initialDelay = initialDelay;
@@ -70,9 +71,15 @@ public class TimeBoundedBudget implements TimeBudget {
 
     @Override
     public boolean next() {
+        iterations++;
         return true;
     }
 
+    @Override
+    public int iteration() {
+        return iterations;
+    }
+
     @Override
     public Duration elapsed() {
         return Duration.between(startTime, Instant.now());

Reply via email to