4 Replies Latest reply on Feb 8, 2011 10:30 AM by krisverlaenen
      • 1. jBPM 5.0 released

        Bravo, Kris!

        But I have a question about the execution of BPMN processes.

        In jbpm5, the rule flows (ResourceType.DRF) are transformed to drools rules (Drools Rule Language) for execution, BPMN processes (ResourceType.BPMN2) are also transformed to drools rules just before their execution?

        Waiting for your response.


        • 2. jBPM 5.0 released

          Hi Hui,

          The processes are not transformed to rules for the execution. Neither of them are transformed (DRF or BPMN files).


          • 3. Re: jBPM 5.0 released

            Hi Mauricio

            I read the source code of JBPM5.0 (krisv-jbpm-5.0-CR1-35-gc7bef4e.zip), in \jbpm-flow-builder\src\main\java\org\jbpm\compiler\ProcessBuilderImpl.java.

            In this file, it transforms rule flows into rule languages.

            However according to what you said, jbpm doesn't transform rule flows into rule languages, so I am confused.


            The following is a piece of the code in ProcessBuilderImpl.java.

            Can you tell me what is the function of the file "ProcessBuilderImpl.java".


            public void buildProcess(final Process process, Resource resource) {
                    if ( resource != null && ((InternalResource)resource).hasURL() ) {
                        ((org.jbpm.process.core.Process) process).setResource( resource );
                    boolean hasErrors = false;
                    ProcessValidator validator = processValidators.get(((Process)process).getType());
                    if (validator == null) {
                        System.out.println("Could not find validator for process " + ((Process)process).getType() + ".");
                        System.out.println("Continuing without validation of the process " + process.getName() + "[" + process.getId() + "]");
                    } else {
                        ProcessValidationError[] errors = validator.validateProcess( (WorkflowProcess) process );
                        if ( errors.length != 0 ) {
                            hasErrors = true;
                            for ( int i = 0; i < errors.length; i++ ) {
                                this.errors.add( new ParserError( errors[i].toString(),
                                                                  -1 ) );
                    if ( !hasErrors ) {
                        // generate and add rule for process
                        String rules = generateRules( process );
            • 4. Re: jBPM 5.0 released

              The jBPM5 engine does not translate processes into rules (and neither did Drools Flow).  It uses a simple state machine to represent the current state and signal next states, etc.  The section you are referring to however allows you to combine this with rules if you want.  For example, if you want to use complex rule constraints (using the Drools DRL) in your exclusive gateway, we will generate the rules for you.  Similarly, if you use a condition start event, we will generate a rule that will trigger your process if that condition is met.

              The normal control flow however does not use rules or a rules engine, it works by having different state nodes trigger each other.