Repository: airavata
Updated Branches:
  refs/heads/develop 67a9f643d -> c3064689d


http://git-wip-us.apache.org/repos/asf/airavata/blob/c3064689/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
deleted file mode 100644
index 3dd4bdc..0000000
--- 
a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/impl/PostJobCommandsImpl.java
+++ /dev/null
@@ -1,254 +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.
- */
-/*
- * 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/c3064689/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
deleted file mode 100644
index 41e535a..0000000
--- 
a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/x2012/x12/impl/PreJobCommandsImpl.java
+++ /dev/null
@@ -1,254 +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.
- */
-/*
- * 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/c3064689/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
 
b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
index 4aaf93b..a808ad3 100644
--- 
a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
+++ 
b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/Factory.java
@@ -196,21 +196,20 @@ public abstract class Factory {
                }
 
                switch (resourceJobManager.getResourceJobManagerType()) {
-
                        case PBS:
-                               return new 
PBSJobConfiguration("PBSTemplate.xslt", ".pbs", 
resourceJobManager.getJobManagerBinPath(),
+                               return new 
PBSJobConfiguration("PBS_Groovy.template", ".pbs", 
resourceJobManager.getJobManagerBinPath(),
                                                
resourceJobManager.getJobManagerCommands(), outputParser);
                        case SLURM:
-                               return new 
SlurmJobConfiguration("SLURMTemplate.xslt", ".slurm", resourceJobManager
+                               return new 
SlurmJobConfiguration("SLURM_Groovy.template", ".slurm", resourceJobManager
                                                .getJobManagerBinPath(), 
resourceJobManager.getJobManagerCommands(), outputParser);
                        case LSF:
-                               return new 
LSFJobConfiguration("LSFTemplate.xslt", ".lsf", 
resourceJobManager.getJobManagerBinPath(),
+                               return new 
LSFJobConfiguration("LSF_Groovy.template", ".lsf", 
resourceJobManager.getJobManagerBinPath(),
                                                
resourceJobManager.getJobManagerCommands(), outputParser);
                        case UGE:
-                               return new 
UGEJobConfiguration("UGETemplate.xslt", ".pbs", 
resourceJobManager.getJobManagerBinPath(),
+                               return new 
UGEJobConfiguration("UGE_Groovy.template", ".pbs", 
resourceJobManager.getJobManagerBinPath(),
                                                
resourceJobManager.getJobManagerCommands(), outputParser);
             case FORK:
-                return new ForkJobConfiguration("ForkTemplate.xslt", ".sh", 
resourceJobManager.getJobManagerBinPath(),
+                return new ForkJobConfiguration("FORK_Groovy.template", ".sh", 
resourceJobManager.getJobManagerBinPath(),
                         resourceJobManager.getJobManagerCommands(), 
outputParser);
                        default:
                                return null;

http://git-wip-us.apache.org/repos/asf/airavata/blob/c3064689/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/ForkOutputParser.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/ForkOutputParser.java
 
b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/ForkOutputParser.java
index b99db30..076bdba 100644
--- 
a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/ForkOutputParser.java
+++ 
b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/ForkOutputParser.java
@@ -22,7 +22,6 @@
 package org.apache.airavata.gfac.impl.job;
 
 import org.apache.airavata.common.utils.AiravataUtils;
-import org.apache.airavata.gfac.core.JobDescriptor;
 import org.apache.airavata.gfac.core.SSHApiException;
 import org.apache.airavata.gfac.core.cluster.OutputParser;
 import org.apache.airavata.model.status.JobStatus;
@@ -33,10 +32,6 @@ import java.util.Map;
 
 public class ForkOutputParser implements OutputParser {
     private static final Logger log = 
LoggerFactory.getLogger(ForkOutputParser.class);
-    @Override
-    public void parseSingleJob(JobDescriptor descriptor, String rawOutput) 
throws SSHApiException {
-        log.info(rawOutput);
-    }
 
     @Override
     public String parseJobSubmission(String rawOutput) throws SSHApiException {

http://git-wip-us.apache.org/repos/asf/airavata/blob/c3064689/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/LSFOutputParser.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/LSFOutputParser.java
 
b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/LSFOutputParser.java
index bb0ae46..7c86ffc 100644
--- 
a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/LSFOutputParser.java
+++ 
b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/LSFOutputParser.java
@@ -20,9 +20,8 @@
 */
 package org.apache.airavata.gfac.impl.job;
 
-import org.apache.airavata.gfac.core.JobDescriptor;
-import org.apache.airavata.gfac.core.cluster.OutputParser;
 import org.apache.airavata.gfac.core.SSHApiException;
+import org.apache.airavata.gfac.core.cluster.OutputParser;
 import org.apache.airavata.model.status.JobState;
 import org.apache.airavata.model.status.JobStatus;
 import org.slf4j.Logger;
@@ -39,13 +38,6 @@ public class LSFOutputParser implements OutputParser {
     private final static Logger logger = 
LoggerFactory.getLogger(LSFOutputParser.class);
 
     @Override
-    public void parseSingleJob(JobDescriptor jobDescriptor, String rawOutput) 
throws SSHApiException {
-        logger.debug(rawOutput);
-        //todo we need to implement this but we are not using it airavata 
runtime
-        // if someone is using the gsissh as a tool this will be useful to get 
a descriptive information about a single job
-    }
-
-    @Override
     public String parseJobSubmission(String rawOutput) throws SSHApiException {
         logger.debug(rawOutput);
         return 
rawOutput.substring(rawOutput.indexOf("<")+1,rawOutput.indexOf(">"));

http://git-wip-us.apache.org/repos/asf/airavata/blob/c3064689/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/PBSOutputParser.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/PBSOutputParser.java
 
b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/PBSOutputParser.java
index 7f97a68..d7d52ee 100644
--- 
a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/PBSOutputParser.java
+++ 
b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/PBSOutputParser.java
@@ -20,10 +20,8 @@
 */
 package org.apache.airavata.gfac.impl.job;
 
-import org.apache.airavata.gfac.core.JobDescriptor;
-import org.apache.airavata.gfac.core.cluster.OutputParser;
 import org.apache.airavata.gfac.core.SSHApiException;
-import org.apache.airavata.model.status.JobState;
+import org.apache.airavata.gfac.core.cluster.OutputParser;
 import org.apache.airavata.model.status.JobStatus;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -37,92 +35,6 @@ import java.util.regex.Pattern;
 public class PBSOutputParser implements OutputParser {
     private static final Logger log = 
LoggerFactory.getLogger(PBSOutputParser.class);
 
-    public void parseSingleJob(JobDescriptor jobDescriptor, String rawOutput) {
-        log.debug(rawOutput);
-        String[] info = rawOutput.split("\n");
-        String[] line;
-        for (int i = 0; i < info.length; i++) {
-            if (info[i].contains("=")) {
-                line = info[i].split("=", 2);
-            } else {
-                line = info[i].split(":", 2);
-            }
-            if (line.length >= 2) {
-                String header = line[0].trim();
-                log.debug("Header = " + header);
-                String value = line[1].trim();
-                log.debug("value = " + value);
-
-                if (header.equals("Variable_List")) {
-                    while (info[i + 1].startsWith("\t")) {
-                        value += info[i + 1];
-                        i++;
-                    }
-                    value = value.replaceAll("\t", "");
-                    jobDescriptor.setVariableList(value);
-                } else if ("Job Id".equals(header)) {
-                    jobDescriptor.setJobID(value);
-                } else if ("Job_Name".equals(header)) {
-                    jobDescriptor.setJobName(value);
-                } else if ("Account_Name".equals(header)) {
-                    jobDescriptor.setAcountString(value);
-                } else if ("job_state".equals(header)) {
-                    jobDescriptor.setStatus(value);
-                } else if ("Job_Owner".equals(header)) {
-                    jobDescriptor.setOwner(value);
-                } else if ("resources_used.cput".equals(header)) {
-                    jobDescriptor.setUsedCPUTime(value);
-                } else if ("resources_used.mem".equals(header)) {
-                    jobDescriptor.setUsedMemory(value);
-                } else if ("resources_used.walltime".equals(header)) {
-                    jobDescriptor.setEllapsedTime(value);
-                } else if ("job_state".equals(header)) {
-                    jobDescriptor.setStatus(value);
-                } else if ("queue".equals(header))
-                    jobDescriptor.setQueueName(value);
-                else if ("ctime".equals(header)) {
-                    jobDescriptor.setCTime(value);
-                } else if ("qtime".equals(header)) {
-                    jobDescriptor.setQTime(value);
-                } else if ("mtime".equals(header)) {
-                    jobDescriptor.setMTime(value);
-                } else if ("start_time".equals(header)) {
-                    jobDescriptor.setSTime(value);
-                } else if ("comp_time".equals(header)) {
-                    jobDescriptor.setCompTime(value);
-                } else if ("exec_host".equals(header)) {
-                    jobDescriptor.setExecuteNode(value);
-                } else if ("Output_Path".equals(header)) {
-                    if (info[i + 1].contains("=") || info[i + 1].contains(":"))
-                        jobDescriptor.setStandardOutFile(value);
-                    else {
-                        jobDescriptor.setStandardOutFile(value + info[i + 
1].trim());
-                        i++;
-                    }
-                } else if ("Error_Path".equals(header)) {
-                    if (info[i + 1].contains("=") || info[i + 1].contains(":"))
-                        jobDescriptor.setStandardErrorFile(value);
-                    else {
-                        String st = info[i + 1].trim();
-                        jobDescriptor.setStandardErrorFile(value + st);
-                        i++;
-                    }
-
-                } else if ("submit_args".equals(header)) {
-                    while (i + 1 < info.length) {
-                        if (info[i + 1].startsWith("\t")) {
-                            value += info[i + 1];
-                            i++;
-                        } else
-                            break;
-                    }
-                    value = value.replaceAll("\t", "");
-                    jobDescriptor.setSubmitArgs(value);
-                }
-            }
-        }
-    }
-
     public String parseJobSubmission(String rawOutput) {
         log.debug(rawOutput);
         String jobId = rawOutput;

http://git-wip-us.apache.org/repos/asf/airavata/blob/c3064689/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/SlurmOutputParser.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/SlurmOutputParser.java
 
b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/SlurmOutputParser.java
index dff0a9b..e94afc5 100644
--- 
a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/SlurmOutputParser.java
+++ 
b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/SlurmOutputParser.java
@@ -20,9 +20,8 @@
 */
 package org.apache.airavata.gfac.impl.job;
 
-import org.apache.airavata.gfac.core.JobDescriptor;
-import org.apache.airavata.gfac.core.cluster.OutputParser;
 import org.apache.airavata.gfac.core.SSHApiException;
+import org.apache.airavata.gfac.core.cluster.OutputParser;
 import org.apache.airavata.model.status.JobState;
 import org.apache.airavata.model.status.JobStatus;
 import org.slf4j.Logger;
@@ -40,64 +39,6 @@ public class SlurmOutputParser implements OutputParser {
     public static final String STATUS = "status";
        public static final String JOBID = "jobId";
 
-    public void parseSingleJob(JobDescriptor descriptor, String rawOutput) 
throws SSHApiException {
-        log.info(rawOutput);
-        String[] info = rawOutput.split("\n");
-        String lastString = info[info.length - 1];
-        if (lastString.contains("JOB ID")) {
-            // because there's no state
-            descriptor.setStatus("U");
-        } else {
-            int column = 0;
-            System.out.println(lastString);
-            for (String each : lastString.split(" ")) {
-                if (each.trim().isEmpty()) {
-                    continue;
-                } else {
-                    switch (column) {
-                        case 0:
-                            descriptor.setJobID(each);
-                            column++;
-                            break;
-                        case 1:
-                            descriptor.setPartition(each);
-                            column++;
-                            break;
-                        case 2:
-                            descriptor.setJobName(each);
-                            column++;
-                            break;
-                        case 3:
-                            descriptor.setUserName(each);
-                            column++;
-                            break;
-                        case 4:
-                            descriptor.setStatus(each);
-                            column++;
-                            break;
-                        case 5:
-                            descriptor.setUsedCPUTime(each);
-                            column++;
-                            break;
-                        case 6:
-                            try {
-                                int nodes = Integer.parseInt(each);
-                                descriptor.setNodes(nodes);
-                            }catch (Exception e){
-                                log.error("Node count read from command output 
is not an integer !!!");
-                            }
-                            column++;
-                            break;
-                        case 7:
-                            descriptor.setNodeList(each);
-                            column++;
-                            break;
-                    }
-                }
-            }
-        }
-
-    }
 
     /**
      * This can be used to parseSingleJob the outpu of sbatch and extrac the 
jobID from the content

http://git-wip-us.apache.org/repos/asf/airavata/blob/c3064689/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/UGEOutputParser.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/UGEOutputParser.java
 
b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/UGEOutputParser.java
index 1c39258..31a70db 100644
--- 
a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/UGEOutputParser.java
+++ 
b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/job/UGEOutputParser.java
@@ -20,9 +20,8 @@
 */
 package org.apache.airavata.gfac.impl.job;
 
-import org.apache.airavata.gfac.core.JobDescriptor;
-import org.apache.airavata.gfac.core.cluster.OutputParser;
 import org.apache.airavata.gfac.core.SSHApiException;
+import org.apache.airavata.gfac.core.cluster.OutputParser;
 import org.apache.airavata.model.status.JobState;
 import org.apache.airavata.model.status.JobStatus;
 import org.slf4j.Logger;
@@ -38,92 +37,6 @@ public class UGEOutputParser implements OutputParser {
     private static final Logger log = 
LoggerFactory.getLogger(PBSOutputParser.class);
     public static final String JOB_ID = "jobId";
 
-    public void parseSingleJob(JobDescriptor jobDescriptor, String rawOutput) {
-        log.debug(rawOutput);
-        String[] info = rawOutput.split("\n");
-        String[] line;
-        for (int i = 0; i < info.length; i++) {
-            if (info[i].contains("=")) {
-                line = info[i].split("=", 2);
-            } else {
-                line = info[i].split(":", 2);
-            }
-            if (line.length >= 2) {
-                String header = line[0].trim();
-                log.debug("Header = " + header);
-                String value = line[1].trim();
-                log.debug("value = " + value);
-
-                if (header.equals("Variable_List")) {
-                    while (info[i + 1].startsWith("\t")) {
-                        value += info[i + 1];
-                        i++;
-                    }
-                    value = value.replaceAll("\t", "");
-                    jobDescriptor.setVariableList(value);
-                } else if ("Job Id".equals(header)) {
-                    jobDescriptor.setJobID(value);
-                } else if ("Job_Name".equals(header)) {
-                    jobDescriptor.setJobName(value);
-                } else if ("Account_Name".equals(header)) {
-                    jobDescriptor.setAcountString(value);
-                } else if ("job_state".equals(header)) {
-                    jobDescriptor.setStatus(value);
-                } else if ("Job_Owner".equals(header)) {
-                    jobDescriptor.setOwner(value);
-                } else if ("resources_used.cput".equals(header)) {
-                    jobDescriptor.setUsedCPUTime(value);
-                } else if ("resources_used.mem".equals(header)) {
-                    jobDescriptor.setUsedMemory(value);
-                } else if ("resources_used.walltime".equals(header)) {
-                    jobDescriptor.setEllapsedTime(value);
-                } else if ("job_state".equals(header)) {
-                    jobDescriptor.setStatus(value);
-                } else if ("queue".equals(header))
-                    jobDescriptor.setQueueName(value);
-                else if ("ctime".equals(header)) {
-                    jobDescriptor.setCTime(value);
-                } else if ("qtime".equals(header)) {
-                    jobDescriptor.setQTime(value);
-                } else if ("mtime".equals(header)) {
-                    jobDescriptor.setMTime(value);
-                } else if ("start_time".equals(header)) {
-                    jobDescriptor.setSTime(value);
-                } else if ("comp_time".equals(header)) {
-                    jobDescriptor.setCompTime(value);
-                } else if ("exec_host".equals(header)) {
-                    jobDescriptor.setExecuteNode(value);
-                } else if ("Output_Path".equals(header)) {
-                    if (info[i + 1].contains("=") || info[i + 1].contains(":"))
-                        jobDescriptor.setStandardOutFile(value);
-                    else {
-                        jobDescriptor.setStandardOutFile(value + info[i + 
1].trim());
-                        i++;
-                    }
-                } else if ("Error_Path".equals(header)) {
-                    if (info[i + 1].contains("=") || info[i + 1].contains(":"))
-                        jobDescriptor.setStandardErrorFile(value);
-                    else {
-                        String st = info[i + 1].trim();
-                        jobDescriptor.setStandardErrorFile(value + st);
-                        i++;
-                    }
-
-                } else if ("submit_args".equals(header)) {
-                    while (i + 1 < info.length) {
-                        if (info[i + 1].startsWith("\t")) {
-                            value += info[i + 1];
-                            i++;
-                        } else
-                            break;
-                    }
-                    value = value.replaceAll("\t", "");
-                    jobDescriptor.setSubmitArgs(value);
-                }
-            }
-        }
-    }
-
        public String parseJobSubmission(String rawOutput) {
                log.debug(rawOutput);
                if (rawOutput != null && !rawOutput.isEmpty() && 
!isJobSubmissionFailed(rawOutput)) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/c3064689/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java
 
b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java
index a131ef5..cabb77f 100644
--- 
a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java
+++ 
b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/DefaultJobSubmissionTask.java
@@ -72,15 +72,15 @@ public class DefaultJobSubmissionTask implements 
JobSubmissionTask {
                    JobModel jobModel = processContext.getJobModel();
                    jobModel.setTaskId(taskContext.getTaskId());
                    RemoteCluster remoteCluster = 
processContext.getJobSubmissionRemoteCluster();
-                   JobDescriptor jobDescriptor = 
GFacUtils.createJobDescriptor(processContext,taskContext);
-                   jobModel.setJobName(jobDescriptor.getJobName());
-                   ResourceJobManager resourceJobManager = 
GFacUtils.getResourceJobManager(processContext);
+                   GroovyMap groovyMap = 
GFacUtils.creatGroovyMap(processContext,taskContext);
+                       
jobModel.setJobName(groovyMap.get(Script.JOB_NAME).toString());
+                       ResourceJobManager resourceJobManager = 
GFacUtils.getResourceJobManager(processContext);
                    JobManagerConfiguration jConfig = null;
                    if (resourceJobManager != null) {
                            jConfig = 
Factory.getJobManagerConfiguration(resourceJobManager);
                    }
                    JobStatus jobStatus = new JobStatus();
-                   File jobFile = GFacUtils.createJobFile(taskContext, 
jobDescriptor, jConfig);
+                   File jobFile = GFacUtils.createJobFile(groovyMap, 
taskContext, jConfig);
                    if (jobFile != null && jobFile.exists()) {
                            
jobModel.setJobDescription(FileUtils.readFileToString(jobFile));
                            JobSubmissionOutput jobSubmissionOutput = 
remoteCluster.submitBatchJob(jobFile.getPath(),

http://git-wip-us.apache.org/repos/asf/airavata/blob/c3064689/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/ForkJobSubmissionTask.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/ForkJobSubmissionTask.java
 
b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/ForkJobSubmissionTask.java
index b57b68d..e231cb9 100644
--- 
a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/ForkJobSubmissionTask.java
+++ 
b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/ForkJobSubmissionTask.java
@@ -64,15 +64,15 @@ public class ForkJobSubmissionTask implements 
JobSubmissionTask {
             JobModel jobModel = processContext.getJobModel();
             jobModel.setTaskId(taskContext.getTaskId());
             RemoteCluster remoteCluster = 
processContext.getJobSubmissionRemoteCluster();
-            JobDescriptor jobDescriptor = 
GFacUtils.createJobDescriptor(processContext, taskContext);
-            jobModel.setJobName(jobDescriptor.getJobName());
+            GroovyMap groovyMap = GFacUtils.creatGroovyMap(processContext, 
taskContext);
+            jobModel.setJobName(groovyMap.get(Script.JOB_NAME).toString());
             ResourceJobManager resourceJobManager = 
GFacUtils.getResourceJobManager(processContext);
             JobManagerConfiguration jConfig = null;
             if (resourceJobManager != null) {
                 jConfig = 
Factory.getJobManagerConfiguration(resourceJobManager);
             }
             JobStatus jobStatus = new JobStatus();
-               File jobFile = GFacUtils.createJobFile(taskContext, 
jobDescriptor, jConfig);
+               File jobFile = GFacUtils.createJobFile(groovyMap, taskContext, 
jConfig);
                if (jobFile != null && jobFile.exists()) {
                 
jobModel.setJobDescription(FileUtils.readFileToString(jobFile));
                    JobSubmissionOutput jobSubmissionOutput = 
remoteCluster.submitBatchJob(jobFile.getPath(),

http://git-wip-us.apache.org/repos/asf/airavata/blob/c3064689/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java
----------------------------------------------------------------------
diff --git 
a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java
 
b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java
index d37d322..eaa446e 100644
--- 
a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java
+++ 
b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java
@@ -36,7 +36,6 @@ import org.apache.airavata.model.messaging.event.*;
 import org.apache.airavata.model.process.ProcessModel;
 import org.apache.airavata.model.status.ExperimentState;
 import org.apache.airavata.model.status.ProcessState;
-import org.apache.airavata.model.status.ProcessStatus;
 import org.apache.airavata.model.util.ExperimentModelUtil;
 import org.apache.airavata.model.experiment.*;
 import org.apache.airavata.orchestrator.cpi.OrchestratorService;

http://git-wip-us.apache.org/repos/asf/airavata/blob/c3064689/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/invoker/MsgBoxWsaResponsesCorrelator.java
----------------------------------------------------------------------
diff --git 
a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/invoker/MsgBoxWsaResponsesCorrelator.java
 
b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/invoker/MsgBoxWsaResponsesCorrelator.java
index cab3462..7705ffc 100644
--- 
a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/invoker/MsgBoxWsaResponsesCorrelator.java
+++ 
b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/invoker/MsgBoxWsaResponsesCorrelator.java
@@ -20,7 +20,7 @@
 //*/
 //package org.apache.airavata.workflow.engine.invoker;
 //
-//import org.apache.airavata.common.utils.XMLUtil;
+//import org.apache.airavata.workflow.core.XMLUtil;
 //import org.apache.airavata.wsmg.msgbox.client.MsgBoxClient;
 //import org.apache.axiom.om.OMElement;
 //import org.apache.axis2.addressing.EndpointReference;

http://git-wip-us.apache.org/repos/asf/airavata/blob/c3064689/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplication.java
----------------------------------------------------------------------
diff --git 
a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplication.java
 
b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplication.java
index 22d5ded..fedf248 100644
--- 
a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplication.java
+++ 
b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplication.java
@@ -38,7 +38,6 @@ import javax.xml.bind.annotation.XmlType;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
-import org.apache.airavata.common.utils.WSConstants;
 import org.apache.airavata.common.utils.XMLUtil;
 import 
org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
 import org.apache.airavata.model.application.io.DataType;

http://git-wip-us.apache.org/repos/asf/airavata/blob/c3064689/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/BPELScript.java
----------------------------------------------------------------------
diff --git 
a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/BPELScript.java
 
b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/BPELScript.java
index 9063207..8cc8f21 100644
--- 
a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/BPELScript.java
+++ 
b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/BPELScript.java
@@ -28,8 +28,6 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.airavata.common.utils.StringUtil;
-import org.apache.airavata.common.utils.WSConstants;
 import org.apache.airavata.common.utils.XMLUtil;
 import org.apache.airavata.workflow.model.component.ComponentPort;
 import org.apache.airavata.workflow.model.component.ws.WSComponent;

http://git-wip-us.apache.org/repos/asf/airavata/blob/c3064689/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/WorkflowWSDL.java
----------------------------------------------------------------------
diff --git 
a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/WorkflowWSDL.java
 
b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/WorkflowWSDL.java
index 7f6ea22..010761d 100644
--- 
a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/WorkflowWSDL.java
+++ 
b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/WorkflowWSDL.java
@@ -26,7 +26,6 @@ import java.util.List;
 import javax.xml.namespace.QName;
 
 import org.apache.airavata.common.exception.AiravataException;
-import org.apache.airavata.workflow.model.exceptions.UtilsException;
 import org.apache.airavata.common.utils.WSConstants;
 import org.apache.airavata.common.utils.XMLUtil;
 import org.apache.airavata.workflow.model.component.ws.WSComponentPort;

http://git-wip-us.apache.org/repos/asf/airavata/blob/c3064689/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/wf/Workflow.java
----------------------------------------------------------------------
diff --git 
a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/wf/Workflow.java
 
b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/wf/Workflow.java
index 5a87a97..3dc8daa 100644
--- 
a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/wf/Workflow.java
+++ 
b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/wf/Workflow.java
@@ -38,7 +38,6 @@ import javax.xml.namespace.QName;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonPrimitive;
 import org.apache.airavata.common.exception.AiravataException;
-import org.apache.airavata.workflow.model.exceptions.UtilsException;
 import org.apache.airavata.common.utils.JSONUtil;
 import org.apache.airavata.common.utils.XMLUtil;
 import org.apache.airavata.workflow.model.component.Component;

http://git-wip-us.apache.org/repos/asf/airavata/blob/c3064689/modules/workflow/workflow-core/pom.xml
----------------------------------------------------------------------
diff --git a/modules/workflow/workflow-core/pom.xml 
b/modules/workflow/workflow-core/pom.xml
index 63e8230..a386824 100644
--- a/modules/workflow/workflow-core/pom.xml
+++ b/modules/workflow/workflow-core/pom.xml
@@ -63,7 +63,16 @@
             <artifactId>guava</artifactId>
             <version>18.0</version>
         </dependency>
-
+        <dependency>
+            <groupId>xerces</groupId>
+            <artifactId>xercesImpl</artifactId>
+            <version>2.9.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.xmlbeans</groupId>
+            <artifactId>xmlbeans</artifactId>
+            <version>${xmlbeans.version}</version>
+        </dependency>
         <!--test-->
         <dependency>
             <groupId>junit</groupId>

http://git-wip-us.apache.org/repos/asf/airavata/blob/c3064689/modules/workflow/workflow-core/src/main/java/org/apache/airavata/workflow/core/XMLUtil.java
----------------------------------------------------------------------
diff --git 
a/modules/workflow/workflow-core/src/main/java/org/apache/airavata/workflow/core/XMLUtil.java
 
b/modules/workflow/workflow-core/src/main/java/org/apache/airavata/workflow/core/XMLUtil.java
new file mode 100644
index 0000000..90562da
--- /dev/null
+++ 
b/modules/workflow/workflow-core/src/main/java/org/apache/airavata/workflow/core/XMLUtil.java
@@ -0,0 +1,587 @@
+/*
+ *
+ * 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.workflow.core;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.apache.airavata.common.exception.AiravataException;
+import org.apache.airavata.common.utils.IOUtil;
+import org.apache.xmlbeans.XmlError;
+import org.apache.xmlbeans.XmlObject;
+import org.apache.xmlbeans.XmlOptions;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Text;
+import org.xml.sax.SAXException;
+import org.xmlpull.infoset.XmlDocument;
+import org.xmlpull.infoset.XmlElement;
+import org.xmlpull.infoset.XmlNamespace;
+import org.xmlpull.mxp1.MXParserFactory;
+import org.xmlpull.mxp1_serializer.MXSerializer;
+
+public class XMLUtil {
+
+    /**
+     * The XML builder for XPP5
+     */
+    public static final org.xmlpull.infoset.XmlInfosetBuilder BUILDER = 
org.xmlpull.infoset.XmlInfosetBuilder
+            .newInstance();
+
+    /**
+     * The XML builder for XPP3.
+     */
+    public static final org.xmlpull.v1.builder.XmlInfosetBuilder BUILDER3 = 
org.xmlpull.v1.builder.XmlInfosetBuilder
+            .newInstance(new MXParserFactory());
+
+    private static final Logger logger = 
LoggerFactory.getLogger(XMLUtil.class);
+
+    private final static String PROPERTY_SERIALIZER_INDENTATION = 
"http://xmlpull.org/v1/doc/properties.html#serializer-indentation";;
+
+    private final static String INDENT = "    ";
+
+    /**
+     * Parses a specified string and returns the XmlElement (XPP3).
+     * 
+     * @param string
+     * @return The XmlElement (XPP3) parsed.
+     */
+    public static org.xmlpull.v1.builder.XmlElement stringToXmlElement3(String 
string) {
+        return BUILDER3.parseFragmentFromReader(new StringReader(string));
+    }
+
+    /**
+     * Parses a specified string and returns the XmlElement (XPP5).
+     * 
+     * @param string
+     * @return The XmlElement (XPP5) parsed.
+     */
+    public static org.xmlpull.infoset.XmlElement stringToXmlElement(String 
string) {
+        XmlDocument document = BUILDER.parseString(string);
+        org.xmlpull.infoset.XmlElement element = document.getDocumentElement();
+        return element;
+    }
+
+    /**
+     * Converts a specified XmlElement (XPP3) to the XmlElement (XPP5).
+     * 
+     * @param element
+     * @return The XmlElement (XPP5) converted.
+     */
+    public static org.xmlpull.infoset.XmlElement 
xmlElement3ToXmlElement5(org.xmlpull.v1.builder.XmlElement element) {
+        String string = xmlElementToString(element);
+        return stringToXmlElement(string);
+    }
+
+    /**
+     * Converts a specified XmlElement (XPP5) to the XmlElement (XPP3).
+     * 
+     * @param element
+     * @return The XmlElement (XPP3) converted.
+     */
+    public static org.xmlpull.v1.builder.XmlElement 
xmlElement5ToXmlElement3(org.xmlpull.infoset.XmlElement element) {
+        String string = xmlElementToString(element);
+        return stringToXmlElement3(string);
+    }
+
+    /**
+     * Returns the XML string of a specified XmlElement.
+     * 
+     * @param element
+     *            The specified XmlElement
+     * @return The XML string
+     */
+    public static String xmlElementToString(org.xmlpull.v1.builder.XmlElement 
element) {
+        MXSerializer serializer = new MXSerializer();
+        StringWriter writer = new StringWriter();
+        serializer.setOutput(writer);
+        serializer.setProperty(PROPERTY_SERIALIZER_INDENTATION, INDENT);
+        BUILDER3.serialize(element, serializer);
+        String xmlText = writer.toString();
+        return xmlText;
+    }
+
+    /**
+     * Returns the XML string as a specified XmlElement (XPP5).
+     * 
+     * @param element
+     *            The specified XmlElement
+     * @return The XML string
+     */
+    public static String xmlElementToString(org.xmlpull.infoset.XmlElement 
element) {
+        String string;
+        if (element == null) {
+            string = "";
+        } else {
+            string = BUILDER.serializeToStringPretty(element);
+        }
+        return string;
+    }
+
+    /**
+     * Converts a specified XPP5 XML element to a DOM element under a 
specified document.
+     * 
+     * @param xppElement
+     * @param document
+     * @return The converted DOM element.
+     */
+    public static Element 
xppElementToDomElement(org.xmlpull.infoset.XmlElement xppElement, Document 
document) {
+        Element domElement = document.createElement(xppElement.getName());
+
+        for (org.xmlpull.infoset.XmlNamespace namespace : 
xppElement.namespaces()) {
+            logger.debug("namespace: " + namespace);
+        }
+
+        for (org.xmlpull.infoset.XmlAttribute attribute : 
xppElement.attributes()) {
+            domElement.setAttribute(attribute.getName(), attribute.getValue());
+        }
+
+        for (Object object : xppElement.children()) {
+            if (object instanceof org.xmlpull.infoset.XmlElement) {
+                
domElement.appendChild(xppElementToDomElement((org.xmlpull.infoset.XmlElement) 
object, document));
+            } else if (object instanceof String) {
+                Text text = document.createTextNode((String) object);
+                domElement.appendChild(text);
+            } else {
+                logger.debug("object.getClass(): " + object.getClass());
+            }
+        }
+        return domElement;
+    }
+
+//    /**
+//     * @param definitions3
+//     * @return The WsdlDefinitions (XSUL5)
+//     */
+//    @Deprecated
+//    public static xsul5.wsdl.WsdlDefinitions 
wsdlDefinitions3ToWsdlDefintions5(xsul.wsdl.WsdlDefinitions definitions3) {
+//        return WSDLUtil.wsdlDefinitions3ToWsdlDefintions5(definitions3);
+//    }
+//
+//    /**
+//     * @param definitions5
+//     * @return The WsdlDefinitions (XSUL3)
+//     */
+//    @Deprecated
+//    public static xsul.wsdl.WsdlDefinitions 
wsdlDefinitions5ToWsdlDefintions3(xsul5.wsdl.WsdlDefinitions definitions5) {
+//        return WSDLUtil.wsdlDefinitions5ToWsdlDefintions3(definitions5);
+//    }
+
+    /**
+     * Converts a specified XPP3 XML element to a DOM element under a 
specified document.
+     * 
+     * @param xppElement
+     * @param document
+     * @return The converted DOM element.
+     */
+    public static Element 
xppElementToDomElement(org.xmlpull.v1.builder.XmlElement xppElement, Document 
document) {
+        Element domElement = document.createElement(xppElement.getName());
+
+        Iterator nsIt = xppElement.namespaces();
+        while (nsIt.hasNext()) {
+            org.xmlpull.v1.builder.XmlNamespace namespace = 
(org.xmlpull.v1.builder.XmlNamespace) nsIt.next();
+            logger.debug("namespace: " + namespace);
+            // TODO
+        }
+
+        Iterator attrIt = xppElement.attributes();
+        while (attrIt.hasNext()) {
+            org.xmlpull.v1.builder.XmlAttribute attribute = 
(org.xmlpull.v1.builder.XmlAttribute) attrIt.next();
+            // TODO namespace
+            domElement.setAttribute(attribute.getName(), attribute.getValue());
+        }
+
+        Iterator elementIt = xppElement.children();
+        while (elementIt.hasNext()) {
+            Object object = elementIt.next();
+            if (object instanceof org.xmlpull.v1.builder.XmlElement) {
+                
domElement.appendChild(xppElementToDomElement((org.xmlpull.v1.builder.XmlElement)
 object, document));
+            } else if (object instanceof String) {
+                Text text = document.createTextNode((String) object);
+                domElement.appendChild(text);
+            } else {
+                logger.debug("object.getClass(): " + object.getClass());
+            }
+        }
+        return domElement;
+    }
+
+    /**
+     * @param element
+     * @return The cloned XmlElement.
+     */
+    public static org.xmlpull.infoset.XmlElement 
deepClone(org.xmlpull.infoset.XmlElement element)
+            throws AiravataException {
+        try {
+            XmlElement clonedElement = element.clone();
+            clonedElement.setParent(null);
+            return clonedElement;
+        } catch (CloneNotSupportedException e) {
+            // This should not happen because we don't put any special Objects.
+            throw new AiravataException(e.getMessage(), e);
+        }
+    }
+
+    /**
+     * Saves a specified XmlElement to a specified file.
+     * 
+     * @param element
+     * @param file
+     * @throws IOException
+     */
+    public static void saveXML(org.xmlpull.infoset.XmlElement element, File 
file) throws IOException {
+        XmlDocument document = BUILDER.newDocument();
+        document.setDocumentElement(element);
+        String xmlText = BUILDER.serializeToStringPretty(document);
+        IOUtil.writeToFile(xmlText, file);
+    }
+
+    /**
+     * Saves a specified XmlElement to a specified file.
+     * 
+     * @param element
+     * @param file
+     * @throws IOException
+     */
+    public static void saveXML(org.xmlpull.v1.builder.XmlElement element, File 
file) throws IOException {
+        saveXML(xmlElement3ToXmlElement5(element), file);
+    }
+
+    /**
+     * @param file
+     * @return The XmlElement in the document.
+     * @throws IOException
+     */
+    public static org.xmlpull.infoset.XmlElement loadXML(InputStream stream) 
throws IOException {
+        String xmlText = IOUtil.readToString(stream);
+        XmlDocument document = BUILDER.parseString(xmlText);
+        return document.getDocumentElement();
+    }
+    
+    /**
+     * @param file
+     * @return The XmlElement in the document.
+     * @throws IOException
+     */
+    public static org.xmlpull.infoset.XmlElement loadXML(File file) throws 
IOException {
+        return loadXML(new FileInputStream(file));
+    }
+
+    /**
+     * @param string
+     * @return true if the specified string is XML, false otherwise
+     */
+    public static boolean isXML(String string) {
+        try {
+            stringToXmlElement(string);
+            return true;
+        } catch (RuntimeException e) {
+            return false;
+        }
+    }
+
+    /**
+     * Validates a specified XmlObject along with logging errors if any.
+     * 
+     * @param xmlObject
+     */
+    public static void validate(XmlObject xmlObject) throws AiravataException {
+        XmlOptions validateOptions = new XmlOptions();
+        ArrayList errorList = new ArrayList();
+        validateOptions.setErrorListener(errorList);
+
+        boolean isValid = xmlObject.validate(validateOptions);
+        if (isValid) {
+            // Valid
+            return;
+        }
+
+        // Error
+        StringBuilder stringBuilder = new StringBuilder();
+        for (int i = 0; i < errorList.size(); i++) {
+            XmlError error = (XmlError) errorList.get(i);
+            logger.warn("Message: " + error.getMessage());
+            logger.warn("Location of invalid XML: " + 
error.getCursorLocation().xmlText());
+            stringBuilder.append("Message:" + error.getMessage());
+            stringBuilder.append("Location of invalid XML: " + 
error.getCursorLocation().xmlText());
+        }
+        throw new AiravataException(stringBuilder.toString());
+    }
+
+    /**
+     * Returns the local part of a specified QName.
+     * 
+     * @param qname
+     *            the specified QName in string, e.g. ns:value
+     * @return the local part of the QName, e.g. value
+     */
+    public static String getLocalPartOfQName(String qname) {
+        int index = qname.indexOf(':');
+        if (index < 0) {
+            return qname;
+        } else {
+            return qname.substring(index + 1);
+        }
+    }
+
+    /**
+     * Returns the prefix of a specified QName.
+     * 
+     * @param qname
+     *            the specified QName in string, e.g. ns:value
+     * @return the prefix of the QName, e.g. ns
+     */
+    public static String getPrefixOfQName(String qname) {
+        int index = qname.indexOf(':');
+        if (index < 0) {
+            return null;
+        } else {
+            return qname.substring(0, index);
+        }
+    }
+
+    /**
+     * @param prefixCandidate
+     * @param uri
+     * @param alwaysUseSuffix
+     * @param element
+     * @return The namespace found or declared.
+     */
+    public static XmlNamespace declareNamespaceIfNecessary(String 
prefixCandidate, String uri, boolean alwaysUseSuffix,
+            XmlElement element) {
+        XmlNamespace namespace = element.lookupNamespaceByName(uri);
+        if (namespace == null) {
+            return declareNamespace(prefixCandidate, uri, alwaysUseSuffix, 
element);
+        } else {
+            return namespace;
+        }
+    }
+
+    /**
+     * @param prefixCandidate
+     * @param uri
+     * @param alwaysUseSuffix
+     * @param element
+     * @return The namespace declared.
+     */
+    public static XmlNamespace declareNamespace(String prefixCandidate, String 
uri, boolean alwaysUseSuffix,
+            XmlElement element) {
+        if (prefixCandidate == null || prefixCandidate.length() == 0) {
+            prefixCandidate = "a";
+        }
+        String prefix = prefixCandidate;
+        if (alwaysUseSuffix) {
+            prefix += "0";
+        }
+        if (element.lookupNamespaceByPrefix(prefix) != null) {
+            int i = 1;
+            prefix = prefixCandidate + i;
+            while (element.lookupNamespaceByPrefix(prefix) != null) {
+                i++;
+            }
+        }
+        XmlNamespace namespace = element.declareNamespace(prefix, uri);
+        return namespace;
+    }
+
+    /**
+     * 
+     * @param xml
+     * @param name
+     */
+    public static void removeElements(XmlElement xml, String name) {
+
+        Iterable<XmlElement> removeElements = xml.elements(null, name);
+        LinkedList<XmlElement> removeList = new LinkedList<XmlElement>();
+        for (XmlElement xmlElement : removeElements) {
+            removeList.add(xmlElement);
+        }
+        for (XmlElement xmlElement : removeList) {
+            xml.removeChild(xmlElement);
+        }
+        Iterable children = xml.children();
+        for (Object object : children) {
+            if (object instanceof XmlElement) {
+                XmlElement element = (XmlElement) object;
+                removeElements(element, name);
+            }
+        }
+    }
+
+    /**
+     * @param url
+     * @return Document
+     */
+    public static Document retrievalXMLDocFromUrl(String url) {
+        try {
+            URL xmlUrl = new URL(url);
+            InputStream in = xmlUrl.openStream();
+            Document ret = null;
+            DocumentBuilderFactory domFactory;
+            DocumentBuilder builder;
+
+            domFactory = DocumentBuilderFactory.newInstance();
+            domFactory.setValidating(false);
+            domFactory.setNamespaceAware(false);
+            builder = domFactory.newDocumentBuilder();
+
+            ret = builder.parse(in);
+
+            return ret;
+        } catch (MalformedURLException e) {
+            logger.error(e.getMessage(), e);
+        } catch (IOException e) {
+            logger.error(e.getMessage(), e);
+        } catch (ParserConfigurationException e) {
+            logger.error(e.getMessage(), e);
+        } catch (SAXException e) {
+            logger.error(e.getMessage(), e);
+        }
+
+        return null;
+    }
+
+    /**
+     * @param url
+     * @return Document
+     */
+    public static Document retrievalXMLDocForParse(String url) {
+        try {
+            URL xmlUrl = new URL(url);
+            InputStream in = xmlUrl.openStream();
+            DocumentBuilderFactory xmlFact = 
DocumentBuilderFactory.newInstance();
+            xmlFact.setNamespaceAware(true);
+            DocumentBuilder builder = xmlFact.newDocumentBuilder();
+            Document doc = builder.parse(in);
+
+            return doc;
+        } catch (MalformedURLException e) {
+            logger.error("Malformed URL", e);
+        } catch (IOException e) {
+            logger.error(e.getMessage(), e);
+        } catch (ParserConfigurationException e) {
+            logger.error(e.getMessage(), e);
+        } catch (SAXException e) {
+            logger.error(e.getMessage(), e);
+        }
+
+        return null;
+    }
+
+    public static boolean isEqual(XmlElement elem1, XmlElement elem2) throws 
Exception {
+
+            if (elem1 == null && elem2 == null) {
+                return true;
+            } else if (elem1 == null) {
+                return false;
+            } else if (elem2 == null) {
+                return false;
+            }
+
+            if (!elem1.getName().equals(elem2.getName())) {
+                return false;
+            } else {
+                // now check if children are the same
+                Iterator children1 = elem1.children().iterator();
+                Iterator children2 = elem2.children().iterator();
+
+                //check first ones for string
+                Object child1 = null;
+                Object child2 = null;
+                if (children1.hasNext() && children2.hasNext()) {
+                    child1 = children1.next();
+                    child2 = children2.next();
+
+                    if (!children1.hasNext() && !children2.hasNext()) {
+                        //only one node could be string could be xmlelement
+                        return compareObjs(child1, child2);
+                    } else {
+                          //get new iterators
+
+                        List<XmlElement> elemSet1 = 
getXmlElementsOnly(elem1.children().iterator());
+                        List<XmlElement> elemSet2 = 
getXmlElementsOnly(elem2.children().iterator());
+
+                        if(elemSet1.size() != elemSet2.size()){
+                            return false;
+                        }
+                        for(int i =0; i< elemSet1.size(); ++i){
+                            if(!isEqual(elemSet1.get(i), elemSet2.get(i))){
+                                return false;
+                            }
+                        }
+                        return true;
+                    }
+
+
+                }else {
+                    //no internal element
+
+                    return true;
+                }
+            }
+
+
+        }
+
+
+
+        private static List<XmlElement> getXmlElementsOnly(Iterator itr){
+            LinkedList<XmlElement> list = new LinkedList<XmlElement>();
+            while(itr.hasNext()){
+                Object obj = itr.next();
+                if(obj instanceof XmlElement){
+                    list.add((XmlElement) obj);
+                }
+            }
+            return  list;
+        }
+
+
+
+        private static boolean compareObjs(Object child1, Object child2) 
throws Exception {
+            if (child1 instanceof String && child2 instanceof String) {
+                return child1.equals(child2);
+
+
+            } else if (child1 instanceof XmlElement && child2 instanceof 
XmlElement) {
+                return isEqual((XmlElement) child1, (XmlElement) child2);
+            } else {
+                return false;
+            }
+        }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/c3064689/modules/workflow/workflow-core/src/main/java/org/apache/airavata/workflow/core/XmlFormatter.java
----------------------------------------------------------------------
diff --git 
a/modules/workflow/workflow-core/src/main/java/org/apache/airavata/workflow/core/XmlFormatter.java
 
b/modules/workflow/workflow-core/src/main/java/org/apache/airavata/workflow/core/XmlFormatter.java
new file mode 100644
index 0000000..d23e9b4
--- /dev/null
+++ 
b/modules/workflow/workflow-core/src/main/java/org/apache/airavata/workflow/core/XmlFormatter.java
@@ -0,0 +1,82 @@
+/*
+ *
+ * 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.workflow.core;
+
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.io.Writer;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.apache.xml.serialize.OutputFormat;
+import org.apache.xml.serialize.XMLSerializer;
+import org.w3c.dom.Document;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+/**
+ * Pretty-prints xml, supplied as a string.
+ * <p/>
+ * eg. <code>
+ * String formattedXml = new 
XmlFormatter().format("<tag><nested>hello</nested></tag>");
+ * </code>
+ */
+public class XmlFormatter {
+
+    /**
+     * @param unformattedXml
+     * @return formattedXml
+     */
+    public static String format(String unformattedXml) {
+        try {
+            final Document document = parseXmlFile(unformattedXml);
+            OutputFormat format = new OutputFormat(document);
+            format.setLineWidth(65);
+            format.setIndenting(true);
+            format.setIndent(2);
+            Writer out = new StringWriter();
+            XMLSerializer serializer = new XMLSerializer(out, format);
+            serializer.serialize(document);
+            return out.toString();
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    private static Document parseXmlFile(String in) {
+        try {
+            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+            DocumentBuilder db = dbf.newDocumentBuilder();
+            InputSource is = new InputSource(new StringReader(in));
+            return db.parse(is);
+        } catch (ParserConfigurationException e) {
+            throw new RuntimeException(e);
+        } catch (SAXException e) {
+            throw new RuntimeException(e);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/c3064689/modules/workflow/workflow-core/src/test/java/org/apache/airavata/workflow/core/XMLUtilTest.java
----------------------------------------------------------------------
diff --git 
a/modules/workflow/workflow-core/src/test/java/org/apache/airavata/workflow/core/XMLUtilTest.java
 
b/modules/workflow/workflow-core/src/test/java/org/apache/airavata/workflow/core/XMLUtilTest.java
new file mode 100644
index 0000000..c1ad0b7
--- /dev/null
+++ 
b/modules/workflow/workflow-core/src/test/java/org/apache/airavata/workflow/core/XMLUtilTest.java
@@ -0,0 +1,56 @@
+/*
+ *
+ * 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.workflow.core;
+
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+public class XMLUtilTest {
+    private final static Logger logger = 
LoggerFactory.getLogger(XMLUtilTest.class);
+
+    @Test
+    public void isXMLTest(){
+        String xml = "<test>testing</test>";
+        org.junit.Assert.assertTrue(XMLUtil.isXML(xml));
+        org.junit.Assert.assertFalse(XMLUtil.isXML("NonXMLString"));
+    }
+
+    @Test
+    public void isEqualTest(){
+        String xml1 = "<test><inner>innerValue</inner></test>";
+        String xml2 = "<test><inner>innerValue</inner></test>";
+        String xml3 = "<test1><inner>innerValue</inner></test1>";
+        try {
+            
org.junit.Assert.assertTrue(XMLUtil.isEqual(XMLUtil.stringToXmlElement(xml1), 
XMLUtil.stringToXmlElement(xml2)));
+            
org.junit.Assert.assertFalse(XMLUtil.isEqual(XMLUtil.stringToXmlElement(xml1), 
XMLUtil.stringToXmlElement(xml3)));
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+        }
+    }
+    @Test
+    public void getQNameTest(){
+        String qname = "ns1:a";
+        org.junit.Assert.assertEquals("a",XMLUtil.getLocalPartOfQName(qname));
+        org.junit.Assert.assertEquals("ns1",XMLUtil.getPrefixOfQName(qname));
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/c3064689/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index a65df09..7f7bca6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -76,7 +76,9 @@
                <surefire.version>2.18.1</surefire.version>
                <junit.version>4.12</junit.version>
                <curator.version>2.8.0</curator.version>
+<!--remove xmlbeans version -->
                <xmlbeans.version>2.5.0</xmlbeans.version>
+               <groovy.version>2.4.7</groovy.version>
                <xpp3.version>1.1.6</xpp3.version>
                <xpp5.version>1.2.8</xpp5.version>
                <xsul.version>2.10.7</xsul.version>

Reply via email to