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

  <mbean name="AccessLogValve"
         description="Valve that generates a web server access log"
         domain="Catalina"
         group="Valve"
         type="org.apache.catalina.valves.AccessLogValve">

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

    <attribute name="containerName"
               description="Object name of the container"
               type="javax.management.ObjectName"/>

    <attribute name="directory"
               description="The directory in which log files are created"
               type="java.lang.String"/>

    <attribute   name="pattern"
               description="The pattern used to format our access log lines"
               type="java.lang.String"/>

    <attribute name="prefix"
               description="The prefix that is added to log file filenames"
               type="java.lang.String"/>

    <attribute name="resolveHosts"
               description="Resolve hosts"
               is="true"
               type="boolean"/>

    <attribute name="rotatable"
               description="Flag to indicate automatic log rotation."
               is="true"
               type="boolean"/>

    <attribute name="suffix"
               description="The suffix that is added to log file filenames"
               type="java.lang.String"/>

    <attribute name="condition"
               description="The value to look for conditional logging."
               type="java.lang.String"/>

    <attribute name="fileDateFormat"
               description="The format for the date date based log rotation."
               type="java.lang.String"/>
  </mbean>

  <mbean name="ErrorReportValve"
         description="Implementation of a Valve that outputs HTML error pages"
         domain="Catalina"
         group="Valve"
         type="org.apache.catalina.valves.ErrorReportValve">

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

    <attribute name="containerName"
               description="Object name of the container"
               type="javax.management.ObjectName"/>

  </mbean>

  <mbean name="ExtendedAccessLogValve"
         description="Valve that generates a web server access log"
         domain="Catalina"
         group="Valve"
         type="org.apache.catalina.valves.ExtendedAccessLogValve">

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

    <attribute name="containerName"
               description="Object name of the container"
               type="javax.management.ObjectName"/>

    <attribute name="directory"
               description="The directory in which log files are created"
               type="java.lang.String"/>

    <attribute   name="pattern"
               description="The pattern used to format our access log lines"
               type="java.lang.String"/>

    <attribute name="prefix"
               description="The prefix that is added to log file filenames"
               type="java.lang.String"/>

    <attribute name="rotatable"
               description="Rotate log"
               is="true"
               type="boolean"/>

    <attribute name="condition"
               description="The value to look for conditional logging."
               type="java.lang.String"/>

    <attribute name="checkExists"
               description="Check for file existence before each logging."
               is="true"
               type="boolean"/>

    <attribute name="suffix"
               description="The suffix that is added to log file filenames"
               type="java.lang.String"/>

    <attribute name="fileDateFormat"
               description="The format for the date date based log rotation."
               type="java.lang.String"/>

    <operation name="rotate"
               description="Move the existing log file to a new name"
               impact="ACTION"
               returnType="boolean">
      <parameter name="newFileName"
                 description="File name to move the log file to."
                 type="java.lang.String"/>
    </operation>

  </mbean>

  <mbean name="FastCommonAccessLogValve"
         description="Valve that generates a web server access log"
         domain="Catalina"
         group="Valve"
         type="org.apache.catalina.valves.FastCommonAccessLogValve">

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

    <attribute name="containerName"
               description="Object name of the container"
               type="javax.management.ObjectName"/>

    <attribute name="directory"
               description="The directory in which log files are created"
               type="java.lang.String"/>

    <attribute   name="pattern"
               description="The pattern used to format our access log lines, which must be either common or combined"
               type="java.lang.String"/>

    <attribute name="prefix"
               description="The prefix that is added to log file filenames"
               type="java.lang.String"/>

    <attribute name="resolveHosts"
               description="Resolve hosts"
               is="true"
               type="boolean"/>

    <attribute name="rotatable"
               description="Flag to indicate automatic log rotation."
               is="true"
               type="boolean"/>

    <attribute name="suffix"
               description="The suffix that is added to log file filenames"
               type="java.lang.String"/>

    <attribute name="condition"
               description="The value to look for conditional logging."
               type="java.lang.String"/>

    <attribute name="fileDateFormat"
               description="The format for the date date based log rotation."
               type="java.lang.String"/>
  </mbean>

  <mbean name="SemaphoreValve"
         description="Valve that does concurrency control"
         domain="Catalina"
         group="Valve"
         type="org.apache.catalina.valves.SemaphoreValve">

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

    <attribute name="containerName"
               description="Object name of the container"
               type="javax.management.ObjectName"/>

    <attribute name="concurrency"
               description="Desired concurrency level"
               type="int"/>

    <attribute name="fairness"
               description="Use a fair semaphore"
               type="boolean"/>

  </mbean>

  <mbean name="RemoteAddrValve"
         description="Concrete implementation of RequestFilterValve that  filters based on the string representation of the remote client's IP address"
         domain="Catalina"
         group="Valve"
         type="org.apache.catalina.valves.RemoteAddrValve">

    <attribute name="allow"
               description="The comma-delimited set of allow expressions"
               type="java.lang.String"/>

    <attribute name="containerName"
               description="Object name of the container"
               type="javax.management.ObjectName"/>

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

    <attribute   name="deny"
               description="The comma-delimited set of deny expressions"
               type="java.lang.String"/>

  </mbean>

  <mbean name="RemoteHostValve"
         description="Concrete implementation of RequestFilterValve that
         filters based on the string representation of the remote
         client's host name"
         domain="Catalina"
         group="Valve"
         type="org.apache.catalina.valves.RemoteHostValve">

    <attribute   name="allow"
               description="The comma-delimited set of allow expressions"
               type="java.lang.String"/>

    <attribute name="containerName"
               description="Object name of the container"
               type="javax.management.ObjectName"/>

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

    <attribute   name="deny"
               description="The comma-delimited set of deny expressions"
               type="java.lang.String"/>

  </mbean>

  <mbean name="RequestDumperValve"
         description="Implementation of a Valve that logs interesting contents from the specified Request and the corresponding Response"
         domain="Catalina"
         group="Valve"
         type="org.apache.catalina.valves.RequestDumperValve">

    <attribute name="containerName"
               description="Object name of the container"
               type="javax.management.ObjectName"/>

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

  </mbean>

  <mbean name="RequestListenerValve"
         description="Valve that handles request initialization and destroy events"
         domain="Catalina"
         group="Valve"
         type="org.apache.catalina.valves.RequestListenerValve">

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

    <attribute name="containerName"
               description="Object name of the container"
               type="javax.management.ObjectName"/>

  </mbean>

</mbeans-descriptors>
