Repository: airavata
Updated Branches:
  refs/heads/gfac_appcatalog_int 088e80f03 -> b52499eb7


http://git-wip-us.apache.org/repos/asf/airavata/blob/b52499eb/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/GFacUtils.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/GFacUtils.java
 
b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/GFacUtils.java
index c5a96f9..6e1b8b7 100644
--- 
a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/GFacUtils.java
+++ 
b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/GFacUtils.java
@@ -28,7 +28,6 @@ import org.apache.airavata.common.utils.AiravataZKUtils;
 import org.apache.airavata.common.utils.DBUtil;
 import org.apache.airavata.common.utils.ServerSettings;
 import org.apache.airavata.common.utils.StringUtil;
-import org.apache.airavata.commons.gfac.type.ActualParameter;
 import org.apache.airavata.credential.store.store.CredentialReader;
 import org.apache.airavata.credential.store.store.impl.CredentialReaderImpl;
 import org.apache.airavata.gfac.Constants;
@@ -39,16 +38,48 @@ import 
org.apache.airavata.gfac.core.context.JobExecutionContext;
 import org.apache.airavata.gfac.core.handler.GFacHandlerException;
 import org.apache.airavata.gfac.core.states.GfacExperimentState;
 import org.apache.airavata.gfac.core.states.GfacPluginState;
-import org.apache.airavata.model.appcatalog.computeresource.*;
-import org.apache.airavata.model.workspace.experiment.*;
-import org.apache.airavata.model.workspace.experiment.DataType;
+import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
+import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
+import org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission;
+import 
org.apache.airavata.model.appcatalog.computeresource.GlobusJobSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission;
+import 
org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission;
+import org.apache.airavata.model.workspace.experiment.ActionableGroup;
+import org.apache.airavata.model.workspace.experiment.CorrectiveAction;
+import org.apache.airavata.model.workspace.experiment.ErrorCategory;
+import org.apache.airavata.model.workspace.experiment.ErrorDetails;
+import org.apache.airavata.model.workspace.experiment.JobDetails;
+import org.apache.airavata.model.workspace.experiment.JobState;
+import org.apache.airavata.model.workspace.experiment.JobStatus;
 import org.apache.airavata.persistance.registry.jpa.impl.RegistryFactory;
 import org.apache.airavata.registry.cpi.ChildDataType;
 import org.apache.airavata.registry.cpi.CompositeIdentifier;
 import org.apache.airavata.registry.cpi.Registry;
-import org.apache.airavata.schemas.gfac.*;
+import org.apache.airavata.schemas.gfac.BooleanArrayType;
+import org.apache.airavata.schemas.gfac.BooleanParameterType;
+import org.apache.airavata.schemas.gfac.DataType;
+import org.apache.airavata.schemas.gfac.DoubleArrayType;
+import org.apache.airavata.schemas.gfac.DoubleParameterType;
+import org.apache.airavata.schemas.gfac.FileArrayType;
+import org.apache.airavata.schemas.gfac.FileParameterType;
+import org.apache.airavata.schemas.gfac.FloatArrayType;
+import org.apache.airavata.schemas.gfac.FloatParameterType;
+import org.apache.airavata.schemas.gfac.IntegerArrayType;
+import org.apache.airavata.schemas.gfac.IntegerParameterType;
+import org.apache.airavata.schemas.gfac.Parameter;
+import org.apache.airavata.schemas.gfac.StdErrParameterType;
+import org.apache.airavata.schemas.gfac.StdOutParameterType;
+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.axiom.om.OMElement;
-import org.apache.zookeeper.*;
+import org.apache.zookeeper.CreateMode;
+import org.apache.zookeeper.KeeperException;
+import org.apache.zookeeper.ZKUtil;
+import org.apache.zookeeper.ZooDefs;
+import org.apache.zookeeper.ZooKeeper;
 import org.apache.zookeeper.data.Stat;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -62,11 +93,25 @@ import javax.xml.xpath.XPathConstants;
 import javax.xml.xpath.XPathExpression;
 import javax.xml.xpath.XPathExpressionException;
 import javax.xml.xpath.XPathFactory;
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
 import java.net.InetAddress;
 import java.net.URISyntaxException;
 import java.net.UnknownHostException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+//import org.apache.airavata.commons.gfac.type.ActualParameter;
 
 public class GFacUtils {
        private final static Logger log = 
LoggerFactory.getLogger(GFacUtils.class);
@@ -187,410 +232,410 @@ public class GFacUtils {
                return buf.toString();
        }
 
-       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.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.getValue())) {
-                               ((DoubleParameterType) 
actualParameter.getType())
-                                               .setValue(new 
Double(element.getValue()));
-                       }
-               } else if 
("Integer".equals(parameter.getParameterType().getName())) {
-                       actualParameter = new 
ActualParameter(IntegerParameterType.type);
-                       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.getValue())) {
-                               ((FloatParameterType) actualParameter.getType())
-                                               .setValue(new 
Float(element.getValue()));
-                       }
-               } else if 
("Boolean".equals(parameter.getParameterType().getName())) {
-                       actualParameter = new 
ActualParameter(BooleanParameterType.type);
-                       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.getValue())) {
-                               ((FileParameterType) actualParameter.getType())
-                                               .setValue(element.getValue());
-                       }
-               } else if 
("URI".equals(parameter.getParameterType().getName())) {
-                       actualParameter = new 
ActualParameter(URIParameterType.type);
-                       if (!"".equals(element.getValue())) {
-                               ((URIParameterType) 
actualParameter.getType()).setValue(element
-                                               .getValue());
-                       } else {
-                               ((URIParameterType) 
actualParameter.getType()).setValue("");
-                       }
-
-               } else if 
("StdOut".equals(parameter.getParameterType().getName())) {
-                       actualParameter = new 
ActualParameter(StdOutParameterType.type);
-                       if (!"".equals(element.getValue())) {
-                               ((StdOutParameterType) 
actualParameter.getType())
-                                               .setValue(element.getValue());
-                       } else {
-                               ((StdOutParameterType) 
actualParameter.getType()).setValue("");
-                       }
-
-               } else if 
("StdErr".equals(parameter.getParameterType().getName())) {
-                       actualParameter = new 
ActualParameter(StdErrParameterType.type);
-                       if (!"".equals(element.getValue())) {
-                               ((StdErrParameterType) 
actualParameter.getType())
-                                               .setValue(element.getValue());
-                       } else {
-                               ((StdErrParameterType) 
actualParameter.getType()).setValue("");
-                       }
-
-               }
-               return actualParameter;
-       }
-
-       public static ActualParameter getInputActualParameter(Parameter 
parameter,
-                       OMElement element) {
-               OMElement innerelement = null;
-               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 {
-                               ((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()));
-                       }
-               } 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()));
-                       }
-               } 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()));
-                       }
-               } 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()));
-                       }
-               } 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());
-                       }
-               } 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());
-                       } 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 {
+//     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.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.getValue())) {
+//                             ((DoubleParameterType) 
actualParameter.getType())
+//                                             .setValue(new 
Double(element.getValue()));
+//                     }
+//             } else if 
("Integer".equals(parameter.getParameterType().getName())) {
+//                     actualParameter = new 
ActualParameter(IntegerParameterType.type);
+//                     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.getValue())) {
+//                             ((FloatParameterType) actualParameter.getType())
+//                                             .setValue(new 
Float(element.getValue()));
+//                     }
+//             } else if 
("Boolean".equals(parameter.getParameterType().getName())) {
+//                     actualParameter = new 
ActualParameter(BooleanParameterType.type);
+//                     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.getValue())) {
+//                             ((FileParameterType) actualParameter.getType())
+//                                             .setValue(element.getValue());
+//                     }
+//             } else if 
("URI".equals(parameter.getParameterType().getName())) {
+//                     actualParameter = new 
ActualParameter(URIParameterType.type);
+//                     if (!"".equals(element.getValue())) {
+//                             ((URIParameterType) 
actualParameter.getType()).setValue(element
+//                                             .getValue());
+//                     } else {
+//                             ((URIParameterType) 
actualParameter.getType()).setValue("");
+//                     }
+//
+//             } else if 
("StdOut".equals(parameter.getParameterType().getName())) {
+//                     actualParameter = new 
ActualParameter(StdOutParameterType.type);
+//                     if (!"".equals(element.getValue())) {
+//                             ((StdOutParameterType) 
actualParameter.getType())
+//                                             .setValue(element.getValue());
+//                     } else {
+//                             ((StdOutParameterType) 
actualParameter.getType()).setValue("");
+//                     }
+//
+//             } else if 
("StdErr".equals(parameter.getParameterType().getName())) {
+//                     actualParameter = new 
ActualParameter(StdErrParameterType.type);
+//                     if (!"".equals(element.getValue())) {
+//                             ((StdErrParameterType) 
actualParameter.getType())
+//                                             .setValue(element.getValue());
+//                     } else {
+//                             ((StdErrParameterType) 
actualParameter.getType()).setValue("");
+//                     }
+//
+//             }
+//             return actualParameter;
+//     }
 
-                               while (value.hasNext()) {
-                                       innerelement = (OMElement) value.next();
-                                       ((URIArrayType) 
actualParameter.getType()).insertValue(i++,
-                                                       innerelement.getText());
-                               }
-                       }
-               }
-               return actualParameter;
-       }
+//     public static ActualParameter getInputActualParameter(Parameter 
parameter,
+//                     OMElement element) {
+//             OMElement innerelement = null;
+//             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 {
+//                             ((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()));
+//                     }
+//             } 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()));
+//                     }
+//             } 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()));
+//                     }
+//             } 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()));
+//                     }
+//             } 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());
+//                     }
+//             } 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());
+//                     } 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());
+//                             }
+//                     }
+//             }
+//             return actualParameter;
+//     }
 
-       public static ActualParameter getInputActualParameter(Parameter 
parameter,
-                       String inputVal) throws GFacException {
-               OMElement innerelement = null;
-               ActualParameter actualParameter = new ActualParameter();
-               if ("String".equals(parameter.getParameterType().getName())) {
-                       actualParameter = new 
ActualParameter(StringParameterType.type);
-                       ((StringParameterType) actualParameter.getType())
-                                       .setValue(inputVal);
-               } else if 
("Double".equals(parameter.getParameterType().getName())) {
-                       actualParameter = new 
ActualParameter(DoubleParameterType.type);
-                       ((DoubleParameterType) actualParameter.getType())
-                                       .setValue(new Double(inputVal));
-               } else if 
("Integer".equals(parameter.getParameterType().getName())) {
-                       actualParameter = new 
ActualParameter(IntegerParameterType.type);
-                       ((IntegerParameterType) actualParameter.getType())
-                                       .setValue(new Integer(inputVal));
-               } else if 
("Float".equals(parameter.getParameterType().getName())) {
-                       actualParameter = new 
ActualParameter(FloatParameterType.type);
-                       ((FloatParameterType) actualParameter.getType())
-                                       .setValue(new Float(inputVal));
-               } else if 
("Boolean".equals(parameter.getParameterType().getName())) {
-                       actualParameter = new 
ActualParameter(BooleanParameterType.type);
-                       ((BooleanParameterType) actualParameter.getType())
-                                       .setValue(new Boolean(inputVal));
-               } else if 
("File".equals(parameter.getParameterType().getName())) {
-                       actualParameter = new 
ActualParameter(FileParameterType.type);
-                       ((FileParameterType) 
actualParameter.getType()).setValue(inputVal);
-               } else if 
("URI".equals(parameter.getParameterType().getName())) {
-                       actualParameter = new 
ActualParameter(URIParameterType.type);
-                       ((URIParameterType) 
actualParameter.getType()).setValue(inputVal);
-               } else if 
("StringArray".equals(parameter.getParameterType().getName())) {
-                       actualParameter = new 
ActualParameter(StringArrayType.type);
-                       Iterator iterator = Arrays.asList(
-                                       
StringUtil.getElementsFromString(inputVal)).iterator();
-                       int i = 0;
-                       while (iterator.hasNext()) {
-                               innerelement = (OMElement) iterator.next();
-                               ((StringArrayType) 
actualParameter.getType()).insertValue(i++,
-                                               innerelement.getText());
-                       }
-               } else if 
("DoubleArray".equals(parameter.getParameterType().getName())) {
-                       actualParameter = new 
ActualParameter(DoubleArrayType.type);
-                       Iterator value = Arrays.asList(
-                                       
StringUtil.getElementsFromString(inputVal)).iterator();
-                       int i = 0;
-                       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 = Arrays.asList(
-                                       
StringUtil.getElementsFromString(inputVal)).iterator();
-                       int i = 0;
-                       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 = Arrays.asList(
-                                       
StringUtil.getElementsFromString(inputVal)).iterator();
-                       int i = 0;
-                       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 = Arrays.asList(
-                                       
StringUtil.getElementsFromString(inputVal)).iterator();
-                       int i = 0;
-                       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 = Arrays.asList(
-                                       
StringUtil.getElementsFromString(inputVal)).iterator();
-                       int i = 0;
-                       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 = Arrays.asList(
-                                       
StringUtil.getElementsFromString(inputVal)).iterator();
-                       int i = 0;
-                       while (value.hasNext()) {
-                               innerelement = (OMElement) value.next();
-                               ((URIArrayType) 
actualParameter.getType()).insertValue(i++,
-                                               innerelement.getText());
-                       }
-               } else {
-                       throw new GFacException(
-                                       "Input parameters are not configured 
properly ");
-               }
-               return actualParameter;
-       }
+//     public static ActualParameter getInputActualParameter(Parameter 
parameter,
+//                     String inputVal) throws GFacException {
+//             OMElement innerelement = null;
+//             ActualParameter actualParameter = new ActualParameter();
+//             if ("String".equals(parameter.getParameterType().getName())) {
+//                     actualParameter = new 
ActualParameter(StringParameterType.type);
+//                     ((StringParameterType) actualParameter.getType())
+//                                     .setValue(inputVal);
+//             } else if 
("Double".equals(parameter.getParameterType().getName())) {
+//                     actualParameter = new 
ActualParameter(DoubleParameterType.type);
+//                     ((DoubleParameterType) actualParameter.getType())
+//                                     .setValue(new Double(inputVal));
+//             } else if 
("Integer".equals(parameter.getParameterType().getName())) {
+//                     actualParameter = new 
ActualParameter(IntegerParameterType.type);
+//                     ((IntegerParameterType) actualParameter.getType())
+//                                     .setValue(new Integer(inputVal));
+//             } else if 
("Float".equals(parameter.getParameterType().getName())) {
+//                     actualParameter = new 
ActualParameter(FloatParameterType.type);
+//                     ((FloatParameterType) actualParameter.getType())
+//                                     .setValue(new Float(inputVal));
+//             } else if 
("Boolean".equals(parameter.getParameterType().getName())) {
+//                     actualParameter = new 
ActualParameter(BooleanParameterType.type);
+//                     ((BooleanParameterType) actualParameter.getType())
+//                                     .setValue(new Boolean(inputVal));
+//             } else if 
("File".equals(parameter.getParameterType().getName())) {
+//                     actualParameter = new 
ActualParameter(FileParameterType.type);
+//                     ((FileParameterType) 
actualParameter.getType()).setValue(inputVal);
+//             } else if 
("URI".equals(parameter.getParameterType().getName())) {
+//                     actualParameter = new 
ActualParameter(URIParameterType.type);
+//                     ((URIParameterType) 
actualParameter.getType()).setValue(inputVal);
+//             } else if 
("StringArray".equals(parameter.getParameterType().getName())) {
+//                     actualParameter = new 
ActualParameter(StringArrayType.type);
+//                     Iterator iterator = Arrays.asList(
+//                                     
StringUtil.getElementsFromString(inputVal)).iterator();
+//                     int i = 0;
+//                     while (iterator.hasNext()) {
+//                             innerelement = (OMElement) iterator.next();
+//                             ((StringArrayType) 
actualParameter.getType()).insertValue(i++,
+//                                             innerelement.getText());
+//                     }
+//             } else if 
("DoubleArray".equals(parameter.getParameterType().getName())) {
+//                     actualParameter = new 
ActualParameter(DoubleArrayType.type);
+//                     Iterator value = Arrays.asList(
+//                                     
StringUtil.getElementsFromString(inputVal)).iterator();
+//                     int i = 0;
+//                     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 = Arrays.asList(
+//                                     
StringUtil.getElementsFromString(inputVal)).iterator();
+//                     int i = 0;
+//                     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 = Arrays.asList(
+//                                     
StringUtil.getElementsFromString(inputVal)).iterator();
+//                     int i = 0;
+//                     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 = Arrays.asList(
+//                                     
StringUtil.getElementsFromString(inputVal)).iterator();
+//                     int i = 0;
+//                     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 = Arrays.asList(
+//                                     
StringUtil.getElementsFromString(inputVal)).iterator();
+//                     int i = 0;
+//                     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 = Arrays.asList(
+//                                     
StringUtil.getElementsFromString(inputVal)).iterator();
+//                     int i = 0;
+//                     while (value.hasNext()) {
+//                             innerelement = (OMElement) value.next();
+//                             ((URIArrayType) 
actualParameter.getType()).insertValue(i++,
+//                                             innerelement.getText());
+//                     }
+//             } else {
+//                     throw new GFacException(
+//                                     "Input parameters are not configured 
properly ");
+//             }
+//             return actualParameter;
+//     }
 
 //     public static ApplicationJob createApplicationJob(
 //                     JobExecutionContext jobExecutionContext) {
@@ -811,89 +856,89 @@ public class GFacUtils {
                }
        }
 
-       public static Map<String, Object> getInMessageContext(
-                       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++) {
-                       DataObjectType input = 
map.get(parameters[i].getParameterName());
-                       if (input != null) {
-                               DataType t = DataType.STRING;
-                               String type = 
parameters[i].getParameterType().getType().toString().toUpperCase();
-                               if (type.equals("STRING")){
-                                       t=DataType.STRING;
-                               }else if (type.equals("INTEGER")){
-                                       t=DataType.INTEGER;
-                               }else if (type.equals("FLOAT")){
-                                       //FIXME
-                                       t=DataType.INTEGER;
-                               }else if (type.equals("URI")){
-                                       t=DataType.URI;
-                               }
-                               input.setType(t);
-                               stringObjectHashMap
-                                               
.put(parameters[i].getParameterName(), GFacUtils
-                                                               
.getInputActualParameter(parameters[i], input));
-                       } else {
-                               throw new GFacException(
-                                               "Error finding the parameter: 
parameter Name"
-                                                               + 
parameters[i].getParameterName());
-                       }
-               }
-               return stringObjectHashMap;
-       }
+//     public static Map<String, Object> getInMessageContext(
+//                     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++) {
+//                     DataObjectType input = 
map.get(parameters[i].getParameterName());
+//                     if (input != null) {
+//                             DataType t = DataType.STRING;
+//                             String type = 
parameters[i].getParameterType().getType().toString().toUpperCase();
+//                             if (type.equals("STRING")){
+//                                     t=DataType.STRING;
+//                             }else if (type.equals("INTEGER")){
+//                                     t=DataType.INTEGER;
+//                             }else if (type.equals("FLOAT")){
+//                                     //FIXME
+//                                     t=DataType.INTEGER;
+//                             }else if (type.equals("URI")){
+//                                     t=DataType.URI;
+//                             }
+//                             input.setType(t);
+//                             stringObjectHashMap
+//                                             
.put(parameters[i].getParameterName(), GFacUtils
+//                                                             
.getInputActualParameter(parameters[i], input));
+//                     } else {
+//                             throw new GFacException(
+//                                             "Error finding the parameter: 
parameter Name"
+//                                                             + 
parameters[i].getParameterName());
+//                     }
+//             }
+//             return stringObjectHashMap;
+//     }
 
-    public static Map<String, Object> getInMessageContext(List<DataObjectType> 
experimentData) throws GFacException {
+    public static Map<String, Object> 
getInputParamMap(List<InputDataObjectType> experimentData) throws GFacException 
{
         Map<String, Object> map = new HashMap<String, Object>();
-        for (DataObjectType objectType : experimentData) {
-            map.put(objectType.getKey(), objectType);
+        for (InputDataObjectType objectType : experimentData) {
+            map.put(objectType.getName(), objectType);
         }
         return map;
     }
+//
+//     public static Map<String, Object> getOutMessageContext(
+//                     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++) {
+//                     DataObjectType output = 
map.get(parameters[i].getParameterName());
+//                     if (output==null){
+//                             output=new DataObjectType();
+//                             output.setKey(parameters[i].getParameterName());
+//                             output.setValue("");
+//                             String type = 
parameters[i].getParameterType().getType().toString().toUpperCase();
+//                             DataType t = DataType.STRING;
+//                             if (type.equals("STRING")){
+//                                     t=DataType.STRING;
+//                             }else if (type.equals("INTEGER")){
+//                                     t=DataType.INTEGER;
+//                             }else if (type.equals("FLOAT")){
+//                                     //FIXME
+//                                     t=DataType.INTEGER;
+//                             }else if (type.equals("URI")){
+//                                     t=DataType.URI;
+//                             }
+//                             output.setType(t);
+//                     }
+//                     stringObjectHashMap
+//                                     .put(parameters[i].getParameterName(), 
GFacUtils
+//                                                     
.getInputActualParameter(parameters[i], output));
+//             }
+//             return stringObjectHashMap;
+//     }
 
-       public static Map<String, Object> getOutMessageContext(
-                       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++) {
-                       DataObjectType output = 
map.get(parameters[i].getParameterName());
-                       if (output==null){
-                               output=new DataObjectType();
-                               output.setKey(parameters[i].getParameterName());
-                               output.setValue("");
-                               String type = 
parameters[i].getParameterType().getType().toString().toUpperCase();
-                               DataType t = DataType.STRING;
-                               if (type.equals("STRING")){
-                                       t=DataType.STRING;
-                               }else if (type.equals("INTEGER")){
-                                       t=DataType.INTEGER;
-                               }else if (type.equals("FLOAT")){
-                                       //FIXME
-                                       t=DataType.INTEGER;
-                               }else if (type.equals("URI")){
-                                       t=DataType.URI;
-                               }
-                               output.setType(t);
-                       }
-                       stringObjectHashMap
-                                       .put(parameters[i].getParameterName(), 
GFacUtils
-                                                       
.getInputActualParameter(parameters[i], output));
-               }
-               return stringObjectHashMap;
-       }
-
-    public static Map<String, Object> 
getOutMessageContext(List<DataObjectType> experimentData) throws GFacException {
+    public static Map<String, Object> 
getOuputParamMap(List<OutputDataObjectType> experimentData) throws 
GFacException {
         Map<String, Object> map = new HashMap<String, Object>();
-        for (DataObjectType objectType : experimentData) {
-            map.put(objectType.getKey(), objectType);
+        for (OutputDataObjectType objectType : experimentData) {
+            map.put(objectType.getName(), objectType);
         }
         return map;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/b52499eb/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/OutputUtils.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/OutputUtils.java
 
b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/OutputUtils.java
index 4008721..574fab8 100644
--- 
a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/OutputUtils.java
+++ 
b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/OutputUtils.java
@@ -20,68 +20,64 @@
 */
 package org.apache.airavata.gfac.core.utils;
 
+import org.apache.airavata.common.utils.StringUtil;
+import org.apache.airavata.gfac.core.handler.GFacHandlerException;
+import org.apache.airavata.model.appcatalog.appinterface.DataType;
+import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
+
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.airavata.common.utils.StringUtil;
-import org.apache.airavata.commons.gfac.type.ActualParameter;
-import org.apache.airavata.commons.gfac.type.MappingFactory;
-import org.apache.airavata.gfac.core.handler.GFacHandlerException;
-import org.apache.airavata.model.workspace.experiment.DataObjectType;
-import org.apache.airavata.model.workspace.experiment.DataType;
-import org.apache.airavata.schemas.gfac.StdErrParameterType;
-import org.apache.airavata.schemas.gfac.StdOutParameterType;
-
 public class OutputUtils {
     private static String regexPattern = "\\s*=\\s*(.*)\\r?\\n";
 
-       public static void fillOutputFromStdout(Map<String, Object> output, 
String stdout, String stderr, List<DataObjectType> outputArray) throws 
Exception {
+       public static void fillOutputFromStdout(Map<String, Object> output, 
String stdout, String stderr, List<OutputDataObjectType> outputArray) throws 
Exception {
 
                if (stdout == null || stdout.equals("")) {
                        throw new GFacHandlerException("Standard output is 
empty.");
                }
 
                Set<String> keys = output.keySet();
+        OutputDataObjectType actual = null;
+        OutputDataObjectType resultOutput = null;
                for (String paramName : keys) {
-                       ActualParameter actual = (ActualParameter) 
output.get(paramName);
+                       actual = (OutputDataObjectType) output.get(paramName);
                        // if parameter value is not already set, we let it go
 
                        if (actual == null) {
                                continue;
                        }
-                       if 
("StdOut".equals(actual.getType().getType().toString())) {
-                       ((StdOutParameterType) 
actual.getType()).setValue(stdout);
-                       DataObjectType out = new DataObjectType();
-                               out.setKey(paramName);
-                               out.setType(DataType.STDOUT);
-                               out.setValue(stdout);
-                               outputArray.add(out);
-                       } else if 
("StdErr".equals(actual.getType().getType().toString())) {
-                               ((StdErrParameterType) 
actual.getType()).setValue(stderr);
-                       DataObjectType out = new DataObjectType();
-                               out.setKey(paramName);
-                               out.setType(DataType.STDERR);
-                               out.setValue(stderr);
-                               outputArray.add(out);
-                       }
+            resultOutput = new OutputDataObjectType();
+            if (DataType.STDOUT == actual.getType()) {
+                actual.setValue(stdout);
+                resultOutput.setName(paramName);
+                resultOutput.setType(DataType.STDOUT);
+                resultOutput.setValue(stdout);
+                outputArray.add(resultOutput);
+                       } else if (DataType.STDERR == actual.getType()) {
+                actual.setValue(stderr);
+                resultOutput.setName(paramName);
+                resultOutput.setType(DataType.STDERR);
+                resultOutput.setValue(stderr);
+                outputArray.add(resultOutput);
+            }
 //                     else if 
("URI".equals(actual.getType().getType().toString())) {
 //                             continue;
 //                     } 
-                       else {
-                               String parseStdout = parseStdout(stdout, 
paramName);
-                               if (parseStdout != null) {
-                                       DataObjectType out = new 
DataObjectType();
-                                       out.setKey(paramName);
-                                       out.setType(DataType.STRING);
-                                       out.setValue(parseStdout);
-                                       outputArray.add(out);
-                                       MappingFactory.fromString(actual, 
parseStdout);
-                 }
-                       }
-               }
+            else {
+                String parseStdout = parseStdout(stdout, paramName);
+                if (parseStdout != null) {
+                    actual.setValue(parseStdout);
+                    resultOutput.setName(paramName);
+                    resultOutput.setType(DataType.STRING);
+                    resultOutput.setValue(parseStdout);
+                    outputArray.add(resultOutput);
+                }
+            }
+        }
        }
 
     private static String parseStdout(String stdout, String outParam) throws 
Exception {

http://git-wip-us.apache.org/repos/asf/airavata/blob/b52499eb/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GridFTPOutputHandler.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GridFTPOutputHandler.java
 
b/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GridFTPOutputHandler.java
index 7e226ea..850608f 100644
--- 
a/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GridFTPOutputHandler.java
+++ 
b/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GridFTPOutputHandler.java
@@ -47,6 +47,7 @@ import org.apache.airavata.gfac.core.utils.OutputUtils;
 import org.apache.airavata.gfac.gram.security.GSISecurityContext;
 import org.apache.airavata.gfac.gram.external.GridFtp;
 import org.apache.airavata.gfac.gram.util.GramProviderUtils;
+import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
 import org.apache.airavata.model.workspace.experiment.CorrectiveAction;
 import org.apache.airavata.model.workspace.experiment.DataObjectType;
 import org.apache.airavata.model.workspace.experiment.DataTransferDetails;
@@ -157,7 +158,7 @@ public class GridFTPOutputHandler extends AbstractHandler {
                         log.error("Cannot download stdout/err files. One 
reason could be the job is not successfully finished:  "+e.getMessage());
                     }
 
-                    List<DataObjectType> outputArray = new 
ArrayList<DataObjectType>();
+                    List<OutputDataObjectType> outputArray = new 
ArrayList<OutputDataObjectType>();
                     Map<String, Object> output = 
jobExecutionContext.getOutMessageContext().getParameters();
                     Set<String> keys = output.keySet();
                     for (String paramName : keys) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/b52499eb/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java
 
b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java
index d9e669d..39f8df1 100644
--- 
a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java
+++ 
b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java
@@ -30,10 +30,10 @@ import org.apache.airavata.gfac.core.utils.GFacUtils;
 import org.apache.airavata.gfac.gsissh.security.GSISecurityContext;
 import org.apache.airavata.gfac.gsissh.util.GFACGSISSHUtils;
 import org.apache.airavata.gsi.ssh.api.Cluster;
+import org.apache.airavata.model.appcatalog.appinterface.DataType;
+import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
 import org.apache.airavata.model.workspace.experiment.CorrectiveAction;
-import org.apache.airavata.model.workspace.experiment.DataObjectType;
 import org.apache.airavata.model.workspace.experiment.DataTransferDetails;
-import org.apache.airavata.model.workspace.experiment.DataType;
 import org.apache.airavata.model.workspace.experiment.ErrorCategory;
 import org.apache.airavata.model.workspace.experiment.TransferState;
 import org.apache.airavata.model.workspace.experiment.TransferStatus;
@@ -113,8 +113,8 @@ public class GSISSHInputHandler extends 
AbstractRecoverableHandler {
             MessageContext input = jobExecutionContext.getInMessageContext();
             Set<String> parameters = input.getParameters().keySet();
             for (String paramName : parameters) {
-                DataObjectType inputParamType = (DataObjectType) 
input.getParameters().get(paramName);
-                String paramValue = inputParamType.getKey();
+                InputDataObjectType inputParamType = (InputDataObjectType) 
input.getParameters().get(paramName);
+                String paramValue = inputParamType.getName();
                 //TODO: Review this with type
                 if (inputParamType.getType() == DataType.URI) {
                     if (index < oldIndex) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/b52499eb/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java
 
b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java
index a714099..a25e66a 100644
--- 
a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java
+++ 
b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java
@@ -20,23 +20,10 @@
 */
 package org.apache.airavata.gfac.gsissh.handler;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.*;
-
-import net.schmizz.sshj.connection.ConnectionException;
-import net.schmizz.sshj.transport.TransportException;
-
-import org.apache.aiaravata.application.catalog.data.impl.AppCatalogFactory;
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.common.utils.Constants;
-import org.apache.airavata.commons.gfac.type.ActualParameter;
-import org.apache.airavata.commons.gfac.type.ApplicationDescription;
-import org.apache.airavata.commons.gfac.type.MappingFactory;
+//import org.apache.airavata.commons.gfac.type.ActualParameter;
+//import org.apache.airavata.commons.gfac.type.MappingFactory;
 import org.apache.airavata.gfac.GFacException;
 import org.apache.airavata.gfac.core.context.JobExecutionContext;
-import org.apache.airavata.gfac.core.cpi.BetterGfacImpl;
-import org.apache.airavata.gfac.core.handler.AbstractHandler;
 import org.apache.airavata.gfac.core.handler.AbstractRecoverableHandler;
 import org.apache.airavata.gfac.core.handler.GFacHandlerException;
 import org.apache.airavata.gfac.core.provider.GFacProviderException;
@@ -45,24 +32,26 @@ import org.apache.airavata.gfac.core.utils.OutputUtils;
 import org.apache.airavata.gfac.gsissh.security.GSISecurityContext;
 import org.apache.airavata.gfac.gsissh.util.GFACGSISSHUtils;
 import org.apache.airavata.gsi.ssh.api.Cluster;
-import org.apache.airavata.gsi.ssh.api.SSHApiException;
-import org.apache.airavata.gsi.ssh.api.job.JobDescriptor;
-import 
org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
-import org.apache.airavata.model.appcatalog.computeresource.MonitorMode;
-import org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission;
-import org.apache.airavata.model.appcatalog.computeresource.SecurityProtocol;
-import org.apache.airavata.model.messaging.event.TaskIdentifier;
-import org.apache.airavata.model.messaging.event.TaskOutputChangeEvent;
-import org.apache.airavata.model.workspace.experiment.*;
+import org.apache.airavata.model.appcatalog.appinterface.DataType;
+import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
+import org.apache.airavata.model.workspace.experiment.CorrectiveAction;
+import org.apache.airavata.model.workspace.experiment.DataTransferDetails;
+import org.apache.airavata.model.workspace.experiment.ErrorCategory;
+import org.apache.airavata.model.workspace.experiment.TaskDetails;
+import org.apache.airavata.model.workspace.experiment.TransferState;
+import org.apache.airavata.model.workspace.experiment.TransferStatus;
 import org.apache.airavata.registry.cpi.ChildDataType;
-import org.apache.airavata.registry.cpi.RegistryModelType;
-import org.apache.airavata.registry.cpi.RegistryException;
-import org.apache.airavata.schemas.gfac.ApplicationDeploymentDescriptionType;
-import org.apache.airavata.schemas.gfac.GsisshHostType;
-import org.apache.xmlbeans.XmlException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
 public class GSISSHOutputHandler extends AbstractRecoverableHandler {
     private static final Logger log = 
LoggerFactory.getLogger(GSISSHOutputHandler.class);
 
@@ -182,12 +171,12 @@ public class GSISSHOutputHandler extends 
AbstractRecoverableHandler {
             registry.add(ChildDataType.DATA_TRANSFER_DETAIL, detail, 
jobExecutionContext.getTaskData().getTaskID());
 
             //todo this is a mess we have to fix this
-            List<DataObjectType> outputArray = new ArrayList<DataObjectType>();
+            List<OutputDataObjectType> outputArray = new 
ArrayList<OutputDataObjectType>();
             Map<String, Object> output = 
jobExecutionContext.getOutMessageContext().getParameters();
             Set<String> keys = output.keySet();
             for (String paramName : keys) {
-                ActualParameter actualParameter = (ActualParameter) 
output.get(paramName);
-                if 
("URI".equals(actualParameter.getType().getType().toString())) {
+                OutputDataObjectType outputDataObjectType = 
(OutputDataObjectType) output.get(paramName);
+                if (DataType.URI == outputDataObjectType.getType()) {
 
                     List<String> outputList = null;
                     int retry=3;
@@ -210,9 +199,9 @@ public class GSISSHOutputHandler extends 
AbstractRecoverableHandler {
                         Set<String> strings = output.keySet();
                         outputArray.clear();
                         for (String key : strings) {
-                            ActualParameter actualParameter1 = 
(ActualParameter) output.get(key);
-                            if 
("URI".equals(actualParameter1.getType().getType().toString())) {
-                                String downloadFile = 
MappingFactory.toString(actualParameter1);
+                            OutputDataObjectType outputDataObjectType1 = 
(OutputDataObjectType) output.get(key);
+                            if (DataType.URI == 
outputDataObjectType1.getType()) {
+                                String downloadFile = 
outputDataObjectType1.getValue();
                                 String localFile;
                                 if (index < oldIndex) {
                                     localFile = oldFiles.get(index);
@@ -225,10 +214,10 @@ public class GSISSHOutputHandler extends 
AbstractRecoverableHandler {
                                     
GFacUtils.savePluginData(jobExecutionContext, temp.insert(0, ++index), 
this.getClass().getName());
                                 }
                                 jobExecutionContext.addOutputFile(localFile);
-                                MappingFactory.fromString(actualParameter1, 
localFile);
-                                DataObjectType dataObjectType = new 
DataObjectType();
+                                outputDataObjectType1.setValue(localFile);
+                                OutputDataObjectType dataObjectType = new 
OutputDataObjectType();
                                 dataObjectType.setValue(localFile);
-                                dataObjectType.setKey(key);
+                                dataObjectType.setName(key);
                                 dataObjectType.setType(DataType.URI);
                                 outputArray.add(dataObjectType);
                             }
@@ -248,10 +237,10 @@ public class GSISSHOutputHandler extends 
AbstractRecoverableHandler {
                             GFacUtils.savePluginData(jobExecutionContext, 
temp.insert(0, ++index), this.getClass().getName());
                         }
                         jobExecutionContext.addOutputFile(outputFile);
-                        MappingFactory.fromString(actualParameter, outputFile);
-                        DataObjectType dataObjectType = new DataObjectType();
+                        outputDataObjectType.setValue(outputFile);
+                        OutputDataObjectType dataObjectType  = new 
OutputDataObjectType();
                         dataObjectType.setValue(valueList);
-                        dataObjectType.setKey(paramName);
+                        dataObjectType.setName(paramName);
                         dataObjectType.setType(DataType.URI);
                         outputArray.add(dataObjectType);
                     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/b52499eb/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
 
b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
index 4cdd0c0..e28726d 100644
--- 
a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
+++ 
b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
@@ -39,18 +39,16 @@ import 
org.apache.airavata.gfac.local.utils.InputStreamToFileWriter;
 import org.apache.airavata.gfac.local.utils.InputUtils;
 import 
org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
 import org.apache.airavata.model.appcatalog.appdeployment.SetEnvPaths;
+import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
 import org.apache.airavata.model.messaging.event.JobIdentifier;
 import org.apache.airavata.model.messaging.event.JobStatusChangeEvent;
 import org.apache.airavata.model.messaging.event.TaskIdentifier;
 import org.apache.airavata.model.messaging.event.TaskOutputChangeEvent;
-import org.apache.airavata.model.workspace.experiment.DataObjectType;
 import org.apache.airavata.model.workspace.experiment.JobDetails;
 import org.apache.airavata.model.workspace.experiment.JobState;
 import org.apache.airavata.model.workspace.experiment.TaskDetails;
 import org.apache.airavata.registry.cpi.ChildDataType;
 import org.apache.airavata.registry.cpi.RegistryModelType;
-import org.apache.airavata.schemas.gfac.ApplicationDeploymentDescriptionType;
-import org.apache.airavata.schemas.gfac.NameValuePairType;
 import org.apache.xmlbeans.XmlException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -219,7 +217,7 @@ public class LocalProvider extends AbstractProvider {
 
     public void dispose(JobExecutionContext jobExecutionContext) throws 
GFacProviderException {
         try {
-               List<DataObjectType> outputArray = new 
ArrayList<DataObjectType>();
+               List<OutputDataObjectType> outputArray = new 
ArrayList<OutputDataObjectType>();
             String stdOutStr = 
GFacUtils.readFileToString(jobExecutionContext.getStandardOutput());
             String stdErrStr = 
GFacUtils.readFileToString(jobExecutionContext.getStandardError());
                        Map<String, Object> output = 
jobExecutionContext.getOutMessageContext().getParameters();

http://git-wip-us.apache.org/repos/asf/airavata/blob/b52499eb/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPOutputHandler.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPOutputHandler.java
 
b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPOutputHandler.java
index f34b82a..e46dfa5 100644
--- 
a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPOutputHandler.java
+++ 
b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPOutputHandler.java
@@ -28,21 +28,18 @@ import 
org.apache.airavata.gfac.core.context.JobExecutionContext;
 import org.apache.airavata.gfac.core.handler.AbstractHandler;
 import org.apache.airavata.gfac.core.handler.GFacHandlerException;
 import org.apache.airavata.gfac.core.utils.GFacUtils;
-import org.apache.airavata.gfac.ssh.context.SSHAuthWrapper;
 import org.apache.airavata.gfac.ssh.security.SSHSecurityContext;
 import org.apache.airavata.gfac.ssh.util.GFACSSHUtils;
 import org.apache.airavata.gsi.ssh.api.Cluster;
 import org.apache.airavata.gsi.ssh.api.SSHApiException;
-import org.apache.airavata.gsi.ssh.api.ServerInfo;
 import org.apache.airavata.gsi.ssh.api.authentication.AuthenticationInfo;
 import 
org.apache.airavata.gsi.ssh.impl.authentication.DefaultPasswordAuthenticationInfo;
 import 
org.apache.airavata.gsi.ssh.impl.authentication.DefaultPublicKeyFileAuthentication;
+import org.apache.airavata.model.appcatalog.appinterface.DataType;
+import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
 import org.apache.airavata.model.workspace.experiment.CorrectiveAction;
-import org.apache.airavata.model.workspace.experiment.DataObjectType;
-import org.apache.airavata.model.workspace.experiment.DataType;
 import org.apache.airavata.model.workspace.experiment.ErrorCategory;
 import org.apache.airavata.registry.cpi.ChildDataType;
-import org.apache.airavata.schemas.gfac.ApplicationDeploymentDescriptionType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -147,7 +144,7 @@ public class AdvancedSCPOutputHandler extends 
AbstractHandler {
             }
             pbsCluster.scpTo(outputPath, standardError);
             pbsCluster.scpTo(outputPath, standardOutput);
-            List<DataObjectType> outputArray = new ArrayList<DataObjectType>();
+            List<OutputDataObjectType> outputArray = new 
ArrayList<OutputDataObjectType>();
             Map<String, Object> output = 
jobExecutionContext.getOutMessageContext().getParameters();
             Set<String> keys = output.keySet();
             for (String paramName : keys) {
@@ -160,9 +157,9 @@ public class AdvancedSCPOutputHandler extends 
AbstractHandler {
                        }
                        pbsCluster.scpTo(outputPath, downloadFile);
                     String fileName = 
downloadFile.substring(downloadFile.lastIndexOf(File.separatorChar)+1, 
downloadFile.length());
-                    DataObjectType dataObjectType = new DataObjectType();
+                    OutputDataObjectType dataObjectType = new 
OutputDataObjectType();
                     dataObjectType.setValue(outputPath + File.separatorChar + 
fileName);
-                    dataObjectType.setKey(paramName);
+                    dataObjectType.setName(paramName);
                     dataObjectType.setType(DataType.URI);
                     outputArray.add(dataObjectType);
                 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/b52499eb/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java
 
b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java
index d80e92b..94f667e 100644
--- 
a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java
+++ 
b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java
@@ -20,20 +20,6 @@
 */
 package org.apache.airavata.gfac.ssh.handler;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.*;
-
-import net.schmizz.sshj.connection.ConnectionException;
-import net.schmizz.sshj.transport.TransportException;
-
-import org.airavata.appcatalog.cpi.AppCatalog;
-import org.apache.aiaravata.application.catalog.data.impl.AppCatalogFactory;
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.common.utils.Constants;
-import org.apache.airavata.commons.gfac.type.ActualParameter;
-import org.apache.airavata.commons.gfac.type.ApplicationDescription;
-import org.apache.airavata.commons.gfac.type.MappingFactory;
 import org.apache.airavata.gfac.GFacException;
 import org.apache.airavata.gfac.core.context.JobExecutionContext;
 import org.apache.airavata.gfac.core.handler.AbstractHandler;
@@ -44,21 +30,25 @@ import org.apache.airavata.gfac.core.utils.OutputUtils;
 import org.apache.airavata.gfac.ssh.security.SSHSecurityContext;
 import org.apache.airavata.gfac.ssh.util.GFACSSHUtils;
 import org.apache.airavata.gsi.ssh.api.Cluster;
-import org.apache.airavata.gsi.ssh.api.SSHApiException;
-import org.apache.airavata.gsi.ssh.api.job.JobDescriptor;
-import 
org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
-import org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission;
-import org.apache.airavata.model.appcatalog.computeresource.SecurityProtocol;
-import org.apache.airavata.model.workspace.experiment.*;
+import org.apache.airavata.model.appcatalog.appinterface.DataType;
+import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
+import org.apache.airavata.model.workspace.experiment.CorrectiveAction;
+import org.apache.airavata.model.workspace.experiment.DataTransferDetails;
+import org.apache.airavata.model.workspace.experiment.ErrorCategory;
+import org.apache.airavata.model.workspace.experiment.TaskDetails;
+import org.apache.airavata.model.workspace.experiment.TransferState;
+import org.apache.airavata.model.workspace.experiment.TransferStatus;
 import org.apache.airavata.registry.cpi.ChildDataType;
-import org.apache.airavata.registry.cpi.RegistryModelType;
-import org.apache.airavata.registry.cpi.RegistryException;
-import org.apache.airavata.schemas.gfac.ApplicationDeploymentDescriptionType;
-import org.apache.airavata.schemas.gfac.GsisshHostType;
-import org.apache.xmlbeans.XmlException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
 public class SSHOutputHandler extends AbstractHandler {
     private static final Logger log = 
LoggerFactory.getLogger(SSHOutputHandler.class);
 
@@ -141,12 +131,12 @@ public class SSHOutputHandler extends AbstractHandler {
             registry.add(ChildDataType.DATA_TRANSFER_DETAIL, detail, 
jobExecutionContext.getTaskData().getTaskID());
 
 
-            List<DataObjectType> outputArray = new ArrayList<DataObjectType>();
+            List<OutputDataObjectType> outputArray = new 
ArrayList<OutputDataObjectType>();
             Map<String, Object> output = 
jobExecutionContext.getOutMessageContext().getParameters();
             Set<String> keys = output.keySet();
             for (String paramName : keys) {
-                ActualParameter actualParameter = (ActualParameter) 
output.get(paramName);
-                if 
("URI".equals(actualParameter.getType().getType().toString())) {
+                OutputDataObjectType actualParameter = (OutputDataObjectType) 
output.get(paramName);
+                if (DataType.URI == actualParameter.getType()) {
                     List<String> outputList = null;
                     int retry = 3;
                     while (retry > 0) {
@@ -163,17 +153,17 @@ public class SSHOutputHandler extends AbstractHandler {
                         Set<String> strings = output.keySet();
                         outputArray.clear();
                         for (String key : strings) {
-                            ActualParameter actualParameter1 = 
(ActualParameter) output.get(key);
-                            if 
("URI".equals(actualParameter1.getType().getType().toString())) {
-                                String downloadFile = 
MappingFactory.toString(actualParameter1);
+                            OutputDataObjectType actualParameter1 = 
(OutputDataObjectType) output.get(key);
+                            if (DataType.URI == actualParameter1.getType()) {
+                                String downloadFile = 
actualParameter1.getValue();
                                 cluster.scpFrom(downloadFile, outputDataDir);
                                 String fileName = 
downloadFile.substring(downloadFile.lastIndexOf(File.separatorChar) + 1, 
downloadFile.length());
                                 String localFile = outputDataDir + 
File.separator + fileName;
                                 jobExecutionContext.addOutputFile(localFile);
-                                MappingFactory.fromString(actualParameter1, 
localFile);
-                                DataObjectType dataObjectType = new 
DataObjectType();
+                                actualParameter1.setValue(localFile);
+                                OutputDataObjectType dataObjectType = new 
OutputDataObjectType();
                                 dataObjectType.setValue(localFile);
-                                dataObjectType.setKey(key);
+                                dataObjectType.setName(key);
                                 dataObjectType.setType(DataType.URI);
                                 outputArray.add(dataObjectType);
                             }
@@ -185,10 +175,10 @@ public class SSHOutputHandler extends AbstractHandler {
                         cluster.scpFrom(jobExecutionContext.getOutputDir() + 
File.separator + valueList, outputDataDir);
                         String outputPath = outputDataDir + File.separator + 
valueList;
                         jobExecutionContext.addOutputFile(outputPath);
-                        MappingFactory.fromString(actualParameter, outputPath);
-                        DataObjectType dataObjectType = new DataObjectType();
+                        actualParameter.setValue(outputPath);
+                        OutputDataObjectType dataObjectType = new 
OutputDataObjectType();
                         dataObjectType.setValue(outputPath);
-                        dataObjectType.setKey(paramName);
+                        dataObjectType.setName(paramName);
                         dataObjectType.setType(DataType.URI);
                         outputArray.add(dataObjectType);
                     }

Reply via email to