null
+ */
void accept(@Nullable T state);
default RetryStrategy retryStrategy() {
return RetryStrategy.THREE_RETRIES;
}
-
+
/**
* Whether the persistentTask is transaction or not. If true the execution
* is wrapped into the default transaction template together with the state update
diff --git a/core/src/main/java/org/sterl/spring/persistent_tasks/api/task/RunningTrigger.java b/core/src/main/java/org/sterl/spring/persistent_tasks/api/task/RunningTrigger.java
new file mode 100644
index 000000000..5c6d2998e
--- /dev/null
+++ b/core/src/main/java/org/sterl/spring/persistent_tasks/api/task/RunningTrigger.java
@@ -0,0 +1,15 @@
+package org.sterl.spring.persistent_tasks.api.task;
+
+import java.io.Serializable;
+
+import org.sterl.spring.persistent_tasks.api.TriggerKey;
+
+import lombok.Data;
+
+@Data
+public class RunningTrigger+ * Note: Failed triggers, which have retries left will be in WAITING state + *
+ * + * @param status optional status to check + * @param key optional key to check + */ + public void assertHasNextTask(TriggerStatus status, TriggerKey key) { + var trigger = runNextTrigger(); + assertThat(trigger).isPresent(); + if (status != null) { + assertThat(trigger.get().status()).isEqualTo(status); + } + if (key != null) assertThat(trigger.get().getKey()).isEqualTo(key); + } +} \ No newline at end of file diff --git a/core/src/test/java/org/sterl/spring/persistent_tasks/trigger/TriggerServiceTest.java b/core/src/test/java/org/sterl/spring/persistent_tasks/trigger/TriggerServiceTest.java index f5822bd1e..3edfd28aa 100644 --- a/core/src/test/java/org/sterl/spring/persistent_tasks/trigger/TriggerServiceTest.java +++ b/core/src/test/java/org/sterl/spring/persistent_tasks/trigger/TriggerServiceTest.java @@ -7,6 +7,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Optional; +import java.util.UUID; import java.util.concurrent.Callable; import java.util.concurrent.Executors; @@ -15,9 +16,12 @@ import org.springframework.test.context.event.ApplicationEvents; import org.sterl.spring.persistent_tasks.AbstractSpringTest; import org.sterl.spring.persistent_tasks.AbstractSpringTest.TaskConfig.Task3; +import org.sterl.spring.persistent_tasks.PersistentTaskService; import org.sterl.spring.persistent_tasks.api.AddTriggerRequest; import org.sterl.spring.persistent_tasks.api.TaskId; -import org.sterl.spring.persistent_tasks.api.TaskId.TaskTriggerBuilder; +import org.sterl.spring.persistent_tasks.api.TaskId.TriggerBuilder; +import org.sterl.spring.persistent_tasks.api.task.exception.CancelTaskException; +import org.sterl.spring.persistent_tasks.api.task.exception.FailTaskNoRetryException; import org.sterl.spring.persistent_tasks.api.TriggerKey; import org.sterl.spring.persistent_tasks.api.TriggerStatus; import org.sterl.spring.persistent_tasks.history.repository.TriggerHistoryLastStateRepository; @@ -32,6 +36,9 @@ class TriggerServiceTest extends AbstractSpringTest { + @Autowired + private PersistentTaskService persistentTaskService; + @Autowired private TriggerService subject; @Autowired @@ -127,7 +134,7 @@ void testCancelTrigger() { @Test void testTriggerSpringSimpleTask() throws Exception { // GIVEN - final var trigger = TaskTriggerBuilder.newTrigger(Task3.NAME).state("trigger3").build(); + final var trigger = TriggerBuilder.newTrigger(Task3.NAME).state("trigger3").build(); // WHEN subject.run(subject.queue(trigger)); @@ -262,9 +269,9 @@ void testTriggerPriority() throws Exception { .toList(); // WHEN - runNextTrigger(); - runNextTrigger(); - runNextTrigger(); + persistentTaskTestService.runNextTrigger(); + persistentTaskTestService.runNextTrigger(); + persistentTaskTestService.runNextTrigger(); // THEN assertThat(historyService.findLastKnownStatus(keys.get(0)).get().getData().getPriority()).isEqualTo(5); @@ -307,8 +314,8 @@ void testOverrideTriggersUsingSameId() throws Exception { .state("paul@sterl.org") // fixed state .build()); - var e1 = runNextTrigger(); - var e2 = runNextTrigger(); + var e1 = persistentTaskTestService.runNextTrigger(); + var e2 = persistentTaskTestService.runNextTrigger(); // THEN asserts.awaitValueOnce("paul@sterl.org"); @@ -331,11 +338,13 @@ void testLockTrigger() throws Exception { // WHEN ArrayList+ * Note: Failed triggers, which have retries left will be in WAITING state + *
+ * + * @param status optional status to check + * @param key optional key to check + */ + public void assertHasNextTask(TriggerStatus status, TriggerKey key) { + var trigger = runNextTrigger(); + assertThat(trigger).isPresent(); + if (status != null) { + assertThat(trigger.get().status()).isEqualTo(status); + } + if (key != null) assertThat(trigger.get().getKey()).isEqualTo(key); + } +} \ No newline at end of file diff --git a/ui/pom.xml b/ui/pom.xml index 4e5b56473..47e5118fd 100644 --- a/ui/pom.xml +++ b/ui/pom.xml @@ -6,7 +6,7 @@