subProcess.setActions(ExtendedNodeImpl.EVENT_NODE_EXIT, actions);
process.addNode(subProcess);
connection = new ConnectionImpl(milestone, Node.CONNECTION_DEFAULT_TYPE, subProcess, Node.CONNECTION_DEFAULT_TYPE);
connection.setMetaData("bendpoints", "[10,10]");
WorkItemNode workItemNode = new WorkItemNode();
workItemNode.setName("WorkItem");
Work work = new WorkImpl();
work.setName("workname");
Set<ParameterDefinition> parameterDefinitions = new HashSet<ParameterDefinition>();
ParameterDefinition parameterDefinition = new ParameterDefinitionImpl("param1", new StringDataType());
parameterDefinitions.add(parameterDefinition);
parameterDefinition = new ParameterDefinitionImpl("param2", new IntegerDataType());
parameterDefinitions.add(parameterDefinition);
work.setParameterDefinitions(parameterDefinitions);
work.setParameter("param1", "value1");
work.setParameter("param2", 1);
workItemNode.setWork(work);
workItemNode.setWaitForCompletion(false);
workItemNode.addInMapping("param1", "var1");
workItemNode.addOutMapping("param2", "var2");
timer = new Timer();
timer.setDelay("100");
timer.setPeriod("100");
action = new DroolsConsequenceAction("dialect", "consequence");
workItemNode.addTimer(timer, action);
timer = new Timer();
timer.setDelay("200");
timer.setPeriod("200");
action = new DroolsConsequenceAction("dialect", "consequence");
workItemNode.addTimer(timer, action);
workItemNode.setActions(ExtendedNodeImpl.EVENT_NODE_ENTER, actions);
workItemNode.setActions(ExtendedNodeImpl.EVENT_NODE_EXIT, actions);
process.addNode(workItemNode);
connection = new ConnectionImpl(subProcess, Node.CONNECTION_DEFAULT_TYPE, workItemNode, Node.CONNECTION_DEFAULT_TYPE);
connection.setMetaData("bendpoints", "[]");
HumanTaskNode humanTaskNode = new HumanTaskNode();