BPM & EIP configuration

Each workspace has its own BPMN process engine (Camunda) and EIP integration engine (Apache Camel). This page covers their configuration and how their runtime events are bridged (EventAdmin).

BPM configuration

The config file is <workspace>/etc/bpm/bpm.yml (auto-generated on first boot). Engine data lives under <workspace>/var/bpm/.

Key Default Notes
jdbcURL jdbc:h2:<workspace>/var/bpm/data JDBC URL; supports variable substitution such as \${workspace.name}
username sa DB user
password (empty) DB password
driverClassName resolved from URL required for drivers in their own OSGi bundle (e.g. org.postgresql.Driver)
history audit Camunda history level

Shared DB (cluster) example:

jdbcURL: jdbc:postgresql://db:5432/bpm_\${workspace.name}
username: bpm
password: secret
driverClassName: org.postgresql.Driver
history: audit

Important note on changing the history level

The history level (none / activity / audit / full / auto) is persisted to the database on first boot. On later boots, if the configured level differs from the stored one, the engine fails to start (this check cannot be disabled).

To change it deliberately, stop the workspace, update ACT_GE_PROPERTY (NAME_='historyLevel') in the DB, then match it in bpm.yml and restart. Alternatively, set history: auto to always adopt whatever level is already stored.

EIP configuration

Enable/disable the EIP engine with enabled in <workspace>/etc/eip/eip.yml (enabled by default). Design routes in EIP Modeler and monitor them in EIP Console.

Runtime events (EventAdmin bridge)

Both engines publish their runtime lifecycle to the OSGi EventAdmin service. The topic and property conventions are shared across both engines, so you can subscribe uniformly by filtering on the workspace property.

Topic naming

The fully-qualified type name with . replaced by /, suffixed with an upper-case action.

<fully/qualified/Type>/<ACTION>

BPM topics (examples)

Subject Topic root Actions
Process instance org/camunda/bpm/engine/runtime/ProcessInstance STARTED, ENDED
User task org/camunda/bpm/engine/task/Task CREATED, ASSIGNED, COMPLETED, UPDATED, DELETED
Incident org/camunda/bpm/engine/runtime/Incident CREATED, RESOLVED, ...

Process, activity and user-task events are published independently of the history level. Variable and incident events follow the configured history level (audit or higher).

EIP topics (examples)

Subject Topic root Actions
CamelContext org/apache/camel/CamelContext STARTED, STOPPED, ...
Route org/apache/camel/Route ADDED, STARTED, STOPPED, ...
Exchange org/apache/camel/Exchange CREATED, COMPLETED, FAILED, ...

CamelContext / Route / Service events are enabled by default. Exchange and step events are very high volume and disabled by default — enable them when needed.

Consuming events

Register an OSGi EventHandler with an event.topics filter. Wildcards are supported.

org/camunda/bpm/engine/task/Task/*
org/apache/camel/Exchange/FAILED

Every event carries a workspace property, so both engines can be handled uniformly.