Package eu.planets_project.ifr.core.wee.api.workflow

Examples of eu.planets_project.ifr.core.wee.api.workflow.WorkflowResult


     * eu.planets_project.ifr.core.wee.api.workflow.WorkflowTemplate#execute()
     */
    public WorkflowResult execute() {
        /* We want fresh logs and report for every run: */
        log = initLog();
        WorkflowResult wfResult = null;
        int count = 0;
        List<DigitalObject> objects = new ArrayList<DigitalObject>();
        log.trace(WorkflowTemplateHelper.overview(this));
        String metadata;
        try {
            for (DigitalObject dgo : this.getData()) {
                metadata = null;
                log.info("Processing file #" + (count + 1));
                try {
                    // Identify
                    String[] types = runIdentification(dgo, wfResult);
                    log.info(new Message("Identification", new Parameter("File", dgo.getTitle()), new Parameter(
                            "Result", Arrays.asList(types).toString())));

                    // Extract metadata - will otherwise get lost between steps!
                    List<Metadata> mList = dgo.getMetadata();
                    if ((mList != null) && (mList.size() > 0)) {
                        metadata = mList.get(0).getContent();
                    }

                    if (metadata == null) {
                        log.warn("No metadata contained in DigitalObject!");
                    } else {
                        log.info("Extracted metadata: " + metadata);
                    }

                    // Modify - rotate
                    dgo = runRotateService(dgo, types[0], metadata, wfResult);
                    log.info(new Message("Rotation", new Parameter("Metadata", metadata)));

                    // Modify - crop
                    dgo = runCropService(dgo, types[0], metadata, wfResult);
                    log.info(new Message("Cropping", new Parameter("Metadata", metadata)));

                    // Migrate to JPEG
                    try {
                        FormatRegistry fr = FormatRegistryFactory.getFormatRegistry();
                        String ext = fr.getFirstExtension(new URI(types[0]));
                        log.info("Getting extension: " + ext);
                        if (ext != null) {
                            dgo = runMigrateService(dgo, fr.createExtensionUri(ext), wfResult);
                            objects.add(dgo);
                            log.info(new Message("Migration", new Parameter("Input", ext), new Parameter("Result", dgo
                                    .getTitle())));
                        }
                    } catch (URISyntaxException e) {
                        throw new RuntimeException(e);
                    }
                } catch (Exception e) {
                    log.error("workflow execution error for digitalObject #" + count);
                    log.error(e.getClass() + ": " + e.getMessage());
                }
                count++;
            }
        } finally {
            /* A final message: */
            List<URL> results = WorkflowTemplateHelper.reference(objects, log.getOutputFolder());
            log.trace(WorkflowTemplateHelper.link(results));
            /* Now write the stuff to disk: */
            File reportFile = log.reportAsFile();
            File logFile = log.logAsFile();
            System.out.println("Wrote report to: " + reportFile.getAbsolutePath());
            /* And return a result object: */
            try {
                //URL reportURL = reportFile.toURL();
                String outFolder = "http://"+"localhost"+":80/data/wee/id-"+log.getTime();
                URL reportURL = new URL(outFolder+"/wf-report.html");
                wfResult = new WorkflowResult(reportURL, logFile.toURL(), results);
                System.out.println("Workflow result: " + wfResult);
                return wfResult;
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }
View Full Code Here


     * eu.planets_project.ifr.core.wee.api.workflow.WorkflowTemplate#execute()
     */
    public WorkflowResult execute() {
        /* We want fresh logs and report for every run: */
        log = initLog();
        WorkflowResult wfResult = null;
        int count = 0;
        List<DigitalObject> objects = new ArrayList<DigitalObject>();
        log.trace(WorkflowTemplateHelper.overview(this));
        String metadata;
        try {
            for (DigitalObject dgo : this.getData()) {
                metadata = null;
                log.info("Processing file #" + (count + 1));
                try {
                   
                    // Migrate
                    try {
                        String ext = dgo.getTitle().substring(dgo.getTitle().lastIndexOf('.')+1, dgo.getTitle().length());
                        log.info("detected extension: "+ext);
                       
                        FormatRegistry fr = FormatRegistryFactory.getFormatRegistry();
                        //String ext = fr.getFirstExtension(new URI(types[0]));
                        log.info("Getting extension: " + ext);
                        if (ext != null) {
                            DigitalObject dgoOut = runMigrateService(dgo, fr.createExtensionUri(ext), wfResult);
                           
                            objects.add(dgoOut);
                            log.info(new Message("Migration", new Parameter("Input", ext), new Parameter("Result", dgo
                                    .getTitle())));
                        }
                    } catch (URISyntaxException e) {
                        throw new RuntimeException(e);
                    }
                } catch (Exception e) {
                    log.error("workflow execution error for digitalObject #" + count);
                    log.error(e.getClass() + ": " + e.getMessage());
                    System.out.println(e);
                }
                count++;
            }
        } finally {
             /* A final message: */
            List<URL> results = WorkflowTemplateHelper.reference(objects, log.getOutputFolder());
            log.trace(WorkflowTemplateHelper.link(results));
            /* Now write the stuff to disk: */
            File reportFile = log.reportAsFile();
            File logFile = log.logAsFile();
            System.out.println("Wrote report to: " + reportFile.getAbsolutePath());
            /* And return a result object: */
            try {
                //URL reportURL = reportFile.toURL();
                String outFolder = "http://"+this.getHostName()+":80/data/wee/id-"+log.getTime();
                URL reportURL = new URL(outFolder+"/wf-report.html");
                wfResult = new WorkflowResult(reportURL, logFile.toURL(), results);
                System.out.println("Workflow result: " + wfResult);
                return wfResult;
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }
View Full Code Here

  /* (non-Javadoc)
   * @see eu.planets_project.tb.api.system.batch.BatchProcessor#notifyComplete(java.lang.String, eu.planets_project.tb.impl.system.TestbedBatchJob)
   */
  public synchronized void notifyComplete(String job_key, TestbedBatchJob job) {
    //this.setJob(job_key, job);
    WorkflowResult wfLog=null;
   
    //check if job object still exists
    if(job==null){
       //when null (e.g. not in memory any more) try to pull in experiment ID from current session
       ExperimentBean expBean = (ExperimentBean)JSFUtil.getManagedObject("ExperimentBean");
View Full Code Here

      log.debug("notifyComplete: complete for "+job_key+" experimentID: "+job.getExpID());
    }
  }
 
  private WorkflowResult retrieveWorkflowResult(String job_key){
    WorkflowResult wfLog = null;
    try {
      //fist try to retrieve the wfResult from the DR
      wfLog = fetchWFResultFromDR(job_key);
      log.debug("notifyComplete: fetched wfResult.xml from DR for "+job_key);
    }catch(Exception e){
View Full Code Here

  public Object getWorkflowEngineResult(String job_key) {
    try {
      return weeService.getResult(UUID.fromString(job_key));
    } catch (Exception e) {
      log.debug("getWorkflowEngineResult failed "+e);
      return new WorkflowResult();
    }
  }
View Full Code Here

      JAXBContext context;
      try {
        context = JAXBContext.newInstance(WorkflowResult.class);
        Unmarshaller um = context.createUnmarshaller();
        WorkflowResult wfc = (WorkflowResult) um.unmarshal(new StringReader(xmlWFResult));
        return wfc;
      } catch (JAXBException e) {
        log.error("unmarshalWFResult failed",e);
        throw e;
      }
View Full Code Here

    /* (non-Javadoc)
     * @see eu.planets_project.ifr.core.wee.api.workflow.WorkflowTemplate#execute()
     */
    public WorkflowResult execute(){

        WorkflowResult wfResult = null;
        int count = 0;
        for(DigitalObject dgo : this.getData()){

            try{
                //run identification service one
View Full Code Here

        String status = weeService.getStatus(workflowUUID);
        swb.setStatus(status);
        progString = status;
        // System.out.println("Status is: " + progString);
        if (status.equals("COMPLETED") || status.equals("FAILED")) {
          WorkflowResult wr = weeService.getResult(workflowUUID);
          String rurl = wr.getReport().toString();
          System.out.println("Got a report URL: " + rurl);
          swb.setStopTime(System.currentTimeMillis());
          swb.setReportURL(rurl);
          swb.setReportExists(true);
          workflowUUID = null;
View Full Code Here

TOP

Related Classes of eu.planets_project.ifr.core.wee.api.workflow.WorkflowResult

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.