Magnolia 5.7 reached extended end of life on May 31, 2022. Support for this branch is limited, see End-of-life policy. Please note that to cover the extra maintenance effort, this EEoL period is a paid extension in the life of the branch. Customers who opt for the extended maintenance will need a new license key to run future versions of Magnolia 5.7. If you have any questions or to subscribe to the extended maintenance, please get in touch with your local contact at Magnolia.

Magnolia ships with a "four-eye" content approval workflow. Workflow is configured in the Workflow and Workflow jBPM modules. The workflow engine is based on the JBPM Business Process Management (BPM) Suite.


Modules

Magnolia's workflow implementation consists of four modules.

ModuleDescription
WorkflowAn engine-agnostic integration module. Enables the necessary integration points for Magnolia to communicate with a workflow engine.
Workflow jBPMMagnolia's jBPM integration module. Takes care of loading BPMN process definitions and workitem handlers. Implements the concepts of RuntimeManager and RuntimeEnvironment from jBPM 6.
Drools JCR persistenceUsed for persisting work items and sessions to JCR.
jBPM JCR persistenceUsed for persisting processes to JCR.

The Kie modules are heavily inspired by jBPMs own JPA implementation.

Installing

Maven is the easiest way to install the module. Add the following to your bundle. The parent POM of your webapp project should set the latest version of the module automatically. Should you need to use a specific module version, you can define it using the <version/> in the dependency.

Be mindful of the version discrepancy between the workflow modules and the core module. 

<dependency>
  <groupId>info.magnolia.workflow</groupId>
  <artifactId>magnolia-module-workflow</artifactId>
</dependency>
<dependency>
  <groupId>info.magnolia.workflow</groupId>
  <artifactId>magnolia-module-workflow-jbpm</artifactId>
</dependency>
<dependency>
  <groupId>info.magnolia.workflow</groupId>
  <artifactId>drools-jcr-persistence</artifactId>
</dependency>
<dependency>
  <groupId>info.magnolia.workflow</groupId>
  <artifactId>jbpm-jcr-persistence</artifactId>
</dependency>

Compatibility module

We have been gradually removing the old Content API from our modules since Magnolia 5.6. If you have custom code relying on classes from the old workflow module then you must do one of two things:

  • Update your code for the new version of the workflow module.
  • Or you can use the magnolia-workflow-compatibility module together with the magnolia-core-compatibility and the magnolia-diff-compatibility modules.

With maven:

Add the following snippet to you pom file:

<dependency>
  <groupId>info.magnolia.workflow</groupId>
  <artifactId>magnolia-workflow-compatibility</artifactId>
</dependency>

Usage

See Workflow.