public void testPersistenceSubProcess() {
KieSession service = (KieSession) ctx.getBean( "jpaSingleSessionCommandService" );
int sessionId = service.getId();
RuleFlowProcessInstance processInstance = (RuleFlowProcessInstance) service.startProcess( "org.drools.test.ProcessSubProcess" );
log.info( "Started process instance {}",
processInstance.getId() );
long processInstanceId = processInstance.getId();
TestWorkItemHandler handler = TestWorkItemHandler.getInstance();
WorkItem workItem = handler.getWorkItem();
assertNotNull( workItem );
service.dispose();
final Environment env = (Environment) ctx.getBean( "env" );
/*Environment env = KnowledgeBaseFactory.newEnvironment();
env.set( EnvironmentName.ENTITY_MANAGER_FACTORY,
ctx.getBean( "myEmf" ) );
env.set( EnvironmentName.TRANSACTION_MANAGER,
ctx.getBean( "txManager" ) );
*/
KieStoreServices kstore = (KieStoreServices) ctx.getBean( "kstore1" );
KieBase kbase1 = (KieBase) ctx.getBean( "kbProcessWorkItems" );
service = kstore.loadKieSession( sessionId,
kbase1,
null,
env );
processInstance = (RuleFlowProcessInstance) service.getProcessInstance( processInstanceId );
assertNotNull( processInstance );
Collection<NodeInstance> nodeInstances = processInstance.getNodeInstances();
assertEquals( 1,
nodeInstances.size() );
SubProcessNodeInstance subProcessNodeInstance = (SubProcessNodeInstance) nodeInstances.iterator().next();
long subProcessInstanceId = subProcessNodeInstance.getProcessInstanceId();
RuleFlowProcessInstance subProcessInstance = (RuleFlowProcessInstance) service.getProcessInstance( subProcessInstanceId );
assertNotNull( subProcessInstance );
service.dispose();
service = kstore.loadKieSession( sessionId,
kbase1,