blob: 60e6bccaf73c8879e4bef629250ab44988b6ce82 [file] [log] [blame]
{
"id": "qaservice",
"version": "1.0",
"name": "Query Answer Service",
"description": "A simple SW example that coordinates the formulation of a query and it's resolution by using an external service",
"errors": [
{
"name": "execution error",
"code": "javax.ws.rs.ProcessingException"
}
],
"start": "Initialization",
"events": [
{
"name": "queryResultEvent",
"source": "",
"type": "query_response_events"
}
],
"functions": [
{
"name": "sendQuery",
"type": "rest",
"operation": "specs/query-service.yaml#sendQuery"
},
{
"name": "registerQuery",
"type": "custom",
"operation": "service:java:org.acme.QueryAnswerServiceHelper::registerQuery"
},
{
"name": "registerAnswer",
"type": "custom",
"operation": "service:java:org.acme.QueryAnswerServiceHelper::registerAnswer"
},
{
"name": "registerError",
"type": "custom",
"operation": "service:java:org.acme.QueryAnswerServiceHelper::registerError"
}
],
"states": [
{
"name": "Initialization",
"type": "operation",
"actions": [
{
"name": "registerQueryAction",
"functionRef": {
"refName": "registerQuery"
}
}
],
"transition": "Send Query and Wait For Answer"
},
{
"name": "Send Query and Wait For Answer",
"type": "callback",
"action": {
"name": "sendQueryAction",
"functionRef": {
"refName": "sendQuery",
"arguments": {
"processInstanceId": "$WORKFLOW.instanceId",
"query": ".query"
}
}
},
"eventRef": "queryResultEvent",
"transition": "Register Answer",
"onErrors": [
{
"errorRef": "execution error",
"transition": "Process query service error"
}
]
},
{
"name": "Register Answer",
"type": "operation",
"actions": [
{
"name": "registerAnswerAction",
"functionRef": {
"refName": "registerAnswer"
}
}
],
"end": true
},
{
"name": "Process query service error",
"type": "inject",
"data": {
"error": "The query service invocation failed, please try at another time"
},
"transition": "Register error"
},
{
"name": "Register error",
"type": "operation",
"actions": [
{
"name": "registerErrorAction",
"functionRef": {
"refName": "registerError"
}
}
],
"end": true
}
]
}