<?xml version="1.0"?>
<!DOCTYPE mbeans-descriptors PUBLIC
 "-//Apache Software Foundation//DTD Model MBeans Configuration File"
 "http://jakarta.apache.org/commons/dtds/mbeans-descriptors.dtd">

<!--
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 - JOnAS: Java(TM) Open Application Server
 - Copyright (C) 1999-2009 Bull S.A.S
 - Contact: jonas-team@ow2.org
 -
 - This library is free software; you can redistribute it and/or
 - modify it under the terms of the GNU Lesser General Public
 - License as published by the Free Software Foundation; either
 - version 2.1 of the License, or any later version.
 -
 - This library is distributed in the hope that it will be useful,
 - but WITHOUT ANY WARRANTY; without even the implied warranty of
 - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 - Lesser General Public License for more details.
 -
 - You should have received a copy of the GNU Lesser General Public
 - License along with this library; if not, write to the Free Software
 - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
 - USA
 -
 - Initial developer(s): Michel-Ange Anton
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 - $Id$
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 -->

<mbeans-descriptors>

<!-- EntityBean Component =========================================================== -->

  <mbean name="EntityBean"
         description="Deployed Entity Bean"
         domain="JOnAS"
         group="J2EEManaged"
         type="org.ow2.jonas.ejb2.internal.mbean.EntityBean">

    <!-- JOnAS specific management for EntityBeans -->
    <attribute name="persistency"
               description="persistency type"
               type="java.lang.String"
               writeable="false"/>


    <attribute name="passivationTimeOut"
               description="timeout for bean passivation when access outside transactions"
               type="int"
               writeable="false"/>

    <attribute name="inactivityTimeOut"
               description="inactivity timeout in seconds"
               type="int"
               writeable="false"/>

    <attribute name="deadlockTimeOut"
               description="deadlock timeout in seconds"
               type="int"
               writeable="false"/>

    <attribute name="readTimeOut"
               description="read timeout in seconds (for RO policy)"
               type="int"
               writeable="false"/>

    <attribute name="lockPolicy"
               description="JOnAS EJB Container's lock policy ; default: container-serialized "
               type="java.lang.String"
               writeable="false"/>

    <attribute name="shared"
               description="true if the bean persistent state can be accessed outside the JOnAS Server ; default false if lock-policy is container-serialized"
               type="java.lang.boolean"
               writeable="false"/>

    <attribute name="prefetch"
               description="true if a cache of buffers is managed for finder methods ; default is false"
               type="java.lang.boolean"
               writeable="false"/>

    <attribute name="hardLimit"
               description="true if max-cache-size cannot be overtaken; default is false"
               type="java.lang.boolean"
               writeable="false"/>

    <attribute name="entityCounters"
               description="Number of instances in different usage paterns"
               type="[Ljava.lang.Integer;"
               writeable="false"/>

    <!-- JOnAS specific management for all EJB types -->
    <attribute name="name"
               description="EJB name from deployment descriptor"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="fileName"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="allDataSourceName"
               description="the datasources used by this component"
               type="java.util.Hashtable"
               writeable="false"/>

    <attribute name="allJdbcResourceAdapterName"
               description="the JDBC resource adapters used by this component"
               type="java.util.Hashtable"
               writeable="false"/>

    <attribute name="allMailFactorySName"
               description="the Session Mail factories used by this component"
               type="java.util.Hashtable"
               writeable="false"/>

    <attribute name="allMailFactoryMName"
               description="the MimePartDataSource Mail factories used by this component"
               type="java.util.Hashtable"
               writeable="false"/>

    <attribute name="allJMSConnectionFactoryName"
               description="the JMS connection factories used by this component"
               type="java.util.Set"
               writeable="false"/>

    <attribute name="allJMSDestinationName"
               description="the JMS destinations used by this component"
               type="java.util.Set"
               writeable="false"/>

    <attribute name="allURLs"
               description="the URL resources used by this component"
               type="java.util.Set"
               writeable="false"/>

    <attribute name="minPoolSize"
               description="number of instances preallocated"
               type="int"
               writeable="false"/>

    <attribute name="poolSize"
               description="current number of free instances"
               type="int"
               writeable="false"/>

    <attribute name="maxCacheSize"
               description="maximum number of instances in memory"
               type="int"
               writeable="false"/>

    <attribute name="cacheSize"
               description="total number of instances in memory"
               type="int"
               writeable="false"/>

    <attribute name="ejbClass"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="displayName"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="jndiName"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="homeClass"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="remoteClass"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="localHomeClass"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="localClass"
               type="java.lang.String"
               writeable="false"/>

    <!-- JSR77 J2EEManagedObject -->
    <attribute name="objectName"
               description="JMX name of this object"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="stateManageable"
               description="State management support for this managed object"
               is="true"
               type="boolean"
               writeable="false"/>

    <attribute name="statisticsProvider"
               description="Performance statistics support for this managed object"
               is="true"
               type="boolean"
               writeable="false"/>

    <attribute name="eventProvider"
               description="Event provider support for this managed object"
               is="true"
               type="boolean"
               writeable="false"/>

    <operation name="synchronize"
               description="Synchronize all bean instances on database"
               impact="ACTION"
               returnType="void">
    </operation>

    <operation name="reduceCache"
               description="Try to reduce the number of instances in memory"
               impact="ACTION"
               returnType="void">
    </operation>

  </mbean>

<!-- StatelessSessionBean Component =========================================================== -->

  <mbean name="StatelessSessionBean"
         description="Deployed Stateless Session Bean"
         domain="JOnAS"
         group="J2EEManaged"
         type="org.ow2.jonas.ejb2.internal.mbean.StatelessSessionBean">

    <!-- SessionBean management -->
    <attribute name="sessionTimeOut"
               description="time-out"
               type="int"
               writeable="true"/>

    <!-- JOnAS specific management for all EJB types -->
    <attribute name="name"
               description="EJB name from deployment descriptor"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="fileName"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="allDataSourceName"
               description="the datasources used by this component"
               type="java.util.Hashtable"
               writeable="false"/>

    <attribute name="allJdbcResourceAdapterName"
               description="the JDBC resource adapters used by this component"
               type="java.util.Hashtable"
               writeable="false"/>

    <attribute name="allMailFactorySName"
               description="the Session Mail factories used by this component"
               type="java.util.Hashtable"
               writeable="false"/>

    <attribute name="allMailFactoryMName"
               description="the MimePartDataSource Mail factories used by this component"
               type="java.util.Hashtable"
               writeable="false"/>

    <attribute name="allJMSConnectionFactoryName"
               description="the JMS connection factories used by this component"
               type="java.util.Set"
               writeable="false"/>

    <attribute name="allJMSDestinationName"
               description="the JMS destinations used by this component"
               type="java.util.Set"
               writeable="false"/>

    <attribute name="allURLs"
               description="the URL resources used by this component"
               type="java.util.Set"
               writeable="false"/>

    <attribute name="poolSize"
               type="int"
               writeable="false"/>

    <attribute name="minPoolSize"
               description="the minimum size of the bean instances pool"
               type="int"
               writeable="false"/>

    <attribute name="maxCacheSize"
               description="the maximum size of the bean instances pool"
               type="int"
               writeable="false"/>

    <attribute name="cacheSize"
               description="the current number of created bean instances"
               type="int"
               writeable="false"/>

    <attribute name="ejbClass"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="displayName"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="jndiName"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="homeClass"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="remoteClass"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="localHomeClass"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="localClass"
               type="java.lang.String"
               writeable="false"/>
  <!-- JOnAS specific management for session EJBs -->
    <attribute name="monitoringEnabled"
               description="Whether EJB activity monitoring is enabled"
               type="boolean"
               writeable="true"/>

    <attribute name="warningThreshold"
               description="Number of milliseconds after which methods will start warning."
               type="int"
               writeable="true"/>

    <attribute name="monitoringSettingsDefinedInDD"
               description="Whether EJB monitoring settings have been defined in the Deployment Descriptor"
               type="boolean"
               writeable="false"/>

    <attribute name="numberOfCalls"
               description="Total number of method calls done on this EJB."
               type="int"
               writeable="false"/>

    <attribute name="totalBusinessProcessingTime"
               description="Total time (in ms) spent in business processing."
               type="long"
               writeable="false"/>

    <attribute name="averageBusinessProcessingTime"
               description="Average time (in ms) per request spent in business processing."
               type="long"
               writeable="false"/>

    <attribute name="totalProcessingTime"
               description="Total time (in ms) spent in business + container processing."
               type="long"
               writeable="false"/>

    <attribute name="averageProcessingTime"
               description="Average time (in ms) per request spent in business + container processing."
               type="long"
               writeable="false"/>

    <!-- JSR77 J2EEManagedObject -->
    <attribute name="objectName"
               description="JMX name of this object"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="stateManageable"
               description="State management support for this managed object"
               is="true"
               type="boolean"
               writeable="false"/>

    <attribute name="statisticsProvider"
               description="Performance statistics support for this managed object"
               is="true"
               type="boolean"
               writeable="false"/>

    <attribute name="eventProvider"
               description="Event provider support for this managed object"
               is="true"
               type="boolean"
               writeable="false"/>

    <!-- Stateless SessionBean management -->
    <operation name="reduceCache"
               description="Reduce number of instances in memory"
               impact="ACTION"
               returnType="void">
    </operation>

  </mbean>

<!-- StatefulSessionBean Component =========================================================== -->

  <mbean name="StatefulSessionBean"
         description="Deployed Stateful Session Bean"
         domain="JOnAS"
         group="J2EEManaged"
         type="org.ow2.jonas.ejb2.internal.mbean.StatefulSessionBean">

    <!-- SessionBean management -->
    <attribute name="sessionTimeOut"
               description="time-out"
               type="int"
               writeable="true"/>
    <!-- JOnAS specific management for all EJB types -->
    <attribute name="name"
               description="EJB name from deployment descriptor"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="fileName"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="allDataSourceName"
               description="the datasources used by this component"
               type="java.util.Hashtable"
               writeable="false"/>

    <attribute name="allJdbcResourceAdapterName"
               description="the JDBC resource adapters used by this component"
               type="java.util.Hashtable"
               writeable="false"/>

    <attribute name="allMailFactorySName"
               description="the Session Mail factories used by this component"
               type="java.util.Hashtable"
               writeable="false"/>

    <attribute name="allMailFactoryMName"
               description="the MimePartDataSource Mail factories used by this component"
               type="java.util.Hashtable"
               writeable="false"/>

    <attribute name="allJMSConnectionFactoryName"
               description="the JMS connection factories used by this component"
               type="java.util.Set"
               writeable="false"/>

    <attribute name="allJMSDestinationName"
               description="the JMS destinations used by this component"
               type="java.util.Set"
               writeable="false"/>

    <attribute name="allURLs"
               description="the URL resources used by this component"
               type="java.util.Set"
               writeable="false"/>

    <attribute name="poolSize"
               type="int"
               writeable="false"/>

    <attribute name="minPoolSize"
               description="the minimum size of the bean instances pool"
               type="int"
               writeable="false"/>

    <attribute name="maxCacheSize"
               description="the maximum size of the bean instances pool"
               type="int"
               writeable="false"/>

    <attribute name="cacheSize"
               description="the current number of created bean instances"
               type="int"
               writeable="false"/>

    <attribute name="ejbClass"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="displayName"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="jndiName"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="homeClass"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="remoteClass"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="localHomeClass"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="localClass"
               type="java.lang.String"
               writeable="false"/>

  <!-- JOnAS specific management for session EJBs -->
    <attribute name="monitoringEnabled"
               description="Whether EJB activity monitoring is enabled"
               type="boolean"
               writeable="true"/>

    <attribute name="warningThreshold"
               description="Number of milliseconds after which methods will start warning."
               type="int"
               writeable="true"/>

    <attribute name="monitoringSettingsDefinedInDD"
               description="Whether EJB monitoring settings have been defined in the Deployment Descriptor"
               type="boolean"
               writeable="false"/>

    <attribute name="numberOfCalls"
               description="Total number of method calls done on this EJB."
               type="int"
               writeable="false"/>

    <attribute name="totalBusinessProcessingTime"
               description="Total time (in ms) spent in business processing."
               type="long"
               writeable="false"/>

    <attribute name="averageBusinessProcessingTime"
               description="Average time (in ms) per request spent in business processing."
               type="long"
               writeable="false"/>

    <attribute name="totalProcessingTime"
               description="Total time (in ms) spent in business + container processing."
               type="long"
               writeable="false"/>

    <attribute name="averageProcessingTime"
               description="Average time (in ms) per request spent in business + container processing."
               type="long"
               writeable="false"/>

    <!-- JSR77 J2EEManagedObject -->
    <attribute name="objectName"
               description="JMX name of this object"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="stateManageable"
               description="State management support for this managed object"
               is="true"
               type="boolean"
               writeable="false"/>

    <attribute name="statisticsProvider"
               description="Performance statistics support for this managed object"
               is="true"
               type="boolean"
               writeable="false"/>

    <attribute name="eventProvider"
               description="Event provider support for this managed object"
               is="true"
               type="boolean"
               writeable="false"/>
  </mbean>

<!-- MessageDrivenBean Component =========================================================== -->

  <mbean name="MessageDrivenBean"
         description="Deployed Message DrivenBean Bean"
         domain="JOnAS"
         group="J2EEManaged"
         type="org.ow2.jonas.ejb2.internal.mbean.MessageDrivenBean">

    <!-- MessageDrivenBean management -->
    <attribute name="mdbJMSAssociateDestinationName"
               description="the name of the associate destination"
               type="java.lang.String"
               writeable="false"/>

    <!-- JOnAS specific management for all EJB types -->
    <attribute name="name"
               description="EJB name from deployment descriptor"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="fileName"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="allDataSourceName"
               description="the datasources used by this component"
               type="java.util.Hashtable"
               writeable="false"/>

    <attribute name="allJdbcResourceAdapterName"
               description="the JDBC resource adapters used by this component"
               type="java.util.Hashtable"
               writeable="false"/>

    <attribute name="allMailFactorySName"
               description="the Session Mail factories used by this component"
               type="java.util.Hashtable"
               writeable="false"/>

    <attribute name="allMailFactoryMName"
               description="the MimePartDataSource Mail factories used by this component"
               type="java.util.Hashtable"
               writeable="false"/>

    <attribute name="allJMSConnectionFactoryName"
               description="the JMS connection factories used by this component"
               type="java.util.Set"
               writeable="false"/>

    <attribute name="allJMSDestinationName"
               description="the JMS destinations used by this component"
               type="java.util.Set"
               writeable="false"/>

    <attribute name="allURLs"
               description="the URL resources used by this component"
               type="java.util.Set"
               writeable="false"/>

    <attribute name="poolSize"
               type="int"
               writeable="false"/>

    <attribute name="minPoolSize"
               description="minimum number of instances created in the pool when the bean is loaded"
               type="int"
               writeable="false"/>

    <attribute name="maxCacheSize"
               description="maximum number of instances in memory"
               type="int"
               writeable="false"/>

    <attribute name="cacheSize"
               description="current number of instances"
               type="int"
               writeable="false"/>

    <attribute name="ejbClass"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="displayName"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="jndiName"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="homeClass"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="remoteClass"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="localHomeClass"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="localClass"
               type="java.lang.String"
               writeable="false"/>

    <!-- JSR77 J2EEManagedObject -->
    <attribute name="objectName"
               description="JMX name of this object"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="stateManageable"
               description="State management support for this managed object"
               is="true"
               type="boolean"
               writeable="false"/>

    <attribute name="statisticsProvider"
               description="Performance statistics support for this managed object"
               is="true"
               type="boolean"
               writeable="false"/>

    <attribute name="eventProvider"
               description="Event provider support for this managed object"
               is="true"
               type="boolean"
               writeable="false"/>
  </mbean>

<!-- EJBModule =========================================================== -->

  <mbean name="EJBModule"
         description="Deployed EJB JAR module"
         domain="JOnAS"
         group="J2EEDeployed"
         type="org.ow2.jonas.ejb2.internal.mbean.EJBModule">

    <!-- JOnAS specific management -->
    <attribute name="currentNumberOfEJB"
               description="Current number of EJB components in this module"
               type="int"
               writeable="false"/>

    <attribute name="currentNumberOfBMP"
               description="Number of Entity Beans with Bean-Managed Persistency"
               type="int"
               writeable="false"/>

    <attribute name="currentNumberOfCMP"
               description="Number of Entity Beans with Container-Managed Persistency"
               type="int"
               writeable="false"/>

    <attribute name="currentNumberOfSBF"
               description="Number of Stateful Session Beans"
               type="int"
               writeable="false"/>

    <attribute name="currentNumberOfSBL"
               description="Number of Stateless Session Beans"
               type="int"
               writeable="false"/>

    <attribute name="currentNumberOfMDB"
               description="Number of Message-Driven Beans"
               type="int"
               writeable="false"/>

    <attribute name="containerName"
               description="Name of the container containing this module"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="fileName"
               description="File name used to deploy this module (.jar or .xml)"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="earURL"
               description="URL of the ear which containes this web module"
               type="java.net.URL"
               writeable="false"/>

    <attribute name="earON"
               description="OBJECT_NAME of the parent J2EEApplication MBean"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="inEarCase"
               description="true if this web module is part of an ear"
               type="java.lang.boolean"
               is="true"
               writeable="false"/>

    <attribute name="url"
               type="java.net.URL"
               writeable="false" />

    <!-- JSR77 EJBModule -->
    <attribute name="ejbs"
               description="List of EJB components contained in this module"
               type="[Ljava.lang.String;"
               writeable="false"/>

    <!-- JSR77 J2EEModule -->
    <attribute name="javaVMs"
               description="The Java virtual machines on which this module is running"
               type="[Ljava.lang.String;"
               writeable="false"/>

    <!-- JSR77 J2EEDeployedObject -->
    <attribute name="deploymentDescriptor"
               description="The standard deployment descriptor of the ejb-jar"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="jonasDeploymentDescriptor"
               description="The JOnAS deployment descriptor of the ejb-jar"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="server"
               description="The J2EE Server where the application is deployed on"
               type="java.lang.String"
               writeable="false"/>

    <!-- JSR77 J2EEManagedObject -->
    <attribute name="objectName"
               description="JMX name of this object"
               type="java.lang.String"
               writeable="false"/>

    <attribute name="stateManageable"
               description="State management support for this managed object"
               is="true"
               type="boolean"
               writeable="false"/>

    <attribute name="statisticsProvider"
               description="Performance statistics support for this managed object"
               is="true"
               type="boolean"
               writeable="false"/>

    <attribute name="eventProvider"
               description="Event provider support for this managed object"
               is="true"
               type="boolean"
               writeable="false"/>
               <!-- JOnAS specific management for session EJBs -->
    <attribute name="monitoringEnabled"
               description="Whether EJB activity monitoring is enabled"
               type="boolean"
               writeable="true"/>

    <attribute name="warningThreshold"
               description="Number of milliseconds after which methods will start warning."
               type="int"
               writeable="true"/>

    <attribute name="numberOfCalls"
               description="Total number of method calls done on this EJB."
               type="int"
               writeable="false"/>

    <attribute name="totalBusinessProcessingTime"
               description="Total time (in ms) spent in business processing."
               type="long"
               writeable="false"/>

    <attribute name="averageBusinessProcessingTime"
               description="Average time (in ms) per request spent in business processing."
               type="long"
               writeable="false"/>

    <attribute name="totalProcessingTime"
               description="Total time (in ms) spent in business + container processing."
               type="long"
               writeable="false"/>

    <attribute name="averageProcessingTime"
               description="Average time (in ms) per request spent in business + container processing."
               writeable="false"
               type="long"/>
  </mbean>

</mbeans-descriptors>
