[prev in list] [next in list] [prev in thread] [next in thread]
List: james-dev
Subject: svn commit: r438486 - in
From: berndf () apache ! org
Date: 2006-08-30 14:07:16
Message-ID: 20060830140720.88D171A981A () eris ! apache ! org
[Download RAW message or body]
Author: berndf
Date: Wed Aug 30 07:07:15 2006
New Revision: 438486
URL: http://svn.apache.org/viewvc?rev=438486&view=rev
Log:
Ignore test mails found from previous runs (see jira POSTAGE-10)
Modified:
james/postage/trunk/src/main/java/org/apache/james/postage/PostageRunner.java
james/postage/trunk/src/main/java/org/apache/james/postage/client/POP3Client.java
james/postage/trunk/src/main/java/org/apache/james/postage/client/SMTPClient.java
james/postage/trunk/src/main/java/org/apache/james/postage/jmx/JVMResourceSampler.java
james/postage/trunk/src/main/java/org/apache/james/postage/mail/DefaultMailFactory.java
james/postage/trunk/src/main/java/org/apache/james/postage/mail/HeaderConstants.java
james/postage/trunk/src/main/java/org/apache/james/postage/result/MailProcessingRecord.java
james/postage/trunk/src/main/java/org/apache/james/postage/smtpserver/SimpleMailServer.java
Modified: james/postage/trunk/src/main/java/org/apache/james/postage/PostageRunner.java
URL: http://svn.apache.org/viewvc/james/postage/trunk/src/main/java/org/apache/james/postage/PostageRunner.java?rev=438486&r1=438485&r2=438486&view=diff
==============================================================================
--- james/postage/trunk/src/main/java/org/apache/james/postage/PostageRunner.java \
(original)
+++ james/postage/trunk/src/main/java/org/apache/james/postage/PostageRunner.java Wed \
Aug 30 07:07:15 2006 @@ -74,6 +74,17 @@
private int m_minutesRunning = 0;
/**
+ * defines the prefix for every mail id generated by the current runner, so they \
can be distinguished from + * next runs. the runner instance is responsable to \
initializing this value! + * NOTE: this construct becomes a problem when two \
runners are running in parallel + */
+ private static String m_messageIdPrefix = null;
+
+ public static String getMessageIdPrefix() {
+ return m_messageIdPrefix + "-";
+ }
+
+ /**
* sends messages to James in two ways:
* 1. internal users relay to internal or external users using (inbound) SMTP
* 2. external users send mail to internal users using (inbound) SMTP
@@ -85,7 +96,9 @@
* @param postageConfiguration
*/
public PostageRunner(PostageConfiguration postageConfiguration) {
- m_postageConfiguration = postageConfiguration;
+ m_messageIdPrefix = "" + System.currentTimeMillis();
+
+ m_postageConfiguration = postageConfiguration;
int totalMailsPerMin = m_postageConfiguration.getTotalMailsPerMin();
int durationMinutes = m_postageConfiguration.getDurationMinutes();
Modified: james/postage/trunk/src/main/java/org/apache/james/postage/client/POP3Client.java
URL: http://svn.apache.org/viewvc/james/postage/trunk/src/main/java/org/apache/james/postage/client/POP3Client.java?rev=438486&r1=438485&r2=438486&view=diff
==============================================================================
--- james/postage/trunk/src/main/java/org/apache/james/postage/client/POP3Client.java \
(original)
+++ james/postage/trunk/src/main/java/org/apache/james/postage/client/POP3Client.java \
Wed Aug 30 07:07:15 2006 @@ -28,7 +28,7 @@
import org.apache.james.postage.SamplingException;
import org.apache.james.postage.StartupException;
import org.apache.james.postage.execution.Sampler;
-import org.apache.james.postage.mail.HeaderConstants;
+import org.apache.james.postage.mail.MailMatchingUtils;
import org.apache.james.postage.result.MailProcessingRecord;
import org.apache.james.postage.result.PostageRunnerResult;
import org.apache.james.postage.user.UserList;
@@ -42,7 +42,6 @@
import java.io.InputStream;
import java.io.Reader;
import java.util.Iterator;
-import java.util.List;
public class POP3Client implements Sampler {
@@ -117,8 +116,6 @@
try {
org.apache.commons.net.pop3.POP3Client pop3Client = \
openConnection(username);
-
-
// retrieve all messages
POP3MessageInfo[] entries = null;
try {
@@ -173,19 +170,9 @@
InputStream in = new ReaderInputStream(mailReader);
MimeMessage message;
- String id = null;
try {
message = new MimeMessage(null, in);
in.close();
-
- String[] idHeaders = message.getHeader(HeaderConstants.MAIL_ID_HEADER);
- if (idHeaders != null && idHeaders.length > 0) {
- id = idHeaders[0]; // there should be exactly one.
- }
- if (id == null) {
- log.info("skipping non-postage mail. remains on server. subject was: \
" + message.getSubject());
- return;
- }
} catch (IOException e) {
log.info("failed to close mail reader.");
return;
@@ -194,6 +181,10 @@
return;
}
+
+ if (!MailMatchingUtils.isMatchCandidate(message)) return;
+
+ String id = MailMatchingUtils.getMailIdHeader(message);
try {
mailProcessingRecord.setByteReceivedTotal(message.getSize());
Modified: james/postage/trunk/src/main/java/org/apache/james/postage/client/SMTPClient.java
URL: http://svn.apache.org/viewvc/james/postage/trunk/src/main/java/org/apache/james/postage/client/SMTPClient.java?rev=438486&r1=438485&r2=438486&view=diff
==============================================================================
--- james/postage/trunk/src/main/java/org/apache/james/postage/client/SMTPClient.java \
(original)
+++ james/postage/trunk/src/main/java/org/apache/james/postage/client/SMTPClient.java \
Wed Aug 30 07:07:15 2006 @@ -22,6 +22,7 @@
import org.apache.james.postage.SamplingException;
import org.apache.james.postage.StartupException;
+import org.apache.james.postage.mail.HeaderConstants;
import org.apache.james.postage.configuration.MailSender;
import org.apache.james.postage.execution.Sampler;
import org.apache.james.postage.result.MailProcessingRecord;
@@ -62,6 +63,7 @@
MailProcessingRecord proformaMailProcessingRecord = new \
MailProcessingRecord(); Session session = getMailSession();
+ proformaMailProcessingRecord.setMailId(HeaderConstants.JAMES_POSTAGE_STARTUPCHECK_HEADER_ID);
Message message = m_mailSender.createMail(session, \
proformaMailProcessingRecord); setMailFromAndTo(message, \
proformaMailProcessingRecord); Transport.send(message);
Modified: james/postage/trunk/src/main/java/org/apache/james/postage/jmx/JVMResourceSampler.java
URL: http://svn.apache.org/viewvc/james/postage/trunk/src/main/java/org/apache/james/postage/jmx/JVMResourceSampler.java?rev=438486&r1=438485&r2=438486&view=diff
==============================================================================
--- james/postage/trunk/src/main/java/org/apache/james/postage/jmx/JVMResourceSampler.java \
(original)
+++ james/postage/trunk/src/main/java/org/apache/james/postage/jmx/JVMResourceSampler.java \
Wed Aug 30 07:07:15 2006 @@ -83,7 +83,7 @@
public void connectRemoteJamesJMXServer() throws SamplingException {
if(jvmResourceSampleWorker == null) throw new SamplingException("JSE \
specific features not present. (compile the project with JSE 5)"); try {
- m_connectMethod.invoke(jvmResourceSampleWorker, VOID_ARGUMENT_LIST);
+ m_connectMethod.invoke(jvmResourceSampleWorker, \
(Object[])VOID_ARGUMENT_LIST); } catch (Exception e) {
throw new SamplingException("could not establish connection to remote \
James JMX. is James really configured for JMX and running under JSE5 or later?"); }
@@ -92,7 +92,7 @@
public void doSample() throws SamplingException {
if(jvmResourceSampleWorker == null) throw new SamplingException("JSE \
specific features not present. (compile the project with JSE 5)"); try {
- m_doSampleMethod.invoke(jvmResourceSampleWorker, VOID_ARGUMENT_LIST);
+ m_doSampleMethod.invoke(jvmResourceSampleWorker, \
(Object[])VOID_ARGUMENT_LIST); } catch (Exception e) {
throw new SamplingException(e);
}
Modified: james/postage/trunk/src/main/java/org/apache/james/postage/mail/DefaultMailFactory.java
URL: http://svn.apache.org/viewvc/james/postage/trunk/src/main/java/org/apache/james/postage/mail/DefaultMailFactory.java?rev=438486&r1=438485&r2=438486&view=diff
==============================================================================
--- james/postage/trunk/src/main/java/org/apache/james/postage/mail/DefaultMailFactory.java \
(original)
+++ james/postage/trunk/src/main/java/org/apache/james/postage/mail/DefaultMailFactory.java \
Wed Aug 30 07:07:15 2006 @@ -63,6 +63,10 @@
if (mailProcessingRecord.getMailId() != null) {
message.addHeader(HeaderConstants.MAIL_ID_HEADER, \
mailProcessingRecord.getMailId()); + } else {
+ // TODO resolve situations when ID is null
+ log.warn("ID header is NULL!");
+ throw new RuntimeException("could not create mail with ID = NULL");
}
if (mailSender.sendTextPart()) {
Modified: james/postage/trunk/src/main/java/org/apache/james/postage/mail/HeaderConstants.java
URL: http://svn.apache.org/viewvc/james/postage/trunk/src/main/java/org/apache/james/postage/mail/HeaderConstants.java?rev=438486&r1=438485&r2=438486&view=diff
==============================================================================
--- james/postage/trunk/src/main/java/org/apache/james/postage/mail/HeaderConstants.java \
(original)
+++ james/postage/trunk/src/main/java/org/apache/james/postage/mail/HeaderConstants.java \
Wed Aug 30 07:07:15 2006 @@ -26,4 +26,6 @@
public class HeaderConstants {
public static final String MAIL_ID_HEADER = "X-James-Postage-Count";
public static final String JAMES_POSTAGE_HEADER = "X-James-Postage";
+
+ public static final String JAMES_POSTAGE_STARTUPCHECK_HEADER_ID = "PROFORMA";
}
Modified: james/postage/trunk/src/main/java/org/apache/james/postage/result/MailProcessingRecord.java
URL: http://svn.apache.org/viewvc/james/postage/trunk/src/main/java/org/apache/james/postage/result/MailProcessingRecord.java?rev=438486&r1=438485&r2=438486&view=diff
==============================================================================
--- james/postage/trunk/src/main/java/org/apache/james/postage/result/MailProcessingRecord.java \
(original)
+++ james/postage/trunk/src/main/java/org/apache/james/postage/result/MailProcessingRecord.java \
Wed Aug 30 07:07:15 2006 @@ -20,6 +20,8 @@
package org.apache.james.postage.result;
+import org.apache.james.postage.PostageRunner;
+
/**
* contains all gathered data concerning one mail message
*/
@@ -37,8 +39,8 @@
String senderMailAddress;
String receiver;
String receiverMailAddress;
- long timeSendStart;
long timeSendEnd;
+ long timeSendStart;
long byteSendText;
long byteSendBinary;
int errorNumberSending;
@@ -54,7 +56,7 @@
String receivingQueue;
public synchronized static String getNextId() {
- return "" + (m_messageId++);
+ return PostageRunner.getMessageIdPrefix() + (m_messageId++);
}
public boolean isMatchedSentAndReceived() {
Modified: james/postage/trunk/src/main/java/org/apache/james/postage/smtpserver/SimpleMailServer.java
URL: http://svn.apache.org/viewvc/james/postage/trunk/src/main/java/org/apache/james/postage/smtpserver/SimpleMailServer.java?rev=438486&r1=438485&r2=438486&view=diff
==============================================================================
--- james/postage/trunk/src/main/java/org/apache/james/postage/smtpserver/SimpleMailServer.java \
(original)
+++ james/postage/trunk/src/main/java/org/apache/james/postage/smtpserver/SimpleMailServer.java \
Wed Aug 30 07:07:15 2006 @@ -25,6 +25,7 @@
import org.apache.james.postage.result.MailProcessingRecord;
import org.apache.james.postage.result.PostageRunnerResult;
import org.apache.james.postage.mail.HeaderConstants;
+import org.apache.james.postage.mail.MailMatchingUtils;
import org.apache.james.services.MailRepository;
import org.apache.james.services.MailServer;
import org.apache.mailet.Mail;
@@ -58,12 +59,10 @@
mailProcessingRecord.setByteReceivedTotal(msg.getSize());
try {
- String[] id = msg.getHeader(HeaderConstants.MAIL_ID_HEADER);
- if (id == null || id.length == 0 ) {
- log.info("skipping non-postage mail. message is lost. subject was: " \
+ msg.getSubject());
- return;
- }
- mailProcessingRecord.setMailId(id[0]);
+ if (!MailMatchingUtils.isMatchCandidate(msg)) return;
+
+ String id = MailMatchingUtils.getMailIdHeader(msg);
+ mailProcessingRecord.setMailId(id);
String[] subjectHeader = msg.getHeader("Subject");
if (subjectHeader != null && subjectHeader.length > 0) {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic