You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by de...@apache.org on 2007/05/18 10:54:38 UTC
svn commit: r539326 - in
/webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2:
description/ transport/mail/
Author: deepal
Date: Fri May 18 01:54:37 2007
New Revision: 539326
URL: http://svn.apache.org/viewvc?view=rev&rev=539326
Log:
improved SMTP transport , now the sync model work using callback and no queues are used.
-need to call the operation cleanup when the MEP complete
Modified:
webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java
webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/Constants.java
webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java
webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/MailWorker.java
webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/MailWorkerManager.java
webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java
webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/SynchronousMailListener.java
Modified: webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java?view=diff&rev=539326&r1=539325&r2=539326
==============================================================================
--- webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java (original)
+++ webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/description/OutInAxisOperation.java Fri May 18 01:54:37 2007
@@ -74,6 +74,7 @@
} else {
mep.put(MESSAGE_LABEL_IN_VALUE, msgContext);
opContext.setComplete(true);
+ opContext.cleanup();
}
}
Modified: webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/Constants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/Constants.java?view=diff&rev=539326&r1=539325&r2=539326
==============================================================================
--- webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/Constants.java (original)
+++ webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/Constants.java Fri May 18 01:54:37 2007
@@ -81,4 +81,5 @@
public static final String IN_REPLY_TO = "In-Reply-To";
public static final String MAILTO = "mailto";
public static final String MAPPING_TABLE = "mappingTable";
+ public static final String CALLBACK_TABLE = "callbackTable";
}
Modified: webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java?view=diff&rev=539326&r1=539325&r2=539326
==============================================================================
--- webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java (original)
+++ webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/EMailSender.java Fri May 18 01:54:37 2007
@@ -17,12 +17,12 @@
package org.apache.axis2.transport.mail;
-import edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue;
import org.apache.axiom.attachments.ByteArrayDataSource;
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.i18n.Messages;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.context.ConfigurationContext;
@@ -228,46 +228,36 @@
private void sendReceive(MessageContext msgContext, String msgId) throws AxisFault {
storeMessageContext(msgContext, msgId);
-
ConfigurationContext cc = msgContext.getConfigurationContext();
-
- SimpleMailListener simpleMailListener;
-
+ //While sysncmial listner .not complete
Options options = msgContext.getOptions();
+ long outInMilliSeconds = options.getTimeOutInMilliSeconds();
+ SynchronousMailListener synchronousMailListener = null;
if (!options.isUseSeparateListener() && !msgContext.isServerSide()) {
- Object obj = cc.getProperty(Constants.MAIL_SYNC);
-
- if (obj == null) {
- SynchronousMailListener synchronousMailListener =
- new SynchronousMailListener(options.getTimeOutInMilliSeconds(), new LinkedBlockingQueue());
- cc.setProperty(Constants.MAIL_SYNC, synchronousMailListener);
-
- simpleMailListener = synchronousMailListener.sendReceive(msgContext, msgId);
-
- TransportInDescription transportIn = msgContext.getConfigurationContext()
- .getAxisConfiguration().getTransportIn(org.apache.axis2.Constants.TRANSPORT_MAIL);
-
- Object mailPOP3Obj= msgContext.getProperty(Constants.MAIL_POP3);
- if (mailPOP3Obj != null) {
- simpleMailListener.initFromRuntime((Properties) obj, msgContext);
- } else {
- simpleMailListener.init(msgContext.getConfigurationContext(), transportIn);
+ if(!cc.getListenerManager().isListenerRunning(Constants.MAILTO)){
+ TransportInDescription mailTo=
+ cc.getAxisConfiguration().getTransportIn(Constants.MAILTO);
+ if(mailTo==null){
+ throw new AxisFault("Could not found transport for " +Constants.MAILTO );
}
- msgContext.getConfigurationContext().getThreadPool().execute(simpleMailListener);
-
- simpleMailListener.start();
- log.info("Simple Mail Listener started for the first time and response received");
-
-
- } else {
- SynchronousMailListener synchronousMailListener = (SynchronousMailListener)obj;
- synchronousMailListener.sendReceive(msgContext,msgId).start();
- log.info("Simple mail listener started and response received");
-
+ cc.getListenerManager().addListener(mailTo,false);
}
+ Hashtable callBackTable = (Hashtable) cc.getProperty(Constants.CALLBACK_TABLE);
+ if(callBackTable!=null){
+ synchronousMailListener =
+ new SynchronousMailListener(messageContext, outInMilliSeconds);
+ callBackTable.put(msgId,synchronousMailListener);
+ }
+ while(!synchronousMailListener.isComplete()){
+ try {
+ Thread.sleep(6000);
+ } catch (InterruptedException e) {
+ throw new AxisFault(e);
+ }
+ }
+ callBackTable.remove(msgId);
}
-
}
private void storeMessageContext(MessageContext msgContext, String msgId) {
Modified: webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/MailWorker.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/MailWorker.java?view=diff&rev=539326&r1=539325&r2=539326
==============================================================================
--- webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/MailWorker.java (original)
+++ webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/MailWorker.java Fri May 18 01:54:37 2007
@@ -25,17 +25,15 @@
public class MailWorker implements Runnable {
private ConfigurationContext configContext = null;
- private LinkedBlockingQueue messageQueue;
+ private MessageContext messageContext;
/**
* Constructor for MailWorker
*
- * @param messageQueue
- * @param reg
*/
- public MailWorker(ConfigurationContext reg, LinkedBlockingQueue messageQueue) {
+ public MailWorker(ConfigurationContext reg, MessageContext messageContext) {
this.configContext = reg;
- this.messageQueue = messageQueue;
+ this.messageContext = messageContext;
}
/**
@@ -43,27 +41,23 @@
*/
public void run() {
AxisEngine engine = new AxisEngine(configContext);
- MessageContext msgContext = null;
// create and initialize a message context
- while (true) {
- try {
- msgContext = (MessageContext) messageQueue.take();
- if (msgContext.getEnvelope().getBody().hasFault()) {
- engine.receiveFault(msgContext);
- } else {
- engine.receive(msgContext);
- }
+ try {
+ if (messageContext.getEnvelope().getBody().hasFault()) {
+ engine.receiveFault(messageContext);
+ } else {
+ engine.receive(messageContext);
+ }
- } catch (Exception e) {
- try {
- if (msgContext != null) {
- MessageContext faultContext =
- MessageContextBuilder.createFaultMessageContext(msgContext, e);
- engine.sendFault(faultContext);
- }
- } catch (Exception e1) {
- // Ignore errors that would possibly happen this catch
+ } catch (Exception e) {
+ try {
+ if (messageContext != null&&!messageContext.isServerSide()) {
+ MessageContext faultContext =
+ MessageContextBuilder.createFaultMessageContext(messageContext, e);
+ engine.sendFault(faultContext);
}
+ } catch (Exception e1) {
+ // Ignore errors that would possibly happen this catch
}
}
Modified: webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/MailWorkerManager.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/MailWorkerManager.java?view=diff&rev=539326&r1=539325&r2=539326
==============================================================================
--- webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/MailWorkerManager.java (original)
+++ webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/MailWorkerManager.java Fri May 18 01:54:37 2007
@@ -43,7 +43,7 @@
public void start() throws AxisFault {
for (int i = 0; i < poolSize; i++) {
- workerPool.execute(new MailWorker(configurationContext, messageQueue));
+// workerPool.execute(new MailWorker(configurationContext, messageQueue));
}
}
}
Modified: webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java?view=diff&rev=539326&r1=539325&r2=539326
==============================================================================
--- webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java (original)
+++ webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/SimpleMailListener.java Fri May 18 01:54:37 2007
@@ -18,8 +18,6 @@
package org.apache.axis2.transport.mail;
import edu.emory.mathcs.backport.java.util.concurrent.ExecutorService;
-import edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue;
-import edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor;
import edu.emory.mathcs.backport.java.util.concurrent.TimeUnit;
import org.apache.axiom.soap.SOAP12Constants;
import org.apache.axiom.soap.SOAPEnvelope;
@@ -35,7 +33,6 @@
import org.apache.axis2.transport.TransportListener;
import org.apache.axis2.transport.TransportUtils;
import org.apache.axis2.util.Utils;
-import org.apache.axis2.util.threadpool.DefaultThreadFactory;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -70,7 +67,7 @@
/*This hold properties for pop3 or impa server connection*/
private Properties pop3Properties = new Properties();
- private EmailReceiver receiver = null;
+ private final EmailReceiver receiver ;
/**
* Time has been put from best guest. Let the default be 3 mins.
@@ -80,24 +77,8 @@
*/
private int listenerWaitInterval = 1000 * 60 * 3;
- private ExecutorService workerPool;
-
- private static final int WORKERS_MAX_THREADS = 5;
- private static final long WORKER_KEEP_ALIVE = 60L;
- private static final TimeUnit TIME_UNIT = TimeUnit.SECONDS;
-
- private LinkedBlockingQueue messageQueue;
-
public SimpleMailListener() {
- }
-
- /**
- * This constructor will be used in when Mail simulate the request/response
- *
- * @param messageQueue
- */
- public SimpleMailListener(LinkedBlockingQueue messageQueue) {
- this.messageQueue = messageQueue;
+ receiver = new EmailReceiver();
}
public void init(ConfigurationContext configurationContext, TransportInDescription transportIn)
@@ -162,7 +143,6 @@
urlName = new URLName(protocol, host, Integer.parseInt(port), "", user, password);
}
- receiver = new EmailReceiver();
receiver.setPop3Properties(pop3Properties);
receiver.setUrlName(urlName);
Object obj = configurationContext.
@@ -172,6 +152,13 @@
org.apache.axis2.transport.mail.Constants.MAPPING_TABLE, new Hashtable());
}
+ Object callBackTable = configurationContext.
+ getProperty(org.apache.axis2.transport.mail.Constants.CALLBACK_TABLE);
+ if (callBackTable == null) {
+ configurationContext.setProperty(
+ org.apache.axis2.transport.mail.Constants.CALLBACK_TABLE, new Hashtable());
+ }
+
}
@@ -214,7 +201,6 @@
urlName = new URLName(protocol, host, Integer.parseInt(port), "", user, password);
}
- receiver = new EmailReceiver();
receiver.setPop3Properties(pop3Properties);
receiver.setUrlName(urlName);
Object obj = configurationContext.
@@ -223,6 +209,12 @@
configurationContext.setProperty(
org.apache.axis2.transport.mail.Constants.MAPPING_TABLE, new Hashtable());
}
+ Object callBackTable = configurationContext.
+ getProperty(org.apache.axis2.transport.mail.Constants.CALLBACK_TABLE);
+ if (callBackTable == null) {
+ configurationContext.setProperty(
+ org.apache.axis2.transport.mail.Constants.CALLBACK_TABLE, new Hashtable());
+ }
}
/**
@@ -291,14 +283,16 @@
MimeMessage msg = (MimeMessage) msgs[i];
try {
MessageContext mc = createMessageContextToMailWorker(msg);
- if (mc != null) {
- messageQueue.add(mc);
+ if(mc==null){
+ continue;
}
+ msg.setFlag(Flags.Flag.DELETED, true);
+ MailWorker worker = new MailWorker(configurationContext,mc);
+ this.configurationContext.getThreadPool().execute(worker);
} catch (Exception e) {
log.error("Error in SimpleMailListener - processing mail", e);
} finally {
// delete mail in any case
- msg.setFlag(Flags.Flag.DELETED, true);
}
}
}
@@ -363,13 +357,16 @@
msgContext.setProperty(org.apache.axis2.Constants.OUT_TRANSPORT_INFO, transportInfo);
buildSOAPEnvelope(msg, msgContext);
- fillMessageContextFromAvaiableData(msgContext,inReplyTo);
+ if(!fillMessageContextFromAvaiableData(msgContext,inReplyTo)){
+ return null;
+ }
}
return msgContext;
}
- private void fillMessageContextFromAvaiableData(MessageContext msgContext , String messageID) throws AxisFault{
- Hashtable mappingTable = (Hashtable) msgContext.getConfigurationContext().
+ private boolean fillMessageContextFromAvaiableData(MessageContext msgContext ,
+ String messageID) throws AxisFault{
+ Hashtable mappingTable = (Hashtable) configurationContext.
getProperty(org.apache.axis2.transport.mail.Constants.MAPPING_TABLE);
if(mappingTable!=null&&messageID!=null){
@@ -388,6 +385,16 @@
}
}
}
+ Hashtable callBackTable = (Hashtable) configurationContext.getProperty(
+ org.apache.axis2.transport.mail.Constants.CALLBACK_TABLE);
+ if(messageID!=null&&callBackTable!=null){
+ SynchronousMailListener listener = (SynchronousMailListener) callBackTable.get(messageID);
+ if(listener!=null){
+ listener.setInMessageContext(msgContext);
+ return false;
+ }
+ }
+ return true;
}
private void buildSOAPEnvelope(MimeMessage msg, MessageContext msgContext)
@@ -496,21 +503,7 @@
* Start this listener
*/
public void start() throws AxisFault {
- workerPool = new ThreadPoolExecutor(1,
- WORKERS_MAX_THREADS, WORKER_KEEP_ALIVE, TIME_UNIT,
- new LinkedBlockingQueue(),
- new DefaultThreadFactory(
- new ThreadGroup("Mail Worker thread group"),
- "MailWorker"));
-
- messageQueue = new LinkedBlockingQueue();
-
this.configurationContext.getThreadPool().execute(this);
-
- MailWorkerManager mailWorkerManager = new MailWorkerManager(configurationContext,
- messageQueue, workerPool,
- WORKERS_MAX_THREADS);
- mailWorkerManager.start();
}
/**
@@ -518,10 +511,7 @@
* <p/>
*/
public void stop() {
- running = true;
- if (!workerPool.isShutdown()) {
- workerPool.shutdown();
- }
+ running = false;
log.info("Stopping the mail listner");
}
@@ -533,12 +523,13 @@
public EndpointReference[] getEPRsForService(String serviceName, String ip) throws AxisFault {
return new EndpointReference[]{
new EndpointReference(Constants.TRANSPORT_MAIL + ":" + replyTo + "?" +
- configurationContext.getServiceContextPath() + "/" +
- serviceName),
- new EndpointReference(Constants.TRANSPORT_MAIL + ":" + replyTo + "?" +
org.apache.axis2.transport.mail.Constants.X_SERVICE_PATH + "="
+ configurationContext.getServiceContextPath() + "/" +
- serviceName)};
+ serviceName),
+ new EndpointReference(Constants.TRANSPORT_MAIL + ":" + replyTo + "?" +
+ configurationContext.getServiceContextPath() + "/" +
+ serviceName)
+ };
}
@@ -548,9 +539,5 @@
public void destroy() {
this.configurationContext = null;
- }
-
- public LinkedBlockingQueue getLinkedBlockingQueue() {
- return messageQueue;
}
}
Modified: webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/SynchronousMailListener.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/SynchronousMailListener.java?view=diff&rev=539326&r1=539325&r2=539326
==============================================================================
--- webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/SynchronousMailListener.java (original)
+++ webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/mail/SynchronousMailListener.java Fri May 18 01:54:37 2007
@@ -15,91 +15,68 @@
*/
package org.apache.axis2.transport.mail;
-import edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue;
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.context.ContextFactory;
import org.apache.axis2.context.OperationContext;
-import org.apache.axis2.description.TransportInDescription;
+import org.apache.axis2.description.AxisOperation;
+import org.apache.axis2.description.AxisMessage;
import org.apache.axis2.wsdl.WSDLConstants;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.util.Properties;
-/*
- *
- */
-
public class SynchronousMailListener {
private static Log log = LogFactory.getLog(SynchronousMailListener.class);
+ private boolean complete = false;
+ //To store out going messageconext
+ private MessageContext outMessageContext;
+ private MessageContext inMessageContext;
private long timeoutInMilliseconds = -1;
- private LinkedBlockingQueue queue;
- public SynchronousMailListener(long timeoutInMilliseconds, LinkedBlockingQueue queue) {
+
+ public SynchronousMailListener(MessageContext outMessageContext,
+ long timeoutInMilliseconds) {
+ this.outMessageContext = outMessageContext;
this.timeoutInMilliseconds = timeoutInMilliseconds;
- this.queue = queue;
}
-
- public SimpleMailListener sendReceive(final MessageContext msgContext, final String msgId) throws AxisFault {
- /**
- * This will be bloked invocation
- */
- return new SimpleMailListener(queue) {
- public void start() throws AxisFault {
- long timeStatus;
- while (true) {
- long startTime = System.currentTimeMillis();
- try {
- MessageContext msgCtx = (MessageContext) getLinkedBlockingQueue().take();
- MailBasedOutTransportInfo transportInfo = (MailBasedOutTransportInfo) msgCtx
- .getProperty(org.apache.axis2.Constants.OUT_TRANSPORT_INFO);
- if (transportInfo.getInReplyTo() == null) {
- String error = EMailSender.class.getName() + " Coudn't simulate request/response without In-Reply-To Mail header";
- log.error(error);
- throw new AxisFault(error);
- }
- if (transportInfo.getInReplyTo().equals(msgId)) {
- OperationContext operationContext = msgContext.getOperationContext();
- MessageContext messageContext = operationContext.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
- //FIXME
- if (messageContext == null) {
- if (!operationContext.isComplete()) {
- messageContext = ContextFactory.createMessageContext(msgContext.getConfigurationContext());
- messageContext.setOperationContext(operationContext);
- messageContext.setServiceContext(msgContext.getServiceContext());
- msgContext.getOperationContext().addMessageContext(messageContext);
- messageContext.setEnvelope(msgCtx.getEnvelope());
- }
- } else {
- messageContext.setEnvelope(msgCtx.getEnvelope());
- }
- log.info(SynchronousMailListener.class.getName() + " found the required message.");
- break;
- }
- getLinkedBlockingQueue().put(msgCtx);
-
- } catch (InterruptedException e) {
- log.warn(e);
- throw new AxisFault(e);
- }
- long endTime = System.currentTimeMillis();
- timeStatus = endTime - startTime;
- if (timeoutInMilliseconds != -1 && timeStatus > timeoutInMilliseconds) {
- /*TODO What should be the best default value for timeoutInMilliseconds ?*/
- /*log.info(SynchronousMailListener.class.getName() + " timeout");
- break;*/
- }
-
- }
-
-
+ public void setInMessageContext(MessageContext inMessageContext) throws AxisFault{
+ 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);
}
- };
-
-
+ 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());
+ AxisOperation axisOp = operationContext.getAxisOperation();
+ AxisMessage inMessage = axisOp.getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+ msgCtx.setAxisMessage(inMessage);
+ 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());
+ if(!operationContext.isComplete()){
+ operationContext.addMessageContext(msgCtx);
+ }
+ }
+ this.inMessageContext = inMessageContext;
+ log.info(" SynchronousMailListener found the required message.");
+ complete = true;
}
public long getTimeoutInMilliseconds() {
@@ -108,5 +85,13 @@
public void setTimeoutInMilliseconds(long timeoutInMilliseconds) {
this.timeoutInMilliseconds = timeoutInMilliseconds;
+ }
+
+ public boolean isComplete() {
+ return complete;
+ }
+
+ public MessageContext getInMessageContext() {
+ return inMessageContext;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org