From: Juergen H. <jho...@us...> - 2006-12-30 23:37:13
|
Update of /cvsroot/springframework/spring/src/org/springframework/mail/javamail In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv20267/src/org/springframework/mail/javamail Modified Files: Tag: mbranch-1-2 JavaMailSender.java JavaMailSenderImpl.java MimeMessagePreparator.java Log Message: polishing Index: JavaMailSenderImpl.java =================================================================== RCS file: /cvsroot/springframework/spring/src/org/springframework/mail/javamail/JavaMailSenderImpl.java,v retrieving revision 1.22.4.1 retrieving revision 1.22.4.2 diff -C2 -d -r1.22.4.1 -r1.22.4.2 *** JavaMailSenderImpl.java 21 Apr 2006 00:13:49 -0000 1.22.4.1 --- JavaMailSenderImpl.java 30 Dec 2006 23:37:04 -0000 1.22.4.2 *************** *** 45,59 **** /** ! * Production implementation of the JavaMailSender interface. ! * Supports both JavaMail MimeMessages and Spring SimpleMailMessages. ! * Can also be used as plain MailSender implementation. * * <p>Allows for defining all settings locally as bean properties. ! * Alternatively, a pre-configured JavaMail Session can be specified, ! * possibly pulled from an application server's JNDI environment. * * <p>Non-default properties in this object will always override the settings ! * in the JavaMail Session. Note that if overriding all values locally, there ! * is no added value in setting a pre-configured Session. * * @author Dmitriy Kopylenko --- 45,60 ---- /** ! * Production implementation of the {@link JavaMailSender} interface, ! * supporting both JavaMail {@link MimeMessage MimeMessages} and Spring ! * {@link SimpleMailMessage SimpleMailMessages}. Can also be used as a ! * plain {@link org.springframework.mail.MailSender} implementation. * * <p>Allows for defining all settings locally as bean properties. ! * Alternatively, a pre-configured JavaMail <code>Session</code> can be ! * specified, possibly pulled from an application server's JNDI environment. * * <p>Non-default properties in this object will always override the settings ! * in the JavaMail <code>Session</code>. Note that if overriding all values ! * locally, there is no added value in setting a pre-configured <code>Session</code>. * * @author Dmitriy Kopylenko *************** *** 72,80 **** public class JavaMailSenderImpl implements JavaMailSender { public static final String DEFAULT_PROTOCOL = "smtp"; public static final int DEFAULT_PORT = -1; ! protected final Log logger = LogFactory.getLog(getClass()); --- 73,87 ---- public class JavaMailSenderImpl implements JavaMailSender { + /** + * The default protocol: 'smtp'. + */ public static final String DEFAULT_PROTOCOL = "smtp"; + /** + * The default port: -1. + */ public static final int DEFAULT_PORT = -1; ! /** Logger available to subclasses */ protected final Log logger = LogFactory.getLog(getClass()); *************** *** 97,105 **** /** ! * Constructor for JavaMailSenderImpl. ! * <p>Initializes the "defaultFileTypeMap" property with a default ! * ConfigurableMimeFileTypeMap. ! * @see #setDefaultFileTypeMap ! * @see ConfigurableMimeFileTypeMap */ public JavaMailSenderImpl() { --- 104,110 ---- /** ! * Create a new instance of the <code>JavaMailSenderImpl</code> class. ! * <p>Initializes the {@link #setDefaultFileTypeMap 'defaultFileTypeMap'} ! * property with a default {@link ConfigurableMimeFileTypeMap}. */ public JavaMailSenderImpl() { *************** *** 110,118 **** /** ! * Set JavaMail properties for the Session. A new Session will be created ! * with those properties. Use either this or setSession, not both. ! * <p>Non-default properties in this MailSender will override given * JavaMail properties. - * @see #setSession */ public void setJavaMailProperties(Properties javaMailProperties) { --- 115,123 ---- /** ! * Set JavaMail properties for the <code>Session</code>. ! * <p>A new <code>Session</code> will be created with those properties. ! * Use either this method or {@link #setSession}, but not both. ! * <p>Non-default properties in this instance will override given * JavaMail properties. */ public void setJavaMailProperties(Properties javaMailProperties) { *************** *** 121,128 **** /** ! * Set the JavaMail Session, possibly pulled from JNDI. Default is a new Session ! * without defaults, i.e. completely configured via this object's properties. ! * <p>If using a pre-configured Session, non-default properties in this ! * MailSender will override the settings in the Session. * @see #setJavaMailProperties */ --- 126,135 ---- /** ! * Set the JavaMail <code>Session</code>, possibly pulled from JNDI. ! * <p>Default is a new <code>Session</code> without defaults, that is ! * completely configured via this instance's properties. ! * <p>If using a pre-configured <code>Session</code>, non-default properties ! * in this instance will override the settings in the <code>Session</code>. ! * @throws IllegalArgumentException if the supplied <code>session</code> is null * @see #setJavaMailProperties */ *************** *** 135,146 **** /** ! * Return the JavaMail Session. */ public Session getSession() { ! return session; } /** ! * Set the mail protocol. Default is SMTP. */ public void setProtocol(String protocol) { --- 142,153 ---- /** ! * Return the JavaMail <code>Session</code>. */ public Session getSession() { ! return this.session; } /** ! * Set the mail protocol. Default is "smtp". */ public void setProtocol(String protocol) { *************** *** 152,156 **** */ public String getProtocol() { ! return protocol; } --- 159,163 ---- */ public String getProtocol() { ! return this.protocol; } *************** *** 166,175 **** */ public String getHost() { ! return host; } /** ! * Set the mail server port. Default is -1, letting JavaMail ! * use the default SMTP port (25). */ public void setPort(int port) { --- 173,183 ---- */ public String getHost() { ! return this.host; } /** ! * Set the mail server port. ! * <p>Default is {@link #DEFAULT_PORT}, letting JavaMail use the default ! * SMTP port (25). */ public void setPort(int port) { *************** *** 181,195 **** */ public int getPort() { ! return port; } /** * Set the username for the account at the mail host, if any. ! * <p>Note that the underlying JavaMail Session has to be configured ! * with the property "mail.smtp.auth" set to "true", else the specified ! * username will not be sent to the mail server by the JavaMail runtime. ! * If you are not explicitly passing in a Session to use, simply specify ! * this setting via JavaMailSenderImpl's "javaMailProperties". ! * @see #setJavaMailProperties * @see #setSession * @see #setPassword --- 189,203 ---- */ public int getPort() { ! return this.port; } /** * Set the username for the account at the mail host, if any. ! * <p>Note that the underlying JavaMail <code>Session</code> has to be ! * configured with the property <code>"mail.smtp.auth"</code> set to ! * <code>true</code>, else the specified username will not be sent to the ! * mail server by the JavaMail runtime. If you are not explicitly passing ! * in a <code>Session</code> to use, simply specify this setting via ! * {@link #setJavaMailProperties}. * @see #setSession * @see #setPassword *************** *** 203,217 **** */ public String getUsername() { ! return username; } /** * Set the password for the account at the mail host, if any. ! * <p>Note that the underlying JavaMail Session has to be configured ! * with the property "mail.smtp.auth" set to "true", else the specified ! * password will not be sent to the mail server by the JavaMail runtime. ! * If you are not explicitly passing in a Session to use, simply specify ! * this setting via JavaMailSenderImpl's "javaMailProperties". ! * @see #setJavaMailProperties * @see #setSession * @see #setUsername --- 211,225 ---- */ public String getUsername() { ! return this.username; } /** * Set the password for the account at the mail host, if any. ! * <p>Note that the underlying JavaMail <code>Session</code> has to be ! * configured with the property <code>"mail.smtp.auth"</code> set to ! * <code>true</code>, else the specified password will not be sent to the ! * mail server by the JavaMail runtime. If you are not explicitly passing ! * in a <code>Session</code> to use, simply specify this setting via ! * {@link #setJavaMailProperties}. * @see #setSession * @see #setUsername *************** *** 225,235 **** */ public String getPassword() { ! return password; } /** ! * Set the default encoding to use for MimeMessages created by this ! * JavaMailSender. Such an encoding will be auto-detected by MimeMessageHelper. ! * @see MimeMessageHelper */ public void setDefaultEncoding(String defaultEncoding) { --- 233,243 ---- */ public String getPassword() { ! return this.password; } /** ! * Set the default encoding to use for {@link MimeMessage MimeMessages} ! * created by this instance. ! * <p>Such an encoding will be auto-detected by {@link MimeMessageHelper}. */ public void setDefaultEncoding(String defaultEncoding) { *************** *** 238,259 **** /** ! * Return the default encoding for MimeMessages, or <code>null</code> if none. */ public String getDefaultEncoding() { ! return defaultEncoding; } /** ! * Set the default Java Activation FileTypeMap to use for MimeMessages ! * created by this JavaMailSender. A FileTypeMap specified here will be ! * autodetected by MimeMessageHelper, avoiding the need to specify the ! * FileTypeMap for each MimeMessageHelper instance. * <p>For example, you can specify a custom instance of Spring's ! * ConfigurableMimeFileTypeMap here. If not explicitly specified, a default ! * ConfigurableMimeFileTypeMap will be used, containing an extended set ! * of MIME type mappings (as defined by the <code>mime.types</code> file ! * contained in the Spring jar). * @see MimeMessageHelper#setFileTypeMap - * @see ConfigurableMimeFileTypeMap */ public void setDefaultFileTypeMap(FileTypeMap defaultFileTypeMap) { --- 246,268 ---- /** ! * Return the default encoding for {@link MimeMessage MimeMessages}, ! * or <code>null</code> if none. */ public String getDefaultEncoding() { ! return this.defaultEncoding; } /** ! * Set the default Java Activation {@link FileTypeMap} to use for ! * {@link MimeMessage MimeMessages} created by this instance. ! * <p>A <code>FileTypeMap</code> specified here will be autodetected by ! * {@link MimeMessageHelper}, avoiding the need to specify the ! * <code>FileTypeMap</code> for each <code>MimeMessageHelper</code> instance. * <p>For example, you can specify a custom instance of Spring's ! * {@link ConfigurableMimeFileTypeMap} here. If not explicitly specified, ! * a default <code>ConfigurableMimeFileTypeMap</code> will be used, containing ! * an extended set of MIME type mappings (as defined by the ! * <code>mime.types</code> file contained in the Spring jar). * @see MimeMessageHelper#setFileTypeMap */ public void setDefaultFileTypeMap(FileTypeMap defaultFileTypeMap) { *************** *** 262,270 **** /** ! * Return the default Java Activation FileTypeMap for MimeMessages, ! * or <code>null</code> if none. */ public FileTypeMap getDefaultFileTypeMap() { ! return defaultFileTypeMap; } --- 271,279 ---- /** ! * Return the default Java Activation {@link FileTypeMap} for ! * {@link MimeMessage MimeMessages}, or <code>null</code> if none. */ public FileTypeMap getDefaultFileTypeMap() { ! return this.defaultFileTypeMap; } Index: JavaMailSender.java =================================================================== RCS file: /cvsroot/springframework/spring/src/org/springframework/mail/javamail/JavaMailSender.java,v retrieving revision 1.9 retrieving revision 1.9.4.1 diff -C2 -d -r1.9 -r1.9.4.1 *** JavaMailSender.java 25 Mar 2005 09:27:16 -0000 1.9 --- JavaMailSender.java 30 Dec 2006 23:37:04 -0000 1.9.4.1 *************** *** 1,11 **** /* ! * Copyright 2002-2005 the original author or authors. ! * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at ! * * http://www.apache.org/licenses/LICENSE-2.0 ! * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, --- 1,11 ---- /* ! * Copyright 2002-2006 the original author or authors. ! * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at ! * * http://www.apache.org/licenses/LICENSE-2.0 ! * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, *************** *** 25,55 **** /** ! * Extended MailSender interface for JavaMail, supporting MIME messages both ! * as direct arguments and through preparation callbacks. Typically used in ! * conjunction with the MimeMessageHelper class for convenient creation of ! * JavaMail MimeMessages, including attachments etc. * ! * <p>Clients should talk to the mail sender through this interface if ! * they need mail functionality beyond SimpleMailMessage. The production ! * implementation is JavaMailSenderImpl. Clients will typically receive the ! * mail sender reference through dependency injection. * ! * <p>The recommended way of using this interface is the MimeMessagePreparator ! * mechanism, possibly using a MimeMessageHelper for populating the message. ! * See MimeMessageHelper's javadoc for an example. * ! * <p>Not as easy to test as a plain MailSender, but still rather easy compared to ! * traditional JavaMail code: Just let <code>createMimeMessage</code> return a plain ! * MimeMessage created with a <code>Session.getInstance(new Properties())</code> ! * call, and check the given messages in your mock implementations of the various ! * send methods. * * @author Juergen Hoeller * @since 07.10.2003 * @see JavaMailSenderImpl - * @see #createMimeMessage * @see MimeMessagePreparator * @see MimeMessageHelper - * @see org.springframework.mail.SimpleMailMessage */ public interface JavaMailSender extends MailSender { --- 25,63 ---- /** ! * Extended {@link org.springframework.mail.MailSender} interface for JavaMail, ! * supporting MIME messages both as direct arguments and through preparation ! * callbacks. Typically used in conjunction with the {@link MimeMessageHelper} ! * class for convenient creation of JavaMail {@link MimeMessage MimeMessages}, ! * including attachments etc. * ! * <p>Clients should talk to the mail sender through this interface if they need ! * mail functionality beyond {@link org.springframework.mail.SimpleMailMessage}. ! * The production implementation is {@link JavaMailSenderImpl}; for testing, ! * mocks can be created based on this interface. Clients will typically receive ! * the JavaMailSender reference through dependency injection. * ! * <p>The recommended way of using this interface is the {@link MimeMessagePreparator} ! * mechanism, possibly using a {@link MimeMessageHelper} for populating the message. ! * See {@link MimeMessageHelper MimeMessageHelper's javadoc} for an example. * ! * <p>The entire JavaMail {@link javax.mail.Session} management is abstracted ! * by the JavaMailSender. Client code should not deal with a Session in any way, ! * rather leave the entire JavaMail configuration and resource handling to the ! * JavaMailSender implementation. This also increases testability. ! * ! * <p>A JavaMailSender client is not as easy to test as a plain ! * {@link org.springframework.mail.MailSender} client, but still straightforward ! * compared to traditional JavaMail code: Just let {@link #createMimeMessage()} ! * return a plain {@link MimeMessage} created with a ! * <code>Session.getInstance(new Properties())</code> call, and check the passed-in ! * messages in your mock implementations of the various <code>send</code> methods. * * @author Juergen Hoeller * @since 07.10.2003 + * @see javax.mail.internet.MimeMessage + * @see javax.mail.Session * @see JavaMailSenderImpl * @see MimeMessagePreparator * @see MimeMessageHelper */ public interface JavaMailSender extends MailSender { *************** *** 77,81 **** /** * Send the given JavaMail MIME message. ! * The message needs to have been created with createMimeMessage. * @param mimeMessage message to send * @throws org.springframework.mail.MailAuthenticationException --- 85,89 ---- /** * Send the given JavaMail MIME message. ! * The message needs to have been created with {@link #createMimeMessage()}. * @param mimeMessage message to send * @throws org.springframework.mail.MailAuthenticationException *************** *** 89,93 **** /** * Send the given array of JavaMail MIME messages in batch. ! * The messages need to have been created with createMimeMessage. * @param mimeMessages messages to send * @throws org.springframework.mail.MailAuthenticationException --- 97,101 ---- /** * Send the given array of JavaMail MIME messages in batch. ! * The messages need to have been created with {@link #createMimeMessage()}. * @param mimeMessages messages to send * @throws org.springframework.mail.MailAuthenticationException *************** *** 101,106 **** /** * Send the JavaMail MIME message prepared by the given MimeMessagePreparator. ! * Alternative way to prepare MimeMessage instances, instead of createMimeMessage ! * and send(MimeMessage) calls. Takes care of proper exception conversion. * @param mimeMessagePreparator the preparator to use * @throws org.springframework.mail.MailPreparationException --- 109,115 ---- /** * Send the JavaMail MIME message prepared by the given MimeMessagePreparator. ! * <p>Alternative way to prepare MimeMessage instances, instead of ! * {@link #createMimeMessage()} and {@link #send(MimeMessage)} calls. ! * Takes care of proper exception conversion. * @param mimeMessagePreparator the preparator to use * @throws org.springframework.mail.MailPreparationException *************** *** 117,122 **** /** * Send the JavaMail MIME messages prepared by the given MimeMessagePreparators. ! * Alternative way to prepare MimeMessage instances, instead of createMimeMessage ! * and send(MimeMessage[]) calls. Takes care of proper exception conversion. * @param mimeMessagePreparators the preparator to use * @throws org.springframework.mail.MailPreparationException --- 126,132 ---- /** * Send the JavaMail MIME messages prepared by the given MimeMessagePreparators. ! * <p>Alternative way to prepare MimeMessage instances, instead of ! * {@link #createMimeMessage()} and {@link #send(MimeMessage[])} calls. ! * Takes care of proper exception conversion. * @param mimeMessagePreparators the preparator to use * @throws org.springframework.mail.MailPreparationException Index: MimeMessagePreparator.java =================================================================== RCS file: /cvsroot/springframework/spring/src/org/springframework/mail/javamail/MimeMessagePreparator.java,v retrieving revision 1.7 retrieving revision 1.7.4.1 diff -C2 -d -r1.7 -r1.7.4.1 *** MimeMessagePreparator.java 25 Mar 2005 09:27:17 -0000 1.7 --- MimeMessagePreparator.java 30 Dec 2006 23:37:04 -0000 1.7.4.1 *************** *** 1,11 **** /* ! * Copyright 2002-2005 the original author or authors. ! * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at ! * * http://www.apache.org/licenses/LICENSE-2.0 ! * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, --- 1,11 ---- /* ! * Copyright 2002-2006 the original author or authors. ! * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at ! * * http://www.apache.org/licenses/LICENSE-2.0 ! * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, *************** *** 20,32 **** /** ! * Callback interface for preparation of JavaMail MIME messages. * ! * <p>The corresponding send methods of JavaMailSender will take care ! * of the actual creation of a MimeMessage instance, and of proper ! * exception conversion. * ! * <p>It is often convenient to use a MimeMessageHelper for populating ! * the passed-in MimeMessage, particularly when working with attachments ! * or special character encodings. * * @author Juergen Hoeller --- 20,33 ---- /** ! * Callback interface for the preparation of JavaMail MIME messages. * ! * <p>The corresponding <code>send</code> methods of {@link JavaMailSender} ! * will take care of the actual creation of a {@link MimeMessage} instance, ! * and of proper exception conversion. * ! * <p>It is often convenient to use a {@link MimeMessageHelper} for populating ! * the passed-in MimeMessage, in particular when working with attachments or ! * special character encodings. ! * See {@link MimeMessageHelper MimeMessageHelper's javadoc} for an example. * * @author Juergen Hoeller |