Example #1
0
  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());
    }
  }