In order for jBPM to access services of other components in the application, we can use the workitem handler extension point provided by jBPM. Workitem handlers are used to specify domain-specific services to a BPMN activity. There are several inbuilt generic workitem handlers prebuilt in jBPM.
For creating a workitem handler, we have to implement the org.kie.runtime.instance.WorkItemHandler
interface. This interface holds two methods to be implemented:
WorkItemManager.completeWorkItem(long workItemId, Map<String, Object> results)
WorkItemManager.abortWorkItem(long workItemId)
A custom workitem has to be registered to the engine by using the workitem manager. For example, for registering a customer task, we can use the following:
ksession.getWorkItemManager().registerWorkItemHandler("Notification", new NotificationWorkItemHandler());
In conclusion, we have discussed the provisions available in jBPM for integrating it with generic software architecture...