The Camel jbpm component provides integration with Business Process Management (BPM) Suit jBPM 6. Behind the hoods It uses kie-remote-client API to interact with jBPM instance over REST. Let’s see an example of it:
Say you have the following process available from the business central of jBPM:

The following sample blueprint shows how you can invoke the above process definition:
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd">
<camelContext id="blueprint-bean-context" xmlns="http://camel.apache.org/schema/blueprint">
<route id="jbpm-route">
<from id="_from1" uri="timer://foo?fixedRate=true&period=1000"/>
<setHeader headerName="CamelJBPMProcessId" id="_setHeader1">
<constant>project1.simpleprocess</constant>
</setHeader>
<to id="_to1" uri="jbpm:http://127.0.0.1:8080/business-central?userName=admin&password=Password1!&deploymentId=example:project1:1.0"/>
</route>
</camelContext>
</blueprint>
The above example uses the default operation, which is create new Process. Here is the list of available operations which you can pass via the operation parameter:
Process operations: startProcess, abortProcessInstance, signalEvent, getProcessInstance, getProcessInstances
Rule operations: fireAllRules, getFactCount, getGlobal, setGlobal
Work Item Operations: abortWorkItem, completeWorkItem
Task Operations: activateTask, addTask, claimNextAvailableTask, claimTask, completeTask, delegateTask, exitTask, failTask, getAttachment, getContent, getTasksAssignedAsBusinessAdministrator, getTasksAssignedAsPotentialOwnerByStatus, getTaskByWorkItem, getTaskBy, getTaskContent, getTasksByProcessInstance, getTasksByStatusByProcessInstance, getTasksOwned, nominateTask, releaseTask, resumeTask, skipTask, startTask, stopTask, suspendTask
Passing variables to the Process
Just as you would do with Java code, you can init a new jBPM process passing an HashMap of parameters:
<camelContext id="myContext" xmlns="http://camel.apache.org/schema/blueprint">
<route>
<from uri="direct:start"/>
<setHeader headerName="CamelJBPMProcessId">
<constant ref="maps" />
</setHeader>
</route>
</camelContext>
<property name="maps">
<map>
<entry key="Param 1" value="1" />
<entry key="Param 2" value="2" />
</map>
</property>
Do you want some more Spring stuff ? check Spring Boot Tutorials !