You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2006/09/08 04:11:34 UTC
svn commit: r441336 - in /directory/trunks/mina:
core/src/main/java/org/apache/mina/management/
integration-jmx/src/main/java/org/apache/mina/integration/jmx/
Author: trustin
Date: Thu Sep 7 19:11:33 2006
New Revision: 441336
URL: http://svn.apache.org/viewvc?view=rev&rev=441336
Log:
* Fixed a few documentation problems and coding practices
Modified:
directory/trunks/mina/core/src/main/java/org/apache/mina/management/IoSessionStat.java (contents, props changed)
directory/trunks/mina/core/src/main/java/org/apache/mina/management/StatCollector.java (contents, props changed)
directory/trunks/mina/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoServiceManager.java
directory/trunks/mina/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionManager.java
Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/management/IoSessionStat.java
URL: http://svn.apache.org/viewvc/directory/trunks/mina/core/src/main/java/org/apache/mina/management/IoSessionStat.java?view=diff&rev=441336&r1=441335&r2=441336
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/management/IoSessionStat.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/management/IoSessionStat.java Thu Sep 7 19:11:33 2006
@@ -20,12 +20,14 @@
package org.apache.mina.management;
/**
+ * The collected stats for a session. It's used by {@link StatCollector} to attach
+ * throughput stats to an {@link IoSession}.
+ *
* @author The Apache Directory Project (mina-dev@directory.apache.org)
- * The collected stats for a session. It's used by StatCollector for attach throughput stats to IoSession
+ * @version $Rev$, $Date$
*/
public class IoSessionStat
{
-
long lastByteRead = -1;
long lastByteWrite = -1;
long lastMessageRead = -1;
Propchange: directory/trunks/mina/core/src/main/java/org/apache/mina/management/IoSessionStat.java
------------------------------------------------------------------------------
svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision
Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/management/StatCollector.java
URL: http://svn.apache.org/viewvc/directory/trunks/mina/core/src/main/java/org/apache/mina/management/StatCollector.java?view=diff&rev=441336&r1=441335&r2=441336
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/management/StatCollector.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/management/StatCollector.java Thu Sep 7 19:11:33 2006
@@ -23,6 +23,7 @@
import java.net.SocketAddress;
import java.util.ArrayList;
import java.util.Iterator;
+import java.util.List;
import org.apache.mina.common.IoHandler;
import org.apache.mina.common.IoService;
@@ -32,48 +33,46 @@
/**
+ * Collects statistics of an {@linkIoService}. It's polling all the sessions of a given
+ * IoService. It's attaching a {@link IoSessionStat} object to all the sessions polled
+ * and filling the throughput values.
+ *
* @author The Apache Directory Project (mina-dev@directory.apache.org)
- * An IoService statistic collector. It's polling all the sessions of a given IoService. It's attaching a IoSessionStats object to
- * all the sessions polled and filling the throughput values.
+ * @version $Rev$, $Date$
*/
public class StatCollector
{
- private IoService service;
-
- public static String STAT_ID = "StatCollected";
+ /**
+ * The session attribute key for {@link IoSessionStat}.
+ */
+ public static final String KEY = StatCollector.class.getName() + ".stat";
+ private final IoService service;
private Worker worker;
-
private int pollingInterval = 5000;
+ private List polledSessions;
- private ArrayList polledSessions;
-
- private IoServiceListener serviceListener = new IoServiceListener()
+ private final IoServiceListener serviceListener = new IoServiceListener()
{
-
public void serviceActivated( IoService service, SocketAddress serviceAddress, IoHandler handler,
IoServiceConfig config )
{
}
-
public void serviceDeactivated( IoService service, SocketAddress serviceAddress, IoHandler handler,
IoServiceConfig config )
{
}
-
public void sessionCreated( IoSession session )
{
addSession( session );
}
-
public void sessionDestroyed( IoSession session )
{
removeSession( session );
}
-
};
/**
@@ -82,7 +81,7 @@
*/
public StatCollector( IoService service )
{
- this(service,5000);
+ this( service,5000 );
}
@@ -102,6 +101,7 @@
*/
public void start()
{
+ // TODO Make this method thread-safe.
if ( worker != null && worker.isAlive() )
throw new RuntimeException( "Stat collecting already started" );
@@ -133,6 +133,8 @@
*/
public void stop()
{
+ // TODO Make this method thread-safe.
+ // TODO Make the worker stop immediately, not waiting for the next loop.
service.removeListener( serviceListener );
// stop worker
@@ -159,21 +161,20 @@
*/
public boolean isRunning()
{
+ // TODO Make this method thread-safe
return worker != null && worker.stop != true;
}
-
private void addSession( IoSession session )
{
polledSessions.add( session );
- session.setAttribute( STAT_ID, new IoSessionStat() );
+ session.setAttribute( KEY, new IoSessionStat() );
}
-
private void removeSession( IoSession session )
{
polledSessions.remove( session );
- session.removeAttribute( STAT_ID );
+ session.removeAttribute( KEY );
}
private class Worker extends Thread
@@ -181,9 +182,9 @@
boolean stop = false;
-
private Worker()
{
+ // TODO Append a thread ID or any distingushed information to the thread name.
super( "StatCollectorWorker" );
}
@@ -194,7 +195,7 @@
for ( Iterator iter = polledSessions.iterator(); iter.hasNext(); )
{
IoSession session = ( IoSession ) iter.next();
- IoSessionStat sessStat = ( IoSessionStat ) session.getAttribute( STAT_ID );
+ IoSessionStat sessStat = ( IoSessionStat ) session.getAttribute( KEY );
sessStat.lastByteRead = session.getReadBytes();
sessStat.lastByteWrite = session.getWrittenBytes();
@@ -214,20 +215,19 @@
for ( Iterator iter = polledSessions.iterator(); iter.hasNext(); )
{
IoSession session = ( IoSession ) iter.next();
- IoSessionStat sessStat = ( IoSessionStat ) session.getAttribute( STAT_ID );
+ IoSessionStat sessStat = ( IoSessionStat ) session.getAttribute( KEY );
- sessStat.byteReadThroughput = ( ( float ) ( session.getReadBytes() - sessStat.lastByteRead ) )
- / ( ( ( float ) pollingInterval ) / 1000f );
- sessStat.byteWrittenThroughput = ( ( float ) ( session.getWrittenBytes() - sessStat.lastByteWrite ) )
- / ( ( ( float ) pollingInterval ) / 1000f );
-
- sessStat.messageReadThroughput = ( ( float ) ( session.getReadMessages() - sessStat.lastMessageRead ) )
- / ( ( ( float ) pollingInterval ) / 1000f );
- sessStat.messageWrittenThroughput = ( ( float ) ( session.getWrittenMessages() - sessStat.lastMessageWrite ) )
- / ( ( ( float ) pollingInterval ) / 1000f );
+ sessStat.byteReadThroughput = ( session.getReadBytes() - sessStat.lastByteRead )
+ / ( pollingInterval / 1000f );
+ sessStat.byteWrittenThroughput = ( session.getWrittenBytes() - sessStat.lastByteWrite )
+ / ( pollingInterval / 1000f );
+
+ sessStat.messageReadThroughput = ( session.getReadMessages() - sessStat.lastMessageRead )
+ / ( pollingInterval / 1000f );
+ sessStat.messageWrittenThroughput = ( session.getWrittenMessages() - sessStat.lastMessageWrite )
+ / ( pollingInterval / 1000f );
}
-
}
}
}
Propchange: directory/trunks/mina/core/src/main/java/org/apache/mina/management/StatCollector.java
------------------------------------------------------------------------------
svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision
Modified: directory/trunks/mina/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoServiceManager.java
URL: http://svn.apache.org/viewvc/directory/trunks/mina/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoServiceManager.java?view=diff&rev=441336&r1=441335&r2=441336
==============================================================================
--- directory/trunks/mina/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoServiceManager.java (original)
+++ directory/trunks/mina/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoServiceManager.java Thu Sep 7 19:11:33 2006
@@ -91,7 +91,7 @@
for ( Iterator iter2 = service.getManagedSessions( element ).iterator(); iter2.hasNext(); )
{
IoSession session = ( IoSession ) iter2.next();
- total += ( ( IoSessionStat ) session.getAttribute( StatCollector.STAT_ID ) )
+ total += ( ( IoSessionStat ) session.getAttribute( StatCollector.KEY ) )
.getByteReadThroughput();
}
}
@@ -109,7 +109,7 @@
for ( Iterator iter2 = service.getManagedSessions( element ).iterator(); iter2.hasNext(); )
{
IoSession session = ( IoSession ) iter2.next();
- total += ( ( IoSessionStat ) session.getAttribute( StatCollector.STAT_ID ) )
+ total += ( ( IoSessionStat ) session.getAttribute( StatCollector.KEY ) )
.getByteWrittenThroughput();
}
}
@@ -127,7 +127,7 @@
for ( Iterator iter2 = service.getManagedSessions( element ).iterator(); iter2.hasNext(); )
{
IoSession session = ( IoSession ) iter2.next();
- total += ( ( IoSessionStat ) session.getAttribute( StatCollector.STAT_ID ) )
+ total += ( ( IoSessionStat ) session.getAttribute( StatCollector.KEY ) )
.getMessageReadThroughput();
}
}
@@ -145,7 +145,7 @@
for ( Iterator iter2 = service.getManagedSessions( element ).iterator(); iter2.hasNext(); )
{
IoSession session = ( IoSession ) iter2.next();
- total += ( ( IoSessionStat ) session.getAttribute( StatCollector.STAT_ID ) )
+ total += ( ( IoSessionStat ) session.getAttribute( StatCollector.KEY ) )
.getMessageWrittenThroughput();
}
}
@@ -164,7 +164,7 @@
for ( Iterator iter2 = service.getManagedSessions( element ).iterator(); iter2.hasNext(); )
{
IoSession session = ( IoSession ) iter2.next();
- total += ( ( IoSessionStat ) session.getAttribute( StatCollector.STAT_ID ) )
+ total += ( ( IoSessionStat ) session.getAttribute( StatCollector.KEY ) )
.getByteReadThroughput();
count++;
}
@@ -184,7 +184,7 @@
for ( Iterator iter2 = service.getManagedSessions( element ).iterator(); iter2.hasNext(); )
{
IoSession session = ( IoSession ) iter2.next();
- total += ( ( IoSessionStat ) session.getAttribute( StatCollector.STAT_ID ) )
+ total += ( ( IoSessionStat ) session.getAttribute( StatCollector.KEY ) )
.getByteWrittenThroughput();
count++;
}
@@ -204,7 +204,7 @@
for ( Iterator iter2 = service.getManagedSessions( element ).iterator(); iter2.hasNext(); )
{
IoSession session = ( IoSession ) iter2.next();
- total += ( ( IoSessionStat ) session.getAttribute( StatCollector.STAT_ID ) )
+ total += ( ( IoSessionStat ) session.getAttribute( StatCollector.KEY ) )
.getMessageReadThroughput();
count++;
}
@@ -224,7 +224,7 @@
for ( Iterator iter2 = service.getManagedSessions( element ).iterator(); iter2.hasNext(); )
{
IoSession session = ( IoSession ) iter2.next();
- total += ( ( IoSessionStat ) session.getAttribute( StatCollector.STAT_ID ) )
+ total += ( ( IoSessionStat ) session.getAttribute( StatCollector.KEY ) )
.getMessageWrittenThroughput();
count++;
}
Modified: directory/trunks/mina/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionManager.java
URL: http://svn.apache.org/viewvc/directory/trunks/mina/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionManager.java?view=diff&rev=441336&r1=441335&r2=441336
==============================================================================
--- directory/trunks/mina/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionManager.java (original)
+++ directory/trunks/mina/integration-jmx/src/main/java/org/apache/mina/integration/jmx/IoSessionManager.java Thu Sep 7 19:11:33 2006
@@ -219,7 +219,7 @@
public float getByteReadThroughtput()
{
- IoSessionStat stats=(IoSessionStat)session.getAttribute(StatCollector.STAT_ID);
+ IoSessionStat stats=(IoSessionStat)session.getAttribute(StatCollector.KEY);
if(stats==null)
return Float.NaN;
else
@@ -229,7 +229,7 @@
public float getByteWrittenThroughtput()
{
- IoSessionStat stats=(IoSessionStat)session.getAttribute(StatCollector.STAT_ID);
+ IoSessionStat stats=(IoSessionStat)session.getAttribute(StatCollector.KEY);
if(stats==null)
return Float.NaN;
else
@@ -239,7 +239,7 @@
public float getMessageReadThroughtput()
{
- IoSessionStat stats=(IoSessionStat)session.getAttribute(StatCollector.STAT_ID);
+ IoSessionStat stats=(IoSessionStat)session.getAttribute(StatCollector.KEY);
if(stats==null)
return Float.NaN;
else
@@ -249,7 +249,7 @@
public float getMessageWrittenThroughtput()
{
- IoSessionStat stats=(IoSessionStat)session.getAttribute(StatCollector.STAT_ID);
+ IoSessionStat stats=(IoSessionStat)session.getAttribute(StatCollector.KEY);
if(stats==null)
return Float.NaN;
else