Package org.jbpm.ruleflow.core

Examples of org.jbpm.ruleflow.core.RuleFlowProcess


    public RuleFlowProcess getRuleFlowProcess() {
        return (RuleFlowProcess) getProcess();
    }
   
    protected Process createProcess() {
        return new RuleFlowProcess();
    }
View Full Code Here


            XmlProcessReader xmlReader = new XmlProcessReader( modules, Thread.currentThread().getContextClassLoader() );
            String xml = RuleFlowMigrator.convertReaderToString(isr);
            Reader reader = new StringReader(xml);
            List<Process> processes = xmlReader.read(reader);
            if (processes != null && processes.size() == 1) {
              final RuleFlowProcess process = (RuleFlowProcess) processes.get(0);
              String packageName = process.getPackageName();
              if (packageName == null || packageName.trim().length() == 0 || "org.drools.bpmn2".equals(packageName)) {
                packageName = "org.jbpm";
              }
              final String pName = packageName;
                WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
                    public void execute(final IProgressMonitor monitor)
                            throws CoreException {
                        try {
                            IFolder folder = file.getProject().getFolder("src/main/java");
                            IPackageFragmentRoot packageFragmentRoot = javaProject
                                    .getPackageFragmentRoot(folder);
                            IPackageFragment packageFragment = packageFragmentRoot
                                    .createPackageFragment(pName, true, monitor);
                          String processName = process.getName();
                          processName = processName.replaceAll("\\s", "_");
                          if (processName == null || processName.trim().length() == 0) {
                            processName = "Process";
                          }
                          String fileName = processName + "JUnitTest";
                          String output =
                            "package " + pName + ";\n" +
                        "\n" +
                        "import java.util.ArrayList;\n" +
                        "import java.util.HashMap;\n" +
                        "import java.util.List;\n" +
                        "import java.util.Map;\n" +
                            "\n" +
                            "import org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler;\n" +
                            "import org.jbpm.test.JbpmJUnitTestCase;\n" +
                            "\n" +
                            "import org.junit.Test;\n" +
                            "\n" +
                            "import org.kie.api.runtime.KieSession;\n" +
                            "import org.kie.api.runtime.process.ProcessInstance;\n" +
                            "import org.kie.api.task.TaskService;\n" +
                            "import org.kie.api.task.model.TaskSummary;\n" +
                            "\n" +
                            "public class " + fileName + " extends JbpmJUnitTestCase {\n" +
                            "\n";
                          boolean containsHumanTasks = containsHumanTasks(process);
                          if (containsHumanTasks) {
                            output +=
                              "    public " + fileName + "() {\n" +
                          "        super(true);\n" +
                          "    }\n" +
                          "\n";
                          }
                          Map<String, String> cases = new HashMap<String, String>();
                          Map<String, String> ongoingCases = new HashMap<String, String>();
                          boolean done = processNodes("", process.getStart(null), "", cases, ongoingCases);
                          if (!done) {
                            if (ongoingCases.size() == 1) {
                              cases.put("Implicit", ongoingCases.values().iterator().next());
                            } else {
                              throw new IllegalArgumentException("Could not create implicit case: " + ongoingCases.size());
                            }
                          }
                          for (Map.Entry<String, String> entry: cases.entrySet()) {
                            output +=
                              "  @Test\n" +
                              "    public void test" + entry.getKey() + "() {\n" +
                              "        KieSession ksession = createKnowledgeSession(\"" + file.getName() + "\");\n";
                            Set<String> serviceTasks = new HashSet<String>();
                            containsServiceTasks(serviceTasks, process);
                            for (String service: serviceTasks) {
                              output += "        ksession.getWorkItemManager().registerWorkItemHandler(\"" + service + "\", new SystemOutWorkItemHandler());\n";
                            }
                            if (containsHumanTasks) {
                              output += "        TaskService taskService = getTaskService();\n";
                            }
                            List<Variable> variables = process.getVariableScope().getVariables();
                            if (variables != null && variables.size() > 0) {
                              output +=
                              "        Map<String, Object> params = new HashMap<String, Object>();\n" +
                              "        // initialize variables here if necessary\n";
                              for (Variable v: variables) {
                                output +=
                                  "        // params.put(\"" + v.getName() + "\", value); // type " + v.getType().getStringType() + "\n";
                              }
                              output +=
                            "        ProcessInstance processInstance = ksession.startProcess(\"" + process.getId() + "\", params);\n";
                            } else {
                              output +=
                            "        ProcessInstance processInstance = ksession.startProcess(\"" + process.getId() + "\");\n";
                            }
                            output +=
                          entry.getValue() +
                          "        // do your checks here\n" +
                      "        // for example, assertProcessInstanceCompleted(processInstance.getId(), ksession);\n" +
View Full Code Here

            XmlProcessReader xmlReader = new XmlProcessReader( modules, Thread.currentThread().getContextClassLoader() );
            String xml = RuleFlowMigrator.convertReaderToString(isr);
            Reader reader = new StringReader(xml);
            List<Process> processes = xmlReader.read(reader);
            if (processes != null && processes.size() == 1) {
              final RuleFlowProcess process = (RuleFlowProcess) processes.get(0);
              List<HumanTaskNode> result = new ArrayList<HumanTaskNode>();
              processNodes(process.getNodes(), result);
              final Map<String, TaskDef> tasks = new HashMap<String, TaskDef>();
              for (HumanTaskNode node: result) {
                String taskName = (String) node.getWork().getParameter("TaskName");
                if (taskName == null) {
                  break;
                }
                TaskDef task = tasks.get(taskName);
                if (task == null) {
                  task = new TaskDef(taskName);
                  tasks.put(taskName, task);
                }
                for (Map.Entry<String, String> entry: node.getInMappings().entrySet()) {
                  if (task.getInputParams().get(entry.getKey()) == null) {
                    VariableScope variableScope = (VariableScope) node.resolveContext(VariableScope.VARIABLE_SCOPE, entry.getValue());
                        if (variableScope != null) {
                          task.getInputParams().put(entry.getKey(), variableScope.findVariable(entry.getValue()).getType().getStringType());
                        }
                  }
                }
                for (Map.Entry<String, String> entry: node.getOutMappings().entrySet()) {
                  if (task.getOutputParams().get(entry.getKey()) == null) {
                    VariableScope variableScope = (VariableScope) node.resolveContext(VariableScope.VARIABLE_SCOPE, entry.getValue());
                        if (variableScope != null && !"outcome".equals(entry.getKey())) {
                          task.getOutputParams().put(entry.getKey(), variableScope.findVariable(entry.getValue()).getType().getStringType());
                        }
                  }
                }
              }
                WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
                    public void execute(final IProgressMonitor monitor)
                            throws CoreException {
                        try {
                            IFolder folder = file.getProject().getFolder("src/main/resources");
                          for (TaskDef task: tasks.values()) {
                            String fileName = task.getTaskName() + ".ftl";
                            String output =
                              "<html>\n" +
                              "<body>\n" +
                              "<h2>" + task.getTaskName() + "</h2>\n" +
                              "<hr>\n" +
                              "<#if task.descriptions[0]??>\n" +
                              "Description: ${task.descriptions[0].text}<BR/>\n" +
                              "</#if>\n";
                            for (String input: task.getInputParams().keySet()) {
                              output += input + ": ${" + input + "}<BR/>\n";
                            }
                            output +=
                              "<form action=\"complete\" method=\"POST\" enctype=\"multipart/form-data\">\n";
                            for (String outputP: task.getOutputParams().keySet()) {
                              output += outputP + ": <input type=\"text\" name=\"" + outputP + "\" /><BR/>\n";
                            }
                            output +=
                              "<BR/>\n" +
                              "<input type=\"submit\" name=\"outcome\" value=\"Complete\"/>\n" +
                              "</form>\n" +
                              "</body>\n" +
                              "</html>";
                            IFile file = folder.getFile(fileName);
                            if (!file.exists()) {
                                  file.create(new ByteArrayInputStream(output.getBytes()), true, monitor);
                              } else {
                                  file.setContents(new ByteArrayInputStream(output.getBytes()), true, false, monitor);
                              }
                          }
                          String fileName = process.getId() + ".ftl";
                          String output =
                            "<html>\n" +
                            "<body>\n" +
                            "<h2>" + process.getName() + "</h2>\n" +
                            "<hr>\n" +
                            "<form action=\"complete\" method=\"POST\" enctype=\"multipart/form-data\">\n";
                          for (Variable variable: process.getVariableScope().getVariables()) {
                            if ("String".equals(variable.getType().getStringType())) {
                              output += variable.getName() + ": <input type=\"text\" name=\"" + variable.getName() + "\" /><BR/>\n";
                            }
                          }
                          output +=
View Full Code Here

        service.dispose();
    }

    @SuppressWarnings("unused")
    private static Package getProcessWorkItems() {
        RuleFlowProcess process = new RuleFlowProcess();
        process.setId( "org.drools.test.TestProcess" );
        process.setName( "TestProcess" );
        process.setPackageName( "org.drools.test" );
        StartNode start = new StartNode();
        start.setId( 1 );
        start.setName( "Start" );
        process.addNode( start );
        ActionNode actionNode = new ActionNode();
        actionNode.setId( 2 );
        actionNode.setName( "Action" );
        DroolsConsequenceAction action = new DroolsConsequenceAction();
        action.setDialect( "java" );
        action.setConsequence( "System.out.println(\"Executed action\");" );
        actionNode.setAction( action );
        process.addNode( actionNode );
        new ConnectionImpl( start,
                            Node.CONNECTION_DEFAULT_TYPE,
                            actionNode,
                            Node.CONNECTION_DEFAULT_TYPE );
        WorkItemNode workItemNode = new WorkItemNode();
        workItemNode.setId( 3 );
        workItemNode.setName( "WorkItem1" );
        Work work = new WorkImpl();
        work.setName( "MyWork" );
        workItemNode.setWork( work );
        process.addNode( workItemNode );
        new ConnectionImpl( actionNode,
                            Node.CONNECTION_DEFAULT_TYPE,
                            workItemNode,
                            Node.CONNECTION_DEFAULT_TYPE );
        WorkItemNode workItemNode2 = new WorkItemNode();
        workItemNode2.setId( 4 );
        workItemNode2.setName( "WorkItem2" );
        work = new WorkImpl();
        work.setName( "MyWork" );
        workItemNode2.setWork( work );
        process.addNode( workItemNode2 );
        new ConnectionImpl( workItemNode,
                            Node.CONNECTION_DEFAULT_TYPE,
                            workItemNode2,
                            Node.CONNECTION_DEFAULT_TYPE );
        WorkItemNode workItemNode3 = new WorkItemNode();
        workItemNode3.setId( 5 );
        workItemNode3.setName( "WorkItem3" );
        work = new WorkImpl();
        work.setName( "MyWork" );
        workItemNode3.setWork( work );
        process.addNode( workItemNode3 );
        new ConnectionImpl( workItemNode2,
                            Node.CONNECTION_DEFAULT_TYPE,
                            workItemNode3,
                            Node.CONNECTION_DEFAULT_TYPE );
        EndNode end = new EndNode();
        end.setId( 6 );
        end.setName( "End" );
        process.addNode( end );
        new ConnectionImpl( workItemNode3,
                            Node.CONNECTION_DEFAULT_TYPE,
                            end,
                            Node.CONNECTION_DEFAULT_TYPE );
View Full Code Here

        service.dispose();
    }

    @SuppressWarnings("unused")
    private static Package getProcessSubProcess() {
        RuleFlowProcess process = new RuleFlowProcess();
        process.setId( "org.drools.test.ProcessSubProcess" );
        process.setName( "ProcessSubProcess" );
        process.setPackageName( "org.drools.test" );
        StartNode start = new StartNode();
        start.setId( 1 );
        start.setName( "Start" );
        process.addNode( start );
        ActionNode actionNode = new ActionNode();
        actionNode.setId( 2 );
        actionNode.setName( "Action" );
        DroolsConsequenceAction action = new DroolsConsequenceAction();
        action.setDialect( "java" );
        action.setConsequence( "System.out.println(\"Executed action\");" );
        actionNode.setAction( action );
        process.addNode( actionNode );
        new ConnectionImpl( start,
                            Node.CONNECTION_DEFAULT_TYPE,
                            actionNode,
                            Node.CONNECTION_DEFAULT_TYPE );
        SubProcessNode subProcessNode = new SubProcessNode();
        subProcessNode.setId( 3 );
        subProcessNode.setName( "SubProcess" );
        subProcessNode.setProcessId( "org.drools.test.SubProcess" );
        process.addNode( subProcessNode );
        new ConnectionImpl( actionNode,
                            Node.CONNECTION_DEFAULT_TYPE,
                            subProcessNode,
                            Node.CONNECTION_DEFAULT_TYPE );
        EndNode end = new EndNode();
        end.setId( 4 );
        end.setName( "End" );
        process.addNode( end );
        new ConnectionImpl( subProcessNode,
                            Node.CONNECTION_DEFAULT_TYPE,
                            end,
                            Node.CONNECTION_DEFAULT_TYPE );

        PackageBuilder packageBuilder = new PackageBuilder();
        ProcessBuilderImpl processBuilder = new ProcessBuilderImpl( packageBuilder );
        processBuilder.buildProcess( process,
                                     null );

        process = new RuleFlowProcess();
        process.setId( "org.drools.test.SubProcess" );
        process.setName( "SubProcess" );
        process.setPackageName( "org.drools.test" );
        start = new StartNode();
        start.setId( 1 );
        start.setName( "Start" );
        process.addNode( start );
        actionNode = new ActionNode();
        actionNode.setId( 2 );
        actionNode.setName( "Action" );
        action = new DroolsConsequenceAction();
        action.setDialect( "java" );
        action.setConsequence( "System.out.println(\"Executed action\");" );
        actionNode.setAction( action );
        process.addNode( actionNode );
        new ConnectionImpl( start,
                            Node.CONNECTION_DEFAULT_TYPE,
                            actionNode,
                            Node.CONNECTION_DEFAULT_TYPE );
        WorkItemNode workItemNode = new WorkItemNode();
        workItemNode.setId( 3 );
        workItemNode.setName( "WorkItem1" );
        Work work = new WorkImpl();
        work.setName( "MyWork" );
        workItemNode.setWork( work );
        process.addNode( workItemNode );
        new ConnectionImpl( actionNode,
                            Node.CONNECTION_DEFAULT_TYPE,
                            workItemNode,
                            Node.CONNECTION_DEFAULT_TYPE );
        end = new EndNode();
        end.setId( 6 );
        end.setName( "End" );
        process.addNode( end );
        new ConnectionImpl( workItemNode,
                            Node.CONNECTION_DEFAULT_TYPE,
                            end,
                            Node.CONNECTION_DEFAULT_TYPE );
View Full Code Here

        assertNull( processInstance );
    }

    @SuppressWarnings("unused")
    private static Package getProcessTimer() {
        RuleFlowProcess process = new RuleFlowProcess();
        process.setId( "org.drools.test.ProcessTimer" );
        process.setName( "ProcessTimer" );
        process.setPackageName( "org.drools.test" );
        StartNode start = new StartNode();
        start.setId( 1 );
        start.setName( "Start" );
        process.addNode( start );
        TimerNode timerNode = new TimerNode();
        timerNode.setId( 2 );
        timerNode.setName( "Timer" );
        Timer timer = new Timer();
        timer.setDelay( "2000" );
        timerNode.setTimer( timer );
        process.addNode( timerNode );
        new ConnectionImpl( start,
                            Node.CONNECTION_DEFAULT_TYPE,
                            timerNode,
                            Node.CONNECTION_DEFAULT_TYPE );
        ActionNode actionNode = new ActionNode();
        actionNode.setId( 3 );
        actionNode.setName( "Action" );
        DroolsConsequenceAction action = new DroolsConsequenceAction();
        action.setDialect( "java" );
        action.setConsequence( "System.out.println(\"Executed action\");" );
        actionNode.setAction( action );
        process.addNode( actionNode );
        new ConnectionImpl( timerNode,
                            Node.CONNECTION_DEFAULT_TYPE,
                            actionNode,
                            Node.CONNECTION_DEFAULT_TYPE );
        EndNode end = new EndNode();
        end.setId( 6 );
        end.setName( "End" );
        process.addNode( end );
        new ConnectionImpl( actionNode,
                            Node.CONNECTION_DEFAULT_TYPE,
                            end,
                            Node.CONNECTION_DEFAULT_TYPE );
View Full Code Here

        assertNull( processInstance );
    }

    @SuppressWarnings("unused")
    private static Package getProcessTimer2() {
        RuleFlowProcess process = new RuleFlowProcess();
        process.setId( "org.drools.test.ProcessTimer2" );
        process.setName( "ProcessTimer2" );
        process.setPackageName( "org.drools.test" );
        StartNode start = new StartNode();
        start.setId( 1 );
        start.setName( "Start" );
        process.addNode( start );
        TimerNode timerNode = new TimerNode();
        timerNode.setId( 2 );
        timerNode.setName( "Timer" );
        Timer timer = new Timer();
        timer.setDelay( "0" );
        timerNode.setTimer( timer );
        process.addNode( timerNode );
        new ConnectionImpl( start,
                            Node.CONNECTION_DEFAULT_TYPE,
                            timerNode,
                            Node.CONNECTION_DEFAULT_TYPE );
        ActionNode actionNode = new ActionNode();
        actionNode.setId( 3 );
        actionNode.setName( "Action" );
        DroolsConsequenceAction action = new DroolsConsequenceAction();
        action.setDialect( "java" );
        action.setConsequence( "try { Thread.sleep(1000); } catch (Throwable t) {} System.out.println(\"Executed action\");" );
        actionNode.setAction( action );
        process.addNode( actionNode );
        new ConnectionImpl( timerNode,
                            Node.CONNECTION_DEFAULT_TYPE,
                            actionNode,
                            Node.CONNECTION_DEFAULT_TYPE );
        EndNode end = new EndNode();
        end.setId( 6 );
        end.setName( "End" );
        process.addNode( end );
        new ConnectionImpl( actionNode,
                            Node.CONNECTION_DEFAULT_TYPE,
                            end,
                            Node.CONNECTION_DEFAULT_TYPE );
View Full Code Here

    }
   
    protected void writeModel(OutputStream os, boolean includeGraphics) throws IOException {
        OutputStreamWriter writer = new OutputStreamWriter(os);
        try {
            RuleFlowProcess process = getRuleFlowModel().getRuleFlowProcess();
            XmlBPMNProcessDumper dumper = XmlBPMNProcessDumper.INSTANCE;
            String out = dumper.dump(process, XmlBPMNProcessDumper.META_DATA_USING_DI);
            writer.write(out);
        } catch (Throwable t) {
            DroolsEclipsePlugin.log(t);
View Full Code Here

            {
                List<Process> processes = xmlReader.read(isr);
                if (processes == null || processes.size() == 0) {
                    setModel(createModel());
                } else {
                    RuleFlowProcess process = (RuleFlowProcess) processes.get(0);
                    if (process == null) {
                        setModel(createModel());
                    } else {
                        correctEventNodeSize(process.getNodes());
                        setModel(new RuleFlowWrapperBuilder().getProcessWrapper(process, getJavaProject()));
                    }
                }
            } catch (Throwable t) {
                DroolsEclipsePlugin.log(t);
View Full Code Here

public class RuleFlowWrapperBuilder implements ProcessWrapperBuilder {
   
    public ProcessWrapper getProcessWrapper(Process process, IJavaProject project) {
        if (process instanceof RuleFlowProcess) {
            RuleFlowProcess ruleFlowProcess = (RuleFlowProcess) process;
            RuleFlowProcessWrapper processWrapper = new RuleFlowProcessWrapper();
            processWrapper.localSetProcess(process);
            Set<Node> nodes = new HashSet<Node>();
            nodes.addAll(Arrays.asList(ruleFlowProcess.getNodes()));
            Set<Connection> connections = new HashSet<Connection>();
            processNodes(nodes, connections, processWrapper, project);
            return processWrapper;
        }
        return null;
View Full Code Here

TOP

Related Classes of org.jbpm.ruleflow.core.RuleFlowProcess

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.