From fe2acdee4d71988975b71e48485917ae99eecf9d Mon Sep 17 00:00:00 2001 From: Matheus Cruz Date: Mon, 31 Aug 2026 15:04:45 -0300 Subject: [PATCH 1/2] Introduce EventType enum Signed-off-by: Matheus Cruz --- .../impl/lifecycle/EventType.java | 45 +++++++++++++++++++ .../impl/lifecycle/TaskCancelledEvent.java | 5 +++ .../impl/lifecycle/TaskCompletedEvent.java | 5 +++ .../impl/lifecycle/TaskFailedEvent.java | 5 +++ .../impl/lifecycle/TaskResumedEvent.java | 5 +++ .../impl/lifecycle/TaskRetriedEvent.java | 5 +++ .../impl/lifecycle/TaskStartedEvent.java | 5 +++ .../impl/lifecycle/TaskSuspendedEvent.java | 5 +++ .../lifecycle/WorkflowCancelledEvent.java | 5 +++ .../lifecycle/WorkflowCompletedEvent.java | 5 +++ .../impl/lifecycle/WorkflowEvent.java | 2 + .../impl/lifecycle/WorkflowFailedEvent.java | 5 +++ .../impl/lifecycle/WorkflowResumedEvent.java | 5 +++ .../impl/lifecycle/WorkflowStartedEvent.java | 5 +++ .../impl/lifecycle/WorkflowStatusEvent.java | 5 +++ .../lifecycle/WorkflowSuspendedEvent.java | 5 +++ 16 files changed, 117 insertions(+) create mode 100644 impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/EventType.java diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/EventType.java b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/EventType.java new file mode 100644 index 000000000..97e5af14b --- /dev/null +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/EventType.java @@ -0,0 +1,45 @@ +/* + * Copyright 2020-Present The Serverless Workflow Specification Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.serverlessworkflow.impl.lifecycle; + +import io.serverlessworkflow.impl.LifecycleEvents; + +public enum EventType { + TASK_STARTED(LifecycleEvents.TASK_STARTED), + TASK_COMPLETED(LifecycleEvents.TASK_COMPLETED), + TASK_SUSPENDED(LifecycleEvents.TASK_SUSPENDED), + TASK_RESUMED(LifecycleEvents.TASK_RESUMED), + TASK_FAULTED(LifecycleEvents.TASK_FAULTED), + TASK_CANCELLED(LifecycleEvents.TASK_CANCELLED), + TASK_RETRIED(LifecycleEvents.TASK_RETRIED), + WORKFLOW_STARTED(LifecycleEvents.WORKFLOW_STARTED), + WORKFLOW_COMPLETED(LifecycleEvents.WORKFLOW_COMPLETED), + WORKFLOW_SUSPENDED(LifecycleEvents.WORKFLOW_SUSPENDED), + WORKFLOW_RESUMED(LifecycleEvents.WORKFLOW_RESUMED), + WORKFLOW_FAULTED(LifecycleEvents.WORKFLOW_FAULTED), + WORKFLOW_CANCELLED(LifecycleEvents.WORKFLOW_CANCELLED), + WORKFLOW_STATUS_CHANGED(LifecycleEvents.WORKFLOW_STATUS_CHANGED); + + private final String event; + + public String getEvent() { + return this.event; + } + + EventType(String event) { + this.event = event; + } +} diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskCancelledEvent.java b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskCancelledEvent.java index fe3431bb7..7bc143bc7 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskCancelledEvent.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskCancelledEvent.java @@ -23,4 +23,9 @@ public class TaskCancelledEvent extends TaskEvent { public TaskCancelledEvent(WorkflowContext workflow, TaskContext task) { super(workflow, task); } + + @Override + public EventType type() { + return EventType.TASK_CANCELLED; + } } diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskCompletedEvent.java b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskCompletedEvent.java index a4e361565..7be89af26 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskCompletedEvent.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskCompletedEvent.java @@ -23,4 +23,9 @@ public class TaskCompletedEvent extends TaskEvent { public TaskCompletedEvent(WorkflowContext workflow, TaskContext task) { super(workflow, task); } + + @Override + public EventType type() { + return EventType.TASK_COMPLETED; + } } diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskFailedEvent.java b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskFailedEvent.java index a2bcd422f..9cbcff613 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskFailedEvent.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskFailedEvent.java @@ -30,4 +30,9 @@ public TaskFailedEvent(WorkflowContext workflow, TaskContext task, Throwable cau public Throwable cause() { return cause; } + + @Override + public EventType type() { + return EventType.TASK_FAULTED; + } } diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskResumedEvent.java b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskResumedEvent.java index e9aaae8c1..c0b7af01f 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskResumedEvent.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskResumedEvent.java @@ -23,4 +23,9 @@ public class TaskResumedEvent extends TaskEvent { public TaskResumedEvent(WorkflowContext workflow, TaskContext task) { super(workflow, task); } + + @Override + public EventType type() { + return EventType.TASK_RESUMED; + } } diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskRetriedEvent.java b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskRetriedEvent.java index 5d7690e98..86dd4c240 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskRetriedEvent.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskRetriedEvent.java @@ -23,4 +23,9 @@ public class TaskRetriedEvent extends TaskEvent { public TaskRetriedEvent(WorkflowContext workflow, TaskContext task) { super(workflow, task); } + + @Override + public EventType type() { + return EventType.TASK_RETRIED; + } } diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskStartedEvent.java b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskStartedEvent.java index b03a6c4fe..003346a40 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskStartedEvent.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskStartedEvent.java @@ -23,4 +23,9 @@ public class TaskStartedEvent extends TaskEvent { public TaskStartedEvent(WorkflowContext workflow, TaskContext task) { super(workflow, task); } + + @Override + public EventType type() { + return EventType.TASK_STARTED; + } } diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskSuspendedEvent.java b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskSuspendedEvent.java index 6145ae945..12ef15c88 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskSuspendedEvent.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/TaskSuspendedEvent.java @@ -23,4 +23,9 @@ public class TaskSuspendedEvent extends TaskEvent { public TaskSuspendedEvent(WorkflowContext workflow, TaskContext task) { super(workflow, task); } + + @Override + public EventType type() { + return EventType.TASK_SUSPENDED; + } } diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowCancelledEvent.java b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowCancelledEvent.java index 272377c38..7185bc635 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowCancelledEvent.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowCancelledEvent.java @@ -22,4 +22,9 @@ public class WorkflowCancelledEvent extends WorkflowEvent { public WorkflowCancelledEvent(WorkflowContextData workflow) { super(workflow); } + + @Override + public EventType type() { + return EventType.WORKFLOW_CANCELLED; + } } diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowCompletedEvent.java b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowCompletedEvent.java index cae1a6d0c..b6630ff61 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowCompletedEvent.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowCompletedEvent.java @@ -30,4 +30,9 @@ public WorkflowCompletedEvent(WorkflowContextData workflow, WorkflowModel output public WorkflowModel output() { return output; } + + @Override + public EventType type() { + return EventType.WORKFLOW_COMPLETED; + } } diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowEvent.java b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowEvent.java index e19ddfefb..4a486e85e 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowEvent.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowEvent.java @@ -35,4 +35,6 @@ public WorkflowContextData workflowContext() { public OffsetDateTime eventDate() { return eventDate; } + + public abstract EventType type(); } diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowFailedEvent.java b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowFailedEvent.java index 7388ebe50..05ee55951 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowFailedEvent.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowFailedEvent.java @@ -29,4 +29,9 @@ public WorkflowFailedEvent(WorkflowContextData workflow, Throwable cause) { public Throwable cause() { return cause; } + + @Override + public EventType type() { + return EventType.WORKFLOW_FAULTED; + } } diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowResumedEvent.java b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowResumedEvent.java index 53e97e044..116082f00 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowResumedEvent.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowResumedEvent.java @@ -22,4 +22,9 @@ public class WorkflowResumedEvent extends WorkflowEvent { public WorkflowResumedEvent(WorkflowContextData workflow) { super(workflow); } + + @Override + public EventType type() { + return EventType.WORKFLOW_RESUMED; + } } diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowStartedEvent.java b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowStartedEvent.java index d4ac34f08..9638eada1 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowStartedEvent.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowStartedEvent.java @@ -22,4 +22,9 @@ public class WorkflowStartedEvent extends WorkflowEvent { public WorkflowStartedEvent(WorkflowContextData workflow) { super(workflow); } + + @Override + public EventType type() { + return EventType.WORKFLOW_STARTED; + } } diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowStatusEvent.java b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowStatusEvent.java index aa7ff746b..0f882860d 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowStatusEvent.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowStatusEvent.java @@ -37,4 +37,9 @@ public WorkflowStatus status() { public WorkflowStatus previousStatus() { return prevStatus; } + + @Override + public EventType type() { + return EventType.WORKFLOW_STATUS_CHANGED; + } } diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowSuspendedEvent.java b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowSuspendedEvent.java index 1975577af..bb6347147 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowSuspendedEvent.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/WorkflowSuspendedEvent.java @@ -22,4 +22,9 @@ public class WorkflowSuspendedEvent extends WorkflowEvent { public WorkflowSuspendedEvent(WorkflowContextData workflow) { super(workflow); } + + @Override + public EventType type() { + return EventType.WORKFLOW_SUSPENDED; + } } From c3877e2feb99e0a159d2ce0422bcd9ac7f00c9ba Mon Sep 17 00:00:00 2001 From: Francisco Javier Tirado Sarti Date: Tue, 1 Sep 2026 12:01:06 +0200 Subject: [PATCH 2/2] [Fix #1638] Implementing toString on enum Signed-off-by: Francisco Javier Tirado Sarti --- .../serverlessworkflow/impl/lifecycle/EventType.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/EventType.java b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/EventType.java index 97e5af14b..9d9d4028c 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/EventType.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/lifecycle/EventType.java @@ -33,13 +33,14 @@ public enum EventType { WORKFLOW_CANCELLED(LifecycleEvents.WORKFLOW_CANCELLED), WORKFLOW_STATUS_CHANGED(LifecycleEvents.WORKFLOW_STATUS_CHANGED); - private final String event; + private final String lifecycleId; - public String getEvent() { - return this.event; + @Override + public String toString() { + return this.lifecycleId; } - EventType(String event) { - this.event = event; + EventType(String lifecycleId) { + this.lifecycleId = lifecycleId; } }