Release Notes - JBoss jBPM - Version jBPM 3.1 beta 3
(to view the issues, click the links or point your browser to http://jira.jboss.com/jira/browse/JBPM-{ISSUE-NUMBER}
Changelog from 3.1 beta2 to 3.1 beta3
Feature Request
- [JBPM-524] - updated documentation to 3.1
- [JBPM-525] - added support for untyped null value and automatic type changes of variables
Bug
- [JBPM-521] - Webapp crashes when deploying process with required variables in start task form
- [JBPM-535] - handle asynchonous continuation problem
Task
- [JBPM-523] - removed update cache from variables in context and task instance
Main updates from 3.0.x to 3.1
- Asynchronous continuations (see user guide Chapter 'Asynchronous continuations')
- Configuration framework (see user guide Chapter 'Configuration')
- Task instance variables (see user guide Chapter 'Task Management' section 'Task controllers')
- Added the expressions language
- Refactored the decision expressions
- TaskInstanceFactory replaced the task instance class configuration (see user guide Chapter 'Task Management' section 'Customizing task instances')
[JBPM-499] - add support for JSF like expressions in actions and assignments
BACKWARDS INCOMPATIBLE CHANGE: refactored the decision expressions. the expression inside a condition
element <condition>expression</condition> has changed from a beanshell script to a
JSF-like expression. Another change is that first all the conditions are evaluated, and if none
of the conditions are met, the default transition is taken. Previously, a decision looped over
all the transitions and took the first transition for which the condition was met or that didn't
have a condition. The difference is that the default (else-branch) transition now has to be moved
up as the first transition.
The rest here is not yet finished and is still subject to change over the next
3.1 alpha and beta releases.
Migration guide
This part will guide you through the most important changes that might affect compatibility when
upgrading from jBPM 3.0.x to jBPM 3.1
Configuration: The jbpm.properties
file is replaced by a file called
jbpm.cfg.xml
. The easiest way to upgrade jBPM is to convert the properties
you had in your jbpm.properties
to the section
DEPRECATED JbpmSessionFactory CONFIGURATIONS
at the bottom of the file
jbpm.cfg.xml
.
Persistence API: The biggest change related to backwards compatibility between 3.0.x and 3.1
is the partial redesign of the persistence API. We have deprecated some parts of the old persistence
API (mainly JbpmSessionFactory), but it is still available. It might be removed in one of the future
versions. There were 2 motivations that lead to this redesign:
- We included the use of asynchronous messaging into the jBPM engine. The actual asynchronous messaging
technology used should be configurable (jBPM's built-in messaging or JMS). This results in a large
number of combinations on how the hibernate database connection would be fetched and combined with
the messaging in one transaction. The result was a simplistic aspect framework (ContextBuilder, see
user guide). That provides with enough decoupling so that the same client code that uses the jbpm API's
would remain the same for the different configuration options. With that decoupling, the user can switch
easily between different environments and more importantly, it is the only maintainable solution
to develop the jbpm code and make it availble on all Java environments from plain POJO to EJB's.
- Explicitly target 3 different environments: POJO without persistence, POJO with persistence and
enterprise. To run in any environment, currently jBPM has a lot of configurable and customizable
components. Still it can be a challenge to get them all properly for your environment. We want to
ease this by explicitly targetting 3 environments. For each of those environments, the configuration
file
jbpm.cfg.xml
will contain a set of configurations for that specific environment.
Changes to the process XML schema (jPDL)
- added async attribute to all node types
- added signalling to task
- added end-tasks to task-node
Changes to the Database schema
- In table JBPM_TOKEN, column ISASYNC_ was added of with hibernate type boolean (this resolves to
different database types in different databases)
-
In the identity module, column PARENT_ (foreign key type like e.g. BIGINT on hsqldb) was added to
table JBPM_GROUP
(http://jira.jboss.com/jira/browse/JBPM-323)
- added ISSIGNALLING_ column to JBPM_PROCESSINSTANCE, JBPM_TOKEN and JBPM_TASKINSTANCE
Known issues
- exceptions are not all converted