<?xml version="1.0"?>
<mbeans-descriptors>

  <mbean         name="StandardManager"
          description="Standard implementation of the Manager interface"
               domain="Catalina"
                group="Manager"
                 type="org.apache.catalina.session.StandardManager">

    <attribute   name="algorithm"
          description="The message digest algorithm to be used when generating
                       session identifiers"
                 type="java.lang.String"/>


    <attribute   name="randomFile"
          description="File source of random - /dev/urandom or a pipe"
                 type="java.lang.String"/>

    <attribute   name="className"
          description="Fully qualified class name of the managed object"
                 type="java.lang.String"
            writeable="false"/>

    <attribute   name="distributable"
          description="The distributable flag for Sessions created by this
                       Manager"
                 type="boolean"/>

    <attribute   name="entropy"
          description="A String initialization parameter used to increase the
                       entropy of the initialization of our random number
                       generator"
                 type="java.lang.String"/>

    <attribute   name="maxActiveSessions"
          description="The maximum number of active Sessions allowed, or -1
                       for no limit"
                 type="int"/>

    <attribute   name="maxInactiveInterval"
          description="The default maximum inactive interval for Sessions
                       created by this Manager"
                 type="int"/>

    <attribute name="processExpiresFrequency"
               description="The frequency of the manager checks (expiration and passivation)"
               type="int"/>
               
    <attribute   name="sessionIdLength"
          description="The session id length (in bytes) of Sessions
                       created by this Manager"
                 type="int"/>

    <attribute   name="name"
          description="The descriptive name of this Manager implementation
                       (for logging)"
                 type="java.lang.String"
            writeable="false"/>

    <attribute   name="pathname"
          description="Path name of the disk file in which active sessions"
                 type="java.lang.String"/>

    <attribute   name="activeSessions"
          description="Number of active sessions at this moment"
                 type="int" 
            writeable="false"/>

    <attribute   name="sessionCounter"
          description="Total number of sessions created by this manager"
                 type="int" />

    <attribute   name="maxActive"
          description="Maximum number of active sessions so far"
                 type="int" />

    <attribute   name="sessionMaxAliveTime"
          description="Longest time an expired session had been alive"
                 type="int" />

    <attribute   name="sessionAverageAliveTime"
          description="Average time an expired session had been alive"
                 type="int" />

    <attribute   name="rejectedSessions"
          description="Number of sessions we rejected due to maxActive beeing reached"
                 type="int" />

    <attribute   name="expiredSessions"
          description="Number of sessions that expired ( doesn't include explicit invalidations )"
                 type="int" />

    <attribute   name="processingTime"
          description="Time spent doing housekeeping and expiration"
                 type="long" />

    <attribute   name="duplicates"
          description="Number of duplicated session ids generated"
                 type="int" />

    <operation   name="listSessionIds"
          description="Return the list of active session ids"
               impact="ACTION"
           returnType="java.lang.String">
    </operation>

    <operation   name="getSessionAttribute"
          description="Return a session attribute"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="sessionId"
          description="Id of the session"
                 type="java.lang.String"/>
      <parameter name="key"
          description="key of the attribute"
                 type="java.lang.String"/>
    </operation>

    <operation   name="expireSession"
          description="Expire a session"
               impact="ACTION"
           returnType="void">
      <parameter name="sessionId"
          description="Id of the session"
                 type="java.lang.String"/>
    </operation>

    <operation   name="getLastAccessedTime"
          description="Get the last access time"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="sessionId"
          description="Id of the session"
                 type="java.lang.String"/>
    </operation>

  </mbean>

  <mbean         name="PersistentManager"
          description="Persistent Manager"
               domain="Catalina"
                group="Manager"
                 type="org.apache.catalina.session.PersistentManager">

    <attribute   name="algorithm"
          description="The message digest algorithm to be used when generating
                       session identifiers"
                 type="java.lang.String"/>

    <attribute   name="randomFile"
          description="File source of random - /dev/urandom or a pipe"
                 type="java.lang.String"/>

    <attribute   name="className"
          description="Fully qualified class name of the managed object"
                 type="java.lang.String"
            writeable="false"/>

    <attribute   name="distributable"
          description="The distributable flag for Sessions created by this
                       Manager"
                 type="boolean"/>

    <attribute   name="entropy"
          description="A String initialization parameter used to increase the
                       entropy of the initialization of our random number
                       generator"
                 type="java.lang.String"/>
 
    <attribute   name="managedResource"
          description="The managed resource this MBean is associated with"
                 type="java.lang.Object"/>

    <attribute   name="maxActiveSessions"
          description="The maximum number of active Sessions allowed, or -1
                       for no limit"
                 type="int"/>

    <attribute   name="maxInactiveInterval"
          description="The default maximum inactive interval for Sessions
                       created by this Manager"
                 type="int"/>
                 
    <attribute name="processExpiresFrequency"
               description="The frequency of the manager checks (expiration and passivation)"
               type="int"/>
               
    <attribute   name="sessionIdLength"
          description="The session id length (in bytes) of Sessions
                       created by this Manager"
                 type="int"/>

    <attribute   name="name"
          description="The descriptive name of this Manager implementation
                       (for logging)"
                 type="java.lang.String"
            writeable="false"/>

    <attribute   name="pathname"
          description="Path name of the disk file in which active sessions"
                 type="java.lang.String"/>

    <attribute   name="activeSessions"
          description="Number of active sessions at this moment"
                 type="int" 
            writeable="false"/>

    <attribute   name="sessionCounter"
          description="Total number of sessions created by this manager"
                 type="int" />

    <attribute   name="maxActive"
          description="Maximum number of active sessions so far"
                 type="int" />

    <attribute   name="maxIdleBackup"
          description="How long a session must be idle before it should be backed up"
                 type="int" />

    <attribute   name="minIdleSwap"
          description="Minimum time a session must be idle before it is swapped to disk"
                 type="int" />

    <attribute   name="maxIdleSwap"
          description="The maximum time a session may be idle before it should be swapped to file just on general principle"
                 type="int" />

    <attribute   name="rejectedSessions"
          description="Number of sessions we rejected due to maxActive beeing reached"
                 type="int" />

    <attribute   name="expiredSessions"
          description="Number of sessions that expired ( doesn't include explicit invalidations )"
                 type="int" />

    <attribute   name="processingTime"
          description="Time spent doing housekeeping and expiration"
                 type="long" />

    <attribute   name="duplicates"
          description="Number of duplicated session ids generated"
                 type="int" />

    <operation   name="listSessionIds"
          description="Return the list of active session ids"
               impact="ACTION"
           returnType="java.lang.String">
    </operation>

    <operation   name="getSessionAttribute"
          description="Return a session attribute"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="sessionId"
          description="Id of the session"
                 type="java.lang.String"/>
      <parameter name="key"
          description="key of the attribute"
                 type="java.lang.String"/>
    </operation>

    <operation   name="getSession"
          description="Get information about a session"
               impact="ACTION"
           returnType="java.util.HashMap">
      <parameter name="sessionId"
          description="Id of the session"
                 type="java.lang.String"/>
    </operation>

    <operation   name="expireSession"
          description="Expire a session"
               impact="ACTION"
           returnType="void">
      <parameter name="sessionId"
          description="Id of the session"
                 type="java.lang.String"/>
    </operation>

    <operation   name="getLastAccessedTime"
          description="Get the last access time"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="sessionId"
          description="Id of the session"
                 type="java.lang.String"/>
    </operation>

  </mbean>

</mbeans-descriptors>
