Created
July 13, 2012 02:20
-
-
Save tkobayas/3102306 to your computer and use it in GitHub Desktop.
jBPM HQ example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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