You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by as...@apache.org on 2002/02/12 18:35:07 UTC

cvs commit: jakarta-turbine-stratum/src/java/org/apache/stratum/jcs/access/monitor MonitorXMLRPCServer.java MonitorAccess.java

asmuts      02/02/12 09:35:07

  Added:       src/java/org/apache/stratum/jcs/access/monitor
                        MonitorXMLRPCServer.java MonitorAccess.java
  Log:
  added some initial xmlrpc stuff
  need a way to start configure its start
  needs to be flushed out, just providing the start
  
  Revision  Changes    Path
  1.1                  jakarta-turbine-stratum/src/java/org/apache/stratum/jcs/access/monitor/MonitorXMLRPCServer.java
  
  Index: MonitorXMLRPCServer.java
  ===================================================================
  package org.apache.stratum.jcs.access.monitor;
  
  import java.io.IOException;
  
  import org.apache.xmlrpc.WebServer;
  
  import org.apache.stratum.jcs.utils.log.Logger;
  import org.apache.stratum.jcs.utils.log.LoggerManager;
  
  /**
   *  Starts an xml rpc server for cache monitoring.
   *
   *@author     asmuts
   *@created    February 12, 2002
   */
  public class MonitorXMLRPCServer
  {
  
      Logger log = LoggerManager.getLogger( MonitorXMLRPCServer.class );
  
  
      /**
       *  Constructor for the MonitorXMLRPCServer object
       *
       *@param  port  Description of the Parameter
       */
      public MonitorXMLRPCServer( int port )
      {
  
          MonitorAccess mon = new MonitorAccess();
  
          try
          {
              WebServer server = new WebServer( port );
              server.addHandler( "JCSMonitor", mon );
              server.setParanoid (false);
          }
          catch ( IOException ioe )
          {
              log.error( ioe );
          }
  
      }
  
  
  }
  
  
  
  1.1                  jakarta-turbine-stratum/src/java/org/apache/stratum/jcs/access/monitor/MonitorAccess.java
  
  Index: MonitorAccess.java
  ===================================================================
  package org.apache.stratum.jcs.access.monitor;
  
  import java.io.Serializable;
  import java.util.ArrayList;
  import java.util.Hashtable;
  import java.util.StringTokenizer;
  import java.util.Arrays;
  
  import org.apache.stratum.jcs.engine.behavior.ICache;
  import org.apache.stratum.jcs.access.GroupCacheAccess;
  import org.apache.stratum.jcs.engine.group.GroupCacheManager;
  import org.apache.stratum.jcs.engine.group.GroupCacheManagerFactory;
  
  import org.apache.stratum.jcs.utils.log.Logger;
  import org.apache.stratum.jcs.utils.log.LoggerManager;
  
  /**
   *  Exposes the simple monitoring methods to the public in a simple manner.
   *
   *@author     asmuts
   *@created    February 12, 2002
   */
  public class MonitorAccess implements Serializable
  {
  
      /**
       *  Description of the Field
       */
      protected GroupCacheManager cacheMgr;
  
      Logger log = LoggerManager.getLogger( MonitorAccess.class );
  
      /**
       *  Constructor for the MonitorAccess object
       */
      public MonitorAccess()
      {
  
          if ( cacheMgr == null )
          {
              synchronized ( GroupCacheAccess.class )
              {
                  if ( cacheMgr == null )
                  {
                      cacheMgr = GroupCacheManagerFactory.getInstance();
                  }
              }
          }
      }
  
  
      /**
       *  Description of the Method
       *
       *@param  cacheName  Description of the Parameter
       *@param  key        Description of the Parameter
       *@return            Description of the Return Value
       */
      public String delete( String cacheName, String key )
      {
  
          // some junk to return for a synchronous call
          String result = "";
  
          try
          {
  
              ICache cache = cacheMgr.getCache( cacheName );
  
              if ( key != null )
              {
                  if ( key.toUpperCase().equals( "ALL" ) )
                  {
                      cache.removeAll();
  
                      if ( log.DEBUG <= log.logLevel )
                      {
                          log.debug( "Removed all elements from " + cacheName );
                      }
                      result = "key = " + key;
                  }
                  else
                  {
                      if ( log.DEBUG <= log.logLevel )
                      {
                          log.debug( "key = " + key );
                      }
                      result = "key = " + key;
                      StringTokenizer toke = new StringTokenizer( key, "_" );
  
                      while ( toke.hasMoreElements() )
                      {
                          String temp = ( String ) toke.nextElement();
                          cache.remove( key );
  
                          if ( log.DEBUG <= log.logLevel )
                          {
                              log.debug( "Removed " + temp + " from " + cacheName );
                          }
                      }
                  }
              }
              else
              {
                  result = "key is null";
              }
  
          }
          catch ( Exception e )
          {
              log.error( e );
          }
  
          return result;
      }
  
      /**
       *  Description of the Method
       *
       *@param  cacheName  Description of the Parameter
       *@return            Description of the Return Value
       */
      public String stats( String cacheName )
      {
  
          ICache cache = cacheMgr.getCache( cacheName );
  
          return cache.getStats();
      }
  
  
      /**
       *  Description of the Method
       *
       *@return    Description of the Return Value
       */
      public ArrayList overview()
      {
  
          ArrayList data = new ArrayList();
  
          String[] list = cacheMgr.getCacheNames();
          Arrays.sort( list );
          for ( int i = 0; i < list.length; i++ )
          {
              Hashtable ht = new Hashtable();
              String name = list[i];
              ht.put( "name", name );
  
              ICache cache = cacheMgr.getCache( name );
              int size = cache.getSize();
              ht.put( "size", Integer.toString( size ) );
  
              int status = cache.getStatus();
              String stat = status == ICache.STATUS_ALIVE ? "ALIVE"
                   : status == ICache.STATUS_DISPOSED ? "DISPOSED"
                   : status == ICache.STATUS_ERROR ? "ERROR"
                   : "UNKNOWN";
              ht.put( "stat", stat );
  
              data.add( ht );
          }
          return data;
      }
  
  }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>