Author: mattmann
Date: Tue Jun 10 17:27:26 2014
New Revision: 1601694
URL: http://svn.apache.org/r1601694
Log:
- remaining fixes for OODT-593: make dynamic workflow models loadable via opsui
Modified:
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/repository/PackagedWorkflowRepository.java
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/repository/XMLWorkflowRepository.java
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/system/XmlRpcWorkflowManager.java
Modified:
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/repository/PackagedWorkflowRepository.java
URL:
http://svn.apache.org/viewvc/oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/repository/PackagedWorkflowRepository.java?rev=1601694&r1=1601693&r2=1601694&view=diff
==============================================================================
---
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/repository/PackagedWorkflowRepository.java
(original)
+++
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/repository/PackagedWorkflowRepository.java
Tue Jun 10 17:27:26 2014
@@ -31,6 +31,7 @@ import org.apache.oodt.cas.workflow.stru
import org.apache.oodt.cas.workflow.util.XmlStructFactory;
import org.apache.oodt.commons.xml.XMLUtils;
+
//JDK imports
import java.io.File;
import java.util.Arrays;
@@ -42,8 +43,10 @@ import java.util.UUID;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
+
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
+
import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
@@ -324,8 +327,13 @@ public class PackagedWorkflowRepository
}
// recast it as a parent/child workflow
- String workflowId = UUID.randomUUID().toString();
- workflow.setId(workflowId);
+ String workflowId = workflow.getId();
+ if (workflowId == null
+ || (workflowId != null && workflowId.equals(""))) {
+ // generate its ID
+ workflowId = UUID.randomUUID().toString();
+ workflow.setId(workflowId);
+ }
Graph graph = new Graph();
graph.setExecutionType("sequential");
Modified:
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/repository/XMLWorkflowRepository.java
URL:
http://svn.apache.org/viewvc/oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/repository/XMLWorkflowRepository.java?rev=1601694&r1=1601693&r2=1601694&view=diff
==============================================================================
---
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/repository/XMLWorkflowRepository.java
(original)
+++
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/repository/XMLWorkflowRepository.java
Tue Jun 10 17:27:26 2014
@@ -317,12 +317,17 @@ public class XMLWorkflowRepository imple
}
}
- // generate its ID
- String workflowId = UUID.randomUUID().toString();
- workflow.setId(workflowId);
- this.workflowMap.put(workflowId, workflow);
- this.eventMap.put(workflowId, Collections.singletonList(workflow));
- return workflowId;
+ String workflowId = workflow.getId();
+ if (workflowId == null
+ || (workflowId != null &&
workflowId.equals(""))) {
+ // generate its ID
+ workflowId = UUID.randomUUID().toString();
+ workflow.setId(workflowId);
+ }
+ this.workflowMap.put(workflowId, workflow);
+ this.eventMap.put(workflowId,
Collections.singletonList(workflow));
+ return workflowId;
+
}
/* (non-Javadoc)
Modified:
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/system/XmlRpcWorkflowManager.java
URL:
http://svn.apache.org/viewvc/oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/system/XmlRpcWorkflowManager.java?rev=1601694&r1=1601693&r2=1601694&view=diff
==============================================================================
---
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/system/XmlRpcWorkflowManager.java
(original)
+++
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/system/XmlRpcWorkflowManager.java
Tue Jun 10 17:27:26 2014
@@ -402,7 +402,7 @@ public class XmlRpcWorkflowManager {
//Possible dynamic workflow for instance
//reconsitute it from cache
wDesc = wInst.getWorkflow();
-
+ repo.addWorkflow(wDesc);
}
wInst.setWorkflow(wDesc);
Hashtable workflowInstance = XmlRpcStructFactory
@@ -450,6 +450,8 @@ public class XmlRpcWorkflowManager {
//possible dynamic workflow
//reconsitute it from cached instance
wDesc = wInst.getWorkflow();
+ //now save it
+ repo.addWorkflow(wDesc);
}
// TODO: hack for now, fix this, we shouldn't have to cast
@@ -684,6 +686,20 @@ public class XmlRpcWorkflowManager {
wInst.setWorkflow(safeGetWorkflowById(wInst.getWorkflow()
.getId()));
}
+ else{
+ // check to see if the workflow exists in the
+ // repo
+ try {
+
if(repo.getWorkflowById(wInst.getWorkflow().getId()) == null){
+
repo.addWorkflow(wInst.getWorkflow());
+ }
+ } catch (RepositoryException e) {
+ LOG.log(Level.WARNING,
"Attempting to look up workflow: ["+wInst.getWorkflow()
+ .getId()+"] in
populate workflows. Message: "+e.getMessage());
+ e.printStackTrace();
+ }
+
+ }
}
}
}