Author: norman
Date: Sat Nov 27 10:16:46 2010
New Revision: 1039642

URL: http://svn.apache.org/viewvc?rev=1039642&view=rev
Log:
Expose statistics for ConnectHandler/LineHandler/CommandHandler. See 
PROTOCOLS-15

Modified:
    
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/CommandHandlerResultJMXMonitor.java
    
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
    
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/HookResultJMXMonitor.java

Modified: 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/CommandHandlerResultJMXMonitor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/CommandHandlerResultJMXMonitor.java?rev=1039642&r1=1039641&r2=1039642&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/CommandHandlerResultJMXMonitor.java
 (original)
+++ 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/CommandHandlerResultJMXMonitor.java
 Sat Nov 27 10:16:46 2010
@@ -28,7 +28,7 @@ import org.apache.james.protocols.api.Co
 import org.apache.james.protocols.api.ExtensibleHandler;
 import org.apache.james.protocols.api.ProtocolSession;
 import org.apache.james.protocols.api.Response;
-import org.apache.james.protocols.api.ResponseResultHandler;
+import org.apache.james.protocols.api.CommandHandlerResultHandler;
 import org.apache.james.protocols.api.WiringException;
 import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.protocols.smtp.SMTPSession;
@@ -37,16 +37,17 @@ import org.apache.james.protocols.smtp.S
  * Expose JMX statistics for {...@link CommandHandler}
  *
  */
-public class CommandHandlerResultJMXMonitor implements 
ResponseResultHandler<SMTPResponse, SMTPSession>, ExtensibleHandler {
+public class CommandHandlerResultJMXMonitor implements 
CommandHandlerResultHandler<SMTPResponse, SMTPSession>, ExtensibleHandler {
 
     private Map<String, CommandHandlerStats> cStats = new HashMap<String, 
CommandHandlerStats>();
 
     
+
     /*
      * (non-Javadoc)
-     * @see 
org.apache.james.protocols.api.ResponseResultHandler#onResponse(org.apache.james.protocols.api.ProtocolSession,
 org.apache.james.protocols.api.Response, 
org.apache.james.protocols.api.CommandHandler)
+     * @see 
org.apache.james.protocols.api.CommanHandlerResultHandler#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, 
CommandHandler<SMTPSession> handler) {
+    public Response onResponse(ProtocolSession session, SMTPResponse response, 
long executionTime, CommandHandler<SMTPSession> handler) {
         String name = handler.getClass().getName();
         CommandHandlerStats stats = cStats.get(name);
         if (stats != null) {

Modified: 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java?rev=1039642&r1=1039641&r2=1039642&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
 (original)
+++ 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
 Sat Nov 27 10:16:46 2010
@@ -176,8 +176,11 @@ public final class DataLineJamesMessageH
                                        MessageHook rawHandler = 
mHandlers.get(i);
                                        session.getLogger().debug(
                                                        "executing james 
message handler " + rawHandler);
+                       long start = System.currentTimeMillis();
+
                                        HookResult hRes = 
rawHandler.onMessage(session,
                                                        new 
MailToMailEnvelopeWrapper(mail));
+                    long executionTime = System.currentTimeMillis() - start;
 
                                        if (rHooks != null) {
                                                for (int i2 = 0; i2 < 
rHooks.size(); i2++) {
@@ -185,7 +188,7 @@ public final class DataLineJamesMessageH
                                                        session.getLogger()
                                                                        
.debug("executing hook " + rHook);
                                                        hRes = 
((HookResultHook) rHook).onHookResult(
-                                                                       
session, hRes, rawHandler);
+                                                                       
session, hRes, executionTime, rawHandler);
                                                }
                                        }
 
@@ -205,16 +208,17 @@ public final class DataLineJamesMessageH
                                        Hook rawHandler = (Hook) 
messageHandlers.get(i);
                                        session.getLogger().debug(
                                                        "executing james 
message handler " + rawHandler);
+                                       long start = System.currentTimeMillis();
                                        HookResult hRes = ((JamesMessageHook) 
rawHandler)
                                                        .onMessage(session, 
(Mail) mail);
-
+                                       long executionTime = 
System.currentTimeMillis() - start;
                                        if (rHooks != null) {
                                                for (int i2 = 0; i2 < 
rHooks.size(); i2++) {
                                                        Object rHook = 
rHooks.get(i2);
                                                        session.getLogger()
                                                                        
.debug("executing hook " + rHook);
                                                        hRes = 
((HookResultHook) rHook).onHookResult(
-                                                                       
session, hRes, rawHandler);
+                                                                       
session, hRes, executionTime, rawHandler);
                                                }
                                        }
 

Modified: 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/HookResultJMXMonitor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/HookResultJMXMonitor.java?rev=1039642&r1=1039641&r2=1039642&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/HookResultJMXMonitor.java
 (original)
+++ 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/HookResultJMXMonitor.java
 Sat Nov 27 10:16:46 2010
@@ -40,12 +40,12 @@ import org.apache.james.protocols.smtp.h
 public class HookResultJMXMonitor implements HookResultHook, ExtensibleHandler 
{
 
     private Map<String, HookStats> hookStats = new HashMap<String, 
HookStats>();
-    
+
     /*
      * (non-Javadoc)
-     * @see 
org.apache.james.protocols.smtp.hook.HookResultHook#onHookResult(org.apache.james.protocols.smtp.SMTPSession,
 org.apache.james.protocols.smtp.hook.HookResult, java.lang.Object)
+     * @see 
org.apache.james.protocols.smtp.hook.HookResultHook#onHookResult(org.apache.james.protocols.smtp.SMTPSession,
 org.apache.james.protocols.smtp.hook.HookResult, long, 
org.apache.james.protocols.smtp.hook.Hook)
      */
-    public HookResult onHookResult(SMTPSession session, HookResult result,
+    public HookResult onHookResult(SMTPSession session, HookResult result, 
long executionTime,
             Hook hook) {
         String hookName = hook.getClass().getName();
         HookStats stats = hookStats.get(hookName);



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

Reply via email to