You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2013/01/15 23:11:17 UTC
svn commit: r1433692 - in
/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya:
invoker/EmbeddedGFacInvoker.java jython/lib/NotificationSender.java
jython/lib/ServiceNotificationSender.java
Author: lahiru
Date: Tue Jan 15 22:11:17 2013
New Revision: 1433692
URL: http://svn.apache.org/viewvc?rev=1433692&view=rev
Log:
fixing embedded mode issue, with notification failure.
Modified:
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/EmbeddedGFacInvoker.java
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/jython/lib/NotificationSender.java
airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/jython/lib/ServiceNotificationSender.java
Modified: airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/EmbeddedGFacInvoker.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/EmbeddedGFacInvoker.java?rev=1433692&r1=1433691&r2=1433692&view=diff
==============================================================================
--- airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/EmbeddedGFacInvoker.java (original)
+++ airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/invoker/EmbeddedGFacInvoker.java Tue Jan 15 22:11:17 2013
@@ -58,11 +58,9 @@ import org.apache.airavata.workflow.mode
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.*;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.impl.dom.factory.OMDOMFactory;
import org.apache.axiom.om.impl.llom.util.AXIOMUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -256,7 +254,9 @@ public class EmbeddedGFacInvoker impleme
*/
public synchronized boolean invoke() throws WorkflowException {
try {
- createActualParameters();
+ OMElement inputMessage = createActualParameters();
+ Object wsifMessageElement = new WSIFMessageElement(XMLUtil.stringToXmlElement3(inputMessage.toStringWithConsume()));
+ this.notifier.invokingService(new WSIFMessageElement((XmlElement)wsifMessageElement));
JobContext jobContext = new JobContext(actualParameters, EmbeddedGFacInvoker.this.topic,
EmbeddedGFacInvoker.this.serviceName, EmbeddedGFacInvoker.this.gfacURL);
GFacConfiguration gFacConfiguration = new GFacConfiguration(EmbeddedGFacInvoker.this.configuration.getMyProxyServer(),
@@ -428,25 +428,31 @@ public class EmbeddedGFacInvoker impleme
return null;
}
- private void createActualParameters() throws AiravataAPIInvocationException, RegistryException, XMLStreamException {
+ private OMElement createActualParameters() 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) {
+ 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) {
- XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(new StringReader(XMLUtil.xmlElementToString((XmlElement) value)));
- StAXOMBuilder builder = new StAXOMBuilder(reader);
- OMElement input = builder.getDocumentElement();
- actualParameters.put(parameter, GfacUtils.getInputActualParameter(parameter, input));
- } else if (value instanceof String) {
-
- actualParameters.put(parameter, GfacUtils.getInputActualParameter(parameter, AXIOMUtil.stringToOM("<value>" + value + "</value>")));
- }
+ omElement.setText((String)((XmlElement) value).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, GfacUtils.getInputActualParameter(parameter, input));
+ } else if (value instanceof String) {
+ omElement.setText((String)value);
+ actualParameters.put(parameter, GfacUtils.getInputActualParameter(parameter, AXIOMUtil.stringToOM("<value>" + value + "</value>")));
+ }
+ invoke_inputParams.addChild(omElement);
}
+ return invoke_inputParams;
}
}
Modified: airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/jython/lib/NotificationSender.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/jython/lib/NotificationSender.java?rev=1433692&r1=1433691&r2=1433692&view=diff
==============================================================================
--- airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/jython/lib/NotificationSender.java (original)
+++ airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/jython/lib/NotificationSender.java Tue Jan 15 22:11:17 2013
@@ -274,7 +274,7 @@ public class NotificationSender implemen
@Override
public ServiceNotifiable createServiceNotificationSender(String nodeID) {
return new ServiceNotificationSender(this.notifier, this.eventSink, this.initiator, this.workflowID, nodeID,
- this.context);
+ this.context,this.invocationContext);
}
@Override
Modified: airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/jython/lib/ServiceNotificationSender.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/jython/lib/ServiceNotificationSender.java?rev=1433692&r1=1433691&r2=1433692&view=diff
==============================================================================
--- airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/jython/lib/ServiceNotificationSender.java (original)
+++ airavata/trunk/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/jython/lib/ServiceNotificationSender.java Tue Jan 15 22:11:17 2013
@@ -72,7 +72,7 @@ public class ServiceNotificationSender i
* @param nodeID
*/
protected ServiceNotificationSender(WorkflowNotifier notifier, EndpointReference eventSink,
- InvocationEntity initiator, URI workflowID, String nodeID, WorkflowTrackingContext context) {
+ InvocationEntity initiator, URI workflowID, String nodeID, WorkflowTrackingContext context, InvocationContext invocationContext) {
this.notifier = notifier;
this.eventSink = eventSink;
this.initiator = initiator;
@@ -82,7 +82,7 @@ public class ServiceNotificationSender i
// In case of creating a service on the fly, there is no serviceID at
// the beginning.
this.serviceID = "";
-
+ this.invocationContext = invocationContext;
URI receiverWorkflowID = this.workflowID;
URI receiverServiceID = URI.create(this.serviceID);
String receiverWorkflowNodeID = this.nodeID;