Abstract class that helps building an Asynchronous listeners that will handle a long running process.
By default,
org.nuxeo.ecm.core.event.PostCommitEventListener are executed in a
org.nuxeo.ecm.core.work.api.Work that will take care of starting/comitting the transaction.
If the listener requires a long processing this will create long transactions that are not good. To avoid this
behavior, this base class split the processing in 3 steps :
- pre processing : transactional first step
- long running : long running processing that should not require transactional resources
- post processing : transactional final step
To manage sharing between the 3 steps, a simple Map is provided.