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 <[email protected]> wrote:

> On 5 February 2012 08:00,  <[email protected]> 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.

Reply via email to