Skip to content

Commit 6a84c9e

Browse files
visheshrupareliaricardozanini
authored andcommitted
add missing support for contextAttributes in ProduceEvent
Signed-off-by: Vishesh Ruparelia <[email protected]> Signed-off-by: Ricardo Zanini <[email protected]>
1 parent 078a930 commit 6a84c9e

File tree

4 files changed

+20
-1
lines changed

4 files changed

+20
-1
lines changed

api/src/main/resources/schema/produce/produceevent.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
"data": {
1111
"type": "string",
1212
"description": "Workflow expression which selects parts of the states data output to become the data of the produced event"
13+
},
14+
"contextAttributes": {
15+
"type": "object",
16+
"description": "Add additional event extension context attributes",
17+
"existingJavaType": "java.util.Map<String, String>"
1318
}
1419
},
1520
"required": [

api/src/test/java/io/serverlessworkflow/api/test/MarkupToWorkflowTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@
4444
import io.serverlessworkflow.api.workflow.Retries;
4545
import io.serverlessworkflow.api.workflow.Secrets;
4646
import java.util.List;
47+
import java.util.Map;
48+
4749
import org.junit.jupiter.params.ParameterizedTest;
4850
import org.junit.jupiter.params.provider.ValueSource;
4951

@@ -264,6 +266,11 @@ public void testTransitions(String workflowLocation) {
264266
assertEquals("RejectApplication", cond2.getTransition().getNextState());
265267
assertNotNull(cond2.getTransition().getProduceEvents());
266268
assertEquals(1, cond2.getTransition().getProduceEvents().size());
269+
assertNotNull(cond2.getTransition().getProduceEvents().get(0).getContextAttributes());
270+
Map<String, String> contextAttributes = cond2.getTransition().getProduceEvents().get(0).getContextAttributes();
271+
assertEquals(2, contextAttributes.size());
272+
assertEquals("IN", contextAttributes.get("order_location"));
273+
assertEquals("online", contextAttributes.get("order_type"));
267274
assertFalse(cond2.getTransition().isCompensate());
268275

269276
assertNotNull(switchState.getDefaultCondition());

api/src/test/resources/features/transitions.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@
2323
"produceEvents": [
2424
{
2525
"eventRef": "provisioningCompleteEvent",
26-
"data": "${ .provisionedOrders }"
26+
"data": "${ .provisionedOrders }",
27+
"contextAttributes": {
28+
"order_location": "IN",
29+
"order_type": "online"
30+
}
2731
}
2832
]
2933
}

api/src/test/resources/features/transitions.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ states:
1818
produceEvents:
1919
- eventRef: provisioningCompleteEvent
2020
data: "${ .provisionedOrders }"
21+
contextAttributes:
22+
"order_location": "IN"
23+
"order_type": "online"
2124
defaultCondition:
2225
transition:
2326
nextState: RejectApplication

0 commit comments

Comments
 (0)