use of org.jbpm.workflow.core.impl.WorkflowProcessImpl in project jbpm by kiegroup.
the class ImportHandler method start.
public Object start(final String uri, final String localName, final Attributes attrs, final ExtensibleXmlParser parser) throws SAXException {
parser.startElementBuilder(localName, attrs);
WorkflowProcessImpl process = (WorkflowProcessImpl) parser.getParent();
final String name = attrs.getValue("name");
emptyAttributeCheck(localName, "name", name, parser);
java.util.Set<String> list = process.getImports();
if (list == null) {
list = new HashSet<String>();
process.setImports(list);
}
list.add(name);
return null;
}
use of org.jbpm.workflow.core.impl.WorkflowProcessImpl in project jbpm by kiegroup.
the class JavaScriptReturnValueConstraintEvaluatorBuilderTest method testSimpleReturnValueConstraintEvaluator.
@Test
public void testSimpleReturnValueConstraintEvaluator() throws Exception {
final InternalKnowledgePackage pkg = new KnowledgePackageImpl("pkg1");
ProcessDescr processDescr = new ProcessDescr();
processDescr.setClassName("Process1");
processDescr.setName("Process1");
WorkflowProcessImpl process = new WorkflowProcessImpl();
process.setName("Process1");
process.setPackageName("pkg1");
ReturnValueDescr descr = new ReturnValueDescr();
descr.setText("function validate() {return value;} validate();");
KnowledgeBuilderImpl pkgBuilder = new KnowledgeBuilderImpl(pkg);
DialectCompiletimeRegistry dialectRegistry = pkgBuilder.getPackageRegistry(pkg.getName()).getDialectCompiletimeRegistry();
ProcessBuildContext context = new ProcessBuildContext(pkgBuilder, pkg, process, processDescr, dialectRegistry, null);
pkgBuilder.addPackageFromDrl(new StringReader("package pkg1;\n global Boolean value;\n"));
ReturnValueConstraintEvaluator node = new ReturnValueConstraintEvaluator();
final JavaScriptReturnValueEvaluatorBuilder builder = new JavaScriptReturnValueEvaluatorBuilder();
builder.build(context, node, descr, null);
final InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addPackages(Arrays.asList(pkgBuilder.getPackages()));
final KieSession ksession = kbase.newKieSession();
RuleFlowProcessInstance processInstance = new RuleFlowProcessInstance();
processInstance.setKnowledgeRuntime((InternalKnowledgeRuntime) ksession);
SplitInstance splitInstance = new SplitInstance();
splitInstance.setProcessInstance(processInstance);
ksession.setGlobal("value", true);
assertTrue(node.evaluate(splitInstance, null, null));
// Build second time with reutrn value evaulator returning false
ReturnValueDescr descr2 = new ReturnValueDescr();
descr.setText("function invalidate() {return false;} invalidate();");
final JavaScriptReturnValueEvaluatorBuilder builder2 = new JavaScriptReturnValueEvaluatorBuilder();
builder2.build(context, node, descr, null);
assertFalse(node.evaluate(splitInstance, null, null));
}
use of org.jbpm.workflow.core.impl.WorkflowProcessImpl in project jbpm by kiegroup.
the class ServiceTaskHandler method getWSClient.
@SuppressWarnings("unchecked")
protected synchronized Client getWSClient(WorkItem workItem, String interfaceRef) {
if (clients.containsKey(interfaceRef)) {
return clients.get(interfaceRef);
}
long processInstanceId = ((WorkItemImpl) workItem).getProcessInstanceId();
WorkflowProcessImpl process = ((WorkflowProcessImpl) ksession.getProcessInstance(processInstanceId).getProcess());
List<Bpmn2Import> typedImports = (List<Bpmn2Import>) process.getMetaData("Bpmn2Imports");
if (typedImports != null) {
Client client = null;
for (Bpmn2Import importObj : typedImports) {
if (WSDL_IMPORT_TYPE.equalsIgnoreCase(importObj.getType())) {
try {
client = dcf.createClient(importObj.getLocation(), new QName(importObj.getNamespace(), interfaceRef), getInternalClassLoader(), null);
clients.put(interfaceRef, client);
logger.info("WS Client is created for {" + importObj.getNamespace() + "}" + interfaceRef);
return client;
} catch (Exception e) {
logger.info("Error when creating WS Client. You can ignore this error as long as a client is eventually created", e);
continue;
}
}
}
}
return null;
}
Aggregations