Overview

blissed is a very small framework to assist in the creation, management and execution of processes and states.

blissed is not intended to be useful on its own, but rather may support a larger workflow system or other process-based application. To allow it to be easy to integrate with other projects, a Jelly tag library is provided.

Concepts

blissed is effectively a state-machine framework. A state-machine typically models some sort of process, from the business process of approving a loan to the lower-level process of matching a string of characters against a regular-expression. Each state represents an activity to be performed. Each state may have multiple transitions, or directed links, to other states. The transitional links may be guarded so as to only open under certain circumstances.

blissed has direct representations of processes, states and transitions by the way of the Process, State and Transition classes. Each Transition may be guarded by an implementation of the Guard interface.

There may be several instances of a process occuring simultaneously, each within a different context. A loan application may be considered the context of a process instance, as might a string of characters to be matched against a regular-expression. blissed provides a ProcessContext class for maintaining the context of a given process instance including current state within a process and any process-specific data an application associates with the process instance.