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();
+                                       }
+
+                }
             }
         }
     }


Reply via email to