You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jmeter.apache.org by sebb <se...@gmail.com> on 2012/02/05 14:05:19 UTC

Re: svn commit: r1240674 - in /jmeter/trunk: src/components/org/apache/jmeter/reporters/MailerModel.java src/components/org/apache/jmeter/visualizers/MailerVisualizer.java xdocs/changes.xml

On 5 February 2012 08:00,  <pm...@apache.org> wrote:
> Author: pmouawad
> Date: Sun Feb  5 08:00:38 2012
> New Revision: 1240674
>
> URL: http://svn.apache.org/viewvc?rev=1240674&view=rev
> Log:
> Bug 52603 - MailerVisualizer : Enable SSL , TLS and Authentication
>
> Modified:
>    jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java
>    jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java
>    jmeter/trunk/xdocs/changes.xml
>
> Modified: jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java
> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java?rev=1240674&r1=1240673&r2=1240674&view=diff
> ==============================================================================
> --- jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java (original)
> +++ jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java Sun Feb  5 08:00:38 2012
> @@ -24,8 +24,10 @@ import java.util.List;
>  import java.util.Properties;
>  import java.util.StringTokenizer;
>
> +import javax.mail.Authenticator;
>  import javax.mail.Message;
>  import javax.mail.MessagingException;
> +import javax.mail.PasswordAuthentication;
>  import javax.mail.Session;
>  import javax.mail.Transport;
>  import javax.mail.internet.AddressException;
> @@ -34,6 +36,7 @@ import javax.mail.internet.MimeMessage;
>  import javax.swing.event.ChangeEvent;
>  import javax.swing.event.ChangeListener;
>
> +import org.apache.commons.lang.StringUtils;
>  import org.apache.jmeter.samplers.SampleResult;
>  import org.apache.jmeter.testelement.AbstractTestElement;
>  import org.apache.jmeter.util.JMeterUtils;
> @@ -45,13 +48,31 @@ import org.apache.log.Logger;
>  *
>  */
>  public class MailerModel extends AbstractTestElement implements Serializable {
> -
> +    public static enum MailAuthType {
> +        SSL("SSL"),
> +        TLS("TLS"),
> +        NONE("");
> +
> +        final private String value;
> +        MailAuthType(String value) {
> +            this.value = value;
> +        }
> +    }
> +
>     private static final long serialVersionUID = 233L;
>
>     private static final Logger log = LoggingManager.getLoggerForClass();
>
>     private static final String MAIL_SMTP_HOST = "mail.smtp.host"; //$NON-NLS-1$
>
> +    private static final String MAIL_SMTP_PORT = "mail.smtp.port"; //$NON-NLS-1$
> +
> +    private static final String MAIL_SMTP_AUTH = "mail.smtp.auth"; //$NON-NLS-1$
> +
> +    private static final String MAIL_SMTP_SOCKETFACTORY_CLASS = "mail.smtp.socketFactory.class"; //$NON-NLS-1$
> +
> +    private static final String MAIL_SMTP_STARTTLS = "mail.smtp.starttls.enable"; //$NON-NLS-1$
> +
>     private long failureCount = 0;
>
>     private long successCount = 0;
> @@ -68,6 +89,8 @@ public class MailerModel extends Abstrac
>
>     private static final String HOST_KEY = "MailerModel.smtpHost"; //$NON-NLS-1$
>
> +    private static final String PORT_KEY = "MailerModel.smtpPort"; //$NON-NLS-1$
> +
>     private static final String SUCCESS_SUBJECT = "MailerModel.successSubject"; //$NON-NLS-1$
>
>     private static final String FAILURE_SUBJECT = "MailerModel.failureSubject"; //$NON-NLS-1$
> @@ -76,8 +99,16 @@ public class MailerModel extends Abstrac
>
>     private static final String SUCCESS_LIMIT_KEY = "MailerModel.successLimit"; //$NON-NLS-1$
>
> +    private static final String LOGIN = "MailerModel.login"; //$NON-NLS-1$
> +
> +    private static final String PASSWORD = "MailerModel.password"; //$NON-NLS-1$
> +
> +    private static final String MAIL_AUTH_TYPE = "MailerModel.authType"; //$NON-NLS-1$
> +
>     private static final String DEFAULT_LIMIT = "2"; //$NON-NLS-1$
>
> +    private static final int DEFAULT_SMTP_PORT = 25;
> +
>     /** The listener for changes. */
>     private transient ChangeListener changeListener;
>
> @@ -180,7 +211,9 @@ public class MailerModel extends Abstrac
>             if (addressList.size() != 0) {
>                 try {
>                     sendMail(getFromAddress(), addressList, getFailureSubject(), "URL Failed: "
> -                            + sample.getSampleLabel(), getSmtpHost());
> +                            + sample.getSampleLabel(), getSmtpHost(),
> +                            getSmtpPort(), getLogin(), getPassword(),
> +                            getMailAuthType());
>                 } catch (Exception e) {
>                     log.error("Problem sending mail: "+e);
>                 }
> @@ -215,6 +248,8 @@ public class MailerModel extends Abstrac
>         notifyChangeListeners();
>     }
>
> +
> +
>     /**
>      * Resets the state of this object to its default. But: This method does not
>      * reset any mail-specific attributes (like sender, mail-subject...) since
> @@ -257,8 +292,35 @@ public class MailerModel extends Abstrac
>      *            the message-body.
>      * @param smtpHost
>      *            the smtp-server used to send the mail.
> +     * @throws MessagingException
> +     * @throws AddressException

AFAIK, @throws clauses need some text

>      */
> -    public void sendMail(String from, List<String> vEmails, String subject, String attText, String smtpHost)
> +    public void sendMail(String from, List<String> vEmails, String subject, String attText, String smtpHost)
> +            throws AddressException, MessagingException {
> +        sendMail(from, vEmails, subject, attText, smtpHost, null, null, null, null);
> +    }
> +
> +    /**
> +     * Sends a mail with the given parameters using SMTP.
> +     *
> +     * @param from
> +     *            the sender of the mail as shown in the mail-client.
> +     * @param vEmails
> +     *            all receivers of the mail. The receivers are seperated by
> +     *            commas.
> +     * @param subject
> +     *            the subject of the mail.
> +     * @param attText
> +     *            the message-body.
> +     * @param smtpHost
> +     *            the smtp-server used to send the mail.
> +     */

@throws clauses?

> +    public void sendMail(String from, List<String> vEmails, String subject,
> +            String attText, String smtpHost,
> +            Integer smtpPort,
> +            final String user,
> +            final String password,
> +            MailAuthType mailAuthType)
>             throws AddressException, MessagingException {
>         String host = smtpHost;
>         boolean debug = Boolean.valueOf(host).booleanValue();
> @@ -274,15 +336,39 @@ public class MailerModel extends Abstrac
>         Properties props = new Properties();
>
>         props.put(MAIL_SMTP_HOST, host);
> -        Session session = Session.getDefaultInstance(props, null);
> +        if(smtpPort != null) {
> +            props.put(MAIL_SMTP_PORT, smtpPort);
> +        }
> +        Authenticator authenticator = null;
> +        if(mailAuthType != MailAuthType.NONE) {
> +            props.put(MAIL_SMTP_AUTH, "true");
> +            switch (mailAuthType) {
> +                case SSL:
> +                    props.put(MAIL_SMTP_SOCKETFACTORY_CLASS,
> +                            "javax.net.ssl.SSLSocketFactory");
> +                    break;
> +                case TLS:
> +                    props.put(MAIL_SMTP_STARTTLS,
> +                            "true");
> +                    break;
> +
> +                default:
> +                    break;
> +                }
> +        }
> +
> +        if(!StringUtils.isEmpty(user)) {
> +            authenticator =
> +                    new javax.mail.Authenticator() {
> +                        protected PasswordAuthentication getPasswordAuthentication() {
> +                            return new PasswordAuthentication(user,password);
> +                        }
> +                    };
> +        }
> +        Session session = Session.getInstance(props, authenticator);
>         // N.B. properties are only used when the default session is first
>         // created
>         // so check if the mail host needs to be reset...

Do the above comments still apply?
If so, where is the code?
If not, please remove.

> -        props = session.getProperties();
> -        if (!host.equalsIgnoreCase(props.getProperty(MAIL_SMTP_HOST))) {
> -            props.setProperty(MAIL_SMTP_HOST, host);
> -        }
> -
>         session.setDebug(debug);
>
>         // create a message
> @@ -305,7 +391,11 @@ public class MailerModel extends Abstrac
>
>         log.info(attText);
>
> -        sendMail(from, getAddressList(), subject, attText, smtpHost);
> +        sendMail(from, getAddressList(), subject, attText, smtpHost,
> +                getSmtpPort(),
> +                getLogin(),
> +                getPassword(),
> +                getMailAuthType());
>         log.info("Test mail sent successfully!!");
>     }
>
> @@ -327,6 +417,26 @@ public class MailerModel extends Abstrac
>         setProperty(HOST_KEY, str);
>     }
>
> +    public void setSmtpPort(Integer str) {
> +        if(str== null) {
> +            setProperty(PORT_KEY, DEFAULT_SMTP_PORT);
> +        } else {
> +            setProperty(PORT_KEY, str);
> +        }
> +    }
> +
> +    public void setLogin(String login) {
> +        setProperty(LOGIN, login);
> +    }
> +
> +    public void setPassword(String password) {
> +        setProperty(PASSWORD, password);
> +    }
> +
> +    public void setMailAuthType(String value) {
> +        setProperty(MAIL_AUTH_TYPE, value, "");
> +    }
> +
>     public void setFailureSubject(String str) {
>         setProperty(FAILURE_SUBJECT, str);
>     }
> @@ -365,6 +475,10 @@ public class MailerModel extends Abstrac
>         return getPropertyAsString(HOST_KEY);
>     }
>
> +    public int getSmtpPort() {
> +        return getPropertyAsInt(PORT_KEY, DEFAULT_SMTP_PORT);
> +    }
> +
>     public String getFailureSubject() {
>         return getPropertyAsString(FAILURE_SUBJECT);
>     }
> @@ -388,4 +502,17 @@ public class MailerModel extends Abstrac
>     public long getFailureCount() {
>         return this.failureCount;
>     }
> -}
> +
> +    public String getLogin() {
> +        return getPropertyAsString(LOGIN);
> +    }
> +
> +    public String getPassword() {
> +        return getPropertyAsString(PASSWORD);
> +    }
> +
> +    public MailAuthType getMailAuthType() {
> +        String authType = getPropertyAsString(MAIL_AUTH_TYPE, MailAuthType.NONE.toString());
> +        return MailAuthType.valueOf(authType);
> +    }
> +}
> \ No newline at end of file
>
> Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java
> URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java?rev=1240674&r1=1240673&r2=1240674&view=diff
> ==============================================================================
> --- jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java (original)
> +++ jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java Sun Feb  5 08:00:38 2012
> @@ -24,19 +24,23 @@ import java.awt.GridBagLayout;
>  import java.awt.Insets;
>  import java.awt.event.ActionEvent;
>  import java.awt.event.ActionListener;
> +
>  import javax.mail.MessagingException;
>  import javax.mail.internet.AddressException;
>  import javax.swing.BorderFactory;
>  import javax.swing.JButton;
> +import javax.swing.JComboBox;
>  import javax.swing.JLabel;
>  import javax.swing.JOptionPane;
>  import javax.swing.JPanel;
> +import javax.swing.JPasswordField;
>  import javax.swing.JTextField;
>  import javax.swing.border.Border;
>  import javax.swing.border.EmptyBorder;
>  import javax.swing.event.ChangeEvent;
>  import javax.swing.event.ChangeListener;
>
> +import org.apache.commons.lang.StringUtils;
>  import org.apache.jmeter.gui.util.VerticalPanel;
>  import org.apache.jmeter.reporters.MailerModel;
>  import org.apache.jmeter.reporters.MailerResultCollector;
> @@ -72,6 +76,8 @@ public class MailerVisualizer extends Ab
>
>     private JTextField smtpHostField;
>
> +    private JTextField smtpPortField;
> +
>     private JTextField failureSubjectField;
>
>     private JTextField successSubjectField;
> @@ -82,6 +88,13 @@ public class MailerVisualizer extends Ab
>
>     private JTextField successLimitField;
>
> +    private JTextField smtpLoginField;
> +
> +    private JTextField smtpPasswordField;
> +
> +    private JComboBox authTypeCombo;
> +
> +
>     // private JPanel mainPanel;
>     // private JLabel panelTitleLabel;
>
> @@ -180,6 +193,45 @@ public class MailerVisualizer extends Ab
>         mailerPanel.add(smtpHostField);
>
>         c.gridwidth = 1;
> +        mailerPanel.add(new JLabel("SMTP Port:"));
> +
> +        smtpPortField = new JTextField(25);
> +        smtpPortField.setEditable(true);
> +        c.gridwidth = GridBagConstraints.REMAINDER;
> +        g.setConstraints(smtpPortField, c);
> +        mailerPanel.add(smtpPortField);
> +
> +        c.gridwidth = 1;
> +        mailerPanel.add(new JLabel("SMTP Login:"));
> +
> +        smtpLoginField = new JTextField(25);
> +        smtpLoginField.setEditable(true);
> +        c.gridwidth = GridBagConstraints.REMAINDER;
> +        g.setConstraints(smtpLoginField, c);
> +        mailerPanel.add(smtpLoginField);
> +
> +        c.gridwidth = 1;
> +        mailerPanel.add(new JLabel("SMTP Password:"));
> +
> +        smtpPasswordField = new JPasswordField(25);
> +        smtpPasswordField.setEditable(true);
> +        c.gridwidth = GridBagConstraints.REMAINDER;
> +        g.setConstraints(smtpPasswordField, c);
> +        mailerPanel.add(smtpPasswordField);
> +
> +        c.gridwidth = 1;
> +        mailerPanel.add(new JLabel("AUTH TYPE"));
> +
> +        authTypeCombo = new JComboBox(new Object[] {
> +                MailerModel.MailAuthType.NONE.toString(),
> +                MailerModel.MailAuthType.SSL.toString(),
> +                MailerModel.MailAuthType.TLS.toString()});
> +        c.gridwidth = GridBagConstraints.REMAINDER;
> +        g.setConstraints(authTypeCombo, c);
> +        mailerPanel.add(authTypeCombo);
> +
> +
> +        c.gridwidth = 1;
>         mailerPanel.add(new JLabel("Failure Subject:"));
>
>         failureSubjectField = new JTextField(25);
> @@ -322,6 +374,13 @@ public class MailerVisualizer extends Ab
>         mailerModel.setFailureSubject(failureSubjectField.getText());
>         mailerModel.setFromAddress(fromField.getText());
>         mailerModel.setSmtpHost(smtpHostField.getText());
> +        mailerModel.setSmtpPort(
> +                StringUtils.isEmpty(smtpPortField.getText()) ?
> +                        null : Integer.valueOf(smtpPortField.getText()));
> +        mailerModel.setLogin(smtpLoginField.getText());
> +        mailerModel.setPassword(smtpPasswordField.getText());
> +        mailerModel.setMailAuthType(
> +                authTypeCombo.getSelectedItem().toString());
>         mailerModel.setSuccessLimit(successLimitField.getText());
>         mailerModel.setSuccessSubject(successSubjectField.getText());
>         mailerModel.setToAddress(addressField.getText());
> @@ -341,6 +400,10 @@ public class MailerVisualizer extends Ab
>         addressField.setText(model.getToAddress());
>         fromField.setText(model.getFromAddress());
>         smtpHostField.setText(model.getSmtpHost());
> +        smtpPortField.setText(Integer.toString(model.getSmtpPort()));
> +        smtpLoginField.setText(model.getLogin());
> +        smtpPasswordField.setText(model.getPassword());
> +        authTypeCombo.setSelectedItem(model.getMailAuthType().toString());
>         successSubjectField.setText(model.getSuccessSubject());
>         failureSubjectField.setText(model.getFailureSubject());
>         failureLimitField.setText(String.valueOf(model.getFailureLimit()));
>
> Modified: jmeter/trunk/xdocs/changes.xml
> URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1240674&r1=1240673&r2=1240674&view=diff
> ==============================================================================
> --- jmeter/trunk/xdocs/changes.xml (original)
> +++ jmeter/trunk/xdocs/changes.xml Sun Feb  5 08:00:38 2012
> @@ -118,6 +118,7 @@ or a Debug Sampler with all fields set t
>
>  <h3>Listeners</h3>
>  <ul>
> +<li>Bug 52603 - MailerVisualizer : Enable SSL , TLS and Authentication</li>
>  </ul>
>
>  <h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>
>
>

Re: svn commit: r1240674 - in /jmeter/trunk: src/components/org/apache/jmeter/reporters/MailerModel.java src/components/org/apache/jmeter/visualizers/MailerVisualizer.java xdocs/changes.xml

Posted by Philippe Mouawad <ph...@gmail.com>.
On Sun, Feb 5, 2012 at 3:07 PM, sebb <se...@gmail.com> wrote:

> On 5 February 2012 13:30, Philippe Mouawad <ph...@gmail.com>
> wrote:
> > I committed  fixes.
> > Sorry, it was too late I think when I did this.
> >
> > Tell me if it's OK now.
>
> Mostly; however the orphaned comment still remains; lines 377-379
>
> I suspect it can just be deleted as we no longer use the default instance.
> It would be worth doing a test that uses different hosts
>
> Check done, it works

> ==
>
> Also, I've just noticed that port is sometimes int and sometimes
> Integer; I think it should always be int.
> And rather than save the default port in the JMX file, it should be
> dropped, by using
>
> setProperty(String name, int value, int dflt)
>
> as is done in other test elements.
>
> Similarly for the new String properties - there's no need to save the
> empty string in the JMX files, it just wastes space.
>
> I think I have fixed them if I fully understood what you meant.

> > On Sun, Feb 5, 2012 at 2:05 PM, sebb <se...@gmail.com> wrote:
> >
> >> On 5 February 2012 08:00,  <pm...@apache.org> wrote:
> >> > Author: pmouawad
> >> > Date: Sun Feb  5 08:00:38 2012
> >> > New Revision: 1240674
> >> >
> >> > URL: http://svn.apache.org/viewvc?rev=1240674&view=rev
> >> > Log:
> >> > Bug 52603 - MailerVisualizer : Enable SSL , TLS and Authentication
> >> >
> >> > Modified:
> >> >
> >>
>  jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java
> >> >
> >>
>  jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java
> >> >    jmeter/trunk/xdocs/changes.xml
> >> >
> >> > Modified:
> >> jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java
> >> > URL:
> >>
> http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java?rev=1240674&r1=1240673&r2=1240674&view=diff
> >> >
> >>
> ==============================================================================
> >> > ---
> >> jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java
> >> (original)
> >> > +++
> >> jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java
> >> Sun Feb  5 08:00:38 2012
> >> > @@ -24,8 +24,10 @@ import java.util.List;
> >> >  import java.util.Properties;
> >> >  import java.util.StringTokenizer;
> >> >
> >> > +import javax.mail.Authenticator;
> >> >  import javax.mail.Message;
> >> >  import javax.mail.MessagingException;
> >> > +import javax.mail.PasswordAuthentication;
> >> >  import javax.mail.Session;
> >> >  import javax.mail.Transport;
> >> >  import javax.mail.internet.AddressException;
> >> > @@ -34,6 +36,7 @@ import javax.mail.internet.MimeMessage;
> >> >  import javax.swing.event.ChangeEvent;
> >> >  import javax.swing.event.ChangeListener;
> >> >
> >> > +import org.apache.commons.lang.StringUtils;
> >> >  import org.apache.jmeter.samplers.SampleResult;
> >> >  import org.apache.jmeter.testelement.AbstractTestElement;
> >> >  import org.apache.jmeter.util.JMeterUtils;
> >> > @@ -45,13 +48,31 @@ import org.apache.log.Logger;
> >> >  *
> >> >  */
> >> >  public class MailerModel extends AbstractTestElement implements
> >> Serializable {
> >> > -
> >> > +    public static enum MailAuthType {
> >> > +        SSL("SSL"),
> >> > +        TLS("TLS"),
> >> > +        NONE("");
> >> > +
> >> > +        final private String value;
> >> > +        MailAuthType(String value) {
> >> > +            this.value = value;
> >> > +        }
> >> > +    }
> >> > +
> >> >     private static final long serialVersionUID = 233L;
> >> >
> >> >     private static final Logger log =
> LoggingManager.getLoggerForClass();
> >> >
> >> >     private static final String MAIL_SMTP_HOST = "mail.smtp.host";
> >> //$NON-NLS-1$
> >> >
> >> > +    private static final String MAIL_SMTP_PORT = "mail.smtp.port";
> >> //$NON-NLS-1$
> >> > +
> >> > +    private static final String MAIL_SMTP_AUTH = "mail.smtp.auth";
> >> //$NON-NLS-1$
> >> > +
> >> > +    private static final String MAIL_SMTP_SOCKETFACTORY_CLASS =
> >> "mail.smtp.socketFactory.class"; //$NON-NLS-1$
> >> > +
> >> > +    private static final String MAIL_SMTP_STARTTLS =
> >> "mail.smtp.starttls.enable"; //$NON-NLS-1$
> >> > +
> >> >     private long failureCount = 0;
> >> >
> >> >     private long successCount = 0;
> >> > @@ -68,6 +89,8 @@ public class MailerModel extends Abstrac
> >> >
> >> >     private static final String HOST_KEY = "MailerModel.smtpHost";
> >> //$NON-NLS-1$
> >> >
> >> > +    private static final String PORT_KEY = "MailerModel.smtpPort";
> >> //$NON-NLS-1$
> >> > +
> >> >     private static final String SUCCESS_SUBJECT =
> >> "MailerModel.successSubject"; //$NON-NLS-1$
> >> >
> >> >     private static final String FAILURE_SUBJECT =
> >> "MailerModel.failureSubject"; //$NON-NLS-1$
> >> > @@ -76,8 +99,16 @@ public class MailerModel extends Abstrac
> >> >
> >> >     private static final String SUCCESS_LIMIT_KEY =
> >> "MailerModel.successLimit"; //$NON-NLS-1$
> >> >
> >> > +    private static final String LOGIN = "MailerModel.login";
> >> //$NON-NLS-1$
> >> > +
> >> > +    private static final String PASSWORD = "MailerModel.password";
> >> //$NON-NLS-1$
> >> > +
> >> > +    private static final String MAIL_AUTH_TYPE =
> >> "MailerModel.authType"; //$NON-NLS-1$
> >> > +
> >> >     private static final String DEFAULT_LIMIT = "2"; //$NON-NLS-1$
> >> >
> >> > +    private static final int DEFAULT_SMTP_PORT = 25;
> >> > +
> >> >     /** The listener for changes. */
> >> >     private transient ChangeListener changeListener;
> >> >
> >> > @@ -180,7 +211,9 @@ public class MailerModel extends Abstrac
> >> >             if (addressList.size() != 0) {
> >> >                 try {
> >> >                     sendMail(getFromAddress(), addressList,
> >> getFailureSubject(), "URL Failed: "
> >> > -                            + sample.getSampleLabel(),
> getSmtpHost());
> >> > +                            + sample.getSampleLabel(), getSmtpHost(),
> >> > +                            getSmtpPort(), getLogin(), getPassword(),
> >> > +                            getMailAuthType());
> >> >                 } catch (Exception e) {
> >> >                     log.error("Problem sending mail: "+e);
> >> >                 }
> >> > @@ -215,6 +248,8 @@ public class MailerModel extends Abstrac
> >> >         notifyChangeListeners();
> >> >     }
> >> >
> >> > +
> >> > +
> >> >     /**
> >> >      * Resets the state of this object to its default. But: This
> method
> >> does not
> >> >      * reset any mail-specific attributes (like sender,
> mail-subject...)
> >> since
> >> > @@ -257,8 +292,35 @@ public class MailerModel extends Abstrac
> >> >      *            the message-body.
> >> >      * @param smtpHost
> >> >      *            the smtp-server used to send the mail.
> >> > +     * @throws MessagingException
> >> > +     * @throws AddressException
> >>
> >> AFAIK, @throws clauses need some text
> >>
> >> >      */
> >> > -    public void sendMail(String from, List<String> vEmails, String
> >> subject, String attText, String smtpHost)
> >> > +    public void sendMail(String from, List<String> vEmails, String
> >> subject, String attText, String smtpHost)
> >> > +            throws AddressException, MessagingException {
> >> > +        sendMail(from, vEmails, subject, attText, smtpHost, null,
> null,
> >> null, null);
> >> > +    }
> >> > +
> >> > +    /**
> >> > +     * Sends a mail with the given parameters using SMTP.
> >> > +     *
> >> > +     * @param from
> >> > +     *            the sender of the mail as shown in the mail-client.
> >> > +     * @param vEmails
> >> > +     *            all receivers of the mail. The receivers are
> >> seperated by
> >> > +     *            commas.
> >> > +     * @param subject
> >> > +     *            the subject of the mail.
> >> > +     * @param attText
> >> > +     *            the message-body.
> >> > +     * @param smtpHost
> >> > +     *            the smtp-server used to send the mail.
> >> > +     */
> >>
> >> @throws clauses?
> >>
> >> > +    public void sendMail(String from, List<String> vEmails, String
> >> subject,
> >> > +            String attText, String smtpHost,
> >> > +            Integer smtpPort,
> >> > +            final String user,
> >> > +            final String password,
> >> > +            MailAuthType mailAuthType)
> >> >             throws AddressException, MessagingException {
> >> >         String host = smtpHost;
> >> >         boolean debug = Boolean.valueOf(host).booleanValue();
> >> > @@ -274,15 +336,39 @@ public class MailerModel extends Abstrac
> >> >         Properties props = new Properties();
> >> >
> >> >         props.put(MAIL_SMTP_HOST, host);
> >> > -        Session session = Session.getDefaultInstance(props, null);
> >> > +        if(smtpPort != null) {
> >> > +            props.put(MAIL_SMTP_PORT, smtpPort);
> >> > +        }
> >> > +        Authenticator authenticator = null;
> >> > +        if(mailAuthType != MailAuthType.NONE) {
> >> > +            props.put(MAIL_SMTP_AUTH, "true");
> >> > +            switch (mailAuthType) {
> >> > +                case SSL:
> >> > +                    props.put(MAIL_SMTP_SOCKETFACTORY_CLASS,
> >> > +                            "javax.net.ssl.SSLSocketFactory");
> >> > +                    break;
> >> > +                case TLS:
> >> > +                    props.put(MAIL_SMTP_STARTTLS,
> >> > +                            "true");
> >> > +                    break;
> >> > +
> >> > +                default:
> >> > +                    break;
> >> > +                }
> >> > +        }
> >> > +
> >> > +        if(!StringUtils.isEmpty(user)) {
> >> > +            authenticator =
> >> > +                    new javax.mail.Authenticator() {
> >> > +                        protected PasswordAuthentication
> >> getPasswordAuthentication() {
> >> > +                            return new
> >> PasswordAuthentication(user,password);
> >> > +                        }
> >> > +                    };
> >> > +        }
> >> > +        Session session = Session.getInstance(props, authenticator);
> >> >         // N.B. properties are only used when the default session is
> >> first
> >> >         // created
> >> >         // so check if the mail host needs to be reset...
> >>
> >> Do the above comments still apply?
> >> If so, where is the code?
> >> If not, please remove.
> >>
> >> > -        props = session.getProperties();
> >> > -        if
> (!host.equalsIgnoreCase(props.getProperty(MAIL_SMTP_HOST))) {
> >> > -            props.setProperty(MAIL_SMTP_HOST, host);
> >> > -        }
> >> > -
> >> >         session.setDebug(debug);
> >> >
> >> >         // create a message
> >> > @@ -305,7 +391,11 @@ public class MailerModel extends Abstrac
> >> >
> >> >         log.info(attText);
> >> >
> >> > -        sendMail(from, getAddressList(), subject, attText, smtpHost);
> >> > +        sendMail(from, getAddressList(), subject, attText, smtpHost,
> >> > +                getSmtpPort(),
> >> > +                getLogin(),
> >> > +                getPassword(),
> >> > +                getMailAuthType());
> >> >         log.info("Test mail sent successfully!!");
> >> >     }
> >> >
> >> > @@ -327,6 +417,26 @@ public class MailerModel extends Abstrac
> >> >         setProperty(HOST_KEY, str);
> >> >     }
> >> >
> >> > +    public void setSmtpPort(Integer str) {
> >> > +        if(str== null) {
> >> > +            setProperty(PORT_KEY, DEFAULT_SMTP_PORT);
> >> > +        } else {
> >> > +            setProperty(PORT_KEY, str);
> >> > +        }
> >> > +    }
> >> > +
> >> > +    public void setLogin(String login) {
> >> > +        setProperty(LOGIN, login);
> >> > +    }
> >> > +
> >> > +    public void setPassword(String password) {
> >> > +        setProperty(PASSWORD, password);
> >> > +    }
> >> > +
> >> > +    public void setMailAuthType(String value) {
> >> > +        setProperty(MAIL_AUTH_TYPE, value, "");
> >> > +    }
> >> > +
> >> >     public void setFailureSubject(String str) {
> >> >         setProperty(FAILURE_SUBJECT, str);
> >> >     }
> >> > @@ -365,6 +475,10 @@ public class MailerModel extends Abstrac
> >> >         return getPropertyAsString(HOST_KEY);
> >> >     }
> >> >
> >> > +    public int getSmtpPort() {
> >> > +        return getPropertyAsInt(PORT_KEY, DEFAULT_SMTP_PORT);
> >> > +    }
> >> > +
> >> >     public String getFailureSubject() {
> >> >         return getPropertyAsString(FAILURE_SUBJECT);
> >> >     }
> >> > @@ -388,4 +502,17 @@ public class MailerModel extends Abstrac
> >> >     public long getFailureCount() {
> >> >         return this.failureCount;
> >> >     }
> >> > -}
> >> > +
> >> > +    public String getLogin() {
> >> > +        return getPropertyAsString(LOGIN);
> >> > +    }
> >> > +
> >> > +    public String getPassword() {
> >> > +        return getPropertyAsString(PASSWORD);
> >> > +    }
> >> > +
> >> > +    public MailAuthType getMailAuthType() {
> >> > +        String authType = getPropertyAsString(MAIL_AUTH_TYPE,
> >> MailAuthType.NONE.toString());
> >> > +        return MailAuthType.valueOf(authType);
> >> > +    }
> >> > +}
> >> > \ No newline at end of file
> >> >
> >> > Modified:
> >>
> jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java
> >> > URL:
> >>
> http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java?rev=1240674&r1=1240673&r2=1240674&view=diff
> >> >
> >>
> ==============================================================================
> >> > ---
> >>
> jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java
> >> (original)
> >> > +++
> >>
> jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java
> >> Sun Feb  5 08:00:38 2012
> >> > @@ -24,19 +24,23 @@ import java.awt.GridBagLayout;
> >> >  import java.awt.Insets;
> >> >  import java.awt.event.ActionEvent;
> >> >  import java.awt.event.ActionListener;
> >> > +
> >> >  import javax.mail.MessagingException;
> >> >  import javax.mail.internet.AddressException;
> >> >  import javax.swing.BorderFactory;
> >> >  import javax.swing.JButton;
> >> > +import javax.swing.JComboBox;
> >> >  import javax.swing.JLabel;
> >> >  import javax.swing.JOptionPane;
> >> >  import javax.swing.JPanel;
> >> > +import javax.swing.JPasswordField;
> >> >  import javax.swing.JTextField;
> >> >  import javax.swing.border.Border;
> >> >  import javax.swing.border.EmptyBorder;
> >> >  import javax.swing.event.ChangeEvent;
> >> >  import javax.swing.event.ChangeListener;
> >> >
> >> > +import org.apache.commons.lang.StringUtils;
> >> >  import org.apache.jmeter.gui.util.VerticalPanel;
> >> >  import org.apache.jmeter.reporters.MailerModel;
> >> >  import org.apache.jmeter.reporters.MailerResultCollector;
> >> > @@ -72,6 +76,8 @@ public class MailerVisualizer extends Ab
> >> >
> >> >     private JTextField smtpHostField;
> >> >
> >> > +    private JTextField smtpPortField;
> >> > +
> >> >     private JTextField failureSubjectField;
> >> >
> >> >     private JTextField successSubjectField;
> >> > @@ -82,6 +88,13 @@ public class MailerVisualizer extends Ab
> >> >
> >> >     private JTextField successLimitField;
> >> >
> >> > +    private JTextField smtpLoginField;
> >> > +
> >> > +    private JTextField smtpPasswordField;
> >> > +
> >> > +    private JComboBox authTypeCombo;
> >> > +
> >> > +
> >> >     // private JPanel mainPanel;
> >> >     // private JLabel panelTitleLabel;
> >> >
> >> > @@ -180,6 +193,45 @@ public class MailerVisualizer extends Ab
> >> >         mailerPanel.add(smtpHostField);
> >> >
> >> >         c.gridwidth = 1;
> >> > +        mailerPanel.add(new JLabel("SMTP Port:"));
> >> > +
> >> > +        smtpPortField = new JTextField(25);
> >> > +        smtpPortField.setEditable(true);
> >> > +        c.gridwidth = GridBagConstraints.REMAINDER;
> >> > +        g.setConstraints(smtpPortField, c);
> >> > +        mailerPanel.add(smtpPortField);
> >> > +
> >> > +        c.gridwidth = 1;
> >> > +        mailerPanel.add(new JLabel("SMTP Login:"));
> >> > +
> >> > +        smtpLoginField = new JTextField(25);
> >> > +        smtpLoginField.setEditable(true);
> >> > +        c.gridwidth = GridBagConstraints.REMAINDER;
> >> > +        g.setConstraints(smtpLoginField, c);
> >> > +        mailerPanel.add(smtpLoginField);
> >> > +
> >> > +        c.gridwidth = 1;
> >> > +        mailerPanel.add(new JLabel("SMTP Password:"));
> >> > +
> >> > +        smtpPasswordField = new JPasswordField(25);
> >> > +        smtpPasswordField.setEditable(true);
> >> > +        c.gridwidth = GridBagConstraints.REMAINDER;
> >> > +        g.setConstraints(smtpPasswordField, c);
> >> > +        mailerPanel.add(smtpPasswordField);
> >> > +
> >> > +        c.gridwidth = 1;
> >> > +        mailerPanel.add(new JLabel("AUTH TYPE"));
> >> > +
> >> > +        authTypeCombo = new JComboBox(new Object[] {
> >> > +                MailerModel.MailAuthType.NONE.toString(),
> >> > +                MailerModel.MailAuthType.SSL.toString(),
> >> > +                MailerModel.MailAuthType.TLS.toString()});
> >> > +        c.gridwidth = GridBagConstraints.REMAINDER;
> >> > +        g.setConstraints(authTypeCombo, c);
> >> > +        mailerPanel.add(authTypeCombo);
> >> > +
> >> > +
> >> > +        c.gridwidth = 1;
> >> >         mailerPanel.add(new JLabel("Failure Subject:"));
> >> >
> >> >         failureSubjectField = new JTextField(25);
> >> > @@ -322,6 +374,13 @@ public class MailerVisualizer extends Ab
> >> >         mailerModel.setFailureSubject(failureSubjectField.getText());
> >> >         mailerModel.setFromAddress(fromField.getText());
> >> >         mailerModel.setSmtpHost(smtpHostField.getText());
> >> > +        mailerModel.setSmtpPort(
> >> > +                StringUtils.isEmpty(smtpPortField.getText()) ?
> >> > +                        null :
> >> Integer.valueOf(smtpPortField.getText()));
> >> > +        mailerModel.setLogin(smtpLoginField.getText());
> >> > +        mailerModel.setPassword(smtpPasswordField.getText());
> >> > +        mailerModel.setMailAuthType(
> >> > +                authTypeCombo.getSelectedItem().toString());
> >> >         mailerModel.setSuccessLimit(successLimitField.getText());
> >> >         mailerModel.setSuccessSubject(successSubjectField.getText());
> >> >         mailerModel.setToAddress(addressField.getText());
> >> > @@ -341,6 +400,10 @@ public class MailerVisualizer extends Ab
> >> >         addressField.setText(model.getToAddress());
> >> >         fromField.setText(model.getFromAddress());
> >> >         smtpHostField.setText(model.getSmtpHost());
> >> > +        smtpPortField.setText(Integer.toString(model.getSmtpPort()));
> >> > +        smtpLoginField.setText(model.getLogin());
> >> > +        smtpPasswordField.setText(model.getPassword());
> >> > +
> >>  authTypeCombo.setSelectedItem(model.getMailAuthType().toString());
> >> >         successSubjectField.setText(model.getSuccessSubject());
> >> >         failureSubjectField.setText(model.getFailureSubject());
> >> >
> >> failureLimitField.setText(String.valueOf(model.getFailureLimit()));
> >> >
> >> > Modified: jmeter/trunk/xdocs/changes.xml
> >> > URL:
> >>
> http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1240674&r1=1240673&r2=1240674&view=diff
> >> >
> >>
> ==============================================================================
> >> > --- jmeter/trunk/xdocs/changes.xml (original)
> >> > +++ jmeter/trunk/xdocs/changes.xml Sun Feb  5 08:00:38 2012
> >> > @@ -118,6 +118,7 @@ or a Debug Sampler with all fields set t
> >> >
> >> >  <h3>Listeners</h3>
> >> >  <ul>
> >> > +<li>Bug 52603 - MailerVisualizer : Enable SSL , TLS and
> >> Authentication</li>
> >> >  </ul>
> >> >
> >> >  <h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>
> >> >
> >> >
> >>
> >
> >
> >
> > --
> > Cordialement.
> > Philippe Mouawad.
>



-- 
Cordialement.
Philippe Mouawad.

Re: svn commit: r1240674 - in /jmeter/trunk: src/components/org/apache/jmeter/reporters/MailerModel.java src/components/org/apache/jmeter/visualizers/MailerVisualizer.java xdocs/changes.xml

Posted by sebb <se...@gmail.com>.
On 5 February 2012 13:30, Philippe Mouawad <ph...@gmail.com> wrote:
> I committed  fixes.
> Sorry, it was too late I think when I did this.
>
> Tell me if it's OK now.

Mostly; however the orphaned comment still remains; lines 377-379

I suspect it can just be deleted as we no longer use the default instance.
It would be worth doing a test that uses different hosts

==

Also, I've just noticed that port is sometimes int and sometimes
Integer; I think it should always be int.
And rather than save the default port in the JMX file, it should be
dropped, by using

setProperty(String name, int value, int dflt)

as is done in other test elements.

Similarly for the new String properties - there's no need to save the
empty string in the JMX files, it just wastes space.

> On Sun, Feb 5, 2012 at 2:05 PM, sebb <se...@gmail.com> wrote:
>
>> On 5 February 2012 08:00,  <pm...@apache.org> wrote:
>> > Author: pmouawad
>> > Date: Sun Feb  5 08:00:38 2012
>> > New Revision: 1240674
>> >
>> > URL: http://svn.apache.org/viewvc?rev=1240674&view=rev
>> > Log:
>> > Bug 52603 - MailerVisualizer : Enable SSL , TLS and Authentication
>> >
>> > Modified:
>> >
>>  jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java
>> >
>>  jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java
>> >    jmeter/trunk/xdocs/changes.xml
>> >
>> > Modified:
>> jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java
>> > URL:
>> http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java?rev=1240674&r1=1240673&r2=1240674&view=diff
>> >
>> ==============================================================================
>> > ---
>> jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java
>> (original)
>> > +++
>> jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java
>> Sun Feb  5 08:00:38 2012
>> > @@ -24,8 +24,10 @@ import java.util.List;
>> >  import java.util.Properties;
>> >  import java.util.StringTokenizer;
>> >
>> > +import javax.mail.Authenticator;
>> >  import javax.mail.Message;
>> >  import javax.mail.MessagingException;
>> > +import javax.mail.PasswordAuthentication;
>> >  import javax.mail.Session;
>> >  import javax.mail.Transport;
>> >  import javax.mail.internet.AddressException;
>> > @@ -34,6 +36,7 @@ import javax.mail.internet.MimeMessage;
>> >  import javax.swing.event.ChangeEvent;
>> >  import javax.swing.event.ChangeListener;
>> >
>> > +import org.apache.commons.lang.StringUtils;
>> >  import org.apache.jmeter.samplers.SampleResult;
>> >  import org.apache.jmeter.testelement.AbstractTestElement;
>> >  import org.apache.jmeter.util.JMeterUtils;
>> > @@ -45,13 +48,31 @@ import org.apache.log.Logger;
>> >  *
>> >  */
>> >  public class MailerModel extends AbstractTestElement implements
>> Serializable {
>> > -
>> > +    public static enum MailAuthType {
>> > +        SSL("SSL"),
>> > +        TLS("TLS"),
>> > +        NONE("");
>> > +
>> > +        final private String value;
>> > +        MailAuthType(String value) {
>> > +            this.value = value;
>> > +        }
>> > +    }
>> > +
>> >     private static final long serialVersionUID = 233L;
>> >
>> >     private static final Logger log = LoggingManager.getLoggerForClass();
>> >
>> >     private static final String MAIL_SMTP_HOST = "mail.smtp.host";
>> //$NON-NLS-1$
>> >
>> > +    private static final String MAIL_SMTP_PORT = "mail.smtp.port";
>> //$NON-NLS-1$
>> > +
>> > +    private static final String MAIL_SMTP_AUTH = "mail.smtp.auth";
>> //$NON-NLS-1$
>> > +
>> > +    private static final String MAIL_SMTP_SOCKETFACTORY_CLASS =
>> "mail.smtp.socketFactory.class"; //$NON-NLS-1$
>> > +
>> > +    private static final String MAIL_SMTP_STARTTLS =
>> "mail.smtp.starttls.enable"; //$NON-NLS-1$
>> > +
>> >     private long failureCount = 0;
>> >
>> >     private long successCount = 0;
>> > @@ -68,6 +89,8 @@ public class MailerModel extends Abstrac
>> >
>> >     private static final String HOST_KEY = "MailerModel.smtpHost";
>> //$NON-NLS-1$
>> >
>> > +    private static final String PORT_KEY = "MailerModel.smtpPort";
>> //$NON-NLS-1$
>> > +
>> >     private static final String SUCCESS_SUBJECT =
>> "MailerModel.successSubject"; //$NON-NLS-1$
>> >
>> >     private static final String FAILURE_SUBJECT =
>> "MailerModel.failureSubject"; //$NON-NLS-1$
>> > @@ -76,8 +99,16 @@ public class MailerModel extends Abstrac
>> >
>> >     private static final String SUCCESS_LIMIT_KEY =
>> "MailerModel.successLimit"; //$NON-NLS-1$
>> >
>> > +    private static final String LOGIN = "MailerModel.login";
>> //$NON-NLS-1$
>> > +
>> > +    private static final String PASSWORD = "MailerModel.password";
>> //$NON-NLS-1$
>> > +
>> > +    private static final String MAIL_AUTH_TYPE =
>> "MailerModel.authType"; //$NON-NLS-1$
>> > +
>> >     private static final String DEFAULT_LIMIT = "2"; //$NON-NLS-1$
>> >
>> > +    private static final int DEFAULT_SMTP_PORT = 25;
>> > +
>> >     /** The listener for changes. */
>> >     private transient ChangeListener changeListener;
>> >
>> > @@ -180,7 +211,9 @@ public class MailerModel extends Abstrac
>> >             if (addressList.size() != 0) {
>> >                 try {
>> >                     sendMail(getFromAddress(), addressList,
>> getFailureSubject(), "URL Failed: "
>> > -                            + sample.getSampleLabel(), getSmtpHost());
>> > +                            + sample.getSampleLabel(), getSmtpHost(),
>> > +                            getSmtpPort(), getLogin(), getPassword(),
>> > +                            getMailAuthType());
>> >                 } catch (Exception e) {
>> >                     log.error("Problem sending mail: "+e);
>> >                 }
>> > @@ -215,6 +248,8 @@ public class MailerModel extends Abstrac
>> >         notifyChangeListeners();
>> >     }
>> >
>> > +
>> > +
>> >     /**
>> >      * Resets the state of this object to its default. But: This method
>> does not
>> >      * reset any mail-specific attributes (like sender, mail-subject...)
>> since
>> > @@ -257,8 +292,35 @@ public class MailerModel extends Abstrac
>> >      *            the message-body.
>> >      * @param smtpHost
>> >      *            the smtp-server used to send the mail.
>> > +     * @throws MessagingException
>> > +     * @throws AddressException
>>
>> AFAIK, @throws clauses need some text
>>
>> >      */
>> > -    public void sendMail(String from, List<String> vEmails, String
>> subject, String attText, String smtpHost)
>> > +    public void sendMail(String from, List<String> vEmails, String
>> subject, String attText, String smtpHost)
>> > +            throws AddressException, MessagingException {
>> > +        sendMail(from, vEmails, subject, attText, smtpHost, null, null,
>> null, null);
>> > +    }
>> > +
>> > +    /**
>> > +     * Sends a mail with the given parameters using SMTP.
>> > +     *
>> > +     * @param from
>> > +     *            the sender of the mail as shown in the mail-client.
>> > +     * @param vEmails
>> > +     *            all receivers of the mail. The receivers are
>> seperated by
>> > +     *            commas.
>> > +     * @param subject
>> > +     *            the subject of the mail.
>> > +     * @param attText
>> > +     *            the message-body.
>> > +     * @param smtpHost
>> > +     *            the smtp-server used to send the mail.
>> > +     */
>>
>> @throws clauses?
>>
>> > +    public void sendMail(String from, List<String> vEmails, String
>> subject,
>> > +            String attText, String smtpHost,
>> > +            Integer smtpPort,
>> > +            final String user,
>> > +            final String password,
>> > +            MailAuthType mailAuthType)
>> >             throws AddressException, MessagingException {
>> >         String host = smtpHost;
>> >         boolean debug = Boolean.valueOf(host).booleanValue();
>> > @@ -274,15 +336,39 @@ public class MailerModel extends Abstrac
>> >         Properties props = new Properties();
>> >
>> >         props.put(MAIL_SMTP_HOST, host);
>> > -        Session session = Session.getDefaultInstance(props, null);
>> > +        if(smtpPort != null) {
>> > +            props.put(MAIL_SMTP_PORT, smtpPort);
>> > +        }
>> > +        Authenticator authenticator = null;
>> > +        if(mailAuthType != MailAuthType.NONE) {
>> > +            props.put(MAIL_SMTP_AUTH, "true");
>> > +            switch (mailAuthType) {
>> > +                case SSL:
>> > +                    props.put(MAIL_SMTP_SOCKETFACTORY_CLASS,
>> > +                            "javax.net.ssl.SSLSocketFactory");
>> > +                    break;
>> > +                case TLS:
>> > +                    props.put(MAIL_SMTP_STARTTLS,
>> > +                            "true");
>> > +                    break;
>> > +
>> > +                default:
>> > +                    break;
>> > +                }
>> > +        }
>> > +
>> > +        if(!StringUtils.isEmpty(user)) {
>> > +            authenticator =
>> > +                    new javax.mail.Authenticator() {
>> > +                        protected PasswordAuthentication
>> getPasswordAuthentication() {
>> > +                            return new
>> PasswordAuthentication(user,password);
>> > +                        }
>> > +                    };
>> > +        }
>> > +        Session session = Session.getInstance(props, authenticator);
>> >         // N.B. properties are only used when the default session is
>> first
>> >         // created
>> >         // so check if the mail host needs to be reset...
>>
>> Do the above comments still apply?
>> If so, where is the code?
>> If not, please remove.
>>
>> > -        props = session.getProperties();
>> > -        if (!host.equalsIgnoreCase(props.getProperty(MAIL_SMTP_HOST))) {
>> > -            props.setProperty(MAIL_SMTP_HOST, host);
>> > -        }
>> > -
>> >         session.setDebug(debug);
>> >
>> >         // create a message
>> > @@ -305,7 +391,11 @@ public class MailerModel extends Abstrac
>> >
>> >         log.info(attText);
>> >
>> > -        sendMail(from, getAddressList(), subject, attText, smtpHost);
>> > +        sendMail(from, getAddressList(), subject, attText, smtpHost,
>> > +                getSmtpPort(),
>> > +                getLogin(),
>> > +                getPassword(),
>> > +                getMailAuthType());
>> >         log.info("Test mail sent successfully!!");
>> >     }
>> >
>> > @@ -327,6 +417,26 @@ public class MailerModel extends Abstrac
>> >         setProperty(HOST_KEY, str);
>> >     }
>> >
>> > +    public void setSmtpPort(Integer str) {
>> > +        if(str== null) {
>> > +            setProperty(PORT_KEY, DEFAULT_SMTP_PORT);
>> > +        } else {
>> > +            setProperty(PORT_KEY, str);
>> > +        }
>> > +    }
>> > +
>> > +    public void setLogin(String login) {
>> > +        setProperty(LOGIN, login);
>> > +    }
>> > +
>> > +    public void setPassword(String password) {
>> > +        setProperty(PASSWORD, password);
>> > +    }
>> > +
>> > +    public void setMailAuthType(String value) {
>> > +        setProperty(MAIL_AUTH_TYPE, value, "");
>> > +    }
>> > +
>> >     public void setFailureSubject(String str) {
>> >         setProperty(FAILURE_SUBJECT, str);
>> >     }
>> > @@ -365,6 +475,10 @@ public class MailerModel extends Abstrac
>> >         return getPropertyAsString(HOST_KEY);
>> >     }
>> >
>> > +    public int getSmtpPort() {
>> > +        return getPropertyAsInt(PORT_KEY, DEFAULT_SMTP_PORT);
>> > +    }
>> > +
>> >     public String getFailureSubject() {
>> >         return getPropertyAsString(FAILURE_SUBJECT);
>> >     }
>> > @@ -388,4 +502,17 @@ public class MailerModel extends Abstrac
>> >     public long getFailureCount() {
>> >         return this.failureCount;
>> >     }
>> > -}
>> > +
>> > +    public String getLogin() {
>> > +        return getPropertyAsString(LOGIN);
>> > +    }
>> > +
>> > +    public String getPassword() {
>> > +        return getPropertyAsString(PASSWORD);
>> > +    }
>> > +
>> > +    public MailAuthType getMailAuthType() {
>> > +        String authType = getPropertyAsString(MAIL_AUTH_TYPE,
>> MailAuthType.NONE.toString());
>> > +        return MailAuthType.valueOf(authType);
>> > +    }
>> > +}
>> > \ No newline at end of file
>> >
>> > Modified:
>> jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java
>> > URL:
>> http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java?rev=1240674&r1=1240673&r2=1240674&view=diff
>> >
>> ==============================================================================
>> > ---
>> jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java
>> (original)
>> > +++
>> jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java
>> Sun Feb  5 08:00:38 2012
>> > @@ -24,19 +24,23 @@ import java.awt.GridBagLayout;
>> >  import java.awt.Insets;
>> >  import java.awt.event.ActionEvent;
>> >  import java.awt.event.ActionListener;
>> > +
>> >  import javax.mail.MessagingException;
>> >  import javax.mail.internet.AddressException;
>> >  import javax.swing.BorderFactory;
>> >  import javax.swing.JButton;
>> > +import javax.swing.JComboBox;
>> >  import javax.swing.JLabel;
>> >  import javax.swing.JOptionPane;
>> >  import javax.swing.JPanel;
>> > +import javax.swing.JPasswordField;
>> >  import javax.swing.JTextField;
>> >  import javax.swing.border.Border;
>> >  import javax.swing.border.EmptyBorder;
>> >  import javax.swing.event.ChangeEvent;
>> >  import javax.swing.event.ChangeListener;
>> >
>> > +import org.apache.commons.lang.StringUtils;
>> >  import org.apache.jmeter.gui.util.VerticalPanel;
>> >  import org.apache.jmeter.reporters.MailerModel;
>> >  import org.apache.jmeter.reporters.MailerResultCollector;
>> > @@ -72,6 +76,8 @@ public class MailerVisualizer extends Ab
>> >
>> >     private JTextField smtpHostField;
>> >
>> > +    private JTextField smtpPortField;
>> > +
>> >     private JTextField failureSubjectField;
>> >
>> >     private JTextField successSubjectField;
>> > @@ -82,6 +88,13 @@ public class MailerVisualizer extends Ab
>> >
>> >     private JTextField successLimitField;
>> >
>> > +    private JTextField smtpLoginField;
>> > +
>> > +    private JTextField smtpPasswordField;
>> > +
>> > +    private JComboBox authTypeCombo;
>> > +
>> > +
>> >     // private JPanel mainPanel;
>> >     // private JLabel panelTitleLabel;
>> >
>> > @@ -180,6 +193,45 @@ public class MailerVisualizer extends Ab
>> >         mailerPanel.add(smtpHostField);
>> >
>> >         c.gridwidth = 1;
>> > +        mailerPanel.add(new JLabel("SMTP Port:"));
>> > +
>> > +        smtpPortField = new JTextField(25);
>> > +        smtpPortField.setEditable(true);
>> > +        c.gridwidth = GridBagConstraints.REMAINDER;
>> > +        g.setConstraints(smtpPortField, c);
>> > +        mailerPanel.add(smtpPortField);
>> > +
>> > +        c.gridwidth = 1;
>> > +        mailerPanel.add(new JLabel("SMTP Login:"));
>> > +
>> > +        smtpLoginField = new JTextField(25);
>> > +        smtpLoginField.setEditable(true);
>> > +        c.gridwidth = GridBagConstraints.REMAINDER;
>> > +        g.setConstraints(smtpLoginField, c);
>> > +        mailerPanel.add(smtpLoginField);
>> > +
>> > +        c.gridwidth = 1;
>> > +        mailerPanel.add(new JLabel("SMTP Password:"));
>> > +
>> > +        smtpPasswordField = new JPasswordField(25);
>> > +        smtpPasswordField.setEditable(true);
>> > +        c.gridwidth = GridBagConstraints.REMAINDER;
>> > +        g.setConstraints(smtpPasswordField, c);
>> > +        mailerPanel.add(smtpPasswordField);
>> > +
>> > +        c.gridwidth = 1;
>> > +        mailerPanel.add(new JLabel("AUTH TYPE"));
>> > +
>> > +        authTypeCombo = new JComboBox(new Object[] {
>> > +                MailerModel.MailAuthType.NONE.toString(),
>> > +                MailerModel.MailAuthType.SSL.toString(),
>> > +                MailerModel.MailAuthType.TLS.toString()});
>> > +        c.gridwidth = GridBagConstraints.REMAINDER;
>> > +        g.setConstraints(authTypeCombo, c);
>> > +        mailerPanel.add(authTypeCombo);
>> > +
>> > +
>> > +        c.gridwidth = 1;
>> >         mailerPanel.add(new JLabel("Failure Subject:"));
>> >
>> >         failureSubjectField = new JTextField(25);
>> > @@ -322,6 +374,13 @@ public class MailerVisualizer extends Ab
>> >         mailerModel.setFailureSubject(failureSubjectField.getText());
>> >         mailerModel.setFromAddress(fromField.getText());
>> >         mailerModel.setSmtpHost(smtpHostField.getText());
>> > +        mailerModel.setSmtpPort(
>> > +                StringUtils.isEmpty(smtpPortField.getText()) ?
>> > +                        null :
>> Integer.valueOf(smtpPortField.getText()));
>> > +        mailerModel.setLogin(smtpLoginField.getText());
>> > +        mailerModel.setPassword(smtpPasswordField.getText());
>> > +        mailerModel.setMailAuthType(
>> > +                authTypeCombo.getSelectedItem().toString());
>> >         mailerModel.setSuccessLimit(successLimitField.getText());
>> >         mailerModel.setSuccessSubject(successSubjectField.getText());
>> >         mailerModel.setToAddress(addressField.getText());
>> > @@ -341,6 +400,10 @@ public class MailerVisualizer extends Ab
>> >         addressField.setText(model.getToAddress());
>> >         fromField.setText(model.getFromAddress());
>> >         smtpHostField.setText(model.getSmtpHost());
>> > +        smtpPortField.setText(Integer.toString(model.getSmtpPort()));
>> > +        smtpLoginField.setText(model.getLogin());
>> > +        smtpPasswordField.setText(model.getPassword());
>> > +
>>  authTypeCombo.setSelectedItem(model.getMailAuthType().toString());
>> >         successSubjectField.setText(model.getSuccessSubject());
>> >         failureSubjectField.setText(model.getFailureSubject());
>> >
>> failureLimitField.setText(String.valueOf(model.getFailureLimit()));
>> >
>> > Modified: jmeter/trunk/xdocs/changes.xml
>> > URL:
>> http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1240674&r1=1240673&r2=1240674&view=diff
>> >
>> ==============================================================================
>> > --- jmeter/trunk/xdocs/changes.xml (original)
>> > +++ jmeter/trunk/xdocs/changes.xml Sun Feb  5 08:00:38 2012
>> > @@ -118,6 +118,7 @@ or a Debug Sampler with all fields set t
>> >
>> >  <h3>Listeners</h3>
>> >  <ul>
>> > +<li>Bug 52603 - MailerVisualizer : Enable SSL , TLS and
>> Authentication</li>
>> >  </ul>
>> >
>> >  <h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>
>> >
>> >
>>
>
>
>
> --
> Cordialement.
> Philippe Mouawad.

Re: svn commit: r1240674 - in /jmeter/trunk: src/components/org/apache/jmeter/reporters/MailerModel.java src/components/org/apache/jmeter/visualizers/MailerVisualizer.java xdocs/changes.xml

Posted by Philippe Mouawad <ph...@gmail.com>.
I committed  fixes.
Sorry, it was too late I think when I did this.

Tell me if it's OK now.

On Sun, Feb 5, 2012 at 2:05 PM, sebb <se...@gmail.com> wrote:

> On 5 February 2012 08:00,  <pm...@apache.org> wrote:
> > Author: pmouawad
> > Date: Sun Feb  5 08:00:38 2012
> > New Revision: 1240674
> >
> > URL: http://svn.apache.org/viewvc?rev=1240674&view=rev
> > Log:
> > Bug 52603 - MailerVisualizer : Enable SSL , TLS and Authentication
> >
> > Modified:
> >
>  jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java
> >
>  jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java
> >    jmeter/trunk/xdocs/changes.xml
> >
> > Modified:
> jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java
> > URL:
> http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java?rev=1240674&r1=1240673&r2=1240674&view=diff
> >
> ==============================================================================
> > ---
> jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java
> (original)
> > +++
> jmeter/trunk/src/components/org/apache/jmeter/reporters/MailerModel.java
> Sun Feb  5 08:00:38 2012
> > @@ -24,8 +24,10 @@ import java.util.List;
> >  import java.util.Properties;
> >  import java.util.StringTokenizer;
> >
> > +import javax.mail.Authenticator;
> >  import javax.mail.Message;
> >  import javax.mail.MessagingException;
> > +import javax.mail.PasswordAuthentication;
> >  import javax.mail.Session;
> >  import javax.mail.Transport;
> >  import javax.mail.internet.AddressException;
> > @@ -34,6 +36,7 @@ import javax.mail.internet.MimeMessage;
> >  import javax.swing.event.ChangeEvent;
> >  import javax.swing.event.ChangeListener;
> >
> > +import org.apache.commons.lang.StringUtils;
> >  import org.apache.jmeter.samplers.SampleResult;
> >  import org.apache.jmeter.testelement.AbstractTestElement;
> >  import org.apache.jmeter.util.JMeterUtils;
> > @@ -45,13 +48,31 @@ import org.apache.log.Logger;
> >  *
> >  */
> >  public class MailerModel extends AbstractTestElement implements
> Serializable {
> > -
> > +    public static enum MailAuthType {
> > +        SSL("SSL"),
> > +        TLS("TLS"),
> > +        NONE("");
> > +
> > +        final private String value;
> > +        MailAuthType(String value) {
> > +            this.value = value;
> > +        }
> > +    }
> > +
> >     private static final long serialVersionUID = 233L;
> >
> >     private static final Logger log = LoggingManager.getLoggerForClass();
> >
> >     private static final String MAIL_SMTP_HOST = "mail.smtp.host";
> //$NON-NLS-1$
> >
> > +    private static final String MAIL_SMTP_PORT = "mail.smtp.port";
> //$NON-NLS-1$
> > +
> > +    private static final String MAIL_SMTP_AUTH = "mail.smtp.auth";
> //$NON-NLS-1$
> > +
> > +    private static final String MAIL_SMTP_SOCKETFACTORY_CLASS =
> "mail.smtp.socketFactory.class"; //$NON-NLS-1$
> > +
> > +    private static final String MAIL_SMTP_STARTTLS =
> "mail.smtp.starttls.enable"; //$NON-NLS-1$
> > +
> >     private long failureCount = 0;
> >
> >     private long successCount = 0;
> > @@ -68,6 +89,8 @@ public class MailerModel extends Abstrac
> >
> >     private static final String HOST_KEY = "MailerModel.smtpHost";
> //$NON-NLS-1$
> >
> > +    private static final String PORT_KEY = "MailerModel.smtpPort";
> //$NON-NLS-1$
> > +
> >     private static final String SUCCESS_SUBJECT =
> "MailerModel.successSubject"; //$NON-NLS-1$
> >
> >     private static final String FAILURE_SUBJECT =
> "MailerModel.failureSubject"; //$NON-NLS-1$
> > @@ -76,8 +99,16 @@ public class MailerModel extends Abstrac
> >
> >     private static final String SUCCESS_LIMIT_KEY =
> "MailerModel.successLimit"; //$NON-NLS-1$
> >
> > +    private static final String LOGIN = "MailerModel.login";
> //$NON-NLS-1$
> > +
> > +    private static final String PASSWORD = "MailerModel.password";
> //$NON-NLS-1$
> > +
> > +    private static final String MAIL_AUTH_TYPE =
> "MailerModel.authType"; //$NON-NLS-1$
> > +
> >     private static final String DEFAULT_LIMIT = "2"; //$NON-NLS-1$
> >
> > +    private static final int DEFAULT_SMTP_PORT = 25;
> > +
> >     /** The listener for changes. */
> >     private transient ChangeListener changeListener;
> >
> > @@ -180,7 +211,9 @@ public class MailerModel extends Abstrac
> >             if (addressList.size() != 0) {
> >                 try {
> >                     sendMail(getFromAddress(), addressList,
> getFailureSubject(), "URL Failed: "
> > -                            + sample.getSampleLabel(), getSmtpHost());
> > +                            + sample.getSampleLabel(), getSmtpHost(),
> > +                            getSmtpPort(), getLogin(), getPassword(),
> > +                            getMailAuthType());
> >                 } catch (Exception e) {
> >                     log.error("Problem sending mail: "+e);
> >                 }
> > @@ -215,6 +248,8 @@ public class MailerModel extends Abstrac
> >         notifyChangeListeners();
> >     }
> >
> > +
> > +
> >     /**
> >      * Resets the state of this object to its default. But: This method
> does not
> >      * reset any mail-specific attributes (like sender, mail-subject...)
> since
> > @@ -257,8 +292,35 @@ public class MailerModel extends Abstrac
> >      *            the message-body.
> >      * @param smtpHost
> >      *            the smtp-server used to send the mail.
> > +     * @throws MessagingException
> > +     * @throws AddressException
>
> AFAIK, @throws clauses need some text
>
> >      */
> > -    public void sendMail(String from, List<String> vEmails, String
> subject, String attText, String smtpHost)
> > +    public void sendMail(String from, List<String> vEmails, String
> subject, String attText, String smtpHost)
> > +            throws AddressException, MessagingException {
> > +        sendMail(from, vEmails, subject, attText, smtpHost, null, null,
> null, null);
> > +    }
> > +
> > +    /**
> > +     * Sends a mail with the given parameters using SMTP.
> > +     *
> > +     * @param from
> > +     *            the sender of the mail as shown in the mail-client.
> > +     * @param vEmails
> > +     *            all receivers of the mail. The receivers are
> seperated by
> > +     *            commas.
> > +     * @param subject
> > +     *            the subject of the mail.
> > +     * @param attText
> > +     *            the message-body.
> > +     * @param smtpHost
> > +     *            the smtp-server used to send the mail.
> > +     */
>
> @throws clauses?
>
> > +    public void sendMail(String from, List<String> vEmails, String
> subject,
> > +            String attText, String smtpHost,
> > +            Integer smtpPort,
> > +            final String user,
> > +            final String password,
> > +            MailAuthType mailAuthType)
> >             throws AddressException, MessagingException {
> >         String host = smtpHost;
> >         boolean debug = Boolean.valueOf(host).booleanValue();
> > @@ -274,15 +336,39 @@ public class MailerModel extends Abstrac
> >         Properties props = new Properties();
> >
> >         props.put(MAIL_SMTP_HOST, host);
> > -        Session session = Session.getDefaultInstance(props, null);
> > +        if(smtpPort != null) {
> > +            props.put(MAIL_SMTP_PORT, smtpPort);
> > +        }
> > +        Authenticator authenticator = null;
> > +        if(mailAuthType != MailAuthType.NONE) {
> > +            props.put(MAIL_SMTP_AUTH, "true");
> > +            switch (mailAuthType) {
> > +                case SSL:
> > +                    props.put(MAIL_SMTP_SOCKETFACTORY_CLASS,
> > +                            "javax.net.ssl.SSLSocketFactory");
> > +                    break;
> > +                case TLS:
> > +                    props.put(MAIL_SMTP_STARTTLS,
> > +                            "true");
> > +                    break;
> > +
> > +                default:
> > +                    break;
> > +                }
> > +        }
> > +
> > +        if(!StringUtils.isEmpty(user)) {
> > +            authenticator =
> > +                    new javax.mail.Authenticator() {
> > +                        protected PasswordAuthentication
> getPasswordAuthentication() {
> > +                            return new
> PasswordAuthentication(user,password);
> > +                        }
> > +                    };
> > +        }
> > +        Session session = Session.getInstance(props, authenticator);
> >         // N.B. properties are only used when the default session is
> first
> >         // created
> >         // so check if the mail host needs to be reset...
>
> Do the above comments still apply?
> If so, where is the code?
> If not, please remove.
>
> > -        props = session.getProperties();
> > -        if (!host.equalsIgnoreCase(props.getProperty(MAIL_SMTP_HOST))) {
> > -            props.setProperty(MAIL_SMTP_HOST, host);
> > -        }
> > -
> >         session.setDebug(debug);
> >
> >         // create a message
> > @@ -305,7 +391,11 @@ public class MailerModel extends Abstrac
> >
> >         log.info(attText);
> >
> > -        sendMail(from, getAddressList(), subject, attText, smtpHost);
> > +        sendMail(from, getAddressList(), subject, attText, smtpHost,
> > +                getSmtpPort(),
> > +                getLogin(),
> > +                getPassword(),
> > +                getMailAuthType());
> >         log.info("Test mail sent successfully!!");
> >     }
> >
> > @@ -327,6 +417,26 @@ public class MailerModel extends Abstrac
> >         setProperty(HOST_KEY, str);
> >     }
> >
> > +    public void setSmtpPort(Integer str) {
> > +        if(str== null) {
> > +            setProperty(PORT_KEY, DEFAULT_SMTP_PORT);
> > +        } else {
> > +            setProperty(PORT_KEY, str);
> > +        }
> > +    }
> > +
> > +    public void setLogin(String login) {
> > +        setProperty(LOGIN, login);
> > +    }
> > +
> > +    public void setPassword(String password) {
> > +        setProperty(PASSWORD, password);
> > +    }
> > +
> > +    public void setMailAuthType(String value) {
> > +        setProperty(MAIL_AUTH_TYPE, value, "");
> > +    }
> > +
> >     public void setFailureSubject(String str) {
> >         setProperty(FAILURE_SUBJECT, str);
> >     }
> > @@ -365,6 +475,10 @@ public class MailerModel extends Abstrac
> >         return getPropertyAsString(HOST_KEY);
> >     }
> >
> > +    public int getSmtpPort() {
> > +        return getPropertyAsInt(PORT_KEY, DEFAULT_SMTP_PORT);
> > +    }
> > +
> >     public String getFailureSubject() {
> >         return getPropertyAsString(FAILURE_SUBJECT);
> >     }
> > @@ -388,4 +502,17 @@ public class MailerModel extends Abstrac
> >     public long getFailureCount() {
> >         return this.failureCount;
> >     }
> > -}
> > +
> > +    public String getLogin() {
> > +        return getPropertyAsString(LOGIN);
> > +    }
> > +
> > +    public String getPassword() {
> > +        return getPropertyAsString(PASSWORD);
> > +    }
> > +
> > +    public MailAuthType getMailAuthType() {
> > +        String authType = getPropertyAsString(MAIL_AUTH_TYPE,
> MailAuthType.NONE.toString());
> > +        return MailAuthType.valueOf(authType);
> > +    }
> > +}
> > \ No newline at end of file
> >
> > Modified:
> jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java
> > URL:
> http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java?rev=1240674&r1=1240673&r2=1240674&view=diff
> >
> ==============================================================================
> > ---
> jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java
> (original)
> > +++
> jmeter/trunk/src/components/org/apache/jmeter/visualizers/MailerVisualizer.java
> Sun Feb  5 08:00:38 2012
> > @@ -24,19 +24,23 @@ import java.awt.GridBagLayout;
> >  import java.awt.Insets;
> >  import java.awt.event.ActionEvent;
> >  import java.awt.event.ActionListener;
> > +
> >  import javax.mail.MessagingException;
> >  import javax.mail.internet.AddressException;
> >  import javax.swing.BorderFactory;
> >  import javax.swing.JButton;
> > +import javax.swing.JComboBox;
> >  import javax.swing.JLabel;
> >  import javax.swing.JOptionPane;
> >  import javax.swing.JPanel;
> > +import javax.swing.JPasswordField;
> >  import javax.swing.JTextField;
> >  import javax.swing.border.Border;
> >  import javax.swing.border.EmptyBorder;
> >  import javax.swing.event.ChangeEvent;
> >  import javax.swing.event.ChangeListener;
> >
> > +import org.apache.commons.lang.StringUtils;
> >  import org.apache.jmeter.gui.util.VerticalPanel;
> >  import org.apache.jmeter.reporters.MailerModel;
> >  import org.apache.jmeter.reporters.MailerResultCollector;
> > @@ -72,6 +76,8 @@ public class MailerVisualizer extends Ab
> >
> >     private JTextField smtpHostField;
> >
> > +    private JTextField smtpPortField;
> > +
> >     private JTextField failureSubjectField;
> >
> >     private JTextField successSubjectField;
> > @@ -82,6 +88,13 @@ public class MailerVisualizer extends Ab
> >
> >     private JTextField successLimitField;
> >
> > +    private JTextField smtpLoginField;
> > +
> > +    private JTextField smtpPasswordField;
> > +
> > +    private JComboBox authTypeCombo;
> > +
> > +
> >     // private JPanel mainPanel;
> >     // private JLabel panelTitleLabel;
> >
> > @@ -180,6 +193,45 @@ public class MailerVisualizer extends Ab
> >         mailerPanel.add(smtpHostField);
> >
> >         c.gridwidth = 1;
> > +        mailerPanel.add(new JLabel("SMTP Port:"));
> > +
> > +        smtpPortField = new JTextField(25);
> > +        smtpPortField.setEditable(true);
> > +        c.gridwidth = GridBagConstraints.REMAINDER;
> > +        g.setConstraints(smtpPortField, c);
> > +        mailerPanel.add(smtpPortField);
> > +
> > +        c.gridwidth = 1;
> > +        mailerPanel.add(new JLabel("SMTP Login:"));
> > +
> > +        smtpLoginField = new JTextField(25);
> > +        smtpLoginField.setEditable(true);
> > +        c.gridwidth = GridBagConstraints.REMAINDER;
> > +        g.setConstraints(smtpLoginField, c);
> > +        mailerPanel.add(smtpLoginField);
> > +
> > +        c.gridwidth = 1;
> > +        mailerPanel.add(new JLabel("SMTP Password:"));
> > +
> > +        smtpPasswordField = new JPasswordField(25);
> > +        smtpPasswordField.setEditable(true);
> > +        c.gridwidth = GridBagConstraints.REMAINDER;
> > +        g.setConstraints(smtpPasswordField, c);
> > +        mailerPanel.add(smtpPasswordField);
> > +
> > +        c.gridwidth = 1;
> > +        mailerPanel.add(new JLabel("AUTH TYPE"));
> > +
> > +        authTypeCombo = new JComboBox(new Object[] {
> > +                MailerModel.MailAuthType.NONE.toString(),
> > +                MailerModel.MailAuthType.SSL.toString(),
> > +                MailerModel.MailAuthType.TLS.toString()});
> > +        c.gridwidth = GridBagConstraints.REMAINDER;
> > +        g.setConstraints(authTypeCombo, c);
> > +        mailerPanel.add(authTypeCombo);
> > +
> > +
> > +        c.gridwidth = 1;
> >         mailerPanel.add(new JLabel("Failure Subject:"));
> >
> >         failureSubjectField = new JTextField(25);
> > @@ -322,6 +374,13 @@ public class MailerVisualizer extends Ab
> >         mailerModel.setFailureSubject(failureSubjectField.getText());
> >         mailerModel.setFromAddress(fromField.getText());
> >         mailerModel.setSmtpHost(smtpHostField.getText());
> > +        mailerModel.setSmtpPort(
> > +                StringUtils.isEmpty(smtpPortField.getText()) ?
> > +                        null :
> Integer.valueOf(smtpPortField.getText()));
> > +        mailerModel.setLogin(smtpLoginField.getText());
> > +        mailerModel.setPassword(smtpPasswordField.getText());
> > +        mailerModel.setMailAuthType(
> > +                authTypeCombo.getSelectedItem().toString());
> >         mailerModel.setSuccessLimit(successLimitField.getText());
> >         mailerModel.setSuccessSubject(successSubjectField.getText());
> >         mailerModel.setToAddress(addressField.getText());
> > @@ -341,6 +400,10 @@ public class MailerVisualizer extends Ab
> >         addressField.setText(model.getToAddress());
> >         fromField.setText(model.getFromAddress());
> >         smtpHostField.setText(model.getSmtpHost());
> > +        smtpPortField.setText(Integer.toString(model.getSmtpPort()));
> > +        smtpLoginField.setText(model.getLogin());
> > +        smtpPasswordField.setText(model.getPassword());
> > +
>  authTypeCombo.setSelectedItem(model.getMailAuthType().toString());
> >         successSubjectField.setText(model.getSuccessSubject());
> >         failureSubjectField.setText(model.getFailureSubject());
> >
> failureLimitField.setText(String.valueOf(model.getFailureLimit()));
> >
> > Modified: jmeter/trunk/xdocs/changes.xml
> > URL:
> http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1240674&r1=1240673&r2=1240674&view=diff
> >
> ==============================================================================
> > --- jmeter/trunk/xdocs/changes.xml (original)
> > +++ jmeter/trunk/xdocs/changes.xml Sun Feb  5 08:00:38 2012
> > @@ -118,6 +118,7 @@ or a Debug Sampler with all fields set t
> >
> >  <h3>Listeners</h3>
> >  <ul>
> > +<li>Bug 52603 - MailerVisualizer : Enable SSL , TLS and
> Authentication</li>
> >  </ul>
> >
> >  <h3>Timers, Assertions, Config, Pre- &amp; Post-Processors</h3>
> >
> >
>



-- 
Cordialement.
Philippe Mouawad.