You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ra...@apache.org on 2014/02/27 21:26:20 UTC

git commit: updated to use data models. AIRAVATA-1032

Repository: airavata
Updated Branches:
  refs/heads/master 6ed27b9ce -> 732224707


updated to use data models. AIRAVATA-1032


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

Branch: refs/heads/master
Commit: 7322247078f5db2738f4f8203aee269522a5dfa0
Parents: 6ed27b9
Author: raminder <ra...@apache.org>
Authored: Thu Feb 27 15:26:07 2014 -0500
Committer: raminder <ra...@apache.org>
Committed: Thu Feb 27 15:26:07 2014 -0500

----------------------------------------------------------------------
 .../gfac/context/JobExecutionContext.java       |  34 +--
 .../org/apache/airavata/gfac/cpi/GFacImpl.java  |  12 +-
 .../gfac/handler/GridFTPOutputHandler.java      |  11 +-
 .../gfac/provider/impl/BESProvider.java         |  12 +-
 .../provider/utils/ApplicationProcessor.java    |   2 +-
 .../gfac/provider/utils/DataTransferrer.java    |   7 +-
 .../gfac/provider/utils/ResourceProcessor.java  |  11 +-
 .../apache/airavata/gfac/utils/GFacUtils.java   | 296 +++++++++----------
 .../airavata/gfac/utils/GramRSLGenerator.java   |   9 +-
 9 files changed, 186 insertions(+), 208 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/73222470/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/context/JobExecutionContext.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/context/JobExecutionContext.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/context/JobExecutionContext.java
index b8e6f87..8f9e8d8 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/context/JobExecutionContext.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/context/JobExecutionContext.java
@@ -21,18 +21,17 @@
 
 package org.apache.airavata.gfac.context;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.airavata.gfac.GFacConfiguration;
 import org.apache.airavata.gfac.GFacException;
 import org.apache.airavata.gfac.SecurityContext;
 import org.apache.airavata.gfac.notification.GFacNotifier;
 import org.apache.airavata.gfac.provider.GFacProvider;
-import org.apache.airavata.model.experiment.ConfigurationData;
-import org.apache.airavata.schemas.wec.ContextHeaderDocument;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import org.apache.airavata.model.workspace.experiment.TaskDetails;
 
 public class JobExecutionContext extends AbstractContext{
 
@@ -46,7 +45,7 @@ public class JobExecutionContext extends AbstractContext{
 
     private GFacNotifier notifier;
     
-    private ConfigurationData configurationData;
+    private TaskDetails taskData;
 
 //    private ContextHeaderDocument.ContextHeader contextHeader;
 
@@ -174,7 +173,15 @@ public class JobExecutionContext extends AbstractContext{
         return inPath;
     }
 
-    public boolean isOutPath(){
+    public TaskDetails getTaskData() {
+		return taskData;
+	}
+
+	public void setTaskData(TaskDetails taskData) {
+		this.taskData = taskData;
+	}
+
+	public boolean isOutPath(){
         return !inPath;
     }
 
@@ -194,14 +201,7 @@ public class JobExecutionContext extends AbstractContext{
 //        this.contextHeader = contextHeader;
 //    }
 
-	public ConfigurationData getConfigurationData() {
-		return configurationData;
-	}
-
-	public void setConfigurationData(ConfigurationData configurationData) {
-		this.configurationData = configurationData;
-	}
-
+	
 	public SecurityContext getSecurityContext(String name) throws GFacException{
 		SecurityContext secContext = securityContext.get(name);
 		return secContext;

http://git-wip-us.apache.org/repos/asf/airavata/blob/73222470/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/cpi/GFacImpl.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/cpi/GFacImpl.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/cpi/GFacImpl.java
index f9784f1..4dbca11 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/cpi/GFacImpl.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/cpi/GFacImpl.java
@@ -53,6 +53,8 @@ import org.apache.airavata.gsi.ssh.impl.authentication.DefaultPasswordAuthentica
 import org.apache.airavata.gsi.ssh.impl.authentication.DefaultPublicKeyFileAuthentication;
 import org.apache.airavata.gsi.ssh.impl.authentication.MyProxyAuthenticationInfo;
 import org.apache.airavata.model.experiment.ConfigurationData;
+import org.apache.airavata.model.workspace.experiment.DataObjectType;
+import org.apache.airavata.model.workspace.experiment.TaskDetails;
 import org.apache.airavata.registry.api.AiravataRegistry2;
 import org.apache.airavata.registry.cpi.DataType;
 import org.apache.airavata.registry.cpi.Registry;
@@ -112,13 +114,13 @@ public class GFacImpl implements GFac {
     public JobExecutionContext submitJob(String experimentID,String taskID) throws GFacException {
         JobExecutionContext jobExecutionContext = null;
         try {
-            ConfigurationData configurationData = (ConfigurationData) registry.get(DataType.TASK_DETAIL, taskID);
+        	TaskDetails taskData = (TaskDetails) registry.get(DataType.TASK_DETAIL, taskID);
             // this is wear our new model and old model is mapping (so serviceName in ExperimentData and service name in ServiceDescriptor
             // has to be same.
 
             // 1. Get the Task from the task ID and construct the Job object and save it in to registry
             // 2. Add another property to jobExecutionContext and read them inside the provider and use it.
-            String serviceName = configurationData.getApplicationId();
+            String serviceName = taskData.getApplicationId();
         if (serviceName == null) {
             throw new GFacException("Error executing the job because there is not Application Name in this Experiment");
         }
@@ -139,7 +141,7 @@ public class GFacImpl implements GFac {
             GFacConfiguration gFacConfiguration = GFacConfiguration.create(new File(resource.getPath()), airavataAPI, configurationProperties);
 
             jobExecutionContext = new JobExecutionContext(gFacConfiguration, serviceName);
-            jobExecutionContext.setConfigurationData(configurationData);
+            jobExecutionContext.setTaskData(taskData);
             
             ApplicationContext applicationContext = new ApplicationContext();
             applicationContext.setApplicationDeploymentDescription(applicationDescription);
@@ -147,8 +149,7 @@ public class GFacImpl implements GFac {
             applicationContext.setServiceDescription(serviceDescription);
             jobExecutionContext.setApplicationContext(applicationContext);
 
-
-            Map<String, String> experimentInputs = configurationData.getExperimentInputs();
+            List<DataObjectType> experimentInputs = taskData.getApplicationInputs();
             jobExecutionContext.setInMessageContext(new MessageContext(GFacUtils.getMessageContext(experimentInputs,
                     serviceDescription.getType().getInputParametersArray())));
 
@@ -160,7 +161,6 @@ public class GFacImpl implements GFac {
 
             addSecurityContext(hostDescription, configurationProperties, jobExecutionContext);
 
-
             submitJob(jobExecutionContext);
         } catch (Exception e) {
             log.error("Error inovoking the job with experiment ID: " + experimentID);

http://git-wip-us.apache.org/repos/asf/airavata/blob/73222470/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/handler/GridFTPOutputHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/handler/GridFTPOutputHandler.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/handler/GridFTPOutputHandler.java
index 55cf2f7..0f8eed5 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/handler/GridFTPOutputHandler.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/handler/GridFTPOutputHandler.java
@@ -48,17 +48,14 @@ import org.apache.airavata.gfac.external.GridFtp;
 import org.apache.airavata.gfac.provider.GFacProviderException;
 import org.apache.airavata.gfac.utils.GFacUtils;
 import org.apache.airavata.gfac.utils.OutputUtils;
-import org.apache.airavata.model.experiment.ConfigurationData;
+import org.apache.airavata.model.workspace.experiment.TaskDetails;
 import org.apache.airavata.schemas.gfac.ApplicationDeploymentDescriptionType;
 import org.apache.airavata.schemas.gfac.GlobusHostType;
 import org.apache.airavata.schemas.gfac.HostDescriptionType;
 import org.apache.airavata.schemas.gfac.StringArrayType;
-import org.apache.airavata.schemas.gfac.StringParameterType;
 import org.apache.airavata.schemas.gfac.URIArrayType;
 import org.apache.airavata.schemas.gfac.URIParameterType;
 import org.apache.airavata.schemas.gfac.UnicoreHostType;
-import org.apache.airavata.schemas.wec.ApplicationOutputDataHandlingDocument.ApplicationOutputDataHandling;
-import org.apache.airavata.schemas.wec.ContextHeaderDocument;
 import org.ietf.jgss.GSSCredential;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -179,9 +176,9 @@ public class GridFTPOutputHandler implements GFacHandler {
                                 "and ApplicationDescriptor output Parameter Names");
                     }
                     // If users has given an output Data path to download the output files this will download the file on machine where GFac is installed
-                    ConfigurationData configurationData =  jobExecutionContext.getConfigurationData();
-                    if(configurationData != null && configurationData.getAdvanceOutputDataHandling() != null){
-                    	String outputDataDirectory = configurationData.getAdvanceOutputDataHandling().getOutputdataDir();
+                    TaskDetails taskData =  jobExecutionContext.getTaskData();
+                    if(taskData != null && taskData.getAdvancedOutputDataHandling() != null){
+                    	String outputDataDirectory = taskData.getAdvancedOutputDataHandling().getOutputDataDir();
                             if(outputDataDirectory != null && !"".equals(outputDataDirectory)){
                                 stageOutputFiles(jobExecutionContext,outputDataDirectory);
                             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/73222470/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/BESProvider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/BESProvider.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/BESProvider.java
index 2671bfa..3339beb 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/BESProvider.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/impl/BESProvider.java
@@ -433,13 +433,13 @@ public class BESProvider implements GFacProvider {
         }
     }
 
+    //FIXME: Get user details
     private String getUserName(JobExecutionContext context) {
-        if (context.getConfigurationData()!= null) {
-            return context.getConfigurationData().getBasicMetadata().getUserName();
-        } else {
-            return "";
-        }
-
+//        if (context.getConfigurationData()!= null) {
+//            return context.getConfigurationData().getBasicMetadata().getUserName();
+//        } else {
+           return "";
+//        }
     }
 
     protected ActivityStatusType getStatus(FactoryClient fc, EndpointReferenceType activityEpr)

http://git-wip-us.apache.org/repos/asf/airavata/blob/73222470/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/ApplicationProcessor.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/ApplicationProcessor.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/ApplicationProcessor.java
index b9d7422..d88cddf 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/ApplicationProcessor.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/ApplicationProcessor.java
@@ -112,7 +112,7 @@ public class ApplicationProcessor {
 	}
 	
 	public static String getUserNameFromContext(JobExecutionContext jobContext) {
-		if(jobContext.getConfigurationData() == null)
+		if(jobContext.getTaskData() == null)
 			return null;
 		//FIXME: Discuss to get user and change this
 		return "admin";

http://git-wip-us.apache.org/repos/asf/airavata/blob/73222470/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/DataTransferrer.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/DataTransferrer.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/DataTransferrer.java
index e008f37..a88db7e 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/DataTransferrer.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/DataTransferrer.java
@@ -35,6 +35,7 @@ import org.apache.airavata.gfac.Constants;
 import org.apache.airavata.gfac.context.JobExecutionContext;
 import org.apache.airavata.gfac.provider.GFacProviderException;
 import org.apache.airavata.model.experiment.ConfigurationData;
+import org.apache.airavata.model.workspace.experiment.TaskDetails;
 import org.apache.airavata.schemas.gfac.ApplicationDeploymentDescriptionType;
 import org.apache.airavata.schemas.gfac.HpcApplicationDeploymentType;
 import org.apache.airavata.schemas.gfac.StringArrayType;
@@ -231,9 +232,9 @@ public class DataTransferrer {
 	}
 	
 	private String getDownloadLocation() {
-		ConfigurationData configurationData = jobContext.getConfigurationData();
-		if (configurationData != null && configurationData.getAdvanceOutputDataHandling() != null) {
-			String outputDataDirectory = configurationData.getAdvanceOutputDataHandling().getOutputdataDir();
+		TaskDetails taskData = jobContext.getTaskData();
+		if (taskData != null && taskData.getAdvancedOutputDataHandling() != null) {
+			String outputDataDirectory = taskData.getAdvancedOutputDataHandling().getOutputDataDir();
 			return outputDataDirectory;
 		}
 		return null;

http://git-wip-us.apache.org/repos/asf/airavata/blob/73222470/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/ResourceProcessor.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/ResourceProcessor.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/ResourceProcessor.java
index 83f28f0..61e713a 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/ResourceProcessor.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/provider/utils/ResourceProcessor.java
@@ -23,11 +23,10 @@ package org.apache.airavata.gfac.provider.utils;
 
 import org.apache.airavata.gfac.context.JobExecutionContext;
 import org.apache.airavata.gfac.provider.GFacProviderException;
-import org.apache.airavata.model.experiment.ComputationalResourceScheduling;
-import org.apache.airavata.model.experiment.ConfigurationData;
+import org.apache.airavata.model.workspace.experiment.ComputationalResourceScheduling;
+import org.apache.airavata.model.workspace.experiment.TaskDetails;
 import org.apache.airavata.schemas.gfac.HpcApplicationDeploymentType;
 import org.apache.airavata.schemas.gfac.QueueType;
-import org.apache.airavata.schemas.wec.ContextHeaderDocument;
 import org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDefinitionType;
 import org.ogf.schemas.jsdl.x2007.x02.jsdlSpmd.NumberOfProcessesType;
 
@@ -41,9 +40,9 @@ public class ResourceProcessor {
 				.getType();
 		
 		createMemory(value, appDepType);
-		ConfigurationData configurationData = context.getConfigurationData();
-	    if(configurationData != null && configurationData.isSetComputationalResourceScheduling()){
-	    	ComputationalResourceScheduling computionResource= configurationData.getComputationalResourceScheduling();
+		TaskDetails taskData = context.getTaskData();
+	    if(taskData != null && taskData.isSetTaskScheduling()){
+	    	ComputationalResourceScheduling computionResource= taskData.getTaskScheduling();
                 try {
                     int cpuCount = computionResource.getTotalCPUCount();
                     if(cpuCount>0){

http://git-wip-us.apache.org/repos/asf/airavata/blob/73222470/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/utils/GFacUtils.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/utils/GFacUtils.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/utils/GFacUtils.java
index 3f572af..55df7fd 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/utils/GFacUtils.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/utils/GFacUtils.java
@@ -38,6 +38,7 @@ import org.apache.airavata.commons.gfac.type.ActualParameter;
 import org.apache.airavata.gfac.Constants;
 import org.apache.airavata.gfac.GFacException;
 import org.apache.airavata.gfac.context.JobExecutionContext;
+import org.apache.airavata.model.workspace.experiment.DataObjectType;
 import org.apache.airavata.registry.api.workflow.ApplicationJob;
 import org.apache.airavata.registry.api.workflow.ApplicationJob.ApplicationJobStatus;
 import org.apache.airavata.schemas.gfac.BooleanArrayType;
@@ -165,181 +166,157 @@ public class GFacUtils {
         return buf.toString();
     }
 
-    public static ActualParameter getInputActualParameter(Parameter parameter, OMElement element) {
-        OMElement innerelement = null;
+    public static ActualParameter getInputActualParameter(Parameter parameter, DataObjectType element) {
         ActualParameter actualParameter = new ActualParameter();
         if ("String".equals(parameter.getParameterType().getName())) {
             actualParameter = new ActualParameter(StringParameterType.type);
-            if (!"".equals(element.getText())) {
-                ((StringParameterType) actualParameter.getType()).setValue(element.getText());
-            } else if (element.getChildrenWithLocalName("value").hasNext()) {
-                innerelement = (OMElement) element.getChildrenWithLocalName("value").next();
-                ((StringParameterType) actualParameter.getType()).setValue(innerelement.getText());
-            } else {
+            if (!"".equals(element.getValue())) {
+                ((StringParameterType) actualParameter.getType()).setValue(element.getValue());
+            }  else {
                 ((StringParameterType) actualParameter.getType()).setValue("");
             }
         } else if ("Double".equals(parameter.getParameterType().getName())) {
             actualParameter = new ActualParameter(DoubleParameterType.type);
-            if (!"".equals(element.getText())) {
-                ((DoubleParameterType) actualParameter.getType()).setValue(new Double(innerelement.getText()));
-            } else {
-                innerelement = (OMElement) element.getChildrenWithLocalName("value").next();
-                ((DoubleParameterType) actualParameter.getType()).setValue(new Double(innerelement.getText()));
-            }
+            if (!"".equals(element.getValue())) {
+                ((DoubleParameterType) actualParameter.getType()).setValue(new Double(element.getValue()));
+            } 
         } else if ("Integer".equals(parameter.getParameterType().getName())) {
             actualParameter = new ActualParameter(IntegerParameterType.type);
-            if (!"".equals(element.getText())) {
-                ((IntegerParameterType) actualParameter.getType()).setValue(new Integer(element.getText()));
-            } else {
-                innerelement = (OMElement) element.getChildrenWithLocalName("value").next();
-                ((IntegerParameterType) actualParameter.getType()).setValue(new Integer(innerelement.getText()));
-            }
+            if (!"".equals(element.getValue())) {
+                ((IntegerParameterType) actualParameter.getType()).setValue(new Integer(element.getValue()));
+            } 
         } else if ("Float".equals(parameter.getParameterType().getName())) {
             actualParameter = new ActualParameter(FloatParameterType.type);
-            if (!"".equals(element.getText())) {
-                ((FloatParameterType) actualParameter.getType()).setValue(new Float(element.getText()));
-            } else {
-                innerelement = (OMElement) element.getChildrenWithLocalName("value").next();
-                ((FloatParameterType) actualParameter.getType()).setValue(new Float(innerelement.getText()));
-            }
+            if (!"".equals(element.getValue())) {
+                ((FloatParameterType) actualParameter.getType()).setValue(new Float(element.getValue()));
+            } 
         } else if ("Boolean".equals(parameter.getParameterType().getName())) {
             actualParameter = new ActualParameter(BooleanParameterType.type);
-            if (!"".equals(element.getText())) {
-                ((BooleanParameterType) actualParameter.getType()).setValue(new Boolean(element.getText()));
-            } else {
-                innerelement = (OMElement) element.getChildrenWithLocalName("value").next();
-                ((BooleanParameterType) actualParameter.getType()).setValue(Boolean.parseBoolean(innerelement.getText()));
-            }
+            if (!"".equals(element.getValue())) {
+                ((BooleanParameterType) actualParameter.getType()).setValue(new Boolean(element.getValue()));
+            } 
         } else if ("File".equals(parameter.getParameterType().getName())) {
             actualParameter = new ActualParameter(FileParameterType.type);
-            if (!"".equals(element.getText())) {
-                ((FileParameterType) actualParameter.getType()).setValue(element.getText());
-            } else {
-                innerelement = (OMElement) element.getChildrenWithLocalName("value").next();
-                ((FileParameterType) actualParameter.getType()).setValue(innerelement.getText());
-            }
+            if (!"".equals(element.getValue())) {
+                ((FileParameterType) actualParameter.getType()).setValue(element.getValue());
+            } 
         } else if ("URI".equals(parameter.getParameterType().getName())) {
             actualParameter = new ActualParameter(URIParameterType.type);
-            if (!"".equals(element.getText())) {
-                ((URIParameterType) actualParameter.getType()).setValue(element.getText());
-            } else if (element.getChildrenWithLocalName("value").hasNext()) {
-                innerelement = (OMElement) element.getChildrenWithLocalName("value").next();
-                System.out.println(actualParameter.getType().toString());
-                log.debug(actualParameter.getType().toString());
-                ((URIParameterType) actualParameter.getType()).setValue(innerelement.getText());
+            if (!"".equals(element.getValue())) {
+                ((URIParameterType) actualParameter.getType()).setValue(element.getValue());
             } else {
                 ((URIParameterType) actualParameter.getType()).setValue("");
             }
-        } else if ("StringArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(StringArrayType.type);
-            Iterator value = element.getChildrenWithLocalName("value");
-            int i = 0;
-            if (!"".equals(element.getText())) {
-                String[] list = StringUtil.getElementsFromString(element.getText());
-                for (String arrayValue : list) {
-                    ((StringArrayType) actualParameter.getType()).insertValue(i++, arrayValue);
-                }
-            } else {
-                while (value.hasNext()) {
-                    innerelement = (OMElement) value.next();
-                    ((StringArrayType) actualParameter.getType()).insertValue(i++, innerelement.getText());
-                }
-            }
-        } else if ("DoubleArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(DoubleArrayType.type);
-            Iterator value = element.getChildrenWithLocalName("value");
-            int i = 0;
-            if (!"".equals(element.getText())) {
-                String[] list = StringUtil.getElementsFromString(element.getText());
-                for (String arrayValue : list) {
-                    ((DoubleArrayType) actualParameter.getType()).insertValue(i++, new Double(arrayValue));
-                }
-            } else {
-                while (value.hasNext()) {
-                    innerelement = (OMElement) value.next();
-                    ((DoubleArrayType) actualParameter.getType()).insertValue(i++, new Double(innerelement.getText()));
-                }
-            }
-
-        } else if ("IntegerArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(IntegerArrayType.type);
-            Iterator value = element.getChildrenWithLocalName("value");
-            int i = 0;
-            if (!"".equals(element.getText())) {
-                String[] list = StringUtil.getElementsFromString(element.getText());
-                for (String arrayValue : list) {
-                    ((IntegerArrayType) actualParameter.getType()).insertValue(i++, new Integer(arrayValue));
-                }
-            } else {
-                while (value.hasNext()) {
-                    innerelement = (OMElement) value.next();
-                    ((IntegerArrayType) actualParameter.getType()).insertValue(i++, new Integer(innerelement.getText()));
-                }
-            }
-        } else if ("FloatArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(FloatArrayType.type);
-            Iterator value = element.getChildrenWithLocalName("value");
-            int i = 0;
-            if (!"".equals(element.getText())) {
-                String[] list = StringUtil.getElementsFromString(element.getText());
-                for (String arrayValue : list) {
-                    ((FloatArrayType) actualParameter.getType()).insertValue(i++, new Float(arrayValue));
-                }
-            } else {
-
-                while (value.hasNext()) {
-                    innerelement = (OMElement) value.next();
-                    ((FloatArrayType) actualParameter.getType()).insertValue(i++, new Float(innerelement.getText()));
-                }
-            }
-        } else if ("BooleanArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(BooleanArrayType.type);
-            Iterator value = element.getChildrenWithLocalName("value");
-            int i = 0;
-            if (!"".equals(element.getText())) {
-                String[] list = StringUtil.getElementsFromString(element.getText());
-                for (String arrayValue : list) {
-                    ((BooleanArrayType) actualParameter.getType()).insertValue(i++, new Boolean(arrayValue));
-                }
-            } else {
-
-                while (value.hasNext()) {
-                    innerelement = (OMElement) value.next();
-                    ((BooleanArrayType) actualParameter.getType()).insertValue(i++, new Boolean(innerelement.getText()));
-                }
-            }
-        } else if ("FileArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(FileArrayType.type);
-            Iterator value = element.getChildrenWithLocalName("value");
-            int i = 0;
-            if (!"".equals(element.getText())) {
-                String[] list = StringUtil.getElementsFromString(element.getText());
-                for (String arrayValue : list) {
-                    ((FileArrayType) actualParameter.getType()).insertValue(i++, arrayValue);
-                }
-            } else {
-
-                while (value.hasNext()) {
-                    innerelement = (OMElement) value.next();
-                    ((FileArrayType) actualParameter.getType()).insertValue(i++, innerelement.getText());
-                }
-            }
-        } else if ("URIArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(URIArrayType.type);
-            Iterator value = element.getChildrenWithLocalName("value");
-            int i = 0;
-            if (!"".equals(element.getText())) {
-                String[] list = StringUtil.getElementsFromString(element.getText());
-                for (String arrayValue : list) {
-                    ((URIArrayType) actualParameter.getType()).insertValue(i++, arrayValue);
-                }
-            } else {
-
-                while (value.hasNext()) {
-                    innerelement = (OMElement) value.next();
-                    ((URIArrayType) actualParameter.getType()).insertValue(i++, innerelement.getText());
-                }
-            }
+//        } else if ("StringArray".equals(parameter.getParameterType().getName())) {
+//            actualParameter = new ActualParameter(StringArrayType.type);
+//            Iterator value = element.getChildrenWithLocalName("value");
+//            int i = 0;
+//            if (!"".equals(element.getText())) {
+//                String[] list = StringUtil.getElementsFromString(element.getText());
+//                for (String arrayValue : list) {
+//                    ((StringArrayType) actualParameter.getType()).insertValue(i++, arrayValue);
+//                }
+//            } else {
+//                while (value.hasNext()) {
+//                    innerelement = (OMElement) value.next();
+//                    ((StringArrayType) actualParameter.getType()).insertValue(i++, innerelement.getText());
+//                }
+//            }
+//        } else if ("DoubleArray".equals(parameter.getParameterType().getName())) {
+//            actualParameter = new ActualParameter(DoubleArrayType.type);
+//            Iterator value = element.getChildrenWithLocalName("value");
+//            int i = 0;
+//            if (!"".equals(element.getText())) {
+//                String[] list = StringUtil.getElementsFromString(element.getText());
+//                for (String arrayValue : list) {
+//                    ((DoubleArrayType) actualParameter.getType()).insertValue(i++, new Double(arrayValue));
+//                }
+//            } else {
+//                while (value.hasNext()) {
+//                    innerelement = (OMElement) value.next();
+//                    ((DoubleArrayType) actualParameter.getType()).insertValue(i++, new Double(innerelement.getText()));
+//                }
+//            }
+//
+//        } else if ("IntegerArray".equals(parameter.getParameterType().getName())) {
+//            actualParameter = new ActualParameter(IntegerArrayType.type);
+//            Iterator value = element.getChildrenWithLocalName("value");
+//            int i = 0;
+//            if (!"".equals(element.getText())) {
+//                String[] list = StringUtil.getElementsFromString(element.getText());
+//                for (String arrayValue : list) {
+//                    ((IntegerArrayType) actualParameter.getType()).insertValue(i++, new Integer(arrayValue));
+//                }
+//            } else {
+//                while (value.hasNext()) {
+//                    innerelement = (OMElement) value.next();
+//                    ((IntegerArrayType) actualParameter.getType()).insertValue(i++, new Integer(innerelement.getText()));
+//                }
+//            }
+//        } else if ("FloatArray".equals(parameter.getParameterType().getName())) {
+//            actualParameter = new ActualParameter(FloatArrayType.type);
+//            Iterator value = element.getChildrenWithLocalName("value");
+//            int i = 0;
+//            if (!"".equals(element.getText())) {
+//                String[] list = StringUtil.getElementsFromString(element.getText());
+//                for (String arrayValue : list) {
+//                    ((FloatArrayType) actualParameter.getType()).insertValue(i++, new Float(arrayValue));
+//                }
+//            } else {
+//
+//                while (value.hasNext()) {
+//                    innerelement = (OMElement) value.next();
+//                    ((FloatArrayType) actualParameter.getType()).insertValue(i++, new Float(innerelement.getText()));
+//                }
+//            }
+//        } else if ("BooleanArray".equals(parameter.getParameterType().getName())) {
+//            actualParameter = new ActualParameter(BooleanArrayType.type);
+//            Iterator value = element.getChildrenWithLocalName("value");
+//            int i = 0;
+//            if (!"".equals(element.getText())) {
+//                String[] list = StringUtil.getElementsFromString(element.getText());
+//                for (String arrayValue : list) {
+//                    ((BooleanArrayType) actualParameter.getType()).insertValue(i++, new Boolean(arrayValue));
+//                }
+//            } else {
+//
+//                while (value.hasNext()) {
+//                    innerelement = (OMElement) value.next();
+//                    ((BooleanArrayType) actualParameter.getType()).insertValue(i++, new Boolean(innerelement.getText()));
+//                }
+//            }
+//        } else if ("FileArray".equals(parameter.getParameterType().getName())) {
+//            actualParameter = new ActualParameter(FileArrayType.type);
+//            Iterator value = element.getChildrenWithLocalName("value");
+//            int i = 0;
+//            if (!"".equals(element.getText())) {
+//                String[] list = StringUtil.getElementsFromString(element.getText());
+//                for (String arrayValue : list) {
+//                    ((FileArrayType) actualParameter.getType()).insertValue(i++, arrayValue);
+//                }
+//            } else {
+//
+//                while (value.hasNext()) {
+//                    innerelement = (OMElement) value.next();
+//                    ((FileArrayType) actualParameter.getType()).insertValue(i++, innerelement.getText());
+//                }
+//            }
+//        } else if ("URIArray".equals(parameter.getParameterType().getName())) {
+//            actualParameter = new ActualParameter(URIArrayType.type);
+//            Iterator value = element.getChildrenWithLocalName("value");
+//            int i = 0;
+//            if (!"".equals(element.getText())) {
+//                String[] list = StringUtil.getElementsFromString(element.getText());
+//                for (String arrayValue : list) {
+//                    ((URIArrayType) actualParameter.getType()).insertValue(i++, arrayValue);
+//                }
+//            } else {
+//
+//                while (value.hasNext()) {
+//                    innerelement = (OMElement) value.next();
+//                    ((URIArrayType) actualParameter.getType()).insertValue(i++, innerelement.getText());
+//                }
+//            }
         }
         return actualParameter;
     }
@@ -582,12 +559,15 @@ public class GFacUtils {
         }
     }
 
-    public static Map<String, Object> getMessageContext(Map<String, String> experimentData,
+    public static Map<String, Object> getMessageContext(List<DataObjectType> experimentData,
                                                         Parameter[] parameters) throws GFacException {
         HashMap<String, Object> stringObjectHashMap = new HashMap<String, Object>();
-
+        Map<String,DataObjectType> map = new HashMap<String,DataObjectType>();
+        for(DataObjectType objectType : experimentData){
+        	map.put(objectType.getKey(), objectType);
+        }
         for (int i = 0; i < parameters.length; i++) {
-            String input = experimentData.get(parameters[i].getParameterName());
+        	DataObjectType input = map.get(parameters[i].getParameterName());
             if (input != null) {
                 stringObjectHashMap.put(parameters[i].getParameterName(), GFacUtils.getInputActualParameter(parameters[i], input));
             } else {

http://git-wip-us.apache.org/repos/asf/airavata/blob/73222470/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/utils/GramRSLGenerator.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/utils/GramRSLGenerator.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/utils/GramRSLGenerator.java
index 16b1f3e..d54296b 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/utils/GramRSLGenerator.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/utils/GramRSLGenerator.java
@@ -32,8 +32,9 @@ import org.apache.airavata.gfac.ToolsException;
 import org.apache.airavata.gfac.context.JobExecutionContext;
 import org.apache.airavata.gfac.context.MessageContext;
 import org.apache.airavata.gfac.provider.GFacProviderException;
-import org.apache.airavata.model.experiment.ComputationalResourceScheduling;
 import org.apache.airavata.model.experiment.ConfigurationData;
+import org.apache.airavata.model.workspace.experiment.ComputationalResourceScheduling;
+import org.apache.airavata.model.workspace.experiment.TaskDetails;
 import org.apache.airavata.schemas.gfac.FileArrayType;
 import org.apache.airavata.schemas.gfac.HpcApplicationDeploymentType;
 import org.apache.airavata.schemas.gfac.NameValuePairType;
@@ -110,9 +111,9 @@ public class GramRSLGenerator {
         }
         // Using the workflowContext Header values if user provided them in the request and overwrite the default values in DD
         //todo finish the scheduling based on workflow execution context
-        ConfigurationData configurationData = context.getConfigurationData();
-        if(configurationData != null && configurationData.getComputationalResourceScheduling() != null){
-        	 ComputationalResourceScheduling computionnalResource = configurationData.getComputationalResourceScheduling();
+        TaskDetails taskData = context.getTaskData();
+        if(taskData != null && taskData.isSetTaskScheduling()){
+        	 ComputationalResourceScheduling computionnalResource = taskData.getTaskScheduling();
                 try {
                     int cpuCount = computionnalResource.getTotalCPUCount();
                     if(cpuCount>0){