JBPM 4基礎編07-リスニングイベントEventListener
3078 ワード
JBPMでリスニングを構成し、タスクノードの開始または終了をブロックできます. event.jpdl.xmlデザイナの概略図:Sourceコード: を見てみましょう. ProcessEventListenerこのクラスは、EventListenerインタフェースを実装する実装クラスとして定義されています.その方法では、いくつかの情報を出力して、その方法が実行されたかどうかをテストします. EventTestこれで、フローのstartおよびendイベントが にキャプチャされたかどうかをテストする必要があります.
<?xml version="1.0" encoding="UTF-8"?>
<process name="event" xmlns="http://jbpm.org/4.3/jpdl">
<on event="start">
<event-listener class="org.wxp.ProcessEventListener" />
</on>
<on event="end">
<event-listener class="org.wxp.ProcessEventListener" />
</on>
<start g="178,107,48,48" name="start1">
<on event="start">
<event-listener class="org.wxp.ProcessEventListener" />
</on>
<on event="end">
<event-listener class="org.wxp.ProcessEventListener" />
</on>
<transition name="to state1" to="state1" g="-59,-17" />
</start>
<end g="187,302,48,48" name="end1">
<on event="start">
<event-listener class="org.wxp.ProcessEventListener" />
</on>
<on event="end">
<event-listener class="org.wxp.ProcessEventListener" />
</on>
</end>
<state name="state1" g="207,222,92,52">
<on event="start">
<event-listener class="org.wxp.ProcessEventListener" />
</on>
<on event="end">
<event-listener class="org.wxp.ProcessEventListener" />
</on>
<transition name="to end1" to="end1" g="-47,-17" />
</state>
</process>
package org.wxp;
import org.jbpm.api.listener.EventListener;
import org.jbpm.api.listener.EventListenerExecution;
public class ProcessEventListener implements EventListener {
@Override
public void notify(EventListenerExecution eventListenerExecution)
throws Exception {
System.out.println(eventListenerExecution);
}
}
package org.wxp;
import junit.framework.TestCase;
import org.jbpm.api.Configuration;
import org.jbpm.api.ExecutionService;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.RepositoryService;
/**
* Listener, start end
*
* 1. , , start
* 2.state , end
* @author Champion.Wong
*
*/
public class EventTest extends TestCase {
ProcessEngine processEngine;
public EventTest() {
processEngine = Configuration.getProcessEngine();
}
public void test() {
RepositoryService repositoryService = processEngine
.getRepositoryService();
String deploymentId = repositoryService.createDeployment()
.addResourceFromClasspath("event.jpdl.xml").deploy();
ExecutionService executionService = processEngine.getExecutionService();
executionService.startProcessInstanceByKey("event");
}
}