JBoss Community

Human Task Module Refactoring

created by Mauricio Salatino in jBPM - View the full document

This document aims to explain how the human task module should look after applying some refactorings which were the results of several experiments.

You can more about this experiments here: https://github.com/Salaboy/human-task-poc-proposal

 

The following sections describe how the module will look like after the refactorings

 

APIs

 

Services Working Together

The following image shows how the interactions with the human task module will happen. The diagram shows the interfaces and implementations required to interact with a TaskInstance

https://community.jboss.org/servlet/JiveServlet/downloadImage/102-18789-1-19050/450-252/TaskInstanceServiceSimplified.png

The previous figure shows all the components interacting when we want to interact with a task instance that was already created.

So let's say for example that we want to start a task. From the client perspective he/she can use the TaskServiceEntryPoint to

start the task. This TaskServiceEntryPoint will delegate the calls to the different service implementations. In this case if we are

starting a task the TaskInstanceService implementation will delegate the action to the LifeCycleManager. As you can see

the LifeCycleManager, no matter the implementation is being decorated by an UserGroupDecorator which in charge of handling the

resolution of the identities associated with the operation. The LifeCycleManager is also an Event Producer, which means that is in charge

of generating events to communicate to the external world the LifeCycle changes of each task. We can then attach external listeners to

Observer these events

 

Integration with the Outside World

Comment by going to Community

Create a new document in jBPM at Community