org.mule.providers.email
Class RetrieveMessageDispatcher

java.lang.Object
  extended by org.mule.providers.AbstractMessageDispatcher
      extended by org.mule.providers.email.RetrieveMessageDispatcher
All Implemented Interfaces:
ExceptionListener, Disposable, UMOConnectable, UMOMessageDispatcher, UMOMessageDispatching

public class RetrieveMessageDispatcher
extends AbstractMessageDispatcher

This dispatcher can only be used to receive message (as opposed to listening for them). Trying to send or dispatch will throw an UnsupportedOperationException. This contains a reference to a mail folder (and also the endpoint and connector, via superclasses)


Field Summary
 
Fields inherited from class org.mule.providers.AbstractMessageDispatcher
connected, connecting, connectionStrategy, connector, disposed, endpoint, logger, workManager
 
Fields inherited from interface org.mule.umo.provider.UMOMessageDispatching
RECEIVE_NO_WAIT, RECEIVE_WAIT_INDEFINITELY
 
Constructor Summary
RetrieveMessageDispatcher(UMOImmutableEndpoint endpoint)
           
 
Method Summary
protected  void doConnect()
           
protected  void doDisconnect()
           
protected  void doDispatch(UMOEvent event)
           
protected  void doDispose()
           
protected  UMOMessage doReceive(long timeout)
          Make a specific request to the underlying transport.
protected  UMOMessage doSend(UMOEvent event)
           
protected  void flagMessage(Folder folder, Message message)
          There seems to be som variation on pop3 implementation so it may be preferrable to mark messages as seen here and alos overload the getMessages method to grab only new messages
protected  int getMessageCount(Folder folder)
           
protected  Message getNextMessage(Folder folder)
           
protected  boolean hasMessages(Folder folder)
          Optimised check to se whether to return the message count and retrieve the messages.
 
Methods inherited from class org.mule.providers.AbstractMessageDispatcher
activate, connect, disconnect, dispatch, dispose, exceptionThrown, getConnectEventId, getConnectionDescription, getConnector, getEndpoint, isConnected, isDoThreading, isTransactionRollback, passivate, receive, reconnect, send, toString, useRemoteSync, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RetrieveMessageDispatcher

public RetrieveMessageDispatcher(UMOImmutableEndpoint endpoint)
Method Detail

doConnect

protected void doConnect()
                  throws Exception
Specified by:
doConnect in class AbstractMessageDispatcher
Throws:
Exception

doDisconnect

protected void doDisconnect()
                     throws Exception
Specified by:
doDisconnect in class AbstractMessageDispatcher
Throws:
Exception

doDispatch

protected void doDispatch(UMOEvent event)
                   throws Exception
Specified by:
doDispatch in class AbstractMessageDispatcher
Parameters:
event -
Throws:
UnsupportedOperationException
Exception

doSend

protected UMOMessage doSend(UMOEvent event)
                     throws Exception
Specified by:
doSend in class AbstractMessageDispatcher
Parameters:
event -
Returns:
Throws:
UnsupportedOperationException
Exception

doReceive

protected UMOMessage doReceive(long timeout)
                        throws Exception
Make a specific request to the underlying transport. Endpoint can be in the form of pop3://username:password@pop3.lotsofmail.org

Specified by:
doReceive in class AbstractMessageDispatcher
Parameters:
timeout - the maximum time the operation should block before returning. The call should return immediately if there is data available. If no data becomes available before the timeout elapses, null will be returned
Returns:
the result of the request wrapped in a UMOMessage object. Null will be returned if no data was avaialable
Throws:
Exception - if the call to the underlying protocal causes an exception

flagMessage

protected void flagMessage(Folder folder,
                           Message message)
                    throws MessagingException
There seems to be som variation on pop3 implementation so it may be preferrable to mark messages as seen here and alos overload the getMessages method to grab only new messages

Parameters:
message -
Throws:
MessagingException

getNextMessage

protected Message getNextMessage(Folder folder)
                          throws MessagingException
Throws:
MessagingException

getMessageCount

protected int getMessageCount(Folder folder)
                       throws MessagingException
Throws:
MessagingException

hasMessages

protected boolean hasMessages(Folder folder)
                       throws MessagingException
Optimised check to se whether to return the message count and retrieve the messages. Some pop3 implementations differ so an optimised check such as folder.hasNewMessages() cannot be used

Parameters:
folder -
Returns:
Throws:
MessagingException

doDispose

protected void doDispose()
Specified by:
doDispose in class AbstractMessageDispatcher


Copyright © 2003-2008 MuleSource, Inc.. All Rights Reserved.