From 58275071c4fac0499b4de2fc8258c7064a1b7c0b Mon Sep 17 00:00:00 2001 From: Matheus Cruz Date: Fri, 8 May 2026 13:34:10 -0300 Subject: [PATCH 1/4] Add allOfType method Signed-off-by: Matheus Cruz --- .../java/io/serverlessworkflow/fluent/func/dsl/FuncDSL.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/experimental/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/dsl/FuncDSL.java b/experimental/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/dsl/FuncDSL.java index 44bbad1e..271dc084 100644 --- a/experimental/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/dsl/FuncDSL.java +++ b/experimental/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/dsl/FuncDSL.java @@ -2213,6 +2213,11 @@ public static Consumer on( return DSL.all(filters); } + public static Consumer> allOfType( + String eventType) { + return DSL.all(f -> f.with(c -> c.type(eventType))); + } + /** * @see DSL#any(Consumer[]) */ From 4f30b530822518396f3b6e3774362f66b0f8aa86 Mon Sep 17 00:00:00 2001 From: Matheus Cruz Date: Fri, 8 May 2026 13:39:48 -0300 Subject: [PATCH 2/4] Add documentation Signed-off-by: Matheus Cruz --- .../java/io/serverlessworkflow/fluent/func/dsl/FuncDSL.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/experimental/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/dsl/FuncDSL.java b/experimental/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/dsl/FuncDSL.java index 271dc084..b43eff0d 100644 --- a/experimental/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/dsl/FuncDSL.java +++ b/experimental/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/dsl/FuncDSL.java @@ -2213,6 +2213,12 @@ public static Consumer on( return DSL.all(filters); } + /** + * Creates an 'all' event consumption strategy using a specific event type string. + * + * @param eventType the event type + * @return a consumer configuring the event strategy builder + */ public static Consumer> allOfType( String eventType) { return DSL.all(f -> f.with(c -> c.type(eventType))); From b42c5c830870738ba96e83aad16ada74211b4c3d Mon Sep 17 00:00:00 2001 From: Matheus Cruz Date: Fri, 8 May 2026 17:30:36 -0300 Subject: [PATCH 3/4] Apply pull request suggestions Signed-off-by: Matheus Cruz --- .../java/io/serverlessworkflow/fluent/func/dsl/FuncDSL.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/experimental/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/dsl/FuncDSL.java b/experimental/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/dsl/FuncDSL.java index b43eff0d..f06d8d90 100644 --- a/experimental/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/dsl/FuncDSL.java +++ b/experimental/fluent/func/src/main/java/io/serverlessworkflow/fluent/func/dsl/FuncDSL.java @@ -2218,10 +2218,11 @@ public static Consumer on( * * @param eventType the event type * @return a consumer configuring the event strategy builder + * @see DSL#all(Consumer[]) */ public static Consumer> allOfType( String eventType) { - return DSL.all(f -> f.with(c -> c.type(eventType))); + return DSL.all(DSL.event().type(eventType)); } /** From ef42401d1967f36e21699bfa67d10ed239613086 Mon Sep 17 00:00:00 2001 From: Matheus Cruz Date: Fri, 8 May 2026 17:41:03 -0300 Subject: [PATCH 4/4] Add tests to allOfType Signed-off-by: Matheus Cruz --- .../fluent/func/FuncDSLScheduleTest.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/experimental/fluent/func/src/test/java/io/serverlessworkflow/fluent/func/FuncDSLScheduleTest.java b/experimental/fluent/func/src/test/java/io/serverlessworkflow/fluent/func/FuncDSLScheduleTest.java index 9c2f98c4..0bfe8f8b 100644 --- a/experimental/fluent/func/src/test/java/io/serverlessworkflow/fluent/func/FuncDSLScheduleTest.java +++ b/experimental/fluent/func/src/test/java/io/serverlessworkflow/fluent/func/FuncDSLScheduleTest.java @@ -16,6 +16,7 @@ package io.serverlessworkflow.fluent.func; import static io.serverlessworkflow.fluent.func.dsl.FuncDSL.after; +import static io.serverlessworkflow.fluent.func.dsl.FuncDSL.allOfType; import static io.serverlessworkflow.fluent.func.dsl.FuncDSL.cron; import static io.serverlessworkflow.fluent.func.dsl.FuncDSL.every; import static io.serverlessworkflow.fluent.func.dsl.FuncDSL.on; @@ -124,4 +125,25 @@ void schedule_on_event_sets_schedule() { schedule.getOn().getOneEventConsumptionStrategy().getOne().getWith().getType(), "Event type should match"); } + + @Test + @DisplayName( + "schedule(on(allOfType(event))) configures an 'on' schedule with 'all' event consumption strategy") + void schedule_on_allOfType_event_sets_schedule() { + Workflow wf = + FuncWorkflowBuilder.workflow("schedule-on-allOfType-event") + .schedule(on(allOfType("org.acme.processing"))) + .build(); + + Schedule schedule = wf.getSchedule(); + assertNotNull(schedule, "Schedule should be configured"); + assertNotNull(schedule.getOn(), "On configuration should be set"); + assertNotNull( + schedule.getOn().getAllEventConsumptionStrategy(), + "All consumption strategy should be set"); + assertEquals( + "org.acme.processing", + schedule.getOn().getAllEventConsumptionStrategy().getAll().get(0).getWith().getType(), + "Event type should match in the filter"); + } }