[jbpm-dev] [Design of JBoss jBPM] - first cut of the new history

tom.baeyens@jboss.com do-not-reply at jboss.com
Thu Feb 12 09:25:56 EST 2009


HistoryEvents are fired during process execution.

We maintain history information on 2 levels: process instance and activity instance.

Process instance start and process instance end generate history events are fired directly from within the implementation.

ActivityBehaviour implementations are responsible for calling the historyXxx methods that are exposed on the ActivityExecution

All the HistoryEvents are delegated to a HistorySession.  The default HistorySessionImpl will invoke the process() method on the history events themselves.

The HistoryEvents are temporary events.  In the process method, they build up the information in the history model.  There is a HistoryProcessInstance and there is a whole class hierarchy starting with HistoryActivityInstance.   

In the HistoryEvent.process methods, the history events create model entities or merge information into the model entities.  For instance, a ProcessInstanceStart history event will create a HistoryProcessInstance entity/record.  And the ProcessInstanceEnd will set the endTime property in the existing HistoryProcessInstance entity/record.  

Similar pattern for the activities.  But for automatic activities, there is an optimisation so that only 1 event is created and all the information is stored in one single insert (as all this happens inside 1 transaction).

View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4209523#4209523

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4209523



More information about the jbpm-dev mailing list