Wednesday, September 10, 2014

jBPM 6.1.0.Final available

The bits have been out for a few weeks now (as we wanted to wait on the new website for the public announcement), but we are now glad to announce that jBPM 6.1 is available and you can find all information about it on our new website.

Some useful links:

Ready to give it a try but not sure how to start?  Take a look at the jbpm-installer chapter.

jBPM 6.1 comes with a ton of smaller improvements and bug fixes (done over the last few months on top of 6.0.1.Final), and also includes some important new features, adding to the foundation delivered as part of jBPM 6.0.

Embedding forms in external applications

Now you can embed and run process/task forms that live inside the Kie-Workbench just adding a JavaScript library to your webapps. Look at the Using forms on client applications section to see the full functionality and usage examples.

Attaching documents to forms

Added new file type to manage upload documents on forms and store them on process variables. Using the Pluggable Variable Persistence you'll be able to create your own Marshalling Strategy and store the document contents on different systems (Database, Alfresco, Google Docs...) or use the default implementation and store them in your File System.

Web Service (SOAP) interface for remote API

The execution server, that is part of the jbpm-console web tooling, now also comes with a Web Service interface (in addition to the existing REST, JMS and Java client interfaces).

Deployment descriptors

Deployment descriptors have been added as an optional, yet powerful way of configuring deployment units - kjars. Deployment descriptors allow to configure (among others)

  • persistence unit names
  • work item handlers
  • event listeners (process, agenda, task)
  • roles (for authorizarion - see section 1.5)

Deployment descriptors can be configured on various levels for enhanced flexibility to allow simple override functionality. Detailed definition of deployment descriptor can be found in the Deployment descriptors section.

Role-based authorization at runtime for process definitions and process instances

The process definition and process instance view in the jbpm console now also take the role-based access control restrictions into account that can be defined on the project the process is defined in. You can limit the visibility of a project (or repository as a whole) by associating some roles with it that are required to be able to see the project (or repository). This can be done when creating the repository, or bu using the command line interface to connect to the execution server. The deployment descriptor (see previous section) also allows you to further customize these roles at deployment time. At runtime, the views will check if the current logged in user has one of the necessary roles to be able to see that process. If not, the user will not see this process or process instance in the process definition or process instance list respectively.

jBPM installer updates

The installer is updated to support:
  • Wildfly 8.1 as application server
  • Eclipse BPMN2 Modeler 1.0.2
  • Eclipse Kepler SR2

jBPM Spring integration

Spring integration has been improved to allow complete configuration of jBPM runtime using Spring XML. That essentially means there are number of factory beans provided as part of droolsjbpm-integration module that significanlty simplifies configuration of jBPM. Moreover it allows various configuration options such as:

  • reply on JTA and entity manager factory
  • rely on JTA and shared entity manager
  • rely on local transactions and entity manager factory
  • rely on local transactions and shared entity manager

Details about spring configuration can be found in this article.


Smaller enhancements also include:
  • Task service (query) improvements, significantly speeding up queries when you have a large numbers of tasks in the database.
  • Various improvements to the asynchronous job executor so it can handle larger loads more easily and can be configured (number of parallel threads executing the jobs, retries, etc.).
  • Ability to configure task administrator groups in a UserTask (similar to how you already could configure individual task administrators).
  • Removed limitation on custom implementations of work item handler, event listeners that had to be placed on global classpath - usually in jbpm-console.war/WEB-INF/lib. With that custom classes can be added as maven dependencies into the project and will be registered on underlying components (ksession).

Data Modeler - round trip and source code preservation

Full round trip between Data modeler and Java source code is now supported. No matter where the Java code was generated (e.g. Eclipse, Data modeller), data modeler will only update the necessary code blocks to maintain the model updated.

 Standardization of the display of tabular data

We have standardized the display of tabular data with a new table widget.
The new table supports the following features:
  • Selection of visible columns
  • Resizable columns
  • Moveable columns


  1. Hello Kris,
    I am using jbpm 6.1 o tomcat7. I am able to clone a project from git repository into workbench(jbom-console application), but unable to push my chages from VFS to origin repository.

    Please help me.

    Thank you

    1. What url are you using cloning the repo? git://... is read only, if you want to push changes, you need to log in using ssh:// and provide username / password

    2. Hello Kris,

      Thank you for your reply, I have authentication problem with ssh, so I was using https://. Let me try with ssh://

      Thank you

    3. Hello Kris,
      When I clone respositories with https:// and user id staduri, It works, but ssh is not working with same user id. Do we need to use a specific userid for ssh for jbpm?. I have verified the ssh keys at git and my local machine, both are same. Please help me.

      Thank you

    4. Take a look at

      Url should be something like ssh://localhost:8001/jbpm-playground

    5. Hello Krisv,
      Thank you for your reply. I am sorry I was not clear on explaining the things.
      I am working with KIE workbench I am looking for solution to push my bpm changes from KIE Workbench.

      Eclipse is not an issue.

      Please let me know.

      Thank you

  2. You cannot push changes from the workbench directly (yet). You can however use a git tool (like eclipse for example) to fetch the changes from the workbench and push those to another repo. This could probably even be automated.

  3. Hello Kris,
    Thank you for your help. I appreciate your time on this. I have few questions on BPM :
    1. What is the best deployment model do you suggest (Embedded or Remote deployment) ?.

    2. If I choose to go with Embedded model, Do I need to build the new UI to show process instances and process model, variables for each process instance For Ex: like workbench --> process instances UI?

    3. We are working with JBPM 6.1.0-Final on Tomcat 7, Mysql. I do see Brokenpipe issues everyday or too. I do not have complete stacktrace, but I will let you know once I get that. But If you experienced anything related to this please provide me the solution.

    I appreciate your help on these issues.

    Thank you

  4. 1. depends on the use case, remote is more "as a service" and ideal for loose coupling, embedded gives you more control and allows closer (transaction) integration

    2. no, your embedded engines can simply store to the same database as the workbench does, so they can cooperate if you want

    3. please file a JIRA with additional details and we'll take a look

  5. Thank you Kris, I appreciate your help.

    Here is stack trace for your reference:

    [02/12/14 05:03:05:005 CST] ERROR spi.SqlExceptionHelper: The last packet successfully received from the server was 111,671,984 milliseconds ago. The last packet sent successfully to the server was 111,671,984 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
    2014-12-02 17:03:05,081 [http-bio-8080-exec-10] WARN Could not commit session
    javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: could not extract ResultSet
    at org.hibernate.ejb.AbstractEntityManagerImpl.convert( ~[hibernate-entitymanager-4.2.12.Final.jar:4.2.12.Final]

    I have updated the wait_timeout and also added following config to persistence.xml

    Thank you

  6. hibernate.connection.release_mode ="after_transaction"

  7. Hello Kris,

    Can you please suggest any other transcation manager for jbpm6 on tomcat 7. Currently we are using Bitronix transaction manager.

    Thank you

    1. I believe jboss tm (narayana) should work fine as well.