I don't like your refactoring .. I will explain inline why ;-)

Ok!

[EMAIL PROTECTED] schrieb:
Author: bago
Date: Thu Nov 16 14:22:58 2006
New Revision: 475953

URL: http://svn.apache.org/viewvc?view=rev&rev=475953
Log:
Minor refactoring for AbstractActionHandler (JAMES-614)

Modified:
    
james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/AbstractActionHandler.java
    
james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/MaxRcptHandler.java
    
james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/ValidSenderDomainHandler.java

Modified: 
james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/AbstractActionHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/AbstractActionHandler.java?view=diff&rev=475953&r1=475952&r2=475953
==============================================================================
--- 
james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/AbstractActionHandler.java
 (original)
+++ 
james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/AbstractActionHandler.java
 Thu Nov 16 14:22:58 2006
@@ -93,14 +93,14 @@
     }
/**
-     * Process the checking
- * - * @param session the SMTPSession
+     * @see org.apache.james.smtpserver.CommandHandler#onCommand(SMTPSession)
      */
-    protected void doProcessing(SMTPSession session) {
+    public void onCommand(SMTPSession session) {
         if (check(session)) {
             if (getAction().equals(JunkScoreConfigUtil.JUNKSCORE)) {
-                getLogger().info(getJunkScoreLogString(session));
+                if (getLogger().isInfoEnabled()) {
+                    getLogger().info(getJunkScoreLogString(session)+" Add 
Junkscore: " + getScore());
+                }
                 JunkScore junk = getJunkScore(session);
                 junk.setStoredScore(getScoreName(), getScore());

I used the method doProcessing cause it will be also possible to extend
this class in a ConnectHandler or a MessageHandler... IMHO this makes
more sense..

You can override the onCommand at the same way you override the doProcessing. I don't understand what you gain from adding a further call, but this is really a minor issue.

@@ -157,5 +157,7 @@
* * @return junkScore
      */
-    protected abstract JunkScore getJunkScore(SMTPSession session);
+    protected JunkScore getJunkScore(SMTPSession session) {
+        return (JunkScore) session.getState().get(JunkScore.JUNK_SCORE);
+    }
 }
I keept it abstract course we must be able to choose if we want to store
the scores in the junkScore which is valid per mail and the one which is
valid for the whole session. Now you hardcode it to the junkScore which
is valid for the mail. This will make no sense if we use a junkscore in
DNSRBLHandler. For this class it whould be:

   protected JunkScore getJunkScore(SMTPSession session) {
       return (JunkScore) 
session.getConnectionState().get(JunkScore.JUNK_SCORE);
   }

You're right on the connection/message state maps, but you can have a default in the Abstract and override it only when needed. Otherwise a good solution could be to have a method that return the correct state map and then leave to the Abstract class the duty to get/set the JunkScore in that class. Otherwise we could put a method to return a flag to say if the handler operates on the session or on the message state: I just don't like to see "Junk" stuff in the specializations.

Either way, this refactoring are so minor that feel free to revert my changes while you work on the remaining handlers and then we'll have a better overview on the possible refactorings.

Stefano


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to