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.