Skip to content

Instantly share code, notes, and snippets.

@tkobayas
Created July 13, 2012 02:20
Show Gist options
  • Save tkobayas/3102306 to your computer and use it in GitHub Desktop.
Save tkobayas/3102306 to your computer and use it in GitHub Desktop.
jBPM HQ example
package com.sample;
import java.util.List;
import java.util.UUID;
import org.drools.KnowledgeBase;
import org.drools.SystemEventListenerFactory;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;
import org.jbpm.process.workitem.wsht.SyncWSHumanTaskHandler;
import org.jbpm.process.workitem.wsht.WSHumanTaskHandler;
import org.jbpm.task.query.TaskSummary;
import org.jbpm.task.service.AsyncTaskServiceWrapper;
import org.jbpm.task.service.TaskClient;
import org.jbpm.task.service.hornetq.CommandBasedHornetQWSHumanTaskHandler;
import org.jbpm.task.service.hornetq.HornetQTaskClientConnector;
import org.jbpm.task.service.hornetq.HornetQTaskClientHandler;
import org.jbpm.task.service.local.LocalTaskService;
import org.jbpm.test.JBPMHelper;
/**
* This is a sample file to launch a process.
*/
public class ProcessMainHQEx {
public static final void main(String[] args) throws Exception {
startUp();
// load up the knowledge base
KnowledgeBase kbase = readKnowledgeBase();
StatefulKnowledgeSession ksession = JBPMHelper.newStatefulKnowledgeSession(kbase);
CommandBasedHornetQWSHumanTaskHandler humanTaskHandler = new CommandBasedHornetQWSHumanTaskHandler(ksession);
humanTaskHandler.connect();
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", humanTaskHandler);
TaskClient taskClient = new TaskClient(
new HornetQTaskClientConnector("tasksQueue/client"+UUID.randomUUID().toString(),
new HornetQTaskClientHandler(SystemEventListenerFactory.getSystemEventListener())));;
taskClient.connect("127.0.0.1", 5446);
AsyncTaskServiceWrapper taskService = new AsyncTaskServiceWrapper(taskClient);
// start a new process instance
ksession.startProcess("com.sample.bpmn.hello");
System.out.println("Process started ...");
List<TaskSummary> list = taskService.getTasksAssignedAsPotentialOwner("john", "en-UK");
TaskSummary task = list.get(0);
System.out.println("task.getProcessId() = " + task.getProcessId());
}
private static KnowledgeBase readKnowledgeBase() throws Exception {
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("sample.bpmn"), ResourceType.BPMN2);
return kbuilder.newKnowledgeBase();
}
private static void startUp() {
JBPMHelper.startH2Server();
JBPMHelper.setupDataSource();
// please comment this line if you already have the task service running,
// for example when running the jbpm-installer
//JBPMHelper.startTaskService();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment