Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

The page is under construction. (smile)

Goal

The goal of this story is to re-implement the 4-eye review process from Magnolia 4.5 using the jBPM process engine.

Proposal

Architecture

The functionality will be split into two modules: workflow-base and workflow-jbpm. The workflow-base will contain the basic API definition and the UI implementation, whereas the workflow-jbpm module will contain the jBPM based back-end implementation.

Commands API will be used to lunch new processes, as well as to provide human interaction with the running processes (approval/reject/...). This allows to untie the launching and especially the approval process from the M5 UI and allow external systems to enter the process.

The Messages API will be used to inform users about processes waiting for approval.

Note to the above process: when the message is dispatched by user (approved/rejected/...), it has to be deleted from the list (to prevent multiple dispatching).

 

The following picture provides the class diagram of basic classes:

Base API

WorkflowManager

Core interface (together with WorkflowUtil), defines methods to launch new process, resolve a running process by its ID, and a set of general constants.

WorkflowUtil

Utility interface - provides methods to be used from within the Process to communicate with Magnolia (e.g. send messages to the user/group, etc.).

WorkflowDefinition

This interface defines basic constants and methods of the bean that provides the definition of a workflow.

WorkflowRegistry

Provides getWorkflows() and getWorkflow(name) methods - to get all defined workflows and a concrete workflow definition by its name.

WorkflowProvider

Basic implementation of the WorkflowRegistry interface - allows to store the workflow definition as a String property in the configuration, or as a classpath resource identified by a file name.

Process

This interface defines basic constants and methods for the running process.

jBPM Module

ProcessImpl

An implementation of the Process interface, wraps the jBPM's ProcessInstance class.

JBPMWorkflowManager

An implementation of the WorkflowManager interface, provides its methods using the jBPM process engine.

JBPMWorkflowUtil

An implementation of the WorkflowUtil interface, provides its methods using the jBPM process engine.

 

  • No labels