CaseExecutionStateTransitionCollector stateTransitionCollector = new CaseExecutionStateTransitionCollector();
// given ///////////////////////////////////////////////////////////////
// a case definition
CmmnCaseDefinition caseDefinition = new CaseDefinitionBuilder("Case1")
.listener("complete", stateTransitionCollector)
.createActivity("X")
.listener("complete", stateTransitionCollector)
.behavior(new StageActivityBehavior())
.createActivity("A")
.listener("complete", stateTransitionCollector)
.behavior(new TaskWaitState())
.endActivity()
.createActivity("B")
.listener("complete", stateTransitionCollector)
.behavior(new TaskWaitState())
.endActivity()
.endActivity()
.buildCaseDefinition();
// an active case instance
CmmnCaseInstance caseInstance = caseDefinition.createCaseInstance();
caseInstance.create();
// a case execution associated with Stage X
CmmnActivityExecution stageX = caseInstance.findCaseExecution("X");