public ProcessRuntimeImpl(InternalKnowledgeRuntime kruntime) { this.kruntime = kruntime; TimerService timerService = kruntime.getTimerService(); if ( !(timerService.getTimerJobFactoryManager() instanceof CommandServiceTimerJobFactoryManager) ) { timerService.setTimerJobFactoryManager( new ThreadSafeTrackableTimeJobFactoryManager() ); } ((CompositeClassLoader) getRootClassLoader()).addClassLoader( getClass().getClassLoader() ); initProcessInstanceManager(); initSignalManager(); timerManager = new TimerManager(kruntime, kruntime.getTimerService()); processEventSupport = new ProcessEventSupport(); if (isActive()) { initProcessEventListeners(); initStartTimers(); } initProcessActivationListener(); }
public void addEventListener(final ProcessEventListener listener) { this.processEventSupport.addEventListener( listener ); }
public void cancel() { boolean hidden = false; Node node = getNode(); if (node != null && node.getMetaData().get("hidden") != null) { hidden = true; } if (!hidden) { InternalKnowledgeRuntime kruntime = getProcessInstance().getKnowledgeRuntime(); ((InternalProcessRuntime) kruntime.getProcessRuntime()) .getProcessEventSupport().fireBeforeNodeLeft(this, kruntime); } nodeInstanceContainer.removeNodeInstance(this); if (!hidden) { InternalKnowledgeRuntime kruntime = getProcessInstance().getKnowledgeRuntime(); ((InternalProcessRuntime) kruntime.getProcessRuntime()) .getProcessEventSupport().fireAfterNodeLeft(this, kruntime); } }
private void handleSLAViolation() { if (slaCompliance == SLA_PENDING) { InternalKnowledgeRuntime kruntime = getKnowledgeRuntime(); InternalProcessRuntime processRuntime = (InternalProcessRuntime) kruntime.getProcessRuntime(); processRuntime.getProcessEventSupport().fireBeforeSLAViolated(this, kruntime); logger.debug("SLA violated on process instance {}", getId()); this.slaCompliance = SLA_VIOLATED; this.slaTimerId = -1; processRuntime.getProcessEventSupport().fireAfterSLAViolated(this, kruntime); } }
private static void executeWorkItem(StatefulKnowledgeSessionImpl ksession, WorkItemImpl workItem, WorkItemNodeInstance workItemNodeInstance) { ProcessEventSupport eventSupport = ((InternalProcessRuntime) ksession.getProcessRuntime()).getProcessEventSupport(); eventSupport.fireBeforeNodeTriggered(workItemNodeInstance, ksession); ((WorkItemManager) ksession.getWorkItemManager()).internalExecuteWorkItem(workItem); workItemNodeInstance.internalSetWorkItemId(workItem.getId()); eventSupport.fireAfterNodeTriggered(workItemNodeInstance, ksession); }
public ProcessInstance startProcessInstance(long processInstanceId, String trigger) { try { kruntime.startOperation(); ProcessInstance processInstance = getProcessInstance(processInstanceId); ((org.jbpm.process.instance.ProcessInstance) processInstance).configureSLA(); getProcessEventSupport().fireBeforeProcessStarted( processInstance, kruntime ); ((org.jbpm.process.instance.ProcessInstance) processInstance).start(trigger); getProcessEventSupport().fireAfterProcessStarted( processInstance, kruntime ); return processInstance; } finally { kruntime.endOperation(); } }
public void setVariable(String name, Object value) { if (name == null) { throw new IllegalArgumentException( "The name of a variable may not be null!"); } Object oldValue = getVariable(name); if (oldValue == null) { if (value == null) { return; } } ProcessEventSupport processEventSupport = ((InternalProcessRuntime) getProcessInstance() .getKnowledgeRuntime().getProcessRuntime()).getProcessEventSupport(); processEventSupport.fireBeforeVariableChanged( (variableIdPrefix == null ? "" : variableIdPrefix + ":") + name, (variableInstanceIdPrefix == null? "" : variableInstanceIdPrefix + ":") + name, oldValue, value, getProcessInstance(), getProcessInstance().getKnowledgeRuntime()); internalSetVariable(name, value); processEventSupport.fireAfterVariableChanged( (variableIdPrefix == null ? "" : variableIdPrefix + ":") + name, (variableInstanceIdPrefix == null? "" : variableInstanceIdPrefix + ":") + name, oldValue, value, getProcessInstance(), getProcessInstance().getKnowledgeRuntime()); }
processRuntime.getProcessEventSupport().fireBeforeProcessCompleted(this, kruntime); processRuntime.getProcessEventSupport().fireAfterProcessCompleted(this, kruntime);
ProcessEventSupport eventSupport = ((InternalProcessRuntime) ((InternalKnowledgeRuntime) ksession).getProcessRuntime()).getProcessEventSupport(); eventSupport.fireBeforeNodeTriggered(subProcessNodeInstance, ksession); subProcessNodeInstance.internalSetProcessInstanceId(subProcessInstance.getId()); eventSupport.fireAfterNodeTriggered(subProcessNodeInstance, ksession); if (subProcessInstance.getState() == ProcessInstance.STATE_COMPLETED) {
protected void handleSLAViolation() { if (slaCompliance == ProcessInstance.SLA_PENDING) { InternalProcessRuntime processRuntime = ((InternalProcessRuntime) getProcessInstance().getKnowledgeRuntime().getProcessRuntime()); processRuntime.getProcessEventSupport().fireBeforeSLAViolated(getProcessInstance(), this, getProcessInstance().getKnowledgeRuntime()); logger.debug("SLA violated on node instance {}", getId()); this.slaCompliance = ProcessInstance.SLA_VIOLATED; this.slaTimerId = -1; processRuntime.getProcessEventSupport().fireAfterSLAViolated(getProcessInstance(), this, getProcessInstance().getKnowledgeRuntime()); } }
public ProcessInstance startProcessInstance(long processInstanceId, String trigger) { try { kruntime.startOperation(); ProcessInstance processInstance = getProcessInstance(processInstanceId); ((org.jbpm.process.instance.ProcessInstance) processInstance).configureSLA(); getProcessEventSupport().fireBeforeProcessStarted( processInstance, kruntime ); ((org.jbpm.process.instance.ProcessInstance) processInstance).start(trigger); getProcessEventSupport().fireAfterProcessStarted( processInstance, kruntime ); return processInstance; } finally { kruntime.endOperation(); } }
public void setVariable(String name, Object value) { if (name == null) { throw new IllegalArgumentException( "The name of a variable may not be null!"); } Object oldValue = getVariable(name); if (oldValue == null) { if (value == null) { return; } } ProcessEventSupport processEventSupport = ((InternalProcessRuntime) getProcessInstance() .getKnowledgeRuntime().getProcessRuntime()).getProcessEventSupport(); processEventSupport.fireBeforeVariableChanged( (variableIdPrefix == null ? "" : variableIdPrefix + ":") + name, (variableInstanceIdPrefix == null? "" : variableInstanceIdPrefix + ":") + name, oldValue, value, getProcessInstance(), getProcessInstance().getKnowledgeRuntime()); internalSetVariable(name, value); processEventSupport.fireAfterVariableChanged( (variableIdPrefix == null ? "" : variableIdPrefix + ":") + name, (variableInstanceIdPrefix == null? "" : variableInstanceIdPrefix + ":") + name, oldValue, value, getProcessInstance(), getProcessInstance().getKnowledgeRuntime()); }
processRuntime.getProcessEventSupport().fireBeforeProcessCompleted(this, kruntime); processRuntime.getProcessEventSupport().fireAfterProcessCompleted(this, kruntime);
protected void triggerNodeInstance(org.jbpm.workflow.instance.NodeInstance nodeInstance, String type, boolean fireEvents) { boolean hidden = false; if (getNode().getMetaData().get("hidden") != null) { hidden = true; } InternalKnowledgeRuntime kruntime = getProcessInstance().getKnowledgeRuntime(); if (!hidden && fireEvents) { ((InternalProcessRuntime) kruntime.getProcessRuntime()) .getProcessEventSupport().fireBeforeNodeLeft(this, kruntime); } // trigger next node nodeInstance.trigger(this, type); Collection<Connection> outgoing = getNode().getOutgoingConnections(type); for (Connection conn : outgoing) { if (conn.getTo().getId() == nodeInstance.getNodeId()) { this.metaData.put("OutgoingConnection", conn.getMetaData().get("UniqueId")); break; } } if (!hidden && fireEvents) { ((InternalProcessRuntime) kruntime.getProcessRuntime()) .getProcessEventSupport().fireAfterNodeLeft(this, kruntime); } }
if (!hidden) { ((InternalProcessRuntime) kruntime.getProcessRuntime()) .getProcessEventSupport().fireBeforeNodeTriggered(this, kruntime); .getProcessEventSupport().fireAfterNodeTriggered(this, kruntime);
protected void handleSLAViolation() { if (slaCompliance == ProcessInstance.SLA_PENDING) { InternalProcessRuntime processRuntime = ((InternalProcessRuntime) getProcessInstance().getKnowledgeRuntime().getProcessRuntime()); processRuntime.getProcessEventSupport().fireBeforeSLAViolated(getProcessInstance(), this, getProcessInstance().getKnowledgeRuntime()); logger.debug("SLA violated on node instance {}", getId()); this.slaCompliance = ProcessInstance.SLA_VIOLATED; this.slaTimerId = -1; processRuntime.getProcessEventSupport().fireAfterSLAViolated(getProcessInstance(), this, getProcessInstance().getKnowledgeRuntime()); } }
public ProcessRuntimeImpl(InternalWorkingMemory workingMemory) { TimerService timerService = workingMemory.getTimerService(); if ( !(timerService.getTimerJobFactoryManager() instanceof CommandServiceTimerJobFactoryManager) ) { timerService.setTimerJobFactoryManager( new ThreadSafeTrackableTimeJobFactoryManager() ); } this.kruntime = (InternalKnowledgeRuntime) workingMemory.getKnowledgeRuntime(); initProcessInstanceManager(); initSignalManager(); timerManager = new TimerManager(kruntime, kruntime.getTimerService()); processEventSupport = new ProcessEventSupport(); if (isActive()) { initProcessEventListeners(); initStartTimers(); } initProcessActivationListener(); }
public void addEventListener(final ProcessEventListener listener) { this.processEventSupport.addEventListener( listener ); }
if (!hidden) { ((InternalProcessRuntime) kruntime.getProcessRuntime()) .getProcessEventSupport().fireBeforeNodeLeft(this, kruntime); if (!hidden) { ((InternalProcessRuntime) kruntime.getProcessRuntime()) .getProcessEventSupport().fireAfterNodeLeft(this, kruntime);
private static void executeWorkItem(StatefulKnowledgeSessionImpl ksession, WorkItemImpl workItem, WorkItemNodeInstance workItemNodeInstance) { ProcessEventSupport eventSupport = ((InternalProcessRuntime) ksession.getProcessRuntime()).getProcessEventSupport(); eventSupport.fireBeforeNodeTriggered(workItemNodeInstance, ksession); ((WorkItemManager) ksession.getWorkItemManager()).internalExecuteWorkItem(workItem); workItemNodeInstance.internalSetWorkItemId(workItem.getId()); eventSupport.fireAfterNodeTriggered(workItemNodeInstance, ksession); }