private void executePipeline() throws ExecutionException { if (job.getProvenanceLogging()) { provLogger.recordPipelineStart(); pmlLogger.recordPipelineStart(); } job.getJobStatus().setPipelineState(PipelineExecutorJobStatus.PipelineState.RUNNING); String resultURL = job.getPipeline().getArtifactURL(); System.out.println(job.getJobStatus()); for (int i = 0; i < job.getPipeline().size(); i++) { edu.utep.trustlab.visko.ontology.viskoService.Service viskoService = job.getPipeline().getService(i); // Capture initial dataset if (job.getProvenanceLogging() && i == 0) { pmlLogger.recordInitialDataset(resultURL, job.getPipeline().getService(i)); provLogger.recordInitialDataset(resultURL, job.getPipeline().getService(i)); } job.getJobStatus().setCurrentService(viskoService.getOWLSService().getURI(), i); System.out.println(job.getJobStatus()); resultURL = executeService(viskoService, resultURL, i); if (isScheduledForTermination) { System.out.println("This thread's execution was interrupted and will quit!"); job.getJobStatus().setPipelineState(PipelineExecutorJobStatus.PipelineState.INTERRUPTED); break; } } job.setFinalResultURL(resultURL); if (job.getProvenanceLogging()) { provLogger.recordPipelineEnd(job); pmlLogger.recordPipelineEnd(job); // Set URIs on Job job.setPMLQueryURI(pmlLogger.finish()); job.setProvQueryURI(provLogger.finish()); } }