Package com.consol.citrus.mail.server
Class MailServer
- java.lang.Object
-
- com.consol.citrus.endpoint.AbstractEndpoint
-
- com.consol.citrus.server.AbstractServer
-
- com.consol.citrus.mail.server.MailServer
-
- All Implemented Interfaces:
InitializingPhase,Named,ShutdownPhase,Endpoint,Server,com.consol.citrus.spi.ReferenceResolverAware,Runnable,org.subethamail.smtp.helper.SimpleMessageListener
public class MailServer extends AbstractServer implements org.subethamail.smtp.helper.SimpleMessageListener
Mail server implementation starts new SMTP server instance and listens for incoming mail messages. Incoming mail messages are converted to XML representation and forwarded to some message endpoint adapter (e.g. forwarding mail content to a message channel). By default incoming messages are accepted automatically. When auto accept is disabled the endpoint adapter is invoked with accept request and test case has to decide accept outcome in response. In case of incoming multipart mail messages the server is able to split the body parts into separate XML messages handled by the endpoint adapter.- Since:
- 1.4
- Author:
- Christoph Deppisch
-
-
Field Summary
-
Fields inherited from class com.consol.citrus.server.AbstractServer
DEFAULT_CHANNEL_ID_SUFFIX
-
-
Constructor Summary
Constructors Constructor Description MailServer()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaccept(String from, String recipient)protected MailMessagecreateMailMessage(Map<String,Object> messageHeaders, String body, String contentType)Creates a new mail message model object from message headers.voiddeliver(String from, String recipient, InputStream data)MailEndpointConfigurationgetEndpointConfiguration()PropertiesgetJavaMailProperties()Gets the Java mail properties.MailMarshallergetMarshaller()Gets the mail message marshaller.MailMessageConvertergetMessageConverter()Gets the message converter.intgetPort()Gets the server port.javax.mail.SessiongetSession()Return new mail session if not already created before.org.subethamail.smtp.server.SMTPServergetSmtpServer()Gets the smtp server instance.protected MessageinvokeEndpointAdapter(MailMessage mail)Invokes the endpoint adapter with constructed mail message and headers.booleanisAutoAccept()Is auto accept enabled.booleanisSplitMultipart()Gets the split multipart message.voidsetAutoAccept(boolean autoAccept)Enable/disable auto accept feature.voidsetJavaMailProperties(Properties javaMailProperties)Sets the Java mail properties.voidsetMarshaller(MailMarshaller marshaller)Sets the mail message marshaller.voidsetMessageConverter(MailMessageConverter messageConverter)Sets the message converter.voidsetPort(int port)Sets the server port.voidsetSmtpServer(org.subethamail.smtp.server.SMTPServer smtpServer)Sets the smtp server instance.voidsetSplitMultipart(boolean splitMultipart)Sets the split multipart message.protected voidshutdown()protected voidstartup()-
Methods inherited from class com.consol.citrus.server.AbstractServer
createConsumer, createProducer, destroy, getDefaultTimeout, getEndpointAdapter, getInterceptors, getReferenceResolver, initialize, isAutoStart, isDebugLogging, isRunning, join, run, setAutoStart, setDebugLogging, setDefaultTimeout, setEndpointAdapter, setInterceptors, setReferenceResolver, setRunning, start, stop
-
Methods inherited from class com.consol.citrus.endpoint.AbstractEndpoint
getActor, getConsumerName, getName, getProducerName, setActor, setName
-
-
-
-
Method Detail
-
startup
protected void startup()
- Specified by:
startupin classAbstractServer
-
shutdown
protected void shutdown()
- Specified by:
shutdownin classAbstractServer
-
accept
public boolean accept(String from, String recipient)
- Specified by:
acceptin interfaceorg.subethamail.smtp.helper.SimpleMessageListener
-
deliver
public void deliver(String from, String recipient, InputStream data)
- Specified by:
deliverin interfaceorg.subethamail.smtp.helper.SimpleMessageListener
-
invokeEndpointAdapter
protected Message invokeEndpointAdapter(MailMessage mail)
Invokes the endpoint adapter with constructed mail message and headers.- Parameters:
mail-
-
createMailMessage
protected MailMessage createMailMessage(Map<String,Object> messageHeaders, String body, String contentType)
Creates a new mail message model object from message headers.- Parameters:
messageHeaders-body-contentType-- Returns:
-
getEndpointConfiguration
public MailEndpointConfiguration getEndpointConfiguration()
- Specified by:
getEndpointConfigurationin interfaceEndpoint- Overrides:
getEndpointConfigurationin classAbstractServer
-
getSession
public javax.mail.Session getSession()
Return new mail session if not already created before.- Returns:
-
isAutoAccept
public boolean isAutoAccept()
Is auto accept enabled.- Returns:
-
setAutoAccept
public void setAutoAccept(boolean autoAccept)
Enable/disable auto accept feature.- Parameters:
autoAccept-
-
getMarshaller
public MailMarshaller getMarshaller()
Gets the mail message marshaller.- Returns:
-
setMarshaller
public void setMarshaller(MailMarshaller marshaller)
Sets the mail message marshaller.- Parameters:
marshaller-
-
getJavaMailProperties
public Properties getJavaMailProperties()
Gets the Java mail properties.- Returns:
-
setJavaMailProperties
public void setJavaMailProperties(Properties javaMailProperties)
Sets the Java mail properties.- Parameters:
javaMailProperties-
-
getPort
public int getPort()
Gets the server port.- Returns:
-
setPort
public void setPort(int port)
Sets the server port.- Parameters:
port-
-
getSmtpServer
public org.subethamail.smtp.server.SMTPServer getSmtpServer()
Gets the smtp server instance.- Returns:
-
setSmtpServer
public void setSmtpServer(org.subethamail.smtp.server.SMTPServer smtpServer)
Sets the smtp server instance.- Parameters:
smtpServer-
-
isSplitMultipart
public boolean isSplitMultipart()
Gets the split multipart message.- Returns:
-
setSplitMultipart
public void setSplitMultipart(boolean splitMultipart)
Sets the split multipart message.- Parameters:
splitMultipart-
-
getMessageConverter
public MailMessageConverter getMessageConverter()
Gets the message converter.- Returns:
-
setMessageConverter
public void setMessageConverter(MailMessageConverter messageConverter)
Sets the message converter.- Parameters:
messageConverter-
-
-