You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2014/05/05 18:00:11 UTC

[3/7] moving common monitoring classes to gfac-core

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/utils/GFacUtils.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/utils/GFacUtils.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/utils/GFacUtils.java
deleted file mode 100644
index c8113e5..0000000
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/utils/GFacUtils.java
+++ /dev/null
@@ -1,662 +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.utils;
-
-import java.io.BufferedReader;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.InetAddress;
-import java.net.URISyntaxException;
-import java.net.UnknownHostException;
-import java.util.*;
-
-import org.apache.airavata.client.api.AiravataAPI;
-import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
-import org.apache.airavata.common.utils.StringUtil;
-import org.apache.airavata.commons.gfac.type.ActualParameter;
-import org.apache.airavata.gfac.Constants;
-import org.apache.airavata.gfac.ExecutionMode;
-import org.apache.airavata.gfac.GFacConfiguration;
-import org.apache.airavata.gfac.GFacException;
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.model.workspace.experiment.*;
-import org.apache.airavata.persistance.registry.jpa.impl.RegistryFactory;
-import org.apache.airavata.registry.api.workflow.ApplicationJob;
-import org.apache.airavata.registry.api.workflow.ApplicationJob.ApplicationJobStatus;
-import org.apache.airavata.registry.cpi.ChildDataType;
-import org.apache.airavata.registry.cpi.CompositeIdentifier;
-import org.apache.airavata.registry.cpi.Registry;
-import org.apache.airavata.schemas.gfac.*;
-import org.apache.axiom.om.OMElement;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class GFacUtils {
-    private final static Logger log = LoggerFactory.getLogger(GFacUtils.class);
-
-    private GFacUtils() {
-    }
-
-    /**
-     * Read data from inputStream and convert it to String.
-     *
-     * @param in
-     * @return String read from inputStream
-     * @throws java.io.IOException
-     */
-    public static String readFromStream(InputStream in) throws IOException {
-        try {
-            StringBuffer wsdlStr = new StringBuffer();
-
-            int read;
-
-            byte[] buf = new byte[1024];
-            while ((read = in.read(buf)) > 0) {
-                wsdlStr.append(new String(buf, 0, read));
-            }
-            return wsdlStr.toString();
-        } finally {
-            if (in != null) {
-                try {
-                    in.close();
-                } catch (IOException e) {
-                    log.warn("Cannot close InputStream: " + in.getClass().getName(), e);
-                }
-            }
-        }
-    }
-
-    /**
-     * this can be used to do framework opertaions specific to different modes
-     * @param jobExecutionContext
-     * @return
-     */
-    public static boolean isSynchronousMode(JobExecutionContext jobExecutionContext){
-        GFacConfiguration gFacConfiguration = jobExecutionContext.getGFacConfiguration();
-        if(ExecutionMode.ASYNCHRONOUS.equals(gFacConfiguration.getExecutionMode())){
-            return false;
-        }
-        return true;
-    }
-    public static String readFileToString(String file) throws FileNotFoundException, IOException {
-        BufferedReader instream = null;
-        try {
-
-            instream = new BufferedReader(new FileReader(file));
-            StringBuffer buff = new StringBuffer();
-            String temp = null;
-            while ((temp = instream.readLine()) != null) {
-                buff.append(temp);
-                buff.append(Constants.NEWLINE);
-            }
-            return buff.toString();
-        } finally {
-            if (instream != null) {
-                try {
-                    instream.close();
-                } catch (IOException e) {
-                    log.warn("Cannot close FileinputStream", e);
-                }
-            }
-        }
-    }
-
-    public static boolean isLocalHost(String appHost) throws UnknownHostException {
-        String localHost = InetAddress.getLocalHost().getCanonicalHostName();
-        return (localHost.equals(appHost) || Constants.LOCALHOST.equals(appHost) || Constants._127_0_0_1
-                .equals(appHost));
-    }
-
-    public static String createUniqueNameForService(String serviceName) {
-        String date = new Date().toString();
-        date = date.replaceAll(" ", "_");
-        date = date.replaceAll(":", "_");
-        return serviceName + "_" + date + "_" + UUID.randomUUID();
-    }
-
-
-
-
-
-    public static String createGsiftpURIAsString(String host, String localPath) throws URISyntaxException {
-        StringBuffer buf = new StringBuffer();
-        if (!host.startsWith("gsiftp://"))
-            buf.append("gsiftp://");
-        buf.append(host);
-        if (!host.endsWith("/"))
-            buf.append("/");
-        buf.append(localPath);
-        return buf.toString();
-    }
-
-    public static ActualParameter getInputActualParameter(Parameter parameter, DataObjectType element) {
-        ActualParameter actualParameter = new ActualParameter();
-        if ("String".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(StringParameterType.type);
-            if (!"".equals(element.getValue())) {
-                ((StringParameterType) actualParameter.getType()).setValue(element.getValue());
-            }  else {
-                ((StringParameterType) actualParameter.getType()).setValue("");
-            }
-        } else if ("Double".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(DoubleParameterType.type);
-            if (!"".equals(element.getValue())) {
-                ((DoubleParameterType) actualParameter.getType()).setValue(new Double(element.getValue()));
-            }
-        } else if ("Integer".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(IntegerParameterType.type);
-            if (!"".equals(element.getValue())) {
-                ((IntegerParameterType) actualParameter.getType()).setValue(new Integer(element.getValue()));
-            }
-        } else if ("Float".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(FloatParameterType.type);
-            if (!"".equals(element.getValue())) {
-                ((FloatParameterType) actualParameter.getType()).setValue(new Float(element.getValue()));
-            }
-        } else if ("Boolean".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(BooleanParameterType.type);
-            if (!"".equals(element.getValue())) {
-                ((BooleanParameterType) actualParameter.getType()).setValue(new Boolean(element.getValue()));
-            }
-        } else if ("File".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(FileParameterType.type);
-            if (!"".equals(element.getValue())) {
-                ((FileParameterType) actualParameter.getType()).setValue(element.getValue());
-            }
-        } else if ("URI".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(URIParameterType.type);
-            if (!"".equals(element.getValue())) {
-                ((URIParameterType) actualParameter.getType()).setValue(element.getValue());
-            } else {
-                ((URIParameterType) actualParameter.getType()).setValue("");
-            }
-
-        } else if ("StdOut".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(StdOutParameterType.type);
-            if (!"".equals(element.getValue())) {
-                ((StdOutParameterType) actualParameter.getType()).setValue(element.getValue());
-            } else {
-                ((StdOutParameterType) actualParameter.getType()).setValue("");
-            }
-
-        }
-        else if ("StdErr".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(StdErrParameterType.type);
-            if (!"".equals(element.getValue())) {
-                ((StdErrParameterType) actualParameter.getType()).setValue(element.getValue());
-            } else {
-                ((StdErrParameterType) actualParameter.getType()).setValue("");
-            }
-
-        }
-        return actualParameter;
-    }
-    public static ActualParameter getInputActualParameter(Parameter parameter, OMElement element) {
-        OMElement innerelement = null;
-        ActualParameter actualParameter = new ActualParameter();
-        if ("String".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(StringParameterType.type);
-            if (!"".equals(element.getText())) {
-                ((StringParameterType) actualParameter.getType()).setValue(element.getText());
-            } else if (element.getChildrenWithLocalName("value").hasNext()) {
-                innerelement = (OMElement) element.getChildrenWithLocalName("value").next();
-                ((StringParameterType) actualParameter.getType()).setValue(innerelement.getText());
-            } else {
-                ((StringParameterType) actualParameter.getType()).setValue("");
-            }
-        } else if ("Double".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(DoubleParameterType.type);
-            if (!"".equals(element.getText())) {
-                ((DoubleParameterType) actualParameter.getType()).setValue(new Double(innerelement.getText()));
-            } else {
-                innerelement = (OMElement) element.getChildrenWithLocalName("value").next();
-                ((DoubleParameterType) actualParameter.getType()).setValue(new Double(innerelement.getText()));
-            }
-        } else if ("Integer".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(IntegerParameterType.type);
-            if (!"".equals(element.getText())) {
-                ((IntegerParameterType) actualParameter.getType()).setValue(new Integer(element.getText()));
-            } else {
-                innerelement = (OMElement) element.getChildrenWithLocalName("value").next();
-                ((IntegerParameterType) actualParameter.getType()).setValue(new Integer(innerelement.getText()));
-            }
-        } else if ("Float".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(FloatParameterType.type);
-            if (!"".equals(element.getText())) {
-                ((FloatParameterType) actualParameter.getType()).setValue(new Float(element.getText()));
-            } else {
-                innerelement = (OMElement) element.getChildrenWithLocalName("value").next();
-                ((FloatParameterType) actualParameter.getType()).setValue(new Float(innerelement.getText()));
-            }
-        } else if ("Boolean".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(BooleanParameterType.type);
-            if (!"".equals(element.getText())) {
-                ((BooleanParameterType) actualParameter.getType()).setValue(new Boolean(element.getText()));
-            } else {
-                innerelement = (OMElement) element.getChildrenWithLocalName("value").next();
-                ((BooleanParameterType) actualParameter.getType()).setValue(Boolean.parseBoolean(innerelement.getText()));
-            }
-        } else if ("File".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(FileParameterType.type);
-            if (!"".equals(element.getText())) {
-                ((FileParameterType) actualParameter.getType()).setValue(element.getText());
-            } else {
-                innerelement = (OMElement) element.getChildrenWithLocalName("value").next();
-                ((FileParameterType) actualParameter.getType()).setValue(innerelement.getText());
-            }
-        } else if ("URI".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(URIParameterType.type);
-            if (!"".equals(element.getText())) {
-                ((URIParameterType) actualParameter.getType()).setValue(element.getText());
-            } else if (element.getChildrenWithLocalName("value").hasNext()) {
-                innerelement = (OMElement) element.getChildrenWithLocalName("value").next();
-                System.out.println(actualParameter.getType().toString());
-                log.debug(actualParameter.getType().toString());
-                ((URIParameterType) actualParameter.getType()).setValue(innerelement.getText());
-            } else {
-                ((URIParameterType) actualParameter.getType()).setValue("");
-            }
-        } else if ("StringArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(StringArrayType.type);
-            Iterator value = element.getChildrenWithLocalName("value");
-            int i = 0;
-            if (!"".equals(element.getText())) {
-                String[] list = StringUtil.getElementsFromString(element.getText());
-                for (String arrayValue : list) {
-                    ((StringArrayType) actualParameter.getType()).insertValue(i++, arrayValue);
-                }
-            } else {
-                while (value.hasNext()) {
-                    innerelement = (OMElement) value.next();
-                    ((StringArrayType) actualParameter.getType()).insertValue(i++, innerelement.getText());
-                }
-            }
-        } else if ("DoubleArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(DoubleArrayType.type);
-            Iterator value = element.getChildrenWithLocalName("value");
-            int i = 0;
-            if (!"".equals(element.getText())) {
-                String[] list = StringUtil.getElementsFromString(element.getText());
-                for (String arrayValue : list) {
-                    ((DoubleArrayType) actualParameter.getType()).insertValue(i++, new Double(arrayValue));
-                }
-            } else {
-                while (value.hasNext()) {
-                    innerelement = (OMElement) value.next();
-                    ((DoubleArrayType) actualParameter.getType()).insertValue(i++, new Double(innerelement.getText()));
-                }
-            }
-
-        } else if ("IntegerArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(IntegerArrayType.type);
-            Iterator value = element.getChildrenWithLocalName("value");
-            int i = 0;
-            if (!"".equals(element.getText())) {
-                String[] list = StringUtil.getElementsFromString(element.getText());
-                for (String arrayValue : list) {
-                    ((IntegerArrayType) actualParameter.getType()).insertValue(i++, new Integer(arrayValue));
-                }
-            } else {
-                while (value.hasNext()) {
-                    innerelement = (OMElement) value.next();
-                    ((IntegerArrayType) actualParameter.getType()).insertValue(i++, new Integer(innerelement.getText()));
-                }
-            }
-        } else if ("FloatArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(FloatArrayType.type);
-            Iterator value = element.getChildrenWithLocalName("value");
-            int i = 0;
-            if (!"".equals(element.getText())) {
-                String[] list = StringUtil.getElementsFromString(element.getText());
-                for (String arrayValue : list) {
-                    ((FloatArrayType) actualParameter.getType()).insertValue(i++, new Float(arrayValue));
-                }
-            } else {
-
-                while (value.hasNext()) {
-                    innerelement = (OMElement) value.next();
-                    ((FloatArrayType) actualParameter.getType()).insertValue(i++, new Float(innerelement.getText()));
-                }
-            }
-        } else if ("BooleanArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(BooleanArrayType.type);
-            Iterator value = element.getChildrenWithLocalName("value");
-            int i = 0;
-            if (!"".equals(element.getText())) {
-                String[] list = StringUtil.getElementsFromString(element.getText());
-                for (String arrayValue : list) {
-                    ((BooleanArrayType) actualParameter.getType()).insertValue(i++, new Boolean(arrayValue));
-                }
-            } else {
-
-                while (value.hasNext()) {
-                    innerelement = (OMElement) value.next();
-                    ((BooleanArrayType) actualParameter.getType()).insertValue(i++, new Boolean(innerelement.getText()));
-                }
-            }
-        } else if ("FileArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(FileArrayType.type);
-            Iterator value = element.getChildrenWithLocalName("value");
-            int i = 0;
-            if (!"".equals(element.getText())) {
-                String[] list = StringUtil.getElementsFromString(element.getText());
-                for (String arrayValue : list) {
-                    ((FileArrayType) actualParameter.getType()).insertValue(i++, arrayValue);
-                }
-            } else {
-
-                while (value.hasNext()) {
-                    innerelement = (OMElement) value.next();
-                    ((FileArrayType) actualParameter.getType()).insertValue(i++, innerelement.getText());
-                }
-            }
-        } else if ("URIArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(URIArrayType.type);
-            Iterator value = element.getChildrenWithLocalName("value");
-            int i = 0;
-            if (!"".equals(element.getText())) {
-                String[] list = StringUtil.getElementsFromString(element.getText());
-                for (String arrayValue : list) {
-                    ((URIArrayType) actualParameter.getType()).insertValue(i++, arrayValue);
-                }
-            } else {
-
-                while (value.hasNext()) {
-                    innerelement = (OMElement) value.next();
-                    ((URIArrayType) actualParameter.getType()).insertValue(i++, innerelement.getText());
-                }
-            }
-        }
-        return actualParameter;
-    }
-
-    public static ActualParameter getInputActualParameter(Parameter parameter, String inputVal) throws GFacException{
-        OMElement innerelement = null;
-        ActualParameter actualParameter = new ActualParameter();
-        if ("String".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(StringParameterType.type);
-            ((StringParameterType) actualParameter.getType()).setValue(inputVal);
-        } else if ("Double".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(DoubleParameterType.type);
-            ((DoubleParameterType) actualParameter.getType()).setValue(new Double(inputVal));
-        } else if ("Integer".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(IntegerParameterType.type);
-            ((IntegerParameterType) actualParameter.getType()).setValue(new Integer(inputVal));
-        } else if ("Float".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(FloatParameterType.type);
-            ((FloatParameterType) actualParameter.getType()).setValue(new Float(inputVal));
-        } else if ("Boolean".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(BooleanParameterType.type);
-            ((BooleanParameterType) actualParameter.getType()).setValue(new Boolean(inputVal));
-        } else if ("File".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(FileParameterType.type);
-            ((FileParameterType) actualParameter.getType()).setValue(inputVal);
-        } else if ("URI".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(URIParameterType.type);
-            ((URIParameterType) actualParameter.getType()).setValue(inputVal);
-        } else if ("StringArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(StringArrayType.type);
-            Iterator iterator = Arrays.asList(StringUtil.getElementsFromString(inputVal)).iterator();
-            int i = 0;
-            while (iterator.hasNext()) {
-                innerelement = (OMElement) iterator.next();
-                ((StringArrayType) actualParameter.getType()).insertValue(i++, innerelement.getText());
-            }
-        } else if ("DoubleArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(DoubleArrayType.type);
-            Iterator value = Arrays.asList(StringUtil.getElementsFromString(inputVal)).iterator();
-            int i = 0;
-            while (value.hasNext()) {
-                innerelement = (OMElement) value.next();
-                ((DoubleArrayType) actualParameter.getType()).insertValue(i++, new Double(innerelement.getText()));
-            }
-        } else if ("IntegerArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(IntegerArrayType.type);
-            Iterator value = Arrays.asList(StringUtil.getElementsFromString(inputVal)).iterator();
-            int i = 0;
-            while (value.hasNext()) {
-                innerelement = (OMElement) value.next();
-                ((IntegerArrayType) actualParameter.getType()).insertValue(i++, new Integer(innerelement.getText()));
-            }
-        } else if ("FloatArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(FloatArrayType.type);
-            Iterator value = Arrays.asList(StringUtil.getElementsFromString(inputVal)).iterator();
-            int i = 0;
-            while (value.hasNext()) {
-                innerelement = (OMElement) value.next();
-                ((FloatArrayType) actualParameter.getType()).insertValue(i++, new Float(innerelement.getText()));
-            }
-        } else if ("BooleanArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(BooleanArrayType.type);
-            Iterator value = Arrays.asList(StringUtil.getElementsFromString(inputVal)).iterator();
-            int i = 0;
-            while (value.hasNext()) {
-                innerelement = (OMElement) value.next();
-                ((BooleanArrayType) actualParameter.getType()).insertValue(i++, new Boolean(innerelement.getText()));
-            }
-        } else if ("FileArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(FileArrayType.type);
-            Iterator value = Arrays.asList(StringUtil.getElementsFromString(inputVal)).iterator();
-            int i = 0;
-            while (value.hasNext()) {
-                innerelement = (OMElement) value.next();
-                ((FileArrayType) actualParameter.getType()).insertValue(i++, innerelement.getText());
-            }
-        } else if ("URIArray".equals(parameter.getParameterType().getName())) {
-            actualParameter = new ActualParameter(URIArrayType.type);
-            Iterator value = Arrays.asList(StringUtil.getElementsFromString(inputVal)).iterator();
-            int i = 0;
-            while (value.hasNext()) {
-                innerelement = (OMElement) value.next();
-                ((URIArrayType) actualParameter.getType()).insertValue(i++, innerelement.getText());
-            }
-        } else{
-            throw new GFacException("Input parameters are not configured properly ");
-        }
-        return actualParameter;
-    }
-
-
-    public static ApplicationJob createApplicationJob(
-            JobExecutionContext jobExecutionContext) {
-        ApplicationJob appJob = new ApplicationJob();
-        appJob.setExperimentId((String) jobExecutionContext.getProperty(Constants.PROP_TOPIC));
-        appJob.setWorkflowExecutionId(appJob.getExperimentId());
-        appJob.setNodeId((String) jobExecutionContext.getProperty(Constants.PROP_WORKFLOW_NODE_ID));
-        appJob.setServiceDescriptionId(jobExecutionContext.getApplicationContext().getServiceDescription().getType().getName());
-        appJob.setHostDescriptionId(jobExecutionContext.getApplicationContext().getHostDescription().getType().getHostName());
-        appJob.setApplicationDescriptionId(jobExecutionContext.getApplicationContext().getApplicationDeploymentDescription().getType().getApplicationName().getStringValue());
-        return appJob;
-    }
-
-    public static void updateApplicationJobStatusUpdateTime(JobExecutionContext context, String jobId, Date statusUpdateTime) {
-        AiravataAPI airavataAPI = context.getGFacConfiguration().getAiravataAPI();
-        try {
-            airavataAPI.getProvenanceManager().updateApplicationJobStatusUpdateTime(jobId, statusUpdateTime);
-        } catch (AiravataAPIInvocationException e) {
-            log.error("Error in updating application job status time " + statusUpdateTime.toString() + " for job Id " + jobId + "!!!", e);
-        }
-    }
-
-    public static void updateApplicationJobStatus(JobExecutionContext context, String jobId, ApplicationJobStatus status, Date statusUpdateTime) {
-        AiravataAPI airavataAPI = context.getGFacConfiguration().getAiravataAPI();
-        try {
-            airavataAPI.getProvenanceManager().updateApplicationJobStatus(jobId, status, statusUpdateTime);
-        } catch (AiravataAPIInvocationException e) {
-            log.error("Error in updating application job status " + status.toString() + " for job Id " + jobId + "!!!", e);
-        }
-    }
-
-    /**
-     * Gets the job ids given experiment id.
-     *
-     * @param context      The job execution context.
-     * @param experimentId The experiment id.
-     * @return List of job ids relevant to given experiment id.
-     */
-    public static List<ApplicationJob> getJobIds(JobExecutionContext context, String experimentId) {
-
-        AiravataAPI airavataAPI = context.getGFacConfiguration().getAiravataAPI();
-        try {
-            return airavataAPI.getProvenanceManager().getApplicationJobs(experimentId, null, null);
-        } catch (AiravataAPIInvocationException e) {
-            log.error("Error retrieving application jobs for experiment id " + experimentId, e);
-        }
-
-        return new ArrayList<ApplicationJob>(0);
-    }
-
-    /**
-     * Gets the job ids given experiment id and workflow id.
-     *
-     * @param context      The job execution context.
-     * @param experimentId The experiment id.
-     * @param workflowId   The workflow id
-     * @return List of job ids relevant to given experiment id and workflow id.
-     */
-    public static List<ApplicationJob> getJobIds(JobExecutionContext context, String experimentId, String workflowId) {
-
-        AiravataAPI airavataAPI = context.getGFacConfiguration().getAiravataAPI();
-        try {
-            return airavataAPI.getProvenanceManager().getApplicationJobs(experimentId, workflowId, null);
-        } catch (AiravataAPIInvocationException e) {
-            log.error("Error retrieving application jobs for experiment id " + experimentId, " workflow id " +
-                    workflowId, e);
-        }
-
-        return new ArrayList<ApplicationJob>(0);
-    }
-
-    /**
-     * Gets the job ids given experiment id and workflow id.
-     *
-     * @param context      The job execution context.
-     * @param experimentId The experiment id.
-     * @param workflowId   The workflow id
-     * @return List of job ids relevant to given experiment id and workflow id.
-     */
-    public static List<ApplicationJob> getJobIds(JobExecutionContext context, String experimentId,
-                                                 String workflowId, String nodeId) {
-
-        AiravataAPI airavataAPI = context.getGFacConfiguration().getAiravataAPI();
-        try {
-            return airavataAPI.getProvenanceManager().getApplicationJobs(experimentId, workflowId, nodeId);
-        } catch (AiravataAPIInvocationException e) {
-            log.error("Error retrieving application jobs for experiment id " + experimentId, " workflow id " +
-                    workflowId, e);
-        }
-
-        return new ArrayList<ApplicationJob>(0);
-    }
-
-    /*public static RequestData getRequestData(Properties configurationProperties) {
-
-        RequestData requestData = new RequestData();
-
-        requestData.setMyProxyServerUrl(configurationProperties.getProperty(Constants.MYPROXY_SERVER));
-        requestData.setMyProxyUserName(configurationProperties.getProperty(Constants.MYPROXY_USER));
-        requestData.setMyProxyPassword(configurationProperties.getProperty(Constants.MYPROXY_PASS));
-
-        int lifeTime;
-        String sLife = configurationProperties.getProperty(Constants.MYPROXY_LIFE);
-        if (sLife != null) {
-            lifeTime = Integer.parseInt(sLife);
-            requestData.setMyProxyLifeTime(lifeTime);
-        } else {
-            log.info("The configuration does not specify a default life time");
-        }
-
-
-
-    }
-*/
-
-
-    public static void recordApplicationJob(JobExecutionContext context, ApplicationJob job) {
-        AiravataAPI airavataAPI = context.getGFacConfiguration().getAiravataAPI();
-        try {
-            airavataAPI.getProvenanceManager().addApplicationJob(job);
-        } catch (AiravataAPIInvocationException e) {
-            log.error("Error in persisting application job data for application job " + job.getJobId() + "!!!", e);
-        }
-    }
-    public static void saveJobStatus(JobExecutionContext jobExecutionContext, JobDetails details, JobState state) throws GFacException {
-		try {
-			Registry registry = jobExecutionContext.getRegistry();
-			JobStatus status = new JobStatus();
-			status.setJobState(state);
-        	details.setJobStatus(status);
-			registry.add(ChildDataType.JOB_DETAIL,details, new CompositeIdentifier(jobExecutionContext.getTaskData().getTaskID(), details.getJobID()));
-		} catch (Exception e) {
-			throw new GFacException("Error persisting job status" + e.getLocalizedMessage(),e);
-		}
-	}
-
-    public static void updateJobStatus(JobExecutionContext jobExecutionContext,JobDetails details, JobState state) throws GFacException {
-		try {
-            Registry registry = jobExecutionContext.getRegistry();
-			JobStatus status = new JobStatus();
-			status.setJobState(state);
-			status.setTimeOfStateChange(Calendar.getInstance().getTimeInMillis());
-        	details.setJobStatus(status);
-			registry.update(org.apache.airavata.registry.cpi.DataType.JOB_DETAIL, details, details.getJobID());
-		} catch (Exception e) {
-			throw new GFacException("Error persisting job status" + e.getLocalizedMessage(),e);
-		}
-	}
-    public static void saveErrorDetails(JobExecutionContext jobExecutionContext, String errorMessage, CorrectiveAction action, ErrorCategory errorCatogory) throws GFacException {
-    	try {
-    	Registry registry = RegistryFactory.getDefaultRegistry();
-		ErrorDetails details = new ErrorDetails();
-    	details.setActualErrorMessage(errorMessage);
-    	details.setCorrectiveAction(action);
-    	details.setActionableGroup(ActionableGroup.GATEWAYS_ADMINS);
-    	details.setCreationTime(Calendar.getInstance().getTimeInMillis());
-    	details.setErrorCategory(errorCatogory);
-    	registry.add(ChildDataType.ERROR_DETAIL, details, jobExecutionContext.getTaskData().getTaskID());
-    	} catch (Exception e) {
-			throw new GFacException("Error persisting job status" + e.getLocalizedMessage(),e);
-		}
-    }
-
-
-    public static Map<String, Object> getMessageContext(List<DataObjectType> experimentData,
-                                                        Parameter[] parameters) throws GFacException {
-        HashMap<String, Object> stringObjectHashMap = new HashMap<String, Object>();
-        Map<String,DataObjectType> map = new HashMap<String,DataObjectType>();
-        for(DataObjectType objectType : experimentData){
-        	map.put(objectType.getKey(), objectType);
-        }
-        for (int i = 0; i < parameters.length; i++) {
-        	DataObjectType input = map.get(parameters[i].getParameterName());
-            if (input != null) {
-                stringObjectHashMap.put(parameters[i].getParameterName(), GFacUtils.getInputActualParameter(parameters[i], input));
-            } else {
-                throw new GFacException("Error finding the parameter: parameter Name" + parameters[i].getParameterName());
-            }
-        }
-        return stringObjectHashMap;
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/utils/OutputUtils.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/utils/OutputUtils.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/utils/OutputUtils.java
deleted file mode 100644
index efcbcd5..0000000
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/utils/OutputUtils.java
+++ /dev/null
@@ -1,105 +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.utils;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.apache.airavata.common.utils.StringUtil;
-import org.apache.airavata.commons.gfac.type.ActualParameter;
-import org.apache.airavata.commons.gfac.type.MappingFactory;
-import org.apache.airavata.gfac.handler.GFacHandlerException;
-import org.apache.airavata.schemas.gfac.StdErrParameterType;
-import org.apache.airavata.schemas.gfac.StdOutParameterType;
-
-public class OutputUtils {
-    private static String regexPattern = "\\s*=\\s*(.*)\\r?\\n";
-
-    public static Map<String, ActualParameter> fillOutputFromStdout(Map<String, Object> output, String stdout, String stderr) throws Exception {
-
-        if (stdout == null || stdout.equals("")){
-            throw new GFacHandlerException("Standard output is empty.");
-        }
-
-        Map<String, ActualParameter> result = new HashMap<String, ActualParameter>();
-        Set<String> keys = output.keySet();
-        for (String paramName : keys) {
-        	ActualParameter actual = (ActualParameter) output.get(paramName);
-            // if parameter value is not already set, we let it go
-            
-            if (actual == null) {
-                continue;
-            }
-            if ("StdOut".equals(actual.getType().getType().toString())) {
-                ((StdOutParameterType) actual.getType()).setValue(stdout);
-                result.put(paramName, actual);
-            } else if ("StdErr".equals(actual.getType().getType().toString())) {
-                ((StdErrParameterType) actual.getType()).setValue(stderr);
-                result.put(paramName, actual);
-            }else if("URI".equals(actual.getType().getType().toString())){
-            	continue;
-            } 
-            else {
-                String parseStdout = parseStdout(stdout, paramName);
-                if (parseStdout != null) {
-                    MappingFactory.fromString(actual, parseStdout);
-                    result.put(paramName, actual);
-                }
-            }
-        }
-
-        return result;
-    }
-
-    private static String parseStdout(String stdout, String outParam) throws Exception {
-        String regex = Pattern.quote(outParam) + regexPattern;
-        String match = null;
-        Pattern pattern = Pattern.compile(regex);
-        Matcher matcher = pattern.matcher(stdout);
-        while (matcher.find()) {
-            match = matcher.group(1);
-        }
-        if (match != null) {
-            match = match.trim();
-            return match;
-        } else {
-            throw new Exception("Data for the output parameter '" + outParam + "' was not found");
-        }
-    }
-
-    public static String[] parseStdoutArray(String stdout, String outParam) throws Exception {
-        String regex = Pattern.quote(outParam) + regexPattern;
-        StringBuffer match = new StringBuffer();
-        Pattern pattern = Pattern.compile(regex);
-        Matcher matcher = pattern.matcher(stdout);
-        while (matcher.find()) {
-            match.append(matcher.group(1) + StringUtil.DELIMETER);
-        }
-        if (match != null) {
-        	return StringUtil.getElementsFromString(match.toString());
-        } else {
-            throw new Exception("Data for the output parameter '" + outParam + "' was not found");
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/GFacConfigXmlTest.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/GFacConfigXmlTest.java b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/GFacConfigXmlTest.java
index 042db95..08db750 100644
--- a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/GFacConfigXmlTest.java
+++ b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/GFacConfigXmlTest.java
@@ -26,9 +26,9 @@ import org.apache.airavata.gfac.ExecutionMode;
 import org.apache.airavata.gfac.GFacConfiguration;
 import org.apache.airavata.gfac.GFacException;
 import org.apache.airavata.gfac.Scheduler;
-import org.apache.airavata.gfac.context.ApplicationContext;
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.gfac.cpi.GFacImpl;
+import org.apache.airavata.gfac.core.context.ApplicationContext;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.cpi.GFacImpl;
 import org.apache.airavata.schemas.gfac.GsisshHostType;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestGlobalHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestGlobalHandler.java b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestGlobalHandler.java
index c245140..b699b8f 100644
--- a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestGlobalHandler.java
+++ b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestGlobalHandler.java
@@ -20,8 +20,8 @@
 */
 package org.apache.airavata.job;
 
-import org.apache.airavata.gfac.handler.AbstractHandler;
-import org.apache.airavata.gfac.handler.GFacHandlerException;
+import org.apache.airavata.gfac.core.handler.AbstractHandler;
+import org.apache.airavata.gfac.core.handler.GFacHandlerException;
 
 import java.util.Map;
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestInHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestInHandler.java b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestInHandler.java
index 1c41d8e..bc6af11 100644
--- a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestInHandler.java
+++ b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestInHandler.java
@@ -20,8 +20,8 @@
 */
 package org.apache.airavata.job;
 
-import org.apache.airavata.gfac.handler.AbstractHandler;
-import org.apache.airavata.gfac.handler.GFacHandlerException;
+import org.apache.airavata.gfac.core.handler.AbstractHandler;
+import org.apache.airavata.gfac.core.handler.GFacHandlerException;
 
 import java.util.Map;
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestOutHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestOutHandler.java b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestOutHandler.java
index 2ebf3d8..db39ada 100644
--- a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestOutHandler.java
+++ b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestOutHandler.java
@@ -20,8 +20,8 @@
 */
 package org.apache.airavata.job;
 
-import org.apache.airavata.gfac.handler.AbstractHandler;
-import org.apache.airavata.gfac.handler.GFacHandlerException;
+import org.apache.airavata.gfac.core.handler.AbstractHandler;
+import org.apache.airavata.gfac.core.handler.GFacHandlerException;
 
 import java.util.Map;
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestProvider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestProvider.java b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestProvider.java
index 3de320a..dcd7e3c 100644
--- a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestProvider.java
+++ b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestProvider.java
@@ -21,9 +21,9 @@
 package org.apache.airavata.job;
 
 import org.apache.airavata.gfac.GFacException;
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.gfac.provider.AbstractProvider;
-import org.apache.airavata.gfac.provider.GFacProviderException;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.provider.AbstractProvider;
+import org.apache.airavata.gfac.core.provider.GFacProviderException;
 
 import java.util.Map;
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestThreadedHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestThreadedHandler.java b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestThreadedHandler.java
index 08f9c33..09fd7e5 100644
--- a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestThreadedHandler.java
+++ b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestThreadedHandler.java
@@ -21,8 +21,8 @@
 package org.apache.airavata.job;
 
 import junit.framework.Assert;
-import org.apache.airavata.gfac.handler.GFacHandlerException;
-import org.apache.airavata.gfac.handler.ThreadedHandler;
+import org.apache.airavata.gfac.core.handler.GFacHandlerException;
+import org.apache.airavata.gfac.core.handler.ThreadedHandler;
 
 import java.util.Map;
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/EC2Provider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/EC2Provider.java b/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/EC2Provider.java
index 1ade760..cf8a7d2 100644
--- a/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/EC2Provider.java
+++ b/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/EC2Provider.java
@@ -33,13 +33,13 @@ import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
 import org.apache.airavata.commons.gfac.type.ActualParameter;
 import org.apache.airavata.commons.gfac.type.ApplicationDescription;
 import org.apache.airavata.gfac.GFacException;
-import org.apache.airavata.gfac.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.provider.AbstractProvider;
+import org.apache.airavata.gfac.core.provider.GFacProviderException;
+import org.apache.airavata.gfac.core.provider.utils.ProviderUtils;
+import org.apache.airavata.gfac.core.utils.GFacUtils;
 import org.apache.airavata.gfac.ec2.util.AmazonEC2Util;
 import org.apache.airavata.gfac.ec2.util.EC2ProviderUtil;
-import org.apache.airavata.gfac.provider.AbstractProvider;
-import org.apache.airavata.gfac.provider.GFacProviderException;
-import org.apache.airavata.gfac.provider.utils.ProviderUtils;
-import org.apache.airavata.gfac.utils.GFacUtils;
 import org.apache.airavata.model.workspace.experiment.JobState;
 import org.apache.airavata.schemas.gfac.ApplicationDeploymentDescriptionType;
 import org.apache.airavata.schemas.gfac.Ec2ApplicationDeploymentType;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/EC2ProviderEvent.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/EC2ProviderEvent.java b/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/EC2ProviderEvent.java
index 797461c..42241c4 100644
--- a/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/EC2ProviderEvent.java
+++ b/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/EC2ProviderEvent.java
@@ -21,7 +21,7 @@
 
 package org.apache.airavata.gfac.ec2;
 
-import org.apache.airavata.gfac.notification.events.GFacEvent;
+import org.apache.airavata.gfac.core.notification.events.GFacEvent;
 
 public class EC2ProviderEvent extends GFacEvent {
     String statusMessage;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/util/AmazonEC2Util.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/util/AmazonEC2Util.java b/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/util/AmazonEC2Util.java
index ddf0fab..81b4380 100644
--- a/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/util/AmazonEC2Util.java
+++ b/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/util/AmazonEC2Util.java
@@ -25,7 +25,7 @@ import com.amazonaws.AmazonClientException;
 import com.amazonaws.AmazonServiceException;
 import com.amazonaws.services.ec2.AmazonEC2Client;
 import com.amazonaws.services.ec2.model.*;
-import org.apache.airavata.gfac.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
 import org.apache.airavata.gfac.ec2.EC2ProviderEvent;
 
 import java.util.ArrayList;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-ec2/src/test/java/org/apache/airavata/gfac/ec2/EC2ProviderTest.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ec2/src/test/java/org/apache/airavata/gfac/ec2/EC2ProviderTest.java b/modules/gfac/gfac-ec2/src/test/java/org/apache/airavata/gfac/ec2/EC2ProviderTest.java
index 3fdf292..9b683ca 100644
--- a/modules/gfac/gfac-ec2/src/test/java/org/apache/airavata/gfac/ec2/EC2ProviderTest.java
+++ b/modules/gfac/gfac-ec2/src/test/java/org/apache/airavata/gfac/ec2/EC2ProviderTest.java
@@ -24,10 +24,10 @@ package org.apache.airavata.gfac.ec2;
 import org.apache.airavata.commons.gfac.type.*;
 import org.apache.airavata.gfac.GFacConfiguration;
 import org.apache.airavata.gfac.GFacException;
-import org.apache.airavata.gfac.context.ApplicationContext;
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.gfac.context.MessageContext;
-import org.apache.airavata.gfac.cpi.GFacImpl;
+import org.apache.airavata.gfac.core.context.ApplicationContext;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.MessageContext;
+import org.apache.airavata.gfac.core.cpi.GFacImpl;
 import org.apache.airavata.schemas.gfac.*;
 import org.junit.Assert;
 import org.junit.Before;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-ec2/src/test/resources/gfac-config.xml
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ec2/src/test/resources/gfac-config.xml b/modules/gfac/gfac-ec2/src/test/resources/gfac-config.xml
index fec698b..d2b53c4 100644
--- a/modules/gfac/gfac-ec2/src/test/resources/gfac-config.xml
+++ b/modules/gfac/gfac-ec2/src/test/resources/gfac-config.xml
@@ -13,7 +13,7 @@
 <GFac>
     <GlobalHandlers>
         <InHandlers>
-            <Handler class="org.apache.airavata.gfac.handler.AppDescriptorCheckHandler">
+            <Handler class="org.apache.airavata.gfac.core.handler.AppDescriptorCheckHandler">
                     <property name="name" value="value"/>
             </Handler>
         </InHandlers>

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GramDirectorySetupHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GramDirectorySetupHandler.java b/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GramDirectorySetupHandler.java
index 76fa2db..bd817db 100644
--- a/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GramDirectorySetupHandler.java
+++ b/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GramDirectorySetupHandler.java
@@ -27,13 +27,13 @@ import java.util.Map;
 import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.commons.gfac.type.ApplicationDescription;
 import org.apache.airavata.gfac.GFacException;
-import org.apache.airavata.gfac.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.handler.AbstractHandler;
+import org.apache.airavata.gfac.core.handler.GFacHandlerException;
+import org.apache.airavata.gfac.core.utils.GFacUtils;
 import org.apache.airavata.gfac.gram.security.GSISecurityContext;
 import org.apache.airavata.gfac.gram.external.GridFtp;
 import org.apache.airavata.gfac.gram.util.GramProviderUtils;
-import org.apache.airavata.gfac.handler.AbstractHandler;
-import org.apache.airavata.gfac.handler.GFacHandlerException;
-import org.apache.airavata.gfac.utils.GFacUtils;
 import org.apache.airavata.model.workspace.experiment.CorrectiveAction;
 import org.apache.airavata.model.workspace.experiment.DataTransferDetails;
 import org.apache.airavata.model.workspace.experiment.ErrorCategory;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GridFTPInputHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GridFTPInputHandler.java b/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GridFTPInputHandler.java
index 9844e6a..0d87292 100644
--- a/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GridFTPInputHandler.java
+++ b/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GridFTPInputHandler.java
@@ -38,15 +38,15 @@ import org.apache.airavata.commons.gfac.type.ActualParameter;
 import org.apache.airavata.commons.gfac.type.MappingFactory;
 import org.apache.airavata.gfac.GFacException;
 import org.apache.airavata.gfac.ToolsException;
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.gfac.context.MessageContext;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.MessageContext;
+import org.apache.airavata.gfac.core.utils.GFacUtils;
 import org.apache.airavata.gfac.gram.security.GSISecurityContext;
 import org.apache.airavata.gfac.gram.external.GridFtp;
 import org.apache.airavata.gfac.gram.util.GramProviderUtils;
-import org.apache.airavata.gfac.handler.AbstractHandler;
-import org.apache.airavata.gfac.handler.AppDescriptorCheckHandler;
-import org.apache.airavata.gfac.handler.GFacHandlerException;
-import org.apache.airavata.gfac.utils.GFacUtils;
+import org.apache.airavata.gfac.core.handler.AbstractHandler;
+import org.apache.airavata.gfac.core.handler.AppDescriptorCheckHandler;
+import org.apache.airavata.gfac.core.handler.GFacHandlerException;
 import org.apache.airavata.model.workspace.experiment.CorrectiveAction;
 import org.apache.airavata.model.workspace.experiment.DataTransferDetails;
 import org.apache.airavata.model.workspace.experiment.ErrorCategory;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GridFTPOutputHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GridFTPOutputHandler.java b/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GridFTPOutputHandler.java
index e867b2b..5f61335 100644
--- a/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GridFTPOutputHandler.java
+++ b/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/handler/GridFTPOutputHandler.java
@@ -42,16 +42,16 @@ import org.apache.airavata.commons.gfac.type.ApplicationDescription;
 import org.apache.airavata.commons.gfac.type.MappingFactory;
 import org.apache.airavata.gfac.GFacException;
 import org.apache.airavata.gfac.ToolsException;
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.gfac.context.MessageContext;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.MessageContext;
+import org.apache.airavata.gfac.core.handler.AbstractHandler;
+import org.apache.airavata.gfac.core.handler.GFacHandlerException;
+import org.apache.airavata.gfac.core.provider.GFacProviderException;
+import org.apache.airavata.gfac.core.utils.GFacUtils;
+import org.apache.airavata.gfac.core.utils.OutputUtils;
 import org.apache.airavata.gfac.gram.security.GSISecurityContext;
 import org.apache.airavata.gfac.gram.external.GridFtp;
 import org.apache.airavata.gfac.gram.util.GramProviderUtils;
-import org.apache.airavata.gfac.handler.AbstractHandler;
-import org.apache.airavata.gfac.handler.GFacHandlerException;
-import org.apache.airavata.gfac.provider.GFacProviderException;
-import org.apache.airavata.gfac.utils.GFacUtils;
-import org.apache.airavata.gfac.utils.OutputUtils;
 import org.apache.airavata.model.workspace.experiment.CorrectiveAction;
 import org.apache.airavata.model.workspace.experiment.DataTransferDetails;
 import org.apache.airavata.model.workspace.experiment.ErrorCategory;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/persistence/DBJobPersistenceManager.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/persistence/DBJobPersistenceManager.java b/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/persistence/DBJobPersistenceManager.java
index 68e7f48..67ba1a5 100644
--- a/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/persistence/DBJobPersistenceManager.java
+++ b/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/persistence/DBJobPersistenceManager.java
@@ -23,8 +23,8 @@ package org.apache.airavata.gfac.gram.persistence;
 
 import org.apache.airavata.common.utils.DBUtil;
 import org.apache.airavata.gfac.GFacException;
-import org.apache.airavata.gfac.persistence.JobData;
-import org.apache.airavata.gfac.persistence.JobPersistenceManager;
+import org.apache.airavata.gfac.core.persistence.JobData;
+import org.apache.airavata.gfac.core.persistence.JobPersistenceManager;
 import org.apache.log4j.Logger;
 import org.globus.gram.internal.GRAMConstants;
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/provider/impl/GramProvider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/provider/impl/GramProvider.java b/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/provider/impl/GramProvider.java
index 03c3fee..71d5a6b 100644
--- a/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/provider/impl/GramProvider.java
+++ b/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/provider/impl/GramProvider.java
@@ -33,15 +33,15 @@ import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.common.utils.ServerSettings;
 import org.apache.airavata.gfac.GFacException;
 import org.apache.airavata.gfac.JobSubmissionFault;
-import org.apache.airavata.gfac.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.notification.events.JobIDEvent;
+import org.apache.airavata.gfac.core.notification.events.StartExecutionEvent;
+import org.apache.airavata.gfac.core.provider.AbstractProvider;
+import org.apache.airavata.gfac.core.provider.GFacProviderException;
+import org.apache.airavata.gfac.core.utils.GFacUtils;
 import org.apache.airavata.gfac.gram.security.GSISecurityContext;
 import org.apache.airavata.gfac.gram.util.GramJobSubmissionListener;
 import org.apache.airavata.gfac.gram.util.GramProviderUtils;
-import org.apache.airavata.gfac.notification.events.JobIDEvent;
-import org.apache.airavata.gfac.notification.events.StartExecutionEvent;
-import org.apache.airavata.gfac.provider.AbstractProvider;
-import org.apache.airavata.gfac.provider.GFacProviderException;
-import org.apache.airavata.gfac.utils.GFacUtils;
 import org.apache.airavata.model.workspace.experiment.CorrectiveAction;
 import org.apache.airavata.model.workspace.experiment.ErrorCategory;
 import org.apache.airavata.model.workspace.experiment.JobState;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/util/GramJobSubmissionListener.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/util/GramJobSubmissionListener.java b/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/util/GramJobSubmissionListener.java
index d91ae08..782eee2 100644
--- a/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/util/GramJobSubmissionListener.java
+++ b/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/util/GramJobSubmissionListener.java
@@ -21,10 +21,10 @@
 package org.apache.airavata.gfac.gram.util;
 
 import org.apache.airavata.gfac.GFacException;
-import org.apache.airavata.gfac.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.notification.events.StatusChangeEvent;
+import org.apache.airavata.gfac.core.utils.GFacUtils;
 import org.apache.airavata.gfac.gram.security.GSISecurityContext;
-import org.apache.airavata.gfac.notification.events.StatusChangeEvent;
-import org.apache.airavata.gfac.utils.GFacUtils;
 import org.globus.gram.GramJob;
 import org.globus.gram.GramJobListener;
 import org.ietf.jgss.GSSCredential;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/util/GramProviderUtils.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/util/GramProviderUtils.java b/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/util/GramProviderUtils.java
index 74bb674..8dfe78f 100644
--- a/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/util/GramProviderUtils.java
+++ b/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/util/GramProviderUtils.java
@@ -21,8 +21,8 @@
 package org.apache.airavata.gfac.gram.util;
 
 import org.apache.airavata.gfac.ToolsException;
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.gfac.provider.GFacProviderException;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.provider.GFacProviderException;
 import org.apache.airavata.model.workspace.experiment.JobState;
 import org.globus.gram.GramAttributes;
 import org.globus.gram.GramJob;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/util/GramRSLGenerator.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/util/GramRSLGenerator.java b/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/util/GramRSLGenerator.java
index f8a7502..8ec4cc8 100644
--- a/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/util/GramRSLGenerator.java
+++ b/modules/gfac/gfac-gram/src/main/java/org/apache/airavata/gfac/gram/util/GramRSLGenerator.java
@@ -25,9 +25,9 @@ import org.apache.airavata.commons.gfac.type.ActualParameter;
 import org.apache.airavata.commons.gfac.type.MappingFactory;
 import org.apache.airavata.gfac.Constants;
 import org.apache.airavata.gfac.ToolsException;
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.gfac.context.MessageContext;
-import org.apache.airavata.gfac.provider.GFacProviderException;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.MessageContext;
+import org.apache.airavata.gfac.core.provider.GFacProviderException;
 import org.apache.airavata.model.workspace.experiment.ComputationalResourceScheduling;
 import org.apache.airavata.model.workspace.experiment.TaskDetails;
 import org.apache.airavata.schemas.gfac.*;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-gram/src/test/java/org/apache/airavata/core/gfac/services/impl/GramProviderTestWithMyProxyAuth.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gram/src/test/java/org/apache/airavata/core/gfac/services/impl/GramProviderTestWithMyProxyAuth.java b/modules/gfac/gfac-gram/src/test/java/org/apache/airavata/core/gfac/services/impl/GramProviderTestWithMyProxyAuth.java
index 4fa945e..10a7110 100644
--- a/modules/gfac/gfac-gram/src/test/java/org/apache/airavata/core/gfac/services/impl/GramProviderTestWithMyProxyAuth.java
+++ b/modules/gfac/gfac-gram/src/test/java/org/apache/airavata/core/gfac/services/impl/GramProviderTestWithMyProxyAuth.java
@@ -34,11 +34,11 @@ import org.apache.airavata.commons.gfac.type.MappingFactory;
 import org.apache.airavata.commons.gfac.type.ServiceDescription;
 import org.apache.airavata.gfac.GFacConfiguration;
 import org.apache.airavata.gfac.GFacException;
-import org.apache.airavata.gfac.context.ApplicationContext;
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.gfac.context.MessageContext;
+import org.apache.airavata.gfac.core.context.ApplicationContext;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.MessageContext;
+import org.apache.airavata.gfac.core.cpi.GFacImpl;
 import org.apache.airavata.gfac.gram.security.GSISecurityContext;
-import org.apache.airavata.gfac.cpi.GFacImpl;
 import org.apache.airavata.schemas.gfac.ApplicationDeploymentDescriptionType;
 import org.apache.airavata.schemas.gfac.GlobusHostType;
 import org.apache.airavata.schemas.gfac.HpcApplicationDeploymentType;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-gram/src/test/resources/gfac-config.xml
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gram/src/test/resources/gfac-config.xml b/modules/gfac/gfac-gram/src/test/resources/gfac-config.xml
index ad1305e..7d8ed76 100644
--- a/modules/gfac/gfac-gram/src/test/resources/gfac-config.xml
+++ b/modules/gfac/gfac-gram/src/test/resources/gfac-config.xml
@@ -13,7 +13,7 @@
 <GFac>
     <GlobalHandlers>
         <InHandlers>
-            <Handler class="org.apache.airavata.gfac.handler.AppDescriptorCheckHandler">
+            <Handler class="org.apache.airavata.gfac.core.handler.AppDescriptorCheckHandler">
                     <property name="name" value="value"/>
             </Handler>
         </InHandlers>

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHDirectorySetupHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHDirectorySetupHandler.java b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHDirectorySetupHandler.java
index 0f9e7fc..d447e69 100644
--- a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHDirectorySetupHandler.java
+++ b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHDirectorySetupHandler.java
@@ -22,12 +22,12 @@ package org.apache.airavata.gfac.gsissh.handler;
 
 import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.gfac.GFacException;
-import org.apache.airavata.gfac.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.handler.AbstractHandler;
+import org.apache.airavata.gfac.core.handler.GFacHandlerException;
+import org.apache.airavata.gfac.core.utils.GFacUtils;
 import org.apache.airavata.gfac.gsissh.security.GSISecurityContext;
 import org.apache.airavata.gfac.gsissh.util.GFACGSISSHUtils;
-import org.apache.airavata.gfac.handler.AbstractHandler;
-import org.apache.airavata.gfac.handler.GFacHandlerException;
-import org.apache.airavata.gfac.utils.GFacUtils;
 import org.apache.airavata.gsi.ssh.api.Cluster;
 import org.apache.airavata.gsi.ssh.api.SSHApiException;
 import org.apache.airavata.model.workspace.experiment.*;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java
index ce9102a..da03a9b 100644
--- a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java
+++ b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java
@@ -25,13 +25,13 @@ import org.apache.airavata.common.utils.StringUtil;
 import org.apache.airavata.commons.gfac.type.ActualParameter;
 import org.apache.airavata.commons.gfac.type.MappingFactory;
 import org.apache.airavata.gfac.GFacException;
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.gfac.context.MessageContext;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.MessageContext;
+import org.apache.airavata.gfac.core.handler.AbstractHandler;
+import org.apache.airavata.gfac.core.handler.GFacHandlerException;
+import org.apache.airavata.gfac.core.utils.GFacUtils;
 import org.apache.airavata.gfac.gsissh.security.GSISecurityContext;
 import org.apache.airavata.gfac.gsissh.util.GFACGSISSHUtils;
-import org.apache.airavata.gfac.handler.AbstractHandler;
-import org.apache.airavata.gfac.handler.GFacHandlerException;
-import org.apache.airavata.gfac.utils.GFacUtils;
 import org.apache.airavata.gsi.ssh.api.Cluster;
 import org.apache.airavata.gsi.ssh.api.SSHApiException;
 import org.apache.airavata.model.workspace.experiment.*;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java
index 41932d9..aefa80f 100644
--- a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java
+++ b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java
@@ -27,14 +27,14 @@ import org.apache.airavata.common.utils.Constants;
 import org.apache.airavata.commons.gfac.type.ActualParameter;
 import org.apache.airavata.commons.gfac.type.ApplicationDescription;
 import org.apache.airavata.gfac.GFacException;
-import org.apache.airavata.gfac.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.handler.AbstractHandler;
+import org.apache.airavata.gfac.core.handler.GFacHandlerException;
+import org.apache.airavata.gfac.core.provider.GFacProviderException;
+import org.apache.airavata.gfac.core.utils.GFacUtils;
+import org.apache.airavata.gfac.core.utils.OutputUtils;
 import org.apache.airavata.gfac.gsissh.security.GSISecurityContext;
 import org.apache.airavata.gfac.gsissh.util.GFACGSISSHUtils;
-import org.apache.airavata.gfac.handler.AbstractHandler;
-import org.apache.airavata.gfac.handler.GFacHandlerException;
-import org.apache.airavata.gfac.provider.GFacProviderException;
-import org.apache.airavata.gfac.utils.GFacUtils;
-import org.apache.airavata.gfac.utils.OutputUtils;
 import org.apache.airavata.gsi.ssh.api.Cluster;
 import org.apache.airavata.gsi.ssh.api.job.JobDescriptor;
 import org.apache.airavata.model.workspace.experiment.*;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java
index abca9d9..9e66b71 100644
--- a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java
+++ b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java
@@ -21,15 +21,15 @@
 package org.apache.airavata.gfac.gsissh.provider.impl;
 
 import org.apache.airavata.gfac.GFacException;
-import org.apache.airavata.gfac.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.cpi.GFacImpl;
+import org.apache.airavata.gfac.core.handler.ThreadedHandler;
+import org.apache.airavata.gfac.core.notification.events.StartExecutionEvent;
+import org.apache.airavata.gfac.core.provider.AbstractProvider;
+import org.apache.airavata.gfac.core.provider.GFacProviderException;
+import org.apache.airavata.gfac.core.utils.GFacUtils;
 import org.apache.airavata.gfac.gsissh.security.GSISecurityContext;
-import org.apache.airavata.gfac.cpi.GFacImpl;
 import org.apache.airavata.gfac.gsissh.util.GFACGSISSHUtils;
-import org.apache.airavata.gfac.handler.ThreadedHandler;
-import org.apache.airavata.gfac.notification.events.StartExecutionEvent;
-import org.apache.airavata.gfac.provider.AbstractProvider;
-import org.apache.airavata.gfac.provider.GFacProviderException;
-import org.apache.airavata.gfac.utils.GFacUtils;
 import org.apache.airavata.gsi.ssh.api.Cluster;
 import org.apache.airavata.gsi.ssh.api.SSHApiException;
 import org.apache.airavata.gsi.ssh.api.job.JobDescriptor;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/util/GFACGSISSHUtils.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/util/GFACGSISSHUtils.java b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/util/GFACGSISSHUtils.java
index 2c4c956..ac70bec 100644
--- a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/util/GFACGSISSHUtils.java
+++ b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/util/GFACGSISSHUtils.java
@@ -28,8 +28,8 @@ import org.apache.airavata.commons.gfac.type.MappingFactory;
 import org.apache.airavata.gfac.Constants;
 import org.apache.airavata.gfac.GFacException;
 import org.apache.airavata.gfac.RequestData;
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.gfac.context.MessageContext;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.MessageContext;
 import org.apache.airavata.gfac.gsissh.security.GSISecurityContext;
 import org.apache.airavata.gsi.ssh.api.Cluster;
 import org.apache.airavata.gsi.ssh.api.SSHApiException;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-gsissh/src/test/java/org/apache/airavata/core/gfac/services/impl/GSISSHProviderTestWithMyProxyAuth.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gsissh/src/test/java/org/apache/airavata/core/gfac/services/impl/GSISSHProviderTestWithMyProxyAuth.java b/modules/gfac/gfac-gsissh/src/test/java/org/apache/airavata/core/gfac/services/impl/GSISSHProviderTestWithMyProxyAuth.java
index 162c2d2..4f9fd16 100644
--- a/modules/gfac/gfac-gsissh/src/test/java/org/apache/airavata/core/gfac/services/impl/GSISSHProviderTestWithMyProxyAuth.java
+++ b/modules/gfac/gfac-gsissh/src/test/java/org/apache/airavata/core/gfac/services/impl/GSISSHProviderTestWithMyProxyAuth.java
@@ -34,11 +34,11 @@ import org.apache.airavata.commons.gfac.type.ServiceDescription;
 import org.apache.airavata.gfac.GFacConfiguration;
 import org.apache.airavata.gfac.GFacException;
 import org.apache.airavata.gfac.SecurityContext;
-import org.apache.airavata.gfac.context.ApplicationContext;
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.gfac.context.MessageContext;
+import org.apache.airavata.gfac.core.context.ApplicationContext;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.MessageContext;
+import org.apache.airavata.gfac.core.cpi.GFacImpl;
 import org.apache.airavata.gfac.gsissh.security.GSISecurityContext;
-import org.apache.airavata.gfac.cpi.GFacImpl;
 import org.apache.airavata.gsi.ssh.api.Cluster;
 import org.apache.airavata.gsi.ssh.api.SSHApiException;
 import org.apache.airavata.gsi.ssh.api.ServerInfo;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-gsissh/src/test/resources/gfac-config.xml
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gsissh/src/test/resources/gfac-config.xml b/modules/gfac/gfac-gsissh/src/test/resources/gfac-config.xml
index 759af93..4a9d1ad 100644
--- a/modules/gfac/gfac-gsissh/src/test/resources/gfac-config.xml
+++ b/modules/gfac/gfac-gsissh/src/test/resources/gfac-config.xml
@@ -13,7 +13,7 @@
 <GFac>
     <GlobalHandlers>
         <InHandlers>
-            <Handler class="org.apache.airavata.gfac.handler.AppDescriptorCheckHandler">
+            <Handler class="org.apache.airavata.gfac.core.handler.AppDescriptorCheckHandler">
                     <property name="name" value="value"/>
             </Handler>
         </InHandlers>

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/handler/HDFSDataMovementHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/handler/HDFSDataMovementHandler.java b/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/handler/HDFSDataMovementHandler.java
index f54b7a5..299be48 100644
--- a/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/handler/HDFSDataMovementHandler.java
+++ b/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/handler/HDFSDataMovementHandler.java
@@ -21,11 +21,11 @@
 
 package org.apache.airavata.gfac.hadoop.handler;
 
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.gfac.context.MessageContext;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.MessageContext;
+import org.apache.airavata.gfac.core.handler.GFacHandler;
+import org.apache.airavata.gfac.core.handler.GFacHandlerException;
 import org.apache.airavata.gfac.hadoop.provider.utils.HadoopUtils;
-import org.apache.airavata.gfac.handler.GFacHandler;
-import org.apache.airavata.gfac.handler.GFacHandlerException;
 import org.apache.airavata.schemas.gfac.ApplicationDeploymentDescriptionType;
 import org.apache.airavata.schemas.gfac.HadoopApplicationDeploymentDescriptionType;
 import org.apache.commons.io.FileUtils;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/handler/HadoopDeploymentHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/handler/HadoopDeploymentHandler.java b/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/handler/HadoopDeploymentHandler.java
index 24e0e9a..69c3087 100644
--- a/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/handler/HadoopDeploymentHandler.java
+++ b/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/handler/HadoopDeploymentHandler.java
@@ -23,10 +23,10 @@ package org.apache.airavata.gfac.hadoop.handler;
 
 import com.google.common.io.Files;
 import org.apache.airavata.commons.gfac.type.HostDescription;
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.gfac.context.MessageContext;
-import org.apache.airavata.gfac.handler.GFacHandler;
-import org.apache.airavata.gfac.handler.GFacHandlerException;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.MessageContext;
+import org.apache.airavata.gfac.core.handler.GFacHandler;
+import org.apache.airavata.gfac.core.handler.GFacHandlerException;
 import org.apache.airavata.schemas.gfac.HadoopHostType;
 import org.apache.commons.configuration.CompositeConfiguration;
 import org.apache.commons.configuration.Configuration;
@@ -75,7 +75,7 @@ public class HadoopDeploymentHandler implements GFacHandler {
      *
      * @param jobExecutionContext job execution context containing all the required configurations
      *                            and runtime information.
-     * @throws org.apache.airavata.gfac.handler.GFacHandlerException
+     * @throws org.apache.airavata.gfac.core.handler.GFacHandlerException
      */
     public void invoke(JobExecutionContext jobExecutionContext) throws GFacHandlerException {
         if(jobExecutionContext.isInPath()){

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/provider/impl/HadoopProvider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/provider/impl/HadoopProvider.java b/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/provider/impl/HadoopProvider.java
index f0eb06b..6543c01 100644
--- a/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/provider/impl/HadoopProvider.java
+++ b/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/provider/impl/HadoopProvider.java
@@ -29,11 +29,11 @@ import java.util.Map;
 
 import org.apache.airavata.commons.gfac.type.ActualParameter;
 import org.apache.airavata.gfac.GFacException;
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.gfac.context.MessageContext;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.MessageContext;
+import org.apache.airavata.gfac.core.provider.AbstractProvider;
+import org.apache.airavata.gfac.core.provider.GFacProviderException;
 import org.apache.airavata.gfac.hadoop.provider.utils.HadoopUtils;
-import org.apache.airavata.gfac.provider.AbstractProvider;
-import org.apache.airavata.gfac.provider.GFacProviderException;
 import org.apache.airavata.schemas.gfac.HadoopApplicationDeploymentDescriptionType;
 import org.apache.airavata.schemas.gfac.OutputParameterType;
 import org.apache.airavata.schemas.gfac.StringParameterType;

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/provider/utils/HadoopUtils.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/provider/utils/HadoopUtils.java b/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/provider/utils/HadoopUtils.java
index 2947fc3..9d46446 100644
--- a/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/provider/utils/HadoopUtils.java
+++ b/modules/gfac/gfac-hadoop/src/main/java/org/apache/airavata/gfac/hadoop/provider/utils/HadoopUtils.java
@@ -21,8 +21,8 @@
 
 package org.apache.airavata.gfac.hadoop.provider.utils;
 
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.gfac.context.MessageContext;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.MessageContext;
 import org.apache.commons.io.FileUtils;
 import org.apache.hadoop.conf.Configuration;
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-hadoop/src/test/resources/gfac-config.xml
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-hadoop/src/test/resources/gfac-config.xml b/modules/gfac/gfac-hadoop/src/test/resources/gfac-config.xml
index 9c4774c..4c6484d 100644
--- a/modules/gfac/gfac-hadoop/src/test/resources/gfac-config.xml
+++ b/modules/gfac/gfac-hadoop/src/test/resources/gfac-config.xml
@@ -13,7 +13,7 @@
 <GFac>
     <GlobalHandlers>
         <InHandlers>
-            <Handler class="org.apache.airavata.gfac.handler.AppDescriptorCheckHandler">
+            <Handler class="org.apache.airavata.gfac.core.handler.AppDescriptorCheckHandler">
                     <property name="name" value="value"/>
             </Handler>
         </InHandlers>

http://git-wip-us.apache.org/repos/asf/airavata/blob/39370c52/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/handler/LocalDirectorySetupHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/handler/LocalDirectorySetupHandler.java b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/handler/LocalDirectorySetupHandler.java
index 81493fb..f145308 100644
--- a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/handler/LocalDirectorySetupHandler.java
+++ b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/handler/LocalDirectorySetupHandler.java
@@ -21,9 +21,9 @@
 package org.apache.airavata.gfac.local.handler;
 
 import org.apache.airavata.commons.gfac.type.ApplicationDescription;
-import org.apache.airavata.gfac.context.JobExecutionContext;
-import org.apache.airavata.gfac.handler.GFacHandler;
-import org.apache.airavata.gfac.handler.GFacHandlerException;
+import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.handler.GFacHandler;
+import org.apache.airavata.gfac.core.handler.GFacHandlerException;
 import org.apache.airavata.schemas.gfac.ApplicationDeploymentDescriptionType;
 import org.apache.airavata.schemas.gfac.HostDescriptionType;
 import org.slf4j.Logger;