<?xml version="1.0" encoding="UTF-8"?>
<definitions id="Definition"
<itemDefinition id="_ETLGroupItem" structureRef="com.example.model.impl.ETLGroupImpl" />
<process processType="Private" isExecutable="true" id="Test" name="Test Process" >
<!-- process variables -->
<property id="ETLGroup" itemSubjectRef="_ETLGroupItem"/>
<!-- nodes -->
<startEvent id="_1" name="StartProcess" />
<task id="_2" name="ETLGroup" tns:taskName="ETLGroup" >
<ioSpecification>
<inputSet>
</inputSet>
<outputSet>
</outputSet>
</ioSpecification>
</task>
<endEvent id="_3" name="End" >
<terminateEventDefinition/>
</endEvent>
<!-- connections -->
<sequenceFlow id="_1-_2" sourceRef="_1" targetRef="_2" />
<sequenceFlow id="_2-_3" sourceRef="_2" targetRef="_3" />
</process>
@Before
public void setUp() throws Exception {
KnowledgeBuilder kb = KnowledgeBuilderFactory.newKnowledgeBuilder();
kb.add(ResourceFactory.newClassPathResource("transformationTest.bpmn2"), ResourceType.BPMN2);
if (kb.hasErrors()) {
throw new
RuntimeException(kb.getErrors().toString());
}
KnowledgeBaseConfiguration configuration = KnowledgeBaseFactory.newKnowledgeBaseConfiguration();
configuration.setProperty("drools.workDefinitions", "WorkDefinitions.conf etlgroup.conf");
KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase(configuration);
knowledgeBase.addKnowledgePackages(kb.getKnowledgePackages());
session = knowledgeBase.newStatefulKnowledgeSession();
TrackingProcessEventListener trackingprocel = new TrackingProcessEventListener();
session.addEventListener(trackingprocel);
session.getWorkItemManager().registerWorkItemHandler("ETLGroup", new ETLGroupWorkItemHandler());
WorkflowLoader wrkflwLdr = new WorkflowLoader();
etlGroup =
wrkflwLdr.loadETLGroup("etlGroup", "/home/david/workspace/EDMEngine/META-INF/content.xml");
}
@Test
public void testSessionRun() {
Map<String, Object> parameterMap = new HashMap<String, Object>();
parameterMap.put("ETLGroup", etlGroup);
session.insert(etlGroup);
ProcessInstance processInstance = session.startProcess("Test", parameterMap);
session.insert(processInstance);
session.fireAllRules();
}
public class ETLGroupWorkItemHandler implements WorkItemHandler {
private ETLGroupService service = null;
@Override
public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
ETLGroup etlGrp =
(ETLGroup) workItem.getParameter("ETLGroup");