public static void executeConnectors(final ActivityDefinition activityDef, final Execution execution, final Event event) { executeConnectors(activityDef, execution, event, null); }
@Override public void signal(final Execution execution, final String signal, final Map<String, Object> signalParameters) { if (EventConstants.TIMER.equals(signal)) { Authentication.setUserId(BonitaConstants.SYSTEM_USER); ConnectorExecutor.executeConnectors(execution.getNode(), execution, Event.onTimer); super.signal(execution, BODY_FINISHED, null); } else { super.signal(execution, signal, signalParameters); } }
@Override public void signal(final Execution execution, final String signal, final Map<String, Object> signalParameters) { if (EventConstants.MESSAGE.equals(signal)) { Authentication.setUserId(BonitaConstants.SYSTEM_USER); ConnectorExecutor.executeConnectors(execution.getNode(), execution, Event.onEvent, signalParameters); super.signal(execution, BODY_FINISHED, null); } else { super.signal(execution, signal, signalParameters); } }
ConnectorExecutor.executeConnectors(activityDef, internalExecution, HookDefinition.Event.taskOnResume);
public static void ready(final Execution internalExecution) throws TaskNotFoundException { final ActivityInstanceUUID taskUUID = new ActivityInstanceUUID(internalExecution.getActivityInstanceUUID() .toString()); final InternalActivityDefinition activityDef = internalExecution.getNode(); final TaskInstance task = getTask(taskUUID); final String activityName = task.getActivityName(); if (LOG.isLoggable(Level.FINE)) { LOG.fine("Ready task : " + taskUUID + " on activity " + activityName); } // get performer (aka participant/swimlane) final Set<Performer> performers = getPerformers(activityDef); String userId = null; Set<String> candidates = null; if (performers != null) { candidates = getCandidates(performers, task); final Performer performer = performers.iterator().next(); if (performer.getFilterDefinition() != null) { candidates = executeFilter(task, candidates, performer); if (candidates.size() == 1) { userId = candidates.iterator().next(); } } } if (userId != null) { EnvTool.getRecorder().recordTaskReady(taskUUID, null, userId); } else { EnvTool.getRecorder().recordTaskReady(taskUUID, candidates, null); } ConnectorExecutor.executeConnectors(activityDef, internalExecution, HookDefinition.Event.taskOnReady); }
ConnectorExecutor.executeConnectors(activityDef, internalExecution, HookDefinition.Event.taskOnSuspend);
final InternalActivityDefinition activityDef = internalExecution.getNode(); try { ConnectorExecutor.executeConnectors(activityDef, internalExecution, HookDefinition.Event.taskOnStart); } catch (final StaleStateException sse) { throw sse;
ConnectorExecutor.executeConnectors(execution.getNode(), execution, Event.automaticOnEnter); final String eventName = BonitaConstants.CONNECTOR_AUTOMATIC_ON_ENTER_EXECUTED_PREFIX + execution.getActivityInstanceId();
public void cancel() { ConnectorExecutor.executeConnectors(getRootExecution(), HookDefinition.Event.instanceOnCancel); // cancel execution getRootExecution().cancel(); // record cancel EnvTool.getRecorder().recordInstanceCancelled(getUUID(), EnvTool.getUserId()); ProcessUtil.removeInternalInstanceEvents(getUUID()); // execute finished instance handler if (getParentInstanceUUID() == null) { finish(); } }
@Override protected boolean executeBusinessLogic(final Execution execution) { final InternalActivityDefinition activityDefinition = execution.getNode(); final ActivityInstance activity = execution.getActivityInstance(); if (activityDefinition.isAsynchronous()) { if (hasConnectorsAutomaticOnEnter(activityDefinition)) { if (!ActivityState.ABORTED.equals(activity.getState())) { final EventService eventService = EnvTool.getEventService(); final String eventName = BonitaConstants.CONNECTOR_AUTOMATIC_ON_ENTER_PREFIX + activity.getUUID(); final Job job = JobBuilder.connectorsAutomaticOnEnterJob(eventName, execution.getInstance() .getRootInstanceUUID(), execution.getEventUUID(), execution.getInstance().getProcessInstanceUUID()); eventService.storeJob(job); } // if it has connector OnEnter the execution must stop return false; } } else { ConnectorExecutor.executeConnectors(activityDefinition, execution, Event.automaticOnEnter); } ConnectorExecutor.executeConnectors(activityDefinition, execution, Event.automaticOnExit); return !ActivityState.ABORTED.equals(activity.getState()); }
ConnectorExecutor.executeConnectors(activityDef, internalExecution, HookDefinition.Event.taskOnFinish); } catch (final StaleStateException sse) { throw sse;
ConnectorExecutor.executeConnectors(activityDefinition, execution, Event.automaticOnExit); super.signal(execution, BODY_FINISHED, null); } else {
ConnectorExecutor.executeConnectors(activity, execution, Event.onEvent, parameters); skip(internalExecution); } else if (EventConstants.CONNECTORS_AUTOMATIC_ON_ENTER_EXECUTED.equals(signal)) { ConnectorExecutor.executeConnectors(activity, execution, Event.automaticOnExit); end(internalExecution);
eventService.lockRootInstance(instance.getUUID()); ConnectorExecutor.executeConnectors(rootExecution, HookDefinition.Event.instanceOnStart); return rootExecution;
LOG.fine(this + " aborted."); ConnectorExecutor.executeConnectors(this, HookDefinition.Event.instanceOnAbort); if (getActivityInstanceUUID() != null) { final boolean isSubflow = getNode().isSubflow();
@Override protected boolean executeBusinessLogic(final Execution execution) { final InternalActivityDefinition activityDefinition = execution.getNode(); ConnectorExecutor.executeConnectors(activityDefinition, execution, Event.automaticOnEnter); String subflowProcessName = activityDefinition.getSubflowProcessName(); String subflowProcessVersion = activityDefinition.getSubflowProcessVersion();
ConnectorExecutor.executeConnectors(internalExecution, HookDefinition.Event.instanceOnFinish); final Recorder recorder = EnvTool.getRecorder(); recorder.recordInstanceEnded(instance.getUUID(), EnvTool.getUserId());