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

  <mbean         name="MBeanFactory"
            className="org.apache.catalina.mbeans.MBeanFactory"
          description="Factory for MBeans and corresponding components"
               domain="Catalina">

    <!-- IMPLEMENTATION NOTE - all of the createXxxxx methods create a new  -->
    <!-- component and attach it to Catalina's component tree.  The return  -->
    <!-- value is the object name of the corresponding MBean for the new    -->
    <!-- component.                                                         -->

    <operation   name="createAccessLoggerValve"
          description="Create a new AccessLoggerValve"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
    </operation>

    <operation   name="createAjpConnector"
          description="Create a new AjpConnector"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
      <parameter name="address"
          description="The IP address on which to bind"
                 type="java.lang.String"/>
      <parameter name="port"
          description="TCP port number to listen on"
                 type="int"/>
    </operation>

    <operation   name="createDataSourceRealm"
          description="Create a new DataSource Realm"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
      <parameter name="dataSourceName"
          description="The JNDI named JDBC DataSource"
                 type="java.lang.String"/>
      <parameter name="roleNameCol"
          description="The column in the user role table that names a role"
                 type="java.lang.String"/>
      <parameter name="userCredCol"
          description="The column in the user table that holds the user's
                        credentials"
                 type="java.lang.String"/>
      <parameter name="userNameCol"
          description="The column in the user table that holds the user's
                        username"
                 type="java.lang.String"/>
      <parameter name="userRoleTable"
          description="The table that holds the relation between user's and
                        roles"
                 type="java.lang.String"/>
      <parameter name="userTable"
          description="The table that holds user data"
                 type="java.lang.String"/>
    </operation>

    <operation   name="createFileLogger"
          description="Create a new FileLogger"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
    </operation>

    <operation   name="createHttpConnector"
          description="Create a new HttpConnector"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
     <parameter name="address"
          description="The IP address on which to bind"
                 type="java.lang.String"/>
      <parameter name="port"
          description="TCP port number to listen on"
                 type="int"/>
    </operation>

    <operation   name="createHttpsConnector"
          description="Create a new HttpsConnector"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
      <parameter name="address"
          description="The IP address on which to bind"
                 type="java.lang.String"/>
      <parameter name="port"
          description="TCP port number to listen on"
                 type="int"/>
    </operation>

    <operation   name="createJDBCRealm"
          description="Create a new JDBC Realm"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
    </operation>

    <operation   name="createJNDIRealm"
          description="Create a new JNDI Realm"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
      <parameter name="connectionURL"
          description="Jndi Connection URL"
                 type="java.lang.String"/>
      <parameter name="connectionName"
          description="Connection name"
                 type="java.lang.String"/>
      <parameter name="connectionPassword"
          description="Connection password"
                 type="java.lang.String"/>
    </operation>

    <operation   name="createJAASRealm"
          description="Create a new Jaas Realm"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
      <parameter name="appName"
          description="App name"
                 type="java.lang.String"/>
      <parameter name="userClassNames"
          description="Users class names."
                 type="java.lang.String"/>
      <parameter name="roleClassNames"
          description="Role classNames"
                 type="java.lang.String"/>
      <parameter name="useContextClassLoader"
          description="Whether use context classloader"
                 type="java.lang.String"/>
    </operation>

    <operation   name="createMemoryRealm"
          description="Create a new Memory Realm"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
    </operation>

    <operation   name="createRemoteAddrValve"
          description="Create a new Remote Address Filter Valve"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
    </operation>

    <operation   name="createRemoteHostValve"
          description="Create a new Remote Host Filter Valve"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
    </operation>

    <operation   name="createRequestDumperValve"
          description="Create a new Request Dumper Valve"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
    </operation>

    <operation   name="createSingleSignOn"
          description="Create a new Single Sign On Valve"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
    </operation>

    <operation   name="createStandardContext"
          description="Create a new StandardContext"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
      <parameter name="path"
          description="The context path for this Context"
                 type="java.lang.String"/>
      <parameter name="docBase"
          description="Document base directory (or WAR) for ths Context"
                 type="java.lang.String"/>
    </operation>

    <operation   name="createStandardEngine"
          description="Create a new StandardEngine"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
      <parameter name="name"
          description="Unique name of this Engine"
                 type="java.lang.String"/>
      <parameter name="defaultHost"
          description="Default host name for this Engine"
                 type="java.lang.String"/>
    </operation>

    <operation   name="createStandardEngineService"
          description="Create a new StandardEngine and StandardService"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent Service"
                 type="java.lang.String"/>
      <parameter name="engineName"
          description="Unique name of this Engine"
                 type="java.lang.String"/>
      <parameter name="defaultHost"
          description="Default host name for this Engine"
                 type="java.lang.String"/>
      <parameter name="serviceName"
          description="Unique name of this Service"
                 type="java.lang.String"/>
    </operation>

    <operation   name="createStandardHost"
          description="Create a new StandardHost"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
      <parameter name="name"
          description="Unique name of this Host"
                 type="java.lang.String"/>
      <parameter name="appBase"
          description="set host deployment directory"
                 type="java.lang.String"/>
      <parameter name="autoDeploy"
          description="The auto deploy flag for this Host"
               type="boolean"/>           
      <parameter name="deployOnStartup"
          description="The deploy on startup flag for this Host"
               type="boolean"/>
      <parameter name="deployXML"
          description="deploy Context XML config files property"
               type="boolean"/> 
      <parameter name="unpackWARs"
          description="Unpack WARs property"
               type="boolean"/>
      <parameter name="xmlNamespaceAware"
          description="Attribute value used to turn on/off XML namespace awareness"
               type="boolean"/>
      <parameter name="xmlValidation"
               description="Attribute value used to turn on/off XML validation"
               type="boolean"/>
    </operation>




    <operation   name="createStandardManager"
          description="Create a new StandardManager"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
    </operation>

    <operation   name="createStandardService"
          description="Create a new StandardService"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
      <parameter name="name"
          description="Unique name of this Service"
                 type="java.lang.String"/>
      <parameter name="domain"
          description="The domain of this Service"
                 type="java.lang.String"/>
    </operation>

    <operation   name="createSystemErrLogger"
          description="Create a new System Error Logger"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
    </operation>

    <operation   name="createSystemOutLogger"
          description="Create a new System Output Logger"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
    </operation>

    <operation   name="createUserDatabaseRealm"
          description="Create a new UserDatabase Realm"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
      <parameter name="resourceName"
          description="Global JNDI resource name of our UserDatabase instance"
                 type="java.lang.String"/>
    </operation>

    <operation   name="createWebappLoader"
          description="Create a new Web Application Loader"
               impact="ACTION"
           returnType="java.lang.String">
      <parameter name="parent"
          description="MBean Name of the associated parent component"
                 type="java.lang.String"/>
    </operation>

    <!-- IMPLEMENTATION NOTE - all of the removeXxxxx methods cause the     -->
    <!-- corresponding Catalina component (and any related child            -->
    <!-- components to be stopped (if necessary) and removed, and the       -->
    <!-- corresponding MBeans to be destroyed.                              -->

    <operation   name="removeConnector"
          description="Remove an existing Connector"
               impact="ACTION"
           returnType="void">
      <parameter name="name"
          description="MBean Name of the component to be removed"
                 type="java.lang.String"/>
    </operation>

    <operation   name="removeContext"
          description="Remove an existing Context"
               impact="ACTION"
           returnType="void">
      <parameter name="name"
          description="MBean Name of the component to be removed"
                 type="java.lang.String"/>
    </operation>

    <operation   name="removeHost"
          description="Remove an existing Host"
               impact="ACTION"
           returnType="void">
      <parameter name="name"
          description="MBean Name of the component to be removed"
                 type="java.lang.String"/>
    </operation>

    <operation   name="removeLoader"
          description="Remove an existing Loader"
               impact="ACTION"
           returnType="void">
      <parameter name="name"
          description="MBean Name of the component to be removed"
                 type="java.lang.String"/>
    </operation>

    <operation   name="removeLogger"
          description="Remove an existing Logger"
               impact="ACTION"
           returnType="void">
      <parameter name="name"
          description="MBean Name of the component to be removed"
                 type="java.lang.String"/>
    </operation>

    <operation   name="removeManager"
          description="Remove an existing Manager"
               impact="ACTION"
           returnType="void">
      <parameter name="name"
          description="MBean Name of the component to be removed"
                 type="java.lang.String"/>
    </operation>

    <operation   name="removeRealm"
          description="Remove an existing Realm"
               impact="ACTION"
           returnType="void">
      <parameter name="name"
          description="MBean Name of the component to be removed"
                 type="java.lang.String"/>
    </operation>

    <operation   name="removeService"
          description="Remove an existing Service"
               impact="ACTION"
           returnType="void">
      <parameter name="name"
          description="MBean Name of the component to be removed"
                 type="java.lang.String"/>
    </operation>

    <operation   name="removeValve"
          description="Remove an existing Valve"
               impact="ACTION"
           returnType="void">
      <parameter name="name"
          description="MBean Name of the component to be removed"
                 type="java.lang.String"/>
    </operation>

  </mbean>

</mbeans-descriptors>
