1 of 1 people found this helpful
since process life cycle and task life cycle are decoupled then the only way is to use task listeners. You can filter out only given process definitions within the listener to achieve sort of process level actions - each task has task data where it stores processId that is the process definition identifier.
I went with similar solution. I package my action classes in kjar(s) since they are process dependent. Inside listener I get the deployment via task data. Then scan the deployment for corresponding actions and execute them.