jBPM

The core of jBPM is a light-weight, extensible workflow engine written in pure Java that allows executing business processes using the latest BPMN 2.0 specification. It can run in any Java environment, embedded in your application or as a service.
On top of the core engine, a lot of features and tools are offered to support business processes throughout their entire life cycle:

Eclipse-based and web-based editor to support the graphical creation of your business processes (drag & drop)

Pluggable persistence and transactions based on JPA / JTA

Pluggable human task service based on WS-HumanTask for including tasks that need to be performed by human actors

BPM makes the bridge between business analysts, developers and end users, by offering process management features and tools in a way that both business users and developers like it. Domain-specific nodes can be plugged into the palette, making the processes more easily understood by business users. jBPM supports adaptive and dynamic processes that require flexibility to model complex, real-life situations that cannot easily be described using a rigid process. It brings control back to the end users by allowing them to control which parts of the process should be executed, to dynamically deviate from the process, etc.

jBPM is also not just an isolated process engine. Complex business logic can be modelled as a combination of business processes with business rules and complex event processing. jBPM can be combined with the Drools project to support one unified environment that integrates these paradigms where a user models his business logic as a combination of processes, rules and events.