<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC
   "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"
   "http://java.sun.com/dtd/ejb-jar_2_0.dtd">

<ejb-jar >

   <enterprise-beans>

      <!-- Session Beans -->
      <session>
         <description>JUnit Session Bean Test Runner</description>
         <ejb-name>EJBTestRunnerEJB</ejb-name>
         <home>net.sourceforge.junitejb.EJBTestRunnerHome</home>
         <remote>net.sourceforge.junitejb.EJBTestRunner</remote>
         <ejb-class>net.sourceforge.junitejb.EJBTestRunnerBean</ejb-class>
         <session-type>Stateless</session-type>
         <transaction-type>Bean</transaction-type>
      </session>

      <session >
         <ejb-name>Facade</ejb-name>
         <home>org.jboss.test.cmp2.optimisticlock.interfaces.FacadeHome</home>
         <remote>org.jboss.test.cmp2.optimisticlock.interfaces.Facade</remote>
         <ejb-class>org.jboss.test.cmp2.optimisticlock.ejb.FacadeBean</ejb-class>
         <session-type>Stateless</session-type>
         <transaction-type>Container</transaction-type>
      </session>

      <!-- Entity Beans -->
      <entity>
         <ejb-name>EntityGroupLocking</ejb-name>

         <local-home>org.jboss.test.cmp2.optimisticlock.interfaces.CmpEntityLocalHome</local-home>
         <local>org.jboss.test.cmp2.optimisticlock.interfaces.CmpEntityLocal</local>

         <ejb-class>org.jboss.test.cmp2.optimisticlock.ejb.CmpEntityBean</ejb-class>
         <persistence-type>Container</persistence-type>
         <prim-key-class>java.lang.Integer</prim-key-class>
         <reentrant>false</reentrant>
         <cmp-version>2.x</cmp-version>
         <abstract-schema-name>EntityGroupLocking</abstract-schema-name>
         <cmp-field >
            <field-name>id</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>stringGroup1</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>integerGroup1</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>doubleGroup1</field-name>
         </cmp-field>
         <cmp-field>
            <field-name>stringGroup2</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>integerGroup2</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>doubleGroup2</field-name>
         </cmp-field>
         <cmp-field>
            <field-name>versionField</field-name>
         </cmp-field>
         <primkey-field>id</primkey-field>
      </entity>

      <entity>
         <ejb-name>EntityModifiedLocking</ejb-name>

         <local-home>org.jboss.test.cmp2.optimisticlock.interfaces.CmpEntityLocalHome</local-home>
         <local>org.jboss.test.cmp2.optimisticlock.interfaces.CmpEntityLocal</local>

         <ejb-class>org.jboss.test.cmp2.optimisticlock.ejb.CmpEntityBean</ejb-class>
         <persistence-type>Container</persistence-type>
         <prim-key-class>java.lang.Integer</prim-key-class>
         <reentrant>false</reentrant>
         <cmp-version>2.x</cmp-version>
         <abstract-schema-name>EntityModifiedLocking</abstract-schema-name>
         <cmp-field >
            <field-name>id</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>stringGroup1</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>integerGroup1</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>doubleGroup1</field-name>
         </cmp-field>
         <cmp-field>
            <field-name>stringGroup2</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>integerGroup2</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>doubleGroup2</field-name>
         </cmp-field>
         <cmp-field>
            <field-name>versionField</field-name>
         </cmp-field>
         <primkey-field>id</primkey-field>
      </entity>

      <entity>
         <ejb-name>EntityReadLocking</ejb-name>

         <local-home>org.jboss.test.cmp2.optimisticlock.interfaces.CmpEntityLocalHome</local-home>
         <local>org.jboss.test.cmp2.optimisticlock.interfaces.CmpEntityLocal</local>

         <ejb-class>org.jboss.test.cmp2.optimisticlock.ejb.CmpEntityBean</ejb-class>
         <persistence-type>Container</persistence-type>
         <prim-key-class>java.lang.Integer</prim-key-class>
         <reentrant>false</reentrant>
         <cmp-version>2.x</cmp-version>
         <abstract-schema-name>EntityReadLocking</abstract-schema-name>
         <cmp-field >
            <field-name>id</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>stringGroup1</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>integerGroup1</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>doubleGroup1</field-name>
         </cmp-field>
         <cmp-field>
            <field-name>stringGroup2</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>integerGroup2</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>doubleGroup2</field-name>
         </cmp-field>
         <cmp-field>
            <field-name>versionField</field-name>
         </cmp-field>
         <primkey-field>id</primkey-field>
      </entity>

      <entity>
         <ejb-name>EntityVersionLocking</ejb-name>

         <local-home>org.jboss.test.cmp2.optimisticlock.interfaces.CmpEntityLocalHome</local-home>
         <local>org.jboss.test.cmp2.optimisticlock.interfaces.CmpEntityLocal</local>

         <ejb-class>org.jboss.test.cmp2.optimisticlock.ejb.CmpEntityBean</ejb-class>
         <persistence-type>Container</persistence-type>
         <prim-key-class>java.lang.Integer</prim-key-class>
         <reentrant>false</reentrant>
         <cmp-version>2.x</cmp-version>
         <abstract-schema-name>EntityVersionLocking</abstract-schema-name>
         <cmp-field >
            <field-name>id</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>stringGroup1</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>integerGroup1</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>doubleGroup1</field-name>
         </cmp-field>
         <cmp-field>
            <field-name>stringGroup2</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>integerGroup2</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>doubleGroup2</field-name>
         </cmp-field>
         <cmp-field>
            <field-name>versionField</field-name>
         </cmp-field>
         <primkey-field>id</primkey-field>
      </entity>

      <entity>
         <ejb-name>EntityExplicitVersionLocking</ejb-name>

         <local-home>org.jboss.test.cmp2.optimisticlock.interfaces.CmpEntityLocalHome</local-home>
         <local>org.jboss.test.cmp2.optimisticlock.interfaces.CmpEntityLocal</local>

         <ejb-class>org.jboss.test.cmp2.optimisticlock.ejb.CmpEntityBean</ejb-class>
         <persistence-type>Container</persistence-type>
         <prim-key-class>java.lang.Integer</prim-key-class>
         <reentrant>false</reentrant>
         <cmp-version>2.x</cmp-version>
         <abstract-schema-name>EntityExplicitVersionLocking</abstract-schema-name>
         <cmp-field >
            <field-name>id</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>stringGroup1</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>integerGroup1</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>doubleGroup1</field-name>
         </cmp-field>
         <cmp-field>
            <field-name>stringGroup2</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>integerGroup2</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>doubleGroup2</field-name>
         </cmp-field>
         <cmp-field>
            <field-name>versionField</field-name>
         </cmp-field>
         <primkey-field>id</primkey-field>
      </entity>

      <entity>
         <ejb-name>EntityTimestampLocking</ejb-name>

         <local-home>org.jboss.test.cmp2.optimisticlock.interfaces.CmpEntityLocalHome</local-home>
         <local>org.jboss.test.cmp2.optimisticlock.interfaces.CmpEntityLocal</local>

         <ejb-class>org.jboss.test.cmp2.optimisticlock.ejb.CmpEntityBean</ejb-class>
         <persistence-type>Container</persistence-type>
         <prim-key-class>java.lang.Integer</prim-key-class>
         <reentrant>false</reentrant>
         <cmp-version>2.x</cmp-version>
         <abstract-schema-name>EntityTimestampLocking</abstract-schema-name>
         <cmp-field >
            <field-name>id</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>stringGroup1</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>integerGroup1</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>doubleGroup1</field-name>
         </cmp-field>
         <cmp-field>
            <field-name>stringGroup2</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>integerGroup2</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>doubleGroup2</field-name>
         </cmp-field>
         <cmp-field>
            <field-name>versionField</field-name>
         </cmp-field>
         <primkey-field>id</primkey-field>
      </entity>

      <entity>
         <ejb-name>EntityKeyGeneratorLocking</ejb-name>

         <local-home>org.jboss.test.cmp2.optimisticlock.interfaces.CmpEntityLocalHome</local-home>
         <local>org.jboss.test.cmp2.optimisticlock.interfaces.CmpEntityLocal</local>

         <ejb-class>org.jboss.test.cmp2.optimisticlock.ejb.CmpEntityBean</ejb-class>
         <persistence-type>Container</persistence-type>
         <prim-key-class>java.lang.Integer</prim-key-class>
         <reentrant>false</reentrant>
         <cmp-version>2.x</cmp-version>
         <abstract-schema-name>EntityKeyGeneratorLocking</abstract-schema-name>
         <cmp-field >
            <field-name>id</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>stringGroup1</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>integerGroup1</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>doubleGroup1</field-name>
         </cmp-field>
         <cmp-field>
            <field-name>stringGroup2</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>integerGroup2</field-name>
         </cmp-field>
         <cmp-field >
            <field-name>doubleGroup2</field-name>
         </cmp-field>
         <cmp-field>
            <field-name>versionField</field-name>
         </cmp-field>
         <primkey-field>id</primkey-field>
      </entity>

   </enterprise-beans>

   <assembly-descriptor>
      <container-transaction >
         <method >
            <ejb-name>Facade</ejb-name>
            <method-name>modifyGroup1InRequiresNew</method-name>
         </method>       
         <method >
            <ejb-name>Facade</ejb-name>
            <method-name>modifyGroup2InRequiresNew</method-name>
         </method>       
         <trans-attribute>RequiresNew</trans-attribute>
      </container-transaction>
   </assembly-descriptor>

</ejb-jar>
