You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2006/07/11 14:25:38 UTC

svn commit: r420818 - in /james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver: ./ basefilter/ fastfailfilter/

Author: norman
Date: Tue Jul 11 05:25:36 2006
New Revision: 420818

URL: http://svn.apache.org/viewvc?rev=420818&view=rev
Log:
Revert replacing interfaces with abstract classes.

Added:
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/CommandHandler.java
      - copied unchanged from r419170, james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/CommandHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/ConnectHandler.java
      - copied unchanged from r419229, james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/ConnectHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/MessageHandler.java
      - copied unchanged from r419229, james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/MessageHandler.java
Removed:
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/AbstractConnectHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/AbstractGeneralHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/AbstractMessageHandler.java
Modified:
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/AbstractCommandHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/AuthCmdHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/DNSRBLHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/DataCmdHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/EhloCmdHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/ExpnCmdHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/HeloCmdHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/HelpCmdHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/MailCmdHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/NoopCmdHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/QuitCmdHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/RcptCmdHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/RsetCmdHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SMTPHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SMTPHandlerChain.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SMTPSession.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SendMailHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SetMimeHeaderHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/UnknownCmdHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/VrfyCmdHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/DataBaseFilterCmdHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/EhloBaseFilterCmdHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/HeloBaseFilterCmdHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/MailBaseFilterCmdHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/RcptBaseFilterCmdHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/MaxRcptHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/ResolvableEhloHeloHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/ReverseEqualsEhloHeloHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/TarpitHandler.java
    james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/ValidSenderDomainHandler.java

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/AbstractCommandHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/AbstractCommandHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/AbstractCommandHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/AbstractCommandHandler.java Tue Jul 11 05:25:36 2006
@@ -19,14 +19,38 @@
 
 import java.util.List;
 
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+
 /**
  * Custom CommandHandlers must extend this class.
  */
-public abstract class AbstractCommandHandler extends AbstractGeneralHandler {
+public abstract class AbstractCommandHandler extends AbstractLogEnabled {
 
     /**
+     * If set to true all handler processing is stopped (fastfail)
+     */
+    private boolean stopHandlerProcessing = false;
+    
+    
+    /**
+     * Method to set if a after the handler no other command handlers should processed
+     * @param stopHandlerProcessing true or false
+     */
+    public void setStopHandlerProcessing(boolean stopHandlerProcessing) {
+        this.stopHandlerProcessing = stopHandlerProcessing;
+    }
+    
+    /**
+     * Return if the processing of other commandHandlers should be done
+     * @return true or false
+     */
+    public boolean stopHandlerProcessing() {
+        return stopHandlerProcessing;
+    }
+    
+    /**
      * Handle the command
-     **/
+    **/
     public abstract void onCommand(SMTPSession session);
 
     /**
@@ -35,5 +59,5 @@
      * @return List which contains implemented commands
      */
     public abstract List getImplCommands();
-
+    
 }

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/AuthCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/AuthCmdHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/AuthCmdHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/AuthCmdHandler.java Tue Jul 11 05:25:36 2006
@@ -17,21 +17,23 @@
 
 package org.apache.james.smtpserver;
 
-import java.io.IOException;
+import org.apache.james.util.mail.dsn.DSNStatus;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
 import java.util.StringTokenizer;
-
 import org.apache.james.util.Base64;
-import org.apache.james.util.mail.dsn.DSNStatus;
+import java.io.IOException;
 
 
 /**
   * handles AUTH command
   */
 public class AuthCmdHandler
-    extends AbstractCommandHandler {
+    extends AbstractLogEnabled
+    implements CommandHandler {
 
     /**
      * The text string for the SMTP AUTH type PLAIN.

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/DNSRBLHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/DNSRBLHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/DNSRBLHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/DNSRBLHandler.java Tue Jul 11 05:25:36 2006
@@ -17,25 +17,33 @@
 
 package org.apache.james.smtpserver;
 
-import java.net.Socket;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.Serviceable;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.Configurable;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.james.services.DNSServer;
+
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.StringTokenizer;
 
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-
 /**
   * Connect handler for DNSRBL processing
   */
 public class DNSRBLHandler
-    extends AbstractConnectHandler {
+    extends AbstractLogEnabled
+    implements ConnectHandler, Configurable, Serviceable {
     /**
      * The lists of rbl servers to be checked to limit spam
      */
     private String[] whitelist;
     private String[] blacklist;
     
+    private DNSServer dnsServer = null;
+    
     private boolean getDetail = false;
 
     /**
@@ -83,6 +91,12 @@
 
     }
 
+    /**
+     * @see org.apache.avalon.framework.service.Serviceable#service(ServiceManager)
+     */
+    public void service(ServiceManager serviceMan) throws ServiceException {
+        setDNSServer((DNSServer) serviceMan.lookup(DNSServer.ROLE));
+    }
     
     /*
      * check if the remote Ip address is block listed
@@ -112,6 +126,14 @@
         this.blacklist = blacklist;
     }
     
+    /**
+     * Set the DNSServer
+     * 
+     * @param dnsServer The DNSServer
+     */
+    public void setDNSServer(DNSServer dnsServer) {
+        this.dnsServer = dnsServer;
+    }
 
     /**
      * Set for try to get a TXT record for the blocked record. 
@@ -154,7 +176,7 @@
             if (whitelist != null) {
                 String[] rblList = whitelist;
                 for (int i = 0 ; i < rblList.length ; i++) try {
-                    getDnsServer().getByName(reversedOctets + rblList[i]);
+                    dnsServer.getByName(reversedOctets + rblList[i]);
                     if (getLogger().isInfoEnabled()) {
                         getLogger().info("Connection from " + ipAddress + " whitelisted by " + rblList[i]);
                     }
@@ -169,14 +191,14 @@
             if (blacklist != null) {
                 String[] rblList = blacklist;
                 for (int i = 0 ; i < rblList.length ; i++) try {
-                    getDnsServer().getByName(reversedOctets + rblList[i]);
+                    dnsServer.getByName(reversedOctets + rblList[i]);
                     if (getLogger().isInfoEnabled()) {
                         getLogger().info("Connection from " + ipAddress + " restricted by " + rblList[i] + " to SMTP AUTH/postmaster/abuse.");
                     }
                     
                     // we should try to retrieve details
                     if (getDetail) {
-                        Collection txt = getDnsServer().findTXTRecords(reversedOctets + rblList[i]);
+                        Collection txt = dnsServer.findTXTRecords(reversedOctets + rblList[i]);
                         
                         // Check if we found a txt record
                         if (!txt.isEmpty()) {

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/DataCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/DataCmdHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/DataCmdHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/DataCmdHandler.java Tue Jul 11 05:25:36 2006
@@ -17,19 +17,7 @@
 
 package org.apache.james.smtpserver;
 
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.SequenceInputStream;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.Enumeration;
-import java.util.List;
-
-import javax.mail.MessagingException;
-
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
 import org.apache.james.Constants;
 import org.apache.james.core.MailHeaders;
 import org.apache.james.core.MailImpl;
@@ -42,12 +30,26 @@
 import org.apache.mailet.RFC2822Headers;
 import org.apache.mailet.dates.RFC822DateFormat;
 
+import javax.mail.MessagingException;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.SequenceInputStream;
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.Enumeration;
+import java.util.List;
+
 
 /**
   * handles DATA command
  */
 public class DataCmdHandler
-    extends AbstractCommandHandler {
+    extends AbstractLogEnabled
+    implements CommandHandler {
 
     private final static String SOFTWARE_TYPE = "JAMES SMTP Server "
                                                  + Constants.SOFTWARE_VERSION;

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/EhloCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/EhloCmdHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/EhloCmdHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/EhloCmdHandler.java Tue Jul 11 05:25:36 2006
@@ -20,10 +20,13 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+
 /**
  * Handles EHLO command
  */
-public class EhloCmdHandler extends AbstractCommandHandler {
+public class EhloCmdHandler extends AbstractLogEnabled implements
+        CommandHandler {
 
     /**
      * The name of the command handled by the command handler

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/ExpnCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/ExpnCmdHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/ExpnCmdHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/ExpnCmdHandler.java Tue Jul 11 05:25:36 2006
@@ -25,7 +25,7 @@
 /**
   * Handles EXPN command
   */
-public class ExpnCmdHandler extends AbstractCommandHandler {
+public class ExpnCmdHandler implements CommandHandler {
 
     /**
      * The name of the command handled by the command handler

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/HeloCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/HeloCmdHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/HeloCmdHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/HeloCmdHandler.java Tue Jul 11 05:25:36 2006
@@ -21,11 +21,13 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+
 
 /**
   * Handles HELO command
   */
-public class HeloCmdHandler extends AbstractCommandHandler {
+public class HeloCmdHandler extends AbstractLogEnabled implements CommandHandler {
 
     /**
      * The name of the command handled by the command handler

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/HelpCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/HelpCmdHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/HelpCmdHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/HelpCmdHandler.java Tue Jul 11 05:25:36 2006
@@ -25,7 +25,7 @@
 /**
   * Handles HELP command
   */
-public class HelpCmdHandler extends AbstractCommandHandler {
+public class HelpCmdHandler implements CommandHandler {
     /**
      * The name of the command handled by the command handler
      */

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/MailCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/MailCmdHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/MailCmdHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/MailCmdHandler.java Tue Jul 11 05:25:36 2006
@@ -20,6 +20,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
 import org.apache.james.util.mail.dsn.DSNStatus;
 import org.apache.mailet.MailAddress;
 
@@ -27,7 +28,8 @@
   * Handles MAIL command
   */
 public class MailCmdHandler
-    extends AbstractCommandHandler{
+    extends AbstractLogEnabled
+    implements CommandHandler {
 
     
     /**

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/NoopCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/NoopCmdHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/NoopCmdHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/NoopCmdHandler.java Tue Jul 11 05:25:36 2006
@@ -25,7 +25,7 @@
 /**
   * Handles NOOP command
   */
-public class NoopCmdHandler extends AbstractCommandHandler {
+public class NoopCmdHandler implements CommandHandler {
 
     /**
      * The name of the command handled by the command handler

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/QuitCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/QuitCmdHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/QuitCmdHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/QuitCmdHandler.java Tue Jul 11 05:25:36 2006
@@ -25,7 +25,7 @@
 /**
   * Handles QUIT command
   */
-public class QuitCmdHandler extends AbstractCommandHandler {
+public class QuitCmdHandler implements CommandHandler {
 
     /**
      * The name of the command handled by the command handler

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/RcptCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/RcptCmdHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/RcptCmdHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/RcptCmdHandler.java Tue Jul 11 05:25:36 2006
@@ -21,13 +21,15 @@
 import java.util.Collection;
 import java.util.List;
 
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
 import org.apache.james.util.mail.dsn.DSNStatus;
 import org.apache.mailet.MailAddress;
 
 /**
   * Handles RCPT command
   */
-public class RcptCmdHandler extends AbstractCommandHandler {
+public class RcptCmdHandler extends AbstractLogEnabled implements
+        CommandHandler {
 
     /**
      * handles RCPT command

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/RsetCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/RsetCmdHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/RsetCmdHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/RsetCmdHandler.java Tue Jul 11 05:25:36 2006
@@ -25,7 +25,7 @@
 /**
   * Handles RSET command
   */
-public class RsetCmdHandler extends AbstractCommandHandler {
+public class RsetCmdHandler implements CommandHandler {
     /**
      * The name of the command handled by the command handler
      */

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SMTPHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SMTPHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SMTPHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SMTPHandler.java Tue Jul 11 05:25:36 2006
@@ -158,6 +158,8 @@
      * The per-handler response buffer used to marshal responses.
      */
     private StringBuffer responseBuffer = new StringBuffer(256);
+    
+    private boolean stopHandlerProcessing = false;
 
     /**
      * Set the configuration data for the handler
@@ -232,12 +234,8 @@
         if(connectHandlers != null) {
             int count = connectHandlers.size();
             for(int i = 0; i < count; i++) {
-                AbstractConnectHandler aHandler = (AbstractConnectHandler)connectHandlers.get(i);
-                aHandler.setStopHandlerProcessing(false);
-                aHandler.onConnect(this);
-                boolean stopHandlerProcessing = aHandler.stopHandlerProcessing();
-
-                if(sessionEnded || stopHandlerProcessing) {
+                ((ConnectHandler)connectHandlers.get(i)).onConnect(this);
+                if(sessionEnded) {
                     break;
                 }
             }
@@ -272,15 +270,13 @@
           } else {
               int count = commandHandlers.size();
               for(int i = 0; i < count; i++) {
-                  AbstractCommandHandler aHandler = (AbstractCommandHandler)commandHandlers.get(i);
-                  aHandler.setStopHandlerProcessing(false);
-                  aHandler.onCommand(this);
-                  boolean stopHandlerProcessing = aHandler.stopHandlerProcessing();
+                  setStopHandlerProcessing(false);
+                  ((CommandHandler)commandHandlers.get(i)).onCommand(this);
                   
                   theWatchdog.reset();
                   
                   //if the response is received, stop processing of command handlers
-                  if(mode != COMMAND_MODE || stopHandlerProcessing) {
+                  if(mode != COMMAND_MODE || getStopHandlerProcessing()) {
                       break;
                   }
               }
@@ -293,13 +289,9 @@
               List messageHandlers = handlerChain.getMessageHandlers();
               int count = messageHandlers.size();
               for(int i =0; i < count; i++) {
-                  AbstractMessageHandler aHandler = (AbstractMessageHandler)messageHandlers.get(i);
-                  aHandler.setStopHandlerProcessing(false);
-                  aHandler.onMessage(this);
-                  boolean stopHandlerProcessing = aHandler.stopHandlerProcessing();
-
+                  ((MessageHandler)messageHandlers.get(i)).onMessage(this);
                   //if the response is received, stop processing of command handlers
-                  if(mode == MESSAGE_ABORT_MODE || stopHandlerProcessing) {
+                  if(mode == MESSAGE_ABORT_MODE) {
                       break;
                   }
               }
@@ -579,4 +571,19 @@
 
         return count;
     }
+    
+    /**
+     * @see org.apache.james.smtpserver.SMTPSession#setStopHandlerProcessing(boolean)
+     */
+    public void setStopHandlerProcessing(boolean stopHandlerProcessing) {
+        this.stopHandlerProcessing = stopHandlerProcessing;
+    }
+    
+    /**
+     * @see org.apache.james.smtpserver.SMTPSession#getStopHandlerProcessing()
+     */
+    public boolean getStopHandlerProcessing() {
+        return stopHandlerProcessing;
+    }
+
 }

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SMTPHandlerChain.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SMTPHandlerChain.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SMTPHandlerChain.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SMTPHandlerChain.java Tue Jul 11 05:25:36 2006
@@ -52,7 +52,7 @@
     private ArrayList messageHandlers = new ArrayList();
     private ArrayList connectHandlers = new ArrayList();
 
-    private final AbstractCommandHandler unknownHandler = new UnknownCmdHandler();
+    private final CommandHandler unknownHandler = new UnknownCmdHandler();
     private ServiceManager serviceManager;
     private Context context;
     
@@ -212,8 +212,8 @@
             ContainerUtil.configure(handler, config);
 
             // if it is a connect handler add it to list of connect handlers
-            if (handler instanceof AbstractConnectHandler) {
-                connectHandlers.add((AbstractConnectHandler) handler);
+            if (handler instanceof ConnectHandler) {
+                connectHandlers.add((ConnectHandler) handler);
                 if (getLogger().isInfoEnabled()) {
                     getLogger().info("Added ConnectHandler: " + className);
                 }
@@ -242,17 +242,17 @@
 
             // if it is a command handler add it to the map with key as command
             // name
-            if (handler instanceof AbstractCommandHandler) {
+            if (handler instanceof CommandHandler) {
                 String commandName = config.getAttribute("command");
                 String cmds[] = commandName.split(",");
-                List implCmds = ((AbstractCommandHandler) handler).getImplCommands();
+                List implCmds = ((CommandHandler) handler).getImplCommands();
 
                 for (int i = 0; i < cmds.length; i++) {
                     commandName = cmds[i].trim().toUpperCase(Locale.US);
 
                     // Check if the commandHandler implement the configured command
                     if (implCmds.contains(commandName)) {
-                        addToMap(commandName, (AbstractCommandHandler) handler);
+                        addToMap(commandName, (CommandHandler) handler);
                         if (getLogger().isInfoEnabled()) {
                             getLogger().info(
                                     "Added Commandhandler: " + className);
@@ -269,8 +269,8 @@
             }
 
             // if it is a message handler add it to list of message handlers
-            if (handler instanceof AbstractMessageHandler) {
-                messageHandlers.add((AbstractMessageHandler) handler);
+            if (handler instanceof MessageHandler) {
+                messageHandlers.add((MessageHandler) handler);
                 if (getLogger().isInfoEnabled()) {
                     getLogger().info("Added MessageHandler: " + className);
                 }
@@ -333,7 +333,7 @@
      * @param commandName the command name which will be key
      * @param cmdHandler The commandhandler object
      */
-    private void addToMap(String commandName, AbstractCommandHandler cmdHandler) {
+    private void addToMap(String commandName, CommandHandler cmdHandler) {
         ArrayList handlers = (ArrayList)commandHandlerMap.get(commandName);
         if(handlers == null) {
             handlers = new ArrayList();

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SMTPSession.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SMTPSession.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SMTPSession.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SMTPSession.java Tue Jul 11 05:25:36 2006
@@ -241,5 +241,10 @@
      * @return recipient count
      */
     int getRcptCount();
+
+    void setStopHandlerProcessing(boolean b);
+    
+    boolean getStopHandlerProcessing();
+
 }
 

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SendMailHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SendMailHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SendMailHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SendMailHandler.java Tue Jul 11 05:25:36 2006
@@ -34,7 +34,8 @@
   * Adds the header to the message
   */
 public class SendMailHandler
-    extends AbstractMessageHandler {
+    extends AbstractLogEnabled
+    implements MessageHandler, Serviceable {
 
     private MailServer mailServer;
 
@@ -42,8 +43,6 @@
      * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
      */
     public void service(ServiceManager serviceManager) throws ServiceException {
-        
-        //TODO: Maybe we should move this to AbstractGeneralHandler
         mailServer = (MailServer) serviceManager.lookup(MailServer.ROLE);
     }
 

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SetMimeHeaderHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SetMimeHeaderHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SetMimeHeaderHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/SetMimeHeaderHandler.java Tue Jul 11 05:25:36 2006
@@ -28,7 +28,8 @@
   * Adds the header to the message
   */
 public class SetMimeHeaderHandler
-    extends AbstractMessageHandler {
+    extends AbstractLogEnabled
+    implements MessageHandler, Configurable {
 
     /**
      * The header name and value that needs to be added

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/UnknownCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/UnknownCmdHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/UnknownCmdHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/UnknownCmdHandler.java Tue Jul 11 05:25:36 2006
@@ -25,7 +25,7 @@
 /**
   * Default command handler for handling unknown commands
   */
-public class UnknownCmdHandler extends AbstractCommandHandler {
+public class UnknownCmdHandler implements CommandHandler {
 
     /**
      * The name of the command handled by the command handler

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/VrfyCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/VrfyCmdHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/VrfyCmdHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/VrfyCmdHandler.java Tue Jul 11 05:25:36 2006
@@ -25,9 +25,10 @@
 /**
   * Command handler for handling VRFY command
   */
-public class VrfyCmdHandler extends AbstractCommandHandler {
+public class VrfyCmdHandler implements CommandHandler {
 
     private final String COMMAND_NAME = "VRFY";
+    private boolean stopHandlerProcessing = true;
 
     /**
      * Handler method called upon receipt of a VRFY command.
@@ -50,4 +51,12 @@
         
         return implCommands;
     }
+
+    /**
+     * @see org.apache.james.smtpserver.CommandHandler#stopHandlerProcessing()
+     */
+    public boolean stopHandlerProcessing() {
+        return stopHandlerProcessing ;
+    }
+
 }

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/DataBaseFilterCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/DataBaseFilterCmdHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/DataBaseFilterCmdHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/DataBaseFilterCmdHandler.java Tue Jul 11 05:25:36 2006
@@ -20,7 +20,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.james.smtpserver.AbstractCommandHandler;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.james.smtpserver.CommandHandler;
 import org.apache.james.smtpserver.SMTPSession;
 import org.apache.james.util.mail.dsn.DSNStatus;
 
@@ -29,7 +30,8 @@
   * handles DATA command
  */
 public class DataBaseFilterCmdHandler
-    extends AbstractCommandHandler {
+    extends AbstractLogEnabled
+    implements CommandHandler {
 
     /**
      * process DATA command
@@ -58,14 +60,14 @@
             session.writeResponse(responseString);
             
             // After this filter match we should not call any other handler!
-            setStopHandlerProcessing(true);
+            session.setStopHandlerProcessing(true);
             
         } else if (!session.getState().containsKey(SMTPSession.RCPT_LIST)) {
             responseString = "503 "+DSNStatus.getStatus(DSNStatus.PERMANENT,DSNStatus.DELIVERY_OTHER)+" No recipients specified";
             session.writeResponse(responseString);
             
             // After this filter match we should not call any other handler!
-            setStopHandlerProcessing(true);
+            session.setStopHandlerProcessing(true);
         }
     }
     

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/EhloBaseFilterCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/EhloBaseFilterCmdHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/EhloBaseFilterCmdHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/EhloBaseFilterCmdHandler.java Tue Jul 11 05:25:36 2006
@@ -20,14 +20,15 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.james.smtpserver.AbstractCommandHandler;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.james.smtpserver.CommandHandler;
 import org.apache.james.smtpserver.SMTPSession;
 import org.apache.james.util.mail.dsn.DSNStatus;
 
 /**
   * Handles EHLO command
   */
-public class EhloBaseFilterCmdHandler extends AbstractCommandHandler {
+public class EhloBaseFilterCmdHandler extends AbstractLogEnabled implements CommandHandler {
 
     /**
      * The name of the command handled by the command handler
@@ -55,7 +56,7 @@
             session.writeResponse(responseString);
             
             // After this filter match we should not call any other handler!
-            setStopHandlerProcessing(true);
+            session.setStopHandlerProcessing(true);
         }
     }
     

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/HeloBaseFilterCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/HeloBaseFilterCmdHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/HeloBaseFilterCmdHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/HeloBaseFilterCmdHandler.java Tue Jul 11 05:25:36 2006
@@ -21,14 +21,15 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.james.smtpserver.AbstractCommandHandler;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.james.smtpserver.CommandHandler;
 import org.apache.james.smtpserver.SMTPSession;
 
 
 /**
   * Handles HELO command
   */
-public class HeloBaseFilterCmdHandler extends AbstractCommandHandler {
+public class HeloBaseFilterCmdHandler extends AbstractLogEnabled implements CommandHandler {
 
     /**
      * The name of the command handled by the command handler
@@ -57,7 +58,7 @@
             getLogger().info(responseString);
             
             // After this filter match we should not call any other handler!
-            setStopHandlerProcessing(true);
+            session.setStopHandlerProcessing(true);
          
         }
     }

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/MailBaseFilterCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/MailBaseFilterCmdHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/MailBaseFilterCmdHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/MailBaseFilterCmdHandler.java Tue Jul 11 05:25:36 2006
@@ -22,7 +22,8 @@
 import java.util.Locale;
 import java.util.StringTokenizer;
 
-import org.apache.james.smtpserver.AbstractCommandHandler;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.james.smtpserver.CommandHandler;
 import org.apache.james.smtpserver.SMTPSession;
 import org.apache.james.util.mail.dsn.DSNStatus;
 import org.apache.mailet.MailAddress;
@@ -31,7 +32,8 @@
   * Handles MAIL command
   */
 public class MailBaseFilterCmdHandler
-    extends AbstractCommandHandler {
+    extends AbstractLogEnabled
+    implements CommandHandler {
 
     private final static String MAIL_OPTION_SIZE = "SIZE";
 
@@ -65,14 +67,14 @@
             session.writeResponse(responseString);
             
             // After this filter match we should not call any other handler!
-            setStopHandlerProcessing(true);
+            session.setStopHandlerProcessing(true);
             
         } else if (!session.getState().containsKey(SMTPSession.CURRENT_HELO_MODE) && session.useHeloEhloEnforcement()) {
             responseString = "503 "+DSNStatus.getStatus(DSNStatus.PERMANENT,DSNStatus.DELIVERY_OTHER)+" Need HELO or EHLO before MAIL";
             session.writeResponse(responseString);
             
             // After this filter match we should not call any other handler!
-            setStopHandlerProcessing(true);
+            session.setStopHandlerProcessing(true);
             
         } else if (argument == null || !argument.toUpperCase(Locale.US).equals("FROM")
                    || sender == null) {
@@ -80,7 +82,7 @@
             session.writeResponse(responseString);
         
             // After this filter match we should not call any other handler!
-            setStopHandlerProcessing(true);
+            session.setStopHandlerProcessing(true);
             
         } else {
             sender = sender.trim();
@@ -137,7 +139,7 @@
                     getLogger().error(errorBuffer.toString());
                 }
                 // After this filter match we should not call any other handler!
-                setStopHandlerProcessing(true);
+                session.setStopHandlerProcessing(true);
                 
                 return;
             }
@@ -168,7 +170,7 @@
                     }
                     
                     // After this filter match we should not call any other handler!
-                    setStopHandlerProcessing(true);
+                    session.setStopHandlerProcessing(true);
                     
                     return;
                 }
@@ -198,7 +200,7 @@
             getLogger().error("Rejected syntactically incorrect value for SIZE parameter.");
             
             // After this filter match we should not call any other handler!
-            setStopHandlerProcessing(true);
+            session.setStopHandlerProcessing(true);
             
             return false;
         }
@@ -231,7 +233,7 @@
             getLogger().error(errorBuffer.toString());
             
             // After this filter match we should not call any other handler!
-            setStopHandlerProcessing(true);
+            session.setStopHandlerProcessing(true);
             
             return false;
         } else {

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/RcptBaseFilterCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/RcptBaseFilterCmdHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/RcptBaseFilterCmdHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/basefilter/RcptBaseFilterCmdHandler.java Tue Jul 11 05:25:36 2006
@@ -23,7 +23,8 @@
 import java.util.Locale;
 import java.util.StringTokenizer;
 
-import org.apache.james.smtpserver.AbstractCommandHandler;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.james.smtpserver.CommandHandler;
 import org.apache.james.smtpserver.SMTPSession;
 import org.apache.james.util.mail.dsn.DSNStatus;
 import org.apache.mailet.MailAddress;
@@ -31,7 +32,8 @@
 /**
   * Handles RCPT command
   */
-public class RcptBaseFilterCmdHandler extends AbstractCommandHandler {
+public class RcptBaseFilterCmdHandler extends AbstractLogEnabled implements
+        CommandHandler {
 
 
     /**
@@ -62,7 +64,7 @@
             session.writeResponse(responseString);
             
             // After this filter match we should not call any other handler!
-            setStopHandlerProcessing(true);
+            session.setStopHandlerProcessing(true);
             
         } else if (argument == null || !argument.toUpperCase(Locale.US).equals("TO")
                    || recipient == null) {
@@ -70,7 +72,7 @@
             session.writeResponse(responseString);
             
             // After this filter match we should not call any other handler!
-            setStopHandlerProcessing(true);
+            session.setStopHandlerProcessing(true);
             
         } else {
             Collection rcptColl = (Collection) session.getState().get(SMTPSession.RCPT_LIST);
@@ -101,7 +103,7 @@
                 }
                 
                 // After this filter match we should not call any other handler!
-                setStopHandlerProcessing(true);
+                session.setStopHandlerProcessing(true);
                 
                 return;
             }
@@ -133,7 +135,7 @@
                 }
                 
                 // After this filter match we should not call any other handler!
-                setStopHandlerProcessing(true);
+                session.setStopHandlerProcessing(true);
                 
                 return;
             }
@@ -151,7 +153,7 @@
                 session.writeResponse(responseString);
                 
                 // After this filter match we should not call any other handler!
-                setStopHandlerProcessing(true);
+                session.setStopHandlerProcessing(true);
                 
                 return;
             }
@@ -170,7 +172,7 @@
                         getLogger().error(sb.toString());
                         
                         // After this filter match we should not call any other handler!
-                        setStopHandlerProcessing(true);
+                        session.setStopHandlerProcessing(true);
                         
                         return;
                     }
@@ -196,7 +198,7 @@
                             }
                             
                             // After this filter match we should not call any other handler!
-                            setStopHandlerProcessing(true);
+                            session.setStopHandlerProcessing(true);
                             
                             return;
                         }
@@ -216,7 +218,7 @@
                     getLogger().error(errorBuffer.toString());
                     
                     // After this filter match we should not call any other handler!
-                    setStopHandlerProcessing(true);
+                    session.setStopHandlerProcessing(true);
                     
                     return;
                 }
@@ -246,7 +248,7 @@
                   }
                   
                   // After this filter match we should not call any other handler!
-                  setStopHandlerProcessing(true);
+                  session.setStopHandlerProcessing(true);
                   
               }
               optionTokenizer = null;

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/MaxRcptHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/MaxRcptHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/MaxRcptHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/MaxRcptHandler.java Tue Jul 11 05:25:36 2006
@@ -20,13 +20,16 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.avalon.framework.configuration.Configurable;
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.james.smtpserver.AbstractCommandHandler;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.james.smtpserver.CommandHandler;
 import org.apache.james.smtpserver.SMTPSession;
 import org.apache.james.util.mail.dsn.DSNStatus;
 
-public class MaxRcptHandler extends AbstractCommandHandler {
+public class MaxRcptHandler extends AbstractLogEnabled implements
+        CommandHandler, Configurable {
 
     private int maxRcpt = 0;
 
@@ -74,7 +77,7 @@
             getLogger().error(responseString);
 
             // After this filter match we should not call any other handler!
-            setStopHandlerProcessing(true);
+            session.setStopHandlerProcessing(true);
         }
     }
     
@@ -87,4 +90,5 @@
         
         return implCommands;
     }
+
 }

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/ResolvableEhloHeloHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/ResolvableEhloHeloHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/ResolvableEhloHeloHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/ResolvableEhloHeloHandler.java Tue Jul 11 05:25:36 2006
@@ -17,20 +17,28 @@
 
 package org.apache.james.smtpserver.fastfailfilter;
 
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.List;
-
+import org.apache.avalon.framework.configuration.Configurable;
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.james.smtpserver.AbstractCommandHandler;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.Serviceable;
+import org.apache.james.services.DNSServer;
+import org.apache.james.smtpserver.CommandHandler;
 import org.apache.james.smtpserver.SMTPSession;
 import org.apache.james.util.mail.dsn.DSNStatus;
 
-public class ResolvableEhloHeloHandler extends AbstractCommandHandler {
+import java.net.UnknownHostException;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ResolvableEhloHeloHandler extends AbstractLogEnabled
+        implements CommandHandler, Configurable, Serviceable {
 
     private boolean checkAuthNetworks = false;
 
+    private DNSServer dnsServer = null;
 
     /**
      * @see org.apache.avalon.framework.configuration.Configurable#configure(Configuration)
@@ -45,6 +53,13 @@
     }
 
     /**
+     * @see org.apache.avalon.framework.service.Serviceable#service(ServiceManager)
+     */
+    public void service(ServiceManager serviceMan) throws ServiceException {
+        setDnsServer((DNSServer) serviceMan.lookup(DNSServer.ROLE));
+    }
+
+    /**
      * Set to true if AuthNetworks should be included in the EHLO check
      * 
      * @param checkAuthNetworks
@@ -55,6 +70,16 @@
     }
 
     /**
+     * Set the DNSServer
+     * 
+     * @param dnsServer
+     *            The DNSServer
+     */
+    public void setDnsServer(DNSServer dnsServer) {
+        this.dnsServer = dnsServer;
+    }
+
+    /**
      * @see org.apache.james.smtpserver.fastfailfilter.HeloFilterHandler#onEhloCommand(SMTPSession)
      */
     public void onCommand(SMTPSession session) {
@@ -69,7 +94,7 @@
             // try to resolv the provided helo. If it can not resolved do not
             // accept it.
             try {
-                getDnsServer().getByName(argument);
+                dnsServer.getByName(argument);
             } catch (UnknownHostException e) {
                 responseString = "501 "
                         + DSNStatus.getStatus(DSNStatus.PERMANENT,
@@ -80,7 +105,7 @@
                 getLogger().info(responseString);
 
                 // After this filter match we should not call any other handler!
-                setStopHandlerProcessing(true);
+                session.setStopHandlerProcessing(true);
             }
         }
     }

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/ReverseEqualsEhloHeloHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/ReverseEqualsEhloHeloHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/ReverseEqualsEhloHeloHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/ReverseEqualsEhloHeloHandler.java Tue Jul 11 05:25:36 2006
@@ -17,20 +17,28 @@
 
 package org.apache.james.smtpserver.fastfailfilter;
 
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.List;
-
+import org.apache.avalon.framework.configuration.Configurable;
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.james.smtpserver.AbstractCommandHandler;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.Serviceable;
+import org.apache.james.services.DNSServer;
+import org.apache.james.smtpserver.CommandHandler;
 import org.apache.james.smtpserver.SMTPSession;
 import org.apache.james.util.mail.dsn.DSNStatus;
 
-public class ReverseEqualsEhloHeloHandler extends AbstractCommandHandler {
+import java.net.UnknownHostException;
+import java.util.ArrayList;
+import java.util.List;
+
+public class ReverseEqualsEhloHeloHandler extends AbstractLogEnabled
+        implements CommandHandler, Configurable, Serviceable {
 
     private boolean checkAuthNetworks = false;
 
+    private DNSServer dnsServer = null;
 
     /**
      * @see org.apache.avalon.framework.configuration.Configurable#configure(Configuration)
@@ -45,6 +53,13 @@
     }
 
     /**
+     * @see org.apache.avalon.framework.service.Serviceable#service(ServiceManager)
+     */
+    public void service(ServiceManager serviceMan) throws ServiceException {
+        setDnsServer((DNSServer) serviceMan.lookup(DNSServer.ROLE));
+    }
+
+    /**
      * Set to true if AuthNetworks should be included in the EHLO check
      * 
      * @param checkAuthNetworks
@@ -54,6 +69,15 @@
         this.checkAuthNetworks = checkAuthNetworks;
     }
 
+    /**
+     * Set the DNSServer
+     * 
+     * @param dnsServer
+     *            The DNSServer
+     */
+    public void setDnsServer(DNSServer dnsServer) {
+        this.dnsServer = dnsServer;
+    }
 
     /**
      * @see org.apache.james.smtpserver.CommandHandler#onCommand(SMTPSession)
@@ -69,7 +93,7 @@
         if (!session.isRelayingAllowed() || checkAuthNetworks) {
             try {
                 // get reverse entry
-                String reverse = getDnsServer().getByName(
+                String reverse = dnsServer.getByName(
                         session.getRemoteIPAddress()).getHostName();
 
                 if (!argument.equals(reverse)) {
@@ -84,7 +108,7 @@
                     getLogger().info(responseString);
 
                     // After this filter match we should not call any other handler!
-                    setStopHandlerProcessing(true);
+                    session.setStopHandlerProcessing(true);
                 }
             } catch (UnknownHostException e) {
                 responseString = "501 "
@@ -96,7 +120,7 @@
                 getLogger().info(responseString);
 
                 // After this filter match we should not call any other handler!
-                setStopHandlerProcessing(true);
+                session.setStopHandlerProcessing(true);
             }
         }
     }
@@ -113,4 +137,3 @@
     }
 
 }
-

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/TarpitHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/TarpitHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/TarpitHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/TarpitHandler.java Tue Jul 11 05:25:36 2006
@@ -20,12 +20,15 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.avalon.framework.configuration.Configurable;
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.james.smtpserver.AbstractCommandHandler;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.james.smtpserver.CommandHandler;
 import org.apache.james.smtpserver.SMTPSession;
 
-public class TarpitHandler extends AbstractCommandHandler {
+public class TarpitHandler extends AbstractLogEnabled implements
+        CommandHandler, Configurable {
 
     private int tarpitRcptCount = 0;
 

Modified: james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/ValidSenderDomainHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/ValidSenderDomainHandler.java?rev=420818&r1=420817&r2=420818&view=diff
==============================================================================
--- james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/ValidSenderDomainHandler.java (original)
+++ james/server/sandbox/handlerapi/src/java/org/apache/james/smtpserver/fastfailfilter/ValidSenderDomainHandler.java Tue Jul 11 05:25:36 2006
@@ -21,18 +21,27 @@
 import java.util.Collection;
 import java.util.List;
 
+import org.apache.avalon.framework.configuration.Configurable;
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.james.smtpserver.AbstractCommandHandler;
+import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.Serviceable;
+import org.apache.james.services.DNSServer;
+import org.apache.james.smtpserver.CommandHandler;
 import org.apache.james.smtpserver.SMTPSession;
 import org.apache.james.util.mail.dsn.DSNStatus;
 import org.apache.mailet.MailAddress;
 
 public class ValidSenderDomainHandler
-    extends AbstractCommandHandler {
+    extends AbstractLogEnabled
+    implements CommandHandler, Configurable, Serviceable {
     
     private boolean checkAuthClients = false;
     
+    private DNSServer dnsServer = null;
+    
     /**
      * @see org.apache.avalon.framework.configuration.Configurable#configure(Configuration)
      */
@@ -43,7 +52,22 @@
             setCheckAuthClients(configRelay.getValueAsBoolean(false));
         }
     }
-
+    
+    /**
+     * @see org.apache.avalon.framework.service.Serviceable#service(ServiceManager)
+     */
+    public void service(ServiceManager serviceMan) throws ServiceException {
+        setDnsServer((DNSServer) serviceMan.lookup(DNSServer.ROLE));
+    }
+    
+    /**
+     * Set the DnsServer
+     * 
+     * @param dnsServer The DnsServer
+     */
+    public void setDnsServer(DNSServer dnsServer) {
+        this.dnsServer = dnsServer;
+    }
     
     /**
      * Enable checking of authorized clients
@@ -73,14 +97,14 @@
         
             
             // try to resolv the provided domain in the senderaddress. If it can not resolved do not accept it.
-            records = getDnsServer().findMXRecords(senderAddress.getHost());
+            records = dnsServer.findMXRecords(senderAddress.getHost());
             if (records == null || records.size() == 0) {
                 responseString = "501 "+DSNStatus.getStatus(DSNStatus.PERMANENT,DSNStatus.ADDRESS_SYNTAX_SENDER)+ " sender " + senderAddress + " contains a domain with no valid MX records";
                 session.writeResponse(responseString);
                 getLogger().info(responseString);
                 
                 // After this filter match we should not call any other handler!
-                setStopHandlerProcessing(true);
+                session.setStopHandlerProcessing(true);
             }
         }
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org