- fix TaskJob to impl new getMetadata method in JobSpec

Project: http://git-wip-us.apache.org/repos/asf/oodt/repo
Commit: http://git-wip-us.apache.org/repos/asf/oodt/commit/88ecacf6
Tree: http://git-wip-us.apache.org/repos/asf/oodt/tree/88ecacf6
Diff: http://git-wip-us.apache.org/repos/asf/oodt/diff/88ecacf6

Branch: refs/heads/feature/zookeeper-config
Commit: 88ecacf6c1202bd0a0263999dec7b626483bd189
Parents: 7c43e87
Author: Chris Mattmann <[email protected]>
Authored: Mon Jul 17 08:56:45 2017 -0700
Committer: Chris Mattmann <[email protected]>
Committed: Mon Jul 17 08:56:45 2017 -0700

----------------------------------------------------------------------
 .../oodt/cas/workflow/structs/TaskJobInput.java | 37 ++++++++++++++++++++
 1 file changed, 37 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/oodt/blob/88ecacf6/workflow/src/main/java/org/apache/oodt/cas/workflow/structs/TaskJobInput.java
----------------------------------------------------------------------
diff --git 
a/workflow/src/main/java/org/apache/oodt/cas/workflow/structs/TaskJobInput.java 
b/workflow/src/main/java/org/apache/oodt/cas/workflow/structs/TaskJobInput.java
index f4deb7d..8401934 100644
--- 
a/workflow/src/main/java/org/apache/oodt/cas/workflow/structs/TaskJobInput.java
+++ 
b/workflow/src/main/java/org/apache/oodt/cas/workflow/structs/TaskJobInput.java
@@ -30,8 +30,10 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.ArrayList;
 import java.util.Map;
 import java.util.Properties;
+import java.util.Vector;
 
 //OODT imports
 
@@ -196,4 +198,39 @@ public class TaskJobInput implements JobInput {
 
   }
 
+  @Override
+  public Map<String, Vector<String>> getMetadata() {
+    //combine the workflow metadata, and config
+    Map<String, Vector<String>> met = new ConcurrentHashMap<String, 
Vector<String>>();
+    
+    if(this.taskConfig != null && this.taskConfig.getProperties() != null && 
+        this.taskConfig.getProperties().keySet() != null && 
+        this.taskConfig.getProperties().keySet().size() > 0){
+      for(Object prop: this.taskConfig.getProperties().keySet()){
+        String propName = String.valueOf(prop);
+        Vector<String> vals = new Vector<String>();
+        String propVal = this.taskConfig.getProperty(propName);
+        if (propVal != null){
+          vals.add(propVal);
+          met.put(propName, vals);
+        }
+      }
+    }
+    
+    //NOTE: this implies that dynMetadata will have precedence over config 
metadata
+    //as returned by the Resmgr Job i/f
+    if(this.dynMetadata != null && this.dynMetadata.getAllKeys() != null && 
+        this.dynMetadata.getAllKeys().size() > 0){
+      for(String metName: this.dynMetadata.getAllKeys()){
+        Vector<String> vals = new Vector<String>();
+        vals.addAll(this.dynMetadata.getAllValues(metName));
+        if (vals.size() > 0){
+          met.put(metName, vals);
+        }
+      }
+    }
+    
+    return met;
+  }
+
 }

Reply via email to