Author: sebb
Date: Mon Aug 16 20:54:59 2010
New Revision: 986129
URL: http://svn.apache.org/viewvc?rev=986129&view=rev
Log:
Bug 49622 - Allow sending messages without a subject (SMTP Sampler)
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/SmtpSampler.java
jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/gui/SmtpPanel.java
jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/gui/SmtpSamplerGui.java
jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/protocol/SendMailCommand.java
jakarta/jmeter/trunk/xdocs/changes.xml
jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=986129&r1=986128&r2=986129&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
(original)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
Mon Aug 16 20:54:59 2010
@@ -812,6 +812,7 @@ smtp_server_port=Port:
smtp_server=Server:
smtp_server_settings=Server settings
smtp_subject=Subject:
+smtp_suppresssubj=Suppress Subject Header
smtp_to=Address To:
smtp_timestamp=Include timestamp in subject
smtp_trustall=Trust all certificates
Modified:
jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/SmtpSampler.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/SmtpSampler.java?rev=986129&r1=986128&r2=986129&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/SmtpSampler.java
(original)
+++
jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/SmtpSampler.java
Mon Aug 16 20:54:59 2010
@@ -65,6 +65,7 @@ public class SmtpSampler extends Abstrac
public final static String RECEIVER_BCC =
"SMTPSampler.receiverBCC"; // $NON-NLS-1$
public final static String SUBJECT = "SMTPSampler.subject";
// $NON-NLS-1$
+ public final static String SUPPRESS_SUBJECT =
"SMTPSampler.suppressSubject"; // $NON-NLS-1$
public final static String MESSAGE = "SMTPSampler.message";
// $NON-NLS-1$
public final static String INCLUDE_TIMESTAMP =
"SMTPSampler.include_timestamp"; // $NON-NLS-1$
public final static String ATTACH_FILE =
"SMTPSampler.attachFile"; // $NON-NLS-1$
@@ -135,12 +136,20 @@ public class SmtpSampler extends Abstrac
instance.setReceiverTo(getPropNameAsAddresses(receiverTo));
instance.setReceiverCC(getPropNameAsAddresses(receiverCC));
instance.setReceiverBCC(getPropNameAsAddresses(receiverBcc));
-
- instance.setSubject(getPropertyAsString(SUBJECT)
- + (getPropertyAsBoolean(INCLUDE_TIMESTAMP) ?
- " <<< current timestamp: " + new Date().getTime()
+ " >>>"
- : ""
- ));
+
+ if(getPropertyAsBoolean(SUPPRESS_SUBJECT)){
+ instance.setSubject(null);
+ }else{
+ String subject = getPropertyAsString(SUBJECT);
+ if (getPropertyAsBoolean(INCLUDE_TIMESTAMP)){
+ StringBuffer sb = new StringBuffer(subject);
+ sb.append(" <<< current timestamp: ");
+ sb.append(new Date().getTime());
+ sb.append(" >>>");
+ subject = sb.toString();
+ }
+ instance.setSubject(subject);
+ }
if (!getPropertyAsBoolean(USE_EML)) { // part is only needed if we
// don't send an .eml-file
Modified:
jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/gui/SmtpPanel.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/gui/SmtpPanel.java?rev=986129&r1=986128&r2=986129&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/gui/SmtpPanel.java
(original)
+++
jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/gui/SmtpPanel.java
Mon Aug 16 20:54:59 2010
@@ -95,6 +95,7 @@ public class SmtpPanel extends JPanel {
private JTextField tfAuthPassword;
private JTextField tfAuthUsername;
private JTextField tfSubject;
+ private JCheckBox cbSuppressSubject;
private JCheckBox cbIncludeTimestamp;
private JCheckBox cbMessageSizeStats;
private JCheckBox cbEnableDebug;
@@ -289,6 +290,25 @@ public class SmtpPanel extends JPanel {
}
/**
+ * Returns true if subject header should be suppressed
+ *
+ * @return true if subject header should be suppressed
+ */
+ public boolean isSuppressSubject() {
+ return cbSuppressSubject.isSelected();
+ }
+
+ /**
+ * Sets the property that defines if the subject header should be
suppressed
+ *
+ * @param emptySubject
+ *
+ */
+ public void setSuppressSubject(boolean emptySubject) {
+ cbSuppressSubject.setSelected(emptySubject);
+ }
+
+ /**
* Returns if mail-server needs authentication (checkbox)
*
* @return true if authentication is used
@@ -602,6 +622,13 @@ public class SmtpPanel extends JPanel {
tfEmlMessage = new JTextField(30);
taMessage = new JTextArea(5, 20);
+
+ cbSuppressSubject = new
JCheckBox(JMeterUtils.getResString("smtp_suppresssubj")); // $NON-NLS-1$
+ cbSuppressSubject.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent evt) {
+ emptySubjectActionPerformed(evt);
+ }
+ });
cbUseAuth = new JCheckBox(JMeterUtils.getResString("smtp_useauth"));
// $NON-NLS-1$
rbUseNone = new
JRadioButton(JMeterUtils.getResString("smtp_usenone")); // $NON-NLS-1$
@@ -894,11 +921,18 @@ public class SmtpPanel extends JPanel {
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
panelMessageSettings.add(tfSubject, gridBagConstraints);
+
+ cbSuppressSubject.setBorder(BorderFactory.createEmptyBorder(0, 0, 0,
0));
+ cbSuppressSubject.setMargin(new java.awt.Insets(0, 0, 0, 0));
+ gridBagConstraints.gridx = 2;
+ gridBagConstraints.gridy = 0;
+ gridBagConstraints.fill = GridBagConstraints.NONE;
+ panelMessageSettings.add(cbSuppressSubject, gridBagConstraints);
cbIncludeTimestamp.setBorder(BorderFactory.createEmptyBorder(0, 0, 0,
0));
cbIncludeTimestamp.setMargin(new java.awt.Insets(0, 0, 0, 0));
- gridBagConstraints.gridx = 2;
- gridBagConstraints.gridy = 0;
+ gridBagConstraints.gridx = 1;
+ gridBagConstraints.gridy = 1;
gridBagConstraints.fill = GridBagConstraints.NONE;
panelMessageSettings.add(cbIncludeTimestamp, gridBagConstraints);
@@ -933,26 +967,26 @@ public class SmtpPanel extends JPanel {
headerFieldsPanel.add(headerFieldValue, gridBagConstraints);
gridBagConstraintsMain.gridx = 1;
- gridBagConstraintsMain.gridy = 1;
+ gridBagConstraintsMain.gridy = 2;
panelMessageSettings.add(headerFieldsPanel, gridBagConstraintsMain);
gridBagConstraints.gridx = 0;
- gridBagConstraints.gridy = 2;
+ gridBagConstraints.gridy = 3;
panelMessageSettings.add(jlMessage, gridBagConstraints);
taMessage.setBorder(BorderFactory.createBevelBorder(1));
gridBagConstraints.gridx = 1;
- gridBagConstraints.gridy = 2;
+ gridBagConstraints.gridy = 3;
gridBagConstraints.fill = GridBagConstraints.BOTH;
panelMessageSettings.add(taMessage, gridBagConstraints);
gridBagConstraints.gridx = 0;
- gridBagConstraints.gridy = 3;
+ gridBagConstraints.gridy = 4;
gridBagConstraints.fill = GridBagConstraints.NONE;
panelMessageSettings.add(jlAttachFile, gridBagConstraints);
gridBagConstraints.gridx = 1;
- gridBagConstraints.gridy = 3;
+ gridBagConstraints.gridy = 4;
gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
panelMessageSettings.add(tfAttachment, gridBagConstraints);
tfAttachment.setToolTipText(JMeterUtils.getResString("smtp_attach_file_tooltip"));
// $NON-NLS-1$
@@ -964,7 +998,7 @@ public class SmtpPanel extends JPanel {
});
gridBagConstraints.gridx = 2;
- gridBagConstraints.gridy = 3;
+ gridBagConstraints.gridy = 4;
gridBagConstraints.fill = GridBagConstraints.NONE;
panelMessageSettings.add(browseButton, gridBagConstraints);
@@ -976,12 +1010,12 @@ public class SmtpPanel extends JPanel {
});
gridBagConstraints.gridx = 0;
- gridBagConstraints.gridy = 4;
+ gridBagConstraints.gridy = 5;
gridBagConstraints.fill = GridBagConstraints.NONE;
panelMessageSettings.add(cbUseEmlMessage, gridBagConstraints);
gridBagConstraints.gridx = 1;
- gridBagConstraints.gridy = 4;
+ gridBagConstraints.gridy = 5;
gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;
tfEmlMessage.setEnabled(false);
panelMessageSettings.add(tfEmlMessage, gridBagConstraints);
@@ -994,12 +1028,12 @@ public class SmtpPanel extends JPanel {
emlBrowseButton.setEnabled(false);
gridBagConstraints.gridx = 2;
- gridBagConstraints.gridy = 4;
+ gridBagConstraints.gridy = 5;
gridBagConstraints.fill = GridBagConstraints.NONE;
panelMessageSettings.add(emlBrowseButton, gridBagConstraints);
gridBagConstraintsMain.gridx = 0;
- gridBagConstraintsMain.gridy = 5;
+ gridBagConstraintsMain.gridy = 6;
add(panelMessageSettings, gridBagConstraintsMain);
/*
@@ -1022,7 +1056,7 @@ public class SmtpPanel extends JPanel {
panelAdditionalSettings.add(cbEnableDebug, gridBagConstraints);
gridBagConstraintsMain.gridx = 0;
- gridBagConstraintsMain.gridy = 6;
+ gridBagConstraintsMain.gridy = 7;
add(panelAdditionalSettings, gridBagConstraintsMain);
}
@@ -1212,7 +1246,8 @@ public class SmtpPanel extends JPanel {
tfSubject.setText("");
tfTrustStoreToUse.setText("");
rbUseNone.setSelected(true);
- clearHeaderFields();
+ cbSuppressSubject.setSelected(false);
+ clearHeaderFields();
validate();
}
@@ -1293,4 +1328,16 @@ public class SmtpPanel extends JPanel {
validate();
}
}
+ private void emptySubjectActionPerformed(ActionEvent evt) {
+ final Object source = evt.getSource();
+ if(source != null && source instanceof JCheckBox){
+ if(cbSuppressSubject.isSelected()){
+ tfSubject.setEnabled(false);
+ cbIncludeTimestamp.setEnabled(false);
+ }else{
+ tfSubject.setEnabled(true);
+ cbIncludeTimestamp.setEnabled(true);
+ }
+ }
+ }
}
\ No newline at end of file
Modified:
jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/gui/SmtpSamplerGui.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/gui/SmtpSamplerGui.java?rev=986129&r1=986128&r2=986129&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/gui/SmtpSamplerGui.java
(original)
+++
jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/gui/SmtpSamplerGui.java
Mon Aug 16 20:54:59 2010
@@ -75,6 +75,7 @@ public class SmtpSamplerGui extends Abst
smtpPanel.setBody(element.getPropertyAsString(SmtpSampler.MESSAGE));
smtpPanel.setSubject(element.getPropertyAsString(SmtpSampler.SUBJECT));
+
smtpPanel.setSuppressSubject(element.getPropertyAsBoolean(SmtpSampler.SUPPRESS_SUBJECT));
smtpPanel.setIncludeTimestamp(element.getPropertyAsBoolean(SmtpSampler.INCLUDE_TIMESTAMP));
JMeterProperty headers =
element.getProperty(SmtpSampler.HEADER_FIELDS);
if (headers instanceof CollectionProperty) { // Might be NullProperty
@@ -133,6 +134,7 @@ public class SmtpSamplerGui extends Abst
te.setProperty(SmtpSampler.RECEIVER_CC, smtpPanel.getReceiverCC());
te.setProperty(SmtpSampler.RECEIVER_BCC, smtpPanel.getReceiverBCC());
te.setProperty(SmtpSampler.SUBJECT, smtpPanel.getSubject());
+ te.setProperty(SmtpSampler.SUPPRESS_SUBJECT,
Boolean.toString(smtpPanel.isSuppressSubject()));
te.setProperty(SmtpSampler.INCLUDE_TIMESTAMP,
Boolean.toString(smtpPanel.isIncludeTimestamp()));
te.setProperty(SmtpSampler.MESSAGE, smtpPanel.getBody());
te.setProperty(SmtpSampler.ATTACH_FILE, smtpPanel.getAttachments());
Modified:
jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/protocol/SendMailCommand.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/protocol/SendMailCommand.java?rev=986129&r1=986128&r2=986129&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/protocol/SendMailCommand.java
(original)
+++
jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/smtp/sampler/protocol/SendMailCommand.java
Mon Aug 16 20:54:59 2010
@@ -191,9 +191,7 @@ public class SendMailCommand {
message.setFrom(new InternetAddress(sender));
}
- if (null != subject) {
- message.setSubject(subject);
- }
+ message.setSubject(subject);
if (receiverTo != null) {
InternetAddress[] to = new InternetAddress[receiverTo.size()];
@@ -323,7 +321,7 @@ public class SendMailCommand {
* Sets subject for current message - called by SmtpSampler-object
*
* @param subject
- * Subject for message of current message
+ * Subject for message of current message - may be null
*/
public void setSubject(String subject) {
this.subject = subject;
Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=986129&r1=986128&r2=986129&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Mon Aug 16 20:54:59 2010
@@ -110,6 +110,7 @@ To override the default local language f
<h3>Other samplers</h3>
<ul>
+<li>Bug 49622 - Allow sending messages without a subject (SMTP Sampler)</li>
</ul>
<h3>Controllers</h3>
Modified: jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml?rev=986129&r1=986128&r2=986129&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml (original)
+++ jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml Mon Aug 16
20:54:59 2010
@@ -1531,6 +1531,8 @@ Relative paths are resolved against the
<br />Failing that, against the directory containing the test script (JMX
file).
</property>
<property name="Subject" required="">The e-mail message subject.</property>
+<property name="Suppress Subject Header" required="">If selected, the
"Subject:" header is omitted from the mail that is sent.
+This is different from sending an empty "Subject:" header, though some e-mail
clients may display it identically.</property>
<property name="Include timestamp in subject" required="">Includes the
System.currentTimemilis() in the subject line.</property>
<property name="Add Header" required="No">Additional headers can be defined
using this button.</property>
<property name="Message" required="">The message body.</property>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]