/* * (non-Javadoc) * * @see org.apache.oodt.cas.workflow.engine.WorkflowEngine#updateMetadata(java.lang.String, * org.apache.oodt.cas.metadata.Metadata) */ public synchronized boolean updateMetadata(String workflowInstId, Metadata met) { // okay, try and look up that worker thread in our hash map IterativeWorkflowProcessorThread worker = (IterativeWorkflowProcessorThread) workerMap.get(workflowInstId); if (worker == null) { LOG.log( Level.WARNING, "WorkflowEngine: Attempt to update metadata context " + "for workflow instance id: " + workflowInstId + ", however, this engine is " + "not tracking its execution"); return false; } worker.getWorkflowInstance().setSharedContext(met); try { persistWorkflowInstance(worker.getWorkflowInstance()); } catch (Exception e) { LOG.log( Level.WARNING, "Exception persisting workflow instance: [" + worker.getWorkflowInstance().getId() + "]: Message: " + e.getMessage()); return false; } return true; }
/* * (non-Javadoc) * * @see org.apache.oodt.cas.workflow.engine.WorkflowEngine#getWorkflowInstanceMetadata(java.lang.String) */ public Metadata getWorkflowInstanceMetadata(String workflowInstId) { // okay, try and look up that worker thread in our hash map IterativeWorkflowProcessorThread worker = (IterativeWorkflowProcessorThread) workerMap.get(workflowInstId); if (worker == null) { // try and get the metadata // from the workflow instance repository (as it was persisted) try { WorkflowInstance inst = instRep.getWorkflowInstanceById(workflowInstId); return inst.getSharedContext(); } catch (InstanceRepositoryException e) { LOG.log( Level.FINEST, "WorkflowEngine: Attempt to get metadata " + "for workflow instance id: " + workflowInstId + ", however, this engine is " + "not tracking its execution and the id: [" + workflowInstId + "] " + "was never persisted to " + "the instance repository"); e.printStackTrace(); return new Metadata(); } } return worker.getWorkflowInstance().getSharedContext(); }