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 modules. Add the following dependencies to your bundle:

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>
  <version>6.0.9</version>
</dependency>

<dependency>
  <groupId>info.magnolia.workflow</groupId>
  <artifactId>magnolia-module-workflow-jbpm</artifactId>
  <version>5.8</version>
</dependency>

<dependency>
  <groupId>info.magnolia.workflow</groupId>
  <artifactId>drools-jcr-persistence</artifactId>
  <version>5.8</version>
</dependency>

<dependency>
  <groupId>info.magnolia.workflow</groupId>
  <artifactId>jbpm-jcr-persistence</artifactId>
  <version>5.8</version>
</dependency>

Pre-built JARs are also available for download. See Installing a module for help.

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>
  <version>5.8</version>
</dependency>

Manually:

Add these jar files to the WEB-INF/lib folder of your webapp:

Usage

See Workflow.

#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))