org.springframework.integration.mail
Class AbstractMailReceiver

java.lang.Object
  extended by org.springframework.integration.mail.AbstractMailReceiver
All Implemented Interfaces:
org.springframework.beans.factory.DisposableBean, MailReceiver
Direct Known Subclasses:
ImapMailReceiver, Pop3MailReceiver

public abstract class AbstractMailReceiver
extends java.lang.Object
implements MailReceiver, org.springframework.beans.factory.DisposableBean

Base class for MailReceiver implementations.

Author:
Arjen Poutsma, Jonas Partner, Mark Fisher, Iwein Fuld

Field Summary
protected  boolean initialized
           
protected  org.apache.commons.logging.Log logger
           
 
Constructor Summary
AbstractMailReceiver(java.lang.String url)
           
AbstractMailReceiver(javax.mail.URLName urlName)
           
 
Method Summary
protected  void deleteMessages(javax.mail.Message[] messages)
          Deletes the given messages from this receiver's folder.
 void destroy()
           
protected  void fetchMessages(javax.mail.Message[] messages)
          Fetches the specified messages from this receiver's folder.
protected  javax.mail.Folder getFolder()
           
protected  void openFolder()
           
 javax.mail.Message[] receive()
           
protected abstract  javax.mail.Message[] searchForNewMessages()
          Subclasses must implement this method to return new mail messages.
 void setJavaMailAuthenticator(javax.mail.Authenticator javaMailAuthenticator)
          Optional, sets the Authenticator to be used to obtain a session
 void setJavaMailProperties(java.util.Properties javaMailProperties)
           
 void setMaxFetchSize(int maxFetchSize)
           
protected abstract  boolean shouldDeleteMessages()
          Subclasses must implement this method to indicate whether the mail messages should be deleted after being received.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

logger

protected final org.apache.commons.logging.Log logger

initialized

protected volatile boolean initialized
Constructor Detail

AbstractMailReceiver

public AbstractMailReceiver(javax.mail.URLName urlName)

AbstractMailReceiver

public AbstractMailReceiver(java.lang.String url)
Method Detail

setJavaMailProperties

public void setJavaMailProperties(java.util.Properties javaMailProperties)

setJavaMailAuthenticator

public void setJavaMailAuthenticator(javax.mail.Authenticator javaMailAuthenticator)
Optional, sets the Authenticator to be used to obtain a session


setMaxFetchSize

public void setMaxFetchSize(int maxFetchSize)

getFolder

protected javax.mail.Folder getFolder()

searchForNewMessages

protected abstract javax.mail.Message[] searchForNewMessages()
                                                      throws javax.mail.MessagingException
Subclasses must implement this method to return new mail messages.

Throws:
javax.mail.MessagingException

shouldDeleteMessages

protected abstract boolean shouldDeleteMessages()
Subclasses must implement this method to indicate whether the mail messages should be deleted after being received.


openFolder

protected void openFolder()
                   throws javax.mail.MessagingException
Throws:
javax.mail.MessagingException

receive

public javax.mail.Message[] receive()
Specified by:
receive in interface MailReceiver

fetchMessages

protected void fetchMessages(javax.mail.Message[] messages)
                      throws javax.mail.MessagingException
Fetches the specified messages from this receiver's folder. Default implementation fetches every FetchProfile.Item.

Parameters:
messages - the messages to fetch
Throws:
javax.mail.MessagingException - in case of JavMail errors

deleteMessages

protected void deleteMessages(javax.mail.Message[] messages)
                       throws javax.mail.MessagingException
Deletes the given messages from this receiver's folder. Only invoked when #setDeleteMessages(boolean) is true.

Parameters:
messages - the messages to delete
Throws:
javax.mail.MessagingException - in case of JavaMail errors

destroy

public void destroy()
             throws java.lang.Exception
Specified by:
destroy in interface org.springframework.beans.factory.DisposableBean
Throws:
java.lang.Exception

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object