<?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.
-->
<!DOCTYPE document [
  <!ENTITY project SYSTEM "project.xml">
]>
<document url="mbeans-descriptor-howto.html">

    &project;

    <properties>
        <author email="amyroh@apache.org">Amy Roh</author>
        <title>MBean Descriptor How To</title>
    </properties>

<body>

<section name="Table of Contents">
<toc/>
</section>

<section name="Introduction">

<p>Tomcat 5 uses JMX MBeans as the technology for implementing 
manageability of Tomcat.</p>

<p>The descriptions of JMX MBeans for Catalina are in the mbeans-descriptor.xml 
file in each package.</p>

<p>You will need to add MBean descriptions for your custom components 
in order to avoid a "ManagedBean is not found" exception.</p>

</section>

<section name="Adding MBean descriptions">

<p>You may also add MBean descriptions for custom components in 
a mbeans-descriptor.xml file, located in the same package as the class files
it describes.</p>

<source>
  &lt;mbean         name="LDAPRealm"
            className="org.apache.catalina.mbeans.ClassNameMBean"
          description="Custom LDAPRealm"
               domain="Catalina"
                group="Realm"
                 type="com.myfirm.mypackage.LDAPRealm"&gt;

    &lt;attribute   name="className"
          description="Fully qualified class name of the managed object"
                 type="java.lang.String"
            writeable="false"/&gt;

    &lt;attribute   name="debug"
          description="The debugging detail level for this component"
                 type="int"/&gt;
    .
    .
    .

  &lt;/mbean&gt;
</source>


</section>

</body>

</document>
