<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<mbeans-descriptors>

  <mbean name="ApplicationFilterConfig"
         description="Wrapper that represents an individual servlet-filter definition"
         domain="Catalina"
         group="Filter"
         type="org.apache.catalina.core.ApplicationFilterConfig">
                
     <attribute name="filterName"
                description="The name used to reference the filter in web.xml"
                type="java.lang.String"
                writeable="false"/>    

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

     <attribute name="filterInitParameterMap"
                description="Return the initiaization parameters associated with this filter"
                type="java.util.Map"
                writeable="false" />
                    
  </mbean> 

  <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="annotationProcessor"
                description="Object that processes things like injection annotations"
                type="org.apache.AnnotationProcessor" />

    <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="cacheObjectMaxSize"
               description="Maximum cached object 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="disableURLRewriting"
               description="Is URL Rewriting disabled?"
               is="true"
               type="boolean"/>
    
    <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="mapperContextRootRedirectEnabled"
               description="Should the Mapper be used for context root redirects"
               type="boolean" />

    <attribute name="mapperDirectoryRedirectEnabled"
               description="Should the Mapper be used for directory redirects"
               type="boolean" />

    <attribute name="namingContextListener"
               description="Associated naming context listener."
               type="org.apache.catalina.core.NamingContextListener" />
      
    <attribute name="objectName"
               description="Name of the object"
               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="stateName"
               description="The name of the LifecycleState that this component is currently in"
               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="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="tldValidation"
               description="Should the parsing of *.tld files be performed by a validating parser?"
               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"/>

    <attribute name="xmlValidation"
               description="Should the parsing of web.xml be performed by a validating parser?"
               type="boolean"/>

    <attribute name="xmlNamespaceAware"
               description="Should the parsing of web.xml be performed by a namespace aware parser?"
               type="boolean"/>

    <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="deployIgnore"
               description="Paths within appBase ignored for automatic deployment"
               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="Controls whether the parsing of the web.xml file for Contexts of this Host will be performed by a namespace aware parser. If false, it may still be enabled per Context using the Context's xmlNamespaceAware attribute."
               type="boolean"/>
      
    <attribute name="xmlValidation"
               description="Controls whether the parsing of the web.xml file and *.tld files for Contexts of this Host will be performed by a validating parser. If false, it may still be enabled per Context using the Context's xmlValidation attribute."
               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" />
    
    <operation name="findReloadedContextMemoryLeaks"
               description="Provide a list of contexts that have leaked memory on reload. This will attempt to force a full garbage collection. Use with extreme caution on production systems."
               impact="ACTION"
               returnType="[Ljava.lang.String;" />

  </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="start" description="Start" impact="ACTION" returnType="void" />
    <operation name="stop" description="Stop" impact="ACTION" returnType="void" />
  </mbean>
  
  <mbean name="StandardThreadExecutor"
         description="Standard implementation of a thread pool"
         domain="Catalina"
         group="Executor"
         type="org.apache.catalina.core.StandardThreadExecutor">
    
    <attribute name="threadPriority"
               description="The thread priority for threads in this thread pool"
               type="int"/>
      
    <attribute name="name"
               description="Unique name of this Executor"
               type="java.lang.String"/>
      
    <attribute name="namePrefix"
               description="Name prefix for thread names created by this executor"
               type="java.lang.String"/>
               
    <attribute name="maxThreads"
               description="Maximum number of allocated threads"
               type="int"/>

    <attribute name="minSpareThreads"
               description="Minimum number of allocated threads"
               type="int"/>
               
    <attribute name="maxIdleTime"
               description="Max number of milliseconds a thread can be idle before it can be shutdown"
               type="int"/>

    <attribute name="maxQueueSize"
               description="Maximum number of tasks for the pending task queue"
               type="int"/>

    <attribute name="activeCount"
               description="Number of threads currently processing a task"
               type="int"/>

    <attribute name="completedTaskCount"
               description="Number of tasks completed by the executor"
               type="int"/>

    <attribute name="corePoolSize"
               description="Core size of the thread pool"
               type="int"/>

    <attribute name="largestPoolSize"
               description="Peak number of threads"
               type="int"/>

    <attribute name="poolSize"
               description="Number of threads in the pool"
               type="int"/>

    <attribute name="queueSize"
               description="Number of tasks waiting to be processed"
               type="int"/>
  </mbean>

  <mbean name="StandardWrapper"
         description="Wrapper that represents an individual servlet definition"
         domain="Catalina"
         group="Wrapper"
         type="org.apache.catalina.core.StandardWrapper">
               
    <attribute name="available"
               description="The date and time at which this servlet will become available (in milliseconds since the epoch), or zero if the servlet is available. If this value equals Long.MAX_VALUE, the unavailability of this servlet is considered permanent."
               type="long"/>  

    <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>
