org.mule.providers.email
Class Pop3MessageDispatcher

java.lang.Object
  extended byorg.mule.providers.AbstractMessageDispatcher
      extended byorg.mule.providers.email.Pop3MessageDispatcher
All Implemented Interfaces:
Disposable, ExceptionListener, UMOConnectable, UMOMessageDispatcher

public class Pop3MessageDispatcher
extends AbstractMessageDispatcher

Pop3MessageDispatcher For Pop3 connections the dispatcher can only be used to receive message (as opposed to listening for them). Trying to send or dispatch will throw an UnsupportedOperationException.


Field Summary
 
Fields inherited from class org.mule.providers.AbstractMessageDispatcher
connected, connectionStrategy, disposed, doThreading, endpoint, logger, workManager
 
Fields inherited from interface org.mule.umo.provider.UMOMessageDispatcher
RECEIVE_NO_WAIT, RECEIVE_WAIT_INDEFINITELY
 
Constructor Summary
Pop3MessageDispatcher(UMOImmutableEndpoint endpoint)
           
 
Method Summary
protected  void doConnect(UMOImmutableEndpoint endpoint)
           
protected  void doDisconnect()
           
protected  void doDispatch(UMOEvent event)
           
protected  void doDispose()
           
protected  UMOMessage doReceive(UMOImmutableEndpoint endpoint, long timeout)
          Make a specific request to the underlying transport Endpoint can be in the form of pop3://username:password@pop3.lotsofmail.org
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
 UMOConnector getConnector()
          Gets the connector for this dispatcher
 Object getDelegateSession()
          If the underlying transport has the notion of a client session when writing to it, the session should be obtainable using this method.
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
connect, disconnect, dispatch, dispose, exceptionThrown, getConnectEventId, getConnectionDescription, getOutputStream, isConnected, isDisposed, isTransactionRollback, receive, receive, reconnect, send, useRemoteSync
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Pop3MessageDispatcher

public Pop3MessageDispatcher(UMOImmutableEndpoint endpoint)
Method Detail

doConnect

protected void doConnect(UMOImmutableEndpoint endpoint)
                  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(UMOImmutableEndpoint endpoint,
                               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:
endpoint - the endpoint to use when connecting to the resource
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 cuases 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

getDelegateSession

public Object getDelegateSession()
                          throws UMOException
Description copied from interface: UMOMessageDispatcher
If the underlying transport has the notion of a client session when writing to it, the session should be obtainable using this method. If there is no session a null will be returned

Returns:
the transport specific session or null if there is no session
Throws:
UMOException

getConnector

public UMOConnector getConnector()
Description copied from interface: UMOMessageDispatcher
Gets the connector for this dispatcher

Specified by:
getConnector in interface UMOMessageDispatcher
Overrides:
getConnector in class AbstractMessageDispatcher

doDispose

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


Copyright © 2003-2006 MuleSource Inc.. All Rights Reserved.