Cleaning up Xbaya use of legacy LEAD code - AIRAVATA-1700
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/382b6c0e Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/382b6c0e Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/382b6c0e Branch: refs/heads/master Commit: 382b6c0e6bf64d968bf0f39f3c5776dbc73c51d8 Parents: 34cd927 Author: Suresh Marru <[email protected]> Authored: Tue May 12 21:19:28 2015 -0400 Committer: Suresh Marru <[email protected]> Committed: Tue May 12 21:19:28 2015 -0400 ---------------------------------------------------------------------- modules/workflow-model/workflow-engine/pom.xml | 7 - modules/xbaya-gui/pom.xml | 5 - .../airavata/xbaya/XBayaConfiguration.java | 12 - .../org/apache/airavata/xbaya/XBayaVersion.java | 2 +- .../xbaya/graph/controller/NodeController.java | 4 - .../xbaya/interpretor/DoWhileHandler.java | 248 ------- .../interpretor/SystemComponentInvoker.java | 116 ---- .../xbaya/invoker/AsynchronousInvoker.java | 118 ---- .../airavata/xbaya/invoker/DynamicInvoker.java | 168 ----- .../xbaya/invoker/DynamicServiceCreator.java | 86 --- .../xbaya/invoker/EmbeddedGFacInvoker.java | 686 ------------------- .../airavata/xbaya/invoker/GFacInvoker.java | 199 ------ .../airavata/xbaya/invoker/GenericInvoker.java | 529 -------------- .../apache/airavata/xbaya/invoker/Invoker.java | 105 --- .../invoker/MsgBoxWsaResponsesCorrelator.java | 139 ---- .../airavata/xbaya/invoker/SimpleInvoker.java | 260 ------- .../xbaya/invoker/WorkflowInputUtil.java | 72 -- .../WorkflowInvokerWrapperForGFacInvoker.java | 233 ------- .../xbaya/invoker/factory/InvokerFactory.java | 90 --- .../xbaya/jython/script/JythonScript.java | 7 +- .../apache/airavata/xbaya/lead/LEADTypes.java | 225 ------ .../xbaya/lead/LeadContextHeaderHelper.java | 149 ---- .../xbaya/lead/NotificationHandler.java | 183 ----- .../graph/dynamic/DynamicNodeWindow.java | 475 ------------- .../dynamic/DynamicWorkflowRunnerWindow.java | 394 ----------- .../system/ConstantConfigurationDialog.java | 1 - .../DifferedInputConfigurationDialog.java | 1 - .../graph/system/InputConfigurationDialog.java | 1 - .../xbaya/ui/graph/dynamic/DynamicNodeGUI.java | 73 -- .../airavata/xbaya/ui/menues/RunMenuItem.java | 6 +- .../airavata/xbaya/util/InterpreterUtil.java | 391 ----------- .../apache/airavata/xbaya/util/XBayaUtil.java | 107 --- 32 files changed, 5 insertions(+), 5087 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/382b6c0e/modules/workflow-model/workflow-engine/pom.xml ---------------------------------------------------------------------- diff --git a/modules/workflow-model/workflow-engine/pom.xml b/modules/workflow-model/workflow-engine/pom.xml index f5afb3d..4ffa4bf 100644 --- a/modules/workflow-model/workflow-engine/pom.xml +++ b/modules/workflow-model/workflow-engine/pom.xml @@ -282,13 +282,6 @@ <scope>runtime</scope> </dependency> <dependency> - <groupId>org.apache.airavata</groupId> - <artifactId>airavata-workflow-execution-context</artifactId> - <version>${project.version}</version> - </dependency> - <!--dependency> <groupId>org.apache.airavata</groupId> <artifactId>airavata-jpa-registry</artifactId> <version>${project.version}</version> - </dependency --> - <dependency> <groupId>org.apache.derby</groupId> <artifactId>derbyclient</artifactId> <version>${derby.version}</version> http://git-wip-us.apache.org/repos/asf/airavata/blob/382b6c0e/modules/xbaya-gui/pom.xml ---------------------------------------------------------------------- diff --git a/modules/xbaya-gui/pom.xml b/modules/xbaya-gui/pom.xml index 1a39990..acf695f 100644 --- a/modules/xbaya-gui/pom.xml +++ b/modules/xbaya-gui/pom.xml @@ -252,11 +252,6 @@ <scope>runtime</scope> </dependency> <dependency> - <groupId>org.apache.airavata</groupId> - <artifactId>airavata-workflow-execution-context</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> <groupId>org.apache.derby</groupId> <artifactId>derbyclient</artifactId> <version>${derby.version}</version> http://git-wip-us.apache.org/repos/asf/airavata/blob/382b6c0e/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaConfiguration.java ---------------------------------------------------------------------- diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaConfiguration.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaConfiguration.java index 33012c5..06d3216 100644 --- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaConfiguration.java +++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaConfiguration.java @@ -32,7 +32,6 @@ import java.util.Observer; import org.apache.airavata.api.Airavata.Client; import org.apache.airavata.model.error.AiravataClientConnectException; -import org.apache.airavata.schemas.wec.ContextHeaderDocument; import org.apache.airavata.workflow.model.component.registry.JCRComponentRegistry; import org.apache.airavata.xbaya.core.ide.XBayaExecutionModeListener; import org.apache.airavata.xbaya.file.XBayaPathConstants; @@ -140,9 +139,6 @@ public class XBayaConfiguration extends Observable implements Observer { private boolean regURLSetByCMD = false; - - private ContextHeaderDocument.ContextHeader contextHeader; - private Map<ThriftServiceType, ThriftClientData> thriftClientDataList = new HashMap<ThriftServiceType, ThriftClientData>(); public enum XBayaExecutionMode{ @@ -861,14 +857,6 @@ public class XBayaConfiguration extends Observable implements Observer { this.regURLSetByCMD = regURLSetByCMD; } - public ContextHeaderDocument.ContextHeader getContextHeader() { - return contextHeader; - } - - public void setContextHeader(ContextHeaderDocument.ContextHeader contextHeader) { - this.contextHeader = contextHeader; - } - public Map<ThriftServiceType, ThriftClientData> getThriftClientDataList() { return thriftClientDataList; } http://git-wip-us.apache.org/repos/asf/airavata/blob/382b6c0e/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaVersion.java ---------------------------------------------------------------------- diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaVersion.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaVersion.java index 5e34672..0c95785 100644 --- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaVersion.java +++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/XBayaVersion.java @@ -28,7 +28,7 @@ public class XBayaVersion { /** * Version number */ - public final static Version VERSION = new Version("Airavata XBaya", 0, 11, + public final static Version VERSION = new Version("Airavata XBaya", 0, 15, null, null, null);; /** http://git-wip-us.apache.org/repos/asf/airavata/blob/382b6c0e/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/graph/controller/NodeController.java ---------------------------------------------------------------------- diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/graph/controller/NodeController.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/graph/controller/NodeController.java index 3ecf54c..56f8bea 100644 --- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/graph/controller/NodeController.java +++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/graph/controller/NodeController.java @@ -32,7 +32,6 @@ import org.apache.airavata.workflow.model.graph.Node.NodeExecutionState; import org.apache.airavata.workflow.model.graph.Port; import org.apache.airavata.workflow.model.graph.amazon.InstanceNode; import org.apache.airavata.workflow.model.graph.amazon.TerminateInstanceNode; -import org.apache.airavata.workflow.model.graph.dynamic.DynamicNode; import org.apache.airavata.workflow.model.graph.subworkflow.SubWorkflowNode; import org.apache.airavata.workflow.model.graph.system.BlockNode; import org.apache.airavata.workflow.model.graph.system.ConstantNode; @@ -60,7 +59,6 @@ import org.apache.airavata.xbaya.ui.graph.NodeGUI; import org.apache.airavata.xbaya.ui.graph.PortGUI; import org.apache.airavata.xbaya.ui.graph.amazon.InstanceNodeGUI; import org.apache.airavata.xbaya.ui.graph.amazon.TerminateInstanceNodeGUI; -import org.apache.airavata.xbaya.ui.graph.dynamic.DynamicNodeGUI; import org.apache.airavata.xbaya.ui.graph.subworkflow.SubWorkflowNodeGUI; import org.apache.airavata.xbaya.ui.graph.system.BlockNodeGUI; import org.apache.airavata.xbaya.ui.graph.system.ConstantNodeGUI; @@ -125,8 +123,6 @@ public class NodeController { GraphPieceGUI nodeGUI=null; if (node instanceof SubWorkflowNode){ nodeGUI=new SubWorkflowNodeGUI((SubWorkflowNode)node); - } else if (node instanceof DynamicNode){ - nodeGUI=new DynamicNodeGUI((DynamicNode)node); } else if (node instanceof ConstantNode){ nodeGUI=new ConstantNodeGUI((ConstantNode)node); } else if (node instanceof IfNode){ http://git-wip-us.apache.org/repos/asf/airavata/blob/382b6c0e/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/DoWhileHandler.java ---------------------------------------------------------------------- diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/DoWhileHandler.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/DoWhileHandler.java deleted file mode 100644 index a5c6366..0000000 --- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/DoWhileHandler.java +++ /dev/null @@ -1,248 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ -package org.apache.airavata.xbaya.interpretor; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutorService; - -import javax.xml.xpath.XPath; -import javax.xml.xpath.XPathConstants; -import javax.xml.xpath.XPathExpressionException; -import javax.xml.xpath.XPathFactory; - -import org.apache.airavata.workflow.model.component.Component; -import org.apache.airavata.workflow.model.component.ws.WSComponent; -import org.apache.airavata.workflow.model.exceptions.WorkflowException; -import org.apache.airavata.workflow.model.exceptions.WorkflowRuntimeException; -import org.apache.airavata.workflow.model.graph.ControlPort; -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.impl.EdgeImpl; -import org.apache.airavata.workflow.model.graph.system.DoWhileNode; -import org.apache.airavata.workflow.model.graph.system.EndDoWhileNode; -import org.apache.airavata.xbaya.graph.controller.NodeController; -import org.apache.airavata.xbaya.invoker.Invoker; -import org.apache.airavata.xbaya.ui.monitor.MonitorEventHandler.NodeState; -import org.apache.airavata.xbaya.util.InterpreterUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class DoWhileHandler implements Callable<Boolean> { - private static Logger log = LoggerFactory.getLogger(DoWhileHandler.class); - private DoWhileNode dowhilenode; - private Map<Node, Invoker> invokerMap; - private ArrayList<Node> waitingNode; - private ArrayList<Node> finishedNodes; - private ExecutorService threadExecutor; - - /** - * - * Constructs a DoWhileHandler. - * - * @param node - * @param invokerMap - * @param waitingNode - * @param finishedNodes - * @param interpreter - */ - - public DoWhileHandler(DoWhileNode node, Map<Node, Invoker> invokerMap, ArrayList<Node> waitingNode, ArrayList<Node> finishedNodes, ExecutorService threadExecutor) { - this.dowhilenode = node; - this.invokerMap = invokerMap; - this.waitingNode = waitingNode; - this.finishedNodes = finishedNodes; - this.threadExecutor = threadExecutor; - } - - /** - * To evaluate dowhile condition with the input values - * - * @param doWhileNode - * @param inputPorts - * @param invokerMap - * @return boolean value - * @throws WorkFlowInterpreterException - * @throws XBayaException - */ - private boolean evaluate(DoWhileNode doWhileNode, List<DataPort> inputPorts, Map<Node, Invoker> invokerMap) throws WorkFlowInterpreterException, - WorkflowException { - String booleanExpression = doWhileNode.getXpath(); - if (booleanExpression == null) { - throw new WorkFlowInterpreterException("XPath for if cannot be null"); - } - - int i = 0; - for (DataPort port : inputPorts) { - Object inputVal1 = InterpreterUtil.findInputFromPort(port, invokerMap); - if (null == inputVal1) { - throw new WorkFlowInterpreterException("Unable to find inputs for the node:" + doWhileNode.getID()); - } - booleanExpression = booleanExpression.replaceAll("\\$" + i, "'" + inputVal1 + "'"); - i++; - } - Boolean result = new Boolean(false); - // Now the XPath expression - try { - XPathFactory xpathFact = XPathFactory.newInstance(); - XPath xpath = xpathFact.newXPath(); - result = (Boolean) xpath.evaluate(booleanExpression, booleanExpression, XPathConstants.BOOLEAN); - } catch (XPathExpressionException e) { - throw new WorkFlowInterpreterException("Cannot evaluate XPath in If Condition: " + booleanExpression); - } - return result.booleanValue(); - } - - /** - * To get only web service components attached to dowhile - * - * @param waitingNode - * @return list - */ - private ArrayList<Node> handleDowhile(ArrayList<Node> waitingNode, ArrayList<Node> finishedNodes) { - ArrayList<Node> list = new ArrayList<Node>(); - for (Node node : waitingNode) { - Component component = node.getComponent(); - if (component instanceof WSComponent) { - ControlPort control = node.getControlInPort(); - boolean controlDone = true; - if (control != null) { - for (EdgeImpl edge : control.getEdges()) { - controlDone = controlDone && (finishedNodes.contains(edge.getFromPort().getNode()) - || ((ControlPort) edge.getFromPort()).isConditionMet()); - } - } - - /* - * Check for input ports - */ - List<DataPort> inputPorts = node.getInputPorts(); - boolean inputsDone = true; - for (DataPort dataPort : inputPorts) { - inputsDone = inputsDone && finishedNodes.contains(dataPort.getFromNode()); - } - if (inputsDone && controlDone) { - list.add(node); - } - } - } - - return list; - } - - /** - * @see java.util.concurrent.Callable#call() - */ - @Override - public Boolean call() throws Exception { - log.debug("Invoked Dowhile node"); - SystemComponentInvoker dowhileinvoker = new SystemComponentInvoker(); - // TODO check for multiple input case - Object inputVal1 = InterpreterUtil.findInputFromPort(this.dowhilenode.getInputPort(0), this.invokerMap); - dowhileinvoker.addOutput(this.dowhilenode.getOutputPort(0).getID(), inputVal1); - this.invokerMap.put(this.dowhilenode, dowhileinvoker); - this.finishedNodes.add(this.dowhilenode); - - ArrayList<Node> readyNodes = this.handleDowhile(this.waitingNode, this.finishedNodes); - - // When you are starting 1st time its getting input from 1st node and - // invoking all the webservice components - if (readyNodes.size() != 1) { - throw new WorkflowRuntimeException("More than one dowhile execution not supported"); - } - Node donode = readyNodes.get(0); -// this.interpreter.handleWSComponent(donode); - log.debug("Invoked service " + donode.getName()); - - List<DataPort> inputPorts = this.dowhilenode.getInputPorts(); - boolean runflag = true; - while (runflag) { - while (true) { - if (NodeController.isRunning(donode) || NodeController.isWaiting(donode)) { - Thread.sleep(500); - log.debug("Service " + donode.getName() + " waiting"); - } else if (NodeController.isFinished(donode)) { - log.debug("Service " + donode.getName() + " Finished"); - List<DataPort> ports = this.dowhilenode.getOutputPorts(); - for (int outputPortIndex = 0, inputPortIndex = 1; outputPortIndex < ports.size(); outputPortIndex++) { - Object inputValue = InterpreterUtil.findInputFromPort(this.dowhilenode.getInputPort(inputPortIndex), this.invokerMap); - dowhileinvoker.addOutput(this.dowhilenode.getOutputPort(outputPortIndex).getID(), inputValue); - } - break; - } else if (NodeController.isFailed(donode)) { - log.debug("Service " + donode.getName() + " Failed"); - runflag = false; - dowhilenode.setState(NodeExecutionState.FAILED); - this.threadExecutor.shutdown(); - return false; - } else if (donode.isBreak()) { - log.debug("Service " + donode.getName() + " set to break"); - runflag = false; - break; - } else { - log.error("Service " + donode.getName() + " have unknow status"); - throw new WorkFlowInterpreterException("Unknow status of the node"); - } - } - - this.invokerMap.put(this.dowhilenode, dowhileinvoker); - log.debug("Going to evaluate do while expression for " + donode.getName()); - if (!evaluate(this.dowhilenode, inputPorts, this.invokerMap)) { - log.debug("Expression evaluation is false so calling EndDoWhile"); - runflag = false; - } else { - if (readyNodes.size() != 1) { - throw new WorkFlowInterpreterException("More than one dowhile execution not supported"); - } - - Node whileNode = readyNodes.get(0); - log.debug("Expression evaluation is true so invoking service again " + whileNode.getName()); - -// this.interpreter.handleWSComponent(whileNode); - } - } - // WS node should be done - dowhilenode.setState(NodeExecutionState.FINISHED); - EndDoWhileNode endDoWhileNode = this.dowhilenode.getEndDoWhileNode(); - - // ///////////////////////////////////////////////////////// - // // Do WHile finished execution thus we can set the ////// - // //inputs to the EndDOWHile and resume the executions///// - SystemComponentInvoker invoker = new SystemComponentInvoker(); - - List<DataPort> inputports = endDoWhileNode.getInputPorts(); - - for (int inputPortIndex = 0; inputPortIndex < inputports.size(); inputPortIndex++) { - Object inputVal = dowhileinvoker.getOutput(inputports.get(inputPortIndex).getFromPort().getID()); - invoker.addOutput(endDoWhileNode.getOutputPort(inputPortIndex).getID(), inputVal); - } - - this.invokerMap.put(endDoWhileNode, invoker); - // TODO send mail once the iterations have converged - - endDoWhileNode.setState(NodeExecutionState.FINISHED); - this.threadExecutor.shutdown(); - return true; - } -} http://git-wip-us.apache.org/repos/asf/airavata/blob/382b6c0e/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/SystemComponentInvoker.java ---------------------------------------------------------------------- diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/SystemComponentInvoker.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/SystemComponentInvoker.java deleted file mode 100644 index a4706af..0000000 --- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/interpretor/SystemComponentInvoker.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ - -package org.apache.airavata.xbaya.interpretor; - -import java.util.Hashtable; -import java.util.Map; - -import org.apache.airavata.workflow.model.exceptions.WorkflowException; -import org.apache.airavata.xbaya.invoker.Invoker; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import xsul.wsif.WSIFMessage; -import xsul.xwsif_runtime.WSIFClient; - -public class SystemComponentInvoker implements Invoker { - - private Map<String, Object> outputs = new Hashtable<String, Object>(); - private static final Logger log = LoggerFactory.getLogger(SystemComponentInvoker.class); - /** - * - * @param key - * @param value - */ - public void addOutput(String key, Object value) { - outputs.put(key, value); - } - - /** - * @see org.apache.airavata.xbaya.invoker.Invoker#getOutput(java.lang.String) - */ - @Override - public Object getOutput(String name) { - Object out = null; - while (out == null) { - try { - out = this.outputs.get(name); - Thread.sleep(200); - } catch (InterruptedException e) { - log.error(e.getMessage(), e); - } - } - return out; - } - - /** - * @see org.apache.airavata.xbaya.invoker.Invoker#getOutputs() - */ - @Override - public WSIFMessage getOutputs() { - return null; - } - - /** - * @see org.apache.airavata.xbaya.invoker.Invoker#invoke() - */ - @Override - public boolean invoke() { - return true; - } - - /** - * @see org.apache.airavata.xbaya.invoker.Invoker#setInput(java.lang.String, java.lang.Object) - */ - @Override - public void setInput(String name, Object value) { - } - - /** - * @see org.apache.airavata.xbaya.wXPath Operatorsorkflow.Invoker#setOperation(java.lang.String) - */ - @Override - public void setOperation(String operationName) { - } - - /** - * @see org.apache.airavata.xbaya.invoker.Invoker#setup() - */ - @Override - public void setup() { - } - - @Override - public WSIFClient getClient() { - return null; - } - - @Override - public WSIFMessage getInputs() throws WorkflowException { - return null; - } - - @Override - public WSIFMessage getFault() throws WorkflowException { - return null; - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/382b6c0e/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/AsynchronousInvoker.java ---------------------------------------------------------------------- diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/AsynchronousInvoker.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/AsynchronousInvoker.java deleted file mode 100644 index defd8c2..0000000 --- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/AsynchronousInvoker.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ - -package org.apache.airavata.xbaya.invoker; - -import org.apache.airavata.common.utils.XMLUtil; -import org.apache.airavata.workflow.model.exceptions.WorkflowException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import xsul.wsdl.WsdlDefinitions; -import xsul.wsif.WSIFMessage; -import xsul.wsif.WSIFOperation; -import xsul.xwsif_runtime_async.WSIFAsyncResponsesCorrelator; -import xsul.xwsif_runtime_async_http.XsulSoapHttpWsaResponsesCorrelator; - -public class AsynchronousInvoker extends SimpleInvoker { - - private static final Logger logger = LoggerFactory.getLogger(AsynchronousInvoker.class); - - private String messageBoxURL; - - /** - * Constructs an AsynchronousInvoker. - * - * @param definitions - */ - public AsynchronousInvoker(WsdlDefinitions definitions) { - this(definitions, null); - } - - /** - * Constructs an AsynchronousInvoker. - * - * @param definitions - * @param messageBoxURL - */ - public AsynchronousInvoker(WsdlDefinitions definitions, String messageBoxURL) { - super(definitions); - this.messageBoxURL = messageBoxURL; - } - - /** - * @see org.apache.airavata.xbaya.invoker.SimpleInvoker#setup() - */ - @Override - public void setup() throws WorkflowException { - super.setup(); - /* Set the output message to null to set teh output from async Listener */ - WSIFAsyncResponsesCorrelator correlator; - if (this.messageBoxURL == null || this.messageBoxURL.length() == 0) { - correlator = new XsulSoapHttpWsaResponsesCorrelator(); - String serverLoc = ((XsulSoapHttpWsaResponsesCorrelator) correlator).getServerLocation(); - logger.debug("using async correlator at " + serverLoc); - } else { - correlator = new MsgBoxWsaResponsesCorrelator(this.messageBoxURL,this); - logger.debug("using message box at " + this.messageBoxURL); - } - this.client.useAsyncMessaging(correlator); - } - - public boolean invoke() throws WorkflowException { - final WSIFOperation operation = this.getOperation(); - final WSIFMessage inputMessage = this.getInputMessage(); - this.setOutputMessage(null); - try { - new Thread() { - @Override - public void run() { - try { - operation.executeInputOnlyOperation(inputMessage); - } catch (Exception e) { - // Ignore the error. - logger.error("Error invoking GFac Service",e); - } - } - }.start(); - - while(this.getOutputMessage() == null){ - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - logger.error("Error Waiting for the response from backend"); - } - } - // Gfac operation failed, so xbaya side throws this exception - if("ErrorResponse".equals(XMLUtil.stringToXmlElement3(this.getOutputMessage().toString()).getName())){ - // Here we do not throw an exception, because if we throw an exception Interpreter will catch it and do the unsubscription, - // which is not needed because if there's an gfac side error gfac will send a failure and unsubscription will be done in monitoring - // so if we send an exception we are attempting to do two unsubscriptions which will cause a one unsubscription to fail. - return false; - } - - return true; - } catch (RuntimeException e) { - String message = "Error in invoking a service."; - throw new WorkflowException(message, e); - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/382b6c0e/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/DynamicInvoker.java ---------------------------------------------------------------------- diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/DynamicInvoker.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/DynamicInvoker.java deleted file mode 100644 index d293fe4..0000000 --- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/DynamicInvoker.java +++ /dev/null @@ -1,168 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ - -package org.apache.airavata.xbaya.invoker; - -import java.lang.reflect.Method; -import java.net.URL; -import java.net.URLClassLoader; - -import org.apache.airavata.workflow.model.exceptions.WorkflowException; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import xsul.wsif.WSIFMessage; -import xsul.xwsif_runtime.WSIFClient; - -public class DynamicInvoker implements Invoker { - - private URL jarUrl; - - private String className; - - private String operationName; - - private Object[] inputs; - - private Object result; - - private static final Logger log = LoggerFactory.getLogger(DynamicInvoker.class); - /** - * Constructs a DynamicInvoker. - * - * @param className - * @param jarUrl - * @param operationName - */ - public DynamicInvoker(String className, URL jarUrl, String operationName, Object[] inputs) { - this.className = className; - this.jarUrl = jarUrl; - this.operationName = operationName; - this.inputs = inputs; - } - - /** - * @see org.apache.airavata.xbaya.invoker.WorkflowInvoker#getOutput(java.lang.String) - */ - public Object getOutput(String name) throws WorkflowException { - waitToFinish(); - return result; - } - - /** - * @see org.apache.airavata.xbaya.invoker.WorkflowInvoker#invoke() - */ - public boolean invoke() throws WorkflowException { - try { - Class<?> targetClass = Class.forName(this.className); - Object obj = targetClass.newInstance(); - - Method[] methods = targetClass.getDeclaredMethods(); - Method targetMethod = null; - for (Method method : methods) { - if (this.operationName.equals(method.getName())) { - targetMethod = method; - break; - } - } - if (targetMethod == null) { - throw new WorkflowException("Could not find the method using reflection: " + this.operationName); - } - - targetMethod.setAccessible(true); - this.result = targetMethod.invoke(obj, inputs); - - } catch (Exception e) { - throw new WorkflowException(e); - } - return true; - } - - /** - * @see org.apache.airavata.xbaya.invoker.WorkflowInvoker#setInput(java.lang.String, java.lang.Object) - */ - public void setInput(String name, Object value) throws WorkflowException { - - } - - /** - * @see org.apache.airavata.xbaya.invoker.WorkflowInvoker#setOperation(java.lang.String) - */ - public void setOperation(String operationName) throws WorkflowException { - this.operationName = operationName; - } - - /** - * @see org.apache.airavata.xbaya.invoker.WorkflowInvoker#setup() - */ - public void setup() throws WorkflowException { - Class[] parameters = new Class[] { URL.class }; - URLClassLoader sysloader = (URLClassLoader) ClassLoader.getSystemClassLoader(); - Class sysclass = URLClassLoader.class; - - try { - Method method = sysclass.getDeclaredMethod("addURL", parameters); - method.setAccessible(true); - method.invoke(sysloader, new Object[] { this.jarUrl }); - } catch (Throwable t) { - throw new WorkflowException("Error, could not add URL to system classloader", t); - } - } - - /** - * @see org.apache.airavata.xbaya.invoker.WorkflowInvoker#waitToFinish() - */ - public void waitToFinish() throws WorkflowException { - while (this.result == null) { - try { - Thread.sleep(200); - } catch (InterruptedException e) { - log.error(e.getMessage(), e); - } - } - - } - - /** - * @see org.apache.airavata.xbaya.invoker.WorkflowInvoker#getOutputs() - */ - public WSIFMessage getOutputs() throws WorkflowException { - waitToFinish(); - return (WSIFMessage) this.result; - - } - - @Override - public WSIFClient getClient() { - return null; - } - - @Override - public WSIFMessage getInputs() throws WorkflowException { - return null; - } - - @Override - public WSIFMessage getFault() throws WorkflowException { - return null; - } - -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/382b6c0e/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/DynamicServiceCreator.java ---------------------------------------------------------------------- diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/DynamicServiceCreator.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/DynamicServiceCreator.java deleted file mode 100644 index cc7fc2c..0000000 --- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/DynamicServiceCreator.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ - -package org.apache.airavata.xbaya.invoker; - -import java.io.File; -import java.net.URI; - -import javax.xml.namespace.QName; - -import org.apache.airavata.workflow.model.exceptions.WorkflowException; -import org.apache.airavata.xbaya.invoker.factory.InvokerFactory; - -import xsul.wsdl.WsdlDefinitions; -import xsul.wsdl.WsdlResolver; - -public class DynamicServiceCreator { - - private String dynamicFactoryWSDLLocation; - - private static String classStr = "package org.apache.airavata.xbaya;" + - - "public class DefaultClassName{" + - - "public int operationName(String[] stringArray0){" + - - "return 8;" + "}" + "}"; - - /** - * Constructs a DynamicServiceCreator. - * - * @param dynamicFactoryWSDLLocation - */ - public DynamicServiceCreator(String dynamicFactoryWSDLLocation) { - this.dynamicFactoryWSDLLocation = dynamicFactoryWSDLLocation; - } - - public void createService(String code) throws WorkflowException { - try { - WsdlDefinitions definitions = null; - if (this.dynamicFactoryWSDLLocation != null && !this.dynamicFactoryWSDLLocation.equals("")) { - definitions = WsdlResolver.getInstance().loadWsdl(new File(".").toURI(), - new URI(this.dynamicFactoryWSDLLocation)); - } - - // Create Invoker - // FIXME: Should pass the right leadcontext header for last argument - Invoker invoker = InvokerFactory.createInvoker(new QName("http://extreme.indiana.edu", - "ServiceCreatorPortType"), definitions, null, null, null); - - invoker.setup(); - - invoker.setOperation("deployServiceFromClass"); - invoker.setInput("classAsString", code); - invoker.invoke(); - invoker.getOutput("return"); - } catch (Exception e) { - throw new WorkflowException(e); - } - - } - - public static void main(String[] args) throws WorkflowException { - DynamicServiceCreator c = new DynamicServiceCreator("http://127.0.0.1:8080/axis2/services/ServiceCreator?wsdl"); - c.createService(classStr); - } - -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/382b6c0e/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/EmbeddedGFacInvoker.java ---------------------------------------------------------------------- diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/EmbeddedGFacInvoker.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/EmbeddedGFacInvoker.java deleted file mode 100644 index 204427b..0000000 --- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/EmbeddedGFacInvoker.java +++ /dev/null @@ -1,686 +0,0 @@ -///* -// * -// * Licensed to the Apache Software Foundation (ASF) und= nuer 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.invoker; -// -//import java.io.File; -//import java.io.StringReader; -//import java.net.URL; -//import java.util.*; -// -//import javax.xml.namespace.QName; -//import javax.xml.stream.XMLInputFactory; -//import javax.xml.stream.XMLStreamException; -//import javax.xml.stream.XMLStreamReader; -// -//import org.apache.airavata.client.api.AiravataAPI; -//import org.apache.airavata.client.api.exception.AiravataAPIInvocationException; -//import org.apache.airavata.common.utils.ServerSettings; -//import org.apache.airavata.common.utils.XMLUtil; -//import org.apache.airavata.common.workflow.execution.context.WorkflowContextHeaderBuilder; -//import org.apache.airavata.commons.gfac.type.ActualParameter; -//import org.apache.airavata.commons.gfac.type.ApplicationDescription; -//import org.apache.airavata.commons.gfac.type.HostDescription; -//import org.apache.airavata.commons.gfac.type.ServiceDescription; -//import org.apache.airavata.credential.store.store.CredentialReaderFactory; -//import org.apache.airavata.gfac.Constants; -//import org.apache.airavata.gfac.GFacConfiguration; -//import org.apache.airavata.gfac.RequestData; -//import org.apache.airavata.gfac.context.ApplicationContext; -//import org.apache.airavata.gfac.context.JobExecutionContext; -//import org.apache.airavata.gfac.context.MessageContext; -//import org.apache.airavata.gfac.context.security.GSISecurityContext; -//import org.apache.airavata.gfac.context.security.SSHSecurityContext; -//import org.apache.airavata.gfac.cpi.GFacImpl; -//import org.apache.airavata.gfac.ec2.AmazonSecurityContext; -//import org.apache.airavata.gfac.scheduler.HostScheduler; -//import org.apache.airavata.gfac.utils.GFacUtils; -//import org.apache.airavata.gsi.ssh.api.Cluster; -//import org.apache.airavata.gsi.ssh.api.SSHApiException; -//import org.apache.airavata.gsi.ssh.api.ServerInfo; -//import org.apache.airavata.gsi.ssh.api.authentication.AuthenticationInfo; -//import org.apache.airavata.gsi.ssh.api.authentication.GSIAuthenticationInfo; -//import org.apache.airavata.gsi.ssh.impl.PBSCluster; -//import org.apache.airavata.gsi.ssh.impl.authentication.DefaultPasswordAuthenticationInfo; -//import org.apache.airavata.gsi.ssh.impl.authentication.DefaultPublicKeyFileAuthentication; -//import org.apache.airavata.gsi.ssh.impl.authentication.MyProxyAuthenticationInfo; -//import org.apache.airavata.gsi.ssh.util.CommonUtils; -//import org.apache.airavata.registry.api.exception.RegistryException; -//import org.apache.airavata.schemas.gfac.*; -//import org.apache.airavata.schemas.wec.ContextHeaderDocument; -//import org.apache.airavata.schemas.wec.SecurityContextDocument; -//import org.apache.airavata.workflow.model.exceptions.WorkflowException; -//import org.apache.airavata.xbaya.XBayaConfiguration; -//import org.apache.airavata.xbaya.jython.lib.ServiceNotifiable; -//import org.apache.airavata.xbaya.jython.lib.WorkflowNotifiable; -//import org.apache.axiom.om.OMAbstractFactory; -//import org.apache.axiom.om.OMElement; -//import org.apache.axiom.om.OMFactory; -//import org.apache.axiom.om.OMNamespace; -//import org.apache.axiom.om.impl.builder.StAXOMBuilder; -//import org.apache.axiom.om.impl.llom.util.AXIOMUtil; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.xmlpull.v1.builder.XmlElement; -// -//import xsul.wsdl.WsdlDefinitions; -//import xsul.wsif.WSIFMessage; -//import xsul.wsif.impl.WSIFMessageElement; -//import xsul.xwsif_runtime.WSIFClient; -// -//public class EmbeddedGFacInvoker implements Invoker { -// -// private static final Logger logger = LoggerFactory.getLogger(EmbeddedGFacInvoker.class); -// -// private String nodeID; -// -// private QName portTypeQName; -// -// private String wsdlLocation; -// -// private String serviceInformation; -// -// private String messageBoxURL; -// -// private String gfacURL; -// -// private Invoker invoker; -// -// private XBayaConfiguration configuration; -// -// -// private Boolean result; -// -// private ServiceNotifiable notifier; -// -//// private AiravataRegistry2 registry; -// -// private String topic; -// -// private String serviceName; -// -// private AiravataAPI airavataAPI; -// /** -// * used for notification -// */ -// private List<Object> inputValues = new ArrayList<Object>(); -// -// /** -// * used for notification -// */ -// private List<String> inputNames = new ArrayList<String>(); -// -// boolean failerSent; -// -// private WsdlDefinitions wsdlDefinitionObject; -// -// private Object outPut; -// -// Map<String, Object> actualParameters = new LinkedHashMap<String, Object>(); -// -// /** -// * Creates an InvokerWithNotification. -// * -// * @param portTypeQName -// * @param wsdlLocation The URL of WSDL of the service to invoke -// * @param nodeID The ID of the service -// * @param notifier The notification sender -// */ -// public EmbeddedGFacInvoker(QName portTypeQName, String wsdlLocation, String nodeID, WorkflowNotifiable notifier) { -// this(portTypeQName, wsdlLocation, nodeID, null, notifier); -// } -// -// /** -// * Creates an InvokerWithNotification. -// * -// * @param portTypeQName -// * @param wsdlLocation The URL of WSDL of the service to invoke -// * @param nodeID The ID of the service -// * @param gfacURL The URL of GFac service. -// * @param notifier The notification sender -// */ -// public EmbeddedGFacInvoker(QName portTypeQName, String wsdlLocation, String nodeID, String gfacURL, -// WorkflowNotifiable notifier) { -// this(portTypeQName, wsdlLocation, nodeID, null, gfacURL, notifier); -// } -// -// /** -// * Creates an InvokerWithNotification. -// * -// * @param portTypeQName -// * @param wsdlLocation The URL of WSDL of the service to invoke -// * @param nodeID The ID of the service -// * @param messageBoxURL -// * @param gfacURL The URL of GFac service. -// * @param notifier The notification sender -// */ -// public EmbeddedGFacInvoker(QName portTypeQName, String wsdlLocation, String nodeID, String messageBoxURL, -// String gfacURL, WorkflowNotifiable notifier) { -// this.nodeID = nodeID; -// this.portTypeQName = portTypeQName; -// this.wsdlLocation = wsdlLocation; -// this.serviceInformation = wsdlLocation; -// this.messageBoxURL = messageBoxURL; -// this.gfacURL = gfacURL; -// this.notifier = notifier.createServiceNotificationSender(nodeID); -// -// this.failerSent = false; -// } -// -// /** -// * @param portTypeQName -// * @param wsdl -// * @param nodeID -// * @param messageBoxURL -// * @param gfacURL -// * @param notifier -// */ -// public EmbeddedGFacInvoker(QName portTypeQName, -// WsdlDefinitions wsdl, -// String nodeID, -// String messageBoxURL, -// String gfacURL, -// WorkflowNotifiable notifier, -// String topic, -// AiravataAPI airavataAPI, -// String serviceName, -// XBayaConfiguration config) { -// final String wsdlStr = xsul.XmlConstants.BUILDER.serializeToString(wsdl); -// this.nodeID = nodeID; -// this.portTypeQName = portTypeQName; -// this.wsdlDefinitionObject = wsdl; -// this.messageBoxURL = messageBoxURL; -// this.serviceInformation = wsdlStr; -// this.gfacURL = gfacURL; -// this.notifier = notifier.createServiceNotificationSender(nodeID); -// this.airavataAPI = airavataAPI; -// this.topic = topic; -// this.serviceName = serviceName; -// this.failerSent = false; -// this.configuration = config; -// } -// -// /** -// * @throws WorkflowException -// */ -// public void setup() throws WorkflowException { -// this.notifier.setServiceID(this.nodeID); -// } -// -// private void setup(WsdlDefinitions definitions) throws WorkflowException { -// } -// -// /** -// * @param operationName The name of the operation -// * @throws WorkflowException -// */ -// public void setOperation(String operationName) throws WorkflowException { -// } -// -// /** -// * @param name The name of the input parameter -// * @param value The value of the input parameter -// * @throws WorkflowException -// */ -// public void setInput(String name, Object value) throws WorkflowException { -// try { -// if (value instanceof XmlElement) { -// logger.debug("value: " + XMLUtil.xmlElementToString((XmlElement) value)); -// } -// this.inputNames.add(name); -// this.inputValues.add(value); -// } catch (RuntimeException e) { -// logger.error(e.getMessage(), e); -// String message = "Error in setting an input. name: " + name + " value: " + value; -// this.notifier.invocationFailed(message, e); -// throw new WorkflowException(message, e); -// } catch (Error e) { -// logger.error(e.getMessage(), e); -// String message = "Unexpected error: " + this.serviceInformation; -// this.notifier.invocationFailed(message, e); -// throw new WorkflowException(message, e); -// } catch (Exception e) { -// e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. -// } -// } -// -// /** -// * @return -// * @throws WorkflowException -// */ -// public synchronized boolean invoke() throws WorkflowException { -// try { -// ContextHeaderDocument.ContextHeader contextHeader = -// WorkflowContextHeaderBuilder.removeOtherSchedulingConfig(nodeID, this.configuration.getContextHeader()); -// String hostName = null; -// HostDescription registeredHost; -// if (contextHeader != null) { -// if (contextHeader.getWorkflowSchedulingContext() != null && -// contextHeader.getWorkflowSchedulingContext().getApplicationSchedulingContextArray().length > 0 && -// contextHeader.getWorkflowSchedulingContext().getApplicationSchedulingContextArray(0).getHostName() != null) { -// hostName = contextHeader.getWorkflowSchedulingContext().getApplicationSchedulingContextArray(0).getHostName(); -// } -// } -// //todo This is the basic scheduling, have to do proper scheduling implementation by implementing HostScheduler interface -// ServiceDescription serviceDescription = airavataAPI.getApplicationManager().getServiceDescription(serviceName); -// if (hostName == null) { -// List<HostDescription> registeredHosts = new ArrayList<HostDescription>(); -// Map<String, ApplicationDescription> applicationDescriptors = airavataAPI.getApplicationManager().getApplicationDescriptors(serviceName); -// for (String hostDescName : applicationDescriptors.keySet()) { -// registeredHosts.add(airavataAPI.getApplicationManager().getHostDescription(hostDescName)); -// } -// Class<? extends HostScheduler> aClass = Class.forName(ServerSettings.getHostScheduler()).asSubclass(HostScheduler.class); -// HostScheduler hostScheduler = aClass.newInstance(); -// registeredHost = hostScheduler.schedule(registeredHosts); -// } else { -// // if user specify a host, no matter what we pick that host for all the nodes, todo: allow users to specify node specific host -// registeredHost = airavataAPI.getApplicationManager().getHostDescription(hostName); -// } -// ApplicationDescription applicationDescription = -// airavataAPI.getApplicationManager().getApplicationDescription(serviceName, registeredHost.getType().getHostName()); -// -// // When we run getInParameters we set the actualParameter object, this has to be fixed -// URL resource = EmbeddedGFacInvoker.class.getClassLoader().getResource(org.apache.airavata.common.utils.Constants.GFAC_CONFIG_XML); -// OMElement inputMessage = getInParameters(); -// Object wsifMessageElement = new WSIFMessageElement(XMLUtil.stringToXmlElement3(inputMessage.toStringWithConsume())); -// this.notifier.invokingService(new WSIFMessageElement((XmlElement) wsifMessageElement)); -// Properties configurationProperties = ServerSettings.getProperties(); -// GFacConfiguration gFacConfiguration = GFacConfiguration.create(new File(resource.getPath()), airavataAPI, configurationProperties); -// -// JobExecutionContext jobExecutionContext = new JobExecutionContext(gFacConfiguration, serviceName); -// //Here we get only the contextheader information sent specific for this node -// //Add security context -// -// //FIXME - We no longer using job execution context -//// jobExecutionContext.setContextHeader(WorkflowContextHeaderBuilder.removeOtherSchedulingConfig(nodeID, configuration.getContextHeader())); -// -// -// jobExecutionContext.setProperty(Constants.PROP_WORKFLOW_NODE_ID, this.nodeID); -// jobExecutionContext.setProperty(Constants.PROP_TOPIC, this.configuration.getTopic()); -// jobExecutionContext.setProperty(Constants.PROP_BROKER_URL, this.configuration.getBrokerURL().toASCIIString()); -// jobExecutionContext.setProperty(Constants.PROP_WORKFLOW_INSTANCE_ID, this.configuration.getTopic()); -// -// -// ApplicationContext applicationContext = new ApplicationContext(); -// applicationContext.setApplicationDeploymentDescription(applicationDescription); -// applicationContext.setHostDescription(registeredHost); -// applicationContext.setServiceDescription(serviceDescription); -// -// jobExecutionContext.setApplicationContext(applicationContext); -// -// jobExecutionContext.setOutMessageContext(getOutParameters(serviceDescription)); -// jobExecutionContext.setInMessageContext(new MessageContext(actualParameters)); -// -// addSecurityContext(registeredHost, configurationProperties, jobExecutionContext, -// configuration.getContextHeader()); -// GFacImpl gfacAPI1 = new GFacImpl(); -// gfacAPI1.submitJob(jobExecutionContext); -// -// OMFactory fac = OMAbstractFactory.getOMFactory(); -// OMNamespace omNs = fac.createOMNamespace("http://ws.apache.org/axis2/xsd", "ns1"); -// OMElement outputElement = fac.createOMElement("invokeResponse", omNs); -// MessageContext outMessageContext = jobExecutionContext.getOutMessageContext(); -// Set<String> paramNames = outMessageContext.getParameters().keySet(); -// for (String paramName : paramNames) { -// /* -// * Process Output -// */ -// String outputString = ((ActualParameter) outMessageContext.getParameter(paramName)).toXML().replaceAll("GFacParameter", paramName); -// XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(new StringReader(outputString)); -// StAXOMBuilder builder = new StAXOMBuilder(reader); -// outputElement.addChild(builder.getDocumentElement()); -// } -// // Send notification -// logger.debug("outputMessage: " + outputElement.toString()); -// outPut = new WSIFMessageElement(XMLUtil.stringToXmlElement3(outputElement.toStringWithConsume())); -// this.result = true; -// EmbeddedGFacInvoker.this.notifier.serviceFinished(new WSIFMessageElement((XmlElement) outPut)); -// //todo check whether ActualParameter values are set or not, if they are null have to through an error or handle this in gfac level. -//// { -//// // An implementation of WSIFMessage, -//// // WSIFMessageElement, implements toString(), which -//// // serialize the message XML. -//// EmbeddedGFacInvoker.this.notifier.receivedFault(new WSIFMessageElement(XMLUtil.stringToXmlElement3("<Message>Invocation Failed</Message>"))); -//// EmbeddedGFacInvoker.this.failerSent = true; -//// } -// -// } catch (RuntimeException e) { -// logger.error(e.getMessage(), e); -// String message = "Error in invoking a service: " + this.serviceInformation; -// this.notifier.invocationFailed(message, e); -// throw new WorkflowException(message, e); -// } catch (Error e) { -// logger.error(e.getMessage(), e); -// String message = "Unexpected error: " + this.serviceInformation; -// this.notifier.invocationFailed(message, e); -// throw new WorkflowException(message, e); -// } catch (Exception e) { -// this.notifier.invocationFailed(e.getMessage(), e); -// throw new WorkflowException(e.getMessage(), e); -// } -// return true; -// } -// -// private SecurityContextDocument.SecurityContext.CredentialManagementService getCredentialManagementService( -// ContextHeaderDocument.ContextHeader contextHeader) { -// -// if (contextHeader != null) { -// -// SecurityContextDocument.SecurityContext.CredentialManagementService credentialManagementService -// = contextHeader.getSecurityContext().getCredentialManagementService(); -// -// if (credentialManagementService != null) { -// // Make sure token id and portal user id is properly populated -// if (credentialManagementService.getTokenId() != null && -// credentialManagementService.getPortalUser() != null) { -// -// return credentialManagementService; -// } else { -// return null; -// } -// } else { -// return null; -// } -// } -// -// return null; -// } -// -// private void addSecurityContext(HostDescription registeredHost, Properties configurationProperties, -// JobExecutionContext jobExecutionContext, ContextHeaderDocument.ContextHeader contextHeader) throws WorkflowException { -// RequestData requestData; -// /* todo fix the credential store and uncomment following code block -// SecurityContextDocument.SecurityContext.CredentialManagementService credentialManagementService -// = getCredentialManagementService(contextHeader); -// -// GSISecurityContext context; -// -// -// if (credentialManagementService != null) { -// String gatewayId = credentialManagementService.getGatewayId(); -// String tokenId -// = credentialManagementService.getTokenId(); -// String portalUser = credentialManagementService.getPortalUser(); -// -// requestData = new RequestData(tokenId, portalUser, gatewayId); -// } else { -// requestData = new RequestData("default"); -// } -// -// try { -// context = new GSISecurityContext(CredentialReaderFactory.createCredentialStoreReader(), requestData); -// } catch (Exception e) { -// throw new WorkflowException("An error occurred while creating GSI security context", e); -// } -// if (registeredHost.getType() instanceof GsisshHostType) { -// GSIAuthenticationInfo authenticationInfo -// = new MyProxyAuthenticationInfo(requestData.getMyProxyUserName(), requestData.getMyProxyPassword(), requestData.getMyProxyServerUrl(), -// requestData.getMyProxyPort(), requestData.getMyProxyLifeTime(), System.getProperty(Constants.TRUSTED_CERTIFICATE_SYSTEM_PROPERTY)); -// ServerInfo serverInfo = new ServerInfo(requestData.getMyProxyUserName(), registeredHost.getType().getHostAddress()); -// -// Cluster pbsCluster = null; -// try { -// pbsCluster = new PBSCluster(serverInfo, authenticationInfo, -// (((HpcApplicationDeploymentType) jobExecutionContext.getApplicationContext().getApplicationDeploymentDescription().getType()).getInstalledParentPath())); -// } catch (SSHApiException e) { -// e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. -// } -// -// context.setPbsCluster(pbsCluster); -// } -// */ -// requestData = new RequestData("default"); -// GSISecurityContext context; -// try { -// context = new GSISecurityContext(CredentialReaderFactory.createCredentialStoreReader(), requestData); -// } catch (Exception e) { -// throw new WorkflowException("An error occurred while creating GSI security context", e); -// } -// -// if (registeredHost.getType() instanceof GsisshHostType) { -// GSIAuthenticationInfo authenticationInfo -// = new MyProxyAuthenticationInfo(requestData.getMyProxyUserName(), requestData.getMyProxyPassword(), requestData.getMyProxyServerUrl(), -// requestData.getMyProxyPort(), requestData.getMyProxyLifeTime(), System.getProperty(Constants.TRUSTED_CERTIFICATE_SYSTEM_PROPERTY)); -// ServerInfo serverInfo = new ServerInfo(requestData.getMyProxyUserName(), registeredHost.getType().getHostAddress()); -// -// Cluster pbsCluster = null; -// try { -// String installedParentPath = ((HpcApplicationDeploymentType) -// jobExecutionContext.getApplicationContext().getApplicationDeploymentDescription().getType()).getInstalledParentPath(); -// pbsCluster = new PBSCluster(serverInfo, authenticationInfo, -// (CommonUtils.getPBSJobManager(installedParentPath))); -// } catch (SSHApiException e) { -// e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. -// } -// -// context.setPbsCluster(pbsCluster); -// } -// -// jobExecutionContext.addSecurityContext(GSISecurityContext.GSI_SECURITY_CONTEXT, context); -// //Adding Amanzon Keys -// if (this.configuration.getAmazonSecurityContext() != null) { -// jobExecutionContext.addSecurityContext(AmazonSecurityContext.AMAZON_SECURITY_CONTEXT, -// this.configuration.getAmazonSecurityContext()); -// } -// //Adding SSH security -// String sshUserName = configurationProperties.getProperty(Constants.SSH_USER_NAME); -// String sshPrivateKey = configurationProperties.getProperty(Constants.SSH_PRIVATE_KEY); -// String sshPrivateKeyPass = configurationProperties.getProperty(Constants.SSH_PRIVATE_KEY_PASS); -// String sshPassword = configurationProperties.getProperty(Constants.SSH_PASSWORD); -// String sshPublicKey = configurationProperties.getProperty(Constants.SSH_PUBLIC_KEY); -// SSHSecurityContext sshSecurityContext = new SSHSecurityContext(); -// if (((SSHHostType) registeredHost.getType()).getHpcResource()) { -// AuthenticationInfo authenticationInfo = null; -// // we give higher preference to the password over keypair ssh authentication -// if (sshPassword != null) { -// authenticationInfo = new DefaultPasswordAuthenticationInfo(sshPassword); -// } else { -// authenticationInfo = new DefaultPublicKeyFileAuthentication(sshPublicKey, sshPrivateKey, sshPrivateKeyPass); -// } -// ServerInfo serverInfo = new ServerInfo(sshUserName, registeredHost.getType().getHostAddress()); -// -// Cluster pbsCluster = null; -// try { -// String installedParentPath = ((HpcApplicationDeploymentType) -// jobExecutionContext.getApplicationContext().getApplicationDeploymentDescription().getType()).getInstalledParentPath(); -// pbsCluster = new PBSCluster(serverInfo, authenticationInfo, -// (CommonUtils.getPBSJobManager(installedParentPath))); -// } catch (SSHApiException e) { -// e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. -// } -// sshSecurityContext.setPbsCluster(pbsCluster); -// sshSecurityContext.setUsername(sshUserName); -// } else { -// sshSecurityContext = new SSHSecurityContext(); -// sshSecurityContext.setUsername(sshUserName); -// sshSecurityContext.setPrivateKeyLoc(sshPrivateKey); -// sshSecurityContext.setKeyPass(sshPrivateKeyPass); -// } -// jobExecutionContext.addSecurityContext(SSHSecurityContext.SSH_SECURITY_CONTEXT, sshSecurityContext); -// } -// -// /** -// * @throws WorkflowException -// */ -// @SuppressWarnings("boxing") -// public synchronized void waitToFinish() throws WorkflowException { -// try { -// while (this.result == null) { -// // The job is not submitted yet. -// try { -// wait(); -// } catch (InterruptedException e) { -// logger.error(e.getMessage(), e); -// } -// } -// // Wait for the job to finish. -// Boolean success = this.result; -// if (success == false) { -// WSIFMessage faultMessage = this.invoker.getFault(); -// String message = "Error in a service: "; -// // An implementation of WSIFMessage, -// // WSIFMessageElement, implements toString(), which -// // serialize the message XML. -// message += faultMessage.toString(); -// throw new WorkflowException(message); -// } -// } catch (RuntimeException e) { -// logger.error(e.getMessage(), e); -// String message = "Error while waiting for a service to finish: " + this.serviceInformation; -// this.notifier.invocationFailed(message, e); -// throw new WorkflowException(message, e); -// } catch (Error e) { -// logger.error(e.getMessage(), e); -// String message = "Unexpected error: " + this.serviceInformation; -// this.notifier.invocationFailed(message, e); -// throw new WorkflowException(message, e); -// } -// } -// -// /** -// * @param name The name of the output parameter -// * @return -// * @throws WorkflowException -// */ -// public Object getOutput(String name) throws WorkflowException { -// try { -// waitToFinish(); -// if (outPut instanceof XmlElement) { -// Iterator children = ((XmlElement) outPut).children(); -// while (children.hasNext()) { -// Object next = children.next(); -// if (((XmlElement) next).getName().equals(name)) { -// return ((XmlElement) ((XmlElement) next).children().next()).children().next(); -// } -// } -// } else { -// return outPut; -// } -// } catch (WorkflowException e) { -// logger.error(e.getMessage(), e); -// // An appropriate message has been set in the exception. -// if (!this.failerSent) { -// this.notifier.invocationFailed(e.getMessage(), e); -// } -// throw e; -// } catch (RuntimeException e) { -// logger.error(e.getMessage(), e); -// String message = "Error while waiting for a output: " + name; -// this.notifier.invocationFailed(message, e); -// throw new WorkflowException(message, e); -// } catch (Error e) { -// logger.error(e.getMessage(), e); -// String message = "Unexpected error: " + this.serviceInformation; -// this.notifier.invocationFailed(message, e); -// throw new WorkflowException(message, e); -// } -// throw new WorkflowException("Output could not be found"); -// } -// -// /** -// * @return -// * @throws WorkflowException -// */ -// public WSIFMessage getOutputs() throws WorkflowException { -// return this.invoker.getOutputs(); -// } -// -// public WSIFClient getClient() { -// return null; -// } -// -// public WSIFMessage getInputs() throws WorkflowException { -// return null; -// } -// -// public WSIFMessage getFault() throws WorkflowException { -// return null; -// } -// -// private OMElement getInParameters() throws AiravataAPIInvocationException, RegistryException, XMLStreamException { -// OMFactory omFactory = OMAbstractFactory.getOMFactory(); -// OMElement invoke_inputParams = omFactory.createOMElement(new QName("invoke_InputParams")); -// ServiceDescription serviceDescription = airavataAPI.getApplicationManager().getServiceDescription(this.serviceName); -// if (serviceDescription == null) { -// throw new RegistryException(new Exception("Service Description not found in registry.")); -// } -// ServiceDescriptionType serviceDescriptionType = serviceDescription.getType(); -// for (String inputName : this.inputNames) { -// OMElement omElement = omFactory.createOMElement(new QName(inputName)); -// int index = this.inputNames.indexOf(inputName); -// Object value = this.inputValues.get(index); -// InputParameterType parameter = serviceDescriptionType.getInputParametersArray(index); -// if (value instanceof XmlElement) { -// omElement.setText((String) ((XmlElement) ((XmlElement) ((XmlElement) value).children().next()).children().next()).children().next()); -// XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(new StringReader(XMLUtil.xmlElementToString((XmlElement) value))); -// StAXOMBuilder builder = new StAXOMBuilder(reader); -// OMElement input = builder.getDocumentElement(); -//// actualParameters.put(parameter.getParameterName(), GFacUtils.getInputActualParameter(parameter, input)); -// } else if (value instanceof String) { -// omElement.setText((String) value); -//// actualParameters.put(parameter.getParameterName(), GFacUtils.getInputActualParameter(parameter, AXIOMUtil.stringToOM("<value>" + value + "</value>"))); -// } -// invoke_inputParams.addChild(omElement); -// } -// return invoke_inputParams; -// } -// -// private MessageContext getOutParameters(ServiceDescription serviceDescription) { -// MessageContext outContext = new MessageContext(); -// for (OutputParameterType parameter : serviceDescription.getType().getOutputParametersArray()) { -// ActualParameter actualParameter = new ActualParameter(); -// if ("String".equals(parameter.getParameterType().getName())) { -// actualParameter.getType().changeType(StringParameterType.type); -// } else if ("Double".equals(parameter.getParameterType().getName())) { -// actualParameter.getType().changeType(DoubleParameterType.type); -// } else if ("Integer".equals(parameter.getParameterType().getName())) { -// actualParameter.getType().changeType(IntegerParameterType.type); -// } else if ("Float".equals(parameter.getParameterType().getName())) { -// actualParameter.getType().changeType(FloatParameterType.type); -// } else if ("Boolean".equals(parameter.getParameterType().getName())) { -// actualParameter.getType().changeType(BooleanParameterType.type); -// } else if ("File".equals(parameter.getParameterType().getName())) { -// actualParameter.getType().changeType(FileParameterType.type); -// } else if ("URI".equals(parameter.getParameterType().getName())) { -// actualParameter.getType().changeType(URIParameterType.type); -// } else if ("StringArray".equals(parameter.getParameterType().getName())) { -// actualParameter.getType().changeType(StringArrayType.type); -// } else if ("DoubleArray".equals(parameter.getParameterType().getName())) { -// actualParameter.getType().changeType(DoubleArrayType.type); -// } else if ("IntegerArray".equals(parameter.getParameterType().getName())) { -// actualParameter.getType().changeType(IntegerArrayType.type); -// } else if ("FloatArray".equals(parameter.getParameterType().getName())) { -// actualParameter.getType().changeType(FloatArrayType.type); -// } else if ("BooleanArray".equals(parameter.getParameterType().getName())) { -// actualParameter.getType().changeType(BooleanArrayType.type); -// } else if ("FileArray".equals(parameter.getParameterType().getName())) { -// actualParameter.getType().changeType(FileArrayType.type); -// } else if ("URIArray".equals(parameter.getParameterType().getName())) { -// actualParameter.getType().changeType(URIArrayType.type); -// } else if ("StdOut".equals(parameter.getParameterType().getName())) { -// actualParameter.getType().changeType(StdOutParameterType.type); -// } else if ("StdErr".equals(parameter.getParameterType().getName())) { -// actualParameter.getType().changeType(StdErrParameterType.type); -// } -// outContext.addParameter(parameter.getParameterName(), actualParameter); -// } -// return outContext; -// } -//} http://git-wip-us.apache.org/repos/asf/airavata/blob/382b6c0e/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/GFacInvoker.java ---------------------------------------------------------------------- diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/GFacInvoker.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/GFacInvoker.java deleted file mode 100644 index 10edbd9..0000000 --- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/GFacInvoker.java +++ /dev/null @@ -1,199 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ - -package org.apache.airavata.xbaya.invoker; - -import java.net.URI; -import java.util.UUID; - -import javax.xml.namespace.QName; - -import org.apache.airavata.common.workflow.execution.context.WorkflowContextHeaderBuilder; -import org.apache.airavata.workflow.model.exceptions.WorkflowException; -import org.apache.airavata.xbaya.invoker.factory.InvokerFactory; -import org.apache.airavata.xbaya.lead.NotificationHandler; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import xsul.lead.LeadContextHeader; -import xsul.wsdl.WsdlDefinitions; -import xsul.wsdl.WsdlResolver; -import xsul.wsif.WSIFMessage; -import xsul.xhandler_soap_sticky_header.StickySoapHeaderHandler; -import xsul.xwsif_runtime.WSIFClient; - -public class GFacInvoker implements Invoker { - - private final static Logger logger = LoggerFactory.getLogger(GFacInvoker.class); - - private String gfacURL; - - private String messageBoxURL; - - private QName portTypeQName; - - private Invoker invoker; - - private LeadContextHeader leadContext; - - private WorkflowContextHeaderBuilder builder; - - /** - * Constructs a GFacInvoker. - * - * @param portTypeQName - * @param gfacURL - * @param messageBoxURL - * @param context - */ - public GFacInvoker(QName portTypeQName, String gfacURL, String messageBoxURL, LeadContextHeader context) { - this.portTypeQName = portTypeQName; - this.gfacURL = gfacURL; - this.messageBoxURL = messageBoxURL; - this.leadContext = context; - } - - public GFacInvoker(QName portTypeQName, String gfacURL, String messageBoxURL, WorkflowContextHeaderBuilder context) { - this.portTypeQName = portTypeQName; - this.gfacURL = gfacURL; - this.messageBoxURL = messageBoxURL; - this.builder = context; - } - - /** - * @see org.apache.airavata.xbaya.invoker.Invoker#setup() - */ - public void setup() throws WorkflowException { - - if (this.gfacURL == null) { - String message = "The location of the Generic Factory is not specified."; - throw new WorkflowException(message); - } - - if (this.portTypeQName == null) { - String message = "Error in finding the service name"; - throw new WorkflowException(message); - } - - try { - - URI uri = new URI(this.gfacURL); - - /* - * Substring to remove GfacService - */ - String gfacPath = uri.getPath(); - if (gfacPath != null && gfacPath.contains("/")) { - gfacPath = gfacPath.substring(0, gfacPath.lastIndexOf('/') + 1) + portTypeQName.getLocalPart(); - } - URI getWsdlURI = new URI(uri.getScheme(), uri.getUserInfo(), uri.getHost(), uri.getPort(), gfacPath - + "/getWSDL", uri.getQuery(), uri.getFragment()); - - logger.debug("getWSDL service:" + getWsdlURI.toString()); - - WsdlDefinitions concreteWSDL = WsdlResolver.getInstance().loadWsdl(getWsdlURI); - - this.invoker = InvokerFactory.createInvoker(this.portTypeQName, concreteWSDL, null, this.messageBoxURL, - null, true); - this.invoker.setup(); - } catch (WorkflowException xe) { - throw xe; - } catch (Exception e) { - throw new WorkflowException(e.getMessage(), e); - } - - } - - /** - * @see org.apache.airavata.xbaya.invoker.Invoker#getClient() - */ - public WSIFClient getClient() { - return this.invoker.getClient(); - } - - /** - * @throws WorkflowException - * @see org.apache.airavata.xbaya.invoker.Invoker#setOperation(java.lang.String) - */ - public void setOperation(String operationName) throws WorkflowException { - this.invoker.setOperation(operationName); - } - - /** - * @throws WorkflowException - * @see org.apache.airavata.xbaya.invoker.Invoker#setInput(java.lang.String, java.lang.Object) - */ - public void setInput(String name, Object value) throws WorkflowException { - this.invoker.setInput(name, value); - } - - /** - * @see org.apache.airavata.xbaya.invoker.Invoker#getInputs() - */ - public WSIFMessage getInputs() throws WorkflowException { - return this.invoker.getInputs(); - } - - /** - * @throws WorkflowException - * @see org.apache.airavata.xbaya.invoker.Invoker#invoke() - */ - public boolean invoke() throws WorkflowException { - - WSIFClient client = invoker.getClient(); - // FIXME: Temporary fix - // if (this.leadContext == null) { - // LeadContextHeader lh = new LeadContextHeader(UUID.randomUUID().toString(), "XBaya-User"); - // this.leadContext = lh; - // } - // StickySoapHeaderHandler handler = new StickySoapHeaderHandler("use-lead-header", this.leadContext); - // client.addHandler(handler); - - // This handler has to be end to get the entire soap message. - NotificationHandler notificationHandler = new NotificationHandler(this.builder); - client.addHandler(notificationHandler); - return this.invoker.invoke(); - } - - /** - * @see org.apache.airavata.xbaya.invoker.Invoker#getOutputs() - */ - public WSIFMessage getOutputs() throws WorkflowException { - return this.invoker.getOutputs(); - } - - /** - * @throws WorkflowException - * @see org.apache.airavata.xbaya.invoker.Invoker#getOutput(java.lang.String) - */ - public Object getOutput(String name) throws WorkflowException { - return this.invoker.getOutput(name); - } - - /** - * @throws WorkflowException - * @see org.apache.airavata.xbaya.invoker.Invoker#getFault() - */ - public WSIFMessage getFault() throws WorkflowException { - return this.invoker.getFault(); - } - -} \ No newline at end of file
