You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sh...@apache.org on 2015/06/04 22:15:55 UTC

[42/81] [abbrv] airavata git commit: Resolve compilation issues in gfac module after module refactoring

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/impl/PostJobCommandsImpl.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/impl/PostJobCommandsImpl.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/impl/PostJobCommandsImpl.java
new file mode 100644
index 0000000..0696232
--- /dev/null
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/impl/PostJobCommandsImpl.java
@@ -0,0 +1,235 @@
+/*
+ * XML Type:  postJobCommands
+ * Namespace: http://airavata.apache.org/gfac/core/2012/12
+ * Java type: org.apache.airavata.gfac.core.x2012.x12.PostJobCommands
+ *
+ * Automatically generated - do not modify.
+ */
+package org.apache.airavata.gfac.core.x2012.x12.impl;
+/**
+ * An XML postJobCommands(@http://airavata.apache.org/gfac/core/2012/12).
+ *
+ * This is a complex type.
+ */
+public class PostJobCommandsImpl extends org.apache.xmlbeans.impl.values.XmlComplexContentImpl implements org.apache.airavata.gfac.core.x2012.x12.PostJobCommands
+{
+    private static final long serialVersionUID = 1L;
+    
+    public PostJobCommandsImpl(org.apache.xmlbeans.SchemaType sType)
+    {
+        super(sType);
+    }
+    
+    private static final javax.xml.namespace.QName COMMAND$0 = 
+        new javax.xml.namespace.QName("http://airavata.apache.org/gfac/core/2012/12", "command");
+    
+    
+    /**
+     * Gets array of all "command" elements
+     */
+    public java.lang.String[] getCommandArray()
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            java.util.List targetList = new java.util.ArrayList();
+            get_store().find_all_element_users(COMMAND$0, targetList);
+            java.lang.String[] result = new java.lang.String[targetList.size()];
+            for (int i = 0, len = targetList.size() ; i < len ; i++)
+                result[i] = ((org.apache.xmlbeans.SimpleValue)targetList.get(i)).getStringValue();
+            return result;
+        }
+    }
+    
+    /**
+     * Gets ith "command" element
+     */
+    public java.lang.String getCommandArray(int i)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            org.apache.xmlbeans.SimpleValue target = null;
+            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(COMMAND$0, i);
+            if (target == null)
+            {
+                throw new IndexOutOfBoundsException();
+            }
+            return target.getStringValue();
+        }
+    }
+    
+    /**
+     * Gets (as xml) array of all "command" elements
+     */
+    public org.apache.xmlbeans.XmlString[] xgetCommandArray()
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            java.util.List targetList = new java.util.ArrayList();
+            get_store().find_all_element_users(COMMAND$0, targetList);
+            org.apache.xmlbeans.XmlString[] result = new org.apache.xmlbeans.XmlString[targetList.size()];
+            targetList.toArray(result);
+            return result;
+        }
+    }
+    
+    /**
+     * Gets (as xml) ith "command" element
+     */
+    public org.apache.xmlbeans.XmlString xgetCommandArray(int i)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            org.apache.xmlbeans.XmlString target = null;
+            target = (org.apache.xmlbeans.XmlString)get_store().find_element_user(COMMAND$0, i);
+            if (target == null)
+            {
+                throw new IndexOutOfBoundsException();
+            }
+            return (org.apache.xmlbeans.XmlString)target;
+        }
+    }
+    
+    /**
+     * Returns number of "command" element
+     */
+    public int sizeOfCommandArray()
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            return get_store().count_elements(COMMAND$0);
+        }
+    }
+    
+    /**
+     * Sets array of all "command" element
+     */
+    public void setCommandArray(java.lang.String[] commandArray)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            arraySetterHelper(commandArray, COMMAND$0);
+        }
+    }
+    
+    /**
+     * Sets ith "command" element
+     */
+    public void setCommandArray(int i, java.lang.String command)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            org.apache.xmlbeans.SimpleValue target = null;
+            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(COMMAND$0, i);
+            if (target == null)
+            {
+                throw new IndexOutOfBoundsException();
+            }
+            target.setStringValue(command);
+        }
+    }
+    
+    /**
+     * Sets (as xml) array of all "command" element
+     */
+    public void xsetCommandArray(org.apache.xmlbeans.XmlString[]commandArray)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            arraySetterHelper(commandArray, COMMAND$0);
+        }
+    }
+    
+    /**
+     * Sets (as xml) ith "command" element
+     */
+    public void xsetCommandArray(int i, org.apache.xmlbeans.XmlString command)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            org.apache.xmlbeans.XmlString target = null;
+            target = (org.apache.xmlbeans.XmlString)get_store().find_element_user(COMMAND$0, i);
+            if (target == null)
+            {
+                throw new IndexOutOfBoundsException();
+            }
+            target.set(command);
+        }
+    }
+    
+    /**
+     * Inserts the value as the ith "command" element
+     */
+    public void insertCommand(int i, java.lang.String command)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            org.apache.xmlbeans.SimpleValue target = 
+                (org.apache.xmlbeans.SimpleValue)get_store().insert_element_user(COMMAND$0, i);
+            target.setStringValue(command);
+        }
+    }
+    
+    /**
+     * Appends the value as the last "command" element
+     */
+    public void addCommand(java.lang.String command)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            org.apache.xmlbeans.SimpleValue target = null;
+            target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(COMMAND$0);
+            target.setStringValue(command);
+        }
+    }
+    
+    /**
+     * Inserts and returns a new empty value (as xml) as the ith "command" element
+     */
+    public org.apache.xmlbeans.XmlString insertNewCommand(int i)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            org.apache.xmlbeans.XmlString target = null;
+            target = (org.apache.xmlbeans.XmlString)get_store().insert_element_user(COMMAND$0, i);
+            return target;
+        }
+    }
+    
+    /**
+     * Appends and returns a new empty value (as xml) as the last "command" element
+     */
+    public org.apache.xmlbeans.XmlString addNewCommand()
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            org.apache.xmlbeans.XmlString target = null;
+            target = (org.apache.xmlbeans.XmlString)get_store().add_element_user(COMMAND$0);
+            return target;
+        }
+    }
+    
+    /**
+     * Removes the ith "command" element
+     */
+    public void removeCommand(int i)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            get_store().remove_element(COMMAND$0, i);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/impl/PreJobCommandsImpl.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/impl/PreJobCommandsImpl.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/impl/PreJobCommandsImpl.java
new file mode 100644
index 0000000..e061462
--- /dev/null
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/impl/PreJobCommandsImpl.java
@@ -0,0 +1,235 @@
+/*
+ * XML Type:  preJobCommands
+ * Namespace: http://airavata.apache.org/gfac/core/2012/12
+ * Java type: org.apache.airavata.gfac.core.x2012.x12.PreJobCommands
+ *
+ * Automatically generated - do not modify.
+ */
+package org.apache.airavata.gfac.core.x2012.x12.impl;
+/**
+ * An XML preJobCommands(@http://airavata.apache.org/gfac/core/2012/12).
+ *
+ * This is a complex type.
+ */
+public class PreJobCommandsImpl extends org.apache.xmlbeans.impl.values.XmlComplexContentImpl implements org.apache.airavata.gfac.core.x2012.x12.PreJobCommands
+{
+    private static final long serialVersionUID = 1L;
+    
+    public PreJobCommandsImpl(org.apache.xmlbeans.SchemaType sType)
+    {
+        super(sType);
+    }
+    
+    private static final javax.xml.namespace.QName COMMAND$0 = 
+        new javax.xml.namespace.QName("http://airavata.apache.org/gfac/core/2012/12", "command");
+    
+    
+    /**
+     * Gets array of all "command" elements
+     */
+    public java.lang.String[] getCommandArray()
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            java.util.List targetList = new java.util.ArrayList();
+            get_store().find_all_element_users(COMMAND$0, targetList);
+            java.lang.String[] result = new java.lang.String[targetList.size()];
+            for (int i = 0, len = targetList.size() ; i < len ; i++)
+                result[i] = ((org.apache.xmlbeans.SimpleValue)targetList.get(i)).getStringValue();
+            return result;
+        }
+    }
+    
+    /**
+     * Gets ith "command" element
+     */
+    public java.lang.String getCommandArray(int i)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            org.apache.xmlbeans.SimpleValue target = null;
+            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(COMMAND$0, i);
+            if (target == null)
+            {
+                throw new IndexOutOfBoundsException();
+            }
+            return target.getStringValue();
+        }
+    }
+    
+    /**
+     * Gets (as xml) array of all "command" elements
+     */
+    public org.apache.xmlbeans.XmlString[] xgetCommandArray()
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            java.util.List targetList = new java.util.ArrayList();
+            get_store().find_all_element_users(COMMAND$0, targetList);
+            org.apache.xmlbeans.XmlString[] result = new org.apache.xmlbeans.XmlString[targetList.size()];
+            targetList.toArray(result);
+            return result;
+        }
+    }
+    
+    /**
+     * Gets (as xml) ith "command" element
+     */
+    public org.apache.xmlbeans.XmlString xgetCommandArray(int i)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            org.apache.xmlbeans.XmlString target = null;
+            target = (org.apache.xmlbeans.XmlString)get_store().find_element_user(COMMAND$0, i);
+            if (target == null)
+            {
+                throw new IndexOutOfBoundsException();
+            }
+            return (org.apache.xmlbeans.XmlString)target;
+        }
+    }
+    
+    /**
+     * Returns number of "command" element
+     */
+    public int sizeOfCommandArray()
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            return get_store().count_elements(COMMAND$0);
+        }
+    }
+    
+    /**
+     * Sets array of all "command" element
+     */
+    public void setCommandArray(java.lang.String[] commandArray)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            arraySetterHelper(commandArray, COMMAND$0);
+        }
+    }
+    
+    /**
+     * Sets ith "command" element
+     */
+    public void setCommandArray(int i, java.lang.String command)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            org.apache.xmlbeans.SimpleValue target = null;
+            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(COMMAND$0, i);
+            if (target == null)
+            {
+                throw new IndexOutOfBoundsException();
+            }
+            target.setStringValue(command);
+        }
+    }
+    
+    /**
+     * Sets (as xml) array of all "command" element
+     */
+    public void xsetCommandArray(org.apache.xmlbeans.XmlString[]commandArray)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            arraySetterHelper(commandArray, COMMAND$0);
+        }
+    }
+    
+    /**
+     * Sets (as xml) ith "command" element
+     */
+    public void xsetCommandArray(int i, org.apache.xmlbeans.XmlString command)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            org.apache.xmlbeans.XmlString target = null;
+            target = (org.apache.xmlbeans.XmlString)get_store().find_element_user(COMMAND$0, i);
+            if (target == null)
+            {
+                throw new IndexOutOfBoundsException();
+            }
+            target.set(command);
+        }
+    }
+    
+    /**
+     * Inserts the value as the ith "command" element
+     */
+    public void insertCommand(int i, java.lang.String command)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            org.apache.xmlbeans.SimpleValue target = 
+                (org.apache.xmlbeans.SimpleValue)get_store().insert_element_user(COMMAND$0, i);
+            target.setStringValue(command);
+        }
+    }
+    
+    /**
+     * Appends the value as the last "command" element
+     */
+    public void addCommand(java.lang.String command)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            org.apache.xmlbeans.SimpleValue target = null;
+            target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(COMMAND$0);
+            target.setStringValue(command);
+        }
+    }
+    
+    /**
+     * Inserts and returns a new empty value (as xml) as the ith "command" element
+     */
+    public org.apache.xmlbeans.XmlString insertNewCommand(int i)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            org.apache.xmlbeans.XmlString target = null;
+            target = (org.apache.xmlbeans.XmlString)get_store().insert_element_user(COMMAND$0, i);
+            return target;
+        }
+    }
+    
+    /**
+     * Appends and returns a new empty value (as xml) as the last "command" element
+     */
+    public org.apache.xmlbeans.XmlString addNewCommand()
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            org.apache.xmlbeans.XmlString target = null;
+            target = (org.apache.xmlbeans.XmlString)get_store().add_element_user(COMMAND$0);
+            return target;
+        }
+    }
+    
+    /**
+     * Removes the ith "command" element
+     */
+    public void removeCommand(int i)
+    {
+        synchronized (monitor())
+        {
+            check_orphaned();
+            get_store().remove_element(COMMAND$0, i);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-core/src/main/resources/PBSJobDescriptor.xsd
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/resources/PBSJobDescriptor.xsd b/modules/gfac/gfac-core/src/main/resources/PBSJobDescriptor.xsd
new file mode 100644
index 0000000..966dafb
--- /dev/null
+++ b/modules/gfac/gfac-core/src/main/resources/PBSJobDescriptor.xsd
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file
+	distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under
+	the Apache License, Version 2.0 (theÏ "License"); you may not use this file except in compliance with the License. You may
+	obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to
+	in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
+	ANY ~ KIND, either express or implied. See the License for the specific language governing permissions and limitations under
+	the License. -->
+
+<schema targetNamespace="http://airavata.apache.org/gfac/core/2012/12" xmlns:gsissh="http://airavata.apache.org/gfac/core/2012/12"
+	xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+
+	<element name="JobDescriptor" type="gsissh:pbsParams" />
+
+	<complexType name="pbsParams">
+		<sequence>
+            <element name="jobID" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <element name="userName" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+			<element name="shellName" type="xsd:string" minOccurs="0" maxOccurs="1" default="/bin/bash"/>
+            <element name="queueName" type="xsd:string" minOccurs="0" maxOccurs="1" default="normal"/>
+            <element name="jobName" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <element name="allEnvExport" type="xsd:boolean" minOccurs="0 " maxOccurs="1" default="true"/>
+			<element name="mailOptions" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <element name="mailAddress" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <element name="partition" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <element name="mailType" type="xsd:string" minOccurs="0" maxOccurs="1" />
+			<element name="acountString" type="xsd:string" minOccurs="0" maxOccurs="1" />
+			<element name="maxWallTime" type="xsd:string" minOccurs="0" maxOccurs="1" default="1:00:00"/>
+            <element name="standardOutFile" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <element name="standardErrorFile" type="xsd:string" minOccurs="0" maxOccurs="1" />
+			<element name="outputDirectory" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <element name="inputDirectory" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <element name="nodes" type="xsd:int" minOccurs="0" maxOccurs="1" default="1"/>
+            <element name="processesPerNode" type="xsd:int" minOccurs="0" maxOccurs="1" default="1" />
+            <element name="cpuCount" type="xsd:int" minOccurs="0" maxOccurs="1" default="1" />
+            <element name="nodeList" type="xsd:string" minOccurs="0" maxOccurs="1" default="1" />
+            <element name="workingDirectory" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <element name="executablePath" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <element name="inputs" type="gsissh:inputList" minOccurs="1" maxOccurs="1"/>
+            <element name="exports" type="gsissh:exportProperties" minOccurs="1" maxOccurs="1"/>
+            <element name="status" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <element name="afterAny" type="gsissh:afterAnyList" minOccurs="0" maxOccurs="1"/>
+            <element name="afterOKList" type="gsissh:afterOKList" minOccurs="0" maxOccurs="1"/>
+            <element name="cTime" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <element name="qTime" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <element name="mTime" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <element name="sTime" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <element name="compTime" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <element name="owner" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <element name="executeNode" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <element name="ellapsedTime" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <element name="usedCPUTime" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <element name="usedMem" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <element name="submitArgs" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <element name="variableList" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <element name="preJobCommands" type="gsissh:preJobCommands" minOccurs="0" maxOccurs="1"/>
+            <element name="moduleLoadCommands" type="gsissh:moduleLoadCommands" minOccurs="0" maxOccurs="1"/>
+            <element name="postJobCommands" type="gsissh:postJobCommands" minOccurs="0" maxOccurs="1"/>
+            <element name="jobSubmitterCommand" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <element name="callBackIp" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <element name="callBackPort" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+            <element name="chassisName" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+        </sequence>
+	</complexType>
+
+    <complexType name="moduleLoadCommands">
+        <sequence>
+			<element name="command" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+		</sequence>
+    </complexType>
+    <complexType name="preJobCommands">
+        <sequence>
+			<element name="command" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+		</sequence>
+    </complexType>
+
+    <complexType name="postJobCommands">
+        <sequence>
+			<element name="command" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+		</sequence>
+    </complexType>
+    <complexType name="inputList">
+        <sequence>
+			<element name="input" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+		</sequence>
+    </complexType>
+    <complexType name="afterAnyList">
+        <sequence>
+			<element name="afterAny" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+		</sequence>
+    </complexType>
+
+    <complexType name="afterOKList">
+        <sequence>
+			<element name="afterOKList" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+		</sequence>
+    </complexType>
+
+    <complexType name="exportProperties">
+		<sequence>
+
+			<element name="name" minOccurs="1" maxOccurs="unbounded">
+				<complexType>
+					<simpleContent>
+						<extension base="xsd:string">
+							<attribute name="value" type="xsd:string" use="required" />
+						</extension>
+					</simpleContent>
+				</complexType>
+			</element>
+
+		</sequence>
+	</complexType>
+</schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-core/src/main/resources/gsissh-schemas.xsdconfig
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/resources/gsissh-schemas.xsdconfig b/modules/gfac/gfac-core/src/main/resources/gsissh-schemas.xsdconfig
new file mode 100644
index 0000000..201d3b1
--- /dev/null
+++ b/modules/gfac/gfac-core/src/main/resources/gsissh-schemas.xsdconfig
@@ -0,0 +1,14 @@
+<!--Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file
+	distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under
+	the Apache License, Version 2.0 (theÏ "License"); you may not use this file except in compliance with the License. You may
+	obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to
+	in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
+	ANY ~ KIND, either express or implied. See the License for the specific language governing permissions and limitations under
+	the License. -->
+
+<xb:config  xmlns:xb="http://www.bea.com/2002/09/xbean/config">
+
+    <xb:namespace uri="http://airavata.apache.org/schemas/gfac/core/2012/12">
+        <xb:package>org.apache.airavata.gfac.core</xb:package>
+    </xb:namespace>
+</xb:config>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-impl/pom.xml
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/pom.xml b/modules/gfac/gfac-impl/pom.xml
index 72a9f34..4733253 100644
--- a/modules/gfac/gfac-impl/pom.xml
+++ b/modules/gfac/gfac-impl/pom.xml
@@ -33,9 +33,39 @@
         <!-- GFAC schemas -->
         <dependency>
             <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-gfac-core</artifactId>
+            <artifactId>gfac-core</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.jglobus</groupId>
+            <artifactId>gss</artifactId>
+            <version>${jglobus.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jglobus</groupId>
+            <artifactId>myproxy</artifactId>
+            <version>${jglobus.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.jcraft</groupId>
+            <artifactId>jsch</artifactId>
+            <version>0.1.50</version>
+        </dependency>
+        <dependency>
+            <groupId>net.schmizz</groupId>
+            <artifactId>sshj</artifactId>
+            <version>0.6.1</version>
+        </dependency>
+        <dependency>
+            <groupId>net.schmizz</groupId>
+            <artifactId>sshj</artifactId>
+            <version>0.6.1</version>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <version>2.4.4</version>
+        </dependency>
 
         <!-- Test -->
         <dependency>

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/ExtendedSession.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/ExtendedSession.java b/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/ExtendedSession.java
new file mode 100644
index 0000000..79ecb61
--- /dev/null
+++ b/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/ExtendedSession.java
@@ -0,0 +1,42 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package com.jcraft.jsch;
+
+
+import org.apache.airavata.gfac.core.authentication.GSIAuthenticationInfo;
+
+public class ExtendedSession extends Session {
+
+    private GSIAuthenticationInfo authenticationInfo;
+
+    public ExtendedSession(JSch jsch, String username, String host, int port) throws JSchException {
+        super(jsch, username, host, port);
+    }
+
+    public GSIAuthenticationInfo getAuthenticationInfo() {
+        return authenticationInfo;
+    }
+
+    public void setAuthenticationInfo(GSIAuthenticationInfo authenticationInfo) {
+        this.authenticationInfo = authenticationInfo;
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/GSISSHIdentityFile.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/GSISSHIdentityFile.java b/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/GSISSHIdentityFile.java
new file mode 100644
index 0000000..379eb8c
--- /dev/null
+++ b/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/GSISSHIdentityFile.java
@@ -0,0 +1,126 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+package com.jcraft.jsch;
+
+/**
+ * NOTE : This is class is directly created using com.jcraft.jsch.IdentityFile
+ * IdentityFile has private access. Therefore to suit our requirements we modify IdentityFile
+ * with public access.
+ */
+public class GSISSHIdentityFile implements Identity {
+    private JSch jsch;
+    private KeyPair kpair;
+    private String identity;
+
+    public static GSISSHIdentityFile newInstance(String prvfile, String pubfile, JSch jsch) throws JSchException{
+        KeyPair kpair = KeyPair.load(jsch, prvfile, pubfile);
+        return new GSISSHIdentityFile(jsch, prvfile, kpair);
+    }
+
+    public static GSISSHIdentityFile newInstance(String name, byte[] prvkey, byte[] pubkey, JSch jsch) throws JSchException{
+        KeyPair kpair = KeyPair.load(jsch, prvkey, pubkey);
+        return new GSISSHIdentityFile(jsch, name, kpair);
+    }
+
+    private GSISSHIdentityFile(JSch jsch, String name, KeyPair kpair) throws JSchException{
+        this.jsch = jsch;
+        this.identity = name;
+        this.kpair = kpair;
+    }
+
+    /**
+     * Decrypts this identity with the specified pass-phrase.
+     * @param passphrase the pass-phrase for this identity.
+     * @return <tt>true</tt> if the decryption is succeeded
+     * or this identity is not cyphered.
+     */
+    public boolean setPassphrase(byte[] passphrase) throws JSchException{
+        return kpair.decrypt(passphrase);
+    }
+
+    /**
+     * Returns the public-key blob.
+     * @return the public-key blob
+     */
+    public byte[] getPublicKeyBlob(){
+        return kpair.getPublicKeyBlob();
+    }
+
+    /**
+     * Signs on data with this identity, and returns the result.
+     * @param data data to be signed
+     * @return the signature
+     */
+    public byte[] getSignature(byte[] data){
+        return kpair.getSignature(data);
+    }
+
+    /**
+     * @deprecated This method should not be invoked.
+     * @see #setPassphrase(byte[] passphrase)
+     */
+    public boolean decrypt(){
+        throw new RuntimeException("not implemented");
+    }
+
+    /**
+     * Returns the name of the key algorithm.
+     * @return "ssh-rsa" or "ssh-dss"
+     */
+    public String getAlgName(){
+        return new String(kpair.getKeyTypeName());
+    }
+
+    /**
+     * Returns the name of this identity.
+     * It will be useful to identify this object in the {@link IdentityRepository}.
+     */
+    public String getName(){
+        return identity;
+    }
+
+    /**
+     * Returns <tt>true</tt> if this identity is cyphered.
+     * @return <tt>true</tt> if this identity is cyphered.
+     */
+    public boolean isEncrypted(){
+        return kpair.isEncrypted();
+    }
+
+    /**
+     * Disposes internally allocated data, like byte array for the private key.
+     */
+    public void clear(){
+        kpair.dispose();
+        kpair = null;
+    }
+
+    /**
+     * Returns an instance of {@link KeyPair} used in this {@link Identity}.
+     * @return an instance of {@link KeyPair} used in this {@link Identity}.
+     */
+    public KeyPair getKeyPair(){
+        return kpair;
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/GSISSHIdentityRepository.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/GSISSHIdentityRepository.java b/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/GSISSHIdentityRepository.java
new file mode 100644
index 0000000..89646c5
--- /dev/null
+++ b/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/GSISSHIdentityRepository.java
@@ -0,0 +1,29 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package com.jcraft.jsch;
+
+public class GSISSHIdentityRepository extends LocalIdentityRepository {
+
+    public GSISSHIdentityRepository(JSch jsch) {
+        super(jsch);
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/UserAuthGSSAPIWithMICGSSCredentials.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/UserAuthGSSAPIWithMICGSSCredentials.java b/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/UserAuthGSSAPIWithMICGSSCredentials.java
new file mode 100644
index 0000000..d0e98db
--- /dev/null
+++ b/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/UserAuthGSSAPIWithMICGSSCredentials.java
@@ -0,0 +1,308 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package com.jcraft.jsch;
+
+import org.apache.airavata.gfac.core.authentication.GSIAuthenticationInfo;
+import org.apache.airavata.gfac.gsi.ssh.GSSContextX509;
+import org.globus.gsi.gssapi.GSSConstants;
+import org.ietf.jgss.GSSException;
+import org.ietf.jgss.Oid;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/* -*-mode:java; c-basic-offset:2; indent-tabs-mode:nil -*- */
+/*
+ * Copyright(c)2004,2005,2006 ymnk, JCraft,Inc. All rights reserved.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer. 2. Redistributions in
+ * binary form must reproduce the above copyright notice, this list of
+ * conditions and the following disclaimer in the documentation and/or other
+ * materials provided with the distribution. 3. The names of the authors may not
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission. THIS SOFTWARE IS PROVIDED ``AS IS'' AND
+ * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT, INC. OR ANY CONTRIBUTORS TO THIS
+ * SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ * OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION)HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE)ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * This class now supports two mappings to the gssapi-with-mic method: x509
+ * (preferred) and krb5.
+ *
+ * @author Al Rossi
+ * @author Jeff Overbey
+ */
+public class UserAuthGSSAPIWithMICGSSCredentials extends UserAuth {
+
+    private static final int SSH_MSG_USERAUTH_GSSAPI_RESPONSE = 60;
+    private static final int SSH_MSG_USERAUTH_GSSAPI_TOKEN = 61;
+    // private static final int SSH_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE = 63;
+    private static final int SSH_MSG_USERAUTH_GSSAPI_ERROR = 64;
+    private static final int SSH_MSG_USERAUTH_GSSAPI_ERRTOK = 65;
+    private static final int SSH_MSG_USERAUTH_GSSAPI_MIC = 66;
+
+    // this is the preferred order
+    private static String[] supportedMethods = { "gssapi-with-mic.x509",
+            "gssapi-with-mic.krb5" };
+    private static byte[][] supportedOids;
+
+    static {
+        try {
+            supportedOids = new byte[][] {
+                    GSSConstants.MECH_OID.getDER(),
+                    new Oid("1.2.840.113554.1.2.2").getDER() };
+        } catch (GSSException gsse) {
+            gsse.printStackTrace();
+        }
+    }
+
+    @Override
+    public boolean start(Session session) throws Exception {
+
+        // this.userinfo = userinfo;
+        Packet packet = session.packet;
+        Buffer buf = session.buf;
+        final String username = session.username;
+        byte[] _username = Util.str2byte(username);
+
+        // checkForSupportedOIDs
+        List methods = new ArrayList();
+        boolean found = false;
+        for (int i = 0; i < supportedOids.length; i++) {
+            found = found
+                    || checkForSupportedOIDs(methods, packet, buf, i,
+                    _username, session);
+        }
+
+        if (!found)
+            return false;
+
+        // logger.debug( "supported methods " + methods );
+
+        boolean success = false;
+        for (Iterator it = methods.iterator(); it.hasNext();) {
+            String method = (String) it.next();
+            success = tryMethod(username, _username, method, session, packet,
+                    buf);
+            if (success)
+                break;
+        }
+        return success;
+
+    }
+
+    private boolean checkForSupportedOIDs(List methods, Packet packet,
+                                          Buffer buf, int index, byte[] _username, Session session)
+            throws Exception {
+        packet.reset();
+
+        // byte SSH_MSG_USERAUTH_REQUEST(50)
+        // string user name(in ISO-10646 UTF-8 encoding)
+        // string service name(in US-ASCII)
+        // string "gssapi"(US-ASCII)
+        // uint32 n, the number of OIDs client supports
+        // string[n] mechanism OIDS
+        buf.putByte((byte) SSH_MSG_USERAUTH_REQUEST);
+        buf.putString(_username);
+        buf.putString("ssh-connection".getBytes());
+        buf.putString("gssapi-with-mic".getBytes());
+        buf.putInt(1);
+        buf.putString(supportedOids[index]);
+        session.write(packet);
+
+        while (true) {
+            buf = session.read(buf);
+
+            if (buf.buffer[5] == SSH_MSG_USERAUTH_FAILURE) {
+                return false;
+            }
+
+            if (buf.buffer[5] == SSH_MSG_USERAUTH_GSSAPI_RESPONSE) {
+                buf.getInt();
+                buf.getByte();
+                buf.getByte();
+                byte[] message = buf.getString();
+                // logger.debug( "OID " + supportedOids[index] );
+                if (Util.array_equals(message, supportedOids[index])) {
+                    methods.add(supportedMethods[index]);
+                    // logger.debug( "OID MATCH, method is " + methods );
+                    return true;
+                }
+            }
+
+            if (buf.buffer[5] == SSH_MSG_USERAUTH_BANNER) {
+                buf.getInt();
+                buf.getByte();
+                buf.getByte();
+                byte[] _message = buf.getString();
+                buf.getString();
+                String message = Util.byte2str(_message);
+                if (userinfo != null) {
+                    userinfo.showMessage(message);
+                }
+                continue;
+            }
+            return false;
+        }
+    }
+
+    private boolean tryMethod(String username, byte[] _username, String method,
+                              Session session, Packet packet, Buffer buf) throws Exception {
+        GSSContext context = null;
+        try {
+            Class c = Class.forName(session.getConfig(method));
+            context = (GSSContext) (c.newInstance());
+
+        } catch (Exception e) {
+            // logger.error( "could not instantiate GSSContext", e );
+            return false;
+        }
+
+        // Get the credentials and set them
+        // Not a good way, but we dont have any choice
+        if (session instanceof ExtendedSession) {
+            GSIAuthenticationInfo authenticationInfo = ((ExtendedSession) session).getAuthenticationInfo();
+
+            if (context instanceof GSSContextX509) {
+                ((GSSContextX509) context).setCredential(authenticationInfo.getCredentials());
+            }
+        }
+
+        // logger.debug( "GOT CONTEXT: " + context );
+
+
+        // FIXME
+        // if ( userinfo instanceof IX509UserInfo ) {
+        // if ( context instanceof GSSContextX509 ) {
+        // GSSCredential credential = ( ( IX509UserInfo )userinfo
+        // ).getCredential();
+        // logger.debug( "user info credential = " + credential );
+        // ( ( GSSContextX509 )context ).setCredential( credential );
+        // }
+        // }
+
+        try {
+            context.create(username, session.host);
+        } catch (JSchException e) {
+            // logger.error( "context creation failed", e );
+            return false;
+        }
+
+        byte[] token = new byte[0];
+
+        while (!context.isEstablished()) {
+            try {
+                token = context.init(token, 0, token.length);
+            } catch (JSchException e) {
+                // logger.error( "context initialization failed", e );
+                // TODO
+                // ERRTOK should be sent?
+                // byte SSH_MSG_USERAUTH_GSSAPI_ERRTOK
+                // string error token
+                return false;
+            }
+
+            if (token != null) {
+                packet.reset();
+                buf.putByte((byte) SSH_MSG_USERAUTH_GSSAPI_TOKEN);
+                buf.putString(token);
+                session.write(packet);
+            }
+
+            if (!context.isEstablished()) {
+                buf = session.read(buf);
+
+                if (buf.buffer[5] == SSH_MSG_USERAUTH_GSSAPI_ERROR) {
+                    // uint32 major_status
+                    // uint32 minor_status
+                    // string message
+                    // string language tag
+                    buf = session.read(buf);
+                } else if (buf.buffer[5] == SSH_MSG_USERAUTH_GSSAPI_ERRTOK) {
+                    buf = session.read(buf);
+                }
+
+                if (buf.buffer[5] == SSH_MSG_USERAUTH_FAILURE) {
+                    return false;
+                }
+
+                buf.getInt();
+                buf.getByte();
+                buf.getByte();
+                token = buf.getString();
+            }
+        }
+
+        Buffer mbuf = new Buffer();
+        // string session identifier
+        // byte SSH_MSG_USERAUTH_REQUEST
+        // string user name
+        // string service
+        // string "gssapi-with-mic"
+        mbuf.putString(session.getSessionId());
+        mbuf.putByte((byte) SSH_MSG_USERAUTH_REQUEST);
+        mbuf.putString(_username);
+        mbuf.putString("ssh-connection".getBytes());
+        mbuf.putString("gssapi-with-mic".getBytes());
+
+        byte[] mic = context.getMIC(mbuf.buffer, 0, mbuf.getLength());
+
+        if (mic == null) { // there was an error in the getMIC call
+            return false;
+        }
+
+        packet.reset();
+        buf.putByte((byte) SSH_MSG_USERAUTH_GSSAPI_MIC);
+        buf.putString(mic);
+        session.write(packet);
+
+        context.dispose();
+
+        buf = session.read(buf);
+        if (buf.buffer[5] == SSH_MSG_USERAUTH_SUCCESS) {
+            return true;
+        }
+        if (buf.buffer[5] == SSH_MSG_USERAUTH_FAILURE) {
+            buf.getInt();
+            buf.getByte();
+            buf.getByte();
+            byte[] foo = buf.getString();
+            int partial_success = buf.getByte();
+            if (partial_success != 0) {
+                throw new JSchPartialAuthException(new String(foo));
+            }
+        }
+        return false;
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/GSSContextX509.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/GSSContextX509.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/GSSContextX509.java
index 1c07a39..a6eea6f 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/GSSContextX509.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/GSSContextX509.java
@@ -19,7 +19,7 @@
  *
  */
 
-package org.apache.airavata.gfac.ssh;
+package org.apache.airavata.gfac.gsi.ssh;
 
 
 import java.io.File;

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Cluster.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Cluster.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Cluster.java
deleted file mode 100644
index beb5b37..0000000
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Cluster.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-package org.apache.airavata.gfac.ssh.api;
-
-import java.util.List;
-import java.util.Map;
-
-import org.apache.airavata.gfac.ssh.api.job.JobDescriptor;
-import org.apache.airavata.gfac.ssh.impl.JobStatus;
-
-import com.jcraft.jsch.Session;
-
-/**
- * This interface represents a Cluster machine
- * End users of the API can implement this and come up with their own
- * implementations, but mostly this interface is for internal usage.
- */
-public interface Cluster {
-
-    /**
-     * This will submit a job to the cluster with a given pbs file and some parameters
-     *
-     * @param pbsFilePath  path of the pbs file
-     * @param workingDirectory working directory where pbs should has to copy
-     * @return jobId after successful job submission
-     * @throws SSHApiException throws exception during error
-     */
-    public String submitBatchJobWithScript(String pbsFilePath, String workingDirectory) throws SSHApiException;
-
-    /**
-     * This will submit the given job and not performing any monitoring
-     *
-     * @param jobDescriptor  job descriptor to submit to cluster, this contains all the parameter
-     * @return jobID after successful job submission.
-     * @throws SSHApiException  throws exception during error
-     */
-    public String submitBatchJob(JobDescriptor jobDescriptor) throws SSHApiException;
-
-    /**
-     * This will copy the localFile to remoteFile location in configured cluster
-     *
-     * @param remoteFile remote file location, this can be a directory too
-     * @param localFile local file path of the file which needs to copy to remote location
-     * @throws SSHApiException throws exception during error
-     */
-    public void scpTo(String remoteFile, String localFile) throws SSHApiException;
-
-    /**
-     * This will copy a remote file in path rFile to local file lFile
-     * @param remoteFile remote file path, this has to be a full qualified path
-     * @param localFile This is the local file to copy, this can be a directory too
-     * @throws SSHApiException
-     */
-    public void scpFrom(String remoteFile, String localFile) throws SSHApiException;
-
-    /**
-     * This will copy a remote file in path rFile to local file lFile
-     * @param remoteFile remote file path, this has to be a full qualified path
-     * @param localFile This is the local file to copy, this can be a directory too
-     * @throws SSHApiException
-     */
-    public void scpThirdParty(String remoteFileSorce, String remoteFileTarget) throws SSHApiException;
-    
-    /**
-     * This will create directories in computing resources
-     * @param directoryPath the full qualified path for the directory user wants to create
-     * @throws SSHApiException throws during error
-     */
-    public void makeDirectory(String directoryPath) throws SSHApiException;
-
-
-    /**
-     * This will get the job description of a job which is there in the cluster
-     * if jbo is not available with the given ID it returns
-     * @param jobID jobId has to pass
-     * @return Returns full job description of the job which submitted successfully
-     * @throws SSHApiException throws exception during error
-     */
-    public JobDescriptor getJobDescriptorById(String jobID) throws SSHApiException;
-
-    /**
-     * This will delete the given job from the queue
-     *
-     * @param jobID  jobId of the job which user wants to delete
-     * @return return the description of the deleted job
-     * @throws SSHApiException throws exception during error
-     */
-    public JobDescriptor cancelJob(String jobID) throws SSHApiException;
-
-    /**
-     * This will get the job status of the the job associated with this jobId
-     *
-     * @param jobID jobId of the job user want to get the status
-     * @return job status of the given jobID
-     * @throws SSHApiException throws exception during error
-     */
-    public JobStatus getJobStatus(String jobID) throws SSHApiException;
-    /**
-     * This will get the job status of the the job associated with this jobId
-     *
-     * @param jobName jobName of the job user want to get the status
-     * @return jobId of the given jobName
-     * @throws SSHApiException throws exception during error
-     */
-    public String getJobIdByJobName(String jobName, String userName) throws SSHApiException;
-
-    /**
-     * This method can be used to poll the jobstatuses based on the given
-     * user but we should pass the jobID list otherwise we will get unwanted
-     * job statuses which submitted by different middleware outside apache
-     * airavata with the same uername which we are not considering
-     * @param userName userName of the jobs which required to get the status
-     * @param jobIDs precises set of jobIDs
-     * @return
-     */
-    public void getJobStatuses(String userName,Map<String,JobStatus> jobIDs)throws SSHApiException;
-    /**
-     * This will list directories in computing resources
-     * @param directoryPath the full qualified path for the directory user wants to create
-     * @throws SSHApiException throws during error
-     */
-    public List<String> listDirectory(String directoryPath) throws SSHApiException;
-
-    /**
-     * This method can be used to get created ssh session
-     * to reuse the created session.
-     * @throws SSHApiException
-     */
-    public Session getSession() throws SSHApiException;
-    
-    /**
-     * This method can be used to close the connections initialized
-     * to handle graceful shutdown of the system
-     * @throws SSHApiException
-     */
-    public void disconnect() throws SSHApiException;
-
-    /**
-     * This gives the server Info
-     * @return
-     */
-    public ServerInfo getServerInfo();
-
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandExecutor.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandExecutor.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandExecutor.java
index 024c53d..bf306ef 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandExecutor.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandExecutor.java
@@ -18,14 +18,31 @@
  * under the License.
  *
 */
-package org.apache.airavata.gfac.ssh.api;
-
-import com.jcraft.jsch.*;
-import org.apache.airavata.gfac.ssh.api.authentication.*;
-import org.apache.airavata.gfac.ssh.config.ConfigReader;
-import org.apache.airavata.gfac.ssh.jsch.ExtendedJSch;
-import org.apache.airavata.gfac.ssh.util.SSHAPIUIKeyboardInteractive;
-import org.apache.airavata.gfac.ssh.util.SSHKeyPasswordHandler;
+package org.apache.airavata.gfac.gsi.ssh.api;
+
+import com.jcraft.jsch.Channel;
+import com.jcraft.jsch.ChannelExec;
+import com.jcraft.jsch.ExtendedSession;
+import com.jcraft.jsch.GSISSHIdentityFile;
+import com.jcraft.jsch.GSISSHIdentityRepository;
+import com.jcraft.jsch.Identity;
+import com.jcraft.jsch.JSch;
+import com.jcraft.jsch.JSchException;
+import com.jcraft.jsch.Session;
+import org.apache.airavata.gfac.core.SSHApiException;
+import org.apache.airavata.gfac.core.authentication.AuthenticationInfo;
+import org.apache.airavata.gfac.core.authentication.GSIAuthenticationInfo;
+import org.apache.airavata.gfac.core.authentication.SSHKeyAuthentication;
+import org.apache.airavata.gfac.core.authentication.SSHPublicKeyAuthentication;
+import org.apache.airavata.gfac.core.authentication.SSHPublicKeyFileAuthentication;
+import org.apache.airavata.gfac.core.cluster.CommandInfo;
+import org.apache.airavata.gfac.core.cluster.CommandOutput;
+import org.apache.airavata.gfac.core.authentication.SSHPasswordAuthentication;
+import org.apache.airavata.gfac.core.cluster.ServerInfo;
+import org.apache.airavata.gfac.gsi.ssh.config.ConfigReader;
+import org.apache.airavata.gfac.gsi.ssh.jsch.ExtendedJSch;
+import org.apache.airavata.gfac.gsi.ssh.util.SSHAPIUIKeyboardInteractive;
+import org.apache.airavata.gfac.gsi.ssh.util.SSHKeyPasswordHandler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandInfo.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandInfo.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandInfo.java
deleted file mode 100644
index e6797ce..0000000
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandInfo.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.apache.airavata.gfac.ssh.api;/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-/**
- * Encapsulates information about
- */
-public interface CommandInfo {
-
-    /**
-     * Gets the executable command as a string.
-     * @return String encoded command. Should be able to execute
-     * directly on remote shell. Should includes appropriate parameters.
-     */
-    String getCommand();
-
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandOutput.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandOutput.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandOutput.java
deleted file mode 100644
index f275ff0..0000000
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandOutput.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.apache.airavata.gfac.ssh.api;/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-
-import com.jcraft.jsch.Channel;
-
-import java.io.OutputStream;
-
-/**
- * Output of a certain command. TODO rethink
- */
-public interface CommandOutput {
-
-    /**
-     * Gets the output of the command as a stream.
-     * @param  channel Command output as a stream.
-     */
-    void onOutput(Channel channel);
-
-    /**
-     * Gets standard error as a output stream.
-     * @return Command error as a stream.
-     */
-    OutputStream getStandardError();
-
-    /**
-     * The command exit code.
-     * @param code The program exit code
-     */
-    void exitCode(int code);
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Core.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Core.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Core.java
index 67dd043..5225552 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Core.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Core.java
@@ -18,9 +18,9 @@
  * under the License.
  *
 */
-package org.apache.airavata.gfac.ssh.api;
+package org.apache.airavata.gfac.gsi.ssh.api;
 
-import org.apache.airavata.gfac.ssh.api.job.JobDescriptor;
+import org.apache.airavata.gfac.core.JobDescriptor;
 
 /**
  * This represents a CPU core of a machine in the cluster

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Node.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Node.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Node.java
index 1515f39..4d2a1ca 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Node.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Node.java
@@ -18,7 +18,7 @@
  * under the License.
  *
 */
-package org.apache.airavata.gfac.ssh.api;
+package org.apache.airavata.gfac.gsi.ssh.api;
 
 import java.util.HashMap;
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/SSHApiException.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/SSHApiException.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/SSHApiException.java
deleted file mode 100644
index f78825b..0000000
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/SSHApiException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gfac.ssh.api;
-
-/**
- * An exception class to wrap SSH command execution related errors.
- */
-public class SSHApiException extends Exception {
-
-    public SSHApiException(String message) {
-        super(message);
-    }
-
-    public SSHApiException(String message, Exception e) {
-        super(message, e);
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/ServerInfo.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/ServerInfo.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/ServerInfo.java
deleted file mode 100644
index d3c2160..0000000
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/ServerInfo.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.apache.airavata.gfac.ssh.api;/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-/**
- * Encapsulate server information.
- */
-public class ServerInfo {
-
-    private String host;
-    private String userName;
-    private int port = 22;
-
-    public ServerInfo(String userName, String host) {
-        this.userName = userName;
-        this.host = host;
-    }
-
-    public ServerInfo(String userName,String host,  int port) {
-        this.host = host;
-        this.userName = userName;
-        this.port = port;
-    }
-
-    public String getHost() {
-        return host;
-    }
-
-    public void setHost(String host) {
-        this.host = host;
-    }
-
-    public String getUserName() {
-        return userName;
-    }
-
-    public void setUserName(String userName) {
-        this.userName = userName;
-    }
-
-    public int getPort() {
-        return port;
-    }
-
-    public void setPort(int port) {
-        this.port = port;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/job/JobDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/job/JobDescriptor.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/job/JobDescriptor.java
deleted file mode 100644
index 7e936ec..0000000
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/job/JobDescriptor.java
+++ /dev/null
@@ -1,473 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-package org.apache.airavata.gfac.ssh.api.job;
-
-import org.apache.airavata.gfac.ssh.api.CommandOutput;
-import org.apache.airavata.gfac.ssh.util.CommonUtils;
-import org.apache.airavata.gfac.ssh.x2012.x12.*;
-import org.apache.xmlbeans.XmlException;
-
-import java.util.List;
-
-/**
- * This class define a job with required parameters, based on this configuration API is generating a Pbs script and
- * submit the job to the computing resource
- */
-public class JobDescriptor {
-
-    private JobDescriptorDocument jobDescriptionDocument;
-
-
-    public JobDescriptor() {
-        jobDescriptionDocument = JobDescriptorDocument.Factory.newInstance();
-        jobDescriptionDocument.addNewJobDescriptor();
-    }
-
-    public JobDescriptor(JobDescriptorDocument jobDescriptorDocument) {
-        this.jobDescriptionDocument = jobDescriptorDocument;
-    }
-
-
-    public JobDescriptor(CommandOutput commandOutput) {
-        jobDescriptionDocument = JobDescriptorDocument.Factory.newInstance();
-        jobDescriptionDocument.addNewJobDescriptor();
-    }
-
-
-    public String toXML() {
-        return jobDescriptionDocument.xmlText();
-    }
-
-    public JobDescriptorDocument getJobDescriptorDocument() {
-        return this.jobDescriptionDocument;
-    }
-
-    /**
-     * With new app catalog thrift object integration, we don't use this
-     * @param xml
-     * @return
-     * @throws XmlException
-     */
-    @Deprecated
-    public static JobDescriptor fromXML(String xml)
-            throws XmlException {
-        JobDescriptorDocument parse = JobDescriptorDocument.Factory
-                .parse(xml);
-        JobDescriptor jobDescriptor = new JobDescriptor(parse);
-        return jobDescriptor;
-    }
-
-
-    //todo write bunch of setter getters to set and get jobdescription parameters
-    public void setWorkingDirectory(String workingDirectory) {
-        this.getJobDescriptorDocument().getJobDescriptor().setWorkingDirectory(workingDirectory);
-    }
-
-    public String getWorkingDirectory() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getWorkingDirectory();
-    }
-
-    public void setShellName(String shellName) {
-        this.getJobDescriptorDocument().getJobDescriptor().setShellName(shellName);
-    }
-
-    public void setJobName(String name) {
-        this.getJobDescriptorDocument().getJobDescriptor().setJobName(name);
-    }
-
-    public void setExecutablePath(String name) {
-        this.getJobDescriptorDocument().getJobDescriptor().setExecutablePath(name);
-    }
-
-    public void setAllEnvExport(boolean name) {
-        this.getJobDescriptorDocument().getJobDescriptor().setAllEnvExport(name);
-    }
-
-    public void setMailOptions(String name) {
-        this.getJobDescriptorDocument().getJobDescriptor().setMailOptions(name);
-    }
-
-    public void setStandardOutFile(String name) {
-        this.getJobDescriptorDocument().getJobDescriptor().setStandardOutFile(name);
-    }
-
-    public void setStandardErrorFile(String name) {
-        this.getJobDescriptorDocument().getJobDescriptor().setStandardErrorFile(name);
-    }
-
-    public void setNodes(int name) {
-        this.getJobDescriptorDocument().getJobDescriptor().setNodes(name);
-    }
-
-    public void setProcessesPerNode(int name) {
-        this.getJobDescriptorDocument().getJobDescriptor().setProcessesPerNode(name);
-    }
-
-    public String getOutputDirectory() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getOutputDirectory();
-    }
-
-    public String getInputDirectory() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getInputDirectory();
-    }
-    public void setOutputDirectory(String name) {
-        this.getJobDescriptorDocument().getJobDescriptor().setOutputDirectory(name);
-    }
-
-    public void setInputDirectory(String name) {
-        this.getJobDescriptorDocument().getJobDescriptor().setInputDirectory(name);
-    }
-
-    /**
-     * Users can pass the minute count for maxwalltime
-     * @param minutes
-     */
-    public void setMaxWallTime(String minutes) {
-        this.getJobDescriptorDocument().getJobDescriptor().setMaxWallTime(
-                CommonUtils.maxWallTimeCalculator(Integer.parseInt(minutes)));
-
-    }
-
-
-    public void setMaxWallTimeForLSF(String minutes) {
-        this.getJobDescriptorDocument().getJobDescriptor().setMaxWallTime(
-                CommonUtils.maxWallTimeCalculatorForLSF(Integer.parseInt(minutes)));
-
-    }
-    public void setAcountString(String name) {
-        this.getJobDescriptorDocument().getJobDescriptor().setAcountString(name);
-    }
-
-    public void setInputValues(List<String> inputValue) {
-        InputList inputList = this.getJobDescriptorDocument().getJobDescriptor().addNewInputs();
-        inputList.setInputArray(inputValue.toArray(new String[inputValue.size()]));
-    }
-
-    public void setJobID(String jobID) {
-        this.getJobDescriptorDocument().getJobDescriptor().setJobID(jobID);
-    }
-
-    public void setQueueName(String queueName) {
-        this.getJobDescriptorDocument().getJobDescriptor().setQueueName(queueName);
-    }
-
-    public void setStatus(String queueName) {
-        this.getJobDescriptorDocument().getJobDescriptor().setStatus(queueName);
-    }
-
-    public void setAfterAnyList(String[] afterAnyList) {
-        AfterAnyList afterAny = this.getJobDescriptorDocument().getJobDescriptor().addNewAfterAny();
-        afterAny.setAfterAnyArray(afterAnyList);
-    }
-
-    public void setAfterOKList(String[] afterOKList) {
-        AfterOKList afterAnyList = this.getJobDescriptorDocument().getJobDescriptor().addNewAfterOKList();
-        afterAnyList.setAfterOKListArray(afterOKList);
-    }
-    public void setCTime(String cTime) {
-        this.getJobDescriptorDocument().getJobDescriptor().setCTime(cTime);
-    }
-    public void setQTime(String qTime) {
-        this.getJobDescriptorDocument().getJobDescriptor().setQTime(qTime);
-    }
-    public void setMTime(String mTime) {
-        this.getJobDescriptorDocument().getJobDescriptor().setMTime(mTime);
-    }
-    public void setSTime(String sTime) {
-        this.getJobDescriptorDocument().getJobDescriptor().setSTime(sTime);
-    }
-    public void setCompTime(String compTime) {
-        this.getJobDescriptorDocument().getJobDescriptor().setCompTime(compTime);
-    }
-    public void setOwner(String owner) {
-        this.getJobDescriptorDocument().getJobDescriptor().setOwner(owner);
-    }
-    public void setExecuteNode(String executeNode) {
-        this.getJobDescriptorDocument().getJobDescriptor().setExecuteNode(executeNode);
-    }
-    public void setEllapsedTime(String ellapsedTime) {
-        this.getJobDescriptorDocument().getJobDescriptor().setEllapsedTime(ellapsedTime);
-    }
-
-    public void setUsedCPUTime(String usedCPUTime) {
-        this.getJobDescriptorDocument().getJobDescriptor().setUsedCPUTime(usedCPUTime);
-    }
-    public void setCPUCount(int usedCPUTime) {
-            this.getJobDescriptorDocument().getJobDescriptor().setCpuCount(usedCPUTime);
-        }
-    public void setUsedMemory(String usedMemory) {
-        this.getJobDescriptorDocument().getJobDescriptor().setUsedMem(usedMemory);
-    }
-    public void setVariableList(String variableList) {
-        this.getJobDescriptorDocument().getJobDescriptor().setVariableList(variableList);
-    }
-    public void setSubmitArgs(String submitArgs) {
-        this.getJobDescriptorDocument().getJobDescriptor().setSubmitArgs(submitArgs);
-    }
-
-    public void setPreJobCommands(String[] commands){
-        if(this.getJobDescriptorDocument().getJobDescriptor().getPreJobCommands() == null){
-            this.getJobDescriptorDocument().getJobDescriptor().addNewPreJobCommands();
-        }
-        this.getJobDescriptorDocument().getJobDescriptor().getPreJobCommands().setCommandArray(commands);
-    }
-
-     public void setPostJobCommands(String[] commands){
-        if(this.getJobDescriptorDocument().getJobDescriptor().getPostJobCommands() == null){
-            this.getJobDescriptorDocument().getJobDescriptor().addNewPostJobCommands();
-        }
-        this.getJobDescriptorDocument().getJobDescriptor().getPostJobCommands().setCommandArray(commands);
-    }
-
-    public void setModuleLoadCommands(String[] commands) {
-        if (this.getJobDescriptorDocument().getJobDescriptor().getModuleLoadCommands() == null) {
-            this.getJobDescriptorDocument().getJobDescriptor().addNewModuleLoadCommands();
-        }
-        this.getJobDescriptorDocument().getJobDescriptor().getModuleLoadCommands().setCommandArray(commands);
-    }
-
-    public void addModuleLoadCommands(String command) {
-        if (this.getJobDescriptorDocument().getJobDescriptor().getModuleLoadCommands() == null) {
-            this.getJobDescriptorDocument().getJobDescriptor().addNewModuleLoadCommands();
-        }
-        this.getJobDescriptorDocument().getJobDescriptor().getModuleLoadCommands().addCommand(command);
-    }
-
-    public void addPreJobCommand(String command){
-        if(this.getJobDescriptorDocument().getJobDescriptor().getPreJobCommands() == null){
-            this.getJobDescriptorDocument().getJobDescriptor().addNewPreJobCommands();
-        }
-        this.getJobDescriptorDocument().getJobDescriptor().getPreJobCommands().addCommand(command);
-    }
-
-     public void addPostJobCommand(String command){
-        if(this.getJobDescriptorDocument().getJobDescriptor().getPostJobCommands() == null){
-            this.getJobDescriptorDocument().getJobDescriptor().addNewPostJobCommands();
-        }
-        this.getJobDescriptorDocument().getJobDescriptor().getPostJobCommands().addCommand(command);
-    }
-
-    public void setPartition(String partition){
-        this.getJobDescriptorDocument().getJobDescriptor().setPartition(partition);
-    }
-
-     public void setUserName(String userName){
-        this.getJobDescriptorDocument().getJobDescriptor().setUserName(userName);
-    }
-     public void setNodeList(String nodeList){
-        this.getJobDescriptorDocument().getJobDescriptor().setNodeList(nodeList);
-    }
-    public void setJobSubmitter(String jobSubmitter){
-           this.getJobDescriptorDocument().getJobDescriptor().setJobSubmitterCommand(jobSubmitter);
-    }
-    public String getNodeList(){
-        return this.getJobDescriptorDocument().getJobDescriptor().getNodeList();
-    }
-    public String getExecutablePath() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getExecutablePath();
-    }
-
-    public boolean getAllEnvExport() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getAllEnvExport();
-    }
-
-    public String getMailOptions() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getMailOptions();
-    }
-
-    public String getStandardOutFile() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getStandardOutFile();
-    }
-
-    public String getStandardErrorFile() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getStandardErrorFile();
-    }
-
-    public int getNodes(int name) {
-        return this.getJobDescriptorDocument().getJobDescriptor().getNodes();
-    }
-
-    public int getCPUCount(int name) {
-        return this.getJobDescriptorDocument().getJobDescriptor().getCpuCount();
-    }
-
-    public int getProcessesPerNode() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getProcessesPerNode();
-    }
-
-    public String getMaxWallTime() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getMaxWallTime();
-    }
-
-    public String getAcountString() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getAcountString();
-    }
-
-    public String[] getInputValues() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getInputs().getInputArray();
-    }
-
-    public String getJobID() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getJobID();
-    }
-
-    public String getQueueName() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getQueueName();
-    }
-
-    public String getStatus() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getStatus();
-    }
-
-    public String[] getAfterAnyList() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getAfterAny().getAfterAnyArray();
-    }
-
-    public String[] getAfterOKList() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getAfterOKList().getAfterOKListArray();
-    }
-    public String getCTime() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getCTime();
-    }
-    public String getQTime() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getQTime();
-    }
-    public String getMTime() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getMTime();
-    }
-    public String getSTime() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getSTime();
-    }
-    public String getCompTime() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getCompTime();
-    }
-    public String getOwner() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getOwner();
-    }
-    public String getExecuteNode() {
-         return this.getJobDescriptorDocument().getJobDescriptor().getExecuteNode();
-    }
-    public String getEllapsedTime() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getEllapsedTime();
-    }
-
-    public String getUsedCPUTime() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getUsedCPUTime();
-    }
-
-    public String getUsedMemory() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getUsedMem();
-    }
-    public void getShellName() {
-        this.getJobDescriptorDocument().getJobDescriptor().getShellName();
-    }
-
-    public String getJobName() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getJobName();
-    }
-
-    public String getJobId() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getJobID();
-    }
-
-
-    public String getVariableList() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getJobID();
-    }
-    public String getSubmitArgs() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getJobID();
-    }
-
-    public String[] getPostJobCommands(){
-        if(this.getJobDescriptorDocument().getJobDescriptor().getPostJobCommands() != null) {
-            return this.getJobDescriptorDocument().getJobDescriptor().getPostJobCommands().getCommandArray();
-        }
-        return null;
-    }
-
-    public String[] getModuleCommands() {
-        if (this.getJobDescriptorDocument().getJobDescriptor().getModuleLoadCommands() != null) {
-            return this.getJobDescriptorDocument().getJobDescriptor().getModuleLoadCommands().getCommandArray();
-        }
-        return null;
-    }
-
-    public String[] getPreJobCommands(){
-        if(this.getJobDescriptorDocument().getJobDescriptor().getPreJobCommands() != null) {
-            return this.getJobDescriptorDocument().getJobDescriptor().getPreJobCommands().getCommandArray();
-        }
-        return null;
-    }
-
-    public String getJobSubmitterCommand(){
-          return this.getJobDescriptorDocument().getJobDescriptor().getJobSubmitterCommand();
-    }
-
-    public String getPartition(){
-        return this.getJobDescriptorDocument().getJobDescriptor().getPartition();
-    }
-
-    public String getUserName(){
-        return this.getJobDescriptorDocument().getJobDescriptor().getUserName();
-    }
-
-    public void setCallBackIp(String ip){
-        this.jobDescriptionDocument.getJobDescriptor().setCallBackIp(ip);
-    }
-
-    public void setCallBackPort(String ip){
-        this.jobDescriptionDocument.getJobDescriptor().setCallBackPort(ip);
-    }
-
-
-    public String getCallBackIp(){
-        return this.jobDescriptionDocument.getJobDescriptor().getCallBackIp();
-    }
-    public String getCallBackPort(){
-        return this.jobDescriptionDocument.getJobDescriptor().getCallBackPort();
-    }
-
-    public void setMailType(String emailType) {
-        this.getJobDescriptorDocument().getJobDescriptor().setMailType(emailType);
-    }
-
-    public String getMailType() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getMailType();
-    }
-    public void setMailAddress(String emailAddress) {
-        this.getJobDescriptorDocument().getJobDescriptor().setMailAddress(emailAddress);
-    }
-
-    public String getMailAddress() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getMailAddress();
-    }
-
-    public String getChassisName() {
-        return this.getJobDescriptorDocument().getJobDescriptor().getChassisName();
-    }
-
-    public void setChassisName(String chassisName){
-        this.getJobDescriptorDocument().getJobDescriptor().setChassisName(chassisName);
-    }
-    
-
-}
-

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/job/JobManagerConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/job/JobManagerConfiguration.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/job/JobManagerConfiguration.java
deleted file mode 100644
index d58a994..0000000
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/job/JobManagerConfiguration.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.airavata.gfac.ssh.api.job;
-
-import org.apache.airavata.gfac.ssh.impl.RawCommandInfo;
-
-public interface JobManagerConfiguration {
-
-	public RawCommandInfo getCancelCommand(String jobID);
-
-	public String getJobDescriptionTemplateName();
-
-	public RawCommandInfo getMonitorCommand(String jobID);
-
-	public RawCommandInfo getUserBasedMonitorCommand(String userName);
-
-    public RawCommandInfo getJobIdMonitorCommand(String jobName , String userName);
-
-	public String getScriptExtension();
-
-	public RawCommandInfo getSubmitCommand(String workingDirectory, String pbsFilePath);
-
-	public OutputParser getParser();
-
-	public String getInstalledPath();
-
-	public String getBaseCancelCommand();
-
-	public String getBaseMonitorCommand();
-
-	public String getBaseSubmitCommand();
-
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/19afc7e0/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/job/JobType.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/job/JobType.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/job/JobType.java
deleted file mode 100644
index 556f4ef..0000000
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/job/JobType.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-package org.apache.airavata.gfac.ssh.api.job;
-
-/**
- * Created by IntelliJ IDEA.
- * User: lahirugunathilake
- * Date: 8/22/13
- * Time: 7:19 AM
- * To change this template use File | Settings | File Templates.
- */
-public enum JobType {
-            SERIAL, SINGLE, MPI, MULTIPLE, CONDOR
-}