eventService.storeJob(timer);
private void initializeTimers(final Execution execution, final String executionEventUUID) throws GroovyException { // initialize the timers final InternalActivityDefinition activity = execution.getNode(); final ActivityInstanceUUID activityUUID = execution.getActivityInstanceUUID(); final Set<DeadlineDefinition> deadlines = activity.getDeadlines(); if (!deadlines.isEmpty()) { final EventService eventService = EnvTool.getEventService(); for (final DeadlineDefinition d : deadlines) { final InternalConnectorDefinition deadline = (InternalConnectorDefinition) d; final String condition = deadline.getCondition(); final long fireTime = ProcessUtil.getTimerDate(condition, activityUUID).getTime(); final Job dl = JobBuilder.deadlineJob("" + deadline.getDbid(), execution.getInstance().getRootInstanceUUID(), executionEventUUID, fireTime, execution.getInstance().getProcessInstanceUUID()); eventService.storeJob(dl); } } }
execution.getInstance().getRootInstanceUUID(), execution.getEventUUID(), execution.getInstance() .getProcessInstanceUUID()); eventService.storeJob(sigConnecAutOnEnterexecutedJob); } else if (EventConstants.CONNECTORS_AUTOMATIC_ON_ENTER_EXECUTED.equals(eventPosition)) { execution.signal(EventConstants.CONNECTORS_AUTOMATIC_ON_ENTER_EXECUTED, parameters);
job.setOutgoingEvent(oe); eventService.storeJob(job); if (LOG.isLoggable(Level.FINE)) { LOG.fine("Job with eventCoupleId: " + eventCoupleId + " created.");
private void startActivityInstance(final Execution internalExecution) { final InternalActivityDefinition activity = internalExecution.getNode(); final ActivityInstanceUUID activityUUID = internalExecution.getActivityInstanceUUID(); try { initializeEvents(internalExecution); } catch (final GroovyException e) { final String message = "Error while initializing events: "; throw new BonitaWrapperException(new BonitaRuntimeException(message, e)); } if (activity.isAsynchronous()) { final EventService eventService = EnvTool.getEventService(); String uuid = internalExecution.getEventUUID(); if (uuid == null) { uuid = UUID.randomUUID().toString(); } final String eventName = BonitaConstants.ASYNC_EVENT_PREFIX + activityUUID; internalExecution.setEventUUID(uuid); internalExecution.lock("async continuation " + eventName); final Job async = JobBuilder.asyncJob(eventName, internalExecution.getInstance().getRootInstanceUUID(), uuid, internalExecution.getInstance().getProcessInstanceUUID()); eventService.storeJob(async); } else { executeActivityInstance(internalExecution); } }
.getInstance().getRootInstanceUUID(), execution.getEventUUID(), execution.getInstance() .getProcessInstanceUUID()); EnvTool.getEventService().storeJob(boundaryError); } else { final Job errorJob = ActivityUtil.getErrorEventSubProcessJob(execution, errorCode); recorder.recordInstanceAborted(instance.getUUID(), EnvTool.getUserId()); final EventService eventService = EnvTool.getEventService(); eventService.storeJob(errorJob); } else { final ActivityInstanceUUID parentActivityUUID = instance.getParentActivityUUID(); parentExecution.getInstance().getRootInstanceUUID(), parentExecution.getEventUUID(), parentExecution.getInstance().getProcessInstanceUUID()); EnvTool.getEventService().storeJob(boundaryError); final Set<Execution> executions = EnvTool.getJournal().getExecutions(instanceUUID); executions.iterator().next().abort();
final Job boundaryTimer = JobBuilder.boundaryTimerJob(eventName, rootInstanceUUID, executionEventUUID, date.getTime(), instanceUUID); eventService.storeJob(boundaryTimer); } else if (boundaryEvent instanceof MessageBoundaryEventImpl) { final MessageBoundaryEventImpl message = (MessageBoundaryEventImpl) boundaryEvent;
@Override protected boolean executeBusinessLogic(Execution execution) { final InternalProcessInstance instance = execution.getInstance(); final ActivityDefinition activity = execution.getNode(); Job errorJob = ActivityUtil.getErrorEventSubProcessJob(execution, activity.getTimerCondition()); if (errorJob == null) { errorJob = ActivityUtil.getTargetErrorJob(execution); } execution.abort(); final Recorder recorder = EnvTool.getRecorder(); recorder.recordInstanceAborted(instance.getUUID(), EnvTool.getUserId()); if (errorJob != null) { final EventService eventService = EnvTool.getEventService(); eventService.storeJob(errorJob); } else { ProcessUtil.removeInternalInstanceEvents(instance.getUUID()); instance.finish(); } return false; }
private void throwEvent(final EventService eventService, final InternalActivityDefinition activity) { final String signalCode = activity.getTimerCondition(); final Set<IncomingEventInstance> signalIncomingEvents = eventService.getSignalIncomingEvents(signalCode); for (final IncomingEventInstance signalIncomingEvent : signalIncomingEvents) { Job signal = null; if (signalIncomingEvent.getSignal().equals(EventConstants.SIGNAL_START_EVENT)) { signal = JobBuilder.startSignalJob(signalIncomingEvent.getName(), signalIncomingEvent.getActivityDefinitionUUID()); signal.setEventSubProcessRootInstanceUUID(signalIncomingEvent.getEventSubProcessRootInstanceUUID()); } else if (signalIncomingEvent.getSignal().equals(EventConstants.SIGNAL_BOUNDARY_EVENT)) { final ProcessInstanceUUID instanceUUID = signalIncomingEvent.getInstanceUUID(); final InternalProcessInstance processInstance = EnvTool.getJournalQueriers().getProcessInstance(instanceUUID); signal = JobBuilder.boundarySignalJob(signalIncomingEvent.getActivityName(), processInstance.getRootInstanceUUID(), signalIncomingEvent.getExecutionUUID(), signalIncomingEvent.getInstanceUUID()); eventService.removeEvent(signalIncomingEvent); } else { final ProcessInstanceUUID instanceUUID = signalIncomingEvent.getInstanceUUID(); final InternalProcessInstance processInstance = EnvTool.getJournalQueriers().getProcessInstance(instanceUUID); signal = JobBuilder.intermediateSignalJob(signalIncomingEvent.getName(), processInstance.getRootInstanceUUID(), signalIncomingEvent.getExecutionUUID(), signalIncomingEvent.getInstanceUUID()); eventService.removeEvent(signalIncomingEvent); } eventService.storeJob(signal); } }
final Job timer = JobBuilder.startTimerJob(activity.getName(), activity.getUUID(), condition, date.getTime()); eventService.storeJob(timer); } catch (final GroovyException e) { throw new DeploymentRuntimeException(e.getMessage(), e.getCause());
@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()); }
final Job timer = JobBuilder.startTimerJob(eventName, startEvent.getUUID(), condition, enableTime); timer.setEventSubProcessRootInstanceUUID(instanceUUID); eventService.storeJob(timer); } catch (final GroovyException e) { throw new DeploymentRuntimeException(e.getMessage(), e.getCause());