You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by am...@apache.org on 2008/03/10 16:41:29 UTC
svn commit: r635581 - in
/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2:
Constants.java transport/mail/EMailSender.java
transport/mail/SynchronousMailListener.java
Author: amilas
Date: Mon Mar 10 08:41:28 2008
New Revision: 635581
URL: http://svn.apache.org/viewvc?rev=635581&view=rev
Log:
Add piggy back handling to mail transport. This is use full for an RM implementation
to implement the piggy back model
Modified:
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SynchronousMailListener.java
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java?rev=635581&r1=635580&r2=635581&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java Mon Mar 10 08:41:28 2008
@@ -246,6 +246,9 @@
public static final String TRANSPORT_FAULT_STRING = "transportFault";
public static final String SOAP_PROCESSING_FAULT_STRING = "soapProcessingFault";
+ // used to handle piggy back messages with mail transport
+ public static final String PIGGYBACK_MESSAGE = "piggybackMessage";
+
/**
* Field Builder Selector
*/
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java?rev=635581&r1=635580&r2=635581&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java Mon Mar 10 08:41:28 2008
@@ -24,7 +24,7 @@
import org.apache.axiom.om.OMOutputFormat;
import org.apache.axiom.soap.SOAP11Constants;
import org.apache.axiom.soap.SOAP12Constants;
-import org.apache.axis2.AxisFault;
+import org.apache.axis2.*;
import org.apache.axis2.i18n.Messages;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
@@ -232,6 +232,7 @@
}
private void sendReceive(MessageContext msgContext, String msgId) throws AxisFault {
+ System.out.println("Sending message ID ==> " + msgId);
storeMessageContext(msgContext, msgId);
ConfigurationContext cc = msgContext.getConfigurationContext();
//While sysncmial listner .not complete
@@ -240,7 +241,10 @@
SynchronousMailListener synchronousMailListener = null;
//No need to stor the message context if the mep is out-only
AxisOperation axisOperation = msgContext.getAxisOperation();
- if(axisOperation instanceof OutOnlyAxisOperation) {
+ // piggy back message constant is used to pass a piggy back
+ // message context in asnych model
+ if(axisOperation instanceof OutOnlyAxisOperation &&
+ (msgContext.getProperty(org.apache.axis2.Constants.PIGGYBACK_MESSAGE) == null)) {
return;
}
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SynchronousMailListener.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SynchronousMailListener.java?rev=635581&r1=635580&r2=635581&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SynchronousMailListener.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/mail/SynchronousMailListener.java Mon Mar 10 08:41:28 2008
@@ -18,7 +18,7 @@
*/
package org.apache.axis2.transport.mail;
-import org.apache.axis2.AxisFault;
+import org.apache.axis2.*;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.OperationContext;
import org.apache.axis2.description.AxisOperation;
@@ -48,18 +48,34 @@
OperationContext operationContext = outMessageContext.getOperationContext();
MessageContext msgCtx =
operationContext.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+
if(msgCtx==null){
- inMessageContext.setOperationContext(operationContext);
- inMessageContext.setServiceContext(outMessageContext.getServiceContext());
- if(!operationContext.isComplete()){
- operationContext.addMessageContext(inMessageContext);
+ // try to see whether there is a piggy back message context
+ if (outMessageContext.getProperty(org.apache.axis2.Constants.PIGGYBACK_MESSAGE) != null) {
+
+ msgCtx = (MessageContext) outMessageContext.getProperty(org.apache.axis2.Constants.PIGGYBACK_MESSAGE);
+ msgCtx.setTransportIn(inMessageContext.getTransportIn());
+ msgCtx.setTransportOut(inMessageContext.getTransportOut());
+ msgCtx.setServerSide(false);
+ msgCtx.setProperty(org.apache.axis2.transport.mail.Constants.CONTENT_TYPE,
+ inMessageContext.getProperty(org.apache.axis2.transport.mail.Constants.CONTENT_TYPE));
+ msgCtx.setIncomingTransportName(org.apache.axis2.Constants.TRANSPORT_MAIL);
+ msgCtx.setEnvelope(inMessageContext.getEnvelope());
+
+ } else {
+ inMessageContext.setOperationContext(operationContext);
+ inMessageContext.setServiceContext(outMessageContext.getServiceContext());
+ if (!operationContext.isComplete()) {
+ operationContext.addMessageContext(inMessageContext);
+ }
+ AxisOperation axisOp = operationContext.getAxisOperation();
+ //TODO need to handle fault case as well ,
+ //TODO need to check whether the message contains fault , if so we need to get the fault message
+ AxisMessage inMessage = axisOp.getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+ inMessageContext.setAxisMessage(inMessage);
+ inMessageContext.setServerSide(false);
}
- AxisOperation axisOp = operationContext.getAxisOperation();
- //TODO need to handle fault case as well ,
- //TODO need to check whether the message contains fault , if so we need to get the fault message
- AxisMessage inMessage = axisOp.getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
- inMessageContext.setAxisMessage(inMessage);
- inMessageContext.setServerSide(false);
+
} else {
msgCtx.setOperationContext(operationContext);
msgCtx.setServiceContext(outMessageContext.getServiceContext());
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org