@Override protected boolean executeBusinessLogic(Execution execution) { XpdlExecution xpdlExecution = (XpdlExecution) execution; if (activityType.equals(ActivityType.task)) { addTaskToRepository(taskRuntime); return false; } //noImpl must have a hook if it is not a task HookExecutor.executeHooks(javaHooks, xpdlExecution, activityId, JavaHook.Type.automaticOnEnter); return true; }
/** * * @param node * @return true if the node is in his iteration */ public boolean containsNode(final Node node) { return this.getNodeInIterationDescriptor(node) != null; }
@Override protected boolean bodyStartAutomatically() { if (activityType.equals(ActivityType.task)) { return false; } return true; }
private static ExternalActivity createBehaviour(final ActivityDefinition activity) { final String activityName = activity.getName(); AbstractActivity abstractActivity = null; if (activity.isSubflow()) { abstractActivity = new SubFlow(activityName); } else if (activity.isTimer()) { abstractActivity = new Timer(activityName); } else if (activity.isAutomatic()) { abstractActivity = new AutomaticActivity(activityName); } else if (activity.isTask()) { abstractActivity = new Task(activityName); } else if (activity.isSendEvents()) { abstractActivity = new SendEvents(activityName); } else if (activity.isReceiveEvent()) { abstractActivity = new ReceiveEvent(activityName); } else if (activity.isThrowingErrorEvent()) { abstractActivity = new ThrowingErrorEvent(activityName); } else if (activity.isThrowingSignalEvent()) { abstractActivity = new ThrowingSignalEvent(activityName); } else if (activity.isCatchingSignalEvent()) { abstractActivity = new CatchingSignalEvent(activityName); } else if (activity.isCatchingErrorEvent()) { abstractActivity = new CatchingErrorEvent(activityName); } return abstractActivity; }
protected void executeActivityInstance(final Execution internalExecution) { final boolean canContinue = executeBody(internalExecution); if (canContinue) { end(internalExecution); } else { internalExecution.waitForSignal(); } }
@Override protected boolean executeBusinessLogic(final Execution execution) { final XpdlExecution xpdlExecution = (XpdlExecution) execution; if (this.activityType.equals(ActivityType.task)) { addTaskToRepository(getTask(xpdlExecution)); return false; } //noImpl must have a hook if it is not a task EngineEnvTool.getHookExecutor() .executeHooks(this.javaHooks, xpdlExecution, this.activityId, JavaHook.Type.automaticOnEnter); return true; }
@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); } }
public void resume(String resumeUserId, boolean taskAssign) { if (LOG.isLoggable(Level.FINE)) { LOG.fine("Resuming task : " + taskUUID + " on activity " + activityId); } final Recorder recorder = EnvTool.getRecorder(); if (taskAssign) { this.userId = resumeUserId; recorder.recordTaskAssigned(this, resumeUserId, candidates, resumeUserId); } this.state = this.stateBeforeSuspend; recorder.recordTaskResumed(this, resumeUserId); HookExecutor.executeHooks(activityDef.getJavaHooks(), xpdlExecution, activityId, JavaHook.Type.taskOnResume); }
public static Map<String, Object> executeConnector(final Connector connector, final Map<String, Object[]> parameters) throws Exception { final Binding binding = getBinding(null, null, null, null, true); setParameters(binding, formatParameters(parameters), connector); connector.execute(); return getGetterValues(connector); }
public static Set<String> executeRoleResolver(final RoleResolver resolver, final Map<String, Object[]> parameters) throws Exception { final Binding binding = getBinding(null, null, null, null, true); setParameters(binding, formatParameters(parameters), resolver); return resolver.searchMembers(null, null, "test"); }
public void recordEnterActivity(AbstractActivity activity, XpdlExecution execution) { if (LOG.isLoggable(level)) { LOG.log(level, "Activity ready: " + activity.getActivityId() + " (" + execution + ")"); } } public void recordBodyEnded(AbstractActivity activity, XpdlExecution execution) {
public static void executeConnector(final Execution execution, final String activityName, final ConnectorDefinition connector) { executeConnector(execution, activityName, connector, null); }
public static void executeConnectors(final ActivityDefinition activityDef, final Execution execution, final Event event) { executeConnectors(activityDef, execution, event, null); }
static boolean evaluateLoopCondition(final ActivityDefinition activity, final Execution internalExecution) { boolean execute = true; if (activity.isInALoop()) { final String condition = activity.getLoopCondition(); execute = ConditionEvaluator.evaluate(condition, internalExecution); } return execute; }
private static JoinRunTime getJoinRuntime(XpdlExecution xpdlExecution) { return getJoinRunTime(xpdlExecution.getXpdlInstance(), xpdlExecution.getNode()); }
@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); } }
public void start(String userId, boolean assignTask) { if (LOG.isLoggable(Level.FINE)) { LOG.fine("Task : " + taskUUID + " on activity " + activityId + " is ready"); } final Recorder recorder = EnvTool.getRecorder(); if (assignTask) { this.userId = userId; recorder.recordTaskAssigned(this, userId, candidates, userId); } this.state = TaskState.EXECUTING; recorder.recordTaskStarted(this, userId); recorder.recordBodyStarted(activityDef, xpdlExecution); HookExecutor.executeHooks(activityDef.getJavaHooks(), xpdlExecution, activityId, JavaHook.Type.taskOnStart); }
public void recordBodyStarted(AbstractActivity activity, XpdlExecution execution) { if (LOG.isLoggable(level)) { LOG.log(level, "Activity body started: " + activity.getActivityId() + " (" + execution + ")"); } }
public void recordBodyEnded(AbstractActivity activity, XpdlExecution execution) { if (LOG.isLoggable(level)) { LOG.log(level, "Activity body ended: " + activity.getActivityId() + " (" + execution + ")"); } } public void recordBodyStarted(AbstractActivity activity, XpdlExecution execution) {