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]