@Bean
public ProcessManagerComponent processManager() throws Exception {
CamelContext camelContext = common.camelContext();
DuccEventDispatcher eventDispatcher = processManagerTransport.duccEventDispatcher(common.agentRequestEndpoint, camelContext);
logger.info("processManager()",null, "PM publishes state update to Agents on endpoint:"+common.agentRequestEndpoint);
ProcessManagerComponent pm = new ProcessManagerComponent(camelContext, eventDispatcher);
// Instantiate delegate listener to receive incoming messages.
ProcessManagerEventListener delegateListener = this.processManagerDelegateListener(pm);
// Inject a dispatcher into the listener in case it needs to send
// a message to another component
delegateListener.setDuccEventDispatcher(eventDispatcher);
// Inject Camel Router that will delegate messages to Process Manager delegate listener
pm.getContext().addRoutes(this.routeBuilderForIncomingRequests(common.orchestratorStateUpdateEndpoint, delegateListener, pm));
pm.getContext().addRoutes(this.routeBuilderForProcessManagerStatePost(pm, common.pmStateUpdateEndpoint, Integer.parseInt(common.pmStatePublishRate)));
return pm;
}