On Sun, Feb 5, 2012 at 3:07 PM, sebb <[email protected]> wrote:

> On 5 February 2012 13:30, Philippe Mouawad <[email protected]>
> 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 <[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.
>



-- 
Cordialement.
Philippe Mouawad.

Reply via email to