use of org.kie.api.runtime.process.WorkItemManager in project jbpm-work-items by kiegroup.
the class JPAWorkItemHandlerTest method getProduct.
private Product getProduct(String id) throws Exception {
WorkItemManager manager = new TestWorkItemManager();
WorkItemImpl workItem = new WorkItemImpl();
workItem.setParameter(JPAWorkItemHandler.P_ACTION, JPAWorkItemHandler.GET_ACTION);
workItem.setParameter(JPAWorkItemHandler.P_TYPE, "org.jbpm.process.workitem.jpa.Product");
workItem.setParameter(JPAWorkItemHandler.P_ID, id);
UserTransaction ut = getUserTransaction();
ut.begin();
handler.executeWorkItem(workItem, manager);
ut.commit();
Map<String, Object> results = ((TestWorkItemManager) manager).getResults(workItem.getId());
Product product = (Product) results.get(JPAWorkItemHandler.P_RESULT);
return product;
}
use of org.kie.api.runtime.process.WorkItemManager in project jbpm-work-items by kiegroup.
the class ParserWorkItemHandlerTest method testObjectToXml.
@Test
public void testObjectToXml() {
WorkItemManager manager = new TestWorkItemManager();
Person p = new Person(NAME, AGE);
WorkItemImpl workItem = new WorkItemImpl();
workItem.setParameter(ParserWorkItemHandler.INPUT, p);
workItem.setParameter(ParserWorkItemHandler.FORMAT, ParserWorkItemHandler.XML);
handler.executeWorkItem(workItem, manager);
Map<String, Object> results = ((TestWorkItemManager) manager).getResults(workItem.getId());
String result = (String) results.get(ParserWorkItemHandler.RESULT);
assertEquals(PERSON_XML, result);
}
use of org.kie.api.runtime.process.WorkItemManager in project jbpm-work-items by kiegroup.
the class ParserWorkItemHandlerTest method testObjectToJson.
@Test
public void testObjectToJson() {
WorkItemManager manager = new TestWorkItemManager();
Person p = new Person(NAME, AGE);
WorkItemImpl workItem = new WorkItemImpl();
workItem.setParameter(ParserWorkItemHandler.INPUT, p);
workItem.setParameter(ParserWorkItemHandler.FORMAT, ParserWorkItemHandler.JSON);
handler.executeWorkItem(workItem, manager);
Map<String, Object> results = ((TestWorkItemManager) manager).getResults(workItem.getId());
String result = (String) results.get(ParserWorkItemHandler.RESULT);
assertEquals(PERSON_JSON, result);
}
use of org.kie.api.runtime.process.WorkItemManager in project jbpm by kiegroup.
the class WorkItemPersistenceTest method testHumanTask.
@Test
public void testHumanTask() {
List<ProcessInstanceInfo> procInstInfoList = retrieveProcessInstanceInfo(emf);
int numProcInstInfos = procInstInfoList.size();
Reader source = new StringReader("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<process xmlns=\"http://drools.org/drools-5.0/process\"\n" + " xmlns:xs=\"http://www.w3.org/2001/XMLSchema-instance\"\n" + " xs:schemaLocation=\"http://drools.org/drools-5.0/process drools-processes-5.0.xsd\"\n" + " type=\"RuleFlow\" name=\"flow\" id=\"org.drools.humantask\" package-name=\"org.drools\" version=\"1\" >\n" + "\n" + " <header>\n" + " </header>\n" + "\n" + " <nodes>\n" + " <start id=\"1\" name=\"Start\" />\n" + " <humanTask id=\"2\" name=\"HumanTask\" >\n" + " <work name=\"Human Task\" >\n" + " <parameter name=\"ActorId\" >\n" + " <type name=\"org.jbpm.process.core.datatype.impl.type.StringDataType\" />\n" + " <value>John Doe</value>\n" + " </parameter>\n" + " <parameter name=\"TaskName\" >\n" + " <type name=\"org.jbpm.process.core.datatype.impl.type.StringDataType\" />\n" + " <value>Do something</value>\n" + " </parameter>\n" + " <parameter name=\"Priority\" >\n" + " <type name=\"org.jbpm.process.core.datatype.impl.type.StringDataType\" />\n" + " </parameter>\n" + " <parameter name=\"Comment\" >\n" + " <type name=\"org.jbpm.process.core.datatype.impl.type.StringDataType\" />\n" + " </parameter>\n" + " </work>\n" + " </humanTask>\n" + " <end id=\"3\" name=\"End\" />\n" + " </nodes>\n" + "\n" + " <connections>\n" + " <connection from=\"1\" to=\"2\" />\n" + " <connection from=\"2\" to=\"3\" />\n" + " </connections>\n" + "\n" + "</process>");
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newReaderResource(source), ResourceType.DRF);
InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addPackages(kbuilder.getKnowledgePackages());
KieSession ksession = createSession(kbase);
final List<WorkItem> workItems = new ArrayList<WorkItem>();
DoNothingWorkItemHandler handler = new DoNothingWorkItemHandler() {
@Override
public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
super.executeWorkItem(workItem, manager);
workItems.add(workItem);
}
};
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", handler);
ProcessInstance processInstance = ksession.startProcess("org.drools.humantask");
assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState());
int state = processInstance.getState();
switch(state) {
case ProcessInstance.STATE_ABORTED:
logger.debug("STATE_ABORTED");
break;
case ProcessInstance.STATE_ACTIVE:
logger.debug("STATE_ACTIVE");
break;
case ProcessInstance.STATE_COMPLETED:
logger.debug("STATE_COMPLETED");
break;
case ProcessInstance.STATE_PENDING:
logger.debug("STATE_PENDING");
break;
case ProcessInstance.STATE_SUSPENDED:
logger.debug("STATE_SUSPENDED");
break;
default:
logger.debug("Unknown state: {}", state);
}
procInstInfoList = retrieveProcessInstanceInfo(emf);
assertTrue((procInstInfoList.size() - numProcInstInfos) == 1);
ProcessInstanceInfo processInstanceInfoMadeInThisTest = procInstInfoList.get(numProcInstInfos);
assertNotNull("ByteArray of ProcessInstanceInfo from this test is not filled and null!", processInstanceInfoMadeInThisTest.getProcessInstanceByteArray());
assertTrue("ByteArray of ProcessInstanceInfo from this test is not filled and empty!", processInstanceInfoMadeInThisTest.getProcessInstanceByteArray().length > 0);
assertEquals(1, workItems.size());
ksession.getWorkItemManager().completeWorkItem(workItems.get(0).getId(), null);
ProcessInstance pi = ksession.getProcessInstance(processInstance.getId());
assertNull(pi);
}
use of org.kie.api.runtime.process.WorkItemManager in project jbpm by kiegroup.
the class KjarRuntimeEnvironmentTest method testXStreamUnmarshalCustomObject.
@Test
public void testXStreamUnmarshalCustomObject() {
KieServices ks = KieServices.Factory.get();
ReleaseId releaseId = ks.newReleaseId(GROUP_ID, "xstream-test", VERSION);
File kjar = new File("src/test/resources/kjar/jbpm-module.jar");
File pom = new File("src/test/resources/kjar/pom.xml");
KieMavenRepository repository = getKieMavenRepository();
repository.installArtifact(releaseId, kjar, pom);
RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get().newDefaultBuilder(releaseId).registerableItemsFactory(new DefaultRegisterableItemsFactory() {
@Override
public Map<String, WorkItemHandler> getWorkItemHandlers(RuntimeEngine runtime) {
Map<String, WorkItemHandler> handlers = super.getWorkItemHandlers(runtime);
handlers.put("Rest", new WorkItemHandler() {
@Override
public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
Map<String, Object> results = new HashMap<String, Object>();
results.put("Result", "<pv207.finepayment.Client><exists>true</exists><name>Pavel</name></pv207.finepayment.Client>");
manager.completeWorkItem(workItem.getId(), results);
}
@Override
public void abortWorkItem(WorkItem workItem, WorkItemManager manager) {
}
});
return handlers;
}
}).userGroupCallback(userGroupCallback).get();
manager = RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(environment);
assertNotNull(manager);
RuntimeEngine engine = manager.getRuntimeEngine(EmptyContext.get());
assertNotNull(engine);
Map<String, Object> params = new HashMap<String, Object>();
ProcessInstance processInstance = engine.getKieSession().startProcess("RESTTask.RestProcess", params);
assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState());
Object processClient = ((WorkflowProcessInstance) processInstance).getVariable("processClient");
assertNotNull(processClient);
assertEquals("pv207.finepayment.Client", processClient.getClass().getName());
assertEquals("Pavel", valueOf(processClient, "name"));
assertEquals("true", valueOf(processClient, "exists"));
}
Aggregations