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

  <mbean name="NamingContextListener"
         description="Helper class used to initialize and populate the JNDI context associated with each context and server"
         domain="Catalina"
         group="Listener"
         type="org.apache.catalina.core.NamingContextListener">
    
    <attribute name="className"
               description="Fully qualified class name of the managed object"
               type="java.lang.String"
               writeable="false"/>
      
  </mbean>

  <mbean name="StandardContext"
         description="Standard Context Component"
         domain="Catalina"
         group="Context"
         type="org.apache.catalina.core.StandardContext">
    
    <attribute name="allowLinking"
               description="Allow symlinking to outside the webapp root directory, if the webapp is an exploded directory"
               is="true"
               type="boolean"/>
      
    <attribute name="antiJARLocking"
               description="Take care to not lock jar files"
               type="boolean" />

    <attribute name="antiResourceLocking"
               description="Take care to not lock resources"
               type="boolean" />

    <attribute name="cacheMaxSize"
               description="Maximum cache size in KB"
               type="int"/>
      
    <attribute name="cacheTTL"
               description="Time interval in ms between cache refeshes"
               type="int"/>
      
    <attribute name="cachingAllowed"
               description="Should we cache static resources for this webapp"
               is="true"
               type="boolean"/>
      
    <attribute name="caseSensitive"
               description="Should case sensitivity checks be performed"
               is="true"
               type="boolean"/>
      
    <attribute name="children"
               description="Object names of all children"
               type="[Ljavax.management.ObjectName;"/>
               
    <attribute name="configFile"
               description="Location of the context.xml resource or file"
               type="java.lang.String"/>
               
    <attribute   name="cookies"
               description="Should we attempt to use cookies for session id
               communication?"
               type="boolean"/>
      
    <attribute name="compilerClasspath"
               description="The compiler classpath to use"
               type="java.lang.String"/>
      
    <attribute name="crossContext"
               description="Should we allow the ServletContext.getContext() method to access the context of other web applications in this server?"
               type="boolean"/>

    <attribute name="defaultContextXml"
               description="Location of the default context.xml resource or file"
               type="java.lang.String"/>
               
    <attribute name="defaultWebXml"
               description="Location of the default web.xml resource or file"
               type="java.lang.String"/>
               
    <attribute name="delegate"
               description=""
               type="boolean"/>
               
    <attribute name="deploymentDescriptor"
               description="String deployment descriptor "
               type="java.lang.String"/>
                     
    <attribute name="docBase"
               description="The document root for this web application"
               type="java.lang.String"/>
      
    <attribute name="engineName"
               description="Name of the engine domain, if different from the context domain"
               type="java.lang.String"/>

    <attribute name="eventProvider"
               description="Event provider support for this managed object"
               is="true"
               type="boolean"/>
                              
    <attribute name="javaVMs"
               description="The Java virtual machines on which this module is running"
               type="[Ljava.lang.String;"/>

    <attribute name="loader"
               description="Associated loader."
               type="org.apache.catalina.Loader" />
      
    <attribute name="logger"
               description="Associated logger."
               type="org.apache.commons.logging.Log" />
      
    <attribute name="managedResource"
               description="The managed resource this MBean is associated with"
               type="java.lang.Object"/>
      
    <attribute name="manager"
               description="Associated manager."
               type="org.apache.catalina.Manager" />
      
    <attribute name="mappingObject"
               description="The object used for mapping"
               type="java.lang.Object"/>
      
    <attribute name="objectName"
               description="Name of the object"
               type="java.lang.String"/>
      
    <attribute name="originalDocBase"
               description="The original document root for this web application"
               type="java.lang.String"/>

    <attribute name="override"
               description="The DefaultContext override flag for this web application"
               type="boolean"/>
      
    <attribute name="parentClassLoader"
               description="Parent class loader."
               type="java.lang.ClassLoader" />
      
    <attribute name="path"
               description="The context path for this Context"
               type="java.lang.String"/>
               
    <attribute name="privileged"
               description="Access to tomcat internals"
               type="boolean"/>
      
    <attribute name="realm"
               description="Associated realm."
               type="org.apache.catalina.Realm" />
      
    <attribute name="reloadable"
               description="The reloadable flag for this web application"
               type="boolean"/>

    <attribute name="saveConfig"
               description="Should the configuration be written as needed on startup"
               is="true"
               type="boolean"/>
      
    <attribute name="server"
               description="The J2EE Server this module is deployed on"
               type="java.lang.String"/>
                              
    <attribute name="servlets"
               description="JSR77 list of servlets"
               type="[Ljava.lang.String;"
               writeable="false"/>
               
    <attribute name="startupTime"
               description="Time (in milliseconds) it took to start this context"
               type="long"/>

    <attribute name="startTime"
               description="Time (in milliseconds since January 1, 1970, 00:00:00) when this context was started"
               type="long"/>
               
    <attribute name="processingTime"
               description="Cumulative execution times of all servlets in this context"
               type="long"
               writeable="false" />

    <attribute name="state"
               description="Current state of this component"
               type="int"/>
                     
    <attribute name="stateManageable"
               description="State management support for this managed object"
               is="true"
               type="boolean"/>
               
    <attribute name="statisticsProvider"
               description="Performance statistics support for this managed object"
               is="true"
               type="boolean"/>
               
    <attribute name="staticResources"
               description="Static resources associated with the context."
               type="javax.naming.directory.DirContext"
               writeable="false"/>
      
    <attribute   name="swallowOutput"
               description="Flag to set to cause the system.out and system.err to be redirected to the logger when executing a servlet"
               type="boolean"/>
               
    <attribute name="unloadDelay"
               description="Amount of ms that the container will wait for servlets to unload"
               type="long"/>
               
    <attribute name="tldScanTime"
               description="Time spend scanning jars for TLDs for this context"
               type="long"/>

    <attribute name="useNaming"
               description="Create a JNDI naming context for this application?"
               is="true"
               type="boolean"/>
               
    <attribute name="valveObjectNames"
               description="ObjectNames for the valves associated with this container"
               type="[Ljavax.management.ObjectName;"
               writeable="false"/>

    <attribute name="welcomeFiles"
               description="The welcome files for this context"
               type="[Ljava.lang.String;"
               writeable="false"/>
      
    <attribute name="workDir"
               description="The pathname to the work directory for this context"
               type="java.lang.String"/>

    <operation   name="addValve"
               description="Add a valve to this Context"
               impact="ACTION"
               returnType="void">
      <parameter name="valve"
                 description="New valve to be added"
                 type="org.apache.catalina.Valve"/>
    </operation>
    
    <operation   name="removeValve"
               description="Remove a valve from this Context"
               impact="ACTION"
               returnType="void">
      <parameter name="valve"
                 description="New valve to be removed"
                 type="org.apache.catalina.Valve"/>
    </operation>
    
    <operation   name="addLifecycleListener"
               description="Add a lifecycle listener to this Context"
               impact="ACTION"
               returnType="void">
      <parameter name="listener"
                 description="New lifecycle listener to be added"
                 type="org.apache.catalina.LifecycleListener"/>
    </operation>
    
    <operation   name="removeLifecycleListener"
               description="Remove a lifecycle listener from this Context"
               impact="ACTION"
               returnType="void">
      <parameter name="listener"
                 description="New lifecycle listener to be removed"
                 type="org.apache.catalina.LifecycleListener"/>
    </operation>
    
    <operation   name="reload"
               description="Reload the webapplication"
               impact="ACTION"
               returnType="void">
    </operation>
    
    <operation   name="init"
               description="Register the context into the running server"
               impact="ACTION"
               returnType="void">
    </operation>
    
    <operation   name="start"
               description="Start the context"
               impact="ACTION"
               returnType="void">
    </operation>
    
    <operation name="stop"
               description="Stop the context"
               impact="ACTION"
               returnType="void">
    </operation>
    
    <operation name="destroy"
               description="Destroy the context"
               impact="ACTION"
               returnType="void">
    </operation>
    
    <operation name="findMappingObject"
               description="Return an object which may be utilized for mapping to this component"
               impact="INFO"
               returnType="org.apache.catalina.Context">    
    </operation>    
    
    <operation name="findStaticResources"
               description="Return the naming resources associated with this web application"
               impact="INFO"
               returnType="javax.naming.directory.DirContext">    
    </operation>
    
  </mbean>
  
  <mbean name="StandardContextValve"
         description="Valve that implements the default basic behavior for the
         StandardContext container implementation"
         domain="Catalina"
         group="Valve"
         type="org.apache.catalina.core.StandardContextValve">
    
    <attribute name="className"
               description="Fully qualified class name of the managed object"
               type="java.lang.String"
               writeable="false"/>
      
  </mbean>
  
  <mbean name="StandardEngine"
         type="org.apache.catalina.core.StandardEngine"
         description="Standard Engine Component"
         domain="Catalina"
         group="Engine">
    
    <attribute name="defaultHost"
               description="Name of the default Host for this Engine"
               type="java.lang.String"/>
      
    <attribute   name="managedResource"
               description="The managed resource this MBean is associated with"
               type="java.lang.Object"/>
      
    <attribute   name="name"
               description="Unique name of this Engine"
               type="java.lang.String"/>
      
    <attribute   name="baseDir"
               description="Base dir for this engine, typically same as catalina.base system property"
               type="java.lang.String"/>
      
    <attribute   name="jvmRoute"
               description="Route used for load balancing"
               type="java.lang.String"/>
      
    <attribute name="realm"
               description="Associated realm."
               type="org.apache.catalina.Realm" />
      
    <attribute name="valveObjectNames"
               description="ObjectNames for the valves associated with this container"
               type="[Ljavax.management.ObjectName;"
               writeable="false"/>

    <operation name="addChild"
               description="Add a virtual host"
               impact="ACTION"
               returnType="void">
      <parameter name="child"
                 description="Host object"
                 type="org.apache.catalina.Container"/>
    </operation>
    
    <operation name="start" description="Start" impact="ACTION" returnType="void" />
    <operation name="stop" description="Stop" impact="ACTION" returnType="void" />
      
  </mbean>

  
  <mbean name="StandardEngineValve"
         description="Valve that implements the default basic behavior for the
         StandardEngine container implementation"
         domain="Catalina"
         group="Valve"
         type="org.apache.catalina.core.StandardEngineValve">
    
    <attribute   name="className"
               description="Fully qualified class name of the managed object"
               type="java.lang.String"
               writeable="false"/>
      
  </mbean>
  
  <mbean name="StandardHost"
         description="Standard Host Component"
         domain="Catalina"
         group="Host"
         type="org.apache.catalina.core.StandardHost">
    
    <attribute name="appBase"
               description="The application root for this Host"
               type="java.lang.String"/>
      
    <attribute name="autoDeploy"
               description="The auto deploy flag for this Host"
               type="boolean"/>
                 
    <attribute name="configClass"
               description="The configuration class for contexts"
               type="java.lang.String"/>
      
    <attribute name="deployOnStartup"
               description="The deploy on startup flag for this Host"
               type="boolean"/>

    <attribute name="deployXML"
               description="deploy Context XML config files property"
               is="true"
               type="boolean"/>
      
    <attribute name="managedResource"
               description="The managed resource this MBean is associated with"
               type="java.lang.Object"/>
      
    <attribute name="name"
               description="Unique name of this Host"
               type="java.lang.String"/>
      
    <attribute name="unpackWARs"
               description="Unpack WARs property"
               is="true"
               type="boolean"/>
      
    <attribute name="xmlNamespaceAware"
               description="Attribute value used to turn on/off XML namespace awareness"
               type="boolean"/>
      
    <attribute name="xmlValidation"
               description="Attribute value used to turn on/off XML validation"
               type="boolean"/>

    <attribute name="children"
               description="Object names of all children"
               type="[Ljavax.management.ObjectName;"/>
      
    <attribute name="aliases"
               description="Host aliases"
               type="[Ljava.lang.String;"/>
      
    <attribute name="realm"
               description="Associated realm."
               type="org.apache.catalina.Realm" />
      
    <attribute name="valveNames"
               description="Return the MBean Names of the Valves associated with this Host"
               type="[Ljava.lang.String;"/>
      
    <attribute name="valveObjectNames"
               description="Return the MBean ObjectNames of the Valves associated with this Host"
               type="[Ljavax.management.ObjectName;"/>
      
    <operation name="addAlias"
               description="Add an alias name that should be mapped to this Host"
               impact="ACTION"
               returnType="void">
      <parameter name="alias"
                 description="The alias to be added"
                 type="java.lang.String"/>
    </operation>
    
    <operation name="findAliases"
               description="Return the set of alias names for this Host"
               impact="INFO"
               returnType="[Ljava.lang.String;"/>

    <operation name="addChild"
               description="Add a context"
               impact="ACTION">
      <parameter name="child"
                 description="Context to be added"
                 type="org.apache.catalina.Container"/>
    </operation>
      
    <operation   name="removeAlias"
               description="Remove the specified alias name from the aliases for this  Host"
               impact="ACTION"
               returnType="void">
      <parameter name="alias"
                 description="Alias name to be removed"
                 type="java.lang.String"/>
    </operation>
    
    <operation name="start" description="Start" impact="ACTION" returnType="void" />
    <operation name="stop" description="Stop" impact="ACTION" returnType="void" />
    <operation name="init" description="Init" impact="ACTION" returnType="void" />
    <operation name="destroy" description="Destroy" impact="ACTION" returnType="void" />
  </mbean>
  
  <mbean name="StandardHostValve"
         description="Valve that implements the default basic behavior for the
         StandardHost container implementation"
         domain="Catalina"
         group="Valve"
         type="org.apache.catalina.core.StandardHostValve">
    
    <attribute name="className"
               description="Fully qualified class name of the managed object"
               type="java.lang.String"
               writeable="false"/>

  </mbean>

  <mbean name="StandardServer"
         description="Standard Server Component"
         domain="Catalina"
         group="Server"
         type="org.apache.catalina.core.StandardServer">
    
    <attribute name="managedResource"
               description="The managed resource this MBean is associated with"
               type="java.lang.Object"/>
      
    <attribute name="port"
               description="TCP port for shutdown messages"
               type="int"/>
      
    <attribute name="shutdown"
               description="Shutdown password"
               type="java.lang.String"/>
      
    <attribute name="serviceNames"
               description="Object names of all services we know about"
               type="[Ljavax.management.ObjectName;"/>

    <attribute name="serverInfo"
               description="Tomcat server release identifier"
               type="java.lang.String"
               writeable="false"/>
      
    <operation name="await"
               description="Wait for the shutdown message"
               impact="ACTION"
               returnType="void" />

    <operation name="storeConfig"
               description="Save current state to server.xml file"
               impact="ACTION"
               returnType="void">

    </operation>
    
  </mbean>

  
  <mbean name="StandardService"
         description="Standard Service Component"
         domain="Catalina"
         group="Service"
         type="org.apache.catalina.core.StandardService">
    
    <attribute name="managedResource"
               description="The managed resource this MBean is associated with"
               type="java.lang.Object"/>
      
    <attribute name="name"
               description="Unique name of this Service"
               type="java.lang.String"/>
      
    <attribute name="connectorNames"
               description="ObjectNames of the connectors"
               type="[Ljavax.management.ObjectName;"
               writeable="false" />
      
    <attribute name="container"
               description="Servlet engine that will process the requests"
               type="org.apache.catalina.Container" />

    <attribute name="containerName"
               description="ObjectNames of the engine"
               type="javax.management.ObjectName"
               writeable="false" />

    <operation name="addConnector"
               description="Add a new connector"
               impact="ACTION"
               returnType="void">
      <parameter name="connector"
                 description="Connector object"
                 type="org.apache.catalina.connector.Connector"/>
    </operation>
    <operation name="getConnectorNames"
               description="get all JMX connector names"
               impact="ACTION"
               returnType="[Ljavax.management.ObjectName;">
    </operation>
    
    <operation name="start" description="Start" impact="ACTION" returnType="void" />
    <operation name="stop" description="Stop" impact="ACTION" returnType="void" />
  </mbean>

  <mbean name="StandardWrapper"
         description="Wrapper that represents an individual servlet definition"
         domain="Catalina"
         group="Wrapper"
         type="org.apache.catalina.core.StandardWrapper">
               
    <attribute name="engineName"
               description="Fully qualified class name of the managed object"
               type="java.lang.String"
               writeable="false"/>
               
    <attribute name="eventProvider"
               description="Event provider support for this managed object"
               is="true"
               type="boolean"/>

    <attribute name="objectName"
               description="Name of the object"
               type="java.lang.String"/>

    <attribute name="stateManageable"
               description="State management support for this managed object"
               is="true"
               type="boolean"/>

    <attribute name="statisticsProvider"
               description="Performance statistics support for this managed object"
               is="true"
               type="boolean"/>

    <attribute name="processingTime"
               description="Total execution time of the servlet's service method"
               type="long"
               writeable="false" />

    <attribute name="maxTime"
               description="Maximum processing time of a request"
               type="long"
               writeable="false" />

    <attribute name="minTime"
               description="Minimum processing time of a request"
               type="long"
               writeable="false" />

    <attribute name="requestCount"
               description="Number of requests processed by this wrapper"
               type="int"
               writeable="false" />

    <attribute name="errorCount"
               description="Error count"
               type="int"
               writeable="false" />

    <attribute name="loadTime"
               description="Load time"
               type="long"
               writeable="false" />

    <attribute name="classLoadTime"
               description="Class loading time"
               type="int"
               writeable="false" />

    <operation name="findMappings"
               description="Return the mappings associated with this wrapper"
               impact="INFO"
               returnType="[Ljava.lang.String;">
    </operation>
               
    <operation name="findMappingObject"
               description="Return an object which may be utilized for mapping to this component"
               impact="INFO"
               returnType="org.apache.catalina.Wrapper">
    </operation>
    
  </mbean>
  
  <mbean name="StandardWrapperValve"
         description="Valve that implements the default basic behavior for the
         StandardWrapper container implementation"
         domain="Catalina"
         group="Valve"
         type="org.apache.catalina.core.StandardWrapperValve">
         
     <attribute name="className"
                description="Fully qualified class name of the managed object"
                type="java.lang.String"
                writeable="false"/>  
                    
  </mbean>

</mbeans-descriptors>
