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

  <!-- This MBean contains Connector attributes and some common attributes of
       associated ProtocolHandler instances. Common attributes extracted out
       from all ProtocolHandler implementations are denoted by a comment
       'common' above their description. Each attribute particular to given
       ProtocolHandler implementation can be found in relevant ProtocolHandler
       MBean. -->
  <mbean         name="CoyoteConnector"
            className="org.apache.catalina.mbeans.ConnectorMBean"
          description="Implementation of a Coyote connector"
               domain="Catalina"
                group="Connector"
                 type="org.apache.catalina.connector.Connector">

    <!-- Common -->
    <attribute   name="acceptCount"
          description="The accept count for this Connector"
                 type="int"/>
    
    <!-- Common -->
    <attribute   name="address"
          description="The IP address on which to bind"
                 type="java.lang.String"/>
                 
    <attribute   name="allowTrace"
          description="Allow disabling TRACE method"
                 type="boolean"/>

    <attribute   name="className"
          description="Fully qualified class name of the managed object"
                 type="java.lang.String"
            writeable="false"/>
    
    <!-- Common -->
    <attribute   name="connectionLinger"
          description="Linger value on the incoming connection"
                 type="int"/>

    <!-- Common -->
    <attribute   name="connectionTimeout"
          description="Timeout value on the incoming connection"
                 type="int"/>
                 
    <attribute   name="emptySessionPath"
          description="The 'empty session path' flag for this Connector"
                 type="boolean"/>

    <attribute   name="enableLookups"
          description="The 'enable DNS lookups' flag for this Connector"
                 type="boolean"/>

    <attribute   name="executorName"
          description="The name of the executor - if any - associated with this Connector"
                 type="java.lang.String"
            writeable="false"/>

    <!-- Common -->
    <attribute   name="keepAliveTimeout"
          description="The number of seconds Tomcat will wait for a subsequent request before closing the connection"
                 type="int"/>

    <attribute   name="maxKeepAliveRequests"
          description="Maximum number of Keep-Alive requests to honor per connection"
                 type="int"/>

    <attribute   name="maxPostSize"
          description="Maximum size in bytes of a POST which will be handled by the servlet API provided features"
                 type="int"/>
                 
    <attribute   name="maxSavePostSize"
          description="Maximum size of a POST which will be saved by the container during authentication"
                 type="int"/>                

    <!-- Common -->
    <attribute   name="maxThreads"
          description="The maximum number of request processing threads to be created"
                 type="int"/>

    <attribute   name="minSpareThreads"
          description="The number of request processing threads that will be created"
                 type="int"/>

    <!-- Common -->
    <attribute   name="packetSize"
          description="The ajp packet size."
                 type="int"/>
                 
    <attribute   name="port"
          description="The port number on which we listen for ajp13 requests"
                type="int"/>
    
    <!-- Common -->            
    <attribute   name="processorCache"
          description="The processor cache size."
                 type="int"/>    

    <attribute   name="protocol"
          description="Coyote protocol handler in use"
                 type="java.lang.String"/>

    <attribute   name="protocolHandlerClassName"
          description="Coyote Protocol handler class name"
                 type="java.lang.String"
            writeable="false"/>

    <attribute   name="proxyName"
          description="Ther Server name to which we should pretend requests to this Connector"
                 type="java.lang.String"/>

    <attribute   name="proxyPort"
          description="Ther Server port to which we should pretend requests to this Connector"
                 type="int"/>

    <attribute   name="redirectPort"
          description="The redirect port for non-SSL to SSL redirects"
                 type="int"/>

    <attribute   name="scheme"
          description="Protocol name for this Connector (http, https)"
                 type="java.lang.String"/>

    <attribute   name="secret"
          description="Authentication secret (I guess ... not in Javadocs)"
            readable = "false" 
                 type="java.lang.String"/>

    <attribute   name="secure"
          description="Is this a secure (SSL) Connector?"
                 type="boolean"/>
                 
    <attribute   name="sslProtocols"
          description="Comma-separated list of SSL protocol variants to be enabled"
                 type="java.lang.String"/>
                 
    <attribute   name="stateName"
          description="The name of the LifecycleState that this component is currently in"
                 type="java.lang.String"
                 writeable="false"/>

    <!-- Common -->
    <attribute   name="tcpNoDelay"
          description="Should we use TCP no delay?"
                 type="boolean"/>
    
    <!-- Common -->
    <attribute    name="threadPriority"
           description="The thread priority for processors"
                  type="int"/>
                  
    <attribute   name="URIEncoding"
          description="Character encoding used to decode the URI"
                 type="java.lang.String"/>

    <attribute   name="useBodyEncodingForURI"
          description="Should the body encoding be used for URI query parameters"
                 type="boolean"/>
                 
    <attribute   name="useIPVHosts"
          description="Should IP-based virtual hosting be used? "
                 type="boolean"/>

    <attribute    name="xpoweredBy"
           description="Is generation of X-Powered-By response header enabled/disabled?"
                  type="boolean"/>

    <operation name="start" description="Start" impact="ACTION" returnType="void" />
    <operation name="stop" description="Stop" impact="ACTION" returnType="void" />
    <operation name="pause" description="Start" impact="ACTION" returnType="void" />
    <operation name="resume" 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="Mapper"
    description="Maps requests received by the associated connector to Hosts, Contexts and Wrappers"
         domain="Catalina"
          group="Mapper"
           type="org.apache.catalina.connector.MapperListener">

    <attribute name="connectorName"
        description="Name of the associated connector"
               type="java.lang.String"
          writeable="false"/>
  </mbean>
</mbeans-descriptors>
