You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2008/06/27 04:15:02 UTC
svn commit: r672077 - in /jakarta/jmeter/trunk: docs/images/screenshots/
src/core/org/apache/jmeter/resources/
src/protocol/mail/org/apache/jmeter/protocol/mail/sampler/
src/protocol/mail/org/apache/jmeter/protocol/mail/sampler/gui/ xdocs/
xdocs/images...
Author: sebb
Date: Thu Jun 26 19:15:01 2008
New Revision: 672077
URL: http://svn.apache.org/viewvc?rev=672077&view=rev
Log:
Bug 45200 - MailReaderSampler: store the whole MIME message in the SamplerResult
Removed:
jakarta/jmeter/trunk/docs/images/screenshots/mailreadersampler.png
jakarta/jmeter/trunk/xdocs/images/screenshots/mailreadersampler.png
Modified:
jakarta/jmeter/trunk/docs/images/screenshots/mailreader_sampler.png
jakarta/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/mail/sampler/MailReaderSampler.java
jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/mail/sampler/gui/MailReaderSamplerGui.java
jakarta/jmeter/trunk/xdocs/changes.xml
jakarta/jmeter/trunk/xdocs/images/screenshots/mailreader_sampler.png
jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml
Modified: jakarta/jmeter/trunk/docs/images/screenshots/mailreader_sampler.png
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/docs/images/screenshots/mailreader_sampler.png?rev=672077&r1=672076&r2=672077&view=diff
==============================================================================
Binary files - no diff available.
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=672077&r1=672076&r2=672077&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 Thu Jun 26 19:15:01 2008
@@ -448,6 +448,7 @@
mail_reader_pop3s=POP3S
mail_reader_server=Server:
mail_reader_server_type=Server Type:
+mail_reader_storemime=Store the message using MIME
mail_reader_title=Mail Reader Sampler
mail_sent=Mail sent successfully
mailer_attributes_panel=Mailing attributes
Modified: jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/mail/sampler/MailReaderSampler.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/mail/sampler/MailReaderSampler.java?rev=672077&r1=672076&r2=672077&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/mail/sampler/MailReaderSampler.java (original)
+++ jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/mail/sampler/MailReaderSampler.java Thu Jun 26 19:15:01 2008
@@ -17,6 +17,7 @@
*/
package org.apache.jmeter.protocol.mail.sampler;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Properties;
@@ -54,6 +55,7 @@
private final static String DELETE = "delete"; // $NON-NLS-1$
private final static String NUM_MESSAGES = "num_messages"; // $NON-NLS-1$
private static final String NEW_LINE = "\n"; // $NON-NLS-1$
+ private final static String STORE_MIME_MESSAGE = "storeMimeMessage";
// Needed by GUI
public final static String TYPE_POP3 = "pop3"; // $NON-NLS-1$
@@ -133,57 +135,10 @@
child.setSamplerData(cdata.toString());
cdata.setLength(0);
- cdata.append("Date: "); // $NON-NLS-1$
- cdata.append(message.getSentDate());
- cdata.append(NEW_LINE);
-
- cdata.append("To: "); // $NON-NLS-1$
- Address[] recips = message.getAllRecipients();
- for (int j = 0; j < recips.length; j++) {
- cdata.append(recips[j].toString());
- if (j < recips.length - 1) {
- cdata.append("; "); // $NON-NLS-1$
- }
- }
- cdata.append(NEW_LINE);
-
- cdata.append("From: "); // $NON-NLS-1$
- Address[] from = message.getFrom();
- for (int j = 0; j < from.length; j++) {
- cdata.append(from[j].toString());
- if (j < from.length - 1) {
- cdata.append("; "); // $NON-NLS-1$
- }
- }
- cdata.append(NEW_LINE);
-
- cdata.append("Subject: "); // $NON-NLS-1$
- cdata.append(message.getSubject());
- cdata.append(NEW_LINE);
-
- cdata.append(NEW_LINE);
- Object content = message.getContent();
- if (content instanceof MimeMultipart) {
- MimeMultipart mmp = (MimeMultipart) content;
- int count = mmp.getCount();
- cdata.append("Multipart. Count: ");
- cdata.append(count);
- cdata.append(NEW_LINE);
- for (int j=0; j<count;j++){
- BodyPart bodyPart = mmp.getBodyPart(j);
- cdata.append("Type: ");
- cdata.append(bodyPart.getContentType());
- cdata.append(NEW_LINE);
- try {
- cdata.append(bodyPart.getContent());
- } catch (UnsupportedEncodingException ex){
- cdata.append(ex.getLocalizedMessage());
- }
- cdata.append(NEW_LINE);
- }
+ if (isStoreMimeMessage()) {
+ appendMessageAsMime(cdata, message);
} else {
- cdata.append(content);
- cdata.append(NEW_LINE);
+ appendMessageData(cdata, message);
}
if (deleteMessages) {
@@ -232,6 +187,67 @@
parent.setSuccessful(isOK);
return parent;
}
+
+ private void appendMessageData(StringBuffer cdata, Message message)
+ throws MessagingException, IOException {
+ cdata.append("Date: "); // $NON-NLS-1$
+ cdata.append(message.getSentDate());// TODO - use a different format here?
+ cdata.append(NEW_LINE);
+
+ cdata.append("To: "); // $NON-NLS-1$
+ Address[] recips = message.getAllRecipients();
+ for (int j = 0; j < recips.length; j++) {
+ cdata.append(recips[j].toString());
+ if (j < recips.length - 1) {
+ cdata.append("; "); // $NON-NLS-1$
+ }
+ }
+ cdata.append(NEW_LINE);
+
+ cdata.append("From: "); // $NON-NLS-1$
+ Address[] from = message.getFrom();
+ for (int j = 0; j < from.length; j++) {
+ cdata.append(from[j].toString());
+ if (j < from.length - 1) {
+ cdata.append("; "); // $NON-NLS-1$
+ }
+ }
+ cdata.append(NEW_LINE);
+
+ cdata.append("Subject: "); // $NON-NLS-1$
+ cdata.append(message.getSubject());
+ cdata.append(NEW_LINE);
+
+ cdata.append(NEW_LINE);
+ Object content = message.getContent();
+ if (content instanceof MimeMultipart) {
+ MimeMultipart mmp = (MimeMultipart) content;
+ int count = mmp.getCount();
+ cdata.append("Multipart. Count: ");
+ cdata.append(count);
+ cdata.append(NEW_LINE);
+ for (int j=0; j<count;j++){
+ BodyPart bodyPart = mmp.getBodyPart(j);
+ cdata.append("Type: ");
+ cdata.append(bodyPart.getContentType());
+ cdata.append(NEW_LINE);
+ try {
+ cdata.append(bodyPart.getContent());
+ } catch (UnsupportedEncodingException ex){
+ cdata.append(ex.getLocalizedMessage());
+ }
+ }
+ } else {
+ cdata.append(content);
+ }
+ }
+
+ private void appendMessageAsMime(StringBuffer cdata, Message message)
+ throws MessagingException, IOException {
+ ByteArrayOutputStream bout = new ByteArrayOutputStream();
+ message.writeTo(bout);
+ cdata.append(bout);
+ }
/**
* Sets the type of protocol to use when talking with the remote mail
@@ -363,4 +379,21 @@
public boolean getDeleteMessages() {
return getPropertyAsBoolean(DELETE);
}
+
+ /**
+ * @return Whether or not to store the retrieved message as MIME message in
+ * the sample result
+ */
+ public boolean isStoreMimeMessage() {
+ return getPropertyAsBoolean(STORE_MIME_MESSAGE, false);
+ }
+
+ /**
+ * @param storeMimeMessage
+ * Whether or not to store the retrieved message as MIME message in the
+ * sample result
+ */
+ public void setStoreMimeMessage(boolean storeMimeMessage) {
+ setProperty(STORE_MIME_MESSAGE, storeMimeMessage, false);
+ }
}
Modified: jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/mail/sampler/gui/MailReaderSamplerGui.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/mail/sampler/gui/MailReaderSamplerGui.java?rev=672077&r1=672076&r2=672077&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/mail/sampler/gui/MailReaderSamplerGui.java (original)
+++ jakarta/jmeter/trunk/src/protocol/mail/org/apache/jmeter/protocol/mail/sampler/gui/MailReaderSamplerGui.java Thu Jun 26 19:15:01 2008
@@ -60,6 +60,8 @@
private JTextField someMessagesField;
private JCheckBox deleteBox;
+
+ private JCheckBox storeMimeMessageBox;
// Labels
private final static String POP3Label = JMeterUtils.getResString("mail_reader_pop3");// $NON-NLS-1$
@@ -86,6 +88,8 @@
private final static String FolderLabel = JMeterUtils.getResString("mail_reader_folder");// $NON-NLS-1$
+ private final static String STOREMIME = JMeterUtils.getResString("mail_reader_storemime");// $NON-NLS-1$
+
private static final String INBOX = "INBOX"; // $NON-NLS-1$
public MailReaderSamplerGui() {
@@ -128,6 +132,7 @@
someMessagesField.setText(mrs.getNumMessagesString());
}
deleteBox.setSelected(mrs.getDeleteMessages());
+ storeMimeMessageBox.setSelected(mrs.isStoreMimeMessage());
super.configure(element);
}
@@ -175,6 +180,7 @@
mrs.setNumMessages(someMessagesField.getText());
}
mrs.setDeleteMessages(deleteBox.isSelected());
+ mrs.setStoreMimeMessage(storeMimeMessageBox.isSelected());
}
// TODO - fix GUI layout problems
@@ -266,6 +272,9 @@
deleteBox = new JCheckBox(DeleteLabel);
add(deleteBox);
+
+ storeMimeMessageBox = new JCheckBox(STOREMIME);
+ add(storeMimeMessageBox);
}
public void clearGui() {
@@ -278,9 +287,11 @@
//someMessagesButton.setSelected(false);
//someMessagesField.setText("0");
deleteBox.setSelected(false);
+ storeMimeMessageBox.setSelected(false);
folderBox.setText(INBOX);
- passwordBox.setText("");
- serverBox.setText("");
- usernameBox.setText("");
+ serverTypeBox.setSelectedIndex(0);
+ passwordBox.setText("");// $NON-NLS-1$
+ serverBox.setText("");// $NON-NLS-1$
+ usernameBox.setText("");// $NON-NLS-1$
}
}
Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=672077&r1=672076&r2=672077&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Thu Jun 26 19:15:01 2008
@@ -86,6 +86,7 @@
<li>Add OUT variable to jexl function</li>
<li>Save Responses to a file can save the generated filename(s) to variables.</li>
<li>Add BSF Listener element</li>
+<li>Bug 45200 - MailReaderSampler: store the whole MIME message in the SamplerResult</li>
</ul>
<h3>Non-functional changes</h3>
Modified: jakarta/jmeter/trunk/xdocs/images/screenshots/mailreader_sampler.png
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/images/screenshots/mailreader_sampler.png?rev=672077&r1=672076&r2=672077&view=diff
==============================================================================
Binary files - no diff available.
Modified: jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml?rev=672077&r1=672076&r2=672077&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml (original)
+++ jakarta/jmeter/trunk/xdocs/usermanual/component_reference.xml Thu Jun 26 19:15:01 2008
@@ -1201,8 +1201,27 @@
</properties>
</component>
-<component name="Mail Reader Sampler" index="§-num;.1.17" width="344" height="318" screenshot="mailreader_sampler.png">
-<description>TBA</description>
+<component name="Mail Reader Sampler" index="§-num;.1.17" width="340" height="365" screenshot="mailreader_sampler.png">
+<description>
+<p>
+The Mail Reader Sampler can read (and optionally delete) mail messages using POP3(S) or IMAP(S) protocols.
+</p>
+<note>
+The sampler requires the JavaMail and JAF jars to be available on the classpath.
+To use POP3S or IMAPS requires a recent version of JavaMail (e.g. JavaMail 1.4.1 and JAF 1.1.1).
+</note>
+</description>
+<properties>
+<property name="Name" required="">Descriptive name for this element that is shown in the tree.</property>
+<property name="Server Type" required="Yes">The protocol used by the server: POP3, POP3S, IMAP, IMAPS</property>
+<property name="Server" required="Yes">Hostname or IP address of the server</property>
+<property name="Username" required="">User login name</property>
+<property name="Password" required="">User login password (N.B. this is stored unencrypted in the test plan)</property>
+<property name="Folder" required="Yes, if using IMAP(S)">The IMAP(S) folder to use</property>
+<property name="Number of messages to retrieve" required="Yes">Set this to retrieve all or some messages</property>
+<property name="Delete messages from the server" required="Yes">If set, messages will be deleted after retrieval</property>
+<property name="Store the message using MIME" required="Yes">Whether to store the message as MIME. If not, fewer headers are stored (Date, To, From, Subject).</property>
+</properties>
</component>
<component name="Test Action" index="§-num;.1.18" width="351" height="182" screenshot="test_action.png">
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org