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 2012/01/19 14:41:47 UTC

svn commit: r1233371 - in /james/protocols/trunk: api/src/main/java/org/apache/james/protocols/api/handler/ lmtp/src/main/java/org/apache/james/protocols/lmtp/ netty/src/main/java/org/apache/james/protocols/netty/log/ pop3/src/main/java/org/apache/jame...

Author: norman
Date: Thu Jan 19 13:41:46 2012
New Revision: 1233371

URL: http://svn.apache.org/viewvc?rev=1233371&view=rev
Log:
Make AbstractCommandHandlerResultLogger an concrete implementation and move it from netty module to api. Also add it to the default handlers

Added:
    james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/CommandHandlerResultLogger.java
      - copied, changed from r1233193, james/protocols/trunk/netty/src/main/java/org/apache/james/protocols/netty/log/AbstractCommandHandlerResultLogger.java
Removed:
    james/protocols/trunk/netty/src/main/java/org/apache/james/protocols/netty/log/AbstractCommandHandlerResultLogger.java
Modified:
    james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/LMTPProtocolHandlerChain.java
    james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3ProtocolHandlerChain.java
    james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocolHandlerChain.java

Copied: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/CommandHandlerResultLogger.java (from r1233193, james/protocols/trunk/netty/src/main/java/org/apache/james/protocols/netty/log/AbstractCommandHandlerResultLogger.java)
URL: http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/CommandHandlerResultLogger.java?p2=james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/CommandHandlerResultLogger.java&p1=james/protocols/trunk/netty/src/main/java/org/apache/james/protocols/netty/log/AbstractCommandHandlerResultLogger.java&r1=1233193&r2=1233371&rev=1233371&view=diff
==============================================================================
--- james/protocols/trunk/netty/src/main/java/org/apache/james/protocols/netty/log/AbstractCommandHandlerResultLogger.java (original)
+++ james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/handler/CommandHandlerResultLogger.java Thu Jan 19 13:41:46 2012
@@ -16,39 +16,41 @@
  * specific language governing permissions and limitations      *
  * under the License.                                           *
  ****************************************************************/
-package org.apache.james.protocols.netty.log;
+package org.apache.james.protocols.api.handler;
 
 import org.apache.james.protocols.api.ProtocolSession;
 import org.apache.james.protocols.api.Response;
-import org.apache.james.protocols.api.handler.CommandHandler;
-import org.apache.james.protocols.api.handler.ProtocolHandler;
-import org.apache.james.protocols.api.handler.ProtocolHandlerResultHandler;
+import org.apache.james.protocols.api.logger.Logger;
 
 /**
  * 
+ * {@link ProtocolHandlerResultHandler} which logs the {@link Response} of {@link CommandHandler}'s.
  * 
+ * By default it logs to {@link Logger#debug(String)}, but subclasses can override this by override {@link #log(ProtocolSession, Response, String)} method.
  *
  */
-public abstract class AbstractCommandHandlerResultLogger<R extends Response, S extends ProtocolSession> implements ProtocolHandlerResultHandler<R, S> {
+public class CommandHandlerResultLogger implements ProtocolHandlerResultHandler<Response, ProtocolSession> {
 
-    
-
-
-    public Response onResponse(ProtocolSession session, R response, long executionTime, ProtocolHandler handler) {
+    public Response onResponse(ProtocolSession session, Response response, long executionTime, ProtocolHandler handler) {
         if (handler instanceof CommandHandler) {
-            String code = response.getRetCode();
-            String msg = handler.getClass().getName() + ": " + response.toString();
+            String logmessage = handler.getClass().getName() + ": " + response.toString();
         
-            // check if the response should log with info 
-            if (logWithInfo(code)) {
-                session.getLogger().info(msg);
-            } else {
-                session.getLogger().debug(msg);
-            }
+            log(session, response, logmessage);
         }
         return response;
     }
-    
-    protected abstract boolean logWithInfo(String retCode);
+
+    /**
+     * Log the given logmessage
+     * 
+     * @param session
+     * @param response
+     * @param logmessage
+     */
+    protected void log(ProtocolSession session, Response response, String logmessage) {
+        if (session.getLogger().isDebugEnabled()) {
+            session.getLogger().debug(logmessage);
+        }
+    }
 
 }

Modified: james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/LMTPProtocolHandlerChain.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/LMTPProtocolHandlerChain.java?rev=1233371&r1=1233370&r2=1233371&view=diff
==============================================================================
--- james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/LMTPProtocolHandlerChain.java (original)
+++ james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/LMTPProtocolHandlerChain.java Thu Jan 19 13:41:46 2012
@@ -22,6 +22,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.james.protocols.api.handler.CommandDispatcher;
+import org.apache.james.protocols.api.handler.CommandHandlerResultLogger;
 import org.apache.james.protocols.api.handler.ProtocolHandler;
 import org.apache.james.protocols.api.handler.WiringException;
 import org.apache.james.protocols.lmtp.core.DataLineMessageHookHandler;
@@ -83,6 +84,8 @@ public class LMTPProtocolHandlerChain ex
         defaultHandlers.add(new DataLineMessageHookHandler());
         defaultHandlers.add(new StartTlsCmdHandler());
         defaultHandlers.add(new UnknownCmdHandler());
+        defaultHandlers.add(new CommandHandlerResultLogger());
+
         return defaultHandlers;
     }
 

Modified: james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3ProtocolHandlerChain.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3ProtocolHandlerChain.java?rev=1233371&r1=1233370&r2=1233371&view=diff
==============================================================================
--- james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3ProtocolHandlerChain.java (original)
+++ james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3ProtocolHandlerChain.java Thu Jan 19 13:41:46 2012
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.james.protocols.api.handler.CommandDispatcher;
+import org.apache.james.protocols.api.handler.CommandHandlerResultLogger;
 import org.apache.james.protocols.api.handler.ProtocolHandler;
 import org.apache.james.protocols.api.handler.ProtocolHandlerChainImpl;
 import org.apache.james.protocols.api.handler.WiringException;
@@ -89,6 +90,7 @@ public class POP3ProtocolHandlerChain ex
         handlers.add(new UnknownCmdHandler());
         handlers.add(new StlsCmdHandler());
         handlers.add(new CommandDispatcher<POP3Session>());
+        handlers.add(new CommandHandlerResultLogger());
        
         return handlers;
     }

Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocolHandlerChain.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocolHandlerChain.java?rev=1233371&r1=1233370&r2=1233371&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocolHandlerChain.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocolHandlerChain.java Thu Jan 19 13:41:46 2012
@@ -27,6 +27,7 @@ import org.apache.james.protocols.api.ha
 import org.apache.james.protocols.api.handler.ProtocolHandler;
 import org.apache.james.protocols.api.handler.ProtocolHandlerChain;
 import org.apache.james.protocols.api.handler.ProtocolHandlerChainImpl;
+import org.apache.james.protocols.api.handler.CommandHandlerResultLogger;
 import org.apache.james.protocols.api.handler.WiringException;
 import org.apache.james.protocols.smtp.core.DataCmdHandler;
 import org.apache.james.protocols.smtp.core.DataLineMessageHookHandler;
@@ -104,6 +105,7 @@ public class SMTPProtocolHandlerChain ex
         defaultHandlers.add(new DataLineMessageHookHandler());
         defaultHandlers.add(new StartTlsCmdHandler());
         defaultHandlers.add(new UnknownCmdHandler());
+        defaultHandlers.add(new CommandHandlerResultLogger());
         return defaultHandlers;
     }
 



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