This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 0b4b0a6c655 CAMEL-22189: Polish task to include iteration. Also fix
copy/paste mistake. (#18491)
0b4b0a6c655 is described below
commit 0b4b0a6c655c6dfa89944f2fb506b7041397dcb2
Author: Claus Ibsen <[email protected]>
AuthorDate: Fri Jun 27 11:54:52 2025 +0200
CAMEL-22189: Polish task to include iteration. Also fix copy/paste mistake.
(#18491)
---
.../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());