continue; DispatchLayer<?> provenance = new IntermediateProvenance(); IntermediateProvenance intermediateProvenance = (IntermediateProvenance) provenance; intermediateProvenance.setWorkflow(workflowItem); intermediateProvenance.setConnector(context .getProvenanceConnector());
int[] originalIndex = event.getIndex(); int[] index = event.getIndex(); String indexStr = indexStr(index); Map<String, IterationProvenanceItem> indexes = getIndexesByProcess(owningProcess); IterationProvenanceItem iterationProvenanceItem = null; synchronized (indexes) { index = removeLastIndex(index); iterationProvenanceItem = indexes.get(indexStr(index)); int[] newIndex = (int[]) value.get(0); String owner = (String) value.get(1); String indexString = indexStr(newIndex); String indexString2 = indexStr(index); int[] newIndex = (int[]) value.get(0); String owner = (String) value.get(1); String indexString = indexStr(newIndex); String indexString2 = indexStr(index); if (owningProcess.equalsIgnoreCase(owner) && indexString getIndexesByProcess(event.getOwningProcess()).put( indexStr(event.getIndex()), iterationProvenanceItem1); return iterationProvenanceItem1;
/** * 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(errorEvent .getCause(), errorEvent.getMessage(), errorEvent .getFailureType(), errorEvent.getOwningProcess()); errorItem.setIdentifier(UUID.randomUUID().toString()); errorItem.setParentId(iterationProvItem.getIdentifier()); // iterationProvItem.setErrorItem(errorItem); // FIXME don't need to add to the processor item earlier getConnector().addProvenanceItem(errorItem); super.receiveError(errorEvent); }
continue; DispatchLayer<?> provenance = new IntermediateProvenance(); IntermediateProvenance intermediateProvenance = (IntermediateProvenance) provenance; intermediateProvenance.setWorkflow(workflowItem); intermediateProvenance.setReporter(context .getProvenanceReporter());
processorProvItem.setParentId(provenanceItem.getIdentifier()); provenanceItem.setProcessId(jobEvent.getOwningProcess()); getConnector().addProvenanceItem(provenanceItem); getConnector().addProvenanceItem(processorProvItem); getConnector().addProvenanceItem(activityProvItem); break; getIndexesByProcess(jobEvent.getOwningProcess()).put( indexStr(jobEvent.getIndex()), iterationProvItem); super.receiveJob(jobEvent);
processorProvItem.setParentId(provenanceItem.getIdentifier()); provenanceItem.setProcessId(jobEvent.getOwningProcess()); getReporter().addProvenanceItem(provenanceItem); getReporter().addProvenanceItem(processorProvItem); getReporter().addProvenanceItem(activityProvItem); break; getIndexesByProcess(jobEvent.getOwningProcess()).put( indexStr(jobEvent.getIndex()), iterationProvItem); iterationProvItem.setEnactmentStarted(new Timestamp(System.currentTimeMillis())); getReporter().addProvenanceItem(iterationProvItem); } catch (RuntimeException ex) { logger.error("Could not store provenance for " + jobEvent, ex);
try { IterationProvenanceItem iterationProvItem = getIterationProvItem(resultEvent); iterationProvItem.setEnactmentEnded(new Timestamp(System.currentTimeMillis())); iterationProvItem.setOutputDataItem(outputDataItem); getReporter().addProvenanceItem(iterationProvItem);
@Override public DispatchLayer<?> createDispatchLayer(URI uri) { DispatchLayer<?> dispatchLayer = null; if (parallelizeLayer.equals(uri)) { dispatchLayer = new Parallelize(); } else if (errorBounceLayer.equals(uri)) { dispatchLayer = new ErrorBounce(); } else if (failoverLayer.equals(uri)) { dispatchLayer = new Failover(); } else if (retryLayer.equals(uri)) { dispatchLayer = new Retry(); } else if (invokeLayer.equals(uri)) { dispatchLayer = new Invoke(); } else if (loopLayer.equals(uri)) { dispatchLayer = new Loop(); } else if (intermediateProvenanceLayer.equals(uri)) { dispatchLayer = new IntermediateProvenance(); } else if (stopLayer.equals(uri)) { dispatchLayer = new Stop(); } return dispatchLayer; }
if (intermediateProvenance != null) { invocationItem = new InvocationStartedProvenanceItem(); IterationProvenanceItem parentItem = intermediateProvenance.getIterationProvItem(jobEvent); invocationItem.setIdentifier(UUID.randomUUID().toString()); invocationItem.setActivity(asyncActivity);
/** * 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.randomUUID().toString()); errorItem.setParentId(iterationProvItem.getIdentifier()); // iterationProvItem.setErrorItem(errorItem); // FIXME don't need to add to the processor item earlier getReporter().addProvenanceItem(errorItem); super.receiveError(errorEvent); }
int[] originalIndex = event.getIndex(); int[] index = event.getIndex(); String indexStr = indexStr(index); Map<String, IterationProvenanceItem> indexes = getIndexesByProcess(owningProcess); IterationProvenanceItem iterationProvenanceItem = null; synchronized (indexes) { index = removeLastIndex(index); iterationProvenanceItem = indexes.get(indexStr(index)); getIndexesByProcess(event.getOwningProcess()).put( indexStr(event.getIndex()), iterationProvenanceItem1); return iterationProvenanceItem1;
/** * Populate an {@link OutputDataProvenanceItem} with the results and attach * it to the appropriate {@link IterationProvenanceItem}. Then send the * {@link IterationProvenanceItem} across to the {@link ProvenanceConnector} */ @Override public void receiveResult(DispatchResultEvent resultEvent) { // FIXME use the connector from the result event context IterationProvenanceItem iterationProvItem = getIterationProvItem(resultEvent); ReferenceService referenceService = resultEvent.getContext() .getReferenceService(); OutputDataProvenanceItem outputDataItem = new OutputDataProvenanceItem( resultEvent.getData(), referenceService); outputDataItem.setIdentifier(UUID.randomUUID().toString()); outputDataItem.setProcessId(resultEvent.getOwningProcess()); outputDataItem.setParentId(iterationProvItem.getIdentifier()); iterationProvItem.setOutputDataItem(outputDataItem); getConnector().addProvenanceItem(iterationProvItem); // getConnector().addProvenanceItem(outputDataItem); super.receiveResult(resultEvent); }