[jboss-cvs] JBossAS SVN: r97792 - in trunk: component-matrix and 5 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Dec 14 11:16:19 EST 2009


Author: jhalliday
Date: 2009-12-14 11:16:18 -0500 (Mon, 14 Dec 2009)
New Revision: 97792

Added:
   trunk/jbossas-transactions/transaction-jboss-beans-for-jts.xml
Modified:
   trunk/build/build.xml
   trunk/build/pom.xml
   trunk/component-matrix/pom.xml
   trunk/iiop/pom.xml
   trunk/jbossas-transactions/README.txt
   trunk/jbossas-transactions/build.xml
   trunk/server/src/etc/deploy/transaction-jboss-beans.xml
   trunk/testsuite/build.xml
   trunk/testsuite/src/main/org/jboss/test/crashrecovery/taskdefs/TransactionLog.java
Log:
Upgrade JBossTS to 4.9.0.GA. JBAS-7022


Modified: trunk/build/build.xml
===================================================================
--- trunk/build/build.xml	2009-12-14 16:13:34 UTC (rev 97791)
+++ trunk/build/build.xml	2009-12-14 16:16:18 UTC (rev 97792)
@@ -1982,8 +1982,6 @@
       <fileset refid="org.jboss.naming:jnpserver:jar"/>
       <fileset refid="jboss.jbossts:jbossjts:jar"/>
       <fileset refid="jboss.jbossts:jbossjts-integration:jar"/>
-      <fileset refid="jboss.jbossts:jbossjts-jacorb:jar"/>
-      <fileset refid="jboss.jbossts:jbossts-common:jar"/>
       <fileset refid="org.jboss.remoting:jboss-remoting:jar"/>
       <fileset refid="jboss:jboss-serialization:jar"/>
       <fileset refid="org.jboss.ejb3:jboss-ejb3-cache:jar"/>
@@ -2243,18 +2241,10 @@
       </patternset>
     </unzip>
 
-    <unjar src="${jboss.jbossts:resources:jar}" dest="${install.all.conf}">
-      <patternset>
-        <include name="resources/jbossts-properties.xml-forJTA"/>
-      </patternset>
-      <mapper type="glob" from="resources/jbossts-properties.xml-forJTA" to="jbossts-properties.xml"/>
-    </unjar>
-
     <!-- in in JTS mode the client needs some impl classes to make ClientUserTransaction work -->
     <copy todir="${install.client}" filtering="no">
       <fileset refid="jboss.jbossts:jbossjts:jar"/>
       <fileset refid="jboss.jbossts:jbossjts-integration:jar"/>
-      <fileset refid="jboss.jbossts:jbossjts-jacorb:jar"/>
       <mapper refid="remove-versions" />
     </copy>
 
@@ -2275,18 +2265,13 @@
       <fileset refid="jboss.jbossts:jbossxts:sar"/>
       <mapper refid="remove-versions" />
     </copy>
-    <unjar src="${jboss.jbossts:resources:jar}" dest="${install.examples}/transactions/">
-      <patternset>
-        <include name="resources/jbossts-properties.xml-forJTS"/>
-      </patternset>
-      <mapper type="glob" from="resources/jbossts-properties.xml-forJTS" to="jbossts-properties.xml"/>
-    </unjar>
 
     <!-- copy JBossTS additions install script and instructions from jbossas-transactions module -->
     <copy todir="${install.examples}/transactions" filtering="no">
       <fileset dir="${project.root}/jbossas-transactions">
         <include name="README.txt"/>
         <include name="build.xml"/>
+        <include name="transaction-jboss-beans-for-jts.xml"/>
       </fileset>
     </copy>
 

Modified: trunk/build/pom.xml
===================================================================
--- trunk/build/pom.xml	2009-12-14 16:13:34 UTC (rev 97791)
+++ trunk/build/pom.xml	2009-12-14 16:16:18 UTC (rev 97792)
@@ -251,14 +251,6 @@
     </dependency>
     <dependency>
       <groupId>jboss.jbossts</groupId>
-      <artifactId>jbossjts-jacorb</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>jboss.jbossts</groupId>
-      <artifactId>jbossts-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>jboss.jbossts</groupId>
       <artifactId>jbossts-tools</artifactId>
       <type>sar</type>
       <scope>runtime</scope>
@@ -270,10 +262,6 @@
       <scope>runtime</scope>
     </dependency>
     <dependency>
-      <groupId>jboss.jbossts</groupId>
-      <artifactId>resources</artifactId>
-    </dependency>
-    <dependency>
       <groupId>jboss.messaging</groupId>
       <artifactId>jboss-messaging</artifactId>
     </dependency>

Modified: trunk/component-matrix/pom.xml
===================================================================
--- trunk/component-matrix/pom.xml	2009-12-14 16:13:34 UTC (rev 97791)
+++ trunk/component-matrix/pom.xml	2009-12-14 16:16:18 UTC (rev 97792)
@@ -39,7 +39,7 @@
     <version.javax.faces>2.0.1-FCS</version.javax.faces>
     <version.javax.validation>1.0.0.GA</version.javax.validation>
     <version.jboss.jaxr>1.2.1.GA</version.jboss.jaxr>
-    <version.jboss.jbossts>4.6.1.GA</version.jboss.jbossts>
+    <version.jboss.jbossts>4.9.0.GA</version.jboss.jbossts>
     <version.jaxws.api>2.1</version.jaxws.api>
     <version.jsr181.api>1.0-MR1</version.jsr181.api>
     <version.jboss.jbossws-common>1.2.1.GA</version.jboss.jbossws-common>
@@ -816,12 +816,6 @@
       
         <dependency>
           <groupId>jboss.jbossts</groupId>
-          <artifactId>jbossts-common</artifactId>
-          <version>${version.jboss.jbossts}</version>
-        </dependency>
-
-        <dependency>
-          <groupId>jboss.jbossts</groupId>
           <artifactId>jbossjts</artifactId>
           <version>${version.jboss.jbossts}</version>
         </dependency>
@@ -834,12 +828,6 @@
 
         <dependency>
           <groupId>jboss.jbossts</groupId>
-          <artifactId>jbossjts-jacorb</artifactId>
-          <version>${version.jboss.jbossts}</version>
-        </dependency>
-
-        <dependency>
-          <groupId>jboss.jbossts</groupId>
           <artifactId>jbossts-tools</artifactId>
           <version>${version.jboss.jbossts}</version>
           <type>sar</type>
@@ -847,12 +835,6 @@
 
         <dependency>
           <groupId>jboss.jbossts</groupId>
-          <artifactId>resources</artifactId>
-          <version>${version.jboss.jbossts}</version>
-        </dependency>
-
-        <dependency>
-          <groupId>jboss.jbossts</groupId>
           <artifactId>jbossxts</artifactId>
           <version>${version.jboss.jbossts}</version>
           <type>sar</type>

Modified: trunk/iiop/pom.xml
===================================================================
--- trunk/iiop/pom.xml	2009-12-14 16:13:34 UTC (rev 97791)
+++ trunk/iiop/pom.xml	2009-12-14 16:16:18 UTC (rev 97792)
@@ -147,7 +147,7 @@
 
     <dependency>
       <groupId>jboss.jbossts</groupId>
-      <artifactId>jbossjts-jacorb</artifactId>
+      <artifactId>jbossjts</artifactId>
     </dependency>
     
     <dependency>

Modified: trunk/jbossas-transactions/README.txt
===================================================================
--- trunk/jbossas-transactions/README.txt	2009-12-14 16:13:34 UTC (rev 97791)
+++ trunk/jbossas-transactions/README.txt	2009-12-14 16:16:18 UTC (rev 97792)
@@ -6,33 +6,12 @@
 full distributed transaction support, run 'ant jts' or follow the steps below.
 
 - By default the transaction libraries are installed in JBOSS_HOME/common/lib and used by every server configuration.
-  Each server configuration has its own transaction config file, JBOSS_HOME/server/<config>/conf/jbossts-properties.xml
+  Each server configuration has its own transaction config file, JBOSS_HOME/server/<config>/deploy/transaction-jboss-beans.xml
 
 - To replace the JTA with JTS for a single server <config> dir:
-  For each server using the JTS, delete JBOSS_HOME/server/<config>/conf/jbossts-properties.xml
-  and copy jbossts-properties.xml from this dir to JBOSS_HOME/server/<config>/conf/ instead.
+  For each server using the JTS, overwrite JBOSS_HOME/server/<config>/deploy/transaction-jboss-beans.xml
+  with the contents of transaction-jboss-beans-for-jts.xml
 
- - complete the installation by making the following edits to the server configuration
-    (These are difficult to automate with ant and hence are manual steps for now)
-
- - edit the conf/jbossts-properties.xml file and remove the
-   recovery extension property containing the value
-   "com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule"
-
- - In deploy/transaction-jboss-beans.xml, update the TransactionManager class and dependencies as follows:
-
-    <bean name="TransactionManager" class="com.arjuna.ats.jbossatx.jts.TransactionManagerService">
-        <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss:service=TransactionManager",
-            exposedInterface=com.arjuna.ats.jbossatx.jts.TransactionManagerServiceMBean.class, registerDirectly=true)
-        </annotation>
-
-        ...
-        <start>
-           <parameter><inject bean="jboss:service=CorbaORB" property="ORB"/></parameter>
-        </start>
-        ...
-    </bean>
-
  - Edit the conf/jacorb.properies as follows.
   - change the jacorb.poa.thread_pool_max property to 32
 

Modified: trunk/jbossas-transactions/build.xml
===================================================================
--- trunk/jbossas-transactions/build.xml	2009-12-14 16:13:34 UTC (rev 97791)
+++ trunk/jbossas-transactions/build.xml	2009-12-14 16:16:18 UTC (rev 97792)
@@ -56,10 +56,11 @@
 
         <!-- rename the JTA version of the properties file rather than deleting it,
             as it may have customizations we don't want to lose. -->
-        <move file="${target.server.dir}/conf/jbossts-properties.xml"
-              tofile="${target.server.dir}/conf/jbossts-properties-old-for-jta.xml"/>
+        <move file="${target.server.dir}/deploy/transaction-jboss-beans.xml"
+              tofile="${target.server.dir}/deploy/transaction-jboss-beans-old-for-jta.xml"/>
 
-        <copy file="jbossts-properties.xml" todir="${target.server.dir}/conf/"/>
+        <copy file="transaction-jboss-beans-for-jts.xml"
+              tofile="${target.server.dir}/deploy/transaction-jboss-beans.xml"/>
 
         <echo message="Transaction service configuration file installed."/>
 
@@ -75,37 +76,6 @@
     <target name="modify-jts-config-files">
 
         <!--
-            edit the conf/jbossts-properties.xml file and remove the
-            recovery extension property containing the value
-                "com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule"
-        -->
-        <replaceregexp
-            file="${server.dir}/conf/jbossts-properties.xml"
-            match="&lt;property\s+name=.com\.arjuna\.ats\.arjuna\.recovery\.recoveryExtension\d+.\s*value=.com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.\s*/&gt;"
-            replace=""  />
-
-
-        <!--
-            In deploy/transaction-jboss-beans.xml, update the TransactionManager class and dependencies as follows:
-                <bean name="TransactionManager" class="com.arjuna.ats.jbossatx.jts.TransactionManagerService">
-                ...
-                    <start>
-                       <parameter><inject bean="jboss:service=CorbaORB" property="ORB"/></parameter>
-                    </start>
-                ...
-                </bean>
-        -->
-        <replaceregexp byline="true"
-            file="${server.dir}/deploy/transaction-jboss-beans.xml"
-            match="com.arjuna.ats.jbossatx.jta.TransactionManagerService"
-            replace="com.arjuna.ats.jbossatx.jts.TransactionManagerService"  />
-
-        <replaceregexp
-            file="${server.dir}/deploy/transaction-jboss-beans.xml"
-            match="&lt;/bean&gt;"
-            replace="    &lt;start&gt;&lt;parameter&gt;&lt;inject bean=&quot;jboss:service=CorbaORB&quot; property=&quot;ORB&quot;/&gt;&lt;/parameter&gt;&lt;/start&gt;&#10;&#10;    &lt;/bean&gt;" />
-
-        <!--
             Edit the conf/jacorb.properies as follows.
               - change the jacorb.poa.thread_pool_max property to 32
         -->

Added: trunk/jbossas-transactions/transaction-jboss-beans-for-jts.xml
===================================================================
--- trunk/jbossas-transactions/transaction-jboss-beans-for-jts.xml	                        (rev 0)
+++ trunk/jbossas-transactions/transaction-jboss-beans-for-jts.xml	2009-12-14 16:16:18 UTC (rev 97792)
@@ -0,0 +1,269 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+    <!--
+        This is an example transaction-jboss-beans.xml file suitable for installing
+        JBossTS 4.9 JTS into AS 6.0 alpha.
+        You need a different version of this file for JTA mode.
+        You don't need a jbossts-properties.xml in the AS anymore, it's all done by the beans below.
+
+         jonathan.halliday at redhat.com, 2009-09
+    -->
+
+    <bean name="LoggingEnvironmentBean" class="com.arjuna.common.internal.util.logging.LoggingEnvironmentBean">
+
+        <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.jta:name=LoggingEnvironmentBean", exposedInterface=com.arjuna.common.internal.util.logging.LoggingEnvironmentBeanMBean.class, registerDirectly=true)</annotation>
+
+        <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" class="com.arjuna.ats.arjuna.common.RecoveryEnvironmentBean">
+
+        <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.jta:name=RecoveryEnvironmentBean", exposedInterface=com.arjuna.ats.arjuna.common.RecoveryEnvironmentBeanMBean.class, registerDirectly=true)</annotation>
+
+        <constructor factoryClass="com.arjuna.ats.arjuna.common.recoveryPropertyManager" factoryMethod="getRecoveryEnvironmentBean"/>
+
+        <property name="recoveryInetAddress">
+            <value-factory bean="ServiceBindingManager"
+                           method="getInetAddressBinding">
+                <parameter>TransactionManager</parameter>
+                <parameter>recoveryManager</parameter>
+            </value-factory>
+        </property>
+        <property name="recoveryPort">
+            <value-factory bean="ServiceBindingManager"
+                           method="getIntBinding" >
+                <parameter>TransactionManager</parameter>
+                <parameter>recoveryManager</parameter>
+            </value-factory>
+        </property>
+
+        <property name="transactionStatusManagerInetAddress">
+            <value-factory bean="ServiceBindingManager"
+                           method="getInetAddressBinding">
+                <parameter>TransactionManager</parameter>
+                <parameter>transactionStatusManager</parameter>
+            </value-factory>
+        </property>
+        <property name="transactionStatusManagerPort">
+            <value-factory bean="ServiceBindingManager"
+                           method="getIntBinding" >
+                <parameter>TransactionManager</parameter>
+                <parameter>transactionStatusManager</parameter>
+            </value-factory>
+        </property>
+
+        <property name="recoveryExtensions" preinstantiate="false">
+            <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.jts.recovery.transactions.TopLevelTransactionRecoveryModule</value>
+                <value>com.arjuna.ats.internal.jts.recovery.transactions.ServerTransactionRecoveryModule</value>
+                <value>com.arjuna.ats.internal.jta.recovery.jts.XARecoveryModule</value>
+            </list>
+        </property>
+
+        <property name="expiryScanners" preinstantiate="false">
+            <list elementClass="java.lang.String">
+                <value>com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner</value>
+                <value>com.arjuna.ats.internal.jts.recovery.contact.ExpiredContactScanner</value>
+                <value>com.arjuna.ats.internal.jts.recovery.transactions.ExpiredToplevelScanner</value>
+                <value>com.arjuna.ats.internal.jts.recovery.transactions.ExpiredServerScanner</value>
+            </list>
+        </property>
+
+        <property name="recoveryActivators" preinstantiate="false">
+            <list elementClass="java.lang.String">
+                <value>com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement</value>
+            </list>
+        </property>
+
+    </bean>
+
+    <bean name="CoreEnvironmentBean" class="com.arjuna.ats.arjuna.common.CoreEnvironmentBean">
+
+        <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.jta:name=CoreEnvironmentBean", exposedInterface=com.arjuna.ats.arjuna.common.CoreEnvironmentBeanMBean.class, registerDirectly=true)</annotation>
+
+        <constructor factoryClass="com.arjuna.ats.arjuna.common.arjPropertyManager" factoryMethod="getCoreEnvironmentBean"/>
+
+        <property name="socketProcessIdPort">
+            <value-factory bean="ServiceBindingManager"
+                           method="getIntBinding">
+                <parameter>TransactionManager</parameter>
+                <parameter>socketProcessId</parameter>
+            </value-factory>
+        </property>
+
+        <property name="nodeIdentifier">1</property>
+
+    </bean>
+
+    <bean name="CoordinatorEnvironmentBean" class="com.arjuna.ats.arjuna.common.CoordinatorEnvironmentBean">
+
+        <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.jta:name=CoordinatorEnvironmentBean", exposedInterface=com.arjuna.ats.arjuna.common.CoordinatorEnvironmentBeanMBean.class, registerDirectly=true)</annotation>
+
+        <constructor factoryClass="com.arjuna.ats.arjuna.common.arjPropertyManager" factoryMethod="getCoordinatorEnvironmentBean"/>
+
+        <property name="enableStatistics">false</property>
+        <property name="defaultTimeout">300</property>
+    </bean>
+
+    <bean name="ObjectStoreEnvironmentBean" class="com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean">
+
+        <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.jta:name=ObjectStoreEnvironmentBean", exposedInterface=com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBeanMBean.class, registerDirectly=true)</annotation>
+
+        <constructor factoryClass="com.arjuna.ats.arjuna.common.arjPropertyManager" factoryMethod="getObjectStoreEnvironmentBean"/>
+
+        <property name="objectStoreDir">${jboss.server.data.dir}/tx-object-store</property>
+    </bean>
+
+    <bean name="JTAEnvironmentBean" class="com.arjuna.ats.jta.common.JTAEnvironmentBean">
+
+        <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.jta:name=JTAEnvironmentBean", exposedInterface=com.arjuna.ats.jta.common.JTAEnvironmentBeanMBean.class, registerDirectly=true)</annotation>
+
+        <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.jts.TransactionManagerDelegate</property>
+        <property name="jtaUTImplementation">com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple</property>
+        <property name="jtaTSRImplementation">com.arjuna.ats.internal.jta.transaction.jts.TransactionSynchronizationRegistryImple</property>
+
+        <property name="xaRecoveryNodes" preinstantiate="false">
+            <list elementClass="java.lang.String">
+                <value>1</value>
+            </list>
+        </property>
+
+    </bean>
+
+    <bean name="RecoveryManager" class="com.arjuna.ats.jbossatx.jts.RecoveryManagerService">
+
+        <constructor>
+            <parameter><inject bean="jboss:service=CorbaORB" property="ORB"/></parameter>
+        </constructor>
+
+        <demand state="Create">LoggingEnvironmentBean</demand>
+        <demand state="Create">RecoveryEnvironmentBean</demand>
+
+    </bean>
+
+    <bean name="XATerminator" class="com.arjuna.ats.internal.jbossatx.jts.jca.XATerminator"/>
+
+    <bean name="TransactionSynchronizationRegistry" class="com.arjuna.ats.internal.jta.transaction.jts.TransactionSynchronizationRegistryImple"/>
+
+    <bean name="TransactionManager" class="com.arjuna.ats.jbossatx.jts.TransactionManagerService">
+        <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss:service=TransactionManager", exposedInterface=com.arjuna.ats.jbossatx.jts.TransactionManagerServiceMBean.class, registerDirectly=true)</annotation>
+        <annotation>@org.jboss.managed.api.annotation.ManagementObject(name="TransactionManager",componentType=@org.jboss.managed.api.annotation.ManagementComponent(type = "MCBean", subtype = "JTA"),targetInterface=com.arjuna.ats.jbossatx.jts.TransactionManagerServiceMBean.class)</annotation>
+
+        <property name="jbossXATerminator"><inject bean="XATerminator"/></property>
+        <property name="transactionSynchronizationRegistry"><inject bean="TransactionSynchronizationRegistry"/></property>
+        
+        <start>
+            <parameter><inject bean="jboss:service=CorbaORB" property="ORB"/></parameter>            
+        </start>
+
+        <demand state="Create">LoggingEnvironmentBean</demand>
+        <demand state="Create">RecoveryEnvironmentBean</demand>
+        <demand state="Create">CoreEnvironmentBean</demand>
+        <demand state="Create">CoordinatorEnvironmentBean</demand>
+        <demand state="Create">ObjectStoreEnvironmentBean</demand>
+        <demand state="Create">JTAEnvironmentBean</demand>
+        <demand>RecoveryManager</demand>
+
+        <!-- the TransactionManager itself does not depend on JNDI, but some things that expect to be able to do
+          JNDI lookups express a dependency on the TM rather than the JNDI bindings, so we need to placate them -->
+        <demand>TransactionManagerJNDIBinding</demand>
+        <demand>TransactionSynchronizationRegistryJNDIBinding</demand>
+        <demand>TransactionPropagationContextImporterJNDIBinding</demand>
+        <demand>TransactionPropagationContextExporterJNDIBinding</demand>
+
+    </bean>
+
+    <bean name="TransactionStatistics" class="com.arjuna.ats.arjuna.coordinator.TxStats">
+
+        <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.jta:name=TransactionStatistics", exposedInterface=com.arjuna.ats.arjuna.coordinator.TxStatsMBean.class, registerDirectly=true)</annotation>
+
+        <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">
+
+        <!-- It's the job of individual components (EJB3, web, etc) to copy the ref to the java:/comp space) -->
+        <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.jts.PropagationContextManager</property>
+        <property name="factory">com.arjuna.ats.internal.jbossatx.jts.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.jts.PropagationContextManager</property>
+        <property name="factory">com.arjuna.ats.internal.jbossatx.jts.PropagationContextManager</property>
+
+        <install method="bind"/>
+        <uninstall method="unbind"/>
+    </bean>
+
+
+
+
+    <!-- Make javax.transaction.TransactionManager available for injection -->
+    <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"/>
+      <!-- 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"/>
+       <demand>TransactionManager</demand>
+    </bean>
+
+</deployment>

Modified: trunk/server/src/etc/deploy/transaction-jboss-beans.xml
===================================================================
--- trunk/server/src/etc/deploy/transaction-jboss-beans.xml	2009-12-14 16:13:34 UTC (rev 97791)
+++ trunk/server/src/etc/deploy/transaction-jboss-beans.xml	2009-12-14 16:16:18 UTC (rev 97792)
@@ -1,55 +1,241 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <deployment xmlns="urn:jboss:bean-deployer:2.0">
 
-    <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>
-        <annotation>@org.jboss.managed.api.annotation.ManagementObject(name="TransactionManager",componentType=@org.jboss.managed.api.annotation.ManagementComponent(type = "MCBean", subtype = "JTA"),targetInterface=com.arjuna.ats.jbossatx.jta.TransactionManagerServiceMBean.class)</annotation>
+    <!--
+        This is an example transaction-jboss-beans.xml file suitable for installing
+        JBossTS 4.9 JTA into AS 6.0 alpha.
+        You need a different version of this file for JTS mode (try docs/examples/transactions/).
+        You don't need a jbossts-properties.xml in the AS anymore, it's all done by the beans below.
 
-        <property name="transactionTimeout">300</property>
-        <property name="objectStoreDir">${jboss.server.data.dir}/tx-object-store</property>
-        <property name="mbeanServer"><inject bean="JMXKernel" property="mbeanServer"/></property>
+         jonathan.halliday at redhat.com, 2009-09
+    -->
 
-        <property name="transactionStatusManagerInetAddress">
+    <bean name="LoggingEnvironmentBean" class="com.arjuna.common.internal.util.logging.LoggingEnvironmentBean">
+
+        <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.jta:name=LoggingEnvironmentBean", exposedInterface=com.arjuna.common.internal.util.logging.LoggingEnvironmentBeanMBean.class, registerDirectly=true)</annotation>
+
+        <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>
+        <!--<property name="loggingFactory">com.arjuna.ats.internal.jbossatx.logging.JBossLogFactory</property>-->
+
+    </bean>
+
+    <bean name="RecoveryEnvironmentBean" class="com.arjuna.ats.arjuna.common.RecoveryEnvironmentBean">
+
+        <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.jta:name=RecoveryEnvironmentBean", exposedInterface=com.arjuna.ats.arjuna.common.RecoveryEnvironmentBeanMBean.class, registerDirectly=true)</annotation>
+
+        <constructor factoryClass="com.arjuna.ats.arjuna.common.recoveryPropertyManager" factoryMethod="getRecoveryEnvironmentBean"/>
+
+        <property name="recoveryInetAddress">
             <value-factory bean="ServiceBindingManager"
                            method="getInetAddressBinding">
                 <parameter>TransactionManager</parameter>
-                <parameter>transactionStatusManager</parameter>
+                <parameter>recoveryManager</parameter>
             </value-factory>
         </property>
-        <property name="transactionStatusManagerPort">
+        <property name="recoveryPort">
             <value-factory bean="ServiceBindingManager"
                            method="getIntBinding" >
                 <parameter>TransactionManager</parameter>
-                <parameter>transactionStatusManager</parameter>
+                <parameter>recoveryManager</parameter>
             </value-factory>
         </property>
 
-        <property name="recoveryInetAddress">
+        <property name="transactionStatusManagerInetAddress">
             <value-factory bean="ServiceBindingManager"
                            method="getInetAddressBinding">
                 <parameter>TransactionManager</parameter>
-                <parameter>recoveryManager</parameter>
+                <parameter>transactionStatusManager</parameter>
             </value-factory>
         </property>
-        <property name="recoveryPort">
+        <property name="transactionStatusManagerPort">
             <value-factory bean="ServiceBindingManager"
                            method="getIntBinding" >
                 <parameter>TransactionManager</parameter>
-                <parameter>recoveryManager</parameter>
+                <parameter>transactionStatusManager</parameter>
             </value-factory>
         </property>
 
-        <property name="socketProcessIdPort">0</property>
+        <property name="recoveryExtensions" preinstantiate="false">
+            <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" preinstantiate="false">
+            <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" class="com.arjuna.ats.arjuna.common.CoreEnvironmentBean">
+
+        <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.jta:name=CoreEnvironmentBean", exposedInterface=com.arjuna.ats.arjuna.common.CoreEnvironmentBeanMBean.class, registerDirectly=true)</annotation>
+
+        <constructor factoryClass="com.arjuna.ats.arjuna.common.arjPropertyManager" factoryMethod="getCoreEnvironmentBean"/>
+
+        <property name="socketProcessIdPort">
+            <value-factory bean="ServiceBindingManager"
+                           method="getIntBinding">
+                <parameter>TransactionManager</parameter>
+                <parameter>socketProcessId</parameter>
+            </value-factory>
+        </property>
+
+        <property name="nodeIdentifier">1</property>
+
+    </bean>
+
+    <bean name="CoordinatorEnvironmentBean" class="com.arjuna.ats.arjuna.common.CoordinatorEnvironmentBean">
+
+        <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.jta:name=CoordinatorEnvironmentBean", exposedInterface=com.arjuna.ats.arjuna.common.CoordinatorEnvironmentBeanMBean.class, registerDirectly=true)</annotation>
+
+        <constructor factoryClass="com.arjuna.ats.arjuna.common.arjPropertyManager" factoryMethod="getCoordinatorEnvironmentBean"/>
+
+        <property name="enableStatistics">false</property>
+        <property name="defaultTimeout">300</property>
+    </bean>
+
+    <bean name="ObjectStoreEnvironmentBean" class="com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean">
+
+        <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.jta:name=ObjectStoreEnvironmentBean", exposedInterface=com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBeanMBean.class, registerDirectly=true)</annotation>
+
+        <constructor factoryClass="com.arjuna.ats.arjuna.common.arjPropertyManager" factoryMethod="getObjectStoreEnvironmentBean"/>
+
+        <property name="objectStoreDir">${jboss.server.data.dir}/tx-object-store</property>
+    </bean>
+
+    <bean name="JTAEnvironmentBean" class="com.arjuna.ats.jta.common.JTAEnvironmentBean">
+
+        <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.jta:name=JTAEnvironmentBean", exposedInterface=com.arjuna.ats.jta.common.JTAEnvironmentBeanMBean.class, registerDirectly=true)</annotation>
+
+        <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" preinstantiate="false">
+            <list elementClass="java.lang.String">
+                <value>1</value>
+            </list>
+        </property>
+        
+    </bean>
+
+    <bean name="RecoveryManager" class="com.arjuna.ats.jbossatx.jta.RecoveryManagerService">
+
+        <demand state="Create">LoggingEnvironmentBean</demand>
+        <demand state="Create">RecoveryEnvironmentBean</demand>
+
+    </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">
+        <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss:service=TransactionManager", exposedInterface=com.arjuna.ats.jbossatx.jta.TransactionManagerServiceMBean.class, registerDirectly=true)</annotation>
+        <annotation>@org.jboss.managed.api.annotation.ManagementObject(name="TransactionManager",componentType=@org.jboss.managed.api.annotation.ManagementComponent(type = "MCBean", subtype = "JTA"),targetInterface=com.arjuna.ats.jbossatx.jta.TransactionManagerServiceMBean.class)</annotation>
+
+        <property name="jbossXATerminator"><inject bean="XATerminator"/></property>
+        <property name="transactionSynchronizationRegistry"><inject bean="TransactionSynchronizationRegistry"/></property>
+
+        <demand state="Create">LoggingEnvironmentBean</demand>
+        <demand state="Create">RecoveryEnvironmentBean</demand>
+        <demand state="Create">CoreEnvironmentBean</demand>
+        <demand state="Create">CoordinatorEnvironmentBean</demand>
+        <demand state="Create">ObjectStoreEnvironmentBean</demand>
+        <demand state="Create">JTAEnvironmentBean</demand>
+        <demand>RecoveryManager</demand>
+
+        <!-- the TransactionManager itself does not depend on JNDI, but some things that expect to be able to do
+          JNDI lookups express a dependency on the TM rather than the JNDI bindings, so we need to placate them -->
+        <demand>TransactionManagerJNDIBinding</demand>
+        <demand>TransactionSynchronizationRegistryJNDIBinding</demand>
+        <demand>TransactionPropagationContextImporterJNDIBinding</demand>
+        <demand>TransactionPropagationContextExporterJNDIBinding</demand>
+
+    </bean>
+
+    <bean name="TransactionStatistics" class="com.arjuna.ats.arjuna.coordinator.TxStats">
+
+        <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.jta:name=TransactionStatistics", exposedInterface=com.arjuna.ats.arjuna.coordinator.TxStatsMBean.class, registerDirectly=true)</annotation>
+
+        <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">
+
+        <!-- It's the job of individual components (EJB3, web, etc) to copy the ref to the java:/comp space) -->
+        <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>
+
+
+
+
     <!-- Make javax.transaction.TransactionManager available for injection -->
     <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 -->

Modified: trunk/testsuite/build.xml
===================================================================
--- trunk/testsuite/build.xml	2009-12-14 16:13:34 UTC (rev 97791)
+++ trunk/testsuite/build.xml	2009-12-14 16:16:18 UTC (rev 97792)
@@ -360,7 +360,6 @@
 
       <!-- needed for jbossts crash recovery tests -->
       <fileset refid="org.jboss.jbossas:jboss-server-manager:jar"/>
-      <fileset refid="jboss.jbossts:jbossts-common:jar"/>
       <fileset refid="jboss.jbossts:jbossjts:jar"/>
       <fileset refid="jboss.jbossts:jbossjts-integration:jar"/>
 

Modified: trunk/testsuite/src/main/org/jboss/test/crashrecovery/taskdefs/TransactionLog.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/crashrecovery/taskdefs/TransactionLog.java	2009-12-14 16:13:34 UTC (rev 97791)
+++ trunk/testsuite/src/main/org/jboss/test/crashrecovery/taskdefs/TransactionLog.java	2009-12-14 16:16:18 UTC (rev 97792)
@@ -22,10 +22,13 @@
 
 import com.arjuna.ats.arjuna.objectstore.ObjectStore;
 import com.arjuna.ats.arjuna.common.Uid;
-import com.arjuna.ats.arjuna.gandiva.ClassName;
+import com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean;
+import com.arjuna.ats.arjuna.common.arjPropertyManager;
 import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
 import com.arjuna.ats.arjuna.state.InputObjectState;
 import com.arjuna.ats.arjuna.AtomicAction;
+import com.arjuna.ats.arjuna.coordinator.TxControl;
+import com.arjuna.ats.internal.arjuna.common.UidHelper;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -49,12 +52,24 @@
 
    private void init(String storeDir, String impleType)
    {
-      System.setProperty("com.arjuna.ats.arjuna.objectstore.objectStoreDir", storeDir);
+		ObjectStoreEnvironmentBean objectStoreEnvironmentBean = arjPropertyManager.getObjectStoreEnvironmentBean();
+		objectStoreEnvironmentBean.setObjectStoreDir(storeDir);
 
-      if (impleType != null)
-         store = new ObjectStore(new ClassName(impleType), (String) null);
-      else
-         store = new ObjectStore();
+        if (impleType != null)
+        {
+            try
+            {
+                Class c = Class.forName(impleType);
+
+                store = (ObjectStore) c.newInstance();
+            }
+            catch (final Throwable ex)
+            {
+                ex.printStackTrace();
+            }
+        }
+        else
+            store = TxControl.getStore();
    }
 
    /**
@@ -117,25 +132,27 @@
 
                   if (store.allObjUids(theName, uids))
                   {
-                     try
-                     {
-                        boolean endOfUids = false;
 
-                        while (!endOfUids)
-                        {
-                           Uid theUid = new Uid(Uid.nullUid());
-                           theUid.unpack(uids);
+                      Uid theUid;
 
-                           if (theUid.equals(Uid.nullUid()))
-                              endOfUids = true;
-                           else
-                              ids.add(theUid);
-                        }
-                     }
-                     catch (Exception e)
-                     {
-                        // end of uids!
-                     }
+                      try
+                      {
+                          boolean endOfUids = false;
+
+                          while (!endOfUids)
+                          {
+                              theUid = UidHelper.unpackFrom(uids);
+
+                              if (theUid.equals(Uid.nullUid()))
+                                  endOfUids = true;
+                              else
+                                  ids.add(theUid);
+                          }
+                      }
+                      catch (Exception e)
+                      {
+                          // end of uids!
+                      }
                   }
 
                   System.out.println();




More information about the jboss-cvs-commits mailing list