At parsing no event subscriptions are created which will be persisted. Only create event subscriptions which are added to the ActivityImpl. It is like on escalations events.
So dispatchEvent Method refactoring can look like this:
- walk execution tree top down, for each execution do:
access ActivityImpl and get conditional event subscriptions for that scope (i.e. not a
persistent entity, but the subscriptions from the parsed process definition)
- check condition, trigger event (e.g. spawn new execution, etc.)
- It's similar for escalation events, where we just walk the tree upwards and stop on the first
catching escalation event subscription.
There is no need of anything persistent to find conditional events. At least as long as condition triggering is restricted to a single process instance.
See discussion in