You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2025/06/27 09:30:49 UTC
(camel) 01/01: CAMEL-22189: Polish task to include iteration. Also fix copy/paste mistake.
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 <cl...@gmail.com>
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());