org.mule.transport.email
Class RetrieveMessageRequester

java.lang.Object
  extended by org.mule.transport.AbstractTransportMessageHandler
      extended by org.mule.transport.AbstractMessageRequester
          extended by org.mule.transport.email.RetrieveMessageRequester
All Implemented Interfaces:
Disposable, Initialisable, Lifecycle, LifecycleStateEnabled, Startable, Stoppable, Connectable, MessageRequester, MessageRequesting

public class RetrieveMessageRequester
extends AbstractMessageRequester

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.transport.AbstractTransportMessageHandler
connected, connector, endpoint, lifecycleManager, logger, muleMessageFactory, retryTemplate
 
Fields inherited from interface org.mule.api.lifecycle.Initialisable
PHASE_NAME
 
Fields inherited from interface org.mule.api.lifecycle.Startable
PHASE_NAME
 
Fields inherited from interface org.mule.api.lifecycle.Stoppable
PHASE_NAME
 
Fields inherited from interface org.mule.api.lifecycle.Disposable
PHASE_NAME
 
Fields inherited from interface org.mule.api.transport.MessageRequesting
REQUEST_NO_WAIT, REQUEST_WAIT_INDEFINITELY
 
Constructor Summary
RetrieveMessageRequester(InboundEndpoint endpoint)
           
 
Method Summary
protected  void doConnect()
           
protected  void doDisconnect()
           
protected  void doDispatch(MuleEvent event)
           
protected  void doDispose()
           
protected  MuleMessage doRequest(long timeout)
          Make a specific request to the underlying transport.
protected  MuleMessage doSend(MuleEvent event)
           
protected  void ensureFolderIsOpen(Folder fldr)
           
protected  void flagMessage(Message message)
          There seems to be some variation on pop3 implementation so it may be preferrable to mark messages as seen here and also overload the getMessages method to grab only new messages
protected  int getMessageCount()
           
protected  Message getNextMessage()
           
protected  boolean hasMessages()
          Optimised check to se whether to return the message count and retrieve the messages.
 
Methods inherited from class org.mule.transport.AbstractMessageRequester
applyInboundTransformers, createLifecycleManager, getEndpoint, getRequesterName, getWorkManager, initialise, request
 
Methods inherited from class org.mule.transport.AbstractTransportMessageHandler
activate, connect, createMuleMessage, createMuleMessage, createMuleMessage, createMuleMessageFactory, createNullMuleMessage, disconnect, dispose, disposeAndLogException, doInitialise, doStart, doStop, getConnectEventId, getConnectionDescription, getConnector, getLifecycleState, initializeMessageFactory, initializeRetryPolicy, isConnected, isDoThreading, isStarted, isStarting, isStopping, passivate, setEndpoint, start, stop, toString, validate, validateConnection
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.mule.api.transport.MessageRequester
activate, createMuleMessage, createMuleMessage, getConnector, passivate, validate
 
Methods inherited from interface org.mule.api.transport.Connectable
connect, disconnect, getConnectionDescription, isConnected, validateConnection
 
Methods inherited from interface org.mule.api.lifecycle.Startable
start
 
Methods inherited from interface org.mule.api.lifecycle.Stoppable
stop
 
Methods inherited from interface org.mule.api.lifecycle.Disposable
dispose
 
Methods inherited from interface org.mule.api.lifecycle.LifecycleStateEnabled
getLifecycleState
 

Constructor Detail

RetrieveMessageRequester

public RetrieveMessageRequester(InboundEndpoint endpoint)
Method Detail

doConnect

protected void doConnect()
                  throws Exception
Overrides:
doConnect in class AbstractTransportMessageHandler
Throws:
Exception

ensureFolderIsOpen

protected void ensureFolderIsOpen(Folder fldr)

doDisconnect

protected void doDisconnect()
                     throws Exception
Overrides:
doDisconnect in class AbstractTransportMessageHandler
Throws:
Exception

doDispatch

protected void doDispatch(MuleEvent event)
                   throws Exception
Parameters:
event -
Throws:
UnsupportedOperationException
Exception

doSend

protected MuleMessage doSend(MuleEvent event)
                      throws Exception
Parameters:
event -
Throws:
UnsupportedOperationException
Exception

doRequest

protected MuleMessage doRequest(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:
doRequest in class AbstractMessageRequester
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 MuleMessage 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(Message message)
                    throws MessagingException
There seems to be some variation on pop3 implementation so it may be preferrable to mark messages as seen here and also overload the getMessages method to grab only new messages

Throws:
MessagingException

getNextMessage

protected Message getNextMessage()
                          throws MessagingException
Throws:
MessagingException

getMessageCount

protected int getMessageCount()
                       throws MessagingException
Throws:
MessagingException

hasMessages

protected boolean hasMessages()
                       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

Throws:
MessagingException

doDispose

protected void doDispose()
Overrides:
doDispose in class AbstractTransportMessageHandler


Copyright © 2003-2012 MuleSoft, Inc.. All Rights Reserved.