@Override public void receiveJob(DispatchJobEvent jobEvent) { synchronized (incomingJobs) { incomingJobs.put(jobIdentifier(jobEvent), jobEvent); } if (config.get("runFirst").asBoolean()) { // We'll do the conditional in receiveResult instead super.receiveJob(jobEvent); return; } checkCondition(jobEvent); }
@Override public void receiveJobQueue(DispatchJobQueueEvent jobQueueEvent) { super.receiveJobQueue(jobQueueEvent); }
@Override public void receiveResultCompletion(DispatchCompletionEvent completionEvent) { super.receiveResultCompletion(completionEvent); }
@Override public void receiveResult(DispatchResultEvent resultEvent) { Activity<?> condition = getCondition(); if (condition == null) { super.receiveResult(resultEvent); return; } synchronized (outgoingJobs) { outgoingJobs.put(jobIdentifier(resultEvent), resultEvent); } checkCondition(resultEvent); }
private void checkCondition(AbstractDispatchEvent event) { Activity<?> condition = getCondition(); if (condition == null) { super.receiveError(new DispatchErrorEvent(event.getOwningProcess(), event.getIndex(), event.getContext(), "Can't invoke condition service: null", null, DispatchErrorType.INVOCATION, condition)); return; } if (!(condition instanceof AbstractAsynchronousActivity)) { DispatchErrorEvent errorEvent = new DispatchErrorEvent( event.getOwningProcess(), event.getIndex(), event.getContext(), "Can't invoke condition service " + condition + " is not an instance of AbstractAsynchronousActivity", null, DispatchErrorType.INVOCATION, condition); super.receiveError(errorEvent); return; } AbstractAsynchronousActivity asyncCondition = (AbstractAsynchronousActivity) condition; String jobIdentifier = jobIdentifier(event); Map<String, T2Reference> inputs = prepareInputs(asyncCondition, jobIdentifier); AsynchronousActivityCallback callback = new ConditionCallBack( jobIdentifier); asyncCondition.executeAsynch(inputs, callback); }
super.receiveResult(resultEvent);
/** * Create an {@link ErrorProvenanceItem} and send across to the * {@link ProvenanceConnector} */ @Override public void receiveError(DispatchErrorEvent errorEvent) { IterationProvenanceItem iterationProvItem = getIterationProvItem(errorEvent); // get using errorEvent.getOwningProcess(); ErrorProvenanceItem errorItem = new ErrorProvenanceItem(); errorItem.setCause(errorEvent .getCause()); errorItem.setErrorType(errorEvent .getFailureType().toString()); errorItem.setMessage(errorEvent.getMessage()); errorItem.setProcessId(errorEvent.getOwningProcess()); errorItem.setIdentifier(uuid()); errorItem.setParentId(iterationProvItem.getIdentifier()); // iterationProvItem.setErrorItem(errorItem); // FIXME don't need to add to the processor item earlier getReporter().addProvenanceItem(errorItem); super.receiveError(errorEvent); }
@Override public void receiveJobQueue(DispatchJobQueueEvent jobQueueEvent) { super.receiveJobQueue(jobQueueEvent); }
@Override public void receiveResultCompletion(DispatchCompletionEvent completionEvent) { Activity<?> condition = getCondition(); if (condition == null) { super.receiveResultCompletion(completionEvent); return; } synchronized (outgoingJobs) { outgoingJobs.put(jobIdentifier(completionEvent), completionEvent); } checkCondition(completionEvent); }
@Override public void receiveJobQueue(DispatchJobQueueEvent jobQueueEvent) { synchronized (incomingJobs) { incomingJobs.put(jobIdentifier(jobQueueEvent), jobQueueEvent); } if (config.get("runFirst").asBoolean()) { // We'll do the conditional in receiveResult instead super.receiveJobQueue(jobQueueEvent); return; } checkCondition(jobQueueEvent); }