Author: norman
Date: Tue Sep 27 05:55:31 2011
New Revision: 1176211

URL: http://svn.apache.org/viewvc?rev=1176211&view=rev
Log:
Just use one interface for result handling

Modified:
    
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/ConnectHandlerResultJMXMonitor.java
    
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/LineHandlerResultJMXMonitor.java
    
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractCommandHandlerResultJMXMonitor.java
    
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractConnectHandlerResultJMXMonitor.java
    
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractLineHandlerResultJMXMonitor.java
    
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/ConnectHandlerStats.java
    
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/LineHandlerStats.java
    
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/ConnectHandlerResultJMXMonitor.java
    
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/LineHandlerResultJMXMonitor.java

Modified: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/ConnectHandlerResultJMXMonitor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/ConnectHandlerResultJMXMonitor.java?rev=1176211&r1=1176210&r2=1176211&view=diff
==============================================================================
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/ConnectHandlerResultJMXMonitor.java
 (original)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/ConnectHandlerResultJMXMonitor.java
 Tue Sep 27 05:55:31 2011
@@ -18,10 +18,11 @@
  ****************************************************************/
 package org.apache.james.pop3server.jmx;
 
+import org.apache.james.pop3server.POP3Response;
 import org.apache.james.pop3server.POP3Session;
 import 
org.apache.james.protocols.lib.jmx.AbstractConnectHandlerResultJMXMonitor;
 
-public class ConnectHandlerResultJMXMonitor extends 
AbstractConnectHandlerResultJMXMonitor<POP3Session> {
+public class ConnectHandlerResultJMXMonitor extends 
AbstractConnectHandlerResultJMXMonitor<POP3Response, POP3Session> {
 
     /*
      * (non-Javadoc)

Modified: 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/LineHandlerResultJMXMonitor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/LineHandlerResultJMXMonitor.java?rev=1176211&r1=1176210&r2=1176211&view=diff
==============================================================================
--- 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/LineHandlerResultJMXMonitor.java
 (original)
+++ 
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/jmx/LineHandlerResultJMXMonitor.java
 Tue Sep 27 05:55:31 2011
@@ -18,10 +18,11 @@
  ****************************************************************/
 package org.apache.james.pop3server.jmx;
 
+import org.apache.james.pop3server.POP3Response;
 import org.apache.james.pop3server.POP3Session;
 import org.apache.james.protocols.lib.jmx.AbstractLineHandlerResultJMXMonitor;
 
-public class LineHandlerResultJMXMonitor extends 
AbstractLineHandlerResultJMXMonitor<POP3Session> {
+public class LineHandlerResultJMXMonitor extends 
AbstractLineHandlerResultJMXMonitor<POP3Response, POP3Session> {
 
     /*
      * (non-Javadoc)

Modified: 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractCommandHandlerResultJMXMonitor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractCommandHandlerResultJMXMonitor.java?rev=1176211&r1=1176210&r2=1176211&view=diff
==============================================================================
--- 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractCommandHandlerResultJMXMonitor.java
 (original)
+++ 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractCommandHandlerResultJMXMonitor.java
 Tue Sep 27 05:55:31 2011
@@ -29,7 +29,8 @@ import org.apache.commons.configuration.
 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.CommandHandlerResultHandler;
+import org.apache.james.protocols.api.handler.ProtocolHandler;
+import org.apache.james.protocols.api.handler.ProtocolHandlerResultHandler;
 import org.apache.james.protocols.api.handler.ExtensibleHandler;
 import org.apache.james.protocols.api.handler.LifecycleAwareProtocolHandler;
 import org.apache.james.protocols.api.handler.WiringException;
@@ -37,7 +38,7 @@ import org.apache.james.protocols.api.ha
 /**
  * Expose JMX statistics for {@link CommandHandler}
  */
-public abstract class AbstractCommandHandlerResultJMXMonitor<R extends 
Response, S extends ProtocolSession> implements CommandHandlerResultHandler<R, 
S>, ExtensibleHandler, LifecycleAwareProtocolHandler {
+public abstract class AbstractCommandHandlerResultJMXMonitor<R extends 
Response, S extends ProtocolSession> implements ProtocolHandlerResultHandler<R, 
S>, ExtensibleHandler, LifecycleAwareProtocolHandler {
 
     private Map<String, AbstractCommandHandlerStats<R>> cStats = new 
HashMap<String, AbstractCommandHandlerStats<R>>();
     private String jmxName;
@@ -51,11 +52,13 @@ public abstract class AbstractCommandHan
      * org.apache.james.protocols.api.Response, long,
      * org.apache.james.protocols.api.CommandHandler)
      */
-    public Response onResponse(ProtocolSession session, R response, long 
executionTime, CommandHandler<S> handler) {
-        String name = handler.getClass().getName();
-        AbstractCommandHandlerStats<R> stats = cStats.get(name);
-        if (stats != null) {
-            stats.increment(response);
+    public Response onResponse(ProtocolSession session, R response, long 
executionTime, ProtocolHandler handler) {
+        if (handler instanceof CommandHandler) {
+            String name = handler.getClass().getName();
+            AbstractCommandHandlerStats<R> stats = cStats.get(name);
+            if (stats != null) {
+                stats.increment(response);
+            }
         }
         return response;
     }

Modified: 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractConnectHandlerResultJMXMonitor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractConnectHandlerResultJMXMonitor.java?rev=1176211&r1=1176210&r2=1176211&view=diff
==============================================================================
--- 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractConnectHandlerResultJMXMonitor.java
 (original)
+++ 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractConnectHandlerResultJMXMonitor.java
 Tue Sep 27 05:55:31 2011
@@ -27,10 +27,12 @@ import java.util.Map;
 import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.james.protocols.api.ProtocolSession;
+import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.ConnectHandler;
-import org.apache.james.protocols.api.handler.ConnectHandlerResultHandler;
 import org.apache.james.protocols.api.handler.ExtensibleHandler;
 import org.apache.james.protocols.api.handler.LifecycleAwareProtocolHandler;
+import org.apache.james.protocols.api.handler.ProtocolHandler;
+import org.apache.james.protocols.api.handler.ProtocolHandlerResultHandler;
 import org.apache.james.protocols.api.handler.WiringException;
 
 /**
@@ -38,7 +40,7 @@ import org.apache.james.protocols.api.ha
  * 
  * @param <S>
  */
-public abstract class AbstractConnectHandlerResultJMXMonitor<S extends 
ProtocolSession> implements ConnectHandlerResultHandler<S>, ExtensibleHandler, 
LifecycleAwareProtocolHandler {
+public abstract class AbstractConnectHandlerResultJMXMonitor<R extends 
Response, S extends ProtocolSession> implements 
ProtocolHandlerResultHandler<R,S>, ExtensibleHandler, 
LifecycleAwareProtocolHandler {
 
     private Map<String, ConnectHandlerStats> cStats = new HashMap<String, 
ConnectHandlerStats>();
     private String jmxName;
@@ -58,8 +60,19 @@ public abstract class AbstractConnectHan
 
 
 
-    public void onResponse(ProtocolSession session, long executionTime, 
ConnectHandler<S> handler) {
-        cStats.get(handler.getClass().getName()).increment();
+    /*
+     * (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 Response onResponse(ProtocolSession session, Response response, 
long executionTime, ProtocolHandler handler) {
+        if (handler instanceof ConnectHandler) {
+            cStats.get(handler.getClass().getName()).increment(response);
+        }
+        return response;
     }
 
     /*

Modified: 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractLineHandlerResultJMXMonitor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractLineHandlerResultJMXMonitor.java?rev=1176211&r1=1176210&r2=1176211&view=diff
==============================================================================
--- 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractLineHandlerResultJMXMonitor.java
 (original)
+++ 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/AbstractLineHandlerResultJMXMonitor.java
 Tue Sep 27 05:55:31 2011
@@ -27,10 +27,12 @@ import java.util.Map;
 import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.james.protocols.api.ProtocolSession;
+import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.ExtensibleHandler;
 import org.apache.james.protocols.api.handler.LifecycleAwareProtocolHandler;
 import org.apache.james.protocols.api.handler.LineHandler;
-import org.apache.james.protocols.api.handler.LineHandlerResultHandler;
+import org.apache.james.protocols.api.handler.ProtocolHandler;
+import org.apache.james.protocols.api.handler.ProtocolHandlerResultHandler;
 import org.apache.james.protocols.api.handler.WiringException;
 
 /**
@@ -38,7 +40,7 @@ import org.apache.james.protocols.api.ha
  * 
  * @param <S>
  */
-public abstract class AbstractLineHandlerResultJMXMonitor<S extends 
ProtocolSession> implements LineHandlerResultHandler<S>, ExtensibleHandler, 
LifecycleAwareProtocolHandler {
+public abstract class AbstractLineHandlerResultJMXMonitor<R extends Response, 
S extends ProtocolSession> implements ProtocolHandlerResultHandler<R, S>, 
ExtensibleHandler, LifecycleAwareProtocolHandler {
 
     private Map<String, LineHandlerStats> lStats = new HashMap<String, 
LineHandlerStats>();
     private String jmxName;
@@ -51,11 +53,14 @@ public abstract class AbstractLineHandle
      * .apache.james.protocols.api.ProtocolSession, boolean, long,
      * org.apache.james.protocols.api.LineHandler)
      */
-    public void onResponse(ProtocolSession session, long executionTime, 
LineHandler<S> handler) {
-        lStats.get(handler.getClass().getName()).increment();
+    public Response onResponse(ProtocolSession session, Response response, 
long executionTime, ProtocolHandler handler) {
+        if (handler instanceof LineHandler) {
+            lStats.get(handler.getClass().getName()).increment(response);
+        }
+        return response;
     }
 
-    /*
+       /*
      * (non-Javadoc)
      * 
      * @see

Modified: 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/ConnectHandlerStats.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/ConnectHandlerStats.java?rev=1176211&r1=1176210&r2=1176211&view=diff
==============================================================================
--- 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/ConnectHandlerStats.java
 (original)
+++ 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/ConnectHandlerStats.java
 Tue Sep 27 05:55:31 2011
@@ -30,6 +30,7 @@ import javax.management.ObjectName;
 import javax.management.StandardMBean;
 
 import org.apache.james.lifecycle.api.Disposable;
+import org.apache.james.protocols.api.Response;
 
 public class ConnectHandlerStats extends StandardMBean implements 
HandlerStatsMBean, Disposable {
 
@@ -37,6 +38,7 @@ public class ConnectHandlerStats extends
     private String handlerName;
     private MBeanServer mbeanserver;
     private AtomicLong all = new AtomicLong(0);
+    private AtomicLong disconnect = new AtomicLong(0);
 
     public ConnectHandlerStats(String jmxName, String handlerName) throws 
NotCompliantMBeanException, MalformedObjectNameException, NullPointerException, 
InstanceAlreadyExistsException, MBeanRegistrationException {
         super(HandlerStatsMBean.class);
@@ -48,16 +50,21 @@ public class ConnectHandlerStats extends
         mbeanserver.registerMBean(this, baseObjectName);
     }
 
+
     /**
-     * Increment stats
+     * Increment the stats
      * 
-     * @param disconnected
+     * @param result
      */
-    public void increment() {
+    public void increment(Response response) {
         all.incrementAndGet();
+        if (response.isEndSession()) {
+            disconnect.incrementAndGet();
+        }
     }
 
     /*
+    /*
      * (non-Javadoc)
      * 
      * @see org.apache.james.socket.HandlerStatsMBean#getAll()
@@ -81,7 +88,7 @@ public class ConnectHandlerStats extends
      * @see org.apache.james.socket.HandlerStatsMBean#getDisconnect()
      */
     public long getDisconnect() {
-        return 0;
+        return disconnect.get();
     }
 
     /*

Modified: 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/LineHandlerStats.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/LineHandlerStats.java?rev=1176211&r1=1176210&r2=1176211&view=diff
==============================================================================
--- 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/LineHandlerStats.java
 (original)
+++ 
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/jmx/LineHandlerStats.java
 Tue Sep 27 05:55:31 2011
@@ -30,6 +30,7 @@ import javax.management.ObjectName;
 import javax.management.StandardMBean;
 
 import org.apache.james.lifecycle.api.Disposable;
+import org.apache.james.protocols.api.Response;
 
 /**
  * Gather stats for LineHandlers
@@ -40,6 +41,7 @@ public class LineHandlerStats extends St
     private String handlerName;
     private MBeanServer mbeanserver;
     private AtomicLong all = new AtomicLong(0);
+    private AtomicLong disconnect = new AtomicLong(0);
 
     public LineHandlerStats(String jmxName, String handlerName) throws 
NotCompliantMBeanException, MalformedObjectNameException, NullPointerException, 
InstanceAlreadyExistsException, MBeanRegistrationException {
         super(HandlerStatsMBean.class);
@@ -56,8 +58,11 @@ public class LineHandlerStats extends St
      * 
      * @param result
      */
-    public void increment() {
+    public void increment(Response response) {
         all.incrementAndGet();
+        if (response.isEndSession()) {
+            disconnect.incrementAndGet();
+        }
     }
 
     /*
@@ -84,7 +89,7 @@ public class LineHandlerStats extends St
      * @see org.apache.james.socket.HandlerStatsMBean#getDisconnect()
      */
     public long getDisconnect() {
-        return 0;
+        return disconnect.get();
     }
 
     /*

Modified: 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/ConnectHandlerResultJMXMonitor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/ConnectHandlerResultJMXMonitor.java?rev=1176211&r1=1176210&r2=1176211&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/ConnectHandlerResultJMXMonitor.java
 (original)
+++ 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/ConnectHandlerResultJMXMonitor.java
 Tue Sep 27 05:55:31 2011
@@ -18,10 +18,11 @@
  ****************************************************************/
 package org.apache.james.smtpserver.jmx;
 
+import org.apache.james.protocols.api.Response;
 import 
org.apache.james.protocols.lib.jmx.AbstractConnectHandlerResultJMXMonitor;
 import org.apache.james.protocols.smtp.SMTPSession;
 
-public class ConnectHandlerResultJMXMonitor extends 
AbstractConnectHandlerResultJMXMonitor<SMTPSession> {
+public class ConnectHandlerResultJMXMonitor extends 
AbstractConnectHandlerResultJMXMonitor<Response, SMTPSession> {
 
     /*
      * (non-Javadoc)

Modified: 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/LineHandlerResultJMXMonitor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/LineHandlerResultJMXMonitor.java?rev=1176211&r1=1176210&r2=1176211&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/LineHandlerResultJMXMonitor.java
 (original)
+++ 
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/jmx/LineHandlerResultJMXMonitor.java
 Tue Sep 27 05:55:31 2011
@@ -19,9 +19,10 @@
 package org.apache.james.smtpserver.jmx;
 
 import org.apache.james.protocols.lib.jmx.AbstractLineHandlerResultJMXMonitor;
+import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.protocols.smtp.SMTPSession;
 
-public class LineHandlerResultJMXMonitor extends 
AbstractLineHandlerResultJMXMonitor<SMTPSession> {
+public class LineHandlerResultJMXMonitor extends 
AbstractLineHandlerResultJMXMonitor<SMTPResponse, SMTPSession> {
 
     /*
      * (non-Javadoc)



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

Reply via email to