[jboss-cvs] JBossAS SVN: r99086 - in projects/jboss-jca/trunk: core/src/test/resources and 5 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jan 6 21:00:16 EST 2010


Author: jesper.pedersen
Date: 2010-01-06 21:00:15 -0500 (Wed, 06 Jan 2010)
New Revision: 99086

Removed:
   projects/jboss-jca/trunk/sjc/src/main/resources/jbossts-properties.xml
   projects/jboss-jca/trunk/standalone/src/main/resources/jbossts-properties.xml
Modified:
   projects/jboss-jca/trunk/build.xml
   projects/jboss-jca/trunk/core/src/test/resources/transaction-jboss-beans.xml
   projects/jboss-jca/trunk/embedded/src/main/resources/transaction.xml
   projects/jboss-jca/trunk/ivy.xml
   projects/jboss-jca/trunk/sjc/src/main/resources/bootstrap/transaction.xml
   projects/jboss-jca/trunk/standalone/src/main/resources/bootstrap/transaction.xml
Log:
[JBJCA-254] JBossTS 4.9.0.GA

Modified: projects/jboss-jca/trunk/build.xml
===================================================================
--- projects/jboss-jca/trunk/build.xml	2010-01-07 01:39:33 UTC (rev 99085)
+++ projects/jboss-jca/trunk/build.xml	2010-01-07 02:00:15 UTC (rev 99086)
@@ -108,7 +108,7 @@
   <property name="version.jboss.shrinkwrap" value="1.0.0-alpha-3"/>
   <property name="version.jboss.slf4j" value="1.0.2.GA"/>
   <property name="version.jboss.slf4j.logmanager" value="1.0.0.CR2"/>
-  <property name="version.jboss.ts" value="4.6.1.GA"/>
+  <property name="version.jboss.ts" value="4.9.0.GA"/>
   <property name="version.jboss.vfs" value="2.1.3.SP1"/>
   <property name="version.jboss.xb" value="2.0.1.GA"/>
   <property name="version.jdepend" value="2.9.1"/>

Modified: projects/jboss-jca/trunk/core/src/test/resources/transaction-jboss-beans.xml
===================================================================
--- projects/jboss-jca/trunk/core/src/test/resources/transaction-jboss-beans.xml	2010-01-07 01:39:33 UTC (rev 99085)
+++ projects/jboss-jca/trunk/core/src/test/resources/transaction-jboss-beans.xml	2010-01-07 02:00:15 UTC (rev 99086)
@@ -1,27 +1,160 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<!--
-    JBoss JCA
--->
 <deployment>
 
-  <!-- JMX -->
-  <bean name="JMX" class="org.jboss.jca.test.core.common.JMX"/>
-
-  <!-- Transaction manager -->
-  <bean name="TransactionManager" class="com.arjuna.ats.jbossatx.jta.TransactionManagerService">
-    <!-- <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss:service=TransactionManager", exposedInterface=com.arjuna.ats.jbossatx.jta.TransactionManagerServiceMBean.class, registerDirectly=true)</annotation> -->
-    <property name="transactionTimeout">300</property>
-    <property name="objectStoreDir">${test.dir}/tx-object-store</property>
-    <property name="mbeanServer"><inject bean="JMX" property="mbeanServer"/></property>
+  <bean name="LoggingEnvironmentBean" class="com.arjuna.common.internal.util.logging.LoggingEnvironmentBean">
+    <constructor factoryClass="com.arjuna.common.internal.util.logging.commonPropertyManager" factoryMethod="getLoggingEnvironmentBean"/>
+    <property name="loggingFactory">com.arjuna.common.internal.util.logging.jakarta.JakartaRelevelingLogFactory;com.arjuna.common.internal.util.logging.jakarta.Log4JLogger</property>
+  </bean>
+  
+  <bean name="RecoveryEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.arjuna.common.recoveryPropertyManager" factoryMethod="getRecoveryEnvironmentBean"/>    
+    <property name="recoveryInetAddress">localhost</property>
+    <property name="recoveryPort">4712</property>
     <property name="transactionStatusManagerInetAddress">localhost</property>
     <property name="transactionStatusManagerPort">4713</property>
-    <property name="recoveryInetAddress">localhost</property>
-    <property name="recoveryPort">4712</property>
+    <property name="recoveryExtensions">
+      <list elementClass="java.lang.String">
+        <value>com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule</value>
+        <value>com.arjuna.ats.internal.txoj.recovery.TORecoveryModule</value>
+        <value>com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule</value>
+      </list>
+    </property>
+    <property name="expiryScanners">
+      <list elementClass="java.lang.String">
+        <value>com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner</value>
+      </list>
+    </property>
+    <property name="recoveryActivators">
+      <null/>
+    </property>
+  </bean>
+  
+  <bean name="CoreEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.arjuna.common.arjPropertyManager" factoryMethod="getCoreEnvironmentBean"/>
     <property name="socketProcessIdPort">0</property>    
+    <property name="nodeIdentifier">1</property>
+    <property name="socketProcessIdMaxPorts">10</property>
+  </bean>
+  
+  <bean name="CoordinatorEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.arjuna.common.arjPropertyManager" factoryMethod="getCoordinatorEnvironmentBean"/>
+    <property name="enableStatistics">false</property>
+    <property name="defaultTimeout">300</property>
+  </bean>
+  
+  <bean name="ObjectStoreEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.arjuna.common.arjPropertyManager" factoryMethod="getObjectStoreEnvironmentBean"/>
+    <property name="objectStoreDir">${jboss.jca.home}/tmp/tx-object-store</property>
+  </bean>
+  
+  <bean name="JTAEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.jta.common.jtaPropertyManager" factoryMethod="getJTAEnvironmentBean"/>
+    <property name="lastResourceOptimisationInterface">org.jboss.tm.LastResource</property>
+    <property name="jtaTMImplementation">com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate</property>
+    <property name="jtaUTImplementation">com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple</property>
+    <property name="jtaTSRImplementation">com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple</property>
+    <property name="xaRecoveryNodes">
+      <list elementClass="java.lang.String">
+        <value>1</value>
+      </list>
+    </property>
+  </bean>
+  
+  <bean name="RecoveryManager" class="com.arjuna.ats.jbossatx.jta.RecoveryManagerService">
+    <depends>LoggingEnvironmentBean</depends>
+    <depends>RecoveryEnvironmentBean</depends>
+  </bean>
+  
+  <bean name="XATerminator" class="com.arjuna.ats.internal.jbossatx.jta.jca.XATerminator"/>
+  
+  <bean name="TransactionSynchronizationRegistry" class="com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple"/>
+  
+  <bean name="TransactionManager" class="com.arjuna.ats.jbossatx.jta.TransactionManagerService">
+    <property name="jbossXATerminator"><inject bean="XATerminator"/></property>
+    <property name="transactionSynchronizationRegistry"><inject bean="TransactionSynchronizationRegistry"/></property>
+    <depends>LoggingEnvironmentBean</depends>
+    <depends>RecoveryEnvironmentBean</depends>
+    <depends>CoreEnvironmentBean</depends>
+    <depends>CoordinatorEnvironmentBean</depends>
+    <depends>ObjectStoreEnvironmentBean</depends>
+    <depends>JTAEnvironmentBean</depends>
+    <depends>RecoveryManager</depends>
+    <depends>TransactionManagerJNDIBinding</depends>
+    <depends>TransactionSynchronizationRegistryJNDIBinding</depends>
+    <depends>TransactionPropagationContextImporterJNDIBinding</depends>
+    <depends>TransactionPropagationContextExporterJNDIBinding</depends>
+  </bean>
+  
+  <bean name="TransactionStatistics">
+    <constructor factoryClass="com.arjuna.ats.arjuna.coordinator.TxStats" factoryMethod="getInstance"/>
+  </bean>
+  
+  <bean name="TransactionManagerJNDIBinding" class="com.arjuna.ats.jta.utils.JNDIReferenceBindingBean">
+    <property name="bindName">java:/TransactionManager</property>
+    <property name="className">
+      <inject bean="JTAEnvironmentBean" property="jtaTMImplementation"/>
+    </property>
+    <property name="factory">
+      <inject bean="JTAEnvironmentBean" property="jtaTMImplementation"/>
+    </property>
+    
+    <install method="bind"/>
+    <uninstall method="unbind"/>
+  </bean>
+  
+  <bean name="TransactionSynchronizationRegistryJNDIBinding" class="com.arjuna.ats.jta.utils.JNDIReferenceBindingBean">
+    <property name="bindName">java:/TransactionSynchronizationRegistry</property>
+    <property name="className">
+      <inject bean="JTAEnvironmentBean" property="jtaTSRImplementation"/>
+    </property>
+    <property name="factory">
+      <inject bean="JTAEnvironmentBean" property="jtaTSRImplementation"/>
+    </property>
+    
+    <install method="bind"/>
+    <uninstall method="unbind"/>
+  </bean>
+    
+  <bean name="TransactionPropagationContextImporterJNDIBinding" class="com.arjuna.ats.jta.utils.JNDIReferenceBindingBean">
+    <property name="bindName">java:/TransactionPropagationContextImporter</property>
+    <property name="className">com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager</property>
+    <property name="factory">com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager</property>
+    
+    <install method="bind"/>
+    <uninstall method="unbind"/>
+  </bean>
+  
+  <bean name="TransactionPropagationContextExporterJNDIBinding" class="com.arjuna.ats.jta.utils.JNDIReferenceBindingBean">
+    <property name="bindName">java:/TransactionPropagationContextExporter</property>
+    <property name="className">com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager</property>
+    <property name="factory">com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager</property>
+    
+    <install method="bind"/>
+    <uninstall method="unbind"/>
+  </bean>
+  
+  <bean name="RealTransactionManager">
+    <constructor factoryMethod="getTransactionManager">
+      <factory bean="TransactionManager"/>
+    </constructor>
+  </bean>
+  
+  <!-- Handles user transaction providers and listeners -->
+  <bean name="UserTransactionRegistry" class="org.jboss.tm.usertx.UserTransactionRegistry">
+    <!-- Register providers -->
+    <incallback method="addProvider"/>
+    <uncallback method="removeProvider"/>
 
-    <depends>JMX</depends>
-    <depends>NamingServer</depends>
+    <!-- Register listeners -->
+    <incallback method="addListener"/>
+    <uncallback method="removeListener"/>
   </bean>
-
+  
+  <!-- The provider for default in process UserTransactions -->
+  <bean name="DefaultUserTransactionprovider" class="org.jboss.tm.usertx.client.ServerVMClientUserTransaction">
+    <constructor factoryClass="org.jboss.tm.usertx.client.ServerVMClientUserTransaction" factoryMethod="getSingleton"/>
+    <depends>TransactionManager</depends>
+  </bean>
+  
 </deployment>

Modified: projects/jboss-jca/trunk/embedded/src/main/resources/transaction.xml
===================================================================
--- projects/jboss-jca/trunk/embedded/src/main/resources/transaction.xml	2010-01-07 01:39:33 UTC (rev 99085)
+++ projects/jboss-jca/trunk/embedded/src/main/resources/transaction.xml	2010-01-07 02:00:15 UTC (rev 99086)
@@ -1,20 +1,160 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
 <deployment>
+
+  <bean name="LoggingEnvironmentBean" class="com.arjuna.common.internal.util.logging.LoggingEnvironmentBean">
+    <constructor factoryClass="com.arjuna.common.internal.util.logging.commonPropertyManager" factoryMethod="getLoggingEnvironmentBean"/>
+    <property name="loggingFactory">com.arjuna.common.internal.util.logging.jakarta.JakartaRelevelingLogFactory;com.arjuna.common.internal.util.logging.jakarta.Log4JLogger</property>
+  </bean>
   
-  <!-- Transaction manager -->
-  <bean name="TransactionManager" class="com.arjuna.ats.jbossatx.jta.TransactionManagerService">
-    <property name="transactionTimeout">300</property>
-    <property name="objectStoreDir">${jboss.jca.home}/tmp/tx-object-store</property>
-    <property name="mbeanServer"><inject bean="Kernel" property="MBeanServer"/></property>
+  <bean name="RecoveryEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.arjuna.common.recoveryPropertyManager" factoryMethod="getRecoveryEnvironmentBean"/>    
+    <property name="recoveryInetAddress">localhost</property>
+    <property name="recoveryPort">4712</property>
     <property name="transactionStatusManagerInetAddress">localhost</property>
     <property name="transactionStatusManagerPort">4713</property>
-    <property name="recoveryInetAddress">localhost</property>
-    <property name="recoveryPort">4712</property>
+    <property name="recoveryExtensions">
+      <list elementClass="java.lang.String">
+        <value>com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule</value>
+        <value>com.arjuna.ats.internal.txoj.recovery.TORecoveryModule</value>
+        <value>com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule</value>
+      </list>
+    </property>
+    <property name="expiryScanners">
+      <list elementClass="java.lang.String">
+        <value>com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner</value>
+      </list>
+    </property>
+    <property name="recoveryActivators">
+      <null/>
+    </property>
+  </bean>
+  
+  <bean name="CoreEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.arjuna.common.arjPropertyManager" factoryMethod="getCoreEnvironmentBean"/>
     <property name="socketProcessIdPort">0</property>    
-    <depends>NamingServer</depends>
+    <property name="nodeIdentifier">1</property>
+    <property name="socketProcessIdMaxPorts">10</property>
   </bean>
+  
+  <bean name="CoordinatorEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.arjuna.common.arjPropertyManager" factoryMethod="getCoordinatorEnvironmentBean"/>
+    <property name="enableStatistics">false</property>
+    <property name="defaultTimeout">300</property>
+  </bean>
+  
+  <bean name="ObjectStoreEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.arjuna.common.arjPropertyManager" factoryMethod="getObjectStoreEnvironmentBean"/>
+    <property name="objectStoreDir">${jboss.jca.home}/tmp/tx-object-store</property>
+  </bean>
+  
+  <bean name="JTAEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.jta.common.jtaPropertyManager" factoryMethod="getJTAEnvironmentBean"/>
+    <property name="lastResourceOptimisationInterface">org.jboss.tm.LastResource</property>
+    <property name="jtaTMImplementation">com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate</property>
+    <property name="jtaUTImplementation">com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple</property>
+    <property name="jtaTSRImplementation">com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple</property>
+    <property name="xaRecoveryNodes">
+      <list elementClass="java.lang.String">
+        <value>1</value>
+      </list>
+    </property>
+  </bean>
+  
+  <bean name="RecoveryManager" class="com.arjuna.ats.jbossatx.jta.RecoveryManagerService">
+    <depends>LoggingEnvironmentBean</depends>
+    <depends>RecoveryEnvironmentBean</depends>
+  </bean>
+  
+  <bean name="XATerminator" class="com.arjuna.ats.internal.jbossatx.jta.jca.XATerminator"/>
+  
+  <bean name="TransactionSynchronizationRegistry" class="com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple"/>
+  
+  <bean name="TransactionManager" class="com.arjuna.ats.jbossatx.jta.TransactionManagerService">
+    <property name="jbossXATerminator"><inject bean="XATerminator"/></property>
+    <property name="transactionSynchronizationRegistry"><inject bean="TransactionSynchronizationRegistry"/></property>
+    <depends>LoggingEnvironmentBean</depends>
+    <depends>RecoveryEnvironmentBean</depends>
+    <depends>CoreEnvironmentBean</depends>
+    <depends>CoordinatorEnvironmentBean</depends>
+    <depends>ObjectStoreEnvironmentBean</depends>
+    <depends>JTAEnvironmentBean</depends>
+    <depends>RecoveryManager</depends>
+    <depends>TransactionManagerJNDIBinding</depends>
+    <depends>TransactionSynchronizationRegistryJNDIBinding</depends>
+    <depends>TransactionPropagationContextImporterJNDIBinding</depends>
+    <depends>TransactionPropagationContextExporterJNDIBinding</depends>
+  </bean>
+  
+  <bean name="TransactionStatistics">
+    <constructor factoryClass="com.arjuna.ats.arjuna.coordinator.TxStats" factoryMethod="getInstance"/>
+  </bean>
+  
+  <bean name="TransactionManagerJNDIBinding" class="com.arjuna.ats.jta.utils.JNDIReferenceBindingBean">
+    <property name="bindName">java:/TransactionManager</property>
+    <property name="className">
+      <inject bean="JTAEnvironmentBean" property="jtaTMImplementation"/>
+    </property>
+    <property name="factory">
+      <inject bean="JTAEnvironmentBean" property="jtaTMImplementation"/>
+    </property>
+    
+    <install method="bind"/>
+    <uninstall method="unbind"/>
+  </bean>
+  
+  <bean name="TransactionSynchronizationRegistryJNDIBinding" class="com.arjuna.ats.jta.utils.JNDIReferenceBindingBean">
+    <property name="bindName">java:/TransactionSynchronizationRegistry</property>
+    <property name="className">
+      <inject bean="JTAEnvironmentBean" property="jtaTSRImplementation"/>
+    </property>
+    <property name="factory">
+      <inject bean="JTAEnvironmentBean" property="jtaTSRImplementation"/>
+    </property>
+    
+    <install method="bind"/>
+    <uninstall method="unbind"/>
+  </bean>
+    
+  <bean name="TransactionPropagationContextImporterJNDIBinding" class="com.arjuna.ats.jta.utils.JNDIReferenceBindingBean">
+    <property name="bindName">java:/TransactionPropagationContextImporter</property>
+    <property name="className">com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager</property>
+    <property name="factory">com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager</property>
+    
+    <install method="bind"/>
+    <uninstall method="unbind"/>
+  </bean>
+  
+  <bean name="TransactionPropagationContextExporterJNDIBinding" class="com.arjuna.ats.jta.utils.JNDIReferenceBindingBean">
+    <property name="bindName">java:/TransactionPropagationContextExporter</property>
+    <property name="className">com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager</property>
+    <property name="factory">com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager</property>
+    
+    <install method="bind"/>
+    <uninstall method="unbind"/>
+  </bean>
+  
+  <bean name="RealTransactionManager">
+    <constructor factoryMethod="getTransactionManager">
+      <factory bean="TransactionManager"/>
+    </constructor>
+  </bean>
+  
+  <!-- Handles user transaction providers and listeners -->
+  <bean name="UserTransactionRegistry" class="org.jboss.tm.usertx.UserTransactionRegistry">
+    <!-- Register providers -->
+    <incallback method="addProvider"/>
+    <uncallback method="removeProvider"/>
 
-  <!-- Transaction synchronization registry -->
-  <bean name="TransactionSynchronizationRegistry" 
-        class="com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple"/>
-
+    <!-- Register listeners -->
+    <incallback method="addListener"/>
+    <uncallback method="removeListener"/>
+  </bean>
+  
+  <!-- The provider for default in process UserTransactions -->
+  <bean name="DefaultUserTransactionprovider" class="org.jboss.tm.usertx.client.ServerVMClientUserTransaction">
+    <constructor factoryClass="org.jboss.tm.usertx.client.ServerVMClientUserTransaction" factoryMethod="getSingleton"/>
+    <depends>TransactionManager</depends>
+  </bean>
+  
 </deployment>

Modified: projects/jboss-jca/trunk/ivy.xml
===================================================================
--- projects/jboss-jca/trunk/ivy.xml	2010-01-07 01:39:33 UTC (rev 99085)
+++ projects/jboss-jca/trunk/ivy.xml	2010-01-07 02:00:15 UTC (rev 99086)
@@ -46,7 +46,6 @@
     <dependency org="javax.xml.bind" name="jaxb-api" rev="${version.jaxb.api}" conf="standalone->default;sjc->*"/>
     <dependency org="jboss.jbossts" name="jbossjts" rev="${version.jboss.ts}" conf="standalone->default;sjc->*"/>
     <dependency org="jboss.jbossts" name="jbossjts-integration" rev="${version.jboss.ts}" conf="standalone->default;sjc->*"/>
-    <dependency org="jboss.jbossts" name="jbossts-common" rev="${version.jboss.ts}" conf="standalone->default;sjc->*"/>
     <dependency org="jdepend" name="jdepend" rev="${version.jdepend}" conf="standalone->default;sjc->*"/>
     <dependency org="junit" name="junit" rev="${version.junit}" conf="test->default"/>
     <dependency org="org.easymock" name="easymock" rev="${version.easymock}" conf="test->default"/>

Modified: projects/jboss-jca/trunk/sjc/src/main/resources/bootstrap/transaction.xml
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/resources/bootstrap/transaction.xml	2010-01-07 01:39:33 UTC (rev 99085)
+++ projects/jboss-jca/trunk/sjc/src/main/resources/bootstrap/transaction.xml	2010-01-07 02:00:15 UTC (rev 99086)
@@ -1,20 +1,160 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
 <deployment>
+
+  <bean name="LoggingEnvironmentBean" class="com.arjuna.common.internal.util.logging.LoggingEnvironmentBean">
+    <constructor factoryClass="com.arjuna.common.internal.util.logging.commonPropertyManager" factoryMethod="getLoggingEnvironmentBean"/>
+    <property name="loggingFactory">com.arjuna.common.internal.util.logging.jakarta.JakartaRelevelingLogFactory;com.arjuna.common.internal.util.logging.jakarta.Log4JLogger</property>
+  </bean>
   
-  <!-- Transaction manager -->
-  <bean name="TransactionManager" class="com.arjuna.ats.jbossatx.jta.TransactionManagerService">
-    <property name="transactionTimeout">300</property>
-    <property name="objectStoreDir">${jboss.jca.home}/tmp/tx-object-store</property>
-    <property name="mbeanServer"><inject bean="Kernel" property="MBeanServer"/></property>
+  <bean name="RecoveryEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.arjuna.common.recoveryPropertyManager" factoryMethod="getRecoveryEnvironmentBean"/>    
+    <property name="recoveryInetAddress">localhost</property>
+    <property name="recoveryPort">4712</property>
     <property name="transactionStatusManagerInetAddress">localhost</property>
     <property name="transactionStatusManagerPort">4713</property>
-    <property name="recoveryInetAddress">localhost</property>
-    <property name="recoveryPort">4712</property>
+    <property name="recoveryExtensions">
+      <list elementClass="java.lang.String">
+        <value>com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule</value>
+        <value>com.arjuna.ats.internal.txoj.recovery.TORecoveryModule</value>
+        <value>com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule</value>
+      </list>
+    </property>
+    <property name="expiryScanners">
+      <list elementClass="java.lang.String">
+        <value>com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner</value>
+      </list>
+    </property>
+    <property name="recoveryActivators">
+      <null/>
+    </property>
+  </bean>
+  
+  <bean name="CoreEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.arjuna.common.arjPropertyManager" factoryMethod="getCoreEnvironmentBean"/>
     <property name="socketProcessIdPort">0</property>    
-    <depends>NamingServer</depends>
+    <property name="nodeIdentifier">1</property>
+    <property name="socketProcessIdMaxPorts">10</property>
   </bean>
+  
+  <bean name="CoordinatorEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.arjuna.common.arjPropertyManager" factoryMethod="getCoordinatorEnvironmentBean"/>
+    <property name="enableStatistics">false</property>
+    <property name="defaultTimeout">300</property>
+  </bean>
+  
+  <bean name="ObjectStoreEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.arjuna.common.arjPropertyManager" factoryMethod="getObjectStoreEnvironmentBean"/>
+    <property name="objectStoreDir">${jboss.jca.home}/tmp/tx-object-store</property>
+  </bean>
+  
+  <bean name="JTAEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.jta.common.jtaPropertyManager" factoryMethod="getJTAEnvironmentBean"/>
+    <property name="lastResourceOptimisationInterface">org.jboss.tm.LastResource</property>
+    <property name="jtaTMImplementation">com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate</property>
+    <property name="jtaUTImplementation">com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple</property>
+    <property name="jtaTSRImplementation">com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple</property>
+    <property name="xaRecoveryNodes">
+      <list elementClass="java.lang.String">
+        <value>1</value>
+      </list>
+    </property>
+  </bean>
+  
+  <bean name="RecoveryManager" class="com.arjuna.ats.jbossatx.jta.RecoveryManagerService">
+    <depends>LoggingEnvironmentBean</depends>
+    <depends>RecoveryEnvironmentBean</depends>
+  </bean>
+  
+  <bean name="XATerminator" class="com.arjuna.ats.internal.jbossatx.jta.jca.XATerminator"/>
+  
+  <bean name="TransactionSynchronizationRegistry" class="com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple"/>
+  
+  <bean name="TransactionManager" class="com.arjuna.ats.jbossatx.jta.TransactionManagerService">
+    <property name="jbossXATerminator"><inject bean="XATerminator"/></property>
+    <property name="transactionSynchronizationRegistry"><inject bean="TransactionSynchronizationRegistry"/></property>
+    <depends>LoggingEnvironmentBean</depends>
+    <depends>RecoveryEnvironmentBean</depends>
+    <depends>CoreEnvironmentBean</depends>
+    <depends>CoordinatorEnvironmentBean</depends>
+    <depends>ObjectStoreEnvironmentBean</depends>
+    <depends>JTAEnvironmentBean</depends>
+    <depends>RecoveryManager</depends>
+    <depends>TransactionManagerJNDIBinding</depends>
+    <depends>TransactionSynchronizationRegistryJNDIBinding</depends>
+    <depends>TransactionPropagationContextImporterJNDIBinding</depends>
+    <depends>TransactionPropagationContextExporterJNDIBinding</depends>
+  </bean>
+  
+  <bean name="TransactionStatistics">
+    <constructor factoryClass="com.arjuna.ats.arjuna.coordinator.TxStats" factoryMethod="getInstance"/>
+  </bean>
+  
+  <bean name="TransactionManagerJNDIBinding" class="com.arjuna.ats.jta.utils.JNDIReferenceBindingBean">
+    <property name="bindName">java:/TransactionManager</property>
+    <property name="className">
+      <inject bean="JTAEnvironmentBean" property="jtaTMImplementation"/>
+    </property>
+    <property name="factory">
+      <inject bean="JTAEnvironmentBean" property="jtaTMImplementation"/>
+    </property>
+    
+    <install method="bind"/>
+    <uninstall method="unbind"/>
+  </bean>
+  
+  <bean name="TransactionSynchronizationRegistryJNDIBinding" class="com.arjuna.ats.jta.utils.JNDIReferenceBindingBean">
+    <property name="bindName">java:/TransactionSynchronizationRegistry</property>
+    <property name="className">
+      <inject bean="JTAEnvironmentBean" property="jtaTSRImplementation"/>
+    </property>
+    <property name="factory">
+      <inject bean="JTAEnvironmentBean" property="jtaTSRImplementation"/>
+    </property>
+    
+    <install method="bind"/>
+    <uninstall method="unbind"/>
+  </bean>
+    
+  <bean name="TransactionPropagationContextImporterJNDIBinding" class="com.arjuna.ats.jta.utils.JNDIReferenceBindingBean">
+    <property name="bindName">java:/TransactionPropagationContextImporter</property>
+    <property name="className">com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager</property>
+    <property name="factory">com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager</property>
+    
+    <install method="bind"/>
+    <uninstall method="unbind"/>
+  </bean>
+  
+  <bean name="TransactionPropagationContextExporterJNDIBinding" class="com.arjuna.ats.jta.utils.JNDIReferenceBindingBean">
+    <property name="bindName">java:/TransactionPropagationContextExporter</property>
+    <property name="className">com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager</property>
+    <property name="factory">com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager</property>
+    
+    <install method="bind"/>
+    <uninstall method="unbind"/>
+  </bean>
+  
+  <bean name="RealTransactionManager">
+    <constructor factoryMethod="getTransactionManager">
+      <factory bean="TransactionManager"/>
+    </constructor>
+  </bean>
+  
+  <!-- Handles user transaction providers and listeners -->
+  <bean name="UserTransactionRegistry" class="org.jboss.tm.usertx.UserTransactionRegistry">
+    <!-- Register providers -->
+    <incallback method="addProvider"/>
+    <uncallback method="removeProvider"/>
 
-  <!-- Transaction synchronization registry -->
-  <bean name="TransactionSynchronizationRegistry" 
-        class="com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple"/>
-
+    <!-- Register listeners -->
+    <incallback method="addListener"/>
+    <uncallback method="removeListener"/>
+  </bean>
+  
+  <!-- The provider for default in process UserTransactions -->
+  <bean name="DefaultUserTransactionprovider" class="org.jboss.tm.usertx.client.ServerVMClientUserTransaction">
+    <constructor factoryClass="org.jboss.tm.usertx.client.ServerVMClientUserTransaction" factoryMethod="getSingleton"/>
+    <depends>TransactionManager</depends>
+  </bean>
+  
 </deployment>

Deleted: projects/jboss-jca/trunk/sjc/src/main/resources/jbossts-properties.xml
===================================================================
--- projects/jboss-jca/trunk/sjc/src/main/resources/jbossts-properties.xml	2010-01-07 01:39:33 UTC (rev 99085)
+++ projects/jboss-jca/trunk/sjc/src/main/resources/jbossts-properties.xml	2010-01-07 02:00:15 UTC (rev 99086)
@@ -1,333 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<transaction-service>
-    <properties name="documentation">
-        <!--
-        This is the JBossTS configuration file. Note that starting with JBossTS 4.6
-        the names jbossjta-properties.xml and jbossjts-properties.xml are obsolete.
-        
-        Both the JTA and JTS versions of JBossTS now read their configuration from
-        jbossts-properties.xml, although the contents of the file differs between
-        the JTA and JTS. Care should be taken to use the correct version of the file.
-        
-        ***************************
-        
-        Property values may be literals or be tokens of the form ${p1[,p2][:v]}
-        in which case the token values are substituted for the values of the corresponding system
-        properties as follows:
- 
-        - Any occurance of ${p} with the System.getProperty(p) value.
-        If there is no such property p defined, then the ${p} reference will remain unchanged.
-
-        - If the property reference is of the form ${p:v} and there is no such property p,
-        then the default value v will be returned.
-
-        - If the property reference is of the form ${p1,p2} or ${p1,p2:v} then
-        the primary and the secondary properties will be tried in turn, before
-        returning either the unchanged input, or the default value.
-        
-        The property ${/} is replaced with System.getProperty("file.separator")
-        value and the property ${:} is replaced with System.getProperty("path.separator").
-        
-        Note this substitution applies to property values only at the point they are read from
-        the config file. Tokens in system properties won't be substituted.
-        -->
-    </properties>
-    <properties depends="common" name="arjuna">
-        <!--
-        Transaction Reaper Timeout (default is 120000 ms).
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.coordinator.txReaperTimeout" value="120000"/>
-        <!--
-        Transaction Reaper Mode, can be: PERIODIC or DYNAMIC. Default is DYNAMIC.
-      -->
-        <property name="com.arjuna.ats.arjuna.coordinator.txReaperMode" value="DYNAMIC"/>
-        <!--
-        Transaction Reaper Cancel Wait Period (default is 500 ms, min is 10 msecs).
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.coordinator.txReaperCancelWaitPeriod" value="500"/>
-        <!--
-        Transaction Reaper Cancel Fail Wait Period (default is 500 ms, min is 10 msecs).
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.coordinator.txReaperCancelFailWaitPeriod" value="500"/>
-        <!--
-        Transaction Reaper Zombie Max (default is 8).
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.coordinator.txReaperZombieMax" value="8"/>
-        <!--
-        (default is NO)
-      -->
-        <property name="com.arjuna.ats.arjuna.coordinator.asyncCommit" value="NO"/>
-        <!--
-        (default is NO)
-      -->
-        <property name="com.arjuna.ats.arjuna.coordinator.asyncPrepare" value="NO"/>
-        <!--
-        (default is YES)
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.coordinator.commitOnePhase" value="YES"/>
-        <!--
-        (default is defaultStore)
-      -->
-        <property name="com.arjuna.ats.arjuna.objectstore.localOSRoot" value="defaultStore"/>
-        <!--
-        default is under user.home - must be writeable!)
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.objectstore.objectStoreDir" value="PutObjectStoreDirHere"/>
-        <!--
-        (default is ON)
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.objectstore.objectStoreSync" value="ON"/>
-        <!--
-        (default is ShadowNoFileLockStore)
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.objectstore.objectStoreType" value="ShadowNoFileLockStore"/>
-        <!--
-        (default is 255)
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.objectstore.hashedDirectories" value="255"/>
-        <!--
-        (default is ON)
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.objectstore.transactionSync" value="ON"/>
-        <!--
-        (Must be unique across all Arjuna instances.)
-      -->
-        <property name="com.arjuna.ats.arjuna.xa.nodeIdentifier" value="1"/>
-        <!--
-        Base port number for determining a unique number to associate with an instance of the transaction service
-        (which is needed in order to support multiple instances on the same machine).
-        Use the value 0 to allow the system to select the first available port number.
-        If the port number is non-zero and the port is in use then the value will be incremented until either a successful binding
-        to the loopback address is created or until the the maximum number of ports (specified by the
-        com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts property) have been tried or until the port number
-        reaches the maximum possible port number.
-      -->
-        <property
-            name="com.arjuna.ats.internal.arjuna.utils.SocketProcessIdPort" value="0"/>
-        <!--
-        The maximum number of ports to try starting from the value specified by the property
-        com.arjuna.ats.internal.arjuna.utils.SocketProcessIdPort. Any non-numeric or value less than 1 will
-        defautl to 1.
-      -->
-        <property
-            name="com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts" value="1"/>
-        <!--
-        Run the TransactionStatusManager to allow out-of-process recovery managers to query
-        the status of transactions owned by this coordinator.  Default is YES.
-        This can be set to NO in cases where an ObjectStore is used only by one transaction manager
-        and the recovery manager for that store is in the same JVM. In any other cases disabling the
-        TransactionStatusManager may cause crash recovery to misbehave.
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.coordinator.transactionStatusManagerEnable" value="YES"/>
-        <!-- property
-        name="com.arjuna.ats.arjuna.coordinator.actionStore"
-		value="HashedActionStore"
-		value="JDBCActionStore"
-      -->
-        <!-- property
-        name="com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
-		value="JDBCAccess"
-      -->
-        <!-- property
-        name="com.arjuna.ats.arjuna.objectstore.objectStoreType"
-		value="ShadowNoFileLockStore"
-		value="JDBCStore"
-      -->
-        <!-- property
-        name="com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
-		value="JDBCAccess"
-      -->
-        <!-- property
-        name="com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeInitial"
-		value="1"
-      -->
-        <!-- property
-        name="com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum"
-		value="1"
-      -->
-        <!-- property
-        name="com.arjuna.ats.arjuna.objectstore.jdbcPoolPutConnections"
-		value="false"
-      -->
-        <!-- property
-        name="com.arjuna.ats.arjuna.internal.arjuna.objectstore.cacheStore.size"
-		value=""
-      -->
-        <!-- property
-        name="com.arjuna.ats.arjuna.internal.arjuna.objectstore.cacheStore.period"
-		value=""
-      -->
-        <!--
-        The location for creating temporary files, e.g., Uids.
-        Default is under user.home.
-        IMPORTANT: make sure the directory is lockable, e.g., /tmp on Unix
-        may not be!
-      -->
-        <!--
-        <property
-          name="com.arjuna.ats.arjuna.common.varDir"
-          value="var"/>
-      -->
-        <!-- Should beforeCompletion synchronizations be fired even when it is known the
-             transaction can't commit e.g. is marked rollbackOnly? (default NO).
-             Note that turning this on still does not guarantee the syncronizations will run in all cases
-             e.g. explicit rollback() calls. JTS users should also take into account the supportRollbackSync
-             property which affects both beforeCompletion and afterCompletion syncs. -->
-        <!--
-      <property name="com.arjuna.ats.coordinator.beforeCompletionWhenRollbackOnly" value="NO"/>
-      -->
-    </properties>
-    <properties name="common">
-        <!-- CLF 2.0 properties -->
-        <property name="com.arjuna.common.util.logging.DebugLevel"
-            type="System" value="0x00000000"/>
-        <property name="com.arjuna.common.util.logging.FacilityLevel"
-            type="System" value="0xffffffff"/>
-        <property name="com.arjuna.common.util.logging.VisibilityLevel"
-            type="System" value="0xffffffff"/>
-        <property name="com.arjuna.common.util.logger" type="System" value="log4j"/>
-    </properties>
-    <properties depends="arjuna" name="txoj">
-        <!--
-        (default is LockStore of installation - must be writeable!)
-      -->
-        <!--
-        <property
-          name="com.arjuna.ats.txoj.lockstore.lockStoreDir"
-          value="LockStore"/>
-      -->
-        <!--
-        (default is BasicLockStore)
-      -->
-        <property name="com.arjuna.ats.txoj.lockstore.lockStoreType" value="BasicLockStore"/>
-        <!--
-        (default is NO)
-      -->
-        <property name="com.arjuna.ats.txoj.lockstore.multipleLockStore" value="NO"/>
-        <!--
-        (default is YES)
-      -->
-        <property name="com.arjuna.ats.txoj.lockstore.singleLockStore" value="YES"/>
-        <!--
-        (default is YES)
-      -->
-        <property
-            name="com.arjuna.ats.txoj.lockstore.allowNestedLocking" value="YES"/>
-    </properties>
-    <properties depends="arjuna" name="jta">
-        <!--
-        Support subtransactions in the JTA layer?
-        Default is NO.
-      -->
-        <property name="com.arjuna.ats.jta.supportSubtransactions" value="NO"/>
-        <property name="com.arjuna.ats.jta.jtaTMImplementation" value="com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple"/>
-        <!--
-			com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple
-			-->
-        <property name="com.arjuna.ats.jta.jtaUTImplementation" value="com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple"/>
-        <!--
-			com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple
-			-->
-    </properties>
-    <properties depends="arjuna,txoj,jta" name="recoverymanager">
-        <!--
-        Properties used only by the RecoveryManager.
-      -->
-        <!--
-        Periodic recovery settings.
-        Time values in this section are in seconds.
-      -->
-        <!--
-        Interval in seconds between initiating the periodic recovery modules.
-        Default is 120 seconds.
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod" value="120"/>
-        <!--
-        Interval in seconds between first and second pass of periodic recovery.
-        Default is 10 seconds.
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod" value="10"/>
-        <!--
-        The port number on which the recovery manager listens.
-      -->
-        <property name="com.arjuna.ats.arjuna.recovery.recoveryPort" value="4712"/>
-        <!--
-        The address on which the recovery manager listens.
-        If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
-      -->
-        <property name="com.arjuna.ats.arjuna.recovery.recoveryAddress" value=""/>
-        <!--
-        Periodic recovery modules to use.  Invoked in sort-order of names.
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.recovery.recoveryExtension1" value="com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"/>
-        <property
-            name="com.arjuna.ats.arjuna.recovery.recoveryExtension2" value="com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"/>
-        <property
-            name="com.arjuna.ats.arjuna.recovery.recoveryExtension3" value="com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule"/>
-        <!--
-        Expired entry removal
-      -->
-        <!--
-        Expiry scanners to use (order of invocation is random).
-        Names must begin with "com.arjuna.ats.arjuna.recovery.expiryScanner"
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager" value="com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner"/>
-        <!--
-        Interval, in hours, between running the expiry scanners.
-        This can be quite long. The absolute value determines the interval -
-        if the value is negative, the scan will NOT be run until after one
-        interval has elapsed. If positive the first scan will be immediately
-        after startup. Zero will prevent any scanning.
-        Default  = 12 = run immediately, then every 12 hours.
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.recovery.expiryScanInterval" value="12"/>
-        <!--
-        This is the interval, in hours, after which a process that cannot be contacted will be considered dead.
-        It should be long enough to avoid accidentally removing valid entries due to short lived
-        transient errors such as network downtime. Zero = Never removed.  Default is 12.
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime" value="12"/>
-        <!--
-        Use this to fix the port on which the TransactionStatusManager listens,
-        The default behaviour is to use any free port.
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort" value="0"/>
-        <!--
-        Use this to fix the address on which the TransactionStatusManager binds,
-        The default behaviour is to use the loopback address (ie localhost).
-        If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerAddress" value=""/>
-        <!--
-          For cases where the recovery manager is in process with the transaction manager and nothing else uses
-          the ObjectStore, it is possible to disable the socket based recovery listener by setting this to NO.
-          Caution: use of this property can allow multiple recovery processes to run on the same ObjectStore
-          if you are not careful. That in turn can lead to incorrect transaction processing. Use with care.
-        -->
-        <property name="com.arjuna.ats.arjuna.recovery.recoveryListener" value="YES"/>
-    </properties>
-    <properties depends="jta" name="jdbc">
-        <!--
-           property name="com.arjuna.ats.jdbc.isolationLevel" value="TRANSACTION_SERIALIZABLE"/>
-        -->
-    </properties>
-</transaction-service>

Modified: projects/jboss-jca/trunk/standalone/src/main/resources/bootstrap/transaction.xml
===================================================================
--- projects/jboss-jca/trunk/standalone/src/main/resources/bootstrap/transaction.xml	2010-01-07 01:39:33 UTC (rev 99085)
+++ projects/jboss-jca/trunk/standalone/src/main/resources/bootstrap/transaction.xml	2010-01-07 02:00:15 UTC (rev 99086)
@@ -1,27 +1,160 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<!--
-    JBoss JCA
--->
-<deployment xmlns="urn:jboss:bean-deployer:2.0">
+<deployment>
 
-  <!-- JMX -->
-  <bean name="JMX" class="org.jboss.jca.standalone.hack.JMX"/>
-
-  <!-- Transaction manager -->
-  <bean name="TransactionManager" class="com.arjuna.ats.jbossatx.jta.TransactionManagerService">
-<!--    <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss:service=TransactionManager", exposedInterface=com.arjuna.ats.jbossatx.jta.TransactionManagerServiceMBean.class, registerDirectly=true)</annotation> -->
-    <property name="transactionTimeout">300</property>
-    <property name="objectStoreDir">${jboss.jca.home}/server/jca/tmp/tx-object-store</property>
-    <property name="mbeanServer"><inject bean="JMX" property="MBeanServer"/></property>
+  <bean name="LoggingEnvironmentBean" class="com.arjuna.common.internal.util.logging.LoggingEnvironmentBean">
+    <constructor factoryClass="com.arjuna.common.internal.util.logging.commonPropertyManager" factoryMethod="getLoggingEnvironmentBean"/>
+    <property name="loggingFactory">com.arjuna.common.internal.util.logging.jakarta.JakartaRelevelingLogFactory;com.arjuna.common.internal.util.logging.jakarta.Log4JLogger</property>
+  </bean>
+  
+  <bean name="RecoveryEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.arjuna.common.recoveryPropertyManager" factoryMethod="getRecoveryEnvironmentBean"/>    
+    <property name="recoveryInetAddress">localhost</property>
+    <property name="recoveryPort">4712</property>
     <property name="transactionStatusManagerInetAddress">localhost</property>
     <property name="transactionStatusManagerPort">4713</property>
-    <property name="recoveryInetAddress">localhost</property>
-    <property name="recoveryPort">4712</property>
+    <property name="recoveryExtensions">
+      <list elementClass="java.lang.String">
+        <value>com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule</value>
+        <value>com.arjuna.ats.internal.txoj.recovery.TORecoveryModule</value>
+        <value>com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule</value>
+      </list>
+    </property>
+    <property name="expiryScanners">
+      <list elementClass="java.lang.String">
+        <value>com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner</value>
+      </list>
+    </property>
+    <property name="recoveryActivators">
+      <null/>
+    </property>
+  </bean>
+  
+  <bean name="CoreEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.arjuna.common.arjPropertyManager" factoryMethod="getCoreEnvironmentBean"/>
     <property name="socketProcessIdPort">0</property>    
+    <property name="nodeIdentifier">1</property>
+    <property name="socketProcessIdMaxPorts">10</property>
+  </bean>
+  
+  <bean name="CoordinatorEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.arjuna.common.arjPropertyManager" factoryMethod="getCoordinatorEnvironmentBean"/>
+    <property name="enableStatistics">false</property>
+    <property name="defaultTimeout">300</property>
+  </bean>
+  
+  <bean name="ObjectStoreEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.arjuna.common.arjPropertyManager" factoryMethod="getObjectStoreEnvironmentBean"/>
+    <property name="objectStoreDir">${jboss.jca.home}/tmp/tx-object-store</property>
+  </bean>
+  
+  <bean name="JTAEnvironmentBean">
+    <constructor factoryClass="com.arjuna.ats.jta.common.jtaPropertyManager" factoryMethod="getJTAEnvironmentBean"/>
+    <property name="lastResourceOptimisationInterface">org.jboss.tm.LastResource</property>
+    <property name="jtaTMImplementation">com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate</property>
+    <property name="jtaUTImplementation">com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple</property>
+    <property name="jtaTSRImplementation">com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple</property>
+    <property name="xaRecoveryNodes">
+      <list elementClass="java.lang.String">
+        <value>1</value>
+      </list>
+    </property>
+  </bean>
+  
+  <bean name="RecoveryManager" class="com.arjuna.ats.jbossatx.jta.RecoveryManagerService">
+    <depends>LoggingEnvironmentBean</depends>
+    <depends>RecoveryEnvironmentBean</depends>
+  </bean>
+  
+  <bean name="XATerminator" class="com.arjuna.ats.internal.jbossatx.jta.jca.XATerminator"/>
+  
+  <bean name="TransactionSynchronizationRegistry" class="com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionSynchronizationRegistryImple"/>
+  
+  <bean name="TransactionManager" class="com.arjuna.ats.jbossatx.jta.TransactionManagerService">
+    <property name="jbossXATerminator"><inject bean="XATerminator"/></property>
+    <property name="transactionSynchronizationRegistry"><inject bean="TransactionSynchronizationRegistry"/></property>
+    <depends>LoggingEnvironmentBean</depends>
+    <depends>RecoveryEnvironmentBean</depends>
+    <depends>CoreEnvironmentBean</depends>
+    <depends>CoordinatorEnvironmentBean</depends>
+    <depends>ObjectStoreEnvironmentBean</depends>
+    <depends>JTAEnvironmentBean</depends>
+    <depends>RecoveryManager</depends>
+    <depends>TransactionManagerJNDIBinding</depends>
+    <depends>TransactionSynchronizationRegistryJNDIBinding</depends>
+    <depends>TransactionPropagationContextImporterJNDIBinding</depends>
+    <depends>TransactionPropagationContextExporterJNDIBinding</depends>
+  </bean>
+  
+  <bean name="TransactionStatistics">
+    <constructor factoryClass="com.arjuna.ats.arjuna.coordinator.TxStats" factoryMethod="getInstance"/>
+  </bean>
+  
+  <bean name="TransactionManagerJNDIBinding" class="com.arjuna.ats.jta.utils.JNDIReferenceBindingBean">
+    <property name="bindName">java:/TransactionManager</property>
+    <property name="className">
+      <inject bean="JTAEnvironmentBean" property="jtaTMImplementation"/>
+    </property>
+    <property name="factory">
+      <inject bean="JTAEnvironmentBean" property="jtaTMImplementation"/>
+    </property>
+    
+    <install method="bind"/>
+    <uninstall method="unbind"/>
+  </bean>
+  
+  <bean name="TransactionSynchronizationRegistryJNDIBinding" class="com.arjuna.ats.jta.utils.JNDIReferenceBindingBean">
+    <property name="bindName">java:/TransactionSynchronizationRegistry</property>
+    <property name="className">
+      <inject bean="JTAEnvironmentBean" property="jtaTSRImplementation"/>
+    </property>
+    <property name="factory">
+      <inject bean="JTAEnvironmentBean" property="jtaTSRImplementation"/>
+    </property>
+    
+    <install method="bind"/>
+    <uninstall method="unbind"/>
+  </bean>
+    
+  <bean name="TransactionPropagationContextImporterJNDIBinding" class="com.arjuna.ats.jta.utils.JNDIReferenceBindingBean">
+    <property name="bindName">java:/TransactionPropagationContextImporter</property>
+    <property name="className">com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager</property>
+    <property name="factory">com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager</property>
+    
+    <install method="bind"/>
+    <uninstall method="unbind"/>
+  </bean>
+  
+  <bean name="TransactionPropagationContextExporterJNDIBinding" class="com.arjuna.ats.jta.utils.JNDIReferenceBindingBean">
+    <property name="bindName">java:/TransactionPropagationContextExporter</property>
+    <property name="className">com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager</property>
+    <property name="factory">com.arjuna.ats.internal.jbossatx.jta.PropagationContextManager</property>
+    
+    <install method="bind"/>
+    <uninstall method="unbind"/>
+  </bean>
+  
+  <bean name="RealTransactionManager">
+    <constructor factoryMethod="getTransactionManager">
+      <factory bean="TransactionManager"/>
+    </constructor>
+  </bean>
+  
+  <!-- Handles user transaction providers and listeners -->
+  <bean name="UserTransactionRegistry" class="org.jboss.tm.usertx.UserTransactionRegistry">
+    <!-- Register providers -->
+    <incallback method="addProvider"/>
+    <uncallback method="removeProvider"/>
 
-    <depends>JMX</depends>
-    <depends>NamingServer</depends>
+    <!-- Register listeners -->
+    <incallback method="addListener"/>
+    <uncallback method="removeListener"/>
   </bean>
-
+  
+  <!-- The provider for default in process UserTransactions -->
+  <bean name="DefaultUserTransactionprovider" class="org.jboss.tm.usertx.client.ServerVMClientUserTransaction">
+    <constructor factoryClass="org.jboss.tm.usertx.client.ServerVMClientUserTransaction" factoryMethod="getSingleton"/>
+    <depends>TransactionManager</depends>
+  </bean>
+  
 </deployment>

Deleted: projects/jboss-jca/trunk/standalone/src/main/resources/jbossts-properties.xml
===================================================================
--- projects/jboss-jca/trunk/standalone/src/main/resources/jbossts-properties.xml	2010-01-07 01:39:33 UTC (rev 99085)
+++ projects/jboss-jca/trunk/standalone/src/main/resources/jbossts-properties.xml	2010-01-07 02:00:15 UTC (rev 99086)
@@ -1,333 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<transaction-service>
-    <properties name="documentation">
-        <!--
-        This is the JBossTS configuration file. Note that starting with JBossTS 4.6
-        the names jbossjta-properties.xml and jbossjts-properties.xml are obsolete.
-        
-        Both the JTA and JTS versions of JBossTS now read their configuration from
-        jbossts-properties.xml, although the contents of the file differs between
-        the JTA and JTS. Care should be taken to use the correct version of the file.
-        
-        ***************************
-        
-        Property values may be literals or be tokens of the form ${p1[,p2][:v]}
-        in which case the token values are substituted for the values of the corresponding system
-        properties as follows:
- 
-        - Any occurance of ${p} with the System.getProperty(p) value.
-        If there is no such property p defined, then the ${p} reference will remain unchanged.
-
-        - If the property reference is of the form ${p:v} and there is no such property p,
-        then the default value v will be returned.
-
-        - If the property reference is of the form ${p1,p2} or ${p1,p2:v} then
-        the primary and the secondary properties will be tried in turn, before
-        returning either the unchanged input, or the default value.
-        
-        The property ${/} is replaced with System.getProperty("file.separator")
-        value and the property ${:} is replaced with System.getProperty("path.separator").
-        
-        Note this substitution applies to property values only at the point they are read from
-        the config file. Tokens in system properties won't be substituted.
-        -->
-    </properties>
-    <properties depends="common" name="arjuna">
-        <!--
-        Transaction Reaper Timeout (default is 120000 ms).
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.coordinator.txReaperTimeout" value="120000"/>
-        <!--
-        Transaction Reaper Mode, can be: PERIODIC or DYNAMIC. Default is DYNAMIC.
-      -->
-        <property name="com.arjuna.ats.arjuna.coordinator.txReaperMode" value="DYNAMIC"/>
-        <!--
-        Transaction Reaper Cancel Wait Period (default is 500 ms, min is 10 msecs).
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.coordinator.txReaperCancelWaitPeriod" value="500"/>
-        <!--
-        Transaction Reaper Cancel Fail Wait Period (default is 500 ms, min is 10 msecs).
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.coordinator.txReaperCancelFailWaitPeriod" value="500"/>
-        <!--
-        Transaction Reaper Zombie Max (default is 8).
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.coordinator.txReaperZombieMax" value="8"/>
-        <!--
-        (default is NO)
-      -->
-        <property name="com.arjuna.ats.arjuna.coordinator.asyncCommit" value="NO"/>
-        <!--
-        (default is NO)
-      -->
-        <property name="com.arjuna.ats.arjuna.coordinator.asyncPrepare" value="NO"/>
-        <!--
-        (default is YES)
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.coordinator.commitOnePhase" value="YES"/>
-        <!--
-        (default is defaultStore)
-      -->
-        <property name="com.arjuna.ats.arjuna.objectstore.localOSRoot" value="defaultStore"/>
-        <!--
-        default is under user.home - must be writeable!)
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.objectstore.objectStoreDir" value="PutObjectStoreDirHere"/>
-        <!--
-        (default is ON)
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.objectstore.objectStoreSync" value="ON"/>
-        <!--
-        (default is ShadowNoFileLockStore)
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.objectstore.objectStoreType" value="ShadowNoFileLockStore"/>
-        <!--
-        (default is 255)
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.objectstore.hashedDirectories" value="255"/>
-        <!--
-        (default is ON)
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.objectstore.transactionSync" value="ON"/>
-        <!--
-        (Must be unique across all Arjuna instances.)
-      -->
-        <property name="com.arjuna.ats.arjuna.xa.nodeIdentifier" value="1"/>
-        <!--
-        Base port number for determining a unique number to associate with an instance of the transaction service
-        (which is needed in order to support multiple instances on the same machine).
-        Use the value 0 to allow the system to select the first available port number.
-        If the port number is non-zero and the port is in use then the value will be incremented until either a successful binding
-        to the loopback address is created or until the the maximum number of ports (specified by the
-        com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts property) have been tried or until the port number
-        reaches the maximum possible port number.
-      -->
-        <property
-            name="com.arjuna.ats.internal.arjuna.utils.SocketProcessIdPort" value="0"/>
-        <!--
-        The maximum number of ports to try starting from the value specified by the property
-        com.arjuna.ats.internal.arjuna.utils.SocketProcessIdPort. Any non-numeric or value less than 1 will
-        defautl to 1.
-      -->
-        <property
-            name="com.arjuna.ats.internal.arjuna.utils.SocketProcessIdMaxPorts" value="1"/>
-        <!--
-        Run the TransactionStatusManager to allow out-of-process recovery managers to query
-        the status of transactions owned by this coordinator.  Default is YES.
-        This can be set to NO in cases where an ObjectStore is used only by one transaction manager
-        and the recovery manager for that store is in the same JVM. In any other cases disabling the
-        TransactionStatusManager may cause crash recovery to misbehave.
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.coordinator.transactionStatusManagerEnable" value="YES"/>
-        <!-- property
-        name="com.arjuna.ats.arjuna.coordinator.actionStore"
-		value="HashedActionStore"
-		value="JDBCActionStore"
-      -->
-        <!-- property
-        name="com.arjuna.ats.arjuna.objectstore.jdbcTxDbAccess"
-		value="JDBCAccess"
-      -->
-        <!-- property
-        name="com.arjuna.ats.arjuna.objectstore.objectStoreType"
-		value="ShadowNoFileLockStore"
-		value="JDBCStore"
-      -->
-        <!-- property
-        name="com.arjuna.ats.arjuna.objectstore.jdbcUserDbAccess"
-		value="JDBCAccess"
-      -->
-        <!-- property
-        name="com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeInitial"
-		value="1"
-      -->
-        <!-- property
-        name="com.arjuna.ats.arjuna.objectstore.jdbcPoolSizeMaximum"
-		value="1"
-      -->
-        <!-- property
-        name="com.arjuna.ats.arjuna.objectstore.jdbcPoolPutConnections"
-		value="false"
-      -->
-        <!-- property
-        name="com.arjuna.ats.arjuna.internal.arjuna.objectstore.cacheStore.size"
-		value=""
-      -->
-        <!-- property
-        name="com.arjuna.ats.arjuna.internal.arjuna.objectstore.cacheStore.period"
-		value=""
-      -->
-        <!--
-        The location for creating temporary files, e.g., Uids.
-        Default is under user.home.
-        IMPORTANT: make sure the directory is lockable, e.g., /tmp on Unix
-        may not be!
-      -->
-        <!--
-        <property
-          name="com.arjuna.ats.arjuna.common.varDir"
-          value="var"/>
-      -->
-        <!-- Should beforeCompletion synchronizations be fired even when it is known the
-             transaction can't commit e.g. is marked rollbackOnly? (default NO).
-             Note that turning this on still does not guarantee the syncronizations will run in all cases
-             e.g. explicit rollback() calls. JTS users should also take into account the supportRollbackSync
-             property which affects both beforeCompletion and afterCompletion syncs. -->
-        <!--
-      <property name="com.arjuna.ats.coordinator.beforeCompletionWhenRollbackOnly" value="NO"/>
-      -->
-    </properties>
-    <properties name="common">
-        <!-- CLF 2.0 properties -->
-        <property name="com.arjuna.common.util.logging.DebugLevel"
-            type="System" value="0x00000000"/>
-        <property name="com.arjuna.common.util.logging.FacilityLevel"
-            type="System" value="0xffffffff"/>
-        <property name="com.arjuna.common.util.logging.VisibilityLevel"
-            type="System" value="0xffffffff"/>
-        <property name="com.arjuna.common.util.logger" type="System" value="log4j"/>
-    </properties>
-    <properties depends="arjuna" name="txoj">
-        <!--
-        (default is LockStore of installation - must be writeable!)
-      -->
-        <!--
-        <property
-          name="com.arjuna.ats.txoj.lockstore.lockStoreDir"
-          value="LockStore"/>
-      -->
-        <!--
-        (default is BasicLockStore)
-      -->
-        <property name="com.arjuna.ats.txoj.lockstore.lockStoreType" value="BasicLockStore"/>
-        <!--
-        (default is NO)
-      -->
-        <property name="com.arjuna.ats.txoj.lockstore.multipleLockStore" value="NO"/>
-        <!--
-        (default is YES)
-      -->
-        <property name="com.arjuna.ats.txoj.lockstore.singleLockStore" value="YES"/>
-        <!--
-        (default is YES)
-      -->
-        <property
-            name="com.arjuna.ats.txoj.lockstore.allowNestedLocking" value="YES"/>
-    </properties>
-    <properties depends="arjuna" name="jta">
-        <!--
-        Support subtransactions in the JTA layer?
-        Default is NO.
-      -->
-        <property name="com.arjuna.ats.jta.supportSubtransactions" value="NO"/>
-        <property name="com.arjuna.ats.jta.jtaTMImplementation" value="com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple"/>
-        <!--
-			com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple
-			-->
-        <property name="com.arjuna.ats.jta.jtaUTImplementation" value="com.arjuna.ats.internal.jta.transaction.arjunacore.UserTransactionImple"/>
-        <!--
-			com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple
-			-->
-    </properties>
-    <properties depends="arjuna,txoj,jta" name="recoverymanager">
-        <!--
-        Properties used only by the RecoveryManager.
-      -->
-        <!--
-        Periodic recovery settings.
-        Time values in this section are in seconds.
-      -->
-        <!--
-        Interval in seconds between initiating the periodic recovery modules.
-        Default is 120 seconds.
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.recovery.periodicRecoveryPeriod" value="120"/>
-        <!--
-        Interval in seconds between first and second pass of periodic recovery.
-        Default is 10 seconds.
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.recovery.recoveryBackoffPeriod" value="10"/>
-        <!--
-        The port number on which the recovery manager listens.
-      -->
-        <property name="com.arjuna.ats.arjuna.recovery.recoveryPort" value="4712"/>
-        <!--
-        The address on which the recovery manager listens.
-        If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
-      -->
-        <property name="com.arjuna.ats.arjuna.recovery.recoveryAddress" value=""/>
-        <!--
-        Periodic recovery modules to use.  Invoked in sort-order of names.
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.recovery.recoveryExtension1" value="com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"/>
-        <property
-            name="com.arjuna.ats.arjuna.recovery.recoveryExtension2" value="com.arjuna.ats.internal.txoj.recovery.TORecoveryModule"/>
-        <property
-            name="com.arjuna.ats.arjuna.recovery.recoveryExtension3" value="com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule"/>
-        <!--
-        Expired entry removal
-      -->
-        <!--
-        Expiry scanners to use (order of invocation is random).
-        Names must begin with "com.arjuna.ats.arjuna.recovery.expiryScanner"
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.recovery.expiryScannerTransactionStatusManager" value="com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner"/>
-        <!--
-        Interval, in hours, between running the expiry scanners.
-        This can be quite long. The absolute value determines the interval -
-        if the value is negative, the scan will NOT be run until after one
-        interval has elapsed. If positive the first scan will be immediately
-        after startup. Zero will prevent any scanning.
-        Default  = 12 = run immediately, then every 12 hours.
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.recovery.expiryScanInterval" value="12"/>
-        <!--
-        This is the interval, in hours, after which a process that cannot be contacted will be considered dead.
-        It should be long enough to avoid accidentally removing valid entries due to short lived
-        transient errors such as network downtime. Zero = Never removed.  Default is 12.
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerExpiryTime" value="12"/>
-        <!--
-        Use this to fix the port on which the TransactionStatusManager listens,
-        The default behaviour is to use any free port.
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerPort" value="0"/>
-        <!--
-        Use this to fix the address on which the TransactionStatusManager binds,
-        The default behaviour is to use the loopback address (ie localhost).
-        If running within an AS then the address the AS is bound to (jboss.bind.address) takes precedence
-      -->
-        <property
-            name="com.arjuna.ats.arjuna.recovery.transactionStatusManagerAddress" value=""/>
-        <!--
-          For cases where the recovery manager is in process with the transaction manager and nothing else uses
-          the ObjectStore, it is possible to disable the socket based recovery listener by setting this to NO.
-          Caution: use of this property can allow multiple recovery processes to run on the same ObjectStore
-          if you are not careful. That in turn can lead to incorrect transaction processing. Use with care.
-        -->
-        <property name="com.arjuna.ats.arjuna.recovery.recoveryListener" value="YES"/>
-    </properties>
-    <properties depends="jta" name="jdbc">
-        <!--
-           property name="com.arjuna.ats.jdbc.isolationLevel" value="TRANSACTION_SERIALIZABLE"/>
-        -->
-    </properties>
-</transaction-service>




More information about the jboss-cvs-commits mailing list