Search in sources :

Example 16 with WorkflowProcessImpl

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;
}
Also used : WorkflowProcessImpl(org.jbpm.workflow.core.impl.WorkflowProcessImpl)

Example 17 with WorkflowProcessImpl

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));
}
Also used : RuleFlowProcessInstance(org.jbpm.ruleflow.instance.RuleFlowProcessInstance) ReturnValueDescr(org.drools.compiler.compiler.ReturnValueDescr) DialectCompiletimeRegistry(org.drools.compiler.compiler.DialectCompiletimeRegistry) ProcessDescr(org.drools.compiler.lang.descr.ProcessDescr) ReturnValueConstraintEvaluator(org.jbpm.process.instance.impl.ReturnValueConstraintEvaluator) WorkflowProcessImpl(org.jbpm.workflow.core.impl.WorkflowProcessImpl) SplitInstance(org.jbpm.workflow.instance.node.SplitInstance) KnowledgeBuilderImpl(org.drools.compiler.builder.impl.KnowledgeBuilderImpl) StringReader(java.io.StringReader) KieSession(org.kie.api.runtime.KieSession) KnowledgePackageImpl(org.drools.core.definitions.impl.KnowledgePackageImpl) JavaScriptReturnValueEvaluatorBuilder(org.jbpm.process.builder.dialect.javascript.JavaScriptReturnValueEvaluatorBuilder) InternalKnowledgeBase(org.drools.core.impl.InternalKnowledgeBase) InternalKnowledgePackage(org.drools.core.definitions.InternalKnowledgePackage) Test(org.junit.Test)

Example 18 with WorkflowProcessImpl

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;
}
Also used : Bpmn2Import(org.jbpm.bpmn2.core.Bpmn2Import) QName(javax.xml.namespace.QName) WorkItemImpl(org.drools.core.process.instance.impl.WorkItemImpl) List(java.util.List) WorkflowProcessImpl(org.jbpm.workflow.core.impl.WorkflowProcessImpl) Client(org.apache.cxf.endpoint.Client) InvocationTargetException(java.lang.reflect.InvocationTargetException)

Aggregations

WorkflowProcessImpl (org.jbpm.workflow.core.impl.WorkflowProcessImpl)18 Test (org.junit.Test)8 AbstractBaseTest (org.jbpm.test.util.AbstractBaseTest)7 InternalKnowledgePackage (org.drools.core.definitions.InternalKnowledgePackage)6 KieSession (org.kie.api.runtime.KieSession)6 StringReader (java.io.StringReader)4 KnowledgeBuilderImpl (org.drools.compiler.builder.impl.KnowledgeBuilderImpl)4 DialectCompiletimeRegistry (org.drools.compiler.compiler.DialectCompiletimeRegistry)4 ProcessDescr (org.drools.compiler.lang.descr.ProcessDescr)4 KnowledgePackageImpl (org.drools.core.definitions.impl.KnowledgePackageImpl)4 InternalKnowledgeBase (org.drools.core.impl.InternalKnowledgeBase)4 RuleFlowProcessInstance (org.jbpm.ruleflow.instance.RuleFlowProcessInstance)4 ActionNode (org.jbpm.workflow.core.node.ActionNode)3 InputStream (java.io.InputStream)2 InputStreamReader (java.io.InputStreamReader)2 List (java.util.List)2 Map (java.util.Map)2 QName (javax.xml.namespace.QName)2 Client (org.apache.cxf.endpoint.Client)2 ReturnValueDescr (org.drools.compiler.compiler.ReturnValueDescr)2