Author: norman
Date: Thu Dec  9 19:29:18 2010
New Revision: 1044103

URL: http://svn.apache.org/viewvc?rev=1044103&view=rev
Log:
Move logging support stuff to protocols

Added:
    
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/ProtocolSessionLog.java
    
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/
    
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/AbstractCommandHandlerResultLogger.java
      - copied, changed from r1044025, 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/log/CommandHandlerResultLogger.java
    
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/ConnectHandlerResultLogger.java
      - copied, changed from r1044025, 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/log/ConnectHandlerResultLogger.java
    
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/LineHandlerResultLogger.java
      - copied, changed from r1044025, 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/log/LineHandlerResultLogger.java
    
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/
    
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/HookResultLogger.java
      - copied, changed from r1044025, 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/log/HookResultLogger.java
    
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/SMTPCommandHandlerResultLogger.java
Modified:
    
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java
    
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSession.java
    
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java

Modified: 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java?rev=1044103&r1=1044102&r2=1044103&view=diff
==============================================================================
--- 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java
 (original)
+++ 
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java
 Thu Dec  9 19:29:18 2010
@@ -78,4 +78,11 @@ public interface ProtocolSession {
      * @return host ip address of the client
      */
     public String getRemoteIPAddress();
+    
+    /**
+     * Return the ID for the session
+     * 
+     * @return id
+     */
+    public String getSessionID();
 }

Modified: 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSession.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSession.java?rev=1044103&r1=1044102&r2=1044103&view=diff
==============================================================================
--- 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSession.java
 (original)
+++ 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractSession.java
 Thu Dec  9 19:29:18 2010
@@ -22,6 +22,7 @@ package org.apache.james.protocols.impl;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.InetSocketAddress;
+import java.util.Random;
 
 import javax.net.ssl.SSLEngine;
 
@@ -39,18 +40,25 @@ import org.jboss.netty.handler.stream.Ch
  * 
  */
 public abstract class AbstractSession implements TLSSupportedSession {
+    private static Random random = new Random();
 
     protected ChannelHandlerContext handlerContext;
     protected InetSocketAddress socketAddress;
-    protected Log logger;
+    private Log logger;
+    private ProtocolSessionLog pLog = null;
+    
     protected SSLEngine engine;
     protected String user;
 
+    private String id;
+
     public AbstractSession(Log logger, ChannelHandlerContext handlerContext, 
SSLEngine engine) {
         this.handlerContext = handlerContext;
         this.socketAddress = (InetSocketAddress) 
handlerContext.getChannel().getRemoteAddress();
         this.logger = logger;
         this.engine = engine;
+        this.id = random.nextInt(1024) + "";
+
     }
 
     public AbstractSession(Log logger, ChannelHandlerContext handlerContext) {
@@ -132,7 +140,10 @@ public abstract class AbstractSession im
      * @see org.apache.james.api.protocol.ProtocolSession#getLogger()
      */
     public Log getLogger() {
-        return logger;
+        if (pLog == null) {
+            pLog = new ProtocolSessionLog(this, logger);
+        }
+        return pLog;
     }
     
 
@@ -160,6 +171,14 @@ public abstract class AbstractSession im
             channel.write(new ChunkedStream(stream));
         }
     }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.james.protocols.api.ProtocolSession#getSessionID()
+     */
+    public String getSessionID() {
+        return id;
+    }
     
     
 

Added: 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/ProtocolSessionLog.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/ProtocolSessionLog.java?rev=1044103&view=auto
==============================================================================
--- 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/ProtocolSessionLog.java
 (added)
+++ 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/ProtocolSessionLog.java
 Thu Dec  9 19:29:18 2010
@@ -0,0 +1,198 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james.protocols.impl;
+
+import org.apache.commons.logging.Log;
+import org.apache.james.protocols.api.ProtocolSession;
+
+/**
+ * A {...@link Log} implementation which suffix every log message with the 
session id
+ * Id
+ * 
+ * 
+ */
+public class ProtocolSessionLog implements Log {
+    private Log logger;
+    private ProtocolSession session;
+
+    public ProtocolSessionLog(ProtocolSession session, Log logger) {
+        this.logger = logger;
+        this.session = session;
+    }
+
+    private String getText(Object obj) {
+        return "ID="+session.getSessionID() + " " + obj.toString();
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.logging.Log#debug(java.lang.Object)
+     */
+    public void debug(Object arg0) {
+        logger.debug(getText(arg0));
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.logging.Log#debug(java.lang.Object, 
java.lang.Throwable)
+     */
+    public void debug(Object arg0, Throwable arg1) {
+        logger.debug(getText(arg0), arg1);
+
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.logging.Log#error(java.lang.Object)
+     */
+    public void error(Object arg0) {
+        logger.error(getText(arg0));
+
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.logging.Log#error(java.lang.Object, 
java.lang.Throwable)
+     */
+    public void error(Object arg0, Throwable arg1) {
+        logger.error(getText(arg0), arg1);
+
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.logging.Log#fatal(java.lang.Object)
+     */
+    public void fatal(Object arg0) {
+        logger.fatal(getText(arg0));
+
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.logging.Log#fatal(java.lang.Object, 
java.lang.Throwable)
+     */
+    public void fatal(Object arg0, Throwable arg1) {
+        logger.fatal(getText(arg0), arg1);
+
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.logging.Log#info(java.lang.Object)
+     */
+    public void info(Object arg0) {
+        logger.info(getText(arg0));
+
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.logging.Log#info(java.lang.Object, 
java.lang.Throwable)
+     */
+    public void info(Object arg0, Throwable arg1) {
+        logger.info(getText(arg0), arg1);
+
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.logging.Log#isDebugEnabled()
+     */
+    public boolean isDebugEnabled() {
+        return logger.isDebugEnabled();
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.logging.Log#isErrorEnabled()
+     */
+    public boolean isErrorEnabled() {
+        return logger.isErrorEnabled();
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.logging.Log#isFatalEnabled()
+     */
+    public boolean isFatalEnabled() {
+        return logger.isFatalEnabled();
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.logging.Log#isInfoEnabled()
+     */
+    public boolean isInfoEnabled() {
+        return logger.isInfoEnabled();
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.logging.Log#isTraceEnabled()
+     */
+    public boolean isTraceEnabled() {
+        return logger.isTraceEnabled();
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.logging.Log#isWarnEnabled()
+     */
+    public boolean isWarnEnabled() {
+        return logger.isWarnEnabled();
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.logging.Log#trace(java.lang.Object)
+     */
+    public void trace(Object arg0) {
+        logger.trace(getText(arg0));
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.logging.Log#trace(java.lang.Object, 
java.lang.Throwable)
+     */
+    public void trace(Object arg0, Throwable arg1) {
+        logger.trace(getText(arg0), arg1);
+
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.logging.Log#warn(java.lang.Object)
+     */
+    public void warn(Object arg0) {
+        logger.warn(getText(arg0));
+
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.commons.logging.Log#warn(java.lang.Object, 
java.lang.Throwable)
+     */
+    public void warn(Object arg0, Throwable arg1) {
+        logger.warn(getText(arg0), arg1);
+
+    }
+
+}

Copied: 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/AbstractCommandHandlerResultLogger.java
 (from r1044025, 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/log/CommandHandlerResultLogger.java)
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/AbstractCommandHandlerResultLogger.java?p2=james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/AbstractCommandHandlerResultLogger.java&p1=james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/log/CommandHandlerResultLogger.java&r1=1044025&r2=1044103&rev=1044103&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/log/CommandHandlerResultLogger.java
 (original)
+++ 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/AbstractCommandHandlerResultLogger.java
 Thu Dec  9 19:29:18 2010
@@ -16,39 +16,40 @@
  * specific language governing permissions and limitations      *
  * under the License.                                           *
  ****************************************************************/
-package org.apache.james.smtpserver.log;
+package org.apache.james.protocols.impl.log;
 
 import org.apache.james.protocols.api.CommandHandler;
 import org.apache.james.protocols.api.CommandHandlerResultHandler;
 import org.apache.james.protocols.api.ProtocolSession;
 import org.apache.james.protocols.api.Response;
-import org.apache.james.protocols.smtp.SMTPResponse;
-import org.apache.james.protocols.smtp.SMTPSession;
+import org.apache.james.protocols.api.RetCodeResponse;
 
 /**
- * Log every 5xx and 4xx response in INFO level. The rest is logged via DEBUG 
level
  * 
- * TODO: This should go to protocols
  * 
  *
  */
-public class CommandHandlerResultLogger implements 
CommandHandlerResultHandler<SMTPResponse, SMTPSession> {
+public abstract class AbstractCommandHandlerResultLogger<R extends 
RetCodeResponse, S extends ProtocolSession> implements 
CommandHandlerResultHandler<R, S> {
+
+    
 
     /*
      * (non-Javadoc)
      * @see 
org.apache.james.protocols.api.CommandHandlerResultHandler#onResponse(org.apache.james.protocols.api.ProtocolSession,
 org.apache.james.protocols.api.Response, long, 
org.apache.james.protocols.api.CommandHandler)
      */
-    public Response onResponse(ProtocolSession session, SMTPResponse response, 
long executionTime, CommandHandler<SMTPSession> handler) {
+    public Response onResponse(ProtocolSession session, R response, long 
executionTime, CommandHandler<S> handler) {
         String code = response.getRetCode();
         String msg = handler.getClass().getName() + ": " + response.toString();
         
-        // check if the response was a perm error or a temp error
-        if (code.startsWith("5") || code.startsWith("4")) {
+        // check if the response should log with info 
+        if (logWithInfo(code)) {
             session.getLogger().info(msg);
         } else {
             session.getLogger().debug(msg);
         }
         return response;
     }
+    
+    protected abstract boolean logWithInfo(String retCode);
 
 }

Copied: 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/ConnectHandlerResultLogger.java
 (from r1044025, 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/log/ConnectHandlerResultLogger.java)
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/ConnectHandlerResultLogger.java?p2=james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/ConnectHandlerResultLogger.java&p1=james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/log/ConnectHandlerResultLogger.java&r1=1044025&r2=1044103&rev=1044103&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/log/ConnectHandlerResultLogger.java
 (original)
+++ 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/ConnectHandlerResultLogger.java
 Thu Dec  9 19:29:18 2010
@@ -16,26 +16,24 @@
  * specific language governing permissions and limitations      *
  * under the License.                                           *
  ****************************************************************/
-package org.apache.james.smtpserver.log;
+package org.apache.james.protocols.impl.log;
 
 import org.apache.james.protocols.api.ConnectHandler;
 import org.apache.james.protocols.api.ConnectHandlerResultHandler;
 import org.apache.james.protocols.api.ProtocolSession;
-import org.apache.james.protocols.smtp.SMTPSession;
 
 /**
  * Log disconnects caused by {...@link ConnectHandler} vi INFO. The rest is 
logged via DEBUG
  *
- * TODO: This should go to protocols
 
  */
-public class ConnectHandlerResultLogger implements 
ConnectHandlerResultHandler<SMTPSession>{
+public class ConnectHandlerResultLogger implements 
ConnectHandlerResultHandler<ProtocolSession>{
 
     /*
      * (non-Javadoc)
      * @see 
org.apache.james.protocols.api.ConnectHandlerResultHandler#onResponse(org.apache.james.protocols.api.ProtocolSession,
 boolean, long, org.apache.james.protocols.api.ConnectHandler)
      */
-    public boolean onResponse(ProtocolSession session, boolean response, long 
executionTime, ConnectHandler<SMTPSession> handler) {
+    public boolean onResponse(ProtocolSession session, boolean response, long 
executionTime, ConnectHandler<ProtocolSession> handler) {
 
         if (response) {
             session.getLogger().info(handler.getClass().getName() + " 
disconnect=true");

Copied: 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/LineHandlerResultLogger.java
 (from r1044025, 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/log/LineHandlerResultLogger.java)
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/LineHandlerResultLogger.java?p2=james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/LineHandlerResultLogger.java&p1=james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/log/LineHandlerResultLogger.java&r1=1044025&r2=1044103&rev=1044103&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/log/LineHandlerResultLogger.java
 (original)
+++ 
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/log/LineHandlerResultLogger.java
 Thu Dec  9 19:29:18 2010
@@ -16,26 +16,24 @@
  * specific language governing permissions and limitations      *
  * under the License.                                           *
  ****************************************************************/
-package org.apache.james.smtpserver.log;
+package org.apache.james.protocols.impl.log;
 
 import org.apache.james.protocols.api.LineHandler;
 import org.apache.james.protocols.api.LineHandlerResultHandler;
 import org.apache.james.protocols.api.ProtocolSession;
-import org.apache.james.protocols.smtp.SMTPSession;
 
 /**
  * Log disconnects caused by {...@link LineHandler} via INFO. The rest via 
DEBUG
  *
-  * TODO: This should go to protocols
-
  */
-public class LineHandlerResultLogger implements 
LineHandlerResultHandler<SMTPSession>{
+public class LineHandlerResultLogger implements 
LineHandlerResultHandler<ProtocolSession>{
+
 
     /*
      * (non-Javadoc)
      * @see 
org.apache.james.protocols.api.LineHandlerResultHandler#onResponse(org.apache.james.protocols.api.ProtocolSession,
 boolean, long, org.apache.james.protocols.api.LineHandler)
      */
-    public boolean onResponse(ProtocolSession session, boolean response, long 
executionTime, LineHandler<SMTPSession> handler) {
+    public boolean onResponse(ProtocolSession session, boolean response, long 
executionTime, LineHandler<ProtocolSession> handler) {
 
         if (response) {
             session.getLogger().info(handler.getClass().getName() + " 
disconnect=true");

Modified: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java?rev=1044103&r1=1044102&r2=1044103&view=diff
==============================================================================
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java
 Thu Dec  9 19:29:18 2010
@@ -99,13 +99,6 @@ public interface SMTPSession extends TLS
      */
     boolean isAuthSupported();
 
-
-    /**
-     * Returns the SMTP session id
-     *
-     * @return SMTP session id
-     */
-    String getSessionID();
     
     /**
      * Returns the recipient count

Copied: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/HookResultLogger.java
 (from r1044025, 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/log/HookResultLogger.java)
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/HookResultLogger.java?p2=james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/HookResultLogger.java&p1=james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/log/HookResultLogger.java&r1=1044025&r2=1044103&rev=1044103&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/log/HookResultLogger.java
 (original)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/HookResultLogger.java
 Thu Dec  9 19:29:18 2010
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations      *
  * under the License.                                           *
  ****************************************************************/
-package org.apache.james.smtpserver.log;
+package org.apache.james.protocols.smtp.core.log;
 
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.hook.Hook;
@@ -29,7 +29,6 @@ import org.apache.james.protocols.smtp.h
  * Log the {...@link HookResult}. If {...@link HookReturnCode#DENY}, {...@link 
HookReturnCode#DENYSOFT} or {...@link HookReturnCode#DISCONNECT} was used it 
will get 
  * logged to INFO. If not to DEBUG
  *
- * TODO: This should go to protocols  
  */
 public class HookResultLogger implements HookResultHook{
 

Added: 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/SMTPCommandHandlerResultLogger.java
URL: 
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/SMTPCommandHandlerResultLogger.java?rev=1044103&view=auto
==============================================================================
--- 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/SMTPCommandHandlerResultLogger.java
 (added)
+++ 
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/SMTPCommandHandlerResultLogger.java
 Thu Dec  9 19:29:18 2010
@@ -0,0 +1,35 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+package org.apache.james.protocols.smtp.core.log;
+
+import org.apache.james.protocols.impl.log.AbstractCommandHandlerResultLogger;
+import org.apache.james.protocols.smtp.SMTPResponse;
+import org.apache.james.protocols.smtp.SMTPSession;
+
+public class SMTPCommandHandlerResultLogger extends 
AbstractCommandHandlerResultLogger<SMTPResponse, SMTPSession>{
+
+    @Override
+    protected boolean logWithInfo(String retCode) {
+        if (retCode.startsWith("5") || retCode.startsWith("4")) {
+            return true;
+        }
+        return false;
+    }
+
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to