Spring EventHandler
Camunda published alle
- Lifecycle Hooks
- TaskListener[create|assign|complete|cancel]
- ExecutionListener[start|end|take]
- Historic events
- HistoricTaskInstance
- HistoricProcessInstance
- ...
per Spring ApplicationEventPublisher
.
Die camunda-bpm-reactor Extension ist damit im Spring Boot Umfeld hinfällig.
Log
--- [main] org.camunda.bpm.spring.boot : STARTER-SB020 ProcessApplication enabled: autoDeployment via springConfiguration#deploymentResourcePattern is disabled
--- [main] o.c.b.s.b.s.event.EventPublisherPlugin : EVENTING-001: Initialized Camunda Spring Boot Eventing Engine Plugin.
--- [main] o.c.b.s.b.s.event.EventPublisherPlugin : EVENTING-003: Task events will be published as Spring Events.
--- [main] o.c.b.s.b.s.event.EventPublisherPlugin : EVENTING-005: Execution events will be published as Spring Events.
--- [main] o.c.b.s.b.s.event.EventPublisherPlugin : EVENTING-007: History events will be published as Spring events.
--- [main] org.camunda.bpm.engine : ENGINE-00001 Process Engine default created.
und historische events:
--- [main] de.cughh.meetup.HistoryLogger : received: HistoricActivityInstanceEventEntity[activityId=task_foo, activityName=Do foo, activityType=userTask, activityInstanceId=task_foo:1ba2d423-9360-11e9-9da8-acde48001122, activityInstanceState=0, parentActivityInstanceId=1b9eb571-9360-11e9-9da8-acde48001122, calledProcessInstanceId=null, calledCaseInstanceId=null, taskId=null, taskAssignee=null, durationInMillis=null, startTime=Thu Jun 20 15:34:20 CEST 2019, endTime=null, eventType=start, executionId=1b9eb571-9360-11e9-9da8-acde48001122, processDefinitionId=process_foo:1:1b9c9290-9360-11e9-9da8-acde48001122, rootProcessInstanceId=1b9eb571-9360-11e9-9da8-acde48001122, processInstanceId=1b9eb571-9360-11e9-9da8-acde48001122, tenantId=null]
--- [main] de.cughh.meetup.HistoryLogger : received: HistoricTaskInstanceEventEntity[taskId1ba34954-9360-11e9-9da8-acde48001122, assignee=null, owner=null, name=Do foo, description=null, dueDate=null, followUpDate=null, priority=50, parentTaskId=null, deleteReason=null, taskDefinitionKey=task_foo, durationInMillis=null, startTime=Thu Jun 20 15:34:20 CEST 2019, endTime=null, id=1ba34954-9360-11e9-9da8-acde48001122, eventType=create, executionId=1b9eb571-9360-11e9-9da8-acde48001122, processDefinitionId=process_foo:1:1b9c9290-9360-11e9-9da8-acde48001122, rootProcessInstanceId=1b9eb571-9360-11e9-9da8-acde48001122, processInstanceId=1b9eb571-9360-11e9-9da8-acde48001122, activityInstanceId=task_foo:1ba2d423-9360-11e9-9da8-acde48001122, tenantId=null]
--- [main] de.cughh.meetup.HistoryLogger : received: HistoricActivityInstanceEventEntity[activityId=task_foo, activityName=Do foo, activityType=userTask, activityInstanceId=task_foo:1ba2d423-9360-11e9-9da8-acde48001122, activityInstanceState=0, parentActivityInstanceId=1b9eb571-9360-11e9-9da8-acde48001122, calledProcessInstanceId=null, calledCaseInstanceId=null, taskId=1ba34954-9360-11e9-9da8-acde48001122, taskAssignee=null, durationInMillis=null, startTime=Thu Jun 20 15:34:20 CEST 2019, endTime=null, eventType=update, executionId=1b9eb571-9360-11e9-9da8-acde48001122, processDefinitionId=process_foo:1:1b9c9290-9360-11e9-9da8-acde48001122, rootProcessInstanceId=1b9eb571-9360-11e9-9da8-acde48001122, processInstanceId=1b9eb571-9360-11e9-9da8-acde48001122, tenantId=null]
Task
- wurde erzeugt und
- Admin assigned
- candidateGroup
holisticon
- due in zwei Tagen
TODO
Die SPEL für conditions ist nicht besonders schön:
@EventListener(condition = "#task.eventName.equals('complete') && #task.taskDefinitionKey.equals('task_multiply')")
fun onComplete(task: DelegateTask) = with(task) {
verglichen mit camunda-bpm-reactor:
@CamundaSelector(type = "userTask", event = TaskListener.EVENTNAME_CREATE)
public class TaskCreateListener implements TaskListener {
da fehlt noch was. Zum Beispiel: Using beans in condition