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/23 18:48:18 UTC
[04/20] introducing workflow support in airavata api + other related
modules
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/InterpreterUtil.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/InterpreterUtil.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/InterpreterUtil.java
new file mode 100644
index 0000000..38c4f6a
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/InterpreterUtil.java
@@ -0,0 +1,308 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.airavata.workflow.engine.util;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.airavata.common.utils.StringUtil;
+import org.apache.airavata.workflow.engine.interpretor.WorkFlowInterpreterException;
+import org.apache.airavata.workflow.engine.invoker.Invoker;
+import org.apache.airavata.workflow.model.exceptions.WorkflowException;
+import org.apache.airavata.workflow.model.exceptions.WorkflowRuntimeException;
+import org.apache.airavata.workflow.model.graph.DataPort;
+import org.apache.airavata.workflow.model.graph.Node;
+import org.apache.airavata.workflow.model.graph.Node.NodeExecutionState;
+import org.apache.airavata.workflow.model.graph.amazon.InstanceNode;
+import org.apache.airavata.workflow.model.graph.impl.NodeImpl;
+import org.apache.airavata.workflow.model.graph.system.ConstantNode;
+import org.apache.airavata.workflow.model.graph.system.DifferedInputNode;
+import org.apache.airavata.workflow.model.graph.system.DoWhileNode;
+import org.apache.airavata.workflow.model.graph.system.EndDoWhileNode;
+import org.apache.airavata.workflow.model.graph.system.EndForEachNode;
+import org.apache.airavata.workflow.model.graph.system.EndifNode;
+import org.apache.airavata.workflow.model.graph.system.ForEachNode;
+import org.apache.airavata.workflow.model.graph.system.InputNode;
+import org.apache.airavata.workflow.model.graph.system.SystemDataPort;
+import org.apache.airavata.workflow.model.graph.ws.WSGraph;
+import org.apache.airavata.workflow.model.graph.ws.WSPort;
+import org.xmlpull.infoset.XmlElement;
+
+import xsul5.XmlConstants;
+//import org.apache.airavata.xbaya.ui.monitor.MonitorEventHandler;
+//import org.apache.airavata.xbaya.ui.monitor.MonitorEventHandler.NodeState;
+
+public class InterpreterUtil {
+ /**
+ * This method returns the input values for given foreach node
+ *
+ * @param forEachNode
+ * @param listOfValues
+ * @param invokerMap
+ * @return
+ * @throws WorkflowException
+ */
+ public static Object getInputsForForEachNode(final ForEachNode forEachNode, final LinkedList<String> listOfValues, Map<Node, Invoker> invokerMap)
+ throws WorkflowException {
+ List<DataPort> inputPorts = forEachNode.getInputPorts();
+
+ Object returnValForProvenance = null;
+ for (DataPort inputPort : inputPorts) {
+
+ Node inputNode = inputPort.getFromNode();
+ // if input node for for-each is WSNode
+ if (inputNode instanceof InputNode) {
+// for (DataPort dataPort : forEachNode.getInputPorts()) {
+ returnValForProvenance = InterpreterUtil.findInputFromPort(inputPort, invokerMap);
+ if (null == returnValForProvenance) {
+ throw new WorkFlowInterpreterException("Unable to find input for the node:" + forEachNode.getID());
+ }
+ String[] vals = StringUtil.getElementsFromString(returnValForProvenance.toString());
+ listOfValues.addAll(Arrays.asList(vals));
+// }
+ }
+ }
+ return returnValForProvenance;
+ }
+
+ /**
+ *
+ * @param inputPort
+ * @param invokerMap
+ * @return
+ * @throws WorkflowException
+ */
+ public static Object findInputFromPort(DataPort inputPort, Map<Node, Invoker> invokerMap) throws WorkflowException {
+ Object outputVal = null;
+ Node fromNode = inputPort.getFromNode();
+ if (fromNode instanceof InputNode) {
+ outputVal = ((InputNode) fromNode).getDefaultValue();
+ } else if (fromNode instanceof ConstantNode) {
+ outputVal = ((ConstantNode) fromNode).getValue();
+ } else if (fromNode instanceof DifferedInputNode && ((DifferedInputNode) fromNode).isConfigured()) {
+ outputVal = ((DifferedInputNode) fromNode).getDefaultValue();
+ } else if (fromNode instanceof EndifNode || fromNode instanceof DoWhileNode || fromNode instanceof EndDoWhileNode) {
+ Invoker fromInvoker = invokerMap.get(fromNode);
+ outputVal = fromInvoker.getOutput(inputPort.getFromPort().getID());
+ } else if (fromNode instanceof InstanceNode) {
+ return ((InstanceNode) fromNode).getOutputInstanceId();
+ } else if (fromNode instanceof EndForEachNode) {
+ outputVal = "";
+ Invoker workflowInvoker = invokerMap.get(fromNode);
+ String outputName = "";
+ if (inputPort instanceof SystemDataPort) {
+ outputName = ((SystemDataPort) inputPort).getWSComponentPort().getName();
+
+ } else if (inputPort instanceof WSPort) {
+ outputName = ((SystemDataPort) fromNode.getInputPort(fromNode.getOutputPorts().indexOf(inputPort.getEdge(0).getFromPort())))
+ .getWSComponentPort().getName();
+ }
+ XmlElement msgElmt = XmlConstants.BUILDER.parseFragmentFromString("<temp>" + workflowInvoker.getOutput(outputName) + "</temp>");
+ Iterator valItr = msgElmt.children().iterator();
+ while (valItr.hasNext()) {
+ Object object2 = valItr.next();
+ if (object2 instanceof XmlElement) {
+
+ if (((XmlElement) object2).children().iterator().hasNext()) {
+ outputVal = outputVal + StringUtil.DELIMETER + StringUtil.quoteString(((XmlElement) object2).children().iterator().next().toString());
+ }
+ }
+ }
+
+ if (((String) outputVal).length() == 0) {
+ throw new WorkflowException("Empty Output Generated");
+ }
+ outputVal = ((String) outputVal).substring(1, ((String) outputVal).length());
+ } else {
+ Invoker fromInvoker = invokerMap.get(fromNode);
+ try {
+ if (fromInvoker != null)
+ outputVal = fromInvoker.getOutput(inputPort.getFromPort().getName());
+
+ } catch (Exception e) {
+ // if the value is still null look it up from the inputport name
+ // because the value is set to the input port name at some point
+ // there is no harm in doing this
+ if (null == outputVal) {
+ outputVal = fromInvoker.getOutput(inputPort.getName());
+ }
+ }
+
+ }
+ return outputVal;
+
+ }
+
+ public static Object findInputFromPort(DataPort inputPort) throws WorkflowException {
+ Object outputVal = null;
+ Node fromNode = inputPort.getFromNode();
+ if (fromNode instanceof InputNode) {
+ outputVal = ((InputNode) fromNode).getDefaultValue();
+// } else if (fromNode instanceof ConstantNode) {
+// outputVal = ((ConstantNode) fromNode).getValue();
+// } else if (fromNode instanceof DifferedInputNode && ((DifferedInputNode) fromNode).isConfigured()) {
+// outputVal = ((DifferedInputNode) fromNode).getDefaultValue();
+// } else if (fromNode instanceof EndifNode || fromNode instanceof DoWhileNode || fromNode instanceof EndDoWhileNode) {
+// Invoker fromInvoker = invokerMap.get(fromNode);
+// outputVal = fromInvoker.getOutput(inputPort.getFromPort().getID());
+// } else if (fromNode instanceof InstanceNode) {
+// return ((InstanceNode) fromNode).getOutputInstanceId();
+// } else if (fromNode instanceof EndForEachNode) {
+// outputVal = "";
+// Invoker workflowInvoker = invokerMap.get(fromNode);
+// String outputName = "";
+// if (inputPort instanceof SystemDataPort) {
+// outputName = ((SystemDataPort) inputPort).getWSComponentPort().getName();
+//
+// } else if (inputPort instanceof WSPort) {
+// outputName = ((SystemDataPort) fromNode.getInputPort(fromNode.getOutputPorts().indexOf(inputPort.getEdge(0).getFromPort())))
+// .getWSComponentPort().getName();
+// }
+// XmlElement msgElmt = XmlConstants.BUILDER.parseFragmentFromString("<temp>" + workflowInvoker.getOutput(outputName) + "</temp>");
+// Iterator valItr = msgElmt.children().iterator();
+// while (valItr.hasNext()) {
+// Object object2 = valItr.next();
+// if (object2 instanceof XmlElement) {
+//
+// if (((XmlElement) object2).children().iterator().hasNext()) {
+// outputVal = outputVal + StringUtil.DELIMETER + StringUtil.quoteString(((XmlElement) object2).children().iterator().next().toString());
+// }
+// }
+// }
+//
+// if (((String) outputVal).length() == 0) {
+// throw new WorkflowException("Empty Output Generated");
+// }
+// outputVal = ((String) outputVal).substring(1, ((String) outputVal).length());
+// } else {
+// Invoker fromInvoker = invokerMap.get(fromNode);
+// try {
+// if (fromInvoker != null)
+// outputVal = fromInvoker.getOutput(inputPort.getFromPort().getName());
+//
+// } catch (Exception e) {
+// // if the value is still null look it up from the inputport name
+// // because the value is set to the input port name at some point
+// // there is no harm in doing this
+// if (null == outputVal) {
+// outputVal = fromInvoker.getOutput(inputPort.getName());
+// }
+// }
+
+ }
+ return outputVal;
+
+ }
+ /**
+ * @param node
+ * @return
+ */
+ public static Node findEndForEachFor(ForEachNode node) {
+
+ Collection<Node> toNodes = node.getOutputPort(0).getToNodes();
+ if (toNodes.size() != 1) {
+ throw new WorkflowRuntimeException("ForEach output does not contain single out-edge");
+ }
+ Node middleNode = toNodes.iterator().next();
+ List<DataPort> outputPorts = middleNode.getOutputPorts();
+ for (DataPort dataPort : outputPorts) {
+ if (dataPort.getToNodes().size() == 1) {
+ Node possibleEndForEachNode = dataPort.getToNodes().get(0);
+ if (possibleEndForEachNode instanceof EndForEachNode) {
+ return possibleEndForEachNode;
+ }
+ }
+ }
+ throw new WorkflowRuntimeException("EndForEachNode not found");
+ }
+
+ public static Integer[] getNumberOfInputsForForEachNode(final ForEachNode forEachNode, Map<Node, Invoker> invokerMap) throws WorkflowException {
+ List<DataPort> inputPorts = forEachNode.getInputPorts();
+ Integer[] inputNumbers = new Integer[inputPorts.size()];
+ for (DataPort forEachInputPort : inputPorts) {
+ // if input node for for-each is WSNode
+ Node forEachInputNode = forEachInputPort.getFromNode();
+ int index = 0;
+ Object returnValForProvenance = null;
+ if (forEachInputNode instanceof InputNode) {
+ returnValForProvenance = InterpreterUtil.findInputFromPort(forEachInputPort, invokerMap);
+ if (null == returnValForProvenance) {
+ throw new WorkFlowInterpreterException("Unable to find input for the node:" + forEachNode.getID());
+ }
+ String[] vals = StringUtil.getElementsFromString(returnValForProvenance.toString());
+ inputNumbers[inputPorts.indexOf(forEachInputPort)] = vals.length;
+ }
+ }
+ return inputNumbers;
+ }
+
+ public static ArrayList<Node> getFinishedNodesDynamically(WSGraph graph) {
+ return getNodesWithBodyColor(NodeExecutionState.FINISHED, graph);
+ }
+
+ public static ArrayList<Node> getFailedNodesDynamically(WSGraph graph) {
+ return getNodesWithBodyColor(NodeExecutionState.FAILED, graph);
+ }
+
+ public static ArrayList<Node> getWaitingNodesDynamically(WSGraph graph) {
+ return getNodesWithBodyColor(NodeExecutionState.WAITING, graph);
+ }
+
+ public static ArrayList<Node> getNodesWithBodyColor(NodeExecutionState state, WSGraph graph) {
+ ArrayList<Node> list = new ArrayList<Node>();
+ List<NodeImpl> nodes = graph.getNodes();
+ for (Node node : nodes) {
+ if (node.getState()==state) {
+ list.add(node);
+ }
+ }
+ return list;
+ }
+
+ public static int getRunningNodeCountDynamically(WSGraph graph) {
+ return getNodeCountWithBodyColor(NodeExecutionState.EXECUTING, graph);
+ }
+
+ public static int getFailedNodeCountDynamically(WSGraph graph) {
+ return getFailedNodesDynamically(graph).size();
+ }
+
+ public static int getWaitingNodeCountDynamically(WSGraph graph) {
+ return getNodeCountWithBodyColor(NodeExecutionState.WAITING, graph);
+ }
+
+ public static int getNodeCountWithBodyColor(NodeExecutionState state, WSGraph graph) {
+ int sum = 0;
+ List<NodeImpl> nodes = graph.getNodes();
+ for (Node node : nodes) {
+ if (node.getState()==state) {
+ ++sum;
+ }
+ }
+ return sum;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/RegistryConstants.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/RegistryConstants.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/RegistryConstants.java
new file mode 100644
index 0000000..51db345
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/RegistryConstants.java
@@ -0,0 +1,30 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.workflow.engine.util;
+
+public class RegistryConstants {
+ public static final String REGISTRY_TYPE_JCR="registry.type.jcr";
+ public static final String REGISTRY_TYPE_LOCAL="registry.type.local";
+ public static final String REGISTRY_TYPE_URL="registry.type.url";
+ public static final String REGISTRY_TYPE_GPEL="registry.type.gpel";
+ public static final String REGISTRY_TYPE_WEB="registry.type.web";
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/TransferFile.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/TransferFile.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/TransferFile.java
new file mode 100644
index 0000000..a63884d
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/TransferFile.java
@@ -0,0 +1,170 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.workflow.engine.util;
+
+
+public class TransferFile {
+ private String submission_id;
+ private boolean preserve_timestamp;
+ private String DATA_TYPE;
+ private boolean encrypt_data;
+ private String sync_level;
+ private String source_endpoint;
+ private String label;
+ private String destination_endpoint;
+ private int length;
+ private String deadline;
+ private boolean notify_on_succeeded;
+ private boolean notify_on_failed;
+ private boolean verify_checksum;
+ private boolean notify_on_inactive;
+ private boolean delete_destination_extra;
+ private Data[] DATA;
+
+ public String getSubmission_id() {
+ return submission_id;
+ }
+
+ public void setSubmission_id(String submission_id) {
+ this.submission_id = submission_id;
+ }
+
+ public boolean getPreserve_timestamp() {
+ return preserve_timestamp;
+ }
+
+ public void setPreserve_timestamp(boolean preserve_timestamp) {
+ this.preserve_timestamp = preserve_timestamp;
+ }
+
+ public String getDATA_TYPE() {
+ return DATA_TYPE;
+ }
+
+ public void setDATA_TYPE(String DATA_TYPE) {
+ this.DATA_TYPE = DATA_TYPE;
+ }
+
+ public boolean getEncrypt_data() {
+ return encrypt_data;
+ }
+
+ public void setEncrypt_data(boolean encrypt_data) {
+ this.encrypt_data = encrypt_data;
+ }
+
+ public String getSync_level() {
+ return sync_level;
+ }
+
+ public void setSync_level(String sync_level) {
+ this.sync_level = sync_level;
+ }
+
+ public String getSource_endpoint() {
+ return source_endpoint;
+ }
+
+ public void setSource_endpoint(String source_endpoint) {
+ this.source_endpoint = source_endpoint;
+ }
+
+ public String getLabel() {
+ return label;
+ }
+
+ public void setLabel(String label) {
+ this.label = label;
+ }
+
+ public String getDestination_endpoint() {
+ return destination_endpoint;
+ }
+
+ public void setDestination_endpoint(String destination_endpoint) {
+ this.destination_endpoint = destination_endpoint;
+ }
+
+ public int getLength() {
+ return length;
+ }
+
+ public void setLength(int length) {
+ this.length = length;
+ }
+
+ public String getDeadline() {
+ return deadline;
+ }
+
+ public void setDeadline(String deadline) {
+ this.deadline = deadline;
+ }
+
+ public boolean getNotify_on_succeeded() {
+ return notify_on_succeeded;
+ }
+
+ public void setNotify_on_succeeded(boolean notify_on_succeeded) {
+ this.notify_on_succeeded = notify_on_succeeded;
+ }
+
+ public boolean getNotify_on_failed() {
+ return notify_on_failed;
+ }
+
+ public void setNotify_on_failed(boolean notify_on_failed) {
+ this.notify_on_failed = notify_on_failed;
+ }
+
+ public boolean getVerify_checksum() {
+ return verify_checksum;
+ }
+
+ public void setVerify_checksum(boolean verify_checksum) {
+ this.verify_checksum = verify_checksum;
+ }
+
+ public boolean getNotify_on_inactive() {
+ return notify_on_inactive;
+ }
+
+ public void setNotify_on_inactive(boolean notify_on_inactive) {
+ this.notify_on_inactive = notify_on_inactive;
+ }
+
+ public boolean getDelete_destination_extra() {
+ return delete_destination_extra;
+ }
+
+ public void setDelete_destination_extra(boolean delete_destination_extra) {
+ this.delete_destination_extra = delete_destination_extra;
+ }
+
+ public Data[] getDATA() {
+ return DATA;
+ }
+
+ public void setDATA(Data[] DATA) {
+ this.DATA = DATA;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/XBayaUtil.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/XBayaUtil.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/XBayaUtil.java
new file mode 100644
index 0000000..9735c52
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/util/XBayaUtil.java
@@ -0,0 +1,218 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.workflow.engine.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.SocketTimeoutException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.apache.airavata.client.stub.interpretor.NameValue;
+import org.apache.airavata.common.utils.StringUtil;
+import org.apache.airavata.workflow.engine.interpretor.WorkFlowInterpreterException;
+import org.apache.airavata.workflow.engine.invoker.Invoker;
+import org.apache.airavata.workflow.model.exceptions.WorkflowException;
+import org.apache.airavata.workflow.model.exceptions.WorkflowRuntimeException;
+import org.apache.airavata.workflow.model.graph.DataPort;
+import org.apache.airavata.workflow.model.graph.Node;
+import org.apache.airavata.workflow.model.graph.amazon.InstanceNode;
+import org.apache.airavata.workflow.model.graph.system.ConstantNode;
+import org.apache.airavata.workflow.model.graph.system.EndForEachNode;
+import org.apache.airavata.workflow.model.graph.system.EndifNode;
+import org.apache.airavata.workflow.model.graph.system.ForEachNode;
+import org.apache.airavata.workflow.model.graph.system.InputNode;
+import org.apache.axis2.util.XMLUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+import org.xmlpull.infoset.XmlElement;
+
+import xsul5.XmlConstants;
+
+public class XBayaUtil {
+
+ private static final Logger logger = LoggerFactory.getLogger(XBayaUtil.class);
+ public static final String JCR_USER = "jcr.username";
+ public static final String JCR_PASS = "jcr.password";
+ public static final String JCR_URL = "jcr.url";
+
+
+ public static boolean isURLExists(String URLName) {
+ try {
+ if (!URLName.toUpperCase().contains("HTTP"))
+ URLName = "http://" + URLName;
+ URL url = new URL(URLName);
+ System.setProperty("java.net.useSystemProxies", "true");
+ HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
+ urlConn.setConnectTimeout(9000);
+ urlConn.setReadTimeout(9000);
+ urlConn.connect();
+ if (HttpURLConnection.HTTP_OK == urlConn.getResponseCode())
+ return true;
+ else
+ return false;
+ } catch (SocketTimeoutException e) {
+ return false;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public static Object getInputsForForEachNode(final ForEachNode forEachNode,
+ final LinkedList<String> listOfValues, Map<Node, Invoker> invokerMap) throws WorkflowException {
+ Node forEachInputNode = forEachNode.getInputPort(0).getFromNode();
+ // if input node for for-each is WSNode
+ Object returnValForProvenance = null;
+ if (forEachInputNode instanceof InputNode) {
+ for (DataPort dataPort : forEachNode.getInputPorts()) {
+ returnValForProvenance = XBayaUtil
+ .findInputFromPort(dataPort, invokerMap);
+ if (null == returnValForProvenance) {
+ throw new WorkFlowInterpreterException(
+ "Unable to find input for the node:"
+ + forEachNode.getID());
+ }
+ String[] vals = StringUtil.getElementsFromString(returnValForProvenance.toString());
+ listOfValues.addAll(Arrays.asList(vals));
+ }
+ }
+ return returnValForProvenance;
+ }
+
+ /**
+ *
+ * @param inputPort
+ * @param invokerMap
+ * @return
+ * @throws WorkflowException
+ */
+ public static Object findInputFromPort(DataPort inputPort, Map<Node, Invoker> invokerMap) throws WorkflowException {
+ Object outputVal = null;
+ Node fromNode = inputPort.getFromNode();
+ if (fromNode instanceof InputNode) {
+ outputVal = ((InputNode) fromNode).getDefaultValue();
+ } else if (fromNode instanceof ConstantNode) {
+ outputVal = ((ConstantNode) fromNode).getValue();
+ } else if (fromNode instanceof EndifNode) {
+ Invoker fromInvoker = invokerMap.get(fromNode);
+ outputVal = fromInvoker.getOutput(inputPort.getFromPort().getID());
+ } else if (fromNode instanceof InstanceNode) {
+ return ((InstanceNode) fromNode).getOutputInstanceId();
+ } else if (fromNode instanceof EndForEachNode) {
+ outputVal = "";
+ Invoker workflowInvoker = invokerMap.get(fromNode);
+ String outputName = fromNode.getOutputPort(0).getName();
+ XmlElement msgElmt = XmlConstants.BUILDER
+ .parseFragmentFromString("<temp>"
+ + workflowInvoker.getOutput(outputName) + "</temp>");
+ Iterator valItr = msgElmt.children().iterator();
+ while (valItr.hasNext()) {
+ Object object2 = valItr.next();
+ if (object2 instanceof XmlElement) {
+ outputVal = outputVal
+ + StringUtil.DELIMETER
+ + StringUtil.quoteString(((XmlElement) object2).children().iterator()
+ .next().toString());
+ }
+ }
+ outputVal = ((String) outputVal).substring(1,
+ ((String) outputVal).length());
+ } else {
+ Invoker fromInvoker = invokerMap.get(fromNode);
+ try {
+ if (fromInvoker != null)
+ outputVal = fromInvoker.getOutput(inputPort.getFromPort()
+ .getName());
+
+ } catch (Exception e) {
+ // if the value is still null look it up from the inputport name
+ // because the value is set to the input port name at some point
+ // there is no harm in doing this
+ if (null == outputVal) {
+ outputVal = fromInvoker.getOutput(inputPort.getName());
+ }
+ }
+
+ }
+ return outputVal;
+
+ }
+
+ /**
+ * @param node
+ * @return
+ */
+ public static Node findEndForEachFor(ForEachNode node) {
+
+ Collection<Node> toNodes = node.getOutputPort(0).getToNodes();
+ if(toNodes.size() != 1){
+ throw new WorkflowRuntimeException("ForEach output does not contain single out-edge");
+ }
+ Node middleNode = toNodes.iterator().next();
+ List<DataPort> outputPorts = middleNode.getOutputPorts();
+ for (DataPort dataPort : outputPorts) {
+ if(dataPort.getToNodes().size() == 1){
+ Node possibleEndForEachNode = dataPort.getToNodes().get(0);
+ if(possibleEndForEachNode instanceof EndForEachNode){
+ return possibleEndForEachNode;
+ }
+ }
+ }
+ throw new WorkflowRuntimeException("EndForEachNode not found");
+ }
+
+
+ public static List<NameValue> getIOParameterData(String xml) throws ParserConfigurationException, SAXException, IOException{
+ List<NameValue> parameters=new ArrayList<NameValue>();
+ Document parameterDocument = XMLUtils.newDocument(new ByteArrayInputStream(xml.getBytes()));
+ org.w3c.dom.NodeList childNodes = parameterDocument.getDocumentElement().getChildNodes();
+ for(int i=0;i<childNodes.getLength();i++){
+ org.w3c.dom.Node parameterNode = childNodes.item(i);
+ NameValue pair = new NameValue();
+ pair.setName(parameterNode.getLocalName());
+ pair.setValue(parameterNode.getTextContent());
+ parameters.add(pair);
+ }
+ return parameters;
+ }
+
+// public static AiravataRegistry2 getRegistry(URL url) throws IOException, RepositoryException, URISyntaxException {
+// Properties properties = new Properties();
+// properties.load(url.openStream());
+// JCRComponentRegistry jcrComponentRegistry = new JCRComponentRegistry(new URI((String) properties.get(JCR_URL)),
+// (String) properties.get(JCR_USER),(String) properties.get(JCR_PASS));
+// return jcrComponentRegistry.getRegistry();
+// }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/WorkflowEngineException.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/WorkflowEngineException.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/WorkflowEngineException.java
new file mode 100644
index 0000000..46f5fe8
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/WorkflowEngineException.java
@@ -0,0 +1,42 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.workflow.engine.workflow;
+
+import org.apache.airavata.workflow.model.exceptions.WorkflowException;
+
+public class WorkflowEngineException extends WorkflowException {
+ public WorkflowEngineException() {
+ super(); // To change body of overridden methods use File | Settings | File Templates.
+ }
+
+ public WorkflowEngineException(String message) {
+ super(message); // To change body of overridden methods use File | Settings | File Templates.
+ }
+
+ public WorkflowEngineException(Throwable cause) {
+ super(cause); // To change body of overridden methods use File | Settings | File Templates.
+ }
+
+ public WorkflowEngineException(String message, Throwable cause) {
+ super(message, cause); // To change body of overridden methods use File | Settings | File Templates.
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/ProxyWSDL.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/ProxyWSDL.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/ProxyWSDL.java
new file mode 100644
index 0000000..f9ad6a9
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/ProxyWSDL.java
@@ -0,0 +1,87 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.workflow.engine.workflow.proxy;
+
+public class ProxyWSDL {
+ // FIXME Remove this once the duel network problem is solved
+ public static String WSDL = "<wsdl:definitions targetNamespace='http://extreme.indiana.edu/weps' "
+ + "xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' "
+ + "xmlns:tns='http://extreme.indiana.edu/weps' xmlns:http='http://schemas.xmlsoap.org/wsdl/http/' "
+ + "xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' "
+ + "xmlns:mime='http://schemas.xmlsoap.org/wsdl/mime/'> " + "<wsdl:types> "
+ + "<xs:schema elementFormDefault='qualified' " + "targetNamespace='http://extreme.indiana.edu/weps'> "
+ + "<xs:element name='DeploymentInformation'> " + "<xs:complexType> " + "<xs:sequence> "
+ + "<xs:element name='ProcessName' type='xs:string' /> "
+ + "<xs:element maxOccurs='1' minOccurs='0' name='TemplateId' " + "type='xs:string' /> "
+ + "<xs:element name='DeploymentDocuments' type='tns:DeploymentDocumentsType'> " +
+
+ "</xs:element> " + "</xs:sequence> " + "</xs:complexType> " + "</xs:element> "
+ + "<xs:complexType name='DeploymentDocumentsType'> " + "<xs:sequence> "
+ + "<xs:element name='BPEL' type='xs:anyType' /> "
+ + "<xs:element name='DeploymentDescriptor' type='xs:anyType' /> "
+ + "<xs:element name='ProcessWSDL' type='tns:XMLFile' /> " +
+
+ "<xs:element maxOccurs='unbounded' minOccurs='1' " + "name='ServiceWSDLs' type='tns:XMLFile' /> "
+ + "<xs:element maxOccurs='unbounded' minOccurs='0' name='Other' " + "type='xs:anyType' /> "
+ + "</xs:sequence> " + "</xs:complexType> " + "<xs:complexType name='XMLFile'> " + "<xs:sequence> "
+ + "<xs:element name='FileName' type='xs:string' /> " + "<xs:element name='Content' type='xs:anyType'> "
+ + "</xs:element> " +
+
+ "</xs:sequence> " + "</xs:complexType> " + "<xs:element name='Result' type='xs:string' /> "
+ + "<xs:element name='ProcessName' type='xs:string' /> " + "<xs:element name='CreateInstanceResponse'> "
+ + "<xs:complexType> " + "<xs:sequence> " + "<xs:element name='ProcessName' type='xs:string' /> "
+ + "<xs:element name='ProcessWSDL' type='xs:anyType'> " +
+
+ "</xs:element> " + "</xs:sequence> " + "</xs:complexType> " + "</xs:element> " + "</xs:schema> "
+ + "</wsdl:types> " + "<wsdl:message name='DeployRequest'> "
+ + "<wsdl:part name='DeploymentInformation' element='tns:DeploymentInformation'> " + "</wsdl:part> " +
+
+ "</wsdl:message> " + "<wsdl:message name='CreateInstanceResponse'> "
+ + "<wsdl:part name='Response' element='tns:CreateInstanceResponse'> " + "</wsdl:part> "
+ + "</wsdl:message> " + "<wsdl:message name='CreateInstanceRequest'> "
+ + "<wsdl:part name='ProcessName' element='tns:ProcessName'> " + "</wsdl:part> " + "</wsdl:message> " +
+
+ "<wsdl:message name='DeployResponse'> " + "<wsdl:part name='Response' element='tns:Result'> "
+ + "</wsdl:part> " + "</wsdl:message> " + "<wsdl:portType name='WEPSPortType'> "
+ + "<wsdl:operation name='deploy'> " + "<wsdl:input message='tns:DeployRequest'> " + "</wsdl:input> "
+ + "<wsdl:output message='tns:DeployResponse'> " +
+
+ "</wsdl:output> " + "</wsdl:operation> " + "<wsdl:operation name='createInstance'> "
+ + "<wsdl:input message='tns:CreateInstanceRequest'> " + "</wsdl:input> "
+ + "<wsdl:output message='tns:CreateInstanceResponse'> " + "</wsdl:output> " + "</wsdl:operation> "
+ + "</wsdl:portType> " +
+
+ "<wsdl:binding name='WEPSBinding' type='tns:WEPSPortType'> " + "<soap:binding style='document' "
+ + "transport='http://schemas.xmlsoap.org/soap/http' /> " + "<wsdl:operation name='deploy'> "
+ + "<soap:operation soapAction='urn:deploy' /> " + "<wsdl:input> " + "<soap:body use='literal' /> "
+ + "</wsdl:input> " + "<wsdl:output> " + "<soap:body use='literal' /> " +
+
+ "</wsdl:output> " + "</wsdl:operation> " + "<wsdl:operation name='createInstance'> "
+ + "<soap:operation soapAction='urn:createInstance' /> " + "<wsdl:input> " + "<soap:body use='literal' /> "
+ + "</wsdl:input> " + "<wsdl:output> " + "<soap:body use='literal' /> " +
+
+ "</wsdl:output> " + "</wsdl:operation> " + "</wsdl:binding> " + "<wsdl:service name='WEPSService'> "
+ + "<wsdl:port name='WEPS' binding='tns:WEPSBinding'> " + "<soap:address "
+ + "location='http://silktree.cs.indiana.edu:18080/axis2/services/WEPSService' /> " + "</wsdl:port> "
+ + "</wsdl:service> " + "</wsdl:definitions> ";
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowClient.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowClient.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowClient.java
new file mode 100644
index 0000000..bd67fb1
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowClient.java
@@ -0,0 +1,35 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.workflow.engine.workflow.proxy;
+
+import org.apache.airavata.common.utils.Pair;
+import org.ietf.jgss.GSSException;
+
+public interface WorkflowClient {
+
+ public Pair<String, String> invoke(Pair<String, String>[] inputs) throws GSSException;
+
+ public void init();
+
+ public String getInstanceID();
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowContext.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowContext.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowContext.java
new file mode 100644
index 0000000..a5ab394
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowContext.java
@@ -0,0 +1,42 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.workflow.engine.workflow.proxy;
+
+import java.net.URISyntaxException;
+
+import org.apache.airavata.workflow.model.wf.Workflow;
+import org.ietf.jgss.GSSCredential;
+import org.ietf.jgss.GSSException;
+
+import xsul.lead.LeadContextHeader;
+
+public interface WorkflowContext {
+
+ public void prepare(WorkflowClient client, Workflow workflow) throws GSSException, URISyntaxException;
+
+ public LeadContextHeader getHeader();
+
+ public GSSCredential getCredentials();
+
+ public String getTopic();
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowProxyException.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowProxyException.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowProxyException.java
new file mode 100644
index 0000000..7a87d9a
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/workflow/proxy/WorkflowProxyException.java
@@ -0,0 +1,64 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.workflow.engine.workflow.proxy;
+
+import org.apache.airavata.workflow.engine.workflow.WorkflowEngineException;
+
+public class WorkflowProxyException extends WorkflowEngineException {
+
+ /**
+ * Constructs a WorkflowProxyException.
+ *
+ */
+ public WorkflowProxyException() {
+ super();
+ }
+
+ /**
+ * Constructs a WorkflowProxyException.
+ *
+ * @param message
+ */
+ public WorkflowProxyException(String message) {
+ super(message);
+ }
+
+ /**
+ * Constructs a WorkflowProxyException.
+ *
+ * @param cause
+ */
+ public WorkflowProxyException(Throwable cause) {
+ super(cause);
+ }
+
+ /**
+ * Constructs a WorkflowProxyException.
+ *
+ * @param message
+ * @param cause
+ */
+ public WorkflowProxyException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/WorkflowInterpretor.wsdl
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/WorkflowInterpretor.wsdl b/modules/workflow-model/workflow-engine/src/main/resources/WorkflowInterpretor.wsdl
new file mode 100644
index 0000000..a46d107
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/resources/WorkflowInterpretor.wsdl
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under
+ the Apache License, Version 2.0 (theÏ "License"); you may not use this file except in compliance with the License. You may
+ obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to
+ in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
+ ANY ~ KIND, either express or implied. See the License for the specific language governing permissions and limitations under
+ the License. -->
+
+<wsdl:definitions targetNamespace="http://xbaya.extreme.indiana.edu" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:ns="http://xbaya.extreme.indiana.edu" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ax21="http://xbaya.extreme.indiana.edu/xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/">
+ <wsdl:types>
+ <xs:schema targetNamespace="http://gui.component.xbaya.airavata.apache.org/xsd">
+ <xs:import namespace="http://registry.component.xbaya.airavata.apache.org/xsd"/>
+ <xs:element name="launchWorkflow">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="workflowAsString" nillable="true" type="xs:string"/>
+ <xs:element minOccurs="0" name="topic" nillable="true" type="xs:string"/>
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="inputs" nillable="true" type="ns:NameValue"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="launchWorkflowResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:complexType name="NameValue">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="name" nillable="true" type="xs:string"/>
+ <xs:element minOccurs="0" name="value" nillable="true" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:schema>
+ </wsdl:types>
+ <wsdl:message name="launchWorkflowRequest">
+ <wsdl:part name="parameters" element="ns:launchWorkflow">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="launchWorkflowResponse">
+ <wsdl:part name="parameters" element="ns:launchWorkflowResponse">
+ </wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="WorkflowInterpretorPortType">
+ <wsdl:operation name="launchWorkflow">
+ <wsdl:input message="ns:launchWorkflowRequest" wsaw:Action="urn:launchWorkflow">
+ </wsdl:input>
+ <wsdl:output message="ns:launchWorkflowResponse" wsaw:Action="urn:launchWorkflowResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="WorkflowInterpretorSoap11Binding" type="ns:WorkflowInterpretorPortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="launchWorkflow">
+ <soap:operation soapAction="urn:launchWorkflow" style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="WorkflowInterpretor">
+ <wsdl:port name="WorkflowInterpretorHttpSoap11Endpoint" binding="ns:WorkflowInterpretorSoap11Binding">
+ <soap:address location="http://ogceportal.iu.teragrid.org:19444/axis2/services/WorkflowInterpretor"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-2.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-2.png b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-2.png
new file mode 100644
index 0000000..28bca82
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-2.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-config.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-config.png b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-config.png
new file mode 100644
index 0000000..2b42807
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-config.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-icon.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-icon.png b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-icon.png
new file mode 100644
index 0000000..28cf91a
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-icon.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-icon2.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-icon2.png b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-icon2.png
new file mode 100644
index 0000000..d00e112
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-icon2.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-name.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-name.png b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-name.png
new file mode 100644
index 0000000..5c29ec9
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-name.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-title-text.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-title-text.png b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-title-text.png
new file mode 100644
index 0000000..3b737f4
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata-title-text.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/airavata.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/airavata.png b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata.png
new file mode 100644
index 0000000..7713189
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/airavata.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/application.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/application.png b/modules/workflow-model/workflow-engine/src/main/resources/images/application.png
new file mode 100644
index 0000000..66ae19c
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/application.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/applications.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/applications.png b/modules/workflow-model/workflow-engine/src/main/resources/images/applications.png
new file mode 100644
index 0000000..f40985e
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/applications.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/closed.gif
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/closed.gif b/modules/workflow-model/workflow-engine/src/main/resources/images/closed.gif
new file mode 100644
index 0000000..83ee32c
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/closed.gif differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/cloud.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/cloud.png b/modules/workflow-model/workflow-engine/src/main/resources/images/cloud.png
new file mode 100644
index 0000000..ac7284f
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/cloud.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/experiment.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/experiment.png b/modules/workflow-model/workflow-engine/src/main/resources/images/experiment.png
new file mode 100644
index 0000000..48fe90b
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/experiment.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/experiments.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/experiments.png b/modules/workflow-model/workflow-engine/src/main/resources/images/experiments.png
new file mode 100644
index 0000000..ed993e0
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/experiments.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/gfac_url.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/gfac_url.png b/modules/workflow-model/workflow-engine/src/main/resources/images/gfac_url.png
new file mode 100644
index 0000000..f4c1b7a
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/gfac_url.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/gfac_urls.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/gfac_urls.png b/modules/workflow-model/workflow-engine/src/main/resources/images/gfac_urls.png
new file mode 100644
index 0000000..9245910
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/gfac_urls.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/host.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/host.png b/modules/workflow-model/workflow-engine/src/main/resources/images/host.png
new file mode 100644
index 0000000..e76e671
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/host.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/hosts.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/hosts.png b/modules/workflow-model/workflow-engine/src/main/resources/images/hosts.png
new file mode 100644
index 0000000..cf0356d
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/hosts.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/input_para.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/input_para.png b/modules/workflow-model/workflow-engine/src/main/resources/images/input_para.png
new file mode 100644
index 0000000..d20c003
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/input_para.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/jcr-repo.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/jcr-repo.png b/modules/workflow-model/workflow-engine/src/main/resources/images/jcr-repo.png
new file mode 100644
index 0000000..6aa8545
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/jcr-repo.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/leaf.gif
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/leaf.gif b/modules/workflow-model/workflow-engine/src/main/resources/images/leaf.gif
new file mode 100644
index 0000000..b18a22f
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/leaf.gif differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/jcr.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/jcr.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/jcr.png
new file mode 100644
index 0000000..ba6e116
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/jcr.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/new2.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/new2.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/new2.png
new file mode 100644
index 0000000..2e56f58
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/new2.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open1.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open1.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open1.png
new file mode 100644
index 0000000..c706198
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open1.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open2.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open2.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open2.png
new file mode 100644
index 0000000..d2ce8de
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open2.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open_dir.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open_dir.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open_dir.png
new file mode 100644
index 0000000..936737e
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/open_dir.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/pause1.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/pause1.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/pause1.png
new file mode 100644
index 0000000..254767a
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/pause1.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/pause_monitor1.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/pause_monitor1.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/pause_monitor1.png
new file mode 100644
index 0000000..dfe320d
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/pause_monitor1.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/play3.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/play3.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/play3.png
new file mode 100644
index 0000000..88aee76
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/play3.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/play4.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/play4.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/play4.png
new file mode 100644
index 0000000..084250c
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/play4.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/resume_monitoring1.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/resume_monitoring1.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/resume_monitoring1.png
new file mode 100644
index 0000000..84be025
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/resume_monitoring1.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/save1.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/save1.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/save1.png
new file mode 100644
index 0000000..bf46fd1
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/save1.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/menu/stop.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/menu/stop.png b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/stop.png
new file mode 100644
index 0000000..60eb108
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/menu/stop.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/opened.gif
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/opened.gif b/modules/workflow-model/workflow-engine/src/main/resources/images/opened.gif
new file mode 100644
index 0000000..2d06b25
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/opened.gif differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/output_para.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/output_para.png b/modules/workflow-model/workflow-engine/src/main/resources/images/output_para.png
new file mode 100644
index 0000000..d09a694
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/output_para.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/parameter.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/parameter.png b/modules/workflow-model/workflow-engine/src/main/resources/images/parameter.png
new file mode 100644
index 0000000..8f9b90a
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/parameter.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/pause.jpeg
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/pause.jpeg b/modules/workflow-model/workflow-engine/src/main/resources/images/pause.jpeg
new file mode 100644
index 0000000..0c04b2f
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/pause.jpeg differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/play.jpeg
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/play.jpeg b/modules/workflow-model/workflow-engine/src/main/resources/images/play.jpeg
new file mode 100644
index 0000000..db2dd7e
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/play.jpeg differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/registry.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/registry.png b/modules/workflow-model/workflow-engine/src/main/resources/images/registry.png
new file mode 100644
index 0000000..168dec6
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/registry.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/service.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/service.png b/modules/workflow-model/workflow-engine/src/main/resources/images/service.png
new file mode 100644
index 0000000..2c02fa7
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/service.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/services.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/services.png b/modules/workflow-model/workflow-engine/src/main/resources/images/services.png
new file mode 100644
index 0000000..762544c
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/services.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/step.gif
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/step.gif b/modules/workflow-model/workflow-engine/src/main/resources/images/step.gif
new file mode 100644
index 0000000..1ec36ae
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/step.gif differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/stop.jpeg
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/stop.jpeg b/modules/workflow-model/workflow-engine/src/main/resources/images/stop.jpeg
new file mode 100644
index 0000000..57e8693
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/stop.jpeg differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/workflow.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/workflow.png b/modules/workflow-model/workflow-engine/src/main/resources/images/workflow.png
new file mode 100644
index 0000000..0efcc44
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/workflow.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/workflow_templates.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/workflow_templates.png b/modules/workflow-model/workflow-engine/src/main/resources/images/workflow_templates.png
new file mode 100644
index 0000000..53bd023
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/workflow_templates.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/images/workflows.png
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/images/workflows.png b/modules/workflow-model/workflow-engine/src/main/resources/images/workflows.png
new file mode 100644
index 0000000..16fa3f1
Binary files /dev/null and b/modules/workflow-model/workflow-engine/src/main/resources/images/workflows.png differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/services.xml
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/services.xml b/modules/workflow-model/workflow-engine/src/main/resources/services.xml
new file mode 100644
index 0000000..429b159
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/resources/services.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--Licensed to the Apache Software Foundation (ASF) under one or more contributor
+ license agreements. See the NOTICE file distributed with this work for additional
+ information regarding copyright ownership. The ASF licenses this file to
+ you under the Apache License, Version 2.0 (theÏ "License"); you may not use
+ this file except in compliance with the License. You may obtain a copy of
+ the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
+ by applicable law or agreed to in writing, software distributed under the
+ License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+ OF ANY ~ KIND, either express or implied. See the License for the specific
+ language governing permissions and limitations under the License. -->
+
+
+<!-- This file was auto-generated from WSDL -->
+<!-- by the Apache Axis2 version: 1.4 Built on : Apr 26, 2008 (06:24:30 EDT) -->
+<serviceGroup>
+ <service name="WorkflowInterpretor" class="org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton">
+ <messageReceivers>
+ <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out" class="org.apache.airavata.xbaya.interpretor.WorkflowInterpretorMessageReceiverInOut"/>
+ </messageReceivers>
+ <parameter name="ServiceClass">org.apache.airavata.xbaya.interpretor.WorkflowInterpretorSkeleton</parameter>
+ <parameter name="useOriginalwsdl">true</parameter>
+ <parameter name="modifyUserWSDLPortAddress">true</parameter>
+ <operation name="launchWorkflow" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://xbaya.extreme.indiana.edu">
+ <actionMapping>urn:launchWorkflow</actionMapping>
+ <outputActionMapping>urn:launchWorkflowResponse</outputActionMapping>
+ </operation>
+ </service>
+</serviceGroup>
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/wsdls/TestCMD_Example1_AWSDL.xml
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/wsdls/TestCMD_Example1_AWSDL.xml b/modules/workflow-model/workflow-engine/src/main/resources/wsdls/TestCMD_Example1_AWSDL.xml
new file mode 100644
index 0000000..0964447
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/resources/wsdls/TestCMD_Example1_AWSDL.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under
+ the Apache License, Version 2.0 (theÏ "License"); you may not use this file except in compliance with the License. You may
+ obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to
+ in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
+ ANY ~ KIND, either express or implied. See the License for the specific language governing permissions and limitations under
+ the License. -->
+
+<wsdl:definitions name="TestCMD_Example1" targetNamespace="http://www.extreme.indiana.edu/lead"
+ xmlns:typens="http://www.extreme.indiana.edu/lead/TestCMD_Example1/xsd" xmlns:wsdlns="http://www.extreme.indiana.edu/lead"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <wsdl:types>
+ <schema elementFormDefault="unqualified" targetNamespace="http://www.extreme.indiana.edu/lead/TestCMD_Example1/xsd"
+ xmlns="http://www.w3.org/2001/XMLSchema">
+ <element name="Run_InputParams" type="typens:Run_InputParamsType" />
+ <complexType name="Run_InputParamsType">
+ <sequence>
+ <element name="InputParam1" type="xsd:int">
+ <annotation>
+ <documentation>An input parameter</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ <element name="Run_OutputParams" type="typens:Run_OutputParamsType" />
+ <complexType name="Run_OutputParamsType">
+ <sequence>
+ <element name="OutputParam1" type="xsd:string">
+ <annotation>
+ <documentation>An output parameter</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ </schema>
+ </wsdl:types>
+ <wsdl:message name="Run_RequestMessage">
+ <wsdl:part name="parameters" element="typens:Run_InputParams" />
+ </wsdl:message>
+ <wsdl:message name="Run_ResponseMessage">
+ <wsdl:part name="parameters" element="typens:Run_OutputParams" />
+ </wsdl:message>
+ <wsdl:portType name="TestCMD_Example1">
+ <wsdl:documentation />
+ <wsdl:operation name="Run">
+ <wsdl:documentation>Run the service</wsdl:documentation>
+ <wsdl:input name="Run_RequestMessage" message="wsdlns:Run_RequestMessage" />
+ <wsdl:output name="Run_ResponseMessage" message="wsdlns:Run_ResponseMessage" />
+ </wsdl:operation>
+ </wsdl:portType>
+ <n:factoryServices xmlns:n="http://www.extreme.indiana.edu/namespaces/2004/01/gFac">
+ <n:factoryService location="http://rainier.extreme.indiana.edu:12345" operation="n:CreateService"
+ portType="n:GenericFactory" />
+ </n:factoryServices>
+</wsdl:definitions>
http://git-wip-us.apache.org/repos/asf/airavata/blob/a8974b7c/modules/workflow-model/workflow-engine/src/main/resources/wsdls/adder-awsdl.xml
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/resources/wsdls/adder-awsdl.xml b/modules/workflow-model/workflow-engine/src/main/resources/wsdls/adder-awsdl.xml
new file mode 100644
index 0000000..08e3577
--- /dev/null
+++ b/modules/workflow-model/workflow-engine/src/main/resources/wsdls/adder-awsdl.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under
+ the Apache License, Version 2.0 (theÏ "License"); you may not use this file except in compliance with the License. You may
+ obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to
+ in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
+ ANY ~ KIND, either express or implied. See the License for the specific language governing permissions and limitations under
+ the License. -->
+
+<definitions name="Adder" targetNamespace="http://www.extreme.indiana.edu/math/" xmlns:tns="http://www.extreme.indiana.edu/math/"
+ xmlns:typens="http://www.extreme.indiana.edu/math/adder/xsd/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+
+ <documentation xml:lang="en">A service for adding two numbers</documentation>
+
+ <types>
+ <schema elementFormDefault="unqualified" targetNamespace="http://www.extreme.indiana.edu/math/adder/xsd/"
+ xmlns="http://www.w3.org/2001/XMLSchema">
+ <element name="AddInput" type="typens:AddInputType" />
+ <complexType name="AddInputType">
+ <sequence>
+ <element name="x" type="xsd:int">
+ <annotation>
+ <documentation xml:lang="en">This is the first input</documentation>
+ </annotation>
+ </element>
+ <element name="y" type="xsd:int">
+ <annotation>
+ <documentation xml:lang="en">This is the second input</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ <element name="AddOutput" type="typens:AddOutputType" />
+ <complexType name="AddOutputType">
+ <sequence>
+ <element name="z" type="xsd:int">
+ <annotation>
+ <documentation xml:lang="en">This is the result</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ </schema>
+ </types>
+
+ <message name="AddInputMessage">
+ <part name="AddInputMessagePart" element="typens:AddInput" />
+ </message>
+ <message name="AddOutputMessage">
+ <part name="AddOutputMessagePart" element="typens:AddOutput" />
+ </message>
+
+ <portType name="Adder">
+ <documentation xml:lang="en" />
+ <operation name="add">
+ <documentation = en ">Run the adder</documentation>
+ <input name="AddInput" message="tns:AddInputMessage" />
+ <output name="AddOutput" message="tns:AddOutputMessage" />
+ </operation>
+ </portType>
+</definitions>
\ No newline at end of file