You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sa...@apache.org on 2014/07/12 00:21:29 UTC

[16/20] updating xbaya gui to the new airavata

http://git-wip-us.apache.org/repos/asf/airavata/blob/3e6c815a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/WorkflowInterpretorSkeleton.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/WorkflowInterpretorSkeleton.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/WorkflowInterpretorSkeleton.java
index 5f9420c..3efc49d 100644
--- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/WorkflowInterpretorSkeleton.java
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/WorkflowInterpretorSkeleton.java
@@ -1,572 +1,571 @@
-/*
- *
- * 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.xbaya.interpretor;
-
-import org.apache.airavata.client.AiravataAPIFactory;
-import org.apache.airavata.client.api.AiravataAPI;
-import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
-import org.apache.airavata.client.api.exception.DescriptorAlreadyExistsException;
-import org.apache.airavata.client.stub.interpretor.NameValue;
-import org.apache.airavata.client.tools.PeriodicExecutorThread;
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.common.utils.AiravataUtils;
-import org.apache.airavata.common.utils.ServerSettings;
-import org.apache.airavata.common.utils.ServiceUtils;
-import org.apache.airavata.common.workflow.execution.context.WorkflowContextHeaderBuilder;
-import org.apache.airavata.commons.gfac.type.HostDescription;
-import org.apache.airavata.schemas.gfac.GlobusHostType;
-import org.apache.airavata.schemas.gfac.GsisshHostType;
-import org.apache.airavata.schemas.gfac.SSHHostType;
-import org.apache.airavata.schemas.wec.ContextHeaderDocument;
-import org.apache.airavata.workflow.model.component.ComponentException;
-import org.apache.airavata.workflow.model.exceptions.WorkflowRuntimeException;
-import org.apache.airavata.workflow.model.graph.GraphException;
-import org.apache.airavata.workflow.model.graph.system.InputNode;
-import org.apache.airavata.workflow.model.ode.ODEClient;
-import org.apache.airavata.workflow.model.wf.Workflow;
-import org.apache.airavata.workflow.model.wf.WorkflowExecutionState;
-import org.apache.airavata.ws.monitor.MonitorException;
-import org.apache.airavata.xbaya.XBayaConfiguration;
-import org.apache.airavata.xbaya.XBayaConstants;
-import org.apache.airavata.xbaya.concurrent.PredicatedTaskRunner;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.axiom.om.impl.llom.util.AXIOMUtil;
-import org.apache.axiom.soap.SOAPHeader;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.description.AxisService;
-import org.apache.axis2.engine.ServiceLifeCycle;
-import org.apache.xmlbeans.XmlException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.*;
-//import org.apache.airavata.registry.api.AiravataRegistry2;
-
-/**
- * WorkflowInterpretorSkeleton java skeleton for the axisService
- */
-public class WorkflowInterpretorSkeleton implements ServiceLifeCycle {
-    private static final Logger log = LoggerFactory.getLogger(WorkflowInterpretorSkeleton.class);
-
-//	public static final String PROXYSERVER = "myproxy.url";
-	public static final String MSGBOX = "msgbox";
-	public static final String GFAC = "gfac";
-	public static final String BROKER = "broker";
-    public static final String MYPROXY_USER = "myproxy.user";
-    public static final String MYPROXY_PASS = "myproxy.pass";
-    public static final String MYPROXY_SERVER = "myproxy.server";
-    public static final String MYPROXY_LIFETIME = "myproxy.life";
-    public static final String TRUSTED_CERT_LOCATION = "trusted.cert.location";
-
-    public static boolean provenance = false;
-    public static final String PROVENANCE = "provenance";
-    public static  String systemUserName = "";
-    public static  String systemUserPW = "";
-    public static boolean runInThread = false;
-    public static final String RUN_IN_THREAD = "runInThread";
-    public static  Boolean gfacEmbeddedMode = true;
-    private static PredicatedTaskRunner runner = null;
-//    public static  JCRComponentRegistry jcrComponentRegistry = null;
-    private static AiravataAPI airavataAPI=null;
-    public static int provenanceWriterThreadPoolSize = 1;
-    public static final String PROVENANCE_WRITER_THREAD_POOL_SIZE = "provenanceWriterThreadPoolSize";
-    public static final int JCR_AVAIALABILITY_WAIT_INTERVAL = 1000 * 10;
-    public static final String GFAC_EMBEDDED = "gfac.embedded";
-    public static  ConfigurationContext configurationContext;
-    public static final String SERVICE_NAME="WorkflowInterpretor";
-    public static boolean notInterrupted = true;
-    public Map<String, WorkflowInterpreterConfiguration> workflowConfigurations=new HashMap<String, WorkflowInterpreterConfiguration>();
-    private WorkflowInterpreterInteractor interactor;
-    private String gateway;
-
-	protected static final String SERVICE_URL = "interpreter_service_url";
-
-	protected static final String JCR_REG = "jcr_registry";
-
-	protected WIServiceThread thread;
-
-    private AiravataAPI getAiravataAPI(){
-        if (airavataAPI==null) {
-			try {
-				systemUserName = ServerSettings.getSystemUser();
-				systemUserPW = ServerSettings.getSystemUserPassword();
-				gateway = ServerSettings.getSystemUserGateway();
-				airavataAPI = AiravataAPIFactory.getAPI(gateway, systemUserName);
-			} catch (ApplicationSettingsException e) {
-				log.error("Unable to read the properties file", e);
-			} catch (AiravataAPIInvocationException e) {
-				log.error("Unable to create Airavata API", e);
-			}
-		}
-		return airavataAPI;
-    }
-
-    private WorkflowInterpreterInteractor getInteractor(){
-    	if (interactor==null){
-        	interactor=new SSWorkflowInterpreterInteractorImpl();
-    	}
-    	return interactor;
-    }
-
-    public void startUp(final ConfigurationContext configctx, AxisService service) {
-    	AiravataUtils.setExecutionAsServer();
-    	new Thread(){
-			@Override
-    		public void run() {
-    			try {
-					Thread.sleep(JCR_AVAIALABILITY_WAIT_INTERVAL);
-				} catch (InterruptedException e1) {
-					e1.printStackTrace();
-				}
-		        try {
-                    // Airavata deployer have to configure these properties,but if user send them alone the incoming message
-                    // We are overwriting those values only for that particular request
-		            configctx.setProperty(MYPROXY_PASS, ServerSettings.getSetting(MYPROXY_PASS));
-		            configctx.setProperty(MYPROXY_USER, ServerSettings.getSetting(MYPROXY_USER));
-		            configctx.setProperty(MYPROXY_LIFETIME,ServerSettings.getSetting(MYPROXY_LIFETIME));
-                    configctx.setProperty(TRUSTED_CERT_LOCATION,ServerSettings.getSetting(TRUSTED_CERT_LOCATION));
-                    configctx.setProperty(MYPROXY_SERVER,ServerSettings.getSetting(MYPROXY_SERVER));
-		            provenanceWriterThreadPoolSize = Integer.parseInt((String) ServerSettings.getSetting(PROVENANCE_WRITER_THREAD_POOL_SIZE));
-		            if("true".equals(ServerSettings.getSetting(PROVENANCE))){
-		                provenance = true;
-		                runner = new PredicatedTaskRunner(provenanceWriterThreadPoolSize);
-		                try {
-                            List<HostDescription> hostList = getDefinedHostDescriptions();
-                            for(HostDescription host:hostList){
-                                // This will avoid the changes user is doing to one of the predefined Hosts during a restart of the system
-                                AiravataAPI registry = getAiravataAPI();
-								if(!registry.getApplicationManager().isHostDescriptorExists(host.getType().getHostName())){
-                                    log.debug("Saving the predefined Host: " + host.getType().getHostName());
-                                    registry.getApplicationManager().addHostDescription(host);
-                                }
-                            }
-		                } catch (DescriptorAlreadyExistsException e) {
-                            e.printStackTrace();
-                        } catch (AiravataAPIInvocationException e) {
-		                    e.printStackTrace();
-
-                        }
-                    }else{
-		                provenance = false;
-		            }
-		            if("true".equals(ServerSettings.getSetting(RUN_IN_THREAD))){
-		                runInThread = true;
-		            }else{
-		                runInThread = false;
-		            }
-
-                     if("true".equals(ServerSettings.getSetting(GFAC_EMBEDDED))){
-		                gfacEmbeddedMode = true;
-		            }else{
-		                gfacEmbeddedMode = false;
-		            }
-
-                     //save the interpreter service url in context
-                    String localAddress = ServiceUtils.generateServiceURLFromConfigurationContext(configctx,SERVICE_NAME);
- 					configctx.setProperty(SERVICE_URL,new URI(localAddress));
- 					configctx.setProperty(JCR_REG,getAiravataAPI());
- 					/*
-					 * Heart beat message to registry
-					 */
-					thread = new WIServiceThread(getAiravataAPI(), configctx);
-					thread.start();
-                } catch (IOException e) {
-                    e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
-                } catch (URISyntaxException e) {
-                    e.printStackTrace();
-                } catch (ApplicationSettingsException e) {
-                    e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
-                }
-                WorkflowInterpretorSkeleton.configurationContext = configctx;
-    		}
-    	}.start();
-
-    }
-
-    public void suspendWorkflow(String experimentId)throws Exception{
-    	if (workflowConfigurations.containsKey(experimentId)){
-    		if (getInteractor().isExecutionPaused(workflowConfigurations.get(experimentId))){
-    			throw new Exception("Experiment '"+experimentId+"' is already paused!!!");
-    		}else{
-    			log.info("Suspending workflow execution "+experimentId+"...");
-    			getInteractor().pauseExecution(workflowConfigurations.get(experimentId));
-    		}
-    	}else{
-    		throw new Exception("Invalid Experiment id: Experiment "+experimentId+" not running");
-    	}
-    }
-
-    public void resumeWorkflow(String experimentId)throws Exception{
-    	if (workflowConfigurations.containsKey(experimentId)){
-    		if (getInteractor().isExecutionPaused(workflowConfigurations.get(experimentId)) || workflowConfigurations.get(experimentId).getWorkflow().getExecutionState()==WorkflowExecutionState.STOPPED){
-    			log.info("Resuming workflow execution "+experimentId+"...");
-    			getInteractor().resumeExecution(workflowConfigurations.get(experimentId));
-
-    		}else{
-    			throw new Exception("Experiment '"+experimentId+"' is not suspended!!!");
-    		}
-    	}else{
-    		//TODO chk to see if the experiment is present in registry if so reload it and resume execution else error
-    		throw new Exception("Invalid Experiment id: Experiment "+experimentId+" not running");
-    	}
-    }
-
-    public void haltWorkflow(String experimentId)throws Exception{
-    	if (workflowConfigurations.containsKey(experimentId)){
-			log.info("Terminating workflow execution "+experimentId+"...");
-			getInteractor().terminateExecution(workflowConfigurations.get(experimentId));
-    	}else{
-    		throw new Exception("Invalid Experiment id: Experiment "+experimentId+" not running");
-    	}
-    }
-
-    /**
-     * @param workflowAsString
-     * @param topic
-     * @param inputs
-     * @return
-     * @throws XMLStreamException
-     */
-	public java.lang.String launchWorkflow(java.lang.String workflowAsString, java.lang.String topic, NameValue[] inputs) throws XMLStreamException {
-        OMElement workflowContext = getWorkflowContextHeader();
-        if(workflowContext == null){
-            workflowContext = AXIOMUtil.stringToOM("<wor:context-header xmlns:wor=\"http://airavata.apache.org/schemas/wec/2012/05\">\n" +
-                "    <wor:soa-service-eprs>\n" +
-                "        <wor:gfac-url></wor:gfac-url>\n" +
-                "        <wor:registry-url></wor:registry-url>\n" +
-                "    </wor:soa-service-eprs>\n" +
-                "    <wor:workflow-monitoring-context>\n" +
-                "        <wor:experiment-id></wor:experiment-id>\n" +
-                "        <wor:workflow-instance-id xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:nil=\"true\" />\n" +
-                "        <wor:event-publish-epr></wor:event-publish-epr>\n" +
-                "        <wor:msg-box-epr></wor:msg-box-epr>\n" +
-                "    </wor:workflow-monitoring-context>\n" +
-                "    <wor:workflow-scheduling-context />\n" +
-                "    <wor:security-context />\n" +
-                "</wor:context-header>");
-        }
-        Map<String, String> configuration = new HashMap<String, String>();
-        WorkflowContextHeaderBuilder workflowContextHeaderBuilder = parseContextHeader(workflowContext, configuration);
-        String user = workflowContextHeaderBuilder.getSubmissionUser();
-
-        String s = null;
-        try {
-             s = setupAndLaunch(workflowAsString, topic, ServerSettings.getSystemUserGateway(),
-                    user,inputs, configuration, runInThread, workflowContextHeaderBuilder);
-        } catch (AiravataAPIInvocationException e) {
-            log.error(e.getMessage());
-        } catch (ApplicationSettingsException e) {
-            log.error(e.getMessage());
-        }
-        return s;
-    }
-
-    private OMElement getWorkflowContextHeader() {
-        MessageContext currentMessageContext = MessageContext.getCurrentMessageContext();
-        SOAPHeader header = currentMessageContext.getEnvelope().getHeader();
-        Iterator<?> childrenWithName = header.getChildrenWithName(new QName("http://airavata.apache.org/schemas/wec/2012/05", "context-header"));
-        if (childrenWithName.hasNext()) {
-            return (OMElement) childrenWithName.next();
-        } else {
-            return null;
-        }
-    }
-
-    private WorkflowContextHeaderBuilder parseContextHeader(OMElement workflowContext, Map<String, String> configuration) throws XMLStreamException {
-        ContextHeaderDocument parse = null;
-        try {
-            parse = ContextHeaderDocument.Factory.parse(workflowContext.toStringWithConsume());
-            String msgBox = parse.getContextHeader().getWorkflowMonitoringContext().getMsgBoxEpr();
-            if(msgBox == null || "".equals(msgBox)){
-                msgBox = getAiravataAPI().getAiravataManager().getMessageBoxServiceURL().toASCIIString();
-            }
-            String msgBroker = parse.getContextHeader().getWorkflowMonitoringContext().getEventPublishEpr();
-            if(msgBroker == null || "".equals(msgBroker)){
-                msgBroker = getAiravataAPI().getAiravataManager().getEventingServiceURL().toASCIIString();
-            }
-            String gfac =  parse.getContextHeader().getSoaServiceEprs().getGfacUrl();
-//            if(gfac == null || "".equals(gfac)){
-//                gfac = getAiravataAPI().getAiravataManager().getGFaCURLs().get(0).toString();
+///*
+// *
+// * 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.xbaya.interpretor;
+//
+//import org.apache.airavata.client.AiravataAPIFactory;
+//import org.apache.airavata.client.api.AiravataAPI;
+//import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
+//import org.apache.airavata.client.api.exception.DescriptorAlreadyExistsException;
+//import org.apache.airavata.client.stub.interpretor.NameValue;
+//import org.apache.airavata.client.tools.PeriodicExecutorThread;
+//import org.apache.airavata.common.exception.ApplicationSettingsException;
+//import org.apache.airavata.common.utils.AiravataUtils;
+//import org.apache.airavata.common.utils.ServerSettings;
+//import org.apache.airavata.common.utils.ServiceUtils;
+//import org.apache.airavata.common.workflow.execution.context.WorkflowContextHeaderBuilder;
+//import org.apache.airavata.commons.gfac.type.HostDescription;
+//import org.apache.airavata.schemas.gfac.GlobusHostType;
+//import org.apache.airavata.schemas.gfac.GsisshHostType;
+//import org.apache.airavata.schemas.gfac.SSHHostType;
+//import org.apache.airavata.schemas.wec.ContextHeaderDocument;
+//import org.apache.airavata.workflow.model.component.ComponentException;
+//import org.apache.airavata.workflow.model.exceptions.WorkflowRuntimeException;
+//import org.apache.airavata.workflow.model.graph.GraphException;
+//import org.apache.airavata.workflow.model.graph.system.InputNode;
+//import org.apache.airavata.workflow.model.ode.ODEClient;
+//import org.apache.airavata.workflow.model.wf.Workflow;
+//import org.apache.airavata.workflow.model.wf.WorkflowExecutionState;
+//import org.apache.airavata.ws.monitor.MonitorException;
+//import org.apache.airavata.xbaya.XBayaConfiguration;
+//import org.apache.airavata.xbaya.XBayaConstants;
+//import org.apache.airavata.xbaya.concurrent.PredicatedTaskRunner;
+//import org.apache.axiom.om.OMElement;
+//import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+//import org.apache.axiom.om.impl.llom.util.AXIOMUtil;
+//import org.apache.axiom.soap.SOAPHeader;
+//import org.apache.axis2.context.ConfigurationContext;
+//import org.apache.axis2.context.MessageContext;
+//import org.apache.axis2.description.AxisService;
+//import org.apache.axis2.engine.ServiceLifeCycle;
+//import org.apache.xmlbeans.XmlException;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//
+//import javax.xml.namespace.QName;
+//import javax.xml.stream.XMLInputFactory;
+//import javax.xml.stream.XMLStreamException;
+//import javax.xml.stream.XMLStreamReader;
+//import java.io.IOException;
+//import java.net.URI;
+//import java.net.URISyntaxException;
+//import java.net.URL;
+//import java.util.*;
+////import org.apache.airavata.registry.api.AiravataRegistry2;
+//
+///**
+// * WorkflowInterpretorSkeleton java skeleton for the axisService
+// */
+//public class WorkflowInterpretorSkeleton implements ServiceLifeCycle {
+//    private static final Logger log = LoggerFactory.getLogger(WorkflowInterpretorSkeleton.class);
+//
+////	public static final String PROXYSERVER = "myproxy.url";
+//	public static final String MSGBOX = "msgbox";
+//	public static final String GFAC = "gfac";
+//	public static final String BROKER = "broker";
+//    public static final String MYPROXY_USER = "myproxy.user";
+//    public static final String MYPROXY_PASS = "myproxy.pass";
+//    public static final String MYPROXY_SERVER = "myproxy.server";
+//    public static final String MYPROXY_LIFETIME = "myproxy.life";
+//    public static final String TRUSTED_CERT_LOCATION = "trusted.cert.location";
+//
+//    public static boolean provenance = false;
+//    public static final String PROVENANCE = "provenance";
+//    public static  String systemUserName = "";
+//    public static  String systemUserPW = "";
+//    public static boolean runInThread = false;
+//    public static final String RUN_IN_THREAD = "runInThread";
+//    public static  Boolean gfacEmbeddedMode = true;
+//    private static PredicatedTaskRunner runner = null;
+////    public static  JCRComponentRegistry jcrComponentRegistry = null;
+//    private static AiravataAPI airavataAPI=null;
+//    public static int provenanceWriterThreadPoolSize = 1;
+//    public static final String PROVENANCE_WRITER_THREAD_POOL_SIZE = "provenanceWriterThreadPoolSize";
+//    public static final int JCR_AVAIALABILITY_WAIT_INTERVAL = 1000 * 10;
+//    public static final String GFAC_EMBEDDED = "gfac.embedded";
+//    public static  ConfigurationContext configurationContext;
+//    public static final String SERVICE_NAME="WorkflowInterpretor";
+//    public static boolean notInterrupted = true;
+//    public Map<String, WorkflowInterpreterConfiguration> workflowConfigurations=new HashMap<String, WorkflowInterpreterConfiguration>();
+//    private WorkflowInterpreterInteractor interactor;
+//    private String gateway;
+//
+//	protected static final String SERVICE_URL = "interpreter_service_url";
+//
+//	protected static final String JCR_REG = "jcr_registry";
+//
+//	protected WIServiceThread thread;
+//
+//    private AiravataAPI getAiravataAPI(){
+//        if (airavataAPI==null) {
+//			try {
+//				systemUserName = ServerSettings.getSystemUser();
+//				systemUserPW = ServerSettings.getSystemUserPassword();
+//				gateway = ServerSettings.getSystemUserGateway();
+//				airavataAPI = AiravataAPIFactory.getAPI(gateway, systemUserName);
+//			} catch (ApplicationSettingsException e) {
+//				log.error("Unable to read the properties file", e);
+//			} catch (AiravataAPIInvocationException e) {
+//				log.error("Unable to create Airavata API", e);
+//			}
+//		}
+//		return airavataAPI;
+//    }
+//
+//    private WorkflowInterpreterInteractor getInteractor(){
+//    	if (interactor==null){
+//        	interactor=new SSWorkflowInterpreterInteractorImpl();
+//    	}
+//    	return interactor;
+//    }
+//
+//    public void startUp(final ConfigurationContext configctx, AxisService service) {
+//    	AiravataUtils.setExecutionAsServer();
+//    	new Thread(){
+//			@Override
+//    		public void run() {
+//    			try {
+//					Thread.sleep(JCR_AVAIALABILITY_WAIT_INTERVAL);
+//				} catch (InterruptedException e1) {
+//					e1.printStackTrace();
+//				}
+//		        try {
+//                    // Airavata deployer have to configure these properties,but if user send them alone the incoming message
+//                    // We are overwriting those values only for that particular request
+//		            configctx.setProperty(MYPROXY_PASS, ServerSettings.getSetting(MYPROXY_PASS));
+//		            configctx.setProperty(MYPROXY_USER, ServerSettings.getSetting(MYPROXY_USER));
+//		            configctx.setProperty(MYPROXY_LIFETIME,ServerSettings.getSetting(MYPROXY_LIFETIME));
+//                    configctx.setProperty(TRUSTED_CERT_LOCATION,ServerSettings.getSetting(TRUSTED_CERT_LOCATION));
+//                    configctx.setProperty(MYPROXY_SERVER,ServerSettings.getSetting(MYPROXY_SERVER));
+//		            provenanceWriterThreadPoolSize = Integer.parseInt((String) ServerSettings.getSetting(PROVENANCE_WRITER_THREAD_POOL_SIZE));
+//		            if("true".equals(ServerSettings.getSetting(PROVENANCE))){
+//		                provenance = true;
+//		                runner = new PredicatedTaskRunner(provenanceWriterThreadPoolSize);
+//		                try {
+//                            List<HostDescription> hostList = getDefinedHostDescriptions();
+//                            for(HostDescription host:hostList){
+//                                // This will avoid the changes user is doing to one of the predefined Hosts during a restart of the system
+//                                AiravataAPI registry = getAiravataAPI();
+//								if(!registry.getApplicationManager().isHostDescriptorExists(host.getType().getHostName())){
+//                                    log.debug("Saving the predefined Host: " + host.getType().getHostName());
+//                                    registry.getApplicationManager().addHostDescription(host);
+//                                }
+//                            }
+//		                } catch (DescriptorAlreadyExistsException e) {
+//                            e.printStackTrace();
+//                        } catch (AiravataAPIInvocationException e) {
+//		                    e.printStackTrace();
+//
+//                        }
+//                    }else{
+//		                provenance = false;
+//		            }
+//		            if("true".equals(ServerSettings.getSetting(RUN_IN_THREAD))){
+//		                runInThread = true;
+//		            }else{
+//		                runInThread = false;
+//		            }
+//
+//                     if("true".equals(ServerSettings.getSetting(GFAC_EMBEDDED))){
+//		                gfacEmbeddedMode = true;
+//		            }else{
+//		                gfacEmbeddedMode = false;
+//		            }
+//
+//                     //save the interpreter service url in context
+//                    String localAddress = ServiceUtils.generateServiceURLFromConfigurationContext(configctx,SERVICE_NAME);
+// 					configctx.setProperty(SERVICE_URL,new URI(localAddress));
+// 					configctx.setProperty(JCR_REG,getAiravataAPI());
+// 					/*
+//					 * Heart beat message to registry
+//					 */
+//					thread = new WIServiceThread(getAiravataAPI(), configctx);
+//					thread.start();
+//                } catch (IOException e) {
+//                    e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+//                } catch (URISyntaxException e) {
+//                    e.printStackTrace();
+//                } catch (ApplicationSettingsException e) {
+//                    e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+//                }
+//                WorkflowInterpretorSkeleton.configurationContext = configctx;
+//    		}
+//    	}.start();
+//
+//    }
+//
+//    public void suspendWorkflow(String experimentId)throws Exception{
+//    	if (workflowConfigurations.containsKey(experimentId)){
+//    		if (getInteractor().isExecutionPaused(workflowConfigurations.get(experimentId))){
+//    			throw new Exception("Experiment '"+experimentId+"' is already paused!!!");
+//    		}else{
+//    			log.info("Suspending workflow execution "+experimentId+"...");
+//    			getInteractor().pauseExecution(workflowConfigurations.get(experimentId));
+//    		}
+//    	}else{
+//    		throw new Exception("Invalid Experiment id: Experiment "+experimentId+" not running");
+//    	}
+//    }
+//
+//    public void resumeWorkflow(String experimentId)throws Exception{
+//    	if (workflowConfigurations.containsKey(experimentId)){
+//    		if (getInteractor().isExecutionPaused(workflowConfigurations.get(experimentId)) || workflowConfigurations.get(experimentId).getWorkflow().getExecutionState()==WorkflowExecutionState.STOPPED){
+//    			log.info("Resuming workflow execution "+experimentId+"...");
+//    			getInteractor().resumeExecution(workflowConfigurations.get(experimentId));
+//
+//    		}else{
+//    			throw new Exception("Experiment '"+experimentId+"' is not suspended!!!");
+//    		}
+//    	}else{
+//    		//TODO chk to see if the experiment is present in registry if so reload it and resume execution else error
+//    		throw new Exception("Invalid Experiment id: Experiment "+experimentId+" not running");
+//    	}
+//    }
+//
+//    public void haltWorkflow(String experimentId)throws Exception{
+//    	if (workflowConfigurations.containsKey(experimentId)){
+//			log.info("Terminating workflow execution "+experimentId+"...");
+//			getInteractor().terminateExecution(workflowConfigurations.get(experimentId));
+//    	}else{
+//    		throw new Exception("Invalid Experiment id: Experiment "+experimentId+" not running");
+//    	}
+//    }
+//
+//    /**
+//     * @param workflowAsString
+//     * @param topic
+//     * @param inputs
+//     * @return
+//     * @throws XMLStreamException
+//     */
+//	public java.lang.String launchWorkflow(java.lang.String workflowAsString, java.lang.String topic, NameValue[] inputs) throws XMLStreamException {
+//        OMElement workflowContext = getWorkflowContextHeader();
+//        if(workflowContext == null){
+//            workflowContext = AXIOMUtil.stringToOM("<wor:context-header xmlns:wor=\"http://airavata.apache.org/schemas/wec/2012/05\">\n" +
+//                "    <wor:soa-service-eprs>\n" +
+//                "        <wor:gfac-url></wor:gfac-url>\n" +
+//                "        <wor:registry-url></wor:registry-url>\n" +
+//                "    </wor:soa-service-eprs>\n" +
+//                "    <wor:workflow-monitoring-context>\n" +
+//                "        <wor:experiment-id></wor:experiment-id>\n" +
+//                "        <wor:workflow-instance-id xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:nil=\"true\" />\n" +
+//                "        <wor:event-publish-epr></wor:event-publish-epr>\n" +
+//                "        <wor:msg-box-epr></wor:msg-box-epr>\n" +
+//                "    </wor:workflow-monitoring-context>\n" +
+//                "    <wor:workflow-scheduling-context />\n" +
+//                "    <wor:security-context />\n" +
+//                "</wor:context-header>");
+//        }
+//        Map<String, String> configuration = new HashMap<String, String>();
+//        WorkflowContextHeaderBuilder workflowContextHeaderBuilder = parseContextHeader(workflowContext, configuration);
+//        String user = workflowContextHeaderBuilder.getSubmissionUser();
+//
+//        String s = null;
+//        try {
+//             s = setupAndLaunch(workflowAsString, topic, ServerSettings.getSystemUserGateway(),
+//                    user,inputs, configuration, runInThread, workflowContextHeaderBuilder);
+//        } catch (AiravataAPIInvocationException e) {
+//            log.error(e.getMessage());
+//        } catch (ApplicationSettingsException e) {
+//            log.error(e.getMessage());
+//        }
+//        return s;
+//    }
+//
+//    private OMElement getWorkflowContextHeader() {
+//        MessageContext currentMessageContext = MessageContext.getCurrentMessageContext();
+//        SOAPHeader header = currentMessageContext.getEnvelope().getHeader();
+//        Iterator<?> childrenWithName = header.getChildrenWithName(new QName("http://airavata.apache.org/schemas/wec/2012/05", "context-header"));
+//        if (childrenWithName.hasNext()) {
+//            return (OMElement) childrenWithName.next();
+//        } else {
+//            return null;
+//        }
+//    }
+//
+//    private WorkflowContextHeaderBuilder parseContextHeader(OMElement workflowContext, Map<String, String> configuration) throws XMLStreamException {
+//        ContextHeaderDocument parse = null;
+//        try {
+//            parse = ContextHeaderDocument.Factory.parse(workflowContext.toStringWithConsume());
+//            String msgBox = parse.getContextHeader().getWorkflowMonitoringContext().getMsgBoxEpr();
+//            if(msgBox == null || "".equals(msgBox)){
+//                msgBox = getAiravataAPI().getAiravataManager().getMessageBoxServiceURL().toASCIIString();
 //            }
-            configuration.put(BROKER, msgBroker);
-            configuration.put(GFAC, gfac);
-            configuration.put(MSGBOX, msgBox);
-        } catch (XmlException e) {
-            log.error(e.getMessage());
-        } catch (AiravataAPIInvocationException e) {
-            log.error(e.getMessage());
-        }
-    	String submissionUser = workflowContext.getAttributeValue(new QName(workflowContext.getNamespace().getNamespaceURI(), "submissionUser"));
-        WorkflowContextHeaderBuilder workflowContextHeaderBuilder = new WorkflowContextHeaderBuilder(parse.getContextHeader());
-        workflowContextHeaderBuilder.setSubmissionUser(submissionUser);
-		return workflowContextHeaderBuilder;
-    }
-
-    public String setupAndLaunch(String workflowAsString, String experimentId, String gatewayId, String username,
-            Map<String,String> inputs,boolean inNewThread,WorkflowContextHeaderBuilder builder) throws AiravataAPIInvocationException{
-    	List<NameValue> inputData=new ArrayList<NameValue>();
-    	for (String inputName : inputs.keySet()) {
-			NameValue input = new NameValue();
-			input.setName(inputName);
-			input.setValue(inputs.get(inputName));
-			inputData.add(input);
-		}
-    	Map<String, String> configuration = new HashMap<String, String>();
-    	configuration.put(BROKER, getAiravataAPI().getAiravataManager().getEventingServiceURL().toASCIIString());
-        configuration.put(MSGBOX, getAiravataAPI().getAiravataManager().getMessageBoxServiceURL().toASCIIString());
-
-    	return setupAndLaunch(workflowAsString, experimentId, gatewayId, username, inputData.toArray(new NameValue[]{}), configuration, inNewThread, builder);
-    }
-
-    private String setupAndLaunch(String workflowAsString, String topic, String gatewayId, String username,
-                                  NameValue[] inputs,Map<String,String>configurations,boolean inNewThread,
-                                  WorkflowContextHeaderBuilder builder) throws AiravataAPIInvocationException{
-        log.debug("Launch is called for topic:"+topic);
-
-        Workflow workflow = null;
-        try {
-            workflow = new Workflow(workflowAsString);
-            log.debug("Workflow Object created");
-        } catch (GraphException e1) {
-            e1.printStackTrace();
-        } catch (ComponentException e1) {
-            e1.printStackTrace();
-        }
-        log.debug("Setting Input values");
-        List<InputNode> inputNodes = new ODEClient().getInputNodes(workflow);
-        for (InputNode inputNode : inputNodes) {
-            for (NameValue input : inputs) {
-                if (inputNode.getID().equals(input.getName())) {
-                    inputNode.setDefaultValue(input.getValue());
-                    break;
-                }
-            }
-            if (inputNode.getDefaultValue() == null) {
-                throw new WorkflowRuntimeException("Could not find a input value for component with name :" + inputNode.getName());
-            }
-
-        }
-        log.debug("Input all set");
-
-        XBayaConfiguration conf = null;
-        try {
-            conf = getConfiguration(configurations);
-            conf.setTopic(topic);
-            conf.setRunWithCrossProduct(true);
-        } catch (URISyntaxException e1) {
-            throw new WorkflowRuntimeException(e1);
-        }
-        WorkflowInterpretorEventListener listener = null;
-        WorkflowInterpreter interpreter = null;
-        AiravataAPI airavataAPI = AiravataAPIFactory.getAPI(gatewayId, username);
-        WorkflowInterpreterConfiguration workflowInterpreterConfiguration = new WorkflowInterpreterConfiguration(workflow, topic, conf.getMessageBoxURL(), conf.getBrokerURL(), airavataAPI, conf, null, null);
-        workflowInterpreterConfiguration.setGfacEmbeddedMode(gfacEmbeddedMode);
-        workflowInterpreterConfiguration.setActOnProvenance(provenance);
-
-        if (builder.getSecurityContext().getAmazonWebservices() != null) {
-            workflowInterpreterConfiguration.setAwsSecretKey(builder.getSecurityContext().getAmazonWebservices().getSecretAccessKey());
-            workflowInterpreterConfiguration.setAwsAccessKey(builder.getSecurityContext().getAmazonWebservices().getAccessKeyId());
-        }
-        // WorkflowInterpreter object should create prior creation of Listener, because listener needs the threadlocal variable
-        interpreter = new WorkflowInterpreter(workflowInterpreterConfiguration, getInteractor());
-        listener = new WorkflowInterpretorEventListener(workflow, conf);
-        try {
-            log.debug("start listener set");
-            listener.start();
-        } catch (MonitorException e1) {
-            e1.printStackTrace();
-        }
-
-        WorkflowContextHeaderBuilder.setCurrentContextHeader(builder.getContextHeader());
-
-        final WorkflowInterpretorEventListener finalListener = listener;
-        conf.setAiravataAPI(getAiravataAPI());
-
-        final WorkflowInterpreter finalInterpreter = interpreter;
-//        interpreter.setActOnProvenance(provenance);
-        interpreter.setProvenanceWriter(runner);
-        final String experimentId = topic;
-        log.debug("Created the interpreter");
-        if(inNewThread){
-            runInThread(finalInterpreter,finalListener,experimentId,builder);
-        }else{
-            executeWorkflow(finalInterpreter, finalListener, experimentId);
-        }
-        log.info("Experiment launched :" + topic);
-        return topic;
-    }
-
-    private void runInThread(final WorkflowInterpreter interpreter,final WorkflowInterpretorEventListener listener,final String experimentId,final WorkflowContextHeaderBuilder builder) {
-        new Thread(new Runnable() {
-
-            public void run() {
-                WorkflowContextHeaderBuilder.setCurrentContextHeader(builder.getContextHeader());
-                executeWorkflow(interpreter, listener, experimentId);
-            }
-        }).start();
-    }
-
-    private void executeWorkflow(WorkflowInterpreter interpreter, WorkflowInterpretorEventListener listener,String experimentId) {
-        try {
-        	workflowConfigurations.put(experimentId,interpreter.getConfig());
-            interpreter.scheduleDynamically();
-            log.debug("Interpreter invoked...");
-        } catch (Exception e) {
-            throw new WorkflowRuntimeException(e);
-        } finally {
-        	if (workflowConfigurations.containsKey(experimentId)){
-        		workflowConfigurations.remove(experimentId);
-        	}
-            /*
-             * stop listener no matter what happens
-             */
+//            String msgBroker = parse.getContextHeader().getWorkflowMonitoringContext().getEventPublishEpr();
+//            if(msgBroker == null || "".equals(msgBroker)){
+//                msgBroker = getAiravataAPI().getAiravataManager().getEventingServiceURL().toASCIIString();
+//            }
+//            String gfac =  parse.getContextHeader().getSoaServiceEprs().getGfacUrl();
+////            if(gfac == null || "".equals(gfac)){
+////                gfac = getAiravataAPI().getAiravataManager().getGFaCURLs().get(0).toString();
+////            }
+//            configuration.put(BROKER, msgBroker);
+//            configuration.put(GFAC, gfac);
+//            configuration.put(MSGBOX, msgBox);
+//        } catch (XmlException e) {
+//            log.error(e.getMessage());
+//        } catch (AiravataAPIInvocationException e) {
+//            log.error(e.getMessage());
+//        }
+//    	String submissionUser = workflowContext.getAttributeValue(new QName(workflowContext.getNamespace().getNamespaceURI(), "submissionUser"));
+//        WorkflowContextHeaderBuilder workflowContextHeaderBuilder = new WorkflowContextHeaderBuilder(parse.getContextHeader());
+//        workflowContextHeaderBuilder.setSubmissionUser(submissionUser);
+//		return workflowContextHeaderBuilder;
+//    }
+//
+//    public String setupAndLaunch(String workflowAsString, String experimentId, String gatewayId, String username,
+//            Map<String,String> inputs,boolean inNewThread,WorkflowContextHeaderBuilder builder) throws AiravataAPIInvocationException{
+//    	List<NameValue> inputData=new ArrayList<NameValue>();
+//    	for (String inputName : inputs.keySet()) {
+//			NameValue input = new NameValue();
+//			input.setName(inputName);
+//			input.setValue(inputs.get(inputName));
+//			inputData.add(input);
+//		}
+//    	Map<String, String> configuration = new HashMap<String, String>();
+//    	configuration.put(BROKER, getAiravataAPI().getAiravataManager().getEventingServiceURL().toASCIIString());
+//        configuration.put(MSGBOX, getAiravataAPI().getAiravataManager().getMessageBoxServiceURL().toASCIIString());
+//
+//    	return setupAndLaunch(workflowAsString, experimentId, gatewayId, username, inputData.toArray(new NameValue[]{}), configuration, inNewThread, builder);
+//    }
+//
+//    private String setupAndLaunch(String workflowAsString, String topic, String gatewayId, String username,
+//                                  NameValue[] inputs,Map<String,String>configurations,boolean inNewThread,
+//                                  WorkflowContextHeaderBuilder builder) throws AiravataAPIInvocationException{
+//        log.debug("Launch is called for topic:"+topic);
+//
+//        Workflow workflow = null;
+//        try {
+//            workflow = new Workflow(workflowAsString);
+//            log.debug("Workflow Object created");
+//        } catch (GraphException e1) {
+//            e1.printStackTrace();
+//        } catch (ComponentException e1) {
+//            e1.printStackTrace();
+//        }
+//        log.debug("Setting Input values");
+//        List<InputNode> inputNodes = new ODEClient().getInputNodes(workflow);
+//        for (InputNode inputNode : inputNodes) {
+//            for (NameValue input : inputs) {
+//                if (inputNode.getID().equals(input.getName())) {
+//                    inputNode.setDefaultValue(input.getValue());
+//                    break;
+//                }
+//            }
+//            if (inputNode.getDefaultValue() == null) {
+//                throw new WorkflowRuntimeException("Could not find a input value for component with name :" + inputNode.getName());
+//            }
+//
+//        }
+//        log.debug("Input all set");
+//
+//        XBayaConfiguration conf = null;
+//        try {
+//            conf = getConfiguration(configurations);
+//            conf.setTopic(topic);
+//            conf.setRunWithCrossProduct(true);
+//        } catch (URISyntaxException e1) {
+//            throw new WorkflowRuntimeException(e1);
+//        }
+//        WorkflowInterpretorEventListener listener = null;
+//        WorkflowInterpreter interpreter = null;
+//        AiravataAPI airavataAPI = AiravataAPIFactory.getAPI(gatewayId, username);
+//        WorkflowInterpreterConfiguration workflowInterpreterConfiguration = new WorkflowInterpreterConfiguration(workflow, topic, conf.getMessageBoxURL(), conf.getBrokerURL(), airavataAPI, conf, null, null);
+//        workflowInterpreterConfiguration.setGfacEmbeddedMode(gfacEmbeddedMode);
+//        workflowInterpreterConfiguration.setActOnProvenance(provenance);
+//
+//        if (builder.getSecurityContext().getAmazonWebservices() != null) {
+//            workflowInterpreterConfiguration.setAwsSecretKey(builder.getSecurityContext().getAmazonWebservices().getSecretAccessKey());
+//            workflowInterpreterConfiguration.setAwsAccessKey(builder.getSecurityContext().getAmazonWebservices().getAccessKeyId());
+//        }
+//        // WorkflowInterpreter object should create prior creation of Listener, because listener needs the threadlocal variable
+//        interpreter = new WorkflowInterpreter(workflowInterpreterConfiguration, getInteractor());
+//        listener = new WorkflowInterpretorEventListener(workflow, conf);
+//        try {
+//            log.debug("start listener set");
+//            listener.start();
+//        } catch (MonitorException e1) {
+//            e1.printStackTrace();
+//        }
+//
+//        WorkflowContextHeaderBuilder.setCurrentContextHeader(builder.getContextHeader());
+//
+//        final WorkflowInterpretorEventListener finalListener = listener;
+//
+//        final WorkflowInterpreter finalInterpreter = interpreter;
+////        interpreter.setActOnProvenance(provenance);
+//        interpreter.setProvenanceWriter(runner);
+//        final String experimentId = topic;
+//        log.debug("Created the interpreter");
+//        if(inNewThread){
+//            runInThread(finalInterpreter,finalListener,experimentId,builder);
+//        }else{
+//            executeWorkflow(finalInterpreter, finalListener, experimentId);
+//        }
+//        log.info("Experiment launched :" + topic);
+//        return topic;
+//    }
+//
+//    private void runInThread(final WorkflowInterpreter interpreter,final WorkflowInterpretorEventListener listener,final String experimentId,final WorkflowContextHeaderBuilder builder) {
+//        new Thread(new Runnable() {
+//
+//            public void run() {
+//                WorkflowContextHeaderBuilder.setCurrentContextHeader(builder.getContextHeader());
+//                executeWorkflow(interpreter, listener, experimentId);
+//            }
+//        }).start();
+//    }
+//
+//    private void executeWorkflow(WorkflowInterpreter interpreter, WorkflowInterpretorEventListener listener,String experimentId) {
+//        try {
+//        	workflowConfigurations.put(experimentId,interpreter.getConfig());
+//            interpreter.scheduleDynamically();
+//            log.debug("Interpreter invoked...");
+//        } catch (Exception e) {
+//            throw new WorkflowRuntimeException(e);
+//        } finally {
+//        	if (workflowConfigurations.containsKey(experimentId)){
+//        		workflowConfigurations.remove(experimentId);
+//        	}
+//            /*
+//             * stop listener no matter what happens
+//             */
+////            try {
+////                if(listener != null)
+////                listener.stop();
+////            } catch (MonitorException e) {
+////                e.printStackTrace();
+////            }
+//        }
+//    }
+//
+//    public  XBayaConfiguration getConfiguration(Map<String,String> vals) throws URISyntaxException {
+//		XBayaConfiguration configuration = new XBayaConfiguration();
+//		configuration.setBrokerURL(new URI(findValue(vals, BROKER, XBayaConstants.DEFAULT_BROKER_URL.toString())));
+////		configuration.setGFacURL(new URI(findValue(vals, GFAC, XBayaConstants.DEFAULT_GFAC_URL.toString())));
+//		configuration.setMessageBoxURL(new URI(findValue(vals, MSGBOX, XBayaConstants.DEFAULT_MESSAGE_BOX_URL.toString())));
+//		configuration.setMyProxyLifetime(XBayaConstants.DEFAULT_MYPROXY_LIFTTIME);
+//		configuration.setMyProxyPort(XBayaConstants.DEFAULT_MYPROXY_PORT);
+//        //This null check will fix some test failures
+//        if (WorkflowInterpretorSkeleton.configurationContext != null) {
+//            configuration.setMyProxyServer(findValue(vals, MYPROXY_SERVER, (String) WorkflowInterpretorSkeleton.configurationContext.getProperty(MYPROXY_SERVER)));
+//            configuration.setMyProxyPassphrase(findValue(vals, MYPROXY_PASS, (String) WorkflowInterpretorSkeleton.configurationContext.getProperty(MYPROXY_PASS)));
+//            configuration.setMyProxyUsername(findValue(vals, MYPROXY_USER, (String) WorkflowInterpretorSkeleton.configurationContext.getProperty(MYPROXY_USER)));
+//            configuration.setTrustedCertLocation(findValue(vals, TRUSTED_CERT_LOCATION, (String) WorkflowInterpretorSkeleton.configurationContext.getProperty(TRUSTED_CERT_LOCATION)));
+//            configuration.setTrustedCertLocation(findValue(vals, MYPROXY_LIFETIME, (String) WorkflowInterpretorSkeleton.configurationContext.getProperty(MYPROXY_LIFETIME)));
+//        }
+//		return configuration;
+//	}
+//
+//	private String findValue(Map<String,String> vals, String key, String defaultVal) {
+//		if(vals.get(key) != null) {
+//            return vals.get(key);
+//        }
+//		return defaultVal;
+//	}
+//
+//    public void shutDown(ConfigurationContext configctx, AxisService service) {
+//        URI gfacURL = (URI) configctx.getProperty(SERVICE_URL);
+//        if (getAiravataAPI() != null && thread != null) {
+//            AiravataAPI registry = getAiravataAPI();
 //            try {
-//                if(listener != null)
-//                listener.stop();
-//            } catch (MonitorException e) {
+//                registry.getAiravataManager().removeWorkflowInterpreterURI(gfacURL);
+//            } catch (AiravataAPIInvocationException e) {
 //                e.printStackTrace();
 //            }
-        }
-    }
-
-    public  XBayaConfiguration getConfiguration(Map<String,String> vals) throws URISyntaxException {
-		XBayaConfiguration configuration = new XBayaConfiguration();
-		configuration.setBrokerURL(new URI(findValue(vals, BROKER, XBayaConstants.DEFAULT_BROKER_URL.toString())));
-		configuration.setGFacURL(new URI(findValue(vals, GFAC, XBayaConstants.DEFAULT_GFAC_URL.toString())));
-		configuration.setMessageBoxURL(new URI(findValue(vals, MSGBOX, XBayaConstants.DEFAULT_MESSAGE_BOX_URL.toString())));
-		configuration.setMyProxyLifetime(XBayaConstants.DEFAULT_MYPROXY_LIFTTIME);
-		configuration.setMyProxyPort(XBayaConstants.DEFAULT_MYPROXY_PORT);
-        //This null check will fix some test failures
-        if (WorkflowInterpretorSkeleton.configurationContext != null) {
-            configuration.setMyProxyServer(findValue(vals, MYPROXY_SERVER, (String) WorkflowInterpretorSkeleton.configurationContext.getProperty(MYPROXY_SERVER)));
-            configuration.setMyProxyPassphrase(findValue(vals, MYPROXY_PASS, (String) WorkflowInterpretorSkeleton.configurationContext.getProperty(MYPROXY_PASS)));
-            configuration.setMyProxyUsername(findValue(vals, MYPROXY_USER, (String) WorkflowInterpretorSkeleton.configurationContext.getProperty(MYPROXY_USER)));
-            configuration.setTrustedCertLocation(findValue(vals, TRUSTED_CERT_LOCATION, (String) WorkflowInterpretorSkeleton.configurationContext.getProperty(TRUSTED_CERT_LOCATION)));
-            configuration.setTrustedCertLocation(findValue(vals, MYPROXY_LIFETIME, (String) WorkflowInterpretorSkeleton.configurationContext.getProperty(MYPROXY_LIFETIME)));
-        }
-		return configuration;
-	}
-
-	private String findValue(Map<String,String> vals, String key, String defaultVal) {
-		if(vals.get(key) != null) {
-            return vals.get(key);
-        }
-		return defaultVal;
-	}
-
-    public void shutDown(ConfigurationContext configctx, AxisService service) {
-        URI gfacURL = (URI) configctx.getProperty(SERVICE_URL);
-        if (getAiravataAPI() != null && thread != null) {
-            AiravataAPI registry = getAiravataAPI();
-            try {
-                registry.getAiravataManager().removeWorkflowInterpreterURI(gfacURL);
-            } catch (AiravataAPIInvocationException e) {
-                e.printStackTrace();
-            }
-            thread.interrupt();
-            try {
-                thread.join();
-            } catch (InterruptedException e) {
-                log.warn("GFacURL update thread is interrupted");
-            }
-        }
-        if (runner != null) {
-            runner.shutDown();
-        }
-
-        notInterrupted = false;
-    }
-
-    private List<HostDescription> getDefinedHostDescriptions() {
-        URL url = this.getClass().getClassLoader().getResource("host.xml");
-        ArrayList<HostDescription> hostDescriptions = new ArrayList<HostDescription>();
-        XMLStreamReader reader = null;
-        try {
-            if (url != null) {
-                reader = XMLInputFactory.newInstance().createXMLStreamReader(url.openStream());
-            } else {
-                throw new RuntimeException("Error retrieving host.xml file. Should reside in " +
-                        "$SERVER_HOME/webapps/axis2/WEB-INF/classes/host.xml");
-            }
-        } catch (XMLStreamException e) {
-            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
-        } catch (IOException e) {
-            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
-        }
-        StAXOMBuilder builder = new StAXOMBuilder(reader);
-        OMElement documentElement = builder.getDocumentElement();
-        Iterator<?> server = documentElement.getChildrenWithName(new QName("server"));
-        while (server.hasNext()) {
-            HostDescription hostDescription = new HostDescription();
-            OMElement next = (OMElement) server.next();
-            if (next.getFirstChildWithName(new QName("gram.endpoint")) != null &&
-                    "globus".equals(next.getFirstChildWithName(new QName("type")).getText())) {
-                hostDescription.getType().changeType(GlobusHostType.type);
-                ((GlobusHostType) hostDescription.getType()).addGlobusGateKeeperEndPoint(next.getFirstChildWithName(new QName("gram.endpoint")).getText());
-                ((GlobusHostType) hostDescription.getType()).addGridFTPEndPoint(next.getFirstChildWithName(new QName("gridftp.endpoint")).getText());
-            } else if("ssh".equals(next.getFirstChildWithName(new QName("type")).getText())) {
-                hostDescription.getType().changeType(SSHHostType.type);
-                if(next.getFirstChildWithName(new QName("hpc.resource")) != null){
-                    if("true".equals(next.getFirstChildWithName(new QName("gram.endpoint")))){
-                        ((SSHHostType) hostDescription.getType()).setHpcResource(true);
-                    }
-                }
-                ((SSHHostType) hostDescription.getType()).setHpcResource(false);
-            } else if("gsissh".equals(next.getFirstChildWithName(new QName("type")).getText())) {
-                hostDescription.getType().changeType(GsisshHostType.type);
-            }
-            (hostDescription.getType()).setHostName(next.getFirstChildWithName(new QName("name")).getText());
-            (hostDescription.getType()).setHostAddress(next.getFirstChildWithName(new QName("host")).getText());
-            hostDescriptions.add(hostDescription);
-        }
-        return hostDescriptions;
-    }
-
-    public static final int URL_UPDATE_INTERVAL = 1000 * 60 * 60 * 3;
-
-    class WIServiceThread extends PeriodicExecutorThread {
-        private ConfigurationContext context = null;
-
-        WIServiceThread(AiravataAPI registry, ConfigurationContext context) {
-            super(registry);
-            this.context = context;
-        }
-
-        @Override
-        protected void updateRegistry(AiravataAPI registry) throws Exception {
-            URI localAddress = (URI) this.context.getProperty(SERVICE_URL);
-            registry.getAiravataManager().addWorkflowInterpreterURI(localAddress);
-            log.debug("Updated Workflow Interpreter service URL in to Repository");
-
-        }
-    }
-}
+//            thread.interrupt();
+//            try {
+//                thread.join();
+//            } catch (InterruptedException e) {
+//                log.warn("GFacURL update thread is interrupted");
+//            }
+//        }
+//        if (runner != null) {
+//            runner.shutDown();
+//        }
+//
+//        notInterrupted = false;
+//    }
+//
+//    private List<HostDescription> getDefinedHostDescriptions() {
+//        URL url = this.getClass().getClassLoader().getResource("host.xml");
+//        ArrayList<HostDescription> hostDescriptions = new ArrayList<HostDescription>();
+//        XMLStreamReader reader = null;
+//        try {
+//            if (url != null) {
+//                reader = XMLInputFactory.newInstance().createXMLStreamReader(url.openStream());
+//            } else {
+//                throw new RuntimeException("Error retrieving host.xml file. Should reside in " +
+//                        "$SERVER_HOME/webapps/axis2/WEB-INF/classes/host.xml");
+//            }
+//        } catch (XMLStreamException e) {
+//            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+//        } catch (IOException e) {
+//            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+//        }
+//        StAXOMBuilder builder = new StAXOMBuilder(reader);
+//        OMElement documentElement = builder.getDocumentElement();
+//        Iterator<?> server = documentElement.getChildrenWithName(new QName("server"));
+//        while (server.hasNext()) {
+//            HostDescription hostDescription = new HostDescription();
+//            OMElement next = (OMElement) server.next();
+//            if (next.getFirstChildWithName(new QName("gram.endpoint")) != null &&
+//                    "globus".equals(next.getFirstChildWithName(new QName("type")).getText())) {
+//                hostDescription.getType().changeType(GlobusHostType.type);
+//                ((GlobusHostType) hostDescription.getType()).addGlobusGateKeeperEndPoint(next.getFirstChildWithName(new QName("gram.endpoint")).getText());
+//                ((GlobusHostType) hostDescription.getType()).addGridFTPEndPoint(next.getFirstChildWithName(new QName("gridftp.endpoint")).getText());
+//            } else if("ssh".equals(next.getFirstChildWithName(new QName("type")).getText())) {
+//                hostDescription.getType().changeType(SSHHostType.type);
+//                if(next.getFirstChildWithName(new QName("hpc.resource")) != null){
+//                    if("true".equals(next.getFirstChildWithName(new QName("gram.endpoint")))){
+//                        ((SSHHostType) hostDescription.getType()).setHpcResource(true);
+//                    }
+//                }
+//                ((SSHHostType) hostDescription.getType()).setHpcResource(false);
+//            } else if("gsissh".equals(next.getFirstChildWithName(new QName("type")).getText())) {
+//                hostDescription.getType().changeType(GsisshHostType.type);
+//            }
+//            (hostDescription.getType()).setHostName(next.getFirstChildWithName(new QName("name")).getText());
+//            (hostDescription.getType()).setHostAddress(next.getFirstChildWithName(new QName("host")).getText());
+//            hostDescriptions.add(hostDescription);
+//        }
+//        return hostDescriptions;
+//    }
+//
+//    public static final int URL_UPDATE_INTERVAL = 1000 * 60 * 60 * 3;
+//
+//    class WIServiceThread extends PeriodicExecutorThread {
+//        private ConfigurationContext context = null;
+//
+//        WIServiceThread(AiravataAPI registry, ConfigurationContext context) {
+//            super(registry);
+//            this.context = context;
+//        }
+//
+//        @Override
+//        protected void updateRegistry(AiravataAPI registry) throws Exception {
+//            URI localAddress = (URI) this.context.getProperty(SERVICE_URL);
+//            registry.getAiravataManager().addWorkflowInterpreterURI(localAddress);
+//            log.debug("Updated Workflow Interpreter service URL in to Repository");
+//
+//        }
+//    }
+//}