[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