ActivityInstanceVerification verifier = new ActivityInstanceVerification();
PvmProcessDefinition processDefinition = new ProcessDefinitionBuilder()
.createActivity("start")
.initial()
.behavior(new Automatic())
.executionListener(ExecutionListener.EVENTNAME_START, verifier)
.executionListener(ExecutionListener.EVENTNAME_END, verifier)
.transition("embeddedsubprocess")
.endActivity()
.createActivity("embeddedsubprocess")
.scope()
.behavior(new EmbeddedSubProcess())
.executionListener(ExecutionListener.EVENTNAME_START, verifier)
.executionListener(ExecutionListener.EVENTNAME_END, verifier)
.createActivity("startInside")
.behavior(new Automatic())
.executionListener(ExecutionListener.EVENTNAME_START, verifier)
.executionListener(ExecutionListener.EVENTNAME_END, verifier)
.transition("nestedSubProcess")
.endActivity()
.createActivity("nestedSubProcess")
.scope()
.behavior(new EmbeddedSubProcess())
.executionListener(ExecutionListener.EVENTNAME_START, verifier)
.executionListener(ExecutionListener.EVENTNAME_END, verifier)
.createActivity("startNestedInside")
.behavior(new Automatic())
.executionListener(ExecutionListener.EVENTNAME_START, verifier)
.executionListener(ExecutionListener.EVENTNAME_END, verifier)
.endActivity()
.endActivity()
.endActivity()