package com.sample; import java.util.List; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import org.drools.core.command.runtime.process.GetProcessInstanceByCorrelationKeyCommand; import org.drools.core.command.runtime.process.StartCorrelatedProcessCommand; import org.jbpm.test.JBPMHelper; import org.kie.api.KieBase; import org.kie.api.KieServices; import org.kie.api.runtime.KieContainer; import org.kie.api.runtime.KieSession; import org.kie.api.runtime.manager.RuntimeEngine; import org.kie.api.runtime.manager.RuntimeEnvironmentBuilder; import org.kie.api.runtime.manager.RuntimeManager; import org.kie.api.runtime.manager.RuntimeManagerFactory; import org.kie.api.task.TaskService; import org.kie.api.task.model.TaskSummary; import org.kie.internal.KieInternalServices; import org.kie.internal.process.CorrelationKey; import org.kie.internal.process.CorrelationKeyFactory; import org.kie.internal.runtime.manager.context.CorrelationKeyContext; import org.kie.internal.runtime.manager.context.ProcessInstanceIdContext; public class ProcessMain { public static void main(String[] args) { KieServices ks = KieServices.Factory.get(); KieContainer kContainer = ks.getKieClasspathContainer(); KieBase kbase = kContainer.getKieBase("kbase"); RuntimeManager manager = createRuntimeManager(kbase); CorrelationKeyFactory factory = KieInternalServices.Factory.get().newCorrelationKeyFactory(); CorrelationKey key = factory.newCorrelationKey("random2"); StartCorrelatedProcessCommand start = new StartCorrelatedProcessCommand("com.sample.bpmn.hello", key); manager.getRuntimeEngine(ProcessInstanceIdContext.get()).getKieSession().execute(start); GetProcessInstanceByCorrelationKeyCommand get = new GetProcessInstanceByCorrelationKeyCommand(key); System.out.println("should exists:"+manager.getRuntimeEngine(CorrelationKeyContext.get(key)).getKieSession().execute(get).getId()); System.exit(0); } private static RuntimeManager createRuntimeManager(KieBase kbase) { JBPMHelper.startH2Server(); JBPMHelper.setupDataSource(); EntityManagerFactory emf = Persistence .createEntityManagerFactory("org.jbpm.persistence.jpa"); RuntimeEnvironmentBuilder builder = RuntimeEnvironmentBuilder.Factory .get().newDefaultBuilder().entityManagerFactory(emf) .knowledgeBase(kbase); return RuntimeManagerFactory.Factory.get() .newPerProcessInstanceRuntimeManager(builder.get(), "com.sample:example:1.0"); } }