The 5.7 branch of Magnolia reached End-of-Life on December 31, 2023, as specified in our End-of-life policy. This means the 5.7 branch is no longer maintained or supported. Please upgrade to the latest Magnolia release. By upgrading, you will get the latest release of Magnolia featuring significant improvements to the author and developer experience. For a successful upgrade, please consult our Magnolia 6.2 documentation. If you need help, please contact info@magnolia-cms.com.

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.