Thursday, June 19, 2014

Get ready for jBPM 6.1 with a first release candidate

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.

Now is the time to give some of these new features a try and let us know if you find some issues or have some recommendations!  6.1.0.Final will be released in the next couple of weeks.

Download here:
Documentation here:
Getting started? Use jBPM installer:

From the release notes, here's a short overview of some of the changes:

Embedding forms in external applications

Now you can embed and run process/task forms in your own web application, that live inside the jBPM console, by just adding a JavaScript library to your webapps. Look at theUsing forms on client applications section in the documentation to see the full functionality and usage examples.

Attaching documents to forms

Added a new widget to forms to manage upload documents 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, a content management system, ...) or use the default demo implementation and store them in your file system.

Web Service (SOAP) interface for remote AP

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 section Deployment descriptors of the documentation.

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 (note that CR1 still uses AS7 by default but more recently dashbuilder has also added support for WildFly so for the Final release we will switch to WildFly by default)
  • 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.

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.

Other

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).

7 comments:

  1. Hi kris, is there any migration document from 5.4 to 6.0 or 6.1? I want to remain running task data.

    ReplyDelete
    Replies
    1. The Task database schema only received small updates, which hibernate should be able to manage automatically when using hbm2ddl set to update. You could also generate update script using hibernate instead.

      Delete
    2. After upgrading to jbpm 6.1 from 5.4, because the taskname changed to formname, I changed the task name in bpmn definition file, I found the WorkItemNode node id of the task which has been started recently is different from the exist task, so it can't find WorkItemNode, the old running task can not be continued.

      How to resolve this problem? What's the rule of WorkItemNode node id generation?

      Delete
  2. How you can add work item handlers as dependencies? I have them packaged as .jar and registered using WorkItemHandlerProducer. After uploading this .jar as artifact and adding it as dependency for a project, it still cannot find handlers.

    ReplyDelete
    Replies
    1. Depends on how you want to configure them:
      (1) global configuration: update jbpm-console.war\WEB-INF\classes\META-INF\CustomWorkItemHandlers.conf and add the required dependencies in jbpm-console.war\WEB-INF\lib
      (2) project-specific: in the project editor (or by editing module.xml), add a default stateful session with the work item handler configuration, add the required dependencies as dependencies of your project
      (3) using the deployment descriptor, work item handler configuration can also be done at deployment time time

      Delete
  3. Hi Kris, Does this release fix the problem in 6.0 where you could not view the process (instance) model in KIE? Thanks, David

    ReplyDelete
  4. There were a ton of bug fixes compared to 6.0.1.Final, so it's likely this is already fixed. But I'm not sure I know exactly which issue you are referring to, could you give 6.1 a try and open a JIRA in case you still see issues, or let me know the JIRA number in case you already opened one?

    ReplyDelete