<?xml version="1.0" encoding="UTF-8"?>

<!-- The JBoss service configuration file for the EJB deployer service.
$Id: ejb-deployer.xml,v 1.7.2.4 2005/06/21 12:54:36 dimitris Exp $
-->
<server>

  <!-- ==================================================================== -->
  <!-- J2EE Timer Service                                                   -->
  <!-- ==================================================================== -->

  <!-- An EJB Timer Service that is Tx aware -->
  <mbean code="org.jboss.ejb.txtimer.EJBTimerServiceImpl"
    name="jboss.ejb:service=EJBTimerService">
    <attribute name="RetryPolicy">jboss.ejb:service=EJBTimerService,retryPolicy=fixedDelay</attribute>
    <attribute name="PersistencePolicy">jboss.ejb:service=EJBTimerService,persistencePolicy=database</attribute>
    <attribute name="TimerIdGeneratorClassName">org.jboss.ejb.txtimer.BigIntegerTimerIdGenerator</attribute>
    <attribute name="TimedObjectInvokerClassName">org.jboss.ejb.txtimer.TimedObjectInvokerImpl</attribute>
  </mbean>

  <!-- A retry policy that uses a fixed interval in milli seconds -->
  <mbean code="org.jboss.ejb.txtimer.FixedDelayRetryPolicy" name="jboss.ejb:service=EJBTimerService,retryPolicy=fixedDelay">
    <attribute name="Delay">100</attribute>
  </mbean>

  <!-- A persistence policy that does not persist the timer
  <mbean code="org.jboss.ejb.txtimer.NoopPersistencePolicy" name="jboss.ejb:service=EJBTimerService,persistencePolicy=noop"/>
  -->

  <!-- A persistence policy that persistes timers to a database -->
  <mbean code="org.jboss.ejb.txtimer.DatabasePersistencePolicy" name="jboss.ejb:service=EJBTimerService,persistencePolicy=database">
    <!-- DataSource JNDI name -->
    <depends optional-attribute-name="DataSource">jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
    <!-- The plugin that handles database persistence -->
    <attribute name="DatabasePersistencePlugin">org.jboss.ejb.txtimer.GeneralPurposeDatabasePersistencePlugin</attribute>
  </mbean>

  <!-- ==================================================================== -->
  <!-- EJB Deployer                                                         -->
  <!-- ==================================================================== -->

  <!-- EJB deployer, remove to disable EJB behavior-->
  <mbean code="org.jboss.ejb.EJBDeployer" name="jboss.ejb:service=EJBDeployer" xmbean-dd="">
  
    <!-- Inline XMBean Descriptor BEGIN -->
    <xmbean>
      <description>The EJBDeployer responsible for ejb jar deployment</description>
      <descriptors>
        <interceptors>
          <!-- comment out DynamicInterceptor to disable dynamic addition of interceptors -->
          <interceptor code="org.jboss.mx.interceptor.DynamicInterceptor"/>
        </interceptors>
      </descriptors>
      <class>org.jboss.ejb.EJBDeployer</class>

      <!-- ServiceMBean attributes -->
      <attribute access="read-only" getMethod="getName">
        <description>The class name of the MBean</description>
        <name>Name</name>
        <type>java.lang.String</type>
      </attribute>

      <attribute access="read-only" getMethod="getState">
        <description>The status of the MBean</description>
        <name>State</name>
        <type>int</type>
      </attribute>

      <attribute access="read-only" getMethod="getStateString">
        <description>The status of the MBean in text form</description>
        <name>StateString</name>
        <type>java.lang.String</type>
      </attribute>

      <!-- SubDeployerMBean attributes -->
      <attribute access="read-only" getMethod="getServiceName">
        <description>The ObjectName of the Subdeployer</description>
        <name>ServiceName</name>
        <type>javax.management.ObjectName</type>
      </attribute>

      <attribute access="read-write" getMethod="getSuffixes" setMethod="setSuffixes">
        <description>The suffixes of interest to this deployer</description>
        <name>Suffixes</name>
        <type>[Ljava.lang.String;</type>
      </attribute>

      <attribute access="read-write" getMethod="getRelativeOrder" setMethod="setRelativeOrder">
        <description>The relative order of the suffixes in the global suffixes list</description>
        <name>RelativeOrder</name>
        <type>int</type>
      </attribute>

      <!-- EJBDeployerMBean attributes -->
      <attribute access="read-write" getMethod="getWebServiceName" setMethod="setWebServiceName">
        <description>The dynamic class loading simple web server</description>
        <name>WebServiceName</name>
        <type>javax.management.ObjectName</type>
      </attribute>

      <attribute access="read-write" getMethod="getVerifyDeployments" setMethod="setVerifyDeployments">
        <description>Control the bean verifier (on/off)</description>
        <name>VerifyDeployments</name>
        <type>boolean</type>
      </attribute>

      <attribute access="read-write" getMethod="getVerifierVerbose" setMethod="setVerifierVerbose">
        <description>Control the verbose mode of the bean verifier</description>
        <name>VerifierVerbose</name>
        <type>boolean</type>
      </attribute>

      <attribute access="read-write" getMethod="getStrictVerifier" setMethod="setStrictVerifier">
        <description>Control the strictness of the bean verifier</description>
        <name>StrictVerifier</name>
        <type>boolean</type>
      </attribute>

      <attribute access="read-write" getMethod="isCallByValue" setMethod="setCallByValue">
        <description>Enable/disable call-by-value semantics</description>
        <name>CallByValue</name>
        <type>boolean</type>
      </attribute>

      <attribute access="read-write" getMethod="getValidateDTDs" setMethod="setValidateDTDs">
        <description>Enable/disable the validation of deployment descriptors</description>
        <name>ValidateDTDs</name>
        <type>boolean</type>
      </attribute>

      <attribute access="read-write" getMethod="isMetricsEnabled" setMethod="setMetricsEnabled">
        <description>Enable/disable the metrics interceptor for containers</description>
        <name>MetricsEnabled</name>
        <type>boolean</type>
      </attribute>

      <attribute access="read-write" getMethod="getTransactionManagerServiceName" setMethod="setTransactionManagerServiceName">
        <description>The transaction manager service to use</description>
        <name>TransactionManagerServiceName</name>
        <type>javax.management.ObjectName</type>
      </attribute>

      <!-- EJBDeployerMBean operations -->
      <operation>
        <description>List the deployed applications</description>
        <name>listDeployedApplications</name>
        <return-type>java.util.Iterator</return-type>
      </operation>

      <!-- ServiceMBean operations -->
      <operation>
        <description>Standard MBean lifecycle method</description>
        <name>create</name>
      </operation>

      <operation>
        <description>The start lifecycle operation</description>
        <name>start</name>
      </operation>

      <operation>
        <description>The stop lifecycle operation</description>
        <name>stop</name>
      </operation>

      <operation>
        <description>The destroy lifecycle operation</description>
        <name>destroy</name>
      </operation>

      <operation>
        <description>The detyped lifecycle operation (for internal use only)</description>
        <name>jbossInternalLifecycle</name>
        <parameter>
          <description>The lifecycle operation</description>
          <name>method</name>
          <type>java.lang.String</type>
        </parameter>
        <return-type>void</return-type>
      </operation>

      <!-- SubDeployerMBean operations -->
      <operation>
        <description>Accept a module for deployment</description>
        <name>accepts</name>
        <parameter>
          <name>info</name>
          <type>org.jboss.deployment.DeploymentInfo</type>
        </parameter>
        <return-type>boolean</return-type>
      </operation>

      <operation>
        <description>Initialize deployment step</description>
        <name>init</name>
        <parameter>
          <name>info</name>
          <type>org.jboss.deployment.DeploymentInfo</type>
        </parameter>
      </operation>

      <operation>
        <description>Create deployment step</description>
        <name>create</name>
        <parameter>
          <name>info</name>
          <type>org.jboss.deployment.DeploymentInfo</type>
        </parameter>
      </operation>

      <operation>
        <description>Start deployment step</description>
        <name>start</name>
        <parameter>
          <name>info</name>
          <type>org.jboss.deployment.DeploymentInfo</type>
        </parameter>
      </operation>

      <operation>
        <description>Stop deployment step</description>
        <name>stop</name>
        <parameter>
          <name>info</name>
          <type>org.jboss.deployment.DeploymentInfo</type>
        </parameter>
      </operation>

      <operation>
        <description>Destroy deployment step</description>
        <name>destroy</name>
        <parameter>
          <name>info</name>
          <type>org.jboss.deployment.DeploymentInfo</type>
        </parameter>
      </operation>

      <!-- Interceptable operations -->
      <operation>
        <description>Add dynamically an operation interceptor</description>
        <name>addOperationInterceptor</name>
        <parameter>
          <description>The Interceptor</description>
          <name>interceptor</name>
          <type>org.jboss.mx.interceptor.Interceptor</type>
        </parameter>
      </operation>

      <operation>
        <description>Remove dynamically an operation interceptor</description>
        <name>removeOperationInterceptor</name>
        <parameter>
          <description>The Interceptor</description>
          <name>interceptor</name>
          <type>org.jboss.mx.interceptor.Interceptor</type>
        </parameter>
      </operation>      
    </xmbean>
    <!-- Inline XMBean Descriptor END -->
      
    <!-- A flag indicating if the deployer should validate the
    ejb-jar.xml/jboss.xml descriptors and components
    -->
    <attribute name="VerifyDeployments">true</attribute>
    <!-- A flag indicating if the xml parser should validate the descriptor
    DTDs
    -->
    <attribute name="ValidateDTDs">false</attribute>
    <!-- A flag indicating if the verifier should be verbose about its
    operation
    -->
    <attribute name="VerifierVerbose">true</attribute>
    <!-- Setting this to 'true' will cause all deployments
     to fail when the Verifier detected a problem with the contained
     Beans. If false, warnings/errors will be logged but the deployment
     will not fail.
    -->
    <attribute name="StrictVerifier">true</attribute>

    <!-- The EJBDeployer needs the JTA transaction manager service -->
    <depends optional-attribute-name="TransactionManagerServiceName">jboss:service=TransactionManager</depends>
    <!-- The dynamic class loading simple web server -->
    <depends optional-attribute-name="WebServiceName">jboss:service=WebService</depends>
    
  </mbean>

</server>
