[jboss-svn-commits] JBL Code SVN: r34828 - in labs/jbosstm/trunk/XTS: WS-C/dev/src/org/jboss/jbossts/xts/environment and 29 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Aug 23 08:42:08 EDT 2010


Author: adinn
Date: 2010-08-23 08:42:03 -0400 (Mon, 23 Aug 2010)
New Revision: 34828

Added:
   labs/jbosstm/trunk/XTS/WS-C/dev/src/org/jboss/jbossts/xts/environment/RecoveryEnvironmentBean.java
   labs/jbosstm/trunk/XTS/WS-C/dev/src/org/jboss/jbossts/xts/environment/XTSEnvironmentBean.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/XTSRecoveryModule.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/CoordinatorRecoveryInitialisation.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/logging/
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/logging/RecoveryLogger.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/logging/recoveryI18NLogger.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/logging/recoveryI18NLoggerImpl.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/ParticipantRecoveryInitialisation.java
   labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/
   labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/ClientSideInitialisation.java
   labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/CoordinatorSideInitialisation.java
   labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/ParticipantSideInitialisation.java
   labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/XTS10Initialisation.java
   labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/XTSInitialisation.java
   labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/logging/
   labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/logging/XTSLogger.java
   labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/logging/xtsI18NLogger.java
   labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/logging/xtsI18NLoggerImpl.java
Removed:
   labs/jbosstm/trunk/XTS/WS-C/dev/src11/com/arjuna/wsc11/messaging/deploy/WSCCloseInitialisation.java
   labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/deploy/WSTCloseInitialisation.java
   labs/jbosstm/trunk/XTS/WSCF/classes11/com/arjuna/mw/wsc11/deploy/WSCFCloseInitialisation.java
   labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mw/wst11/deploy/WSTXCloseInitialisation.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/logging/
Modified:
   labs/jbosstm/trunk/XTS/WS-C/dev/dd/ws-c11_web-app.xml
   labs/jbosstm/trunk/XTS/WS-C/dev/src/org/jboss/jbossts/xts/environment/XTSPropertyManager.java
   labs/jbosstm/trunk/XTS/WS-C/dev/src11/com/arjuna/webservices11/wscoor/server/ActivationCoordinatorInitialisation.java
   labs/jbosstm/trunk/XTS/WS-C/dev/src11/com/arjuna/webservices11/wscoor/server/RegistrationCoordinatorInitialisation.java
   labs/jbosstm/trunk/XTS/WS-C/dev/src11/com/arjuna/wsc11/messaging/deploy/CoordinationInitialisation.java
   labs/jbosstm/trunk/XTS/WS-T/dev/dd/ws-t11_web-app.xml
   labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsarjtx/server/TerminationCoordinatorInitialisation.java
   labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsarjtx/server/TerminationParticipantInitialisation.java
   labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsat/server/CompletionCoordinatorInitialisation.java
   labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsat/server/CompletionInitiatorInitialisation.java
   labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsat/server/CoordinatorInitialisation.java
   labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsat/server/ParticipantInitialisation.java
   labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsba/server/CoordinatorCompletionCoordinatorInitialisation.java
   labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsba/server/CoordinatorCompletionParticipantInitialisation.java
   labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsba/server/ParticipantCompletionCoordinatorInitialisation.java
   labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsba/server/ParticipantCompletionParticipantInitialisation.java
   labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/deploy/WSTCoordinatorInitialisation.java
   labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/deploy/WSTParticipantInitialisation.java
   labs/jbosstm/trunk/XTS/WSCF/classes11/com/arjuna/mw/wsc11/deploy/WSCFInitialisation.java
   labs/jbosstm/trunk/XTS/WSCF/xml/wscf11_web-app.xml
   labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mw/wst11/deploy/WSTXInitialisation.java
   labs/jbosstm/trunk/XTS/WSTX/xml/wstx_web-app11.xml
   labs/jbosstm/trunk/XTS/config/xts-properties.xml
   labs/jbosstm/trunk/XTS/config/xts-properties11.xml
   labs/jbosstm/trunk/XTS/recovery/build.xml
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/ATCoordinatorRecoveryModule.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/RecoveryATCoordinator.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/RecoverySubordinateATCoordinator.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/SubordinateATCoordinatorRecoveryModule.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/ba/BACoordinatorRecoveryModule.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/ba/RecoveryBACoordinator.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/ba/RecoverySubordinateBACoordinator.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/ba/SubordinateBACoordinatorRecoveryModule.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/at/ATParticipantRecoveryModule.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/at/XTSATRecoveryManagerImple.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/ba/BAParticipantRecoveryModule.java
   labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/ba/XTSBARecoveryManagerImple.java
   labs/jbosstm/trunk/XTS/sar/META-INF/xts-jboss-beans.xml
   labs/jbosstm/trunk/XTS/sar/META-INF/xts11-jboss-beans.xml
   labs/jbosstm/trunk/XTS/sar/build.xml
   labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/XTSService.java
   labs/jbosstm/trunk/XTS/sar/tests/build.xml
Log:
reorganized initialisation so that it is configured via properties allowing cleint, participant or coordinator initialisation to be dropped. also renamed logger in recovery module and recretwed XTSLogger logger in sar module. fixes for JBTM-678 and JBTM-777

Modified: labs/jbosstm/trunk/XTS/WS-C/dev/dd/ws-c11_web-app.xml
===================================================================
--- labs/jbosstm/trunk/XTS/WS-C/dev/dd/ws-c11_web-app.xml	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-C/dev/dd/ws-c11_web-app.xml	2010-08-23 12:42:03 UTC (rev 34828)
@@ -27,24 +27,6 @@
 
     <description>WS-Coordination 1.1 Services</description>
 
-    <!-- Initialise WS Coord 1.1 services -->
-    <listener>
-        <listener-class>com.arjuna.webservices11.wscoor.server.ActivationCoordinatorInitialisation</listener-class>
-    </listener>
-    <listener>
-        <listener-class>com.arjuna.webservices11.wscoor.server.RegistrationCoordinatorInitialisation</listener-class>
-    </listener>
-
-    <!-- Initialise WS-C 1.1  -->
-    <listener>
-        <listener-class>com.arjuna.wsc11.messaging.deploy.CoordinationInitialisation</listener-class>
-    </listener>
-
-    <!-- Close the WS-C 1.1 initialisation sequence must be last listener -->
-    <listener>
-        <listener-class>com.arjuna.wsc11.messaging.deploy.WSCCloseInitialisation</listener-class>
-    </listener>
-
     <!-- Define WSCOOR 1.1 JaxWS Server Endpoints -->
     <servlet>
       <servlet-name>ActivationService</servlet-name>

Added: labs/jbosstm/trunk/XTS/WS-C/dev/src/org/jboss/jbossts/xts/environment/RecoveryEnvironmentBean.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-C/dev/src/org/jboss/jbossts/xts/environment/RecoveryEnvironmentBean.java	                        (rev 0)
+++ labs/jbosstm/trunk/XTS/WS-C/dev/src/org/jboss/jbossts/xts/environment/RecoveryEnvironmentBean.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -0,0 +1,43 @@
+package org.jboss.jbossts.xts.environment;
+
+import com.arjuna.common.internal.util.propertyservice.ConcatenationPrefix;
+import com.arjuna.common.internal.util.propertyservice.PropertyPrefix;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * bean storing recovery implementation configuration values derived from the xts properties file,
+ * system property settings and, in case we are running inside JBossAS the xts bean.xml file
+ */
+ at PropertyPrefix(prefix = "org.jboss.jbossts.xts.recovery.")
+public class RecoveryEnvironmentBean
+{
+    /**
+     * the list of XTS recovery modules to be installed at startup and removed at shutdown
+     */
+    @ConcatenationPrefix(prefix="org.jboss.jbossts.xts.recovery.coordinatorRecoveryModule")
+    private volatile List<String> coordinatorRecoveryModules = new ArrayList<String>();
+
+    /**
+     * the list of XTS recovery modules to be installed at startup and removed at shutdown
+     */
+    @ConcatenationPrefix(prefix="org.jboss.jbossts.xts.recovery.participantRecoveryModule")
+    private volatile List<String> participantRecoveryModules = new ArrayList<String>();
+
+    public List<String> getCoordinatorRecoveryModules() {
+        return coordinatorRecoveryModules;
+    }
+
+    public void setCoordinatorRecoveryModules(List<String> coordinatorRecoveryModules) {
+        this.coordinatorRecoveryModules = coordinatorRecoveryModules;
+    }
+
+    public List<String> getParticipantRecoveryModules() {
+        return participantRecoveryModules;
+    }
+
+    public void setParticipantRecoveryModules(List<String> participantRecoveryModules) {
+        this.participantRecoveryModules = participantRecoveryModules;
+    }
+}

Added: labs/jbosstm/trunk/XTS/WS-C/dev/src/org/jboss/jbossts/xts/environment/XTSEnvironmentBean.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-C/dev/src/org/jboss/jbossts/xts/environment/XTSEnvironmentBean.java	                        (rev 0)
+++ labs/jbosstm/trunk/XTS/WS-C/dev/src/org/jboss/jbossts/xts/environment/XTSEnvironmentBean.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -0,0 +1,30 @@
+package org.jboss.jbossts.xts.environment;
+
+import com.arjuna.common.internal.util.propertyservice.ConcatenationPrefix;
+import com.arjuna.common.internal.util.propertyservice.PropertyPrefix;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * bean holding the configuration proeprty settings which identify intiialisation routines
+ * to be run during XTS startup and shutdown
+ */
+
+ at PropertyPrefix(prefix = "org.jboss.jbossts.xts.initialisation.")
+public class XTSEnvironmentBean
+{
+    /**
+     * the list of XTS recovery modules to be installed at startup and removed at shutdown
+     */
+    @ConcatenationPrefix(prefix="org.jboss.jbossts.xts.initialisation.xtsInitialisation")
+    private volatile List<String> xtsInitialisations = new ArrayList<String>();
+
+    public List<String> getXtsInitialisations() {
+        return xtsInitialisations;
+    }
+
+    public void setXtsInitialisations(List<String> xtsInitialisations) {
+        this.xtsInitialisations = xtsInitialisations;
+    }
+}

Modified: labs/jbosstm/trunk/XTS/WS-C/dev/src/org/jboss/jbossts/xts/environment/XTSPropertyManager.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-C/dev/src/org/jboss/jbossts/xts/environment/XTSPropertyManager.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-C/dev/src/org/jboss/jbossts/xts/environment/XTSPropertyManager.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -28,6 +28,16 @@
         return BeanPopulator.getSingletonInstance(WSTEnvironmentBean.class, xtsProperties);
     }
 
+    public static RecoveryEnvironmentBean getRecoveryEnvironmentBean()
+    {
+        return BeanPopulator.getSingletonInstance(RecoveryEnvironmentBean.class, xtsProperties);
+    }
+
+    public static XTSEnvironmentBean getXTSEnvironmentBean()
+    {
+        return BeanPopulator.getSingletonInstance(XTSEnvironmentBean.class, xtsProperties);
+    }
+
     private static Properties mergeSystemProperties(Properties properties)
     {
         Properties systemProperties = System.getProperties();

Modified: labs/jbosstm/trunk/XTS/WS-C/dev/src11/com/arjuna/webservices11/wscoor/server/ActivationCoordinatorInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-C/dev/src11/com/arjuna/webservices11/wscoor/server/ActivationCoordinatorInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-C/dev/src11/com/arjuna/webservices11/wscoor/server/ActivationCoordinatorInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -20,66 +20,48 @@
  */
 package com.arjuna.webservices11.wscoor.server;
 
-import com.arjuna.services.framework.startup.Sequencer;
 import com.arjuna.webservices11.wscoor.CoordinationConstants;
 import com.arjuna.webservices11.ServiceRegistry;
-import com.arjuna.wsc.common.Environment;
 import org.jboss.jbossts.xts.environment.WSCEnvironmentBean;
 import org.jboss.jbossts.xts.environment.XTSPropertyManager;
 
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
 /**
  * Activate the Activation Coordinator service
  * @author kevin
  */
-public class ActivationCoordinatorInitialisation implements ServletContextListener
+public class ActivationCoordinatorInitialisation
 {
-    /**
-     * The context has been initialized.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    public static void startup()
     {
-        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WSC11) {
-           public void run() {
-               final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
-               WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
-               String bindAddress = wscEnvironmentBean.getBindAddress11();
-               int bindPort = wscEnvironmentBean.getBindPort11();
-               int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
+        final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
+        WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
+        String bindAddress = wscEnvironmentBean.getBindAddress11();
+        int bindPort = wscEnvironmentBean.getBindPort11();
+        int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
 
 
-               if (bindAddress == null) {
-                   bindAddress = "127.0.0.1";
-               }
+        if (bindAddress == null) {
+            bindAddress = "127.0.0.1";
+        }
 
-               if (bindPort == 0) {
-                   bindPort = 8080;
-               }
+        if (bindPort == 0) {
+            bindPort = 8080;
+        }
 
-               if (secureBindPort == 0) {
-                   secureBindPort = 8443;
-               }
+        if (secureBindPort == 0) {
+            secureBindPort = 8443;
+        }
 
-               final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-c11/";
-               final String uri = baseUri + "ActivationService";
-               final String secureBaseUri = "https://" + bindAddress + ":" + secureBindPort + "/ws-c11/";
-               final String secureUri = secureBaseUri + "ActivationService";
+        final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-c11/";
+        final String uri = baseUri + "ActivationService";
+        final String secureBaseUri = "https://" + bindAddress + ":" + secureBindPort + "/ws-c11/";
+        final String secureUri = secureBaseUri + "ActivationService";
 
-               serviceRegistry.registerServiceProvider(CoordinationConstants.ACTIVATION_SERVICE_NAME, uri) ;
-               serviceRegistry.registerSecureServiceProvider(CoordinationConstants.ACTIVATION_SERVICE_NAME, secureUri) ;
-           }
-        };
+        serviceRegistry.registerServiceProvider(CoordinationConstants.ACTIVATION_SERVICE_NAME, uri) ;
+        serviceRegistry.registerSecureServiceProvider(CoordinationConstants.ACTIVATION_SERVICE_NAME, secureUri) ;
     }
 
-    /**
-     * The context is about to be destroyed.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    public static void shutdown()
     {
     }
 }

Modified: labs/jbosstm/trunk/XTS/WS-C/dev/src11/com/arjuna/webservices11/wscoor/server/RegistrationCoordinatorInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-C/dev/src11/com/arjuna/webservices11/wscoor/server/RegistrationCoordinatorInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-C/dev/src11/com/arjuna/webservices11/wscoor/server/RegistrationCoordinatorInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -20,67 +20,53 @@
  */
 package com.arjuna.webservices11.wscoor.server;
 
-import com.arjuna.services.framework.startup.Sequencer;
 import com.arjuna.webservices11.wscoor.CoordinationConstants;
 import com.arjuna.webservices11.ServiceRegistry;
-import com.arjuna.wsc.common.Environment;
 import org.jboss.jbossts.xts.environment.WSCEnvironmentBean;
 import org.jboss.jbossts.xts.environment.XTSPropertyManager;
 
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
 /**
  * Activate the Registration Coordinator service
  * @author kevin
  */
-public class RegistrationCoordinatorInitialisation implements ServletContextListener
+public class RegistrationCoordinatorInitialisation
 {
     /**
      * The context has been initialized.
      * @param servletContextEvent The servlet context event.
      */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    public static void startup()
     {
-        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WSC11) {
-           public void run() {
-               // TODO work out how to configure the endpoint name here
-               final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
-               WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
-               String bindAddress = wscEnvironmentBean.getBindAddress11();
-               int bindPort = wscEnvironmentBean.getBindPort11();
-               int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
+        // TODO work out how to configure the endpoint name here
+        final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
+        WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
+        String bindAddress = wscEnvironmentBean.getBindAddress11();
+        int bindPort = wscEnvironmentBean.getBindPort11();
+        int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
 
 
-               if (bindAddress == null) {
-                   bindAddress = "127.0.0.1";
-               }
+        if (bindAddress == null) {
+            bindAddress = "127.0.0.1";
+        }
 
-               if (bindPort == 0) {
-                   bindPort = 8080;
-               }
+        if (bindPort == 0) {
+            bindPort = 8080;
+        }
 
-               if (secureBindPort == 0) {
-                   secureBindPort = 8443;
-               }
+        if (secureBindPort == 0) {
+            secureBindPort = 8443;
+        }
 
-               final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-c11/";
-               final String uri = baseUri + "RegistrationService";
-               final String secureBaseUri = "https://" + bindAddress + ":" + secureBindPort + "/ws-c11/";
-               final String secureUri = secureBaseUri + "RegistrationService";
+        final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-c11/";
+        final String uri = baseUri + "RegistrationService";
+        final String secureBaseUri = "https://" + bindAddress + ":" + secureBindPort + "/ws-c11/";
+        final String secureUri = secureBaseUri + "RegistrationService";
 
-               serviceRegistry.registerServiceProvider(CoordinationConstants.REGISTRATION_SERVICE_NAME, uri) ;
-               serviceRegistry.registerSecureServiceProvider(CoordinationConstants.REGISTRATION_SERVICE_NAME, secureUri); ;
-           }
-        };
+        serviceRegistry.registerServiceProvider(CoordinationConstants.REGISTRATION_SERVICE_NAME, uri) ;
+        serviceRegistry.registerSecureServiceProvider(CoordinationConstants.REGISTRATION_SERVICE_NAME, secureUri); ;
     }
 
-    /**
-     * The context is about to be destroyed.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    public static void shutdown()
     {
     }
 }

Modified: labs/jbosstm/trunk/XTS/WS-C/dev/src11/com/arjuna/wsc11/messaging/deploy/CoordinationInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-C/dev/src11/com/arjuna/wsc11/messaging/deploy/CoordinationInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-C/dev/src11/com/arjuna/wsc11/messaging/deploy/CoordinationInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -20,40 +20,24 @@
  */
 package com.arjuna.wsc11.messaging.deploy;
 
-import com.arjuna.services.framework.startup.Sequencer;
 import com.arjuna.webservices11.wscoor.processors.ActivationCoordinatorProcessor;
 import com.arjuna.webservices11.wscoor.processors.RegistrationCoordinatorProcessor;
 import com.arjuna.wsc11.messaging.ActivationCoordinatorProcessorImpl;
 import com.arjuna.wsc11.messaging.RegistrationCoordinatorProcessorImpl;
 
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
 /**
  * Initialise the coordination services.
  * @author kevin
  */
-public class CoordinationInitialisation implements ServletContextListener
+public class CoordinationInitialisation
 {
-    /**
-     * The context has been initialized.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    public static void startup()
     {
-        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WSC11) {
-           public void run() {
-               ActivationCoordinatorProcessor.setCoordinator(new ActivationCoordinatorProcessorImpl()) ;
-               RegistrationCoordinatorProcessor.setCoordinator(new RegistrationCoordinatorProcessorImpl()) ;
-           }
-        };
+        ActivationCoordinatorProcessor.setCoordinator(new ActivationCoordinatorProcessorImpl()) ;
+        RegistrationCoordinatorProcessor.setCoordinator(new RegistrationCoordinatorProcessorImpl()) ;
     }
 
-    /**
-     * The context is about to be destroyed.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    public static void shutdown()
     {
     }
 }
\ No newline at end of file

Deleted: labs/jbosstm/trunk/XTS/WS-C/dev/src11/com/arjuna/wsc11/messaging/deploy/WSCCloseInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-C/dev/src11/com/arjuna/wsc11/messaging/deploy/WSCCloseInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-C/dev/src11/com/arjuna/wsc11/messaging/deploy/WSCCloseInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -1,51 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. 
- * See the copyright.txt in the distribution for a full listing 
- * of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.
- * 
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package com.arjuna.wsc11.messaging.deploy;
-
-import com.arjuna.services.framework.startup.Sequencer;
-
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
-/**
- * Complete initialisation of WS-C component by closing the callback sequence
- * @author kevin
- */
-public class WSCCloseInitialisation implements ServletContextListener
-{
-    /**
-     * The context has been initialized.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
-    {
-        // close the WSC list
-        Sequencer.close(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WSC11);
-    }
-
-    /**
-     * The context is about to be destroyed.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
-    {
-    }
-}
\ No newline at end of file

Modified: labs/jbosstm/trunk/XTS/WS-T/dev/dd/ws-t11_web-app.xml
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/dd/ws-t11_web-app.xml	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/dd/ws-t11_web-app.xml	2010-08-23 12:42:03 UTC (rev 34828)
@@ -27,55 +27,6 @@
 
     <description>Arjuna Web Services Transaction 1.1</description>
 
-    <!-- Initialise Arjuna TX 1.1 services -->
-    <listener>
-        <listener-class>com.arjuna.webservices11.wsarjtx.server.TerminationParticipantInitialisation</listener-class>
-    </listener>
-    <listener>
-        <listener-class>com.arjuna.webservices11.wsarjtx.server.TerminationCoordinatorInitialisation</listener-class>
-    </listener>
-    
-    <!-- Initialise WS-AT 1.1 services -->
-    <listener>
-        <listener-class>com.arjuna.webservices11.wsat.server.CompletionCoordinatorInitialisation</listener-class>
-    </listener>
-    <listener>
-        <listener-class>com.arjuna.webservices11.wsat.server.CompletionInitiatorInitialisation</listener-class>
-    </listener>
-    <listener>
-        <listener-class>com.arjuna.webservices11.wsat.server.CoordinatorInitialisation</listener-class>
-    </listener>
-    <listener>
-        <listener-class>com.arjuna.webservices11.wsat.server.ParticipantInitialisation</listener-class>
-    </listener>
-    
-    <!-- Initialise WS-BA 1.1 services -->
-    <listener>
-        <listener-class>com.arjuna.webservices11.wsba.server.CoordinatorCompletionCoordinatorInitialisation</listener-class>
-    </listener>
-    <listener>
-        <listener-class>com.arjuna.webservices11.wsba.server.CoordinatorCompletionParticipantInitialisation</listener-class>
-    </listener>
-    <listener>
-        <listener-class>com.arjuna.webservices11.wsba.server.ParticipantCompletionCoordinatorInitialisation</listener-class>
-    </listener>
-    <listener>
-        <listener-class>com.arjuna.webservices11.wsba.server.ParticipantCompletionParticipantInitialisation</listener-class>
-    </listener>
-    
-    <!-- Initialise WS-T  1.1 -->
-    <listener>
-        <listener-class>com.arjuna.wst11.messaging.deploy.WSTCoordinatorInitialisation</listener-class>
-    </listener>
-    <listener>
-        <listener-class>com.arjuna.wst11.messaging.deploy.WSTParticipantInitialisation</listener-class>
-    </listener>
-
-    <!-- Close the WS-T  1.1 initialisation list -->
-    <listener>
-        <listener-class>com.arjuna.wst11.messaging.deploy.WSTCloseInitialisation</listener-class>
-    </listener>
-
     <!-- Define WSAT 1.1 JaxWS Server Endpoints -->
     <servlet>
       <servlet-name>Coordinator</servlet-name>

Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsarjtx/server/TerminationCoordinatorInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsarjtx/server/TerminationCoordinatorInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsarjtx/server/TerminationCoordinatorInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -20,64 +20,47 @@
  */
 package com.arjuna.webservices11.wsarjtx.server;
 
-import com.arjuna.services.framework.startup.Sequencer;
 import com.arjuna.webservices11.wsarjtx.ArjunaTX11Constants;
 import com.arjuna.webservices11.ServiceRegistry;
-import com.arjuna.wsc.common.Environment;
 import org.jboss.jbossts.xts.environment.WSCEnvironmentBean;
 import org.jboss.jbossts.xts.environment.XTSPropertyManager;
 
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
 /**
  * Activate the Terminator Participant service
  * @author kevin
  */
-public class TerminationCoordinatorInitialisation implements ServletContextListener
+public class TerminationCoordinatorInitialisation
 {
-    /**
-     * The context has been initialized.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    public static void startup()
     {
-        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WST11) {
-           public void run() {
-               final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
-               WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
-               String bindAddress = wscEnvironmentBean.getBindAddress11();
-               int bindPort = wscEnvironmentBean.getBindPort11();
-               int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
+        final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
+        WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
+        String bindAddress = wscEnvironmentBean.getBindAddress11();
+        int bindPort = wscEnvironmentBean.getBindPort11();
+        int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
 
-               if (bindAddress == null) {
-                   bindAddress = "127.0.0.1";
-               }
+        if (bindAddress == null) {
+            bindAddress = "127.0.0.1";
+        }
 
-               if (bindPort == 0) {
-                   bindPort = 8080;
-               }
+        if (bindPort == 0) {
+            bindPort = 8080;
+        }
 
-               if (secureBindPort == 0) {
-                   secureBindPort = 8443;
-               }
+        if (secureBindPort == 0) {
+            secureBindPort = 8443;
+        }
 
-               final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-t11/";
-               final String uri = baseUri + ArjunaTX11Constants.TERMINATION_COORDINATOR_SERVICE_NAME;
-               final String secureBaseUri = "https://" +  bindAddress + ":" + secureBindPort + "/ws-t11/";
-               final String secureUri = secureBaseUri + ArjunaTX11Constants.TERMINATION_COORDINATOR_SERVICE_NAME;
+        final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-t11/";
+        final String uri = baseUri + ArjunaTX11Constants.TERMINATION_COORDINATOR_SERVICE_NAME;
+        final String secureBaseUri = "https://" +  bindAddress + ":" + secureBindPort + "/ws-t11/";
+        final String secureUri = secureBaseUri + ArjunaTX11Constants.TERMINATION_COORDINATOR_SERVICE_NAME;
 
-               serviceRegistry.registerServiceProvider(ArjunaTX11Constants.TERMINATION_COORDINATOR_SERVICE_NAME, uri) ;
-               serviceRegistry.registerSecureServiceProvider(ArjunaTX11Constants.TERMINATION_COORDINATOR_SERVICE_NAME, secureUri) ;
-           }
-        };
+        serviceRegistry.registerServiceProvider(ArjunaTX11Constants.TERMINATION_COORDINATOR_SERVICE_NAME, uri) ;
+        serviceRegistry.registerSecureServiceProvider(ArjunaTX11Constants.TERMINATION_COORDINATOR_SERVICE_NAME, secureUri) ;
     }
 
-    /**
-     * The context is about to be destroyed.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    public static void shutdown()
     {
     }
 }
\ No newline at end of file

Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsarjtx/server/TerminationParticipantInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsarjtx/server/TerminationParticipantInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsarjtx/server/TerminationParticipantInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -20,13 +20,8 @@
  */
 package com.arjuna.webservices11.wsarjtx.server;
 
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
 import com.arjuna.webservices11.wsarjtx.ArjunaTX11Constants;
 import com.arjuna.webservices11.ServiceRegistry;
-import com.arjuna.services.framework.startup.Sequencer;
-import com.arjuna.wsc.common.Environment;
 import org.jboss.jbossts.xts.environment.WSCEnvironmentBean;
 import org.jboss.jbossts.xts.environment.XTSPropertyManager;
 
@@ -34,51 +29,39 @@
  * Activate the Terminator Coordinator service
  * @author kevin
  */
-public class TerminationParticipantInitialisation implements ServletContextListener
+public class TerminationParticipantInitialisation
 {
-    /**
-     * The context has been initialized.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    public static void startup()
     {
-        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WST11) {
-           public void run() {
-               final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
-               WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
-               String bindAddress = wscEnvironmentBean.getBindAddress11();
-               int bindPort = wscEnvironmentBean.getBindPort11();
-               int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
+        final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
+        WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
+        String bindAddress = wscEnvironmentBean.getBindAddress11();
+        int bindPort = wscEnvironmentBean.getBindPort11();
+        int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
 
 
-               if (bindAddress == null) {
-                   bindAddress = "127.0.0.1";
-               }
+        if (bindAddress == null) {
+            bindAddress = "127.0.0.1";
+        }
 
-               if (bindPort == 0) {
-                   bindPort = 8080;
-               }
+        if (bindPort == 0) {
+            bindPort = 8080;
+        }
 
-               if (secureBindPort == 0) {
-                   secureBindPort = 8443;
-               }
+        if (secureBindPort == 0) {
+            secureBindPort = 8443;
+        }
 
-               final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-t11/";
-               final String uri = baseUri + ArjunaTX11Constants.TERMINATION_PARTICIPANT_SERVICE_NAME;
-               final String secureBaseUri = "https://" +  bindAddress + ":" + secureBindPort + "/ws-t11/";
-               final String secureUri = secureBaseUri + ArjunaTX11Constants.TERMINATION_PARTICIPANT_SERVICE_NAME;
+        final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-t11/";
+        final String uri = baseUri + ArjunaTX11Constants.TERMINATION_PARTICIPANT_SERVICE_NAME;
+        final String secureBaseUri = "https://" +  bindAddress + ":" + secureBindPort + "/ws-t11/";
+        final String secureUri = secureBaseUri + ArjunaTX11Constants.TERMINATION_PARTICIPANT_SERVICE_NAME;
 
-               serviceRegistry.registerServiceProvider(ArjunaTX11Constants.TERMINATION_PARTICIPANT_SERVICE_NAME, uri) ;
-               serviceRegistry.registerSecureServiceProvider(ArjunaTX11Constants.TERMINATION_PARTICIPANT_SERVICE_NAME, secureUri) ;
-           }
-        };
+        serviceRegistry.registerServiceProvider(ArjunaTX11Constants.TERMINATION_PARTICIPANT_SERVICE_NAME, uri) ;
+        serviceRegistry.registerSecureServiceProvider(ArjunaTX11Constants.TERMINATION_PARTICIPANT_SERVICE_NAME, secureUri) ;
     }
 
-    /**
-     * The context is about to be destroyed.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    public static void shutdown()
     {
     }
 }
\ No newline at end of file

Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsat/server/CompletionCoordinatorInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsat/server/CompletionCoordinatorInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsat/server/CompletionCoordinatorInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -20,67 +20,48 @@
  */
 package com.arjuna.webservices11.wsat.server;
 
-import com.arjuna.services.framework.startup.Sequencer;
 import com.arjuna.webservices11.wsat.AtomicTransactionConstants;
 import com.arjuna.webservices11.ServiceRegistry;
-import com.arjuna.wsc.common.Environment;
 import org.jboss.jbossts.xts.environment.WSCEnvironmentBean;
 import org.jboss.jbossts.xts.environment.XTSPropertyManager;
 
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
 /**
  * Activate the Completion Coordinator service
  * @author kevin
  */
-public class CompletionCoordinatorInitialisation implements ServletContextListener
+public class CompletionCoordinatorInitialisation
 {
-    /**
-     * The context has been initialized.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    public static void startup()
     {
+        final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
+        WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
+        String bindAddress = wscEnvironmentBean.getBindAddress11();
+        int bindPort = wscEnvironmentBean.getBindPort11();
+        int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
 
-        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WST11) {
-           public void run() {
-               final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
-               WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
-               String bindAddress = wscEnvironmentBean.getBindAddress11();
-               int bindPort = wscEnvironmentBean.getBindPort11();
-               int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
 
+        if (bindAddress == null) {
+            bindAddress = "127.0.0.1";
+        }
 
-               if (bindAddress == null) {
-                   bindAddress = "127.0.0.1";
-               }
+        if (bindPort == 0) {
+            bindPort = 8080;
+        }
 
-               if (bindPort == 0) {
-                   bindPort = 8080;
-               }
+        if (secureBindPort == 0) {
+            secureBindPort = 8443;
+        }
 
-               if (secureBindPort == 0) {
-                   secureBindPort = 8443;
-               }
+        final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-t11/";
+        final String uri = baseUri + AtomicTransactionConstants.COMPLETION_COORDINATOR_SERVICE_NAME;
+        final String secureBaseUri = "https://" +  bindAddress + ":" + secureBindPort + "/ws-t11/";
+        final String secureUri = secureBaseUri + AtomicTransactionConstants.COMPLETION_COORDINATOR_SERVICE_NAME;
 
-               final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-t11/";
-               final String uri = baseUri + AtomicTransactionConstants.COMPLETION_COORDINATOR_SERVICE_NAME;
-               final String secureBaseUri = "https://" +  bindAddress + ":" + secureBindPort + "/ws-t11/";
-               final String secureUri = secureBaseUri + AtomicTransactionConstants.COMPLETION_COORDINATOR_SERVICE_NAME;
-
-               serviceRegistry.registerServiceProvider(AtomicTransactionConstants.COMPLETION_COORDINATOR_SERVICE_NAME, uri) ;
-               serviceRegistry.registerSecureServiceProvider(AtomicTransactionConstants.COMPLETION_COORDINATOR_SERVICE_NAME, secureUri) ;
-           }
-        };
+        serviceRegistry.registerServiceProvider(AtomicTransactionConstants.COMPLETION_COORDINATOR_SERVICE_NAME, uri) ;
+        serviceRegistry.registerSecureServiceProvider(AtomicTransactionConstants.COMPLETION_COORDINATOR_SERVICE_NAME, secureUri) ;
     }
 
-    /**
-     * The context is about to be destroyed.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    public static void shutdown()
     {
     }
 }
\ No newline at end of file

Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsat/server/CompletionInitiatorInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsat/server/CompletionInitiatorInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsat/server/CompletionInitiatorInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -20,14 +20,8 @@
  */
 package com.arjuna.webservices11.wsat.server;
 
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.ServletContext;
-
 import com.arjuna.webservices11.wsat.AtomicTransactionConstants;
 import com.arjuna.webservices11.ServiceRegistry;
-import com.arjuna.services.framework.startup.Sequencer;
-import com.arjuna.wsc.common.Environment;
 import org.jboss.jbossts.xts.environment.WSCEnvironmentBean;
 import org.jboss.jbossts.xts.environment.XTSPropertyManager;
 
@@ -35,52 +29,43 @@
  * Activate the Completion Initiator service
  * @author kevin
  */
-public class CompletionInitiatorInitialisation implements ServletContextListener
+public class CompletionInitiatorInitialisation
 {
-    /**
-     * The context has been initialized.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    public static void startup()
     {
+        final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
+        WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
+        String bindAddress = wscEnvironmentBean.getBindAddress11();
+        int bindPort = wscEnvironmentBean.getBindPort11();
+        int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
 
-        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WST11) {
-           public void run() {
-               final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
-               WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
-               String bindAddress = wscEnvironmentBean.getBindAddress11();
-               int bindPort = wscEnvironmentBean.getBindPort11();
-               int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
 
+        if (bindAddress == null) {
+            bindAddress = "127.0.0.1";
+        }
 
-               if (bindAddress == null) {
-                   bindAddress = "127.0.0.1";
-               }
+        if (bindPort == 0) {
+            bindPort = 8080;
+        }
 
-               if (bindPort == 0) {
-                   bindPort = 8080;
-               }
+        if (secureBindPort == 0) {
+            secureBindPort = 8443;
+        }
 
-               if (secureBindPort == 0) {
-                   secureBindPort = 8443;
-               }
+        final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-t11/";
+        final String uri = baseUri + AtomicTransactionConstants.COMPLETION_INITIATOR_SERVICE_NAME;
+        final String secureBaseUri = "https://" +  bindAddress + ":" + secureBindPort + "/ws-t11/";
+        final String secureUri = secureBaseUri + AtomicTransactionConstants.COMPLETION_INITIATOR_SERVICE_NAME;
 
-               final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-t11/";
-               final String uri = baseUri + AtomicTransactionConstants.COMPLETION_INITIATOR_SERVICE_NAME;
-               final String secureBaseUri = "https://" +  bindAddress + ":" + secureBindPort + "/ws-t11/";
-               final String secureUri = secureBaseUri + AtomicTransactionConstants.COMPLETION_INITIATOR_SERVICE_NAME;
-
-               serviceRegistry.registerServiceProvider(AtomicTransactionConstants.COMPLETION_INITIATOR_SERVICE_NAME, uri) ;
-               serviceRegistry.registerSecureServiceProvider(AtomicTransactionConstants.COMPLETION_INITIATOR_SERVICE_NAME, secureUri) ;
-           }
-        };
+        serviceRegistry.registerServiceProvider(AtomicTransactionConstants.COMPLETION_INITIATOR_SERVICE_NAME, uri) ;
+        serviceRegistry.registerSecureServiceProvider(AtomicTransactionConstants.COMPLETION_INITIATOR_SERVICE_NAME, secureUri) ;
     }
 
     /**
      * The context is about to be destroyed.
      * @param servletContextEvent The servlet context event.
      */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    public static void shutdwon()
     {
     }
 }
\ No newline at end of file

Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsat/server/CoordinatorInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsat/server/CoordinatorInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsat/server/CoordinatorInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -20,14 +20,8 @@
  */
 package com.arjuna.webservices11.wsat.server;
 
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.ServletContext;
-
 import com.arjuna.webservices11.wsat.AtomicTransactionConstants;
 import com.arjuna.webservices11.ServiceRegistry;
-import com.arjuna.services.framework.startup.Sequencer;
-import com.arjuna.wsc.common.Environment;
 import org.jboss.jbossts.xts.environment.WSCEnvironmentBean;
 import org.jboss.jbossts.xts.environment.XTSPropertyManager;
 
@@ -35,51 +29,39 @@
  * Activate the Coordinator service
  * @author kevin
  */
-public class CoordinatorInitialisation implements ServletContextListener
+public class CoordinatorInitialisation
 {
-    /**
-     * The context has been initialized.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    public static void startup()
     {
-        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WST11) {
-           public void run() {
-               final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
-               WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
-               String bindAddress = wscEnvironmentBean.getBindAddress11();
-               int bindPort = wscEnvironmentBean.getBindPort11();
-               int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
+        final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
+        WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
+        String bindAddress = wscEnvironmentBean.getBindAddress11();
+        int bindPort = wscEnvironmentBean.getBindPort11();
+        int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
 
 
-               if (bindAddress == null) {
-                   bindAddress = "127.0.0.1";
-               }
+        if (bindAddress == null) {
+            bindAddress = "127.0.0.1";
+        }
 
-               if (bindPort == 0) {
-                   bindPort = 8080;
-               }
+        if (bindPort == 0) {
+            bindPort = 8080;
+        }
 
-               if (secureBindPort == 0) {
-                   secureBindPort = 8443;
-               }
+        if (secureBindPort == 0) {
+            secureBindPort = 8443;
+        }
 
-               final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-t11/";
-               final String uri = baseUri + AtomicTransactionConstants.COORDINATOR_SERVICE_NAME;
-               final String secureBaseUri = "https://" +  bindAddress + ":" + secureBindPort + "/ws-t11/";
-               final String secureUri = secureBaseUri + AtomicTransactionConstants.COORDINATOR_SERVICE_NAME;
+        final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-t11/";
+        final String uri = baseUri + AtomicTransactionConstants.COORDINATOR_SERVICE_NAME;
+        final String secureBaseUri = "https://" +  bindAddress + ":" + secureBindPort + "/ws-t11/";
+        final String secureUri = secureBaseUri + AtomicTransactionConstants.COORDINATOR_SERVICE_NAME;
 
-               serviceRegistry.registerServiceProvider(AtomicTransactionConstants.COORDINATOR_SERVICE_NAME, uri) ;
-               serviceRegistry.registerSecureServiceProvider(AtomicTransactionConstants.COORDINATOR_SERVICE_NAME, secureUri) ;
-           }
-        };
+        serviceRegistry.registerServiceProvider(AtomicTransactionConstants.COORDINATOR_SERVICE_NAME, uri) ;
+        serviceRegistry.registerSecureServiceProvider(AtomicTransactionConstants.COORDINATOR_SERVICE_NAME, secureUri) ;
     }
 
-    /**
-     * The context is about to be destroyed.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    public static void shutdown()
     {
     }
 }
\ No newline at end of file

Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsat/server/ParticipantInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsat/server/ParticipantInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsat/server/ParticipantInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -20,14 +20,8 @@
  */
 package com.arjuna.webservices11.wsat.server;
 
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.ServletContext;
-
 import com.arjuna.webservices11.wsat.AtomicTransactionConstants;
 import com.arjuna.webservices11.ServiceRegistry;
-import com.arjuna.services.framework.startup.Sequencer;
-import com.arjuna.wsc.common.Environment;
 import org.jboss.jbossts.xts.environment.WSCEnvironmentBean;
 import org.jboss.jbossts.xts.environment.XTSPropertyManager;
 
@@ -35,16 +29,10 @@
  * Activate the Participant service
  * @author kevin
  */
-public class ParticipantInitialisation implements ServletContextListener
+public class ParticipantInitialisation
 {
-    /**
-     * The context has been initialized.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    public static void startup()
     {
-        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WST11) {
-           public void run() {
                final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
                WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
                String bindAddress = wscEnvironmentBean.getBindAddress11();
@@ -71,15 +59,9 @@
 
                serviceRegistry.registerServiceProvider(AtomicTransactionConstants.PARTICIPANT_SERVICE_NAME, uri) ;
                serviceRegistry.registerSecureServiceProvider(AtomicTransactionConstants.PARTICIPANT_SERVICE_NAME, secureUri) ;
-           }
-        };
     }
 
-    /**
-     * The context is about to be destroyed.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    public static void shutdown()
     {
     }
 }
\ No newline at end of file

Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsba/server/CoordinatorCompletionCoordinatorInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsba/server/CoordinatorCompletionCoordinatorInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsba/server/CoordinatorCompletionCoordinatorInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -20,66 +20,48 @@
  */
 package com.arjuna.webservices11.wsba.server;
 
-import com.arjuna.services.framework.startup.Sequencer;
 import com.arjuna.webservices11.wsba.BusinessActivityConstants;
 import com.arjuna.webservices11.ServiceRegistry;
-import com.arjuna.wsc.common.Environment;
 import org.jboss.jbossts.xts.environment.WSCEnvironmentBean;
 import org.jboss.jbossts.xts.environment.XTSPropertyManager;
 
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
 /**
  * Activate the Coordinator Completion Coordinator service
  * @author kevin
  */
-public class CoordinatorCompletionCoordinatorInitialisation implements ServletContextListener
+public class CoordinatorCompletionCoordinatorInitialisation
 {
-    /**
-     * The context has been initialized.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    public static void startup()
     {
-        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WST11) {
-           public void run() {
-               final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
-               WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
-               String bindAddress = wscEnvironmentBean.getBindAddress11();
-               int bindPort = wscEnvironmentBean.getBindPort11();
-               int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
+        final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
+        WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
+        String bindAddress = wscEnvironmentBean.getBindAddress11();
+        int bindPort = wscEnvironmentBean.getBindPort11();
+        int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
 
 
-               if (bindAddress == null) {
-                   bindAddress = "127.0.0.1";
-               }
+        if (bindAddress == null) {
+            bindAddress = "127.0.0.1";
+        }
 
-               if (bindPort == 0) {
-                   bindPort = 8080;
-               }
+        if (bindPort == 0) {
+            bindPort = 8080;
+        }
 
-               if (secureBindPort == 0) {
-                   secureBindPort = 8443;
-               }
+        if (secureBindPort == 0) {
+            secureBindPort = 8443;
+        }
 
-               final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-t11/";
-               final String uri = baseUri + BusinessActivityConstants.COORDINATOR_COMPLETION_COORDINATOR_SERVICE_NAME;
-               final String secureBaseUri = "https://" +  bindAddress + ":" + secureBindPort + "/ws-t11/";
-               final String secureUri = secureBaseUri + BusinessActivityConstants.COORDINATOR_COMPLETION_COORDINATOR_SERVICE_NAME;
+        final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-t11/";
+        final String uri = baseUri + BusinessActivityConstants.COORDINATOR_COMPLETION_COORDINATOR_SERVICE_NAME;
+        final String secureBaseUri = "https://" +  bindAddress + ":" + secureBindPort + "/ws-t11/";
+        final String secureUri = secureBaseUri + BusinessActivityConstants.COORDINATOR_COMPLETION_COORDINATOR_SERVICE_NAME;
 
-               serviceRegistry.registerServiceProvider(BusinessActivityConstants.COORDINATOR_COMPLETION_COORDINATOR_SERVICE_NAME, uri) ;
-               serviceRegistry.registerSecureServiceProvider(BusinessActivityConstants.COORDINATOR_COMPLETION_COORDINATOR_SERVICE_NAME, secureUri) ;
-           }
-        };
+        serviceRegistry.registerServiceProvider(BusinessActivityConstants.COORDINATOR_COMPLETION_COORDINATOR_SERVICE_NAME, uri) ;
+        serviceRegistry.registerSecureServiceProvider(BusinessActivityConstants.COORDINATOR_COMPLETION_COORDINATOR_SERVICE_NAME, secureUri) ;
     }
 
-    /**
-     * The context is about to be destroyed.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    public static void shutdown()
     {
     }
 }
\ No newline at end of file

Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsba/server/CoordinatorCompletionParticipantInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsba/server/CoordinatorCompletionParticipantInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsba/server/CoordinatorCompletionParticipantInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -20,14 +20,8 @@
  */
 package com.arjuna.webservices11.wsba.server;
 
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.ServletContext;
-
 import com.arjuna.webservices11.wsba.BusinessActivityConstants;
 import com.arjuna.webservices11.ServiceRegistry;
-import com.arjuna.services.framework.startup.Sequencer;
-import com.arjuna.wsc.common.Environment;
 import org.jboss.jbossts.xts.environment.WSCEnvironmentBean;
 import org.jboss.jbossts.xts.environment.XTSPropertyManager;
 
@@ -35,51 +29,39 @@
  * Activate the Coordinator Completion Participant service
  * @author kevin
  */
-public class CoordinatorCompletionParticipantInitialisation implements ServletContextListener
+public class CoordinatorCompletionParticipantInitialisation
 {
-    /**
-     * The context has been initialized.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    public static void startup()
     {
-        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WST11) {
-           public void run() {
-               final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
-               WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
-               String bindAddress = wscEnvironmentBean.getBindAddress11();
-               int bindPort = wscEnvironmentBean.getBindPort11();
-               int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
+        final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
+        WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
+        String bindAddress = wscEnvironmentBean.getBindAddress11();
+        int bindPort = wscEnvironmentBean.getBindPort11();
+        int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
 
 
-               if (bindAddress == null) {
-                   bindAddress = "127.0.0.1";
-               }
+        if (bindAddress == null) {
+            bindAddress = "127.0.0.1";
+        }
 
-               if (bindPort == 0) {
-                   bindPort = 8080;
-               }
+        if (bindPort == 0) {
+            bindPort = 8080;
+        }
 
-               if (secureBindPort == 0) {
-                   secureBindPort = 8443;
-               }
+        if (secureBindPort == 0) {
+            secureBindPort = 8443;
+        }
 
-               final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-t11/";
-               final String uri = baseUri + BusinessActivityConstants.COORDINATOR_COMPLETION_PARTICIPANT_SERVICE_NAME;
-               final String secureBaseUri = "https://" +  bindAddress + ":" + secureBindPort + "/ws-t11/";
-               final String secureUri = secureBaseUri + BusinessActivityConstants.COORDINATOR_COMPLETION_PARTICIPANT_SERVICE_NAME;
+        final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-t11/";
+        final String uri = baseUri + BusinessActivityConstants.COORDINATOR_COMPLETION_PARTICIPANT_SERVICE_NAME;
+        final String secureBaseUri = "https://" +  bindAddress + ":" + secureBindPort + "/ws-t11/";
+        final String secureUri = secureBaseUri + BusinessActivityConstants.COORDINATOR_COMPLETION_PARTICIPANT_SERVICE_NAME;
 
-               serviceRegistry.registerServiceProvider(BusinessActivityConstants.COORDINATOR_COMPLETION_PARTICIPANT_SERVICE_NAME, uri) ;
-               serviceRegistry.registerSecureServiceProvider(BusinessActivityConstants.COORDINATOR_COMPLETION_PARTICIPANT_SERVICE_NAME, secureUri) ;
-           }
-        };
+        serviceRegistry.registerServiceProvider(BusinessActivityConstants.COORDINATOR_COMPLETION_PARTICIPANT_SERVICE_NAME, uri) ;
+        serviceRegistry.registerSecureServiceProvider(BusinessActivityConstants.COORDINATOR_COMPLETION_PARTICIPANT_SERVICE_NAME, secureUri) ;
     }
 
-    /**
-     * The context is about to be destroyed.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    public static void shutdown()
     {
     }
 }
\ No newline at end of file

Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsba/server/ParticipantCompletionCoordinatorInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsba/server/ParticipantCompletionCoordinatorInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsba/server/ParticipantCompletionCoordinatorInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -20,14 +20,8 @@
  */
 package com.arjuna.webservices11.wsba.server;
 
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.ServletContext;
-
 import com.arjuna.webservices11.wsba.BusinessActivityConstants;
 import com.arjuna.webservices11.ServiceRegistry;
-import com.arjuna.services.framework.startup.Sequencer;
-import com.arjuna.wsc.common.Environment;
 import org.jboss.jbossts.xts.environment.WSCEnvironmentBean;
 import org.jboss.jbossts.xts.environment.XTSPropertyManager;
 
@@ -35,51 +29,39 @@
  * Activate the Participant Completion Coordinator service
  * @author kevin
  */
-public class ParticipantCompletionCoordinatorInitialisation implements ServletContextListener
+public class ParticipantCompletionCoordinatorInitialisation
 {
-    /**
-     * The context has been initialized.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    public static void startup()
     {
-        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WST11) {
-           public void run() {
-               final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
-               WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
-               String bindAddress = wscEnvironmentBean.getBindAddress11();
-               int bindPort = wscEnvironmentBean.getBindPort11();
-               int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
+        final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
+        WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
+        String bindAddress = wscEnvironmentBean.getBindAddress11();
+        int bindPort = wscEnvironmentBean.getBindPort11();
+        int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
 
 
-               if (bindAddress == null) {
-                   bindAddress = "127.0.0.1";
-               }
+        if (bindAddress == null) {
+            bindAddress = "127.0.0.1";
+        }
 
-               if (bindPort == 0) {
-                   bindPort = 8080;
-               }
+        if (bindPort == 0) {
+            bindPort = 8080;
+        }
 
-               if (secureBindPort == 0) {
-                   secureBindPort = 8443;
-               }
+        if (secureBindPort == 0) {
+            secureBindPort = 8443;
+        }
 
-               final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-t11/";
-               final String uri = baseUri + BusinessActivityConstants.PARTICIPANT_COMPLETION_COORDINATOR_SERVICE_NAME;
-               final String secureBaseUri = "https://" +  bindAddress + ":" + secureBindPort + "/ws-t11/";
-               final String secureUri = secureBaseUri + BusinessActivityConstants.PARTICIPANT_COMPLETION_COORDINATOR_SERVICE_NAME;
+        final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-t11/";
+        final String uri = baseUri + BusinessActivityConstants.PARTICIPANT_COMPLETION_COORDINATOR_SERVICE_NAME;
+        final String secureBaseUri = "https://" +  bindAddress + ":" + secureBindPort + "/ws-t11/";
+        final String secureUri = secureBaseUri + BusinessActivityConstants.PARTICIPANT_COMPLETION_COORDINATOR_SERVICE_NAME;
 
-               serviceRegistry.registerServiceProvider(BusinessActivityConstants.PARTICIPANT_COMPLETION_COORDINATOR_SERVICE_NAME, uri) ;
-               serviceRegistry.registerSecureServiceProvider(BusinessActivityConstants.PARTICIPANT_COMPLETION_COORDINATOR_SERVICE_NAME, secureUri) ;
-           }
-        };
+        serviceRegistry.registerServiceProvider(BusinessActivityConstants.PARTICIPANT_COMPLETION_COORDINATOR_SERVICE_NAME, uri) ;
+        serviceRegistry.registerSecureServiceProvider(BusinessActivityConstants.PARTICIPANT_COMPLETION_COORDINATOR_SERVICE_NAME, secureUri) ;
     }
 
-    /**
-     * The context is about to be destroyed.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    public static void shutdown()
     {
     }
 }
\ No newline at end of file

Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsba/server/ParticipantCompletionParticipantInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsba/server/ParticipantCompletionParticipantInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/webservices11/wsba/server/ParticipantCompletionParticipantInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -20,14 +20,8 @@
  */
 package com.arjuna.webservices11.wsba.server;
 
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.ServletContext;
-
 import com.arjuna.webservices11.wsba.BusinessActivityConstants;
 import com.arjuna.webservices11.ServiceRegistry;
-import com.arjuna.services.framework.startup.Sequencer;
-import com.arjuna.wsc.common.Environment;
 import org.jboss.jbossts.xts.environment.WSCEnvironmentBean;
 import org.jboss.jbossts.xts.environment.XTSPropertyManager;
 
@@ -35,51 +29,39 @@
  * Activate the Participant Completion Participant service
  * @author kevin
  */
-public class ParticipantCompletionParticipantInitialisation implements ServletContextListener
+public class ParticipantCompletionParticipantInitialisation
 {
-    /**
-     * The context has been initialized.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    public static void startup()
     {
-        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WST11) {
-           public void run() {
-               final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
-               WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
-               String bindAddress = wscEnvironmentBean.getBindAddress11();
-               int bindPort = wscEnvironmentBean.getBindPort11();
-               int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
+        final ServiceRegistry serviceRegistry = ServiceRegistry.getRegistry() ;
+        WSCEnvironmentBean wscEnvironmentBean = XTSPropertyManager.getWSCEnvironmentBean();
+        String bindAddress = wscEnvironmentBean.getBindAddress11();
+        int bindPort = wscEnvironmentBean.getBindPort11();
+        int secureBindPort = wscEnvironmentBean.getBindPortSecure11();
 
 
-               if (bindAddress == null) {
-                   bindAddress = "127.0.0.1";
-               }
+        if (bindAddress == null) {
+            bindAddress = "127.0.0.1";
+        }
 
-               if (bindPort == 0) {
-                   bindPort = 8080;
-               }
+        if (bindPort == 0) {
+            bindPort = 8080;
+        }
 
-               if (secureBindPort == 0) {
-                   secureBindPort = 8443;
-               }
+        if (secureBindPort == 0) {
+            secureBindPort = 8443;
+        }
 
-               final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-t11/";
-               final String uri = baseUri + BusinessActivityConstants.PARTICIPANT_COMPLETION_PARTICIPANT_SERVICE_NAME;
-               final String secureBaseUri = "https://" +  bindAddress + ":" + secureBindPort + "/ws-t11/";
-               final String secureUri = secureBaseUri + BusinessActivityConstants.PARTICIPANT_COMPLETION_PARTICIPANT_SERVICE_NAME;
+        final String baseUri = "http://" +  bindAddress + ":" + bindPort + "/ws-t11/";
+        final String uri = baseUri + BusinessActivityConstants.PARTICIPANT_COMPLETION_PARTICIPANT_SERVICE_NAME;
+        final String secureBaseUri = "https://" +  bindAddress + ":" + secureBindPort + "/ws-t11/";
+        final String secureUri = secureBaseUri + BusinessActivityConstants.PARTICIPANT_COMPLETION_PARTICIPANT_SERVICE_NAME;
 
-               serviceRegistry.registerServiceProvider(BusinessActivityConstants.PARTICIPANT_COMPLETION_PARTICIPANT_SERVICE_NAME, uri) ;
-               serviceRegistry.registerSecureServiceProvider(BusinessActivityConstants.PARTICIPANT_COMPLETION_PARTICIPANT_SERVICE_NAME, secureUri) ;
-           }
-        };
+        serviceRegistry.registerServiceProvider(BusinessActivityConstants.PARTICIPANT_COMPLETION_PARTICIPANT_SERVICE_NAME, uri) ;
+        serviceRegistry.registerSecureServiceProvider(BusinessActivityConstants.PARTICIPANT_COMPLETION_PARTICIPANT_SERVICE_NAME, secureUri) ;
     }
 
-    /**
-     * The context is about to be destroyed.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    public static void  shutdown()
     {
     }
 }
\ No newline at end of file

Deleted: labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/deploy/WSTCloseInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/deploy/WSTCloseInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/deploy/WSTCloseInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -1,51 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. 
- * See the copyright.txt in the distribution for a full listing 
- * of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.
- * 
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package com.arjuna.wst11.messaging.deploy;
-
-import com.arjuna.services.framework.startup.Sequencer;
-
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
-/**
- * Initialise the transaction services.
- * @author kevin
- */
-public class WSTCloseInitialisation implements ServletContextListener
-{
-    /**
-     * The context has been initialized.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
-    {
-        // close the WS-T initialisation list
-        Sequencer.close(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WST11);
-    }
-
-    /**
-     * The context is about to be destroyed.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
-    {
-    }
-}
\ No newline at end of file

Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/deploy/WSTCoordinatorInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/deploy/WSTCoordinatorInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/deploy/WSTCoordinatorInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -20,7 +20,6 @@
  */
 package com.arjuna.wst11.messaging.deploy;
 
-import com.arjuna.services.framework.startup.Sequencer;
 import com.arjuna.webservices11.wsarjtx.processors.TerminationCoordinatorProcessor;
 import com.arjuna.webservices11.wsat.processors.CompletionCoordinatorProcessor;
 import com.arjuna.webservices11.wsat.processors.CoordinatorProcessor;
@@ -28,37 +27,30 @@
 import com.arjuna.webservices11.wsba.processors.ParticipantCompletionCoordinatorProcessor;
 import com.arjuna.wst11.messaging.*;
 
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
 /**
- * Initialise the transaction corodinator services.
+ * Initialise the transaction coordinator services.
  * @author kevin
  */
-public class WSTCoordinatorInitialisation implements ServletContextListener
+public class WSTCoordinatorInitialisation
 {
     /**
      * The context has been initialized.
      * @param servletContextEvent The servlet context event.
      */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    public static void startup()
     {
-        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WST11) {
-           public void run() {
-               CompletionCoordinatorProcessor.setProcessor(new CompletionCoordinatorProcessorImpl()) ;
-               CoordinatorProcessor.setProcessor(new CoordinatorProcessorImpl()) ;
-               TerminationCoordinatorProcessor.setProcessor(new TerminationCoordinatorProcessorImpl()) ;
-               CoordinatorCompletionCoordinatorProcessor.setProcessor(new CoordinatorCompletionCoordinatorProcessorImpl()) ;
-               ParticipantCompletionCoordinatorProcessor.setProcessor(new ParticipantCompletionCoordinatorProcessorImpl()) ;
-           }
-        };
+        CompletionCoordinatorProcessor.setProcessor(new CompletionCoordinatorProcessorImpl()) ;
+        CoordinatorProcessor.setProcessor(new CoordinatorProcessorImpl()) ;
+        TerminationCoordinatorProcessor.setProcessor(new TerminationCoordinatorProcessorImpl()) ;
+        CoordinatorCompletionCoordinatorProcessor.setProcessor(new CoordinatorCompletionCoordinatorProcessorImpl()) ;
+        ParticipantCompletionCoordinatorProcessor.setProcessor(new ParticipantCompletionCoordinatorProcessorImpl()) ;
     }
 
     /**
      * The context is about to be destroyed.
      * @param servletContextEvent The servlet context event.
      */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    public static void shutdown()
     {
     }
 }
\ No newline at end of file

Modified: labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/deploy/WSTParticipantInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/deploy/WSTParticipantInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WS-T/dev/src11/com/arjuna/wst11/messaging/deploy/WSTParticipantInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -20,41 +20,25 @@
  */
 package com.arjuna.wst11.messaging.deploy;
 
-import com.arjuna.services.framework.startup.Sequencer;
 import com.arjuna.webservices11.wsat.processors.ParticipantProcessor;
 import com.arjuna.webservices11.wsba.processors.CoordinatorCompletionParticipantProcessor;
 import com.arjuna.webservices11.wsba.processors.ParticipantCompletionParticipantProcessor;
 import com.arjuna.wst11.messaging.*;
 
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
 /**
  * Initialise the transaction participant services.
  * @author kevin
  */
-public class WSTParticipantInitialisation implements ServletContextListener
+public class WSTParticipantInitialisation
 {
-    /**
-     * The context has been initialized.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    public static void startup()
     {
-        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WST11) {
-           public void run() {
-               ParticipantProcessor.setProcessor(new ParticipantProcessorImpl()) ;
-               CoordinatorCompletionParticipantProcessor.setProcessor(new CoordinatorCompletionParticipantProcessorImpl()) ;
-               ParticipantCompletionParticipantProcessor.setProcessor(new ParticipantCompletionParticipantProcessorImpl()) ;
-           }
-        };
+        ParticipantProcessor.setProcessor(new ParticipantProcessorImpl()) ;
+        CoordinatorCompletionParticipantProcessor.setProcessor(new CoordinatorCompletionParticipantProcessorImpl()) ;
+        ParticipantCompletionParticipantProcessor.setProcessor(new ParticipantCompletionParticipantProcessorImpl()) ;
     }
 
-    /**
-     * The context is about to be destroyed.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    public static void shutdown()
     {
     }
 }
\ No newline at end of file

Deleted: labs/jbosstm/trunk/XTS/WSCF/classes11/com/arjuna/mw/wsc11/deploy/WSCFCloseInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSCF/classes11/com/arjuna/mw/wsc11/deploy/WSCFCloseInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WSCF/classes11/com/arjuna/mw/wsc11/deploy/WSCFCloseInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -1,53 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. 
- * See the copyright.txt in the distribution for a full listing 
- * of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.
- * 
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package com.arjuna.mw.wsc11.deploy;
-
-import com.arjuna.services.framework.startup.Sequencer;
-
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
-/**
- * Initialise WSCF.
- * @author kevin
- */
-public class WSCFCloseInitialisation implements ServletContextListener
-{
-    /**
-     * The context has been initialized.
-     * @param servletContextEvent The servlet context event.
-     *
-     */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
-    {
-        // close the WSCF initialisation list
-        
-        Sequencer.close(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WSCF11);
-    }
-
-    /**
-     * The context is about to be destroyed.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
-    {
-    }
-}
\ No newline at end of file

Modified: labs/jbosstm/trunk/XTS/WSCF/classes11/com/arjuna/mw/wsc11/deploy/WSCFInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSCF/classes11/com/arjuna/mw/wsc11/deploy/WSCFInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WSCF/classes11/com/arjuna/mw/wsc11/deploy/WSCFInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -22,32 +22,20 @@
 
 import com.arjuna.mw.wscf.protocols.ProtocolRegistry;
 
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
 /**
  * Initialise WSCF.
  * @author kevin
  */
-public class WSCFInitialisation implements ServletContextListener
+public class WSCFInitialisation
 {
-    /**
-     * The context has been initialized.
-     * @param servletContextEvent The servlet context event.
-     *
-     */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    public static void startup()
     {
         // ensure we load any required protocol implementations
 
         ProtocolRegistry.sharedManager().initialise();
     }
 
-    /**
-     * The context is about to be destroyed.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    public static void shutdown()
     {
     }
 }
\ No newline at end of file

Modified: labs/jbosstm/trunk/XTS/WSCF/xml/wscf11_web-app.xml
===================================================================
--- labs/jbosstm/trunk/XTS/WSCF/xml/wscf11_web-app.xml	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WSCF/xml/wscf11_web-app.xml	2010-08-23 12:42:03 UTC (rev 34828)
@@ -26,13 +26,4 @@
     <display-name>Arjuna WS-CF11</display-name>
 
     <description>Arjuna WS-CF11</description>
-
-    <listener>
-        <listener-class>com.arjuna.mw.wsc11.deploy.WSCFInitialisation</listener-class>
-    </listener>
-
-    <!-- close the initialisation list -->
-    <listener>
-        <listener-class>com.arjuna.mw.wsc11.deploy.WSCFCloseInitialisation</listener-class>
-    </listener>
 </web-app>

Deleted: labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mw/wst11/deploy/WSTXCloseInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mw/wst11/deploy/WSTXCloseInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mw/wst11/deploy/WSTXCloseInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -1,52 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. 
- * See the copyright.txt in the distribution for a full listing 
- * of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.
- * 
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package com.arjuna.mw.wst11.deploy;
-
-import com.arjuna.services.framework.startup.Sequencer;
-
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
-/**
- * Initialise WSTX.
- * @author kevin
- */
-public class WSTXCloseInitialisation implements ServletContextListener
-{
-    /**
-     * The context has been initialized.
-     * @param servletContextEvent The servlet context event.
-     *
-     */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
-    {
-        // this is the last WST callback to be initialised so close the list
-        Sequencer.close(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WSTX11);
-    }
-
-    /**
-     * The context is about to be destroyed.
-     * @param servletContextEvent The servlet context event.
-     */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
-    {
-    }
-}
\ No newline at end of file

Modified: labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mw/wst11/deploy/WSTXInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mw/wst11/deploy/WSTXInitialisation.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WSTX/classes11/com/arjuna/mw/wst11/deploy/WSTXInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -24,50 +24,45 @@
 import org.jboss.jbossts.xts.environment.WSTEnvironmentBean;
 import com.arjuna.mw.wstx.logging.wstxLogger;
 import com.arjuna.mw.wst11.*;
-import com.arjuna.services.framework.startup.Sequencer;
 import com.arjuna.webservices.util.ClassLoaderHelper;
 
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import java.io.FileNotFoundException;
-
 /**
  * Initialise WSTX.
  * @author kevin
  */
-public class WSTXInitialisation implements ServletContextListener
+public class WSTXInitialisation
 {
+    private static boolean initialised = false;
+
     /**
      * The context has been initialized.
      * @param servletContextEvent The servlet context event.
      *
      */
-    public void contextInitialized(final ServletContextEvent servletContextEvent)
+    public static void startup()
     {
-        final WSTXInitialisation listener = this;
-
-        Sequencer.Callback callback = new Sequencer.Callback(Sequencer.SEQUENCE_WSCOOR11, Sequencer.WEBAPP_WSTX11) {
-           public void run() {
-               try
-               {
-                   listener.configure();
-               }
-               catch (Exception exception) {
-                   wstxLogger.i18NLogger.error_mw_wst11_deploy_WSTXI_1(exception);
-               }
-               catch (Error error)
-               {
-                   wstxLogger.i18NLogger.error_mw_wst11_deploy_WSTXI_1(error);
-               }
-           }
-        };
+        if (initialised) {
+            return;
+        }
+        try
+        {
+            configure();
+            initialised = true;
+        }
+        catch (Exception exception) {
+            wstxLogger.i18NLogger.error_mw_wst11_deploy_WSTXI_1(exception);
+        }
+        catch (Error error)
+        {
+            wstxLogger.i18NLogger.error_mw_wst11_deploy_WSTXI_1(error);
+        }
     }
 
     /**
      * Configure all configured WSTX client and participant implementations.
      *
      */
-    private void configure()
+    private static void configure()
         throws Exception
     {
         WSTEnvironmentBean wstEnvironmentBean = BeanPopulator.getSingletonInstance(WSTEnvironmentBean.class);
@@ -79,16 +74,16 @@
         // we only load classes which have been configured
         
         if (userTx != null) {
-            UserTransaction.setUserTransaction((UserTransaction)ClassLoaderHelper.forName(getClass(), userTx).newInstance()) ;
+            UserTransaction.setUserTransaction((UserTransaction)ClassLoaderHelper.forName(WSTXInitialisation.class, userTx).newInstance()) ;
         }
         if (txManager != null) {
-            TransactionManager.setTransactionManager((TransactionManager)ClassLoaderHelper.forName(getClass(), txManager).newInstance()) ;
+            TransactionManager.setTransactionManager((TransactionManager)ClassLoaderHelper.forName(WSTXInitialisation.class, txManager).newInstance()) ;
         }
         if (userBa != null) {
-            UserBusinessActivity.setUserBusinessActivity((UserBusinessActivity)ClassLoaderHelper.forName(getClass(), userBa).newInstance()) ;
+            UserBusinessActivity.setUserBusinessActivity((UserBusinessActivity)ClassLoaderHelper.forName(WSTXInitialisation.class, userBa).newInstance()) ;
         }
         if (baManager != null) {
-            BusinessActivityManager.setBusinessActivityManager((BusinessActivityManager)ClassLoaderHelper.forName(getClass(), baManager).newInstance());
+            BusinessActivityManager.setBusinessActivityManager((BusinessActivityManager)ClassLoaderHelper.forName(WSTXInitialisation.class, baManager).newInstance());
         }
     }
 
@@ -96,7 +91,7 @@
      * The context is about to be destroyed.
      * @param servletContextEvent The servlet context event.
      */
-    public void contextDestroyed(final ServletContextEvent servletContextEvent)
+    public static void shutdown()
     {
     }
 }
\ No newline at end of file

Modified: labs/jbosstm/trunk/XTS/WSTX/xml/wstx_web-app11.xml
===================================================================
--- labs/jbosstm/trunk/XTS/WSTX/xml/wstx_web-app11.xml	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/WSTX/xml/wstx_web-app11.xml	2010-08-23 12:42:03 UTC (rev 34828)
@@ -26,12 +26,4 @@
     <display-name>Arjuna WS-TX11</display-name>
 
     <description>Arjuna WS-TX11</description>
-
-    <listener>
-        <listener-class>com.arjuna.mw.wst11.deploy.WSTXInitialisation</listener-class>
-    </listener>
-
-    <listener>
-        <listener-class>com.arjuna.mw.wst11.deploy.WSTXCloseInitialisation</listener-class>
-    </listener>
 </web-app>

Modified: labs/jbosstm/trunk/XTS/config/xts-properties.xml
===================================================================
--- labs/jbosstm/trunk/XTS/config/xts-properties.xml	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/config/xts-properties.xml	2010-08-23 12:42:03 UTC (rev 34828)
@@ -219,4 +219,35 @@
     <entry key="org.jboss.jbossts.xts.protocolImplementation7">com.arjuna.mwlabs.wst.at.ContextFactoryImple</entry>
     <entry key="org.jboss.jbossts.xts.protocolImplementation8">com.arjuna.mwlabs.wst.ba.ContextFactoryImple</entry>
 
+    <!-- XTS recovery modules to be deployed either in the coordinator or participant. you should
+        never need to change these values or add new ones. howver you may want to remove participant modules
+        if you are only deploying coordinator services or remove coordinator modules if you are only deploying
+        participant services. If you are only deploying a client then you can remove all these modules.
+
+        Note that these are the modules which implement XTS recovery and are not the same as the application
+        defined recovery modules registered by participant web services. The latter are called when the AT and BA
+        participant modules in the list below get run.
+
+        n.b. the 1.0 and 1.1 implementations both use the same recovery module.
+    -->
+
+    <entry key="org.jboss.jbossts.xts.recovery.coordinatorRecoveryModule1">org.jboss.jbossts.xts.recovery.coordinator.at.ATCoordinatorRecoveryModule</entry>
+    <entry key="org.jboss.jbossts.xts.recovery.coordinatorRecoveryModule2">org.jboss.jbossts.xts.recovery.coordinator.at.SubordinateATCoordinatorRecoveryModule</entry>
+    <entry key="org.jboss.jbossts.xts.recovery.coordinatorRecoveryModule3">org.jboss.jbossts.xts.recovery.coordinator.ba.BACoordinatorRecoveryModule</entry>
+    <entry key="org.jboss.jbossts.xts.recovery.coordinatorRecoveryModule4">org.jboss.jbossts.xts.recovery.coordinator.ba.SubordinateBACoordinatorRecoveryModule</entry>
+
+    <entry key="org.jboss.jbossts.xts.recovery.participantRecoveryModule1">org.jboss.jbossts.xts.recovery.participant.at.ATParticipantRecoveryModule</entry>
+    <entry key="org.jboss.jbossts.xts.recovery.participantRecoveryModule2">org.jboss.jbossts.xts.recovery.participant.ba.BAParticipantRecoveryModule</entry>
+
+    <!-- initialisations
+	 these are classes which implement the startup and shutdown operations defined by the XTSInitialisation lifecycle
+	 interface. For 1.1 here are 3 such classes performing all initialisation relevant to the coordinator side, participant
+	 side and client side services. You may want to delete some of these entries if you only wish to deploy a subset
+	 of the 1.1 XTS services. For 1.0 there is onl one initialisation routine for all 3 components as it is not possible
+	 to deploy a subset of the 1.0 services.
+    -->
+    <entry key="org.jboss.jbossts.xts.initialisation.xtsInitialisation_1">org.jboss.jbossts.xts.initialisation.CoordinatorSideInitialisation</entry>
+    <entry key="org.jboss.jbossts.xts.initialisation.xtsInitialisation_2">org.jboss.jbossts.xts.initialisation.ParticipantSideInitialisation</entry>
+    <entry key="org.jboss.jbossts.xts.initialisation.xtsInitialisation_3">org.jboss.jbossts.xts.initialisation.ClientSideInitialisation</entry>
+    <entry key="org.jboss.jbossts.xts.initialisation.xtsInitialisation_4">org.jboss.jbossts.xts.initialisation.XTS10Initialisation</entry>
 </properties>

Modified: labs/jbosstm/trunk/XTS/config/xts-properties11.xml
===================================================================
--- labs/jbosstm/trunk/XTS/config/xts-properties11.xml	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/config/xts-properties11.xml	2010-08-23 12:42:03 UTC (rev 34828)
@@ -178,4 +178,33 @@
     <entry key="org.jboss.jbossts.xts.protocolImplementation3">com.arjuna.mwlabs.wst11.at.ContextFactoryImple</entry>
     <entry key="org.jboss.jbossts.xts.protocolImplementation4">com.arjuna.mwlabs.wst11.ba.ContextFactoryImple</entry>
 
+    <!-- XTS recovery modules to be deployed either in the coordinator or participant. you should
+        never need to change these values or add new ones. howver you may want to remove participant modules
+        if you are only deploying coordinator services or remove coordinator modules if you are only deploying
+        participant services. If you are only deploying a client then you can remove all these modules.
+
+        Note that these are the modules which implement XTS recovery and are not the same as the application
+        defined recovery modules registered by participant web services. The latter are called when the AT and BA
+        participant modules in the list below get run.
+
+        n.b. the 1.0 and 1.1 implementations both use the same recovery module.
+    -->
+
+    <entry key="org.jboss.jbossts.xts.recovery.coordinatorRecoveryModule1">org.jboss.jbossts.xts.recovery.coordinator.at.ATCoordinatorRecoveryModule</entry>
+    <entry key="org.jboss.jbossts.xts.recovery.coordinatorRecoveryModule2">org.jboss.jbossts.xts.recovery.coordinator.at.SubordinateATCoordinatorRecoveryModule</entry>
+    <entry key="org.jboss.jbossts.xts.recovery.coordinatorRecoveryModule3">org.jboss.jbossts.xts.recovery.coordinator.ba.BACoordinatorRecoveryModule</entry>
+    <entry key="org.jboss.jbossts.xts.recovery.coordinatorRecoveryModule4">org.jboss.jbossts.xts.recovery.coordinator.ba.SubordinateBACoordinatorRecoveryModule</entry>
+
+    <entry key="org.jboss.jbossts.xts.recovery.participantRecoveryModule1">org.jboss.jbossts.xts.recovery.participant.at.ATParticipantRecoveryModule</entry>
+    <entry key="org.jboss.jbossts.xts.recovery.participantRecoveryModule2">org.jboss.jbossts.xts.recovery.participant.ba.BAParticipantRecoveryModule</entry>
+
+    <!-- initialisations
+	 these are classes which implement the startup and shutdown operations defined by the XTSInitialisation lifecycle
+	 interface. For 1.1 here are 3 such classes performing all initialisation relevant to the coordinator side, participant
+	 side and client side services. You may want to delete some of these entries if you only wish to deploy a subset
+	 of the 1.1 XTS services.
+    -->
+    <entry key="org.jboss.jbossts.xts.initialisation.xtsInitialisation_1">org.jboss.jbossts.xts.initialisation.CoordinatorSideInitialisation</entry>
+    <entry key="org.jboss.jbossts.xts.initialisation.xtsInitialisation_2">org.jboss.jbossts.xts.initialisation.ParticipantSideInitialisation</entry>
+    <entry key="org.jboss.jbossts.xts.initialisation.xtsInitialisation_3">org.jboss.jbossts.xts.initialisation.ClientSideInitialisation</entry>
 </properties>

Modified: labs/jbosstm/trunk/XTS/recovery/build.xml
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/build.xml	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/recovery/build.xml	2010-08-23 12:42:03 UTC (rev 34828)
@@ -21,6 +21,13 @@
 -->
 <project name="recovery" default="jar" basedir=".">
 
+    <!-- Set module name -->
+    <property name="modulename" value="recovery"/>
+
+    <!-- set root before including shared build -->
+
+    <property name="root.dir" location = ".."/>
+
     <import file="../sharedbuild.xml"/>
 
     <!-- Set module name -->
@@ -63,7 +70,6 @@
     <property name="wstx.jar.dest" value="../WSTX/build/lib"/>
 
     <path id="recovery.lib.classpath">
-        <path  refid="build.classpath"/>
         <fileset dir="${wsas.jar.dest}" includes="${wsas.libs}"/>
         <fileset dir="${wsc.jar.dest}" includes="${wsc.libs} ${wsc-api.libs}"/>
         <fileset dir="${wscf.jar.dest}" includes="${wscf.libs}"/>
@@ -89,13 +95,11 @@
 
     <target name="recovery.compile-generic" depends="recovery.init">
         <echo message="Compiling module generic code"/>
-        <javac srcdir="${recovery.src}"
-                       destdir="${recovery.dest}"
-                       debug="on">
-            <classpath>
+        <compile.macro src.dir="${recovery.src}" dest.dir="${recovery.dest}">
+            <additional.classpath>
                 <path refid="recovery.lib.classpath"/>
-            </classpath>
-        </javac>
+            </additional.classpath>
+        </compile.macro>
     </target>
 
 	<!-- Build htdocs for just mw, or mw and mwlabs -->

Added: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/XTSRecoveryModule.java
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/XTSRecoveryModule.java	                        (rev 0)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/XTSRecoveryModule.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -0,0 +1,11 @@
+package org.jboss.jbossts.xts.recovery;
+
+import com.arjuna.ats.arjuna.recovery.RecoveryModule;
+
+/**
+ * extension of JBossTS recovery module interface adding install and uninstall lifecycle methods
+ */
+public interface XTSRecoveryModule extends RecoveryModule {
+    public void install();
+    public void uninstall();
+}

Added: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/CoordinatorRecoveryInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/CoordinatorRecoveryInitialisation.java	                        (rev 0)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/CoordinatorRecoveryInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -0,0 +1,96 @@
+package org.jboss.jbossts.xts.recovery.coordinator;
+
+import com.arjuna.ats.arjuna.recovery.RecoveryManager;
+import com.arjuna.ats.arjuna.recovery.RecoveryModule;
+import org.jboss.jbossts.xts.environment.RecoveryEnvironmentBean;
+import org.jboss.jbossts.xts.environment.XTSPropertyManager;
+import org.jboss.jbossts.xts.recovery.logging.RecoveryLogger;
+import org.jboss.jbossts.xts.recovery.XTSRecoveryModule;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * manager allowing XTS coordinator recovery modules to be registered at startup and unregistered at shutdown.
+ */
+public class CoordinatorRecoveryInitialisation
+{
+    /**
+     * the list of XTS recovery modules actually registered with the JBossTS recovery manager
+     */
+    private static List<XTSRecoveryModule> recoveryModules = new ArrayList<XTSRecoveryModule>();
+
+    /**
+     * flag to identify if we have already been initialised
+     */
+
+    private static boolean initialised = false;
+    /**
+     * initialisation routine which registers all configured XTS recovery modules
+     */
+    public static void startup()
+    {
+        if (initialised) {
+            return;
+        }
+
+        RecoveryEnvironmentBean recoveryEnvironmentBean = XTSPropertyManager.getRecoveryEnvironmentBean();
+
+        List<String> modules = recoveryEnvironmentBean.getCoordinatorRecoveryModules();
+        Iterator<String> iterator = modules.iterator();
+
+        while (iterator.hasNext())
+        {
+            String className = (String) iterator.next();
+            Class<?> clazz = null;
+
+            try {
+                clazz = CoordinatorRecoveryInitialisation.class.getClassLoader().loadClass(className);
+            } catch (ClassNotFoundException cnfe) {
+                RecoveryLogger.i18NLogger.error_recovery_coordinator_CoordinatorRecoveryInitialisation_1(className, cnfe);
+                continue;
+            }
+
+            if (!RecoveryModule.class.isAssignableFrom(clazz)) {
+                RecoveryLogger.i18NLogger.error_recovery_coordinator_CoordinatorRecoveryInitialisation_2(className);
+                continue;
+            }
+            
+            try {
+                XTSRecoveryModule module = (XTSRecoveryModule)clazz.newInstance();
+                module.install();
+                RecoveryManager.manager().addModule(module);
+                recoveryModules.add(module);
+            } catch (InstantiationException ie) {
+                RecoveryLogger.i18NLogger.error_recovery_coordinator_CoordinatorRecoveryInitialisation_3(className, ie);
+            } catch (IllegalAccessException iae) {
+                RecoveryLogger.i18NLogger.error_recovery_coordinator_CoordinatorRecoveryInitialisation_4(className, iae);
+            }
+        }
+
+        initialised = true;
+    }
+
+    /**
+     * shutdown routine which removes all installed recovery modules
+     */
+    public static void shutdown()
+    {
+        if (!initialised) {
+            return;
+        }
+        
+        Iterator<XTSRecoveryModule> iterator = recoveryModules.iterator();
+
+        while (iterator.hasNext()) {
+            XTSRecoveryModule module = iterator.next();
+            RecoveryManager.manager().removeModule(module, true);
+            module.uninstall();
+        }
+
+        recoveryModules.clear();
+        
+        initialised = false;
+    }
+}

Modified: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/ATCoordinatorRecoveryModule.java
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/ATCoordinatorRecoveryModule.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/ATCoordinatorRecoveryModule.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -23,12 +23,11 @@
 import com.arjuna.ats.arjuna.objectstore.RecoveryStore;
 import com.arjuna.ats.arjuna.objectstore.StateStatus;
 import com.arjuna.ats.arjuna.objectstore.StoreManager;
-import org.jboss.jbossts.xts.logging.XTSLogger;
+import org.jboss.jbossts.xts.recovery.logging.RecoveryLogger;
+import org.jboss.jbossts.xts.recovery.XTSRecoveryModule;
 import org.jboss.jbossts.xts.recovery.participant.at.XTSATRecoveryManager;
 
-import com.arjuna.ats.arjuna.recovery.RecoveryModule;
 import com.arjuna.ats.arjuna.recovery.TransactionStatusConnectionManager;
-import com.arjuna.ats.arjuna.coordinator.TxControl;
 import com.arjuna.ats.arjuna.coordinator.ActionStatus;
 import com.arjuna.ats.arjuna.state.InputObjectState;
 import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
@@ -48,12 +47,12 @@
  * $Id$
  *
  */
-public class ATCoordinatorRecoveryModule implements RecoveryModule
+public class ATCoordinatorRecoveryModule implements XTSRecoveryModule
 {
     public ATCoordinatorRecoveryModule()
     {
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("ATCoordinatorRecoveryModule created - default");
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("ATCoordinatorRecoveryModule created - default");
         }
 
         if (_recoveryStore == null)
@@ -94,8 +93,8 @@
 
         try
         {
-            if (XTSLogger.logger.isDebugEnabled()) {
-                XTSLogger.logger.debug("StatusModule: first pass ");
+            if (RecoveryLogger.logger.isDebugEnabled()) {
+                RecoveryLogger.logger.debug("StatusModule: first pass ");
             }
 
             ACCoordinators = _recoveryStore.allObjUids( _transactionType, acc_uids );
@@ -103,7 +102,7 @@
         }
         catch ( ObjectStoreException ex )
         {
-            XTSLogger.i18NLogger.warn_coordinator_at_ATCoordinatorRecoveryModule_1(ex);
+            RecoveryLogger.i18NLogger.warn_coordinator_at_ATCoordinatorRecoveryModule_1(ex);
         }
 
         if ( ACCoordinators )
@@ -114,8 +113,8 @@
 
     public void periodicWorkSecondPass()
     {
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("ATCoordinatorRecoveryModule: Second pass ");
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("ATCoordinatorRecoveryModule: Second pass ");
         }
 
         if (_transactionUidVector != null) {
@@ -128,8 +127,8 @@
 
     protected ATCoordinatorRecoveryModule(String type)
     {
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("ATCoordinatorRecoveryModule created " + type);
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("ATCoordinatorRecoveryModule created " + type);
         }
 
         if (_recoveryStore == null)
@@ -157,8 +156,8 @@
 
         String Status = ActionStatus.stringForm( theStatus ) ;
 
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("transaction type is " + _transactionType + " uid is " +
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("transaction type is " + _transactionType + " uid is " +
                     recoverUid.toString() + "\n ActionStatus is " + Status +
                     " in flight is " + inFlight);
         }
@@ -166,7 +165,7 @@
         if ( ! inFlight )
         {
             try {
-                XTSLogger.logger.debug("jjh doing revovery here for " + recoverUid);
+                RecoveryLogger.logger.debug("jjh doing revovery here for " + recoverUid);
                 // TODO jjh
                 RecoveryATCoordinator rcvACCoordinator =
                         new RecoveryATCoordinator(recoverUid);
@@ -178,7 +177,7 @@
             }
             catch ( Exception ex )
             {
-                XTSLogger.i18NLogger.warn_coordinator_at_ATCoordinatorRecoveryModule_2(recoverUid, ex);
+                RecoveryLogger.i18NLogger.warn_coordinator_at_ATCoordinatorRecoveryModule_2(recoverUid, ex);
             }
         }
     }
@@ -223,8 +222,8 @@
     {
         Vector uidVector = new Vector() ;
 
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("processing " + _transactionType
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("processing " + _transactionType
                     + " transactions");
         }
 
@@ -246,8 +245,8 @@
             {
                 break;
             }
-            if (XTSLogger.logger.isDebugEnabled()) {
-                XTSLogger.logger.debug("found transaction " + theUid);
+            if (RecoveryLogger.logger.isDebugEnabled()) {
+                RecoveryLogger.logger.debug("found transaction " + theUid);
             }
 
             uidVector.addElement( theUid ) ;
@@ -274,7 +273,7 @@
             }
             catch ( ObjectStoreException ex )
             {
-                XTSLogger.i18NLogger.warn_coordinator_at_ATCoordinatorRecoveryModule_3(currentUid, ex);
+                RecoveryLogger.i18NLogger.warn_coordinator_at_ATCoordinatorRecoveryModule_3(currentUid, ex);
             }
         }
 

Modified: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/RecoveryATCoordinator.java
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/RecoveryATCoordinator.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/RecoveryATCoordinator.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -1,6 +1,6 @@
 package org.jboss.jbossts.xts.recovery.coordinator.at;
 
-import org.jboss.jbossts.xts.logging.XTSLogger;
+import org.jboss.jbossts.xts.recovery.logging.RecoveryLogger;
 
 import com.arjuna.ats.arjuna.common.Uid;
 import com.arjuna.ats.arjuna.coordinator.ActionStatus;
@@ -31,8 +31,8 @@
    {
        final int status = status();
 
-       if (XTSLogger.logger.isDebugEnabled()) {
-           XTSLogger.logger.debugv("RecoveryATCoordinator.replayPhase2 recovering {0} ActionStatus is {1}", new Object[]{get_uid(), ActionStatus.stringForm(status)});
+       if (RecoveryLogger.logger.isDebugEnabled()) {
+           RecoveryLogger.logger.debugv("RecoveryATCoordinator.replayPhase2 recovering {0} ActionStatus is {1}", new Object[]{get_uid(), ActionStatus.stringForm(status)});
        }
 
        if ( _activated )
@@ -69,13 +69,13 @@
            super.phase2Abort( _reportHeuristics ) ;
        }
 
-       if (XTSLogger.logger.isDebugEnabled()) {
-           XTSLogger.logger.debugv("RecoveryATCoordinator.replayPhase2( {0} )  finished", new Object[]{get_uid()});
+       if (RecoveryLogger.logger.isDebugEnabled()) {
+           RecoveryLogger.logger.debugv("RecoveryATCoordinator.replayPhase2( {0} )  finished", new Object[]{get_uid()});
        }
        }
        else
        {
-           XTSLogger.i18NLogger.warn_coordinator_at_RecoveryATCoordinator_4(get_uid());
+           RecoveryLogger.i18NLogger.warn_coordinator_at_RecoveryATCoordinator_4(get_uid());
        }
    }
 

Modified: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/RecoverySubordinateATCoordinator.java
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/RecoverySubordinateATCoordinator.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/RecoverySubordinateATCoordinator.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -1,6 +1,6 @@
 package org.jboss.jbossts.xts.recovery.coordinator.at;
 
-import org.jboss.jbossts.xts.logging.XTSLogger;
+import org.jboss.jbossts.xts.recovery.logging.RecoveryLogger;
 
 import com.arjuna.ats.arjuna.common.Uid;
 import com.arjuna.ats.arjuna.coordinator.ActionStatus;
@@ -61,8 +61,8 @@
    {
        final int status = status();
 
-       if (XTSLogger.logger.isDebugEnabled()) {
-           XTSLogger.logger.debugv("RecoverySubordinateATCoordinator.replayPhase2 recovering {0} ActionStatus is {1}", new Object[]{get_uid(), ActionStatus.stringForm(status)});
+       if (RecoveryLogger.logger.isDebugEnabled()) {
+           RecoveryLogger.logger.debugv("RecoverySubordinateATCoordinator.replayPhase2 recovering {0} ActionStatus is {1}", new Object[]{get_uid(), ActionStatus.stringForm(status)});
        }
 
        if ( _activated )
@@ -92,13 +92,13 @@
            SubordinateATCoordinator.removeRecoveredCoordinator(this);
        }
 
-       if (XTSLogger.logger.isDebugEnabled()) {
-           XTSLogger.logger.debugv("RecoverySubordinateATCoordinator.replayPhase2( {0} )  finished", new Object[]{get_uid()});
+       if (RecoveryLogger.logger.isDebugEnabled()) {
+           RecoveryLogger.logger.debugv("RecoverySubordinateATCoordinator.replayPhase2( {0} )  finished", new Object[]{get_uid()});
        }
        }
        else
        {
-           XTSLogger.i18NLogger.warn_coordinator_at_RecoverySubordinateATCoordinator_4(get_uid());
+           RecoveryLogger.i18NLogger.warn_coordinator_at_RecoverySubordinateATCoordinator_4(get_uid());
        }
    }
 

Modified: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/SubordinateATCoordinatorRecoveryModule.java
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/SubordinateATCoordinatorRecoveryModule.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/at/SubordinateATCoordinatorRecoveryModule.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -23,12 +23,11 @@
 import com.arjuna.ats.arjuna.objectstore.RecoveryStore;
 import com.arjuna.ats.arjuna.objectstore.StateStatus;
 import com.arjuna.ats.arjuna.objectstore.StoreManager;
-import org.jboss.jbossts.xts.logging.XTSLogger;
+import org.jboss.jbossts.xts.recovery.XTSRecoveryModule;
+import org.jboss.jbossts.xts.recovery.logging.RecoveryLogger;
 import org.jboss.jbossts.xts.recovery.participant.at.XTSATRecoveryManager;
 
-import com.arjuna.ats.arjuna.recovery.RecoveryModule;
 import com.arjuna.ats.arjuna.recovery.TransactionStatusConnectionManager;
-import com.arjuna.ats.arjuna.coordinator.TxControl;
 import com.arjuna.ats.arjuna.coordinator.ActionStatus;
 import com.arjuna.ats.arjuna.state.InputObjectState;
 import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
@@ -48,12 +47,12 @@
  * $Id$
  *
  */
-public class SubordinateATCoordinatorRecoveryModule implements RecoveryModule
+public class SubordinateATCoordinatorRecoveryModule implements XTSRecoveryModule
 {
     public SubordinateATCoordinatorRecoveryModule()
     {
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("SubordinateATCoordinatorRecoveryModule created - default");
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("SubordinateATCoordinatorRecoveryModule created - default");
         }
 
         if (_recoveryStore == null)
@@ -94,8 +93,8 @@
 
         try
         {
-            if (XTSLogger.logger.isDebugEnabled()) {
-                XTSLogger.logger.debug("StatusModule: first pass ");
+            if (RecoveryLogger.logger.isDebugEnabled()) {
+                RecoveryLogger.logger.debug("StatusModule: first pass ");
             }
 
             SubordinateCoordinators = _recoveryStore.allObjUids( _transactionType, acc_uids );
@@ -103,7 +102,7 @@
         }
         catch ( ObjectStoreException ex )
         {
-            XTSLogger.i18NLogger.warn_coordinator_at_SubordinateATCoordinatorRecoveryModule_1(ex);
+            RecoveryLogger.i18NLogger.warn_coordinator_at_SubordinateATCoordinatorRecoveryModule_1(ex);
         }
 
         if ( SubordinateCoordinators )
@@ -114,8 +113,8 @@
 
     public void periodicWorkSecondPass()
     {
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("SubordinateATCoordinatorRecoveryModule: Second pass ");
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("SubordinateATCoordinatorRecoveryModule: Second pass ");
         }
 
         if (_transactionUidVector != null) {
@@ -128,8 +127,8 @@
 
     protected SubordinateATCoordinatorRecoveryModule(String type)
     {
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("SubordinateATCoordinatorRecoveryModule created " + type);
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("SubordinateATCoordinatorRecoveryModule created " + type);
         }
 
         if (_recoveryStore == null)
@@ -166,8 +165,8 @@
 
         String Status = ActionStatus.stringForm( theStatus ) ;
 
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("transaction type is " + _transactionType + " uid is " +
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("transaction type is " + _transactionType + " uid is " +
                     recoverUid.toString() + "\n ActionStatus is " + Status +
                     " in flight is " + inFlight);
         }
@@ -175,14 +174,14 @@
         if ( ! inFlight )
         {
             try {
-                XTSLogger.logger.debug("jjh doing revovery here for " + recoverUid);
+                RecoveryLogger.logger.debug("jjh doing revovery here for " + recoverUid);
                 RecoverySubordinateATCoordinator rcvSubordinateCoordinator =
                         new RecoverySubordinateATCoordinator(recoverUid);
                 rcvSubordinateCoordinator.replayPhase2();
             }
             catch ( Exception ex )
             {
-                XTSLogger.i18NLogger.warn_coordinator_at_SubordinateATCoordinatorRecoveryModule_2(recoverUid, ex);
+                RecoveryLogger.i18NLogger.warn_coordinator_at_SubordinateATCoordinatorRecoveryModule_2(recoverUid, ex);
             }
         }
     }
@@ -227,8 +226,8 @@
     {
         Vector uidVector = new Vector() ;
 
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("processing " + _transactionType
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("processing " + _transactionType
                     + " transactions");
         }
 
@@ -249,8 +248,8 @@
             {
                 break;
             }
-            if (XTSLogger.logger.isDebugEnabled()) {
-                XTSLogger.logger.debug("found transaction " + theUid);
+            if (RecoveryLogger.logger.isDebugEnabled()) {
+                RecoveryLogger.logger.debug("found transaction " + theUid);
             }
 
             uidVector.addElement( theUid ) ;
@@ -277,7 +276,7 @@
             }
             catch ( ObjectStoreException ex )
             {
-                XTSLogger.i18NLogger.warn_coordinator_at_SubordinateATCoordinatorRecoveryModule_3(currentUid, ex);
+                RecoveryLogger.i18NLogger.warn_coordinator_at_SubordinateATCoordinatorRecoveryModule_3(currentUid, ex);
             }
         }
 

Modified: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/ba/BACoordinatorRecoveryModule.java
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/ba/BACoordinatorRecoveryModule.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/ba/BACoordinatorRecoveryModule.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -23,12 +23,11 @@
 import com.arjuna.ats.arjuna.objectstore.RecoveryStore;
 import com.arjuna.ats.arjuna.objectstore.StateStatus;
 import com.arjuna.ats.arjuna.objectstore.StoreManager;
-import org.jboss.jbossts.xts.logging.XTSLogger;
+import org.jboss.jbossts.xts.recovery.logging.RecoveryLogger;
+import org.jboss.jbossts.xts.recovery.XTSRecoveryModule;
 import org.jboss.jbossts.xts.recovery.participant.ba.XTSBARecoveryManager;
 
-import com.arjuna.ats.arjuna.recovery.RecoveryModule;
 import com.arjuna.ats.arjuna.recovery.TransactionStatusConnectionManager;
-import com.arjuna.ats.arjuna.coordinator.TxControl;
 import com.arjuna.ats.arjuna.coordinator.ActionStatus;
 import com.arjuna.ats.arjuna.state.InputObjectState;
 import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
@@ -48,12 +47,12 @@
  * $Id$
  *
  */
-public class BACoordinatorRecoveryModule implements RecoveryModule
+public class BACoordinatorRecoveryModule implements XTSRecoveryModule
 {
     public BACoordinatorRecoveryModule()
     {
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("BACoordinatorRecoveryModule created - default");
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("BACoordinatorRecoveryModule created - default");
         }
 
         if (_recoveryStore == null)
@@ -94,8 +93,8 @@
 
         try
         {
-            if (XTSLogger.logger.isDebugEnabled()) {
-                XTSLogger.logger.debug("BACoordinatorRecoveryModule: first pass");
+            if (RecoveryLogger.logger.isDebugEnabled()) {
+                RecoveryLogger.logger.debug("BACoordinatorRecoveryModule: first pass");
             }
 
             ACCoordinators = _recoveryStore.allObjUids( _transactionType, acc_uids );
@@ -103,7 +102,7 @@
         }
         catch ( ObjectStoreException ex )
         {
-            XTSLogger.i18NLogger.warn_coordinator_ba_BACoordinatorRecoveryModule_1(ex);
+            RecoveryLogger.i18NLogger.warn_coordinator_ba_BACoordinatorRecoveryModule_1(ex);
         }
 
         if ( ACCoordinators )
@@ -114,8 +113,8 @@
 
     public void periodicWorkSecondPass()
     {
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("BACoordinatorRecoveryModule: Second pass");
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("BACoordinatorRecoveryModule: Second pass");
         }
 
         if (_transactionUidVector != null) {
@@ -128,8 +127,8 @@
 
     protected BACoordinatorRecoveryModule(String type)
     {
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("BACoordinatorRecoveryModule created " + type);
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("BACoordinatorRecoveryModule created " + type);
         }
 
         if (_recoveryStore == null)
@@ -157,8 +156,8 @@
 
         String Status = ActionStatus.stringForm( theStatus ) ;
 
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("transaction type is " + _transactionType + " uid is " +
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("transaction type is " + _transactionType + " uid is " +
                     recoverUid.toString() + "\n ActionStatus is " + Status +
                     " in flight is " + inFlight);
         }
@@ -166,7 +165,7 @@
         if ( ! inFlight )
         {
             try {
-                XTSLogger.logger.debug("jjh doing revovery here for " + recoverUid);
+                RecoveryLogger.logger.debug("jjh doing revovery here for " + recoverUid);
                 // TODO jjh
                 RecoveryBACoordinator rcvACCoordinator =
                         new RecoveryBACoordinator(recoverUid);
@@ -178,7 +177,7 @@
             }
             catch ( Exception ex )
             {
-                XTSLogger.i18NLogger.warn_coordinator_ba_BACoordinatorRecoveryModule_2(recoverUid, ex);
+                RecoveryLogger.i18NLogger.warn_coordinator_ba_BACoordinatorRecoveryModule_2(recoverUid, ex);
             }
         }
     }
@@ -223,8 +222,8 @@
     {
         Vector uidVector = new Vector() ;
 
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("processing " + _transactionType
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("processing " + _transactionType
                     + " transactions");
         }
 
@@ -245,8 +244,8 @@
             {
                 break;
             }
-            if (XTSLogger.logger.isDebugEnabled()) {
-                XTSLogger.logger.debug("found transaction " + theUid);
+            if (RecoveryLogger.logger.isDebugEnabled()) {
+                RecoveryLogger.logger.debug("found transaction " + theUid);
             }
 
             uidVector.addElement( theUid ) ;
@@ -273,7 +272,7 @@
             }
             catch ( ObjectStoreException ex )
             {
-                XTSLogger.i18NLogger.warn_coordinator_ba_BACoordinatorRecoveryModule_3(currentUid, ex);
+                RecoveryLogger.i18NLogger.warn_coordinator_ba_BACoordinatorRecoveryModule_3(currentUid, ex);
             }
         }
 

Modified: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/ba/RecoveryBACoordinator.java
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/ba/RecoveryBACoordinator.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/ba/RecoveryBACoordinator.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -1,6 +1,6 @@
 package org.jboss.jbossts.xts.recovery.coordinator.ba;
 
-import org.jboss.jbossts.xts.logging.XTSLogger;
+import org.jboss.jbossts.xts.recovery.logging.RecoveryLogger;
 
 import com.arjuna.ats.arjuna.common.Uid;
 import com.arjuna.ats.arjuna.coordinator.ActionStatus;
@@ -61,8 +61,8 @@
    {
        final int status = status();
 
-       if (XTSLogger.logger.isDebugEnabled()) {
-           XTSLogger.logger.debugv("RecoveryBACoordinator.replayPhase2 recovering {0} ActionStatus is {1}", new Object[]{get_uid(), ActionStatus.stringForm(status)});
+       if (RecoveryLogger.logger.isDebugEnabled()) {
+           RecoveryLogger.logger.debugv("RecoveryBACoordinator.replayPhase2 recovering {0} ActionStatus is {1}", new Object[]{get_uid(), ActionStatus.stringForm(status)});
        }
 
        if ( _activated )
@@ -96,13 +96,13 @@
            super.phase2Abort( _reportHeuristics ) ;
        }
 
-       if (XTSLogger.logger.isDebugEnabled()) {
-           XTSLogger.logger.debugv("RecoveryBACoordinator.replayPhase2( {0} )  finished", new Object[]{get_uid()});
+       if (RecoveryLogger.logger.isDebugEnabled()) {
+           RecoveryLogger.logger.debugv("RecoveryBACoordinator.replayPhase2( {0} )  finished", new Object[]{get_uid()});
        }
        }
        else
        {
-           XTSLogger.i18NLogger.warn_coordinator_ba_RecoveryBACoordinator_4(get_uid());
+           RecoveryLogger.i18NLogger.warn_coordinator_ba_RecoveryBACoordinator_4(get_uid());
        }
    }
 

Modified: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/ba/RecoverySubordinateBACoordinator.java
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/ba/RecoverySubordinateBACoordinator.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/ba/RecoverySubordinateBACoordinator.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -1,6 +1,6 @@
 package org.jboss.jbossts.xts.recovery.coordinator.ba;
 
-import org.jboss.jbossts.xts.logging.XTSLogger;
+import org.jboss.jbossts.xts.recovery.logging.RecoveryLogger;
 
 import com.arjuna.ats.arjuna.common.Uid;
 import com.arjuna.ats.arjuna.coordinator.ActionStatus;
@@ -62,8 +62,8 @@
    {
        final int status = status();
 
-       if (XTSLogger.logger.isDebugEnabled()) {
-           XTSLogger.logger.debugv("RecoverBASubordinateCoordinator.replayPhase2 recovering {0} ActionStatus is {1}", new Object[]{get_uid(), ActionStatus.stringForm(status)});
+       if (RecoveryLogger.logger.isDebugEnabled()) {
+           RecoveryLogger.logger.debugv("RecoverBASubordinateCoordinator.replayPhase2 recovering {0} ActionStatus is {1}", new Object[]{get_uid(), ActionStatus.stringForm(status)});
        }
 
        if ( _activated )
@@ -94,13 +94,13 @@
            SubordinateBACoordinator.removeRecoveredCoordinator(this);
        }
 
-       if (XTSLogger.logger.isDebugEnabled()) {
-           XTSLogger.logger.debugv("RecoverBASubordinateCoordinator.replayPhase2( {0} )  finished", new Object[]{get_uid()});
+       if (RecoveryLogger.logger.isDebugEnabled()) {
+           RecoveryLogger.logger.debugv("RecoverBASubordinateCoordinator.replayPhase2( {0} )  finished", new Object[]{get_uid()});
        }
        }
        else
        {
-           XTSLogger.i18NLogger.warn_coordinator_ba_RecoverBASubordinateCoordinator_4(get_uid());
+           RecoveryLogger.i18NLogger.warn_coordinator_ba_RecoverBASubordinateCoordinator_4(get_uid());
        }
    }
 

Modified: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/ba/SubordinateBACoordinatorRecoveryModule.java
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/ba/SubordinateBACoordinatorRecoveryModule.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/coordinator/ba/SubordinateBACoordinatorRecoveryModule.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -23,12 +23,11 @@
 import com.arjuna.ats.arjuna.objectstore.RecoveryStore;
 import com.arjuna.ats.arjuna.objectstore.StateStatus;
 import com.arjuna.ats.arjuna.objectstore.StoreManager;
-import org.jboss.jbossts.xts.logging.XTSLogger;
+import org.jboss.jbossts.xts.recovery.logging.RecoveryLogger;
+import org.jboss.jbossts.xts.recovery.XTSRecoveryModule;
 import org.jboss.jbossts.xts.recovery.participant.ba.XTSBARecoveryManager;
 
-import com.arjuna.ats.arjuna.recovery.RecoveryModule;
 import com.arjuna.ats.arjuna.recovery.TransactionStatusConnectionManager;
-import com.arjuna.ats.arjuna.coordinator.TxControl;
 import com.arjuna.ats.arjuna.coordinator.ActionStatus;
 import com.arjuna.ats.arjuna.state.InputObjectState;
 import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
@@ -48,12 +47,12 @@
  * $Id$
  *
  */
-public class SubordinateBACoordinatorRecoveryModule implements RecoveryModule
+public class SubordinateBACoordinatorRecoveryModule implements XTSRecoveryModule
 {
     public SubordinateBACoordinatorRecoveryModule()
     {
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("SubordinateBACoordinatorRecoveryModule created - default");
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("SubordinateBACoordinatorRecoveryModule created - default");
         }
 
         if (_recoveryStore == null)
@@ -94,8 +93,8 @@
 
         try
         {
-            if (XTSLogger.logger.isDebugEnabled()) {
-                XTSLogger.logger.debug("StatusModule: first pass ");
+            if (RecoveryLogger.logger.isDebugEnabled()) {
+                RecoveryLogger.logger.debug("StatusModule: first pass ");
             }
 
             SubordinateCoordinators = _recoveryStore.allObjUids( _transactionType, acc_uids );
@@ -103,7 +102,7 @@
         }
         catch ( ObjectStoreException ex )
         {
-            XTSLogger.i18NLogger.warn_coordinator_ba_SubordinateCoordinatorRecoveryModule_1(ex);
+            RecoveryLogger.i18NLogger.warn_coordinator_ba_SubordinateCoordinatorRecoveryModule_1(ex);
         }
 
         if ( SubordinateCoordinators )
@@ -114,8 +113,8 @@
 
     public void periodicWorkSecondPass()
     {
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("SubordinateBACoordinatorRecoveryModule: Second pass ");
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("SubordinateBACoordinatorRecoveryModule: Second pass ");
         }
 
         if (_transactionUidVector != null) {
@@ -128,8 +127,8 @@
 
     protected SubordinateBACoordinatorRecoveryModule(String type)
     {
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("SubordinateBACoordinatorRecoveryModule created " + type);
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("SubordinateBACoordinatorRecoveryModule created " + type);
         }
 
         if (_recoveryStore == null)
@@ -166,8 +165,8 @@
 
         String Status = ActionStatus.stringForm( theStatus ) ;
 
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("transaction type is " + _transactionType + " uid is " +
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("transaction type is " + _transactionType + " uid is " +
                     recoverUid.toString() + "\n ActionStatus is " + Status +
                     " in flight is " + inFlight);
         }
@@ -175,14 +174,14 @@
         if ( ! inFlight )
         {
             try {
-                XTSLogger.logger.debug("jjh doing revovery here for " + recoverUid);
+                RecoveryLogger.logger.debug("jjh doing revovery here for " + recoverUid);
                 RecoverySubordinateBACoordinator rcvSubordinateCoordinator =
                         new RecoverySubordinateBACoordinator(recoverUid);
                 rcvSubordinateCoordinator.replayPhase2();
             }
             catch ( Exception ex )
             {
-                XTSLogger.i18NLogger.warn_coordinator_ba_SubordinateBACoordinatorRecoveryModule_2(recoverUid, ex);
+                RecoveryLogger.i18NLogger.warn_coordinator_ba_SubordinateBACoordinatorRecoveryModule_2(recoverUid, ex);
             }
         }
     }
@@ -227,8 +226,8 @@
     {
         Vector uidVector = new Vector() ;
 
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("processing " + _transactionType
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("processing " + _transactionType
                     + " transactions");
         }
 
@@ -249,8 +248,8 @@
             {
                 break;
             }
-            if (XTSLogger.logger.isDebugEnabled()) {
-                XTSLogger.logger.debug("found transaction " + theUid);
+            if (RecoveryLogger.logger.isDebugEnabled()) {
+                RecoveryLogger.logger.debug("found transaction " + theUid);
             }
 
             uidVector.addElement( theUid ) ;
@@ -277,7 +276,7 @@
             }
             catch ( ObjectStoreException ex )
             {
-                XTSLogger.i18NLogger.warn_coordinator_ba_SubordinateBACoordinatorRecoveryModule_3(currentUid, ex);
+                RecoveryLogger.i18NLogger.warn_coordinator_ba_SubordinateBACoordinatorRecoveryModule_3(currentUid, ex);
             }
         }
 

Copied: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/logging/RecoveryLogger.java (from rev 34619, labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/logging/XTSLogger.java)
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/logging/RecoveryLogger.java	                        (rev 0)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/logging/RecoveryLogger.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -0,0 +1,31 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and/or its affiliates,
+ * and individual contributors as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2010,
+ * @author JBoss, by Red Hat.
+ */
+package org.jboss.jbossts.xts.recovery.logging;
+
+import org.jboss.jbossts.xts.recovery.logging.recoveryI18NLogger;
+import org.jboss.jbossts.xts.recovery.logging.recoveryI18NLoggerImpl;
+import org.jboss.logging.Logger;
+
+public class RecoveryLogger
+{
+    public static final Logger logger = Logger.getLogger("com.arjuna.wsrecovery");
+    public static final recoveryI18NLogger i18NLogger  = new recoveryI18NLoggerImpl(logger);
+}

Copied: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/logging/recoveryI18NLogger.java (from rev 34619, labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/logging/xtsrecoveryI18NLogger.java)
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/logging/recoveryI18NLogger.java	                        (rev 0)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/logging/recoveryI18NLogger.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -0,0 +1,267 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and/or its affiliates,
+ * and individual contributors as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2010,
+ * @author JBoss, by Red Hat.
+ */
+package org.jboss.jbossts.xts.recovery.logging;
+
+import com.arjuna.ats.arjuna.common.Uid;
+import org.jboss.logging.*;
+import static org.jboss.logging.Logger.Level.*;
+import static org.jboss.logging.Message.Format.*;
+
+/**
+ * i18n log messages for the xtsrecovery module.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at redhat.com) 2010-06
+ */
+ at MessageLogger(projectCode = "ARJUNA")
+public interface recoveryI18NLogger {
+
+    /*
+        Message IDs are unique and non-recyclable.
+        Don't change the purpose of existing messages.
+          (tweak the message text or params for clarification if you like).
+        Allocate new messages by following instructions at the bottom of the file.
+     */
+
+//	@Message(id = 46001, value = "RecoveryATCoordinator.replayPhase2: Unexpected status: {0}", format = MESSAGE_FORMAT)
+//	@LogMessage(level = WARN)
+//	public void warn_coordinator_at_RecoveryATCoordinator_2(String arg0);
+
+	@Message(id = 46002, value = "RecoveryATCoordinator.replayPhase2 transaction {0} not activated, unable to replay phase 2 commit", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_coordinator_at_RecoveryATCoordinator_4(Uid arg0);
+
+//	@Message(id = 46003, value = "RecoverySubordinateATCoordinator.replayPhase2: Unexpected status: {0}", format = MESSAGE_FORMAT)
+//	@LogMessage(level = WARN)
+//	public void warn_coordinator_at_RecoverySubordinateATCoordinator_2(String arg0);
+
+	@Message(id = 46004, value = "RecoverySubordinateATCoordinator.replayPhase2 transaction {0} not activated, unable to replay phase 2 commit", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_coordinator_at_RecoverySubordinateATCoordinator_4(Uid arg0);
+
+//	@Message(id = 46005, value = "RecoverBASubordinateCoordinator.replayPhase2: Unexpected status: {0}", format = MESSAGE_FORMAT)
+//	@LogMessage(level = WARN)
+//	public void warn_coordinator_ba_RecoverBASubordinateCoordinator_2(String arg0);
+
+	@Message(id = 46006, value = "RecoverBASubordinateCoordinator.replayPhase2 transaction {0} not activated, unable to replay phase 2 commit", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_coordinator_ba_RecoverBASubordinateCoordinator_4(Uid arg0);
+
+//	@Message(id = 46007, value = "RecoveryBACoordinator.replayPhase2: Unexpected status: {0}", format = MESSAGE_FORMAT)
+//	@LogMessage(level = WARN)
+//	public void warn_coordinator_ba_RecoveryBACoordinator_2(String arg0);
+
+	@Message(id = 46008, value = "RecoveryBACoordinator.replayPhase2 transaction {0} not activated, unable to replay phase 2 commit", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_coordinator_ba_RecoveryBACoordinator_4(Uid arg0);
+
+//	@Message(id = 46009, value = "RecoverBASubordinateCoordinator.replayPhase2 recovering {0} ActionStatus is {1}", format = MESSAGE_FORMAT)
+//	@LogMessage(level = WARN)
+//	public void warn_coordinator_ba_RecoverySubordinateBACoordinator_1(String arg0, String arg1);
+
+	@Message(id = 46010, value = "RecoveryManagerStatusModule: Object store exception", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_coordinator_at_ATCoordinatorRecoveryModule_1(@Cause() Throwable arg0);
+
+	@Message(id = 46011, value = "failed to recover Transaction {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_coordinator_at_ATCoordinatorRecoveryModule_2(Uid arg0, @Cause() Throwable arg1);
+
+	@Message(id = 46012, value = "failed to access transaction store {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_coordinator_at_ATCoordinatorRecoveryModule_3(Uid arg0, @Cause() Throwable arg1);
+
+	@Message(id = 46013, value = "RecoveryManagerStatusModule: Object store exception", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_coordinator_at_SubordinateATCoordinatorRecoveryModule_1(@Cause() Throwable arg0);
+
+	@Message(id = 46014, value = "failed to recover Transaction {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_coordinator_at_SubordinateATCoordinatorRecoveryModule_2(Uid arg0, @Cause() Throwable arg1);
+
+	@Message(id = 46015, value = "failed to access transaction store {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_coordinator_at_SubordinateATCoordinatorRecoveryModule_3(Uid arg0, @Cause() Throwable arg1);
+
+	@Message(id = 46016, value = "RecoveryManagerStatusModule: Object store exception", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_coordinator_ba_BACoordinatorRecoveryModule_1(@Cause() Throwable arg0);
+
+	@Message(id = 46017, value = "failed to recover Transaction {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_coordinator_ba_BACoordinatorRecoveryModule_2(Uid arg0, @Cause() Throwable arg1);
+
+	@Message(id = 46018, value = "failed to access transaction store {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_coordinator_ba_BACoordinatorRecoveryModule_3(Uid arg0, @Cause() Throwable arg1);
+
+	@Message(id = 46019, value = "failed to recover Transaction {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_coordinator_ba_SubordinateBACoordinatorRecoveryModule_2(Uid arg0, @Cause() Throwable arg1);
+
+	@Message(id = 46020, value = "failed to access transaction store {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_coordinator_ba_SubordinateBACoordinatorRecoveryModule_3(Uid arg0, @Cause() Throwable arg1);
+
+	@Message(id = 46021, value = "RecoveryManagerStatusModule: Object store exception", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_coordinator_ba_SubordinateCoordinatorRecoveryModule_1(@Cause() Throwable arg0);
+
+	@Message(id = 46022, value = "RecoveryManagerStatusModule: Object store exception", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_participant_at_ATParticipantRecoveryModule_1(@Cause() Throwable arg0);
+
+	@Message(id = 46023, value = "failed to access transaction store {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_participant_at_ATParticipantRecoveryModule_3(Uid arg0, @Cause() Throwable arg1);
+
+	@Message(id = 46024, value = "unable to load recovery record implementation class {0} for WS-AT participant recovery record {1}", format = MESSAGE_FORMAT)
+	@LogMessage(level = ERROR)
+	public void error_participant_at_ATParticipantRecoveryModule_4(String arg0, Uid arg1, @Cause() Throwable arg2);
+
+	@Message(id = 46025, value = "unable to instantiate recovery record implementation class {0} for WS-AT participant recovery record {1}", format = MESSAGE_FORMAT)
+	@LogMessage(level = ERROR)
+	public void error_participant_at_ATParticipantRecoveryModule_5(String arg0, Uid arg1, @Cause() Throwable arg2);
+
+	@Message(id = 46026, value = "unable to unpack recovery record data for WS-AT participant recovery record {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = ERROR)
+	public void error_participant_at_ATParticipantRecoveryModule_6(Uid arg0, @Cause() Throwable arg1);
+
+	@Message(id = 46027, value = "missing recovery record data for WS-AT participant recovery record {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = ERROR)
+	public void error_participant_at_ATParticipantRecoveryModule_7(Uid arg0);
+
+	@Message(id = 46028, value = "unable to read recovery record data for WS-AT participant recovery record {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = ERROR)
+	public void error_participant_at_ATParticipantRecoveryModule_8(Uid arg0, @Cause() Throwable arg1);
+
+	@Message(id = 46029, value = "exception writing recovery record for WS-AT participant {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_participant_at_XTSATRecoveryModule_1(String arg0, @Cause() Throwable arg1);
+
+	@Message(id = 46030, value = "exception removing recovery record {0} for WS-AT participant {1}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_participant_at_XTSATRecoveryModule_2(Uid arg0, String arg1, @Cause() Throwable arg2);
+
+	@Message(id = 46031, value = "exception reactivating recovered WS-AT participant {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_participant_at_XTSATRecoveryModule_3(String arg0, @Cause() Throwable arg1);
+
+	@Message(id = 46032, value = "no XTS application recovery module found to help reactivate recovered WS-AT participant {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_participant_at_XTSATRecoveryModule_4(String arg0);
+
+	@Message(id = 46033, value = "Compensating orphaned subordinate WS-AT transcation {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_participant_at_XTSATRecoveryModule_5(Uid arg0);
+
+	@Message(id = 46034, value = "RecoveryManagerStatusModule: Object store exception", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_participant_ba_BAParticipantRecoveryModule_1(@Cause() Throwable arg0);
+
+	@Message(id = 46035, value = "failed to access transaction store {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_participant_ba_BAParticipantRecoveryModule_3(Uid arg0, @Cause() Throwable arg1);
+
+	@Message(id = 46036, value = "unable to load recovery record implementation class {0} for WS-BA participant recovery record {1}", format = MESSAGE_FORMAT)
+	@LogMessage(level = ERROR)
+	public void error_participant_ba_BAParticipantRecoveryModule_4(String arg0, Uid arg1, @Cause() Throwable arg2);
+
+	@Message(id = 46037, value = "unable to instantiate recovery record implementation class {0} for WS-BA participant recovery record {1}", format = MESSAGE_FORMAT)
+	@LogMessage(level = ERROR)
+	public void error_participant_ba_BAParticipantRecoveryModule_5(String arg0, Uid arg1, @Cause() Throwable arg2);
+
+	@Message(id = 46038, value = "unable to unpack recovery record data for WS-BA participant recovery record {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_participant_ba_BAParticipantRecoveryModule_6(Uid arg0, @Cause() Throwable arg1);
+
+	@Message(id = 46039, value = "missing recovery record data for WS-BA participant recovery record {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = ERROR)
+	public void error_participant_ba_BAParticipantRecoveryModule_7(Uid arg0);
+
+	@Message(id = 46040, value = "unable to read recovery record data for WS-BA participant recovery record {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = ERROR)
+	public void error_participant_ba_BAParticipantRecoveryModule_8(Uid arg0, @Cause() Throwable arg1);
+
+	@Message(id = 46041, value = "exception writing recovery record for WS-BA participant {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_participant_ba_XTSBARecoveryModule_1(String arg0, @Cause() Throwable arg1);
+
+	@Message(id = 46042, value = "exception removing recovery record {0} for WS-BA participant {1}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_participant_ba_XTSBARecoveryModule_2(Uid arg0, String arg1, @Cause() Throwable arg2);
+
+	@Message(id = 46043, value = "exception reactivating recovered WS-BA participant {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_participant_ba_XTSBARecoveryModule_3(String arg0, @Cause() Throwable arg1);
+
+	@Message(id = 46044, value = "no XTS application recovery module found to help reactivate recovered WS-BA participant {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_participant_ba_XTSBARecoveryModule_4(String arg0);
+
+	@Message(id = 46045, value = "Compensating orphaned subordinate WS-BA transcation {0}", format = MESSAGE_FORMAT)
+	@LogMessage(level = WARN)
+	public void warn_participant_ba_XTSBARecoveryModule_5(Uid arg0);
+
+    @Message(id = 46046, value = "Unable to load recovery module class {0}", format = MESSAGE_FORMAT)
+    @LogMessage(level = ERROR)
+    public void error_recovery_coordinator_CoordinatorRecoveryInitialisation_1(String arg0, @Cause() Throwable arg1);
+
+    @Message(id = 46047, value = "Not a recovery module class {0}", format = MESSAGE_FORMAT)
+    @LogMessage(level = ERROR)
+    public void error_recovery_coordinator_CoordinatorRecoveryInitialisation_2(String arg0);
+
+    @Message(id = 46048, value = "Unable to instantiate module class {0}", format = MESSAGE_FORMAT)
+    @LogMessage(level = ERROR)
+    public void error_recovery_coordinator_CoordinatorRecoveryInitialisation_3(String arg0, @Cause() Throwable arg1);
+
+    @Message(id = 46049, value = "Unable to access module class {0}", format = MESSAGE_FORMAT)
+    @LogMessage(level = ERROR)
+    public void error_recovery_coordinator_CoordinatorRecoveryInitialisation_4(String arg0, @Cause() Throwable arg1);
+
+    @Message(id = 46050, value = "Unable to load recovery module class {0}", format = MESSAGE_FORMAT)
+    @LogMessage(level = ERROR)
+    public void error_recovery_participant_ParticipantRecoveryInitialisation_1(String arg0, @Cause() Throwable arg1);
+
+    @Message(id = 46051, value = "Not a recovery module class {0}", format = MESSAGE_FORMAT)
+    @LogMessage(level = ERROR)
+    public void error_recovery_participant_ParticipantRecoveryInitialisation_2(String arg0);
+
+    @Message(id = 46052, value = "Unable to instantiate module class {0}", format = MESSAGE_FORMAT)
+    @LogMessage(level = ERROR)
+    public void error_recovery_participant_ParticipantRecoveryInitialisation_3(String arg0, @Cause() Throwable arg1);
+
+    @Message(id = 46053, value = "Unable to access module class {0}", format = MESSAGE_FORMAT)
+    @LogMessage(level = ERROR)
+    public void error_recovery_participant_ParticipantRecoveryInitialisation_4(String arg0, @Cause() Throwable arg1);
+
+    /*
+        Allocate new messages directly above this notice.
+          - id: use the next id number in numeric sequence. Don't reuse ids.
+          The first two digits of the id(XXyyy) denote the module
+            all message in this file should have the same prefix.
+          - value: default (English) version of the log message.
+          - level: according to severity semantics defined at http://docspace.corp.redhat.com/docs/DOC-30217
+          Debug and trace don't get i18n. Everything else MUST be i18n.
+          By convention methods with String return type have prefix get_,
+            all others are log methods and have prefix <level>_
+     */
+
+}

Copied: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/logging/recoveryI18NLoggerImpl.java (from rev 34619, labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/logging/xtsrecoveryI18NLoggerImpl.java)
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/logging/recoveryI18NLoggerImpl.java	                        (rev 0)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/logging/recoveryI18NLoggerImpl.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -0,0 +1,233 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and/or its affiliates,
+ * and individual contributors as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2010,
+ * @author JBoss, by Red Hat.
+ */
+package org.jboss.jbossts.xts.recovery.logging;
+
+import org.jboss.jbossts.xts.recovery.logging.recoveryI18NLogger;
+import org.jboss.logging.Logger;
+import static org.jboss.logging.Logger.Level.*;
+import com.arjuna.ats.arjuna.common.Uid;
+
+/**
+ * i18n log messages for the xtsrecovery module.
+ * This class is autogenerated. Don't mess with it.
+ *
+ * @author Jonathan Halliday (jonathan.halliday at redhat.com) 2010-06
+ */
+public class recoveryI18NLoggerImpl implements recoveryI18NLogger {
+
+	private final Logger logger;
+
+	recoveryI18NLoggerImpl(Logger logger) {
+		this.logger = logger;
+	}
+
+	public void warn_coordinator_at_RecoveryATCoordinator_4(Uid arg0) {
+		logger.logv(WARN, "ARJUNA-46002 RecoveryATCoordinator.replayPhase2 transaction {0} not activated, unable to replay phase 2 commit", arg0);
+	}
+
+	public void warn_coordinator_at_RecoverySubordinateATCoordinator_4(Uid arg0) {
+		logger.logv(WARN, "ARJUNA-46004 RecoverySubordinateATCoordinator.replayPhase2 transaction {0} not activated, unable to replay phase 2 commit", arg0);
+	}
+
+	public void warn_coordinator_ba_RecoverBASubordinateCoordinator_4(Uid arg0) {
+		logger.logv(WARN, "ARJUNA-46006 RecoverBASubordinateCoordinator.replayPhase2 transaction {0} not activated, unable to replay phase 2 commit", arg0);
+	}
+
+	public void warn_coordinator_ba_RecoveryBACoordinator_4(Uid arg0) {
+		logger.logv(WARN, "ARJUNA-46008 RecoveryBACoordinator.replayPhase2 transaction {0} not activated, unable to replay phase 2 commit", arg0);
+	}
+
+	public void warn_coordinator_at_ATCoordinatorRecoveryModule_1(Throwable arg0) {
+		logger.logv(WARN, arg0, "ARJUNA-46010 RecoveryManagerStatusModule: Object store exception", (Object)null);
+	}
+
+	public void warn_coordinator_at_ATCoordinatorRecoveryModule_2(Uid arg0, Throwable arg1) {
+		logger.logv(WARN, arg1, "ARJUNA-46011 failed to recover Transaction {0}", arg0);
+	}
+
+	public void warn_coordinator_at_ATCoordinatorRecoveryModule_3(Uid arg0, Throwable arg1) {
+		logger.logv(WARN, arg1, "ARJUNA-46012 failed to access transaction store {0}", arg0);
+	}
+
+	public void warn_coordinator_at_SubordinateATCoordinatorRecoveryModule_1(Throwable arg0) {
+		logger.logv(WARN, arg0, "ARJUNA-46013 RecoveryManagerStatusModule: Object store exception", (Object)null);
+	}
+
+	public void warn_coordinator_at_SubordinateATCoordinatorRecoveryModule_2(Uid arg0, Throwable arg1) {
+		logger.logv(WARN, arg1, "ARJUNA-46014 failed to recover Transaction {0}", arg0);
+	}
+
+	public void warn_coordinator_at_SubordinateATCoordinatorRecoveryModule_3(Uid arg0, Throwable arg1) {
+		logger.logv(WARN, arg1, "ARJUNA-46015 failed to access transaction store {0}", arg0);
+	}
+
+	public void warn_coordinator_ba_BACoordinatorRecoveryModule_1(Throwable arg0) {
+		logger.logv(WARN, arg0, "ARJUNA-46016 RecoveryManagerStatusModule: Object store exception", (Object)null);
+	}
+
+	public void warn_coordinator_ba_BACoordinatorRecoveryModule_2(Uid arg0, Throwable arg1) {
+		logger.logv(WARN, arg1, "ARJUNA-46017 failed to recover Transaction {0}", arg0);
+	}
+
+	public void warn_coordinator_ba_BACoordinatorRecoveryModule_3(Uid arg0, Throwable arg1) {
+		logger.logv(WARN, arg1, "ARJUNA-46018 failed to access transaction store {0}", arg0);
+	}
+
+	public void warn_coordinator_ba_SubordinateBACoordinatorRecoveryModule_2(Uid arg0, Throwable arg1) {
+		logger.logv(WARN, arg1, "ARJUNA-46019 failed to recover Transaction {0}", arg0);
+	}
+
+	public void warn_coordinator_ba_SubordinateBACoordinatorRecoveryModule_3(Uid arg0, Throwable arg1) {
+		logger.logv(WARN, arg1, "ARJUNA-46020 failed to access transaction store {0}", arg0);
+	}
+
+	public void warn_coordinator_ba_SubordinateCoordinatorRecoveryModule_1(Throwable arg0) {
+		logger.logv(WARN, arg0, "ARJUNA-46021 RecoveryManagerStatusModule: Object store exception", (Object)null);
+	}
+
+	public void warn_participant_at_ATParticipantRecoveryModule_1(Throwable arg0) {
+		logger.logv(WARN, arg0, "ARJUNA-46022 RecoveryManagerStatusModule: Object store exception", (Object)null);
+	}
+
+	public void warn_participant_at_ATParticipantRecoveryModule_3(Uid arg0, Throwable arg1) {
+		logger.logv(WARN, arg1, "ARJUNA-46023 failed to access transaction store {0}", arg0);
+	}
+
+	public void error_participant_at_ATParticipantRecoveryModule_4(String arg0, Uid arg1, Throwable arg2) {
+		logger.logv(ERROR, arg2, "ARJUNA-46024 unable to load recovery record implementation class {0} for WS-AT participant recovery record {1}", arg0, arg1);
+	}
+
+	public void error_participant_at_ATParticipantRecoveryModule_5(String arg0, Uid arg1, Throwable arg2) {
+		logger.logv(ERROR, arg2, "ARJUNA-46025 unable to instantiate recovery record implementation class {0} for WS-AT participant recovery record {1}", arg0, arg1);
+	}
+
+	public void error_participant_at_ATParticipantRecoveryModule_6(Uid arg0, Throwable arg1) {
+		logger.logv(ERROR, arg1, "ARJUNA-46026 unable to unpack recovery record data for WS-AT participant recovery record {0}", arg0);
+	}
+
+	public void error_participant_at_ATParticipantRecoveryModule_7(Uid arg0) {
+		logger.logv(ERROR, "ARJUNA-46027 missing recovery record data for WS-AT participant recovery record {0}", arg0);
+	}
+
+	public void error_participant_at_ATParticipantRecoveryModule_8(Uid arg0, Throwable arg1) {
+		logger.logv(ERROR, arg1, "ARJUNA-46028 unable to read recovery record data for WS-AT participant recovery record {0}", arg0);
+	}
+
+	public void warn_participant_at_XTSATRecoveryModule_1(String arg0, Throwable arg1) {
+		logger.logv(WARN, arg1, "ARJUNA-46029 exception writing recovery record for WS-AT participant {0}", arg0);
+	}
+
+	public void warn_participant_at_XTSATRecoveryModule_2(Uid arg0, String arg1, Throwable arg2) {
+		logger.logv(WARN, arg2, "ARJUNA-46030 exception removing recovery record {0} for WS-AT participant {1}", arg0, arg1);
+	}
+
+	public void warn_participant_at_XTSATRecoveryModule_3(String arg0, Throwable arg1) {
+		logger.logv(WARN, arg1, "ARJUNA-46031 exception reactivating recovered WS-AT participant {0}", arg0);
+	}
+
+	public void warn_participant_at_XTSATRecoveryModule_4(String arg0) {
+		logger.logv(WARN, "ARJUNA-46032 no XTS application recovery module found to help reactivate recovered WS-AT participant {0}", arg0);
+	}
+
+	public void warn_participant_at_XTSATRecoveryModule_5(Uid arg0) {
+		logger.logv(WARN, "ARJUNA-46033 Compensating orphaned subordinate WS-AT transcation {0}", arg0);
+	}
+
+	public void warn_participant_ba_BAParticipantRecoveryModule_1(Throwable arg0) {
+		logger.logv(WARN, arg0, "ARJUNA-46034 RecoveryManagerStatusModule: Object store exception", (Object)null);
+	}
+
+	public void warn_participant_ba_BAParticipantRecoveryModule_3(Uid arg0, Throwable arg1) {
+		logger.logv(WARN, arg1, "ARJUNA-46035 failed to access transaction store {0}", arg0);
+	}
+
+	public void error_participant_ba_BAParticipantRecoveryModule_4(String arg0, Uid arg1, Throwable arg2) {
+		logger.logv(ERROR, arg2, "ARJUNA-46036 unable to load recovery record implementation class {0} for WS-BA participant recovery record {1}", arg0, arg1);
+	}
+
+	public void error_participant_ba_BAParticipantRecoveryModule_5(String arg0, Uid arg1, Throwable arg2) {
+		logger.logv(ERROR, arg2, "ARJUNA-46037 unable to instantiate recovery record implementation class {0} for WS-BA participant recovery record {1}", arg0, arg1);
+	}
+
+	public void warn_participant_ba_BAParticipantRecoveryModule_6(Uid arg0, Throwable arg1) {
+		logger.logv(WARN, arg1, "ARJUNA-46038 unable to unpack recovery record data for WS-BA participant recovery record {0}", arg0);
+	}
+
+	public void error_participant_ba_BAParticipantRecoveryModule_7(Uid arg0) {
+		logger.logv(ERROR, "ARJUNA-46039 missing recovery record data for WS-BA participant recovery record {0}", arg0);
+	}
+
+	public void error_participant_ba_BAParticipantRecoveryModule_8(Uid arg0, Throwable arg1) {
+		logger.logv(ERROR, arg1, "ARJUNA-46040 unable to read recovery record data for WS-BA participant recovery record {0}", arg0);
+	}
+
+	public void warn_participant_ba_XTSBARecoveryModule_1(String arg0, Throwable arg1) {
+		logger.logv(WARN, arg1, "ARJUNA-46041 exception writing recovery record for WS-BA participant {0}", arg0);
+	}
+
+	public void warn_participant_ba_XTSBARecoveryModule_2(Uid arg0, String arg1, Throwable arg2) {
+		logger.logv(WARN, arg2, "ARJUNA-46042 exception removing recovery record {0} for WS-BA participant {1}", arg0, arg1);
+	}
+
+	public void warn_participant_ba_XTSBARecoveryModule_3(String arg0, Throwable arg1) {
+		logger.logv(WARN, arg1, "ARJUNA-46043 exception reactivating recovered WS-BA participant {0}", arg0);
+	}
+
+	public void warn_participant_ba_XTSBARecoveryModule_4(String arg0) {
+		logger.logv(WARN, "ARJUNA-46044 no XTS application recovery module found to help reactivate recovered WS-BA participant {0}", arg0);
+	}
+
+	public void warn_participant_ba_XTSBARecoveryModule_5(Uid arg0) {
+		logger.logv(WARN, "ARJUNA-46045 Compensating orphaned subordinate WS-BA transcation {0}", arg0);
+	}
+
+    public void error_recovery_coordinator_CoordinatorRecoveryInitialisation_1(String arg0, Throwable arg1) {
+        logger.logv(ERROR, arg1, "ARJUNA-46046 Unable to load recovery module class {0}", arg0);
+    }
+
+    public void error_recovery_coordinator_CoordinatorRecoveryInitialisation_2(String arg0) {
+        logger.logv(ERROR, "ARJUNA-46047 Not a recovery module class {0}", arg0);
+    }
+
+    public void error_recovery_coordinator_CoordinatorRecoveryInitialisation_3(String arg0, Throwable arg1) {
+        logger.logv(ERROR, arg1, "ARJUNA-46048 Unable to instantiate module class {0}", arg0);
+    }
+
+    public void error_recovery_coordinator_CoordinatorRecoveryInitialisation_4(String arg0, Throwable arg1) {
+        logger.logv(ERROR, arg1, "ARJUNA-46049 Unable to access module class {0}", arg0);
+    }
+
+    public void error_recovery_participant_ParticipantRecoveryInitialisation_1(String arg0, Throwable arg1) {
+        logger.logv(ERROR, arg1, "ARJUNA-46050 Unable to load recovery module class {0}", arg0);
+    }
+
+    public void error_recovery_participant_ParticipantRecoveryInitialisation_2(String arg0) {
+        logger.logv(ERROR, "ARJUNA-46051 Not a recovery module class {0}", arg0);
+    }
+
+    public void error_recovery_participant_ParticipantRecoveryInitialisation_3(String arg0, Throwable arg1) {
+        logger.logv(ERROR, arg1, "ARJUNA-46052 Unable to instantiate module class {0}", arg0);
+    }
+
+    public void error_recovery_participant_ParticipantRecoveryInitialisation_4(String arg0, Throwable arg1) {
+        logger.logv(ERROR, arg1, "ARJUNA-46053 Unable to access module class {0}", arg0);
+    }
+}

Added: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/ParticipantRecoveryInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/ParticipantRecoveryInitialisation.java	                        (rev 0)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/ParticipantRecoveryInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -0,0 +1,99 @@
+package org.jboss.jbossts.xts.recovery.participant;
+
+import com.arjuna.ats.arjuna.recovery.RecoveryManager;
+import com.arjuna.ats.arjuna.recovery.RecoveryModule;
+import org.jboss.jbossts.xts.environment.RecoveryEnvironmentBean;
+import org.jboss.jbossts.xts.environment.XTSPropertyManager;
+import org.jboss.jbossts.xts.recovery.logging.RecoveryLogger;
+import org.jboss.jbossts.xts.recovery.XTSRecoveryModule;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * manager allowing XTS participant recovery moduels to be registered at startup and unregistered at shutdown.
+ * note that these are the recovery modules which drive XTS participant recovery. if participant recovery is
+ * configured then this will include the participant recovery modules which drive calls to application
+ * specific recovery modules registered by participant web services.
+ */
+public class ParticipantRecoveryInitialisation
+{
+    /**
+     * the list of XTS recovery modules actually registered with the JBossTS recovery manager
+     */
+    private static List<XTSRecoveryModule> recoveryModules = new ArrayList<XTSRecoveryModule>();
+
+    /**
+     * flag to identify if we have already been initialised
+     */
+
+    private static boolean initialised = false;
+    /**
+     * initialisation routine which registers all configured XTS recovery modules
+     */
+    public static void startup()
+    {
+        if (initialised) {
+            return;
+        }
+
+        RecoveryEnvironmentBean recoveryEnvironmentBean = XTSPropertyManager.getRecoveryEnvironmentBean();
+
+        List<String> modules = recoveryEnvironmentBean.getParticipantRecoveryModules();
+        Iterator<String> iterator = modules.iterator();
+
+        while (iterator.hasNext())
+        {
+            String className = (String) iterator.next();
+            Class<?> clazz = null;
+
+            try {
+                clazz = ParticipantRecoveryInitialisation.class.getClassLoader().loadClass(className);
+            } catch (ClassNotFoundException cnfe) {
+                RecoveryLogger.i18NLogger.error_recovery_participant_ParticipantRecoveryInitialisation_1(className, cnfe);
+                continue;
+            }
+
+            if (!RecoveryModule.class.isAssignableFrom(clazz)) {
+                RecoveryLogger.i18NLogger.error_recovery_participant_ParticipantRecoveryInitialisation_2(className);
+                continue;
+            }
+            
+            try {
+                XTSRecoveryModule module = (XTSRecoveryModule)clazz.newInstance();
+                module.install();
+                RecoveryManager.manager().addModule(module);
+                recoveryModules.add(module);
+            } catch (InstantiationException ie) {
+                RecoveryLogger.i18NLogger.error_recovery_participant_ParticipantRecoveryInitialisation_3(className, ie);
+            } catch (IllegalAccessException iae) {
+                RecoveryLogger.i18NLogger.error_recovery_participant_ParticipantRecoveryInitialisation_4(className, iae);
+            }
+        }
+
+        initialised =  true;
+    }
+
+    /**
+     * shutdown routine which removes all installed recovery modules
+     */
+    public static void shutdown()
+    {
+        if (!initialised) {
+            return;
+        }
+        
+        Iterator<XTSRecoveryModule> iterator = recoveryModules.iterator();
+
+        while (iterator.hasNext()) {
+            XTSRecoveryModule module = iterator.next();
+            RecoveryManager.manager().removeModule(module, true);
+            module.uninstall();
+        }
+
+        recoveryModules.clear();
+
+        initialised =  false;
+    }
+}

Modified: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/at/ATParticipantRecoveryModule.java
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/at/ATParticipantRecoveryModule.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/at/ATParticipantRecoveryModule.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -23,14 +23,13 @@
 import com.arjuna.ats.arjuna.objectstore.RecoveryStore;
 import com.arjuna.ats.arjuna.objectstore.StateStatus;
 import com.arjuna.ats.arjuna.objectstore.StoreManager;
-import org.jboss.jbossts.xts.logging.XTSLogger;
+import org.jboss.jbossts.xts.recovery.logging.RecoveryLogger;
 
-import com.arjuna.ats.arjuna.recovery.RecoveryModule;
-import com.arjuna.ats.arjuna.coordinator.TxControl;
 import com.arjuna.ats.arjuna.state.InputObjectState;
 import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
 import com.arjuna.ats.arjuna.common.Uid;
 import com.arjuna.ats.internal.arjuna.common.UidHelper;
+import org.jboss.jbossts.xts.recovery.XTSRecoveryModule;
 
 import java.util.Vector;
 import java.util.Enumeration;
@@ -46,12 +45,12 @@
  *
  */
 
-public class ATParticipantRecoveryModule implements RecoveryModule
+public class ATParticipantRecoveryModule implements XTSRecoveryModule
 {
     public ATParticipantRecoveryModule()
     {
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("ATParticipantRecoveryModule created - default");
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("ATParticipantRecoveryModule created - default");
         }
 
         if (_recoveryStore == null)
@@ -104,8 +103,8 @@
 
         try
         {
-            if (XTSLogger.logger.isDebugEnabled()) {
-                XTSLogger.logger.debug("ATParticipantRecoveryModule: first pass");
+            if (RecoveryLogger.logger.isDebugEnabled()) {
+                RecoveryLogger.logger.debug("ATParticipantRecoveryModule: first pass");
             }
 
             ATParticipants = _recoveryStore.allObjUids(_participantType, acc_uids );
@@ -113,7 +112,7 @@
         }
         catch ( ObjectStoreException ex )
         {
-            XTSLogger.i18NLogger.warn_participant_at_ATParticipantRecoveryModule_1(ex);
+            RecoveryLogger.i18NLogger.warn_participant_at_ATParticipantRecoveryModule_1(ex);
         }
 
         if ( ATParticipants )
@@ -124,8 +123,8 @@
 
     public void periodicWorkSecondPass()
     {
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("ATParticipantRecoveryModule: Second pass");
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("ATParticipantRecoveryModule: Second pass");
         }
 
         processParticipantsStatus() ;
@@ -135,8 +134,8 @@
     {
         // Retrieve the participant from its original process.
 
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("participant type is " + _participantType + " uid is " +
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("participant type is " + _participantType + " uid is " +
                     recoverUid.toString());
         }
 
@@ -168,26 +167,26 @@
                             // oh boy, not supposed to happen -- n.b. either the user deployed 1.0
                             // last time and 1.1 this time or vice versa or something is rotten in
                             // the state of Danmark
-                            XTSLogger.i18NLogger.error_participant_at_ATParticipantRecoveryModule_4(participantRecordClazzName, recoverUid, cnfe);
+                            RecoveryLogger.i18NLogger.error_participant_at_ATParticipantRecoveryModule_4(participantRecordClazzName, recoverUid, cnfe);
                         } catch (InstantiationException ie) {
                             // this is also worrying, log an error
-                            XTSLogger.i18NLogger.error_participant_at_ATParticipantRecoveryModule_5(participantRecordClazzName, recoverUid, ie);
+                            RecoveryLogger.i18NLogger.error_participant_at_ATParticipantRecoveryModule_5(participantRecordClazzName, recoverUid, ie);
                         } catch (IllegalAccessException iae) {
                             // this is another configuration problem, log an error
-                            XTSLogger.i18NLogger.error_participant_at_ATParticipantRecoveryModule_5(participantRecordClazzName, recoverUid, iae);
+                            RecoveryLogger.i18NLogger.error_participant_at_ATParticipantRecoveryModule_5(participantRecordClazzName, recoverUid, iae);
                         }
                     } catch (IOException ioe) {
                         // hmm, record corrupted? log this as a warning
-                        XTSLogger.i18NLogger.error_participant_at_ATParticipantRecoveryModule_6(recoverUid, ioe);
+                        RecoveryLogger.i18NLogger.error_participant_at_ATParticipantRecoveryModule_6(recoverUid, ioe);
                     }
                 } else {
                     // hmm, it ought not to be able to disappear unless the recovery manager knows about it
                     // this is an error!
-                    XTSLogger.i18NLogger.error_participant_at_ATParticipantRecoveryModule_7(recoverUid);
+                    RecoveryLogger.i18NLogger.error_participant_at_ATParticipantRecoveryModule_7(recoverUid);
                 }
             } catch (ObjectStoreException ose) {
                 // if the object store is not working this is serious
-                XTSLogger.i18NLogger.error_participant_at_ATParticipantRecoveryModule_8(recoverUid, ose);
+                RecoveryLogger.i18NLogger.error_participant_at_ATParticipantRecoveryModule_8(recoverUid, ose);
             }
         }
     }
@@ -196,8 +195,8 @@
     {
         Vector uidVector = new Vector() ;
 
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("processing " + _participantType
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("processing " + _participantType
                     + " WS-AT participants");
         }
 
@@ -220,8 +219,8 @@
                 break;
             }
 
-            if (XTSLogger.logger.isDebugEnabled()) {
-                XTSLogger.logger.debug("found WS-AT participant " + theUid);
+            if (RecoveryLogger.logger.isDebugEnabled()) {
+                RecoveryLogger.logger.debug("found WS-AT participant " + theUid);
             }
 
             uidVector.addElement( theUid ) ;
@@ -249,7 +248,7 @@
             }
             catch ( ObjectStoreException ex )
             {
-                XTSLogger.i18NLogger.warn_participant_at_ATParticipantRecoveryModule_3(currentUid, ex);
+                RecoveryLogger.i18NLogger.warn_participant_at_ATParticipantRecoveryModule_3(currentUid, ex);
             }
         }
         }

Modified: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/at/XTSATRecoveryManagerImple.java
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/at/XTSATRecoveryManagerImple.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/at/XTSATRecoveryManagerImple.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -1,7 +1,7 @@
 package org.jboss.jbossts.xts.recovery.participant.at;
 
 import com.arjuna.ats.arjuna.objectstore.TxLog;
-import org.jboss.jbossts.xts.logging.XTSLogger;
+import org.jboss.jbossts.xts.recovery.logging.RecoveryLogger;
 
 import com.arjuna.ats.arjuna.state.OutputObjectState;
 import com.arjuna.ats.arjuna.common.Uid;
@@ -74,7 +74,7 @@
         try {
             oos.packString(participantRecoveryRecord.getClass().getCanonicalName());
         } catch (IOException ioe) {
-            XTSLogger.i18NLogger.warn_participant_at_XTSATRecoveryModule_1(participantRecoveryRecord.getId(), ioe);
+            RecoveryLogger.i18NLogger.warn_participant_at_XTSATRecoveryModule_1(participantRecoveryRecord.getId(), ioe);
             return false;
         }
 
@@ -87,7 +87,7 @@
                 uidMap.put(participantRecoveryRecord.getId(), uid);
                 return true;
             } catch (ObjectStoreException ose) {
-                XTSLogger.i18NLogger.warn_participant_at_XTSATRecoveryModule_1(participantRecoveryRecord.getId(), ose);
+                RecoveryLogger.i18NLogger.warn_participant_at_XTSATRecoveryModule_1(participantRecoveryRecord.getId(), ose);
             }
         }
 
@@ -109,7 +109,7 @@
                 uidMap.remove(id);
                 return true;
             } catch (ObjectStoreException ose) {
-                XTSLogger.i18NLogger.warn_participant_at_XTSATRecoveryModule_2(uid, id, ose);
+                RecoveryLogger.i18NLogger.warn_participant_at_XTSATRecoveryModule_2(uid, id, ose);
             }
         }
 
@@ -220,14 +220,14 @@
                         // but leave the participant in the table for next time in case the helper has merely
                         // suffered a transient failure
                         found = true;
-                        XTSLogger.i18NLogger.warn_participant_at_XTSATRecoveryModule_3(participantRecoveryRecord.getId(), e);
+                        RecoveryLogger.i18NLogger.warn_participant_at_XTSATRecoveryModule_3(participantRecoveryRecord.getId(), e);
                     }
                 }
 
                 if (!found) {
                     // we failed to find a helper to convert a participant record so log a warning
                     // but leave it in the table for next time
-                    XTSLogger.i18NLogger.warn_participant_at_XTSATRecoveryModule_4(participantRecoveryRecord.getId());
+                    RecoveryLogger.i18NLogger.warn_participant_at_XTSATRecoveryModule_4(participantRecoveryRecord.getId());
                 }
             }
         }
@@ -252,7 +252,7 @@
         SubordinateATCoordinator[] coordinators = SubordinateATCoordinator.listRecoveredCoordinators();
         for (SubordinateATCoordinator coordinator : coordinators) {
             if (coordinator.getSubordinateType() == SubordinateATCoordinator.SUBORDINATE_TX_TYPE_AT_AT && coordinator.isOrphaned()) {
-                XTSLogger.i18NLogger.warn_participant_at_XTSATRecoveryModule_5(coordinator.get_uid());
+                RecoveryLogger.i18NLogger.warn_participant_at_XTSATRecoveryModule_5(coordinator.get_uid());
                 coordinator.rollback();
             }
         }

Modified: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/ba/BAParticipantRecoveryModule.java
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/ba/BAParticipantRecoveryModule.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/ba/BAParticipantRecoveryModule.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -23,14 +23,13 @@
 import com.arjuna.ats.arjuna.objectstore.RecoveryStore;
 import com.arjuna.ats.arjuna.objectstore.StateStatus;
 import com.arjuna.ats.arjuna.objectstore.StoreManager;
-import org.jboss.jbossts.xts.logging.XTSLogger;
+import org.jboss.jbossts.xts.recovery.logging.RecoveryLogger;
 
-import com.arjuna.ats.arjuna.recovery.RecoveryModule;
-import com.arjuna.ats.arjuna.coordinator.TxControl;
 import com.arjuna.ats.arjuna.state.InputObjectState;
 import com.arjuna.ats.arjuna.exceptions.ObjectStoreException;
 import com.arjuna.ats.arjuna.common.Uid;
 import com.arjuna.ats.internal.arjuna.common.UidHelper;
+import org.jboss.jbossts.xts.recovery.XTSRecoveryModule;
 
 import java.util.Vector;
 import java.util.Enumeration;
@@ -46,12 +45,12 @@
  *
  */
 
-public class BAParticipantRecoveryModule implements RecoveryModule
+public class BAParticipantRecoveryModule implements XTSRecoveryModule
 {
     public BAParticipantRecoveryModule()
     {
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("BAParticipantRecoveryModule created - default");
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("BAParticipantRecoveryModule created - default");
         }
 
         if (_recoveryStore == null)
@@ -104,8 +103,8 @@
 
         try
         {
-            if (XTSLogger.logger.isDebugEnabled()) {
-                XTSLogger.logger.debug("BAParticipantRecoveryModule: first pass");
+            if (RecoveryLogger.logger.isDebugEnabled()) {
+                RecoveryLogger.logger.debug("BAParticipantRecoveryModule: first pass");
             }
 
             BAParticipants = _recoveryStore.allObjUids(_participantType, acc_uids );
@@ -113,7 +112,7 @@
         }
         catch ( ObjectStoreException ex )
         {
-            XTSLogger.i18NLogger.warn_participant_ba_BAParticipantRecoveryModule_1(ex);
+            RecoveryLogger.i18NLogger.warn_participant_ba_BAParticipantRecoveryModule_1(ex);
         }
 
         if ( BAParticipants )
@@ -124,8 +123,8 @@
 
     public void periodicWorkSecondPass()
     {
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("BAParticipantRecoveryModule: Second pass");
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("BAParticipantRecoveryModule: Second pass");
         }
 
         processParticipantsStatus() ;
@@ -135,8 +134,8 @@
     {
         // Retrieve the participant from its original process.
 
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("participant type is " + _participantType + " uid is " +
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("participant type is " + _participantType + " uid is " +
                     recoverUid.toString());
         }
 
@@ -168,26 +167,26 @@
                             // oh boy, not supposed to happen -- n.b. either the user deployed 1.0
                             // last time and 1.1 this time or vice versa or something is rotten in
                             // the state of Danmark
-                            XTSLogger.i18NLogger.error_participant_ba_BAParticipantRecoveryModule_4(participantRecordClazzName, recoverUid, cnfe);
+                            RecoveryLogger.i18NLogger.error_participant_ba_BAParticipantRecoveryModule_4(participantRecordClazzName, recoverUid, cnfe);
                         } catch (InstantiationException ie) {
                             // this is also worrying, log an error
-                            XTSLogger.i18NLogger.error_participant_ba_BAParticipantRecoveryModule_5(participantRecordClazzName, recoverUid, ie);
+                            RecoveryLogger.i18NLogger.error_participant_ba_BAParticipantRecoveryModule_5(participantRecordClazzName, recoverUid, ie);
                         } catch (IllegalAccessException iae) {
                             // this is another configuration problem, log an error
-                            XTSLogger.i18NLogger.error_participant_ba_BAParticipantRecoveryModule_5(participantRecordClazzName, recoverUid, iae);
+                            RecoveryLogger.i18NLogger.error_participant_ba_BAParticipantRecoveryModule_5(participantRecordClazzName, recoverUid, iae);
                         }
                     } catch (IOException ioe) {
                         // hmm, record corrupted? log this as a warning
-                        XTSLogger.i18NLogger.warn_participant_ba_BAParticipantRecoveryModule_6(recoverUid, ioe);
+                        RecoveryLogger.i18NLogger.warn_participant_ba_BAParticipantRecoveryModule_6(recoverUid, ioe);
                     }
                 } else {
                     // hmm, it ought not to be able to disappear unless the recovery manager knows about it
                     // this is an error!
-                    XTSLogger.i18NLogger.error_participant_ba_BAParticipantRecoveryModule_7(recoverUid);
+                    RecoveryLogger.i18NLogger.error_participant_ba_BAParticipantRecoveryModule_7(recoverUid);
                 }
             } catch (ObjectStoreException ose) {
                 // if the object store is not working this is serious
-                XTSLogger.i18NLogger.error_participant_ba_BAParticipantRecoveryModule_8(recoverUid, ose);
+                RecoveryLogger.i18NLogger.error_participant_ba_BAParticipantRecoveryModule_8(recoverUid, ose);
             }
         }
     }
@@ -196,8 +195,8 @@
     {
         Vector uidVector = new Vector() ;
 
-        if (XTSLogger.logger.isDebugEnabled()) {
-            XTSLogger.logger.debug("processing " + _participantType
+        if (RecoveryLogger.logger.isDebugEnabled()) {
+            RecoveryLogger.logger.debug("processing " + _participantType
                     + " WS-BA participants");
         }
 
@@ -220,8 +219,8 @@
                 break;
             }
 
-            if (XTSLogger.logger.isDebugEnabled()) {
-                XTSLogger.logger.debug("found WS-BA participant " + theUid);
+            if (RecoveryLogger.logger.isDebugEnabled()) {
+                RecoveryLogger.logger.debug("found WS-BA participant " + theUid);
             }
 
             uidVector.addElement( theUid ) ;
@@ -249,7 +248,7 @@
             }
             catch ( ObjectStoreException ex )
             {
-                XTSLogger.i18NLogger.warn_participant_ba_BAParticipantRecoveryModule_3(currentUid, ex);
+                RecoveryLogger.i18NLogger.warn_participant_ba_BAParticipantRecoveryModule_3(currentUid, ex);
             }
         }
         }

Modified: labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/ba/XTSBARecoveryManagerImple.java
===================================================================
--- labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/ba/XTSBARecoveryManagerImple.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/recovery/src/org/jboss/jbossts/xts/recovery/participant/ba/XTSBARecoveryManagerImple.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -1,7 +1,7 @@
 package org.jboss.jbossts.xts.recovery.participant.ba;
 
 import com.arjuna.ats.arjuna.objectstore.TxLog;
-import org.jboss.jbossts.xts.logging.XTSLogger;
+import org.jboss.jbossts.xts.recovery.logging.RecoveryLogger;
 
 import com.arjuna.ats.arjuna.state.OutputObjectState;
 import com.arjuna.ats.arjuna.common.Uid;
@@ -70,7 +70,7 @@
         try {
             oos.packString(participantRecoveryRecord.getClass().getCanonicalName());
         } catch (IOException ioe) {
-            XTSLogger.i18NLogger.warn_participant_ba_XTSBARecoveryModule_1(participantRecoveryRecord.getId(), ioe);
+            RecoveryLogger.i18NLogger.warn_participant_ba_XTSBARecoveryModule_1(participantRecoveryRecord.getId(), ioe);
             return false;
         }
 
@@ -83,7 +83,7 @@
                 uidMap.put(participantRecoveryRecord.getId(), uid);
                 return true;
             } catch (ObjectStoreException ose) {
-                XTSLogger.i18NLogger.warn_participant_ba_XTSBARecoveryModule_1(participantRecoveryRecord.getId(), ose);
+                RecoveryLogger.i18NLogger.warn_participant_ba_XTSBARecoveryModule_1(participantRecoveryRecord.getId(), ose);
             }
         }
 
@@ -105,7 +105,7 @@
                 uidMap.remove(id);
                 return true;
             } catch (ObjectStoreException ose) {
-                XTSLogger.i18NLogger.warn_participant_ba_XTSBARecoveryModule_2(uid, id, ose);
+                RecoveryLogger.i18NLogger.warn_participant_ba_XTSBARecoveryModule_2(uid, id, ose);
             }
         }
 
@@ -216,14 +216,14 @@
                         // but leave the participant in the table for next time in case the helper has merely
                         // suffered a transient failure
                         found = true;
-                        XTSLogger.i18NLogger.warn_participant_ba_XTSBARecoveryModule_3(participantRecoveryRecord.getId(), e);
+                        RecoveryLogger.i18NLogger.warn_participant_ba_XTSBARecoveryModule_3(participantRecoveryRecord.getId(), e);
                     }
                 }
 
                 if (!found) {
                     // we failed to find a helper to convert a participant record so log a warning
                     // but leave it in the table for next time
-                    XTSLogger.i18NLogger.warn_participant_ba_XTSBARecoveryModule_4(participantRecoveryRecord.getId());
+                    RecoveryLogger.i18NLogger.warn_participant_ba_XTSBARecoveryModule_4(participantRecoveryRecord.getId());
                 }
             }
         }
@@ -248,7 +248,7 @@
         SubordinateBACoordinator[] coordinators = SubordinateBACoordinator.listRecoveredCoordinators();
         for (SubordinateBACoordinator coordinator : coordinators) {
             if (coordinator.isOrphaned()) {
-                XTSLogger.i18NLogger.warn_participant_ba_XTSBARecoveryModule_5(coordinator.get_uid());
+                RecoveryLogger.i18NLogger.warn_participant_ba_XTSBARecoveryModule_5(coordinator.get_uid());
                 coordinator.cancel();
             }
         }

Modified: labs/jbosstm/trunk/XTS/sar/META-INF/xts-jboss-beans.xml
===================================================================
--- labs/jbosstm/trunk/XTS/sar/META-INF/xts-jboss-beans.xml	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/sar/META-INF/xts-jboss-beans.xml	2010-08-23 12:42:03 UTC (rev 34828)
@@ -16,7 +16,7 @@
         the client. If left unset the client uses the bind address and http port values to construct a
         URL addressing a locally deployed coordinator service.
      -->
-    <bean name="WSCEnvironmentBean" class="org.jboss.jbossts.xts.environment.WSCEnvironmentBean">
+    <bean name="XTS:WSCEnvironmentBean" class="org.jboss.jbossts.xts.environment.WSCEnvironmentBean">
         <constructor factoryClass="org.jboss.jbossts.xts.environment.XTSPropertyManager"
             factoryMethod="getWSCEnvironmentBean"/>
         <!-- we need the bind address and port from jboss web -->
@@ -185,7 +185,7 @@
         to be loaded into any container which is running a coordinator. They can be omitted from
         containers which only run clients or transactional web services.
     -->
-    <bean name="WSCFEnvironmentBean" class="org.jboss.jbossts.xts.environment.WSCFEnvironmentBean">
+    <bean name="XTS:WSCFEnvironmentBean" class="org.jboss.jbossts.xts.environment.WSCFEnvironmentBean">
         <constructor factoryClass="org.jboss.jbossts.xts.environment.XTSPropertyManager"
             factoryMethod="getWSCFEnvironmentBean"/>
         <depends>jboss:service=TransactionManager</depends>
@@ -212,7 +212,7 @@
         WSAT and WSBA client and web service APIs. They need only be specified in a container which will
         be running XTS clients or web services.
     -->
-    <bean name="WSTEnvironmentBean" class="org.jboss.jbossts.xts.environment.WSTEnvironmentBean">
+    <bean name="XTS:WSTEnvironmentBean" class="org.jboss.jbossts.xts.environment.WSTEnvironmentBean">
         <constructor factoryClass="org.jboss.jbossts.xts.environment.XTSPropertyManager"
             factoryMethod="getWSTEnvironmentBean"/>
         <depends>jboss:service=TransactionManager</depends>
@@ -253,15 +253,73 @@
         </property>
     </bean>
 
+    <bean name="XTS:RecoveryEnvironmentBean" class="org.jboss.jbossts.xts.environment.RecoveryEnvironmentBean">
+        <constructor factoryClass="org.jboss.jbossts.xts.environment.XTSPropertyManager"
+            factoryMethod="getRecoveryEnvironmentBean"/>
+        <depends>jboss:service=TransactionManager</depends>
+        <!--  the recoveryModules properties contains a list of XTS Recovery Module classes. these modules are
+            used to implement recovery on the coordinator and participant side. they should not be confused
+            with the application specific recovery modules registered by web service participants. The latter
+            are called when the AT and BA participant modules in the list below get run.
+
+            If you are only deploying participant services you can omit the coordinator modules. If you
+            are only deploying coordinator services you can omit the participant modules. If you are only
+            deploying a client app you can omit these entries altogether.
+
+            Note that the 1.0 and 1.1 implementations are recovered by the same modules
+        -->
+        <property name="coordinatorRecoveryModules">
+            <list elementClass="java.lang.String">
+                <value>org.jboss.jbossts.xts.recovery.coordinator.at.ATCoordinatorRecoveryModule</value>
+                <value>org.jboss.jbossts.xts.recovery.coordinator.at.SubordinateATCoordinatorRecoveryModule</value>
+                <value>org.jboss.jbossts.xts.recovery.coordinator.ba.BACoordinatorRecoveryModule</value>
+                <value>org.jboss.jbossts.xts.recovery.coordinator.ba.SubordinateBACoordinatorRecoveryModule</value>
+            </list>
+        </property>
+        <property name="participantRecoveryModules">
+            <list elementClass="java.lang.String">
+                <value>org.jboss.jbossts.xts.recovery.participant.at.ATParticipantRecoveryModule</value>
+                <value>org.jboss.jbossts.xts.recovery.participant.ba.BAParticipantRecoveryModule</value>
+            </list>
+        </property>
+    </bean>
+
+    <!-- The bean which configures execution of client, participant and coordinator startup routines -->
+    <bean name="XTS:XTSEnvironmentBean" class="org.jboss.jbossts.xts.environment.XTSEnvironmentBean">
+        <constructor factoryClass="org.jboss.jbossts.xts.environment.XTSPropertyManager"
+            factoryMethod="getXTSEnvironmentBean"/>
+        <depends>jboss:service=TransactionManager</depends>
+        <!-- This is a list of initialisation classes implementing the XTS lifecycle interface XTSInitialisation.
+            The classes are instantiated in order during XTS startup and their startup method is then called.
+            At XTS shutdown the corresponding shutdown methods are called in reverse order. The first 3 entries
+            in this list perform all the required initialisation of the 1.1 coordinator side, participant side and
+            client side services since, by default, XTS is deployed with all 3 of these components included.
+            If you only wish to deploy a specific subset of these services you may want to remove some of these entries.
+
+            The last entry runs all the initialisation required for teh XTS 1.0 coordinator, participant and client
+            services. You should never need to change this entry since it is not possible to deploy a subset
+            of the 1.0 services.
+         -->
+        <property name="xtsInitialisations">
+            <list elementClass="java.lang.String">
+                <value>org.jboss.jbossts.xts.initialisation.CoordinatorSideInitialisation</value>
+                <value>org.jboss.jbossts.xts.initialisation.ParticipantSideInitialisation</value>
+                <value>org.jboss.jbossts.xts.initialisation.ClientSideInitialisation</value>
+                <value>org.jboss.jbossts.xts.initialisation.XTS10Initialisation</value>
+            </list>
+        </property>
+    </bean>
+
     <!-- The XTS service itself  -->
 
     <bean name="XTSService" class="org.jboss.jbossts.XTSService">
         <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.xts:service=XTSService", exposedInterface=com.arjuna.ats.jbossatx.jta.TransactionManagerServiceMBean.class, registerDirectly=true)</annotation>
 
-       <depends>WSCFEnvironmentBean</depends>
-       <depends>WSCEnvironmentBean</depends>
-       <depends>WSTEnvironmentBean</depends>
-       <property name="mbeanServer"><inject bean="JMXKernel" property="mbeanServer"/></property>
+       <depends>XTS:WSCFEnvironmentBean</depends>
+       <depends>XTS:WSCEnvironmentBean</depends>
+       <depends>XTS:WSTEnvironmentBean</depends>
+       <depends>XTS:RecoveryEnvironmentBean</depends>
+       <depends>XTS:XTSEnvironmentBean</depends>
    </bean>
 
 </deployment>
\ No newline at end of file

Modified: labs/jbosstm/trunk/XTS/sar/META-INF/xts11-jboss-beans.xml
===================================================================
--- labs/jbosstm/trunk/XTS/sar/META-INF/xts11-jboss-beans.xml	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/sar/META-INF/xts11-jboss-beans.xml	2010-08-23 12:42:03 UTC (rev 34828)
@@ -14,7 +14,7 @@
         the client. If left unset the client uses the bind address and http port values to construct a
         URL addressing a locally deployed coordinator service.
      -->
-    <bean name="WSCEnvironmentBean" class="org.jboss.jbossts.xts.environment.WSCEnvironmentBean">
+    <bean name="XTS:WSCEnvironmentBean" class="org.jboss.jbossts.xts.environment.WSCEnvironmentBean">
         <constructor factoryClass="org.jboss.jbossts.xts.environment.XTSPropertyManager"
             factoryMethod="getWSCEnvironmentBean"/>
         <!-- we need the bind address and port from jboss web -->
@@ -147,7 +147,7 @@
         to be loaded into any container which is running a coordinator. They can be omitted from
         containers which only run clients or transactional web services.
     -->
-    <bean name="WSCFEnvironmentBean" class="org.jboss.jbossts.xts.environment.WSCFEnvironmentBean">
+    <bean name="XTS:WSCFEnvironmentBean" class="org.jboss.jbossts.xts.environment.WSCFEnvironmentBean">
         <constructor factoryClass="org.jboss.jbossts.xts.environment.XTSPropertyManager"
             factoryMethod="getWSCFEnvironmentBean"/>
         <depends>jboss:service=TransactionManager</depends>
@@ -169,7 +169,7 @@
         WSAT and WSBA client and web service APIs. They need only be specified in a container which will
         be running XTS clients or web services.
     -->
-    <bean name="WSTEnvironmentBean" class="org.jboss.jbossts.xts.environment.WSTEnvironmentBean">
+    <bean name="XTS:WSTEnvironmentBean" class="org.jboss.jbossts.xts.environment.WSTEnvironmentBean">
         <constructor factoryClass="org.jboss.jbossts.xts.environment.XTSPropertyManager"
             factoryMethod="getWSTEnvironmentBean"/>
         <depends>jboss:service=TransactionManager</depends>
@@ -191,15 +191,68 @@
         </property>
     </bean>
 
+    <bean name="XTS:RecoveryEnvironmentBean" class="org.jboss.jbossts.xts.environment.RecoveryEnvironmentBean">
+        <constructor factoryClass="org.jboss.jbossts.xts.environment.XTSPropertyManager"
+            factoryMethod="getRecoveryEnvironmentBean"/>
+        <depends>jboss:service=TransactionManager</depends>
+        <!--  the recoveryModules properties contains a list of XTS Recovery Module classes. these modules are
+            used to implement recovery on the coordinator and participant side. they should not be confused
+            with the application specific recovery modules registered by web service participants. The latter
+            are called when the AT and BA participant modules in the list below get run.
+
+            If you are only deploying participant services you can omit the coordinator modules. If you
+            are only deploying coordinator services you can omit the participant modules. If you are only
+            deploying a client app you can omit these entries altogether.
+
+            Note that the 1.0 and 1.1 implementations are recovered by the same modules
+        -->
+        <property name="coordinatorRecoveryModules">
+            <list elementClass="java.lang.String">
+                <value>org.jboss.jbossts.xts.recovery.coordinator.at.ATCoordinatorRecoveryModule</value>
+                <value>org.jboss.jbossts.xts.recovery.coordinator.at.SubordinateATCoordinatorRecoveryModule</value>
+                <value>org.jboss.jbossts.xts.recovery.coordinator.ba.BACoordinatorRecoveryModule</value>
+                <value>org.jboss.jbossts.xts.recovery.coordinator.ba.SubordinateBACoordinatorRecoveryModule</value>
+            </list>
+        </property>
+        <property name="participantRecoveryModules">
+            <list elementClass="java.lang.String">
+                <value>org.jboss.jbossts.xts.recovery.participant.at.ATParticipantRecoveryModule</value>
+                <value>org.jboss.jbossts.xts.recovery.participant.ba.BAParticipantRecoveryModule</value>
+            </list>
+        </property>
+    </bean>
+
+    <!-- The bean which configures execution of client, participant and coordinator startup routines -->
+    <bean name="XTS:XTSEnvironmentBean" class="org.jboss.jbossts.xts.environment.XTSEnvironmentBean">
+        <constructor factoryClass="org.jboss.jbossts.xts.environment.XTSPropertyManager"
+            factoryMethod="getXTSEnvironmentBean"/>
+        <depends>jboss:service=TransactionManager</depends>
+        <!-- This is a list of initialisation classes implementing the XTS lifecycle interface XTSInitialisation.
+            The classes are instantiated in order during XTS startup and their startup method is then called.
+            At XTS shutdown the corresponding shutdown methods are called in reverse order. The standard 3 entries
+            in this list perform all the required initialisation of the 1.1 coordinator side, participant side and
+            client side services since, by default, XTS is deployed with all 3 of these components included.
+            If you only wish to deploy a specific subset of these services you may want to remove some of these entries.
+         -->
+        <property name="xtsInitialisations">
+            <list elementClass="java.lang.String">
+                <value>org.jboss.jbossts.xts.initialisation.CoordinatorSideInitialisation</value>
+                <value>org.jboss.jbossts.xts.initialisation.ParticipantSideInitialisation</value>
+                <value>org.jboss.jbossts.xts.initialisation.ClientSideInitialisation</value>
+            </list>
+        </property>
+    </bean>
+
     <!-- The XTS service itself  -->
 
     <bean name="XTSService" class="org.jboss.jbossts.XTSService">
         <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.xts:service=XTSService", exposedInterface=com.arjuna.ats.jbossatx.jta.TransactionManagerServiceMBean.class, registerDirectly=true)</annotation>
 
-       <depends>WSCFEnvironmentBean</depends>
-       <depends>WSCEnvironmentBean</depends>
-       <depends>WSTEnvironmentBean</depends>
-       <property name="mbeanServer"><inject bean="JMXKernel" property="mbeanServer"/></property>
+       <depends>XTS:WSCFEnvironmentBean</depends>
+       <depends>XTS:WSCEnvironmentBean</depends>
+       <depends>XTS:WSTEnvironmentBean</depends>
+       <depends>XTS:RecoveryEnvironmentBean</depends>
+       <depends>XTS:XTSEnvironmentBean</depends>
    </bean>
 
 </deployment>
\ No newline at end of file

Modified: labs/jbosstm/trunk/XTS/sar/build.xml
===================================================================
--- labs/jbosstm/trunk/XTS/sar/build.xml	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/sar/build.xml	2010-08-23 12:42:03 UTC (rev 34828)
@@ -105,8 +105,12 @@
 
     <!-- TODO are the xts engine and its WS stack conceptually separate deployments? at what level do they integrate? spi or jax-ws?-->
 
-    <!-- compile the generic classes in the sar source -->
-    <target name="compile" depends="init">
+    <!-- compile the sar source -->
+    <target name="compile" depends="init, compile-both, compile-11"/>
+
+
+    <!-- compile 1.1 and 1.0 classes in the sar source -->
+    <target name="compile-both" if="build10">
         <compile.macro>
             <additional.classpath>
                 <fileset dir="${lib.dir}" includes="*.jar"/>
@@ -114,6 +118,17 @@
         </compile.macro>
     </target>
 
+
+    <!-- compile just 1.1 classes in the sar source -->
+    <target name="compile-11" if="nobuild10">
+        <compile.macro excluded.classes="**/org/jboss/jbossts/xts/initialisation/XTS10Initialisation.java">
+            <additional.classpath>
+                <fileset dir="${lib.dir}" includes="*.jar"/>
+            </additional.classpath>
+        </compile.macro>
+    </target>
+
+
     <!-- build the full api jar -->
     <target name="api-both-jar" if="build10">
         <mkdir dir="${build.dir}/tmp/api"/>

Modified: labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/XTSService.java
===================================================================
--- labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/XTSService.java	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/XTSService.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -20,272 +20,89 @@
  */
 package org.jboss.jbossts;
 
-import com.arjuna.common.internal.util.propertyservice.BeanPopulator;
-import com.arjuna.common.util.propertyservice.PropertiesFactory;
-import org.jboss.jbossts.xts.environment.WSCFEnvironmentBean;
-import com.arjuna.mw.wscf.protocols.ProtocolRegistry;
-import org.jboss.jbossts.xts.environment.WSTEnvironmentBean;
-import org.jboss.jbossts.xts.environment.WSCEnvironmentBean;
-import org.jboss.logging.Logger;
-import org.jboss.jbossts.xts.recovery.coordinator.at.ATCoordinatorRecoveryModule;
-import org.jboss.jbossts.xts.recovery.coordinator.at.SubordinateATCoordinatorRecoveryModule;
-import org.jboss.jbossts.xts.recovery.coordinator.ba.BACoordinatorRecoveryModule;
-import org.jboss.jbossts.xts.recovery.coordinator.ba.SubordinateBACoordinatorRecoveryModule;
-import org.jboss.jbossts.xts.recovery.participant.at.ATParticipantRecoveryModule;
-import org.jboss.jbossts.xts.recovery.participant.ba.BAParticipantRecoveryModule;
-
-//import com.arjuna.mw.wst.deploy.WSTXInitialisation;
-//import com.arjuna.mw.wst.UserTransaction;
-//import com.arjuna.mw.wst.TransactionManager;
-//import com.arjuna.mw.wst.UserBusinessActivity;
-//import com.arjuna.mw.wst.BusinessActivityManager;
-//import com.arjuna.wsc.ContextFactoryMapper;
-//import com.arjuna.wsc.messaging.ActivationCoordinatorProcessorImpl;
-//import com.arjuna.wsc.messaging.RegistrationCoordinatorProcessorImpl;
-//import com.arjuna.mwlabs.wsc.ContextFactoryMapperImple;
+import org.jboss.jbossts.xts.environment.XTSEnvironmentBean;
+import org.jboss.jbossts.xts.environment.XTSPropertyManager;
+import org.jboss.jbossts.xts.initialisation.XTSInitialisation;
+import org.jboss.jbossts.xts.logging.XTSLogger;
+import org.jboss.jbossts.xts.recovery.coordinator.CoordinatorRecoveryInitialisation;
 import com.arjuna.services.framework.task.TaskManager;
-import com.arjuna.services.framework.startup.Sequencer;
-//import com.arjuna.webservices.HandlerRegistry;
-//import com.arjuna.webservices.SoapRegistry;
-//import com.arjuna.webservices.SoapService;
-//import com.arjuna.webservices.SoapClient;
-//import com.arjuna.webservices.util.ClassLoaderHelper;
-//import com.arjuna.webservices.wsba.policy.CoordinatorCompletionCoordinatorPolicy;
-//import com.arjuna.webservices.wsba.policy.CoordinatorCompletionParticipantPolicy;
-//import com.arjuna.webservices.wsba.policy.ParticipantCompletionCoordinatorPolicy;
-//import com.arjuna.webservices.wsba.policy.ParticipantCompletionParticipantPolicy;
-//import com.arjuna.webservices.wsba.BusinessActivityConstants;
-//import com.arjuna.webservices.wsba.processors.CoordinatorCompletionParticipantProcessor;
-//import com.arjuna.webservices.wsba.processors.ParticipantCompletionParticipantProcessor;
-//import com.arjuna.webservices.wsba.processors.CoordinatorCompletionCoordinatorProcessor;
-//import com.arjuna.webservices.wsba.processors.ParticipantCompletionCoordinatorProcessor;
-//import com.arjuna.webservices.wsat.policy.CompletionCoordinatorPolicy;
-//import com.arjuna.webservices.wsat.policy.CompletionInitiatorPolicy;
-//import com.arjuna.webservices.wsat.policy.CoordinatorPolicy;
-//import com.arjuna.webservices.wsat.policy.ParticipantPolicy;
-//import com.arjuna.webservices.wsat.AtomicTransactionConstants;
-//import com.arjuna.webservices.wsat.processors.CompletionCoordinatorProcessor;
-//import com.arjuna.webservices.wsat.processors.ParticipantProcessor;
-//import com.arjuna.webservices.wsat.processors.CoordinatorProcessor;
-//import com.arjuna.webservices.wsarjtx.policy.TerminationParticipantPolicy;
-//import com.arjuna.webservices.wsarjtx.policy.TerminationCoordinatorPolicy;
-//import com.arjuna.webservices.wsarjtx.ArjunaTXConstants;
-//import com.arjuna.webservices.wsarjtx.processors.TerminationCoordinatorProcessor;
-//import com.arjuna.webservices.transport.http.HttpClient;
-//import com.arjuna.webservices.wsarj.policy.ArjunaPolicy;
-//import com.arjuna.webservices.wscoor.policy.ActivationCoordinatorPolicy;
-//import com.arjuna.webservices.wscoor.policy.ActivationRequesterPolicy;
-//import com.arjuna.webservices.wscoor.policy.RegistrationCoordinatorPolicy;
-//import com.arjuna.webservices.wscoor.policy.RegistrationRequesterPolicy;
-//import com.arjuna.webservices.wscoor.CoordinationConstants;
-//import com.arjuna.webservices.wscoor.processors.ActivationCoordinatorProcessor;
-//import com.arjuna.webservices.wscoor.processors.RegistrationCoordinatorProcessor;
-//import com.arjuna.webservices.wsaddr.policy.AddressingPolicy;
-//import com.arjuna.wst.messaging.*;
-import com.arjuna.ats.arjuna.recovery.RecoveryManager;
-import com.arjuna.webservices.util.TransportTimer;
 import com.arjuna.mwlabs.wsas.activity.ActivityReaper;
 
-import javax.management.MBeanServer;
-import java.net.InetAddress;
-import java.util.Properties;
-//import com.arjuna.ats.arjuna.recovery.RecoveryModule;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
 
 /**
  * $Id$
  */
 public class XTSService implements XTSServiceMBean {
 
-/*
-<?xml version="1.0" encoding="UTF-8"?>
-<deployment xmlns="urn:jboss:bean-deployer:2.0">
-
-    <bean name="XTSService" class="org.jboss.transactions.XTSService">
-        <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.xts:service=XTSService", exposedInterface=org.jboss.transactions.XTSServiceMBean.class, registerDirectly=true)</annotation>
-
-       <depends>jboss.web:service=WebServer</depends>
-       <depends>jboss:service=TransactionManager</depends>
-   </bean>
-
-</deployment>
-
- */
-
     // TODO expose as bean properties
     private int taskManagerMinWorkerCount = 0;
     private int taskManagerMaxWorkerCount = 10;
 
-    private final Logger log = org.jboss.logging.Logger.getLogger(XTSService.class);
-
-    private ATCoordinatorRecoveryModule acCoordinatorRecoveryModule = null;
-    private SubordinateATCoordinatorRecoveryModule atSubordinateCoordinatorRecoveryModule = null;
-    private ATParticipantRecoveryModule atParticipantRecoveryModule = null;
-
-    private BACoordinatorRecoveryModule baCoordinatorRecoveryModule = null;
-    private SubordinateBACoordinatorRecoveryModule baSubordinateCoordinatorRecoveryModule = null;
-    private BAParticipantRecoveryModule baParticipantRecoveryModule = null;
-
-    // TODO: how to use a (per application) remote coordinator?
-    // does the http servlet param indicate its own location and the
-    // coordinatorURL indicate the coord??
-
-    // ./HashedActionStore/defaultStore/StateManager/BasicAction/AtomicAction/TwoPhaseCoordinator/TwoPhase/ACCoordinator/
-
-//    	    <property
-//	    name="com.arjuna.ats.arjuna.recovery.recoveryExtension1"
-//	    value="com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"/>
-    // recovers /StateManager/BasicAction/TwoPhaseCoordinator/AtomicAction
-    // not what we need.
-
-    // TODO: new recovery mod, inheriting from existing base version e.g. AtomicActionRecoveryModule - change typex
-
     public XTSService() {}
 
     public void start() throws Exception
     {
-        log.info("JBossTS XTS Transaction Service - starting");
+        XTSLogger.logger.info("JBossTS XTS Transaction Service - starting");
 
-        // now it is safe to let the Sequencer class run any initialisation routines it needs
+        //  execute startup for all registered initialisations
 
-        Sequencer.unlatch();
+        XTSEnvironmentBean xtsEnvironmentBean = XTSPropertyManager.getXTSEnvironmentBean();
+        Iterator<String> iterator = xtsEnvironmentBean.getXtsInitialisations().iterator();
 
-        TaskManagerInitialisation(); // com.arjuna.services.framework.admin.TaskManagerInitialisation : initialise the Task Manager
+        while (iterator.hasNext()) {
+            String className = iterator.next();
 
+            Class<?> clazz = null;
 
-        // install the AT recovery modules
-        
-        // ok, now the main module
+            try {
+                clazz = CoordinatorRecoveryInitialisation.class.getClassLoader().loadClass(className);
+            } catch (ClassNotFoundException cnfe) {
+                XTSLogger.i18NLogger.error_XTSService_1(className, cnfe);
+                continue;
+            }
 
-        acCoordinatorRecoveryModule = new ATCoordinatorRecoveryModule();
+            if (!XTSInitialisation.class.isAssignableFrom(clazz)) {
+                XTSLogger.i18NLogger.error_XTSService_2(className);
+                continue;
+            }
 
-        // ensure Implementations are installed into the inventory before we register the module
+            try {
+                XTSInitialisation initialisation = (XTSInitialisation)clazz.newInstance();
+                initialisation.startup();
+                xtsInitialisations.add(initialisation);
+            } catch (InstantiationException ie) {
+                XTSLogger.i18NLogger.error_XTSService_3(className, ie);
+            } catch (IllegalAccessException iae) {
+                XTSLogger.i18NLogger.error_XTSService_4(className, iae);
+            }
+        }
 
-        acCoordinatorRecoveryModule.install();
-
-        // now the recovery module for subordinate AT transactions
-
-        atSubordinateCoordinatorRecoveryModule = new SubordinateATCoordinatorRecoveryModule();
-
-        // we don't need to install anything in the Inventory for this recovery module as it
-        // uses the same records as those employed by ACCoordinatorRecoveryModule
-
-        atSubordinateCoordinatorRecoveryModule.install();
-
-        // now the module for AT participants
-        // we don't need to install anything in the Inventory for this recovery module as it
-        // manages its own ObjectStore records but we do need it to create the recovery manager
-        // singleton.
-
-        atParticipantRecoveryModule = new ATParticipantRecoveryModule();
-
-        atParticipantRecoveryModule.install();
-
-        // ok, now the recovery mocules for the BA coordinator and participant
-
-        baCoordinatorRecoveryModule = new BACoordinatorRecoveryModule();
-
-        // ensure Implementations are installed into the inventory before we register the module
-
-        baCoordinatorRecoveryModule.install();
-
-        // now the recovery module for subordinate BA transactions
-
-        baSubordinateCoordinatorRecoveryModule = new SubordinateBACoordinatorRecoveryModule();
-
-        // we don't need to install anything in the Inventory for this recovery module as it
-        // uses the same records as those employed by ACCoordinatorRecoveryModule
-
-        baSubordinateCoordinatorRecoveryModule.install();
-
-        // now the module for BA participants
-        // we don't need to install anything in the Inventory for this recovery module as it
-        // manages its own ObjectStore records but we do need it to create the recovery manager
-        // singleton.
-
-        baParticipantRecoveryModule = new BAParticipantRecoveryModule();
-
-        baParticipantRecoveryModule.install();
-
-        // we assume the tx manager has started, hence initializing the recovery manager.
-        // to guarantee this our mbean should depend on the tx mgr mbean. (but does that g/tee start or just load?)
-
-        //  recovery should perform better if we register partiicpants first since this allows the XTS client
-        // recovery module to have a try at recreating the participant before its coordinator attempts to
-        // talk to it when they are both in the same VM. it also means the participant nay attempt bottom-up
-        // recovery before the coordinator is ready but coordinator recovery is probably going to happen quicker.
-
-        // similarly, it is better to recreate subordinate coordinators before recreating ordinary coordinators
-        // because the latter may need the former to be present when the parent and subordinate are both in the
-        // same VM.
-
-        // note also that the current implementation relies upon this registration order since the main
-        // coordinator recovery modules flag completion of the first coordinator recovery pass and this
-        // should only happen once both modules have had a crack at the log
-
-        RecoveryManager.manager().addModule(atParticipantRecoveryModule);
-        RecoveryManager.manager().addModule(baParticipantRecoveryModule);
-
-        RecoveryManager.manager().addModule(atSubordinateCoordinatorRecoveryModule);
-        RecoveryManager.manager().addModule(baSubordinateCoordinatorRecoveryModule);
-
-        RecoveryManager.manager().addModule(acCoordinatorRecoveryModule);
-        RecoveryManager.manager().addModule(baCoordinatorRecoveryModule);
+        TaskManagerInitialisation();
     }
 
     public void stop() throws Exception
     {
-        log.info("JBossTS XTS Transaction Service - stopping");
+        XTSLogger.logger.info("JBossTS XTS Transaction Service - stopping");
 
-        if (baCoordinatorRecoveryModule != null) {
-            // remove the module, making sure any scan which might be using it has completed
-            RecoveryManager.manager().removeModule(baCoordinatorRecoveryModule, true);
-            // ok, now it is safe to get the recovery manager to uninstall its Implementations from the inventory
-            baCoordinatorRecoveryModule.uninstall();
-        }
-        if (acCoordinatorRecoveryModule != null) {
-            // remove the module, making sure any scan which might be using it has completed
-            RecoveryManager.manager().removeModule(acCoordinatorRecoveryModule, true);
-            // ok, now it is safe to get the recovery manager to uninstall its Implementations from the inventory
-            acCoordinatorRecoveryModule.uninstall();
-        }
-        if (atSubordinateCoordinatorRecoveryModule != null) {
-            // remove the module, making sure any scan which might be using it has completed
-            RecoveryManager.manager().removeModule(atSubordinateCoordinatorRecoveryModule, true);
-            // ok, now it is safe to get the recovery manager to uninstall its Implementations from the inventory
-            atSubordinateCoordinatorRecoveryModule.uninstall();
-        }
-        if (baSubordinateCoordinatorRecoveryModule != null) {
-            // remove the module, making sure any scan which might be using it has completed
-            RecoveryManager.manager().removeModule(baSubordinateCoordinatorRecoveryModule, true);
-            // ok, now it is safe to get the recovery manager to uninstall its Implementations from the inventory
-            baSubordinateCoordinatorRecoveryModule.uninstall();
-        }
-        if (baParticipantRecoveryModule != null) {
-            // remove the module, making sure any scan which might be using it has completed
-            RecoveryManager.manager().removeModule(baParticipantRecoveryModule, true);
-            // call uninstall even though it is currently a null op for this module
-            baParticipantRecoveryModule.uninstall();
-        }
-        if (atParticipantRecoveryModule != null) {
-            // remove the module, making sure any scan which might be using it has completed
-            RecoveryManager.manager().removeModule(atParticipantRecoveryModule, true);
-            // call uninstall even though it is currently a null op for this module
-            atParticipantRecoveryModule.uninstall();
-        }
-
         TaskManager.getManager().shutdown() ; // com.arjuna.services.framework.admin.TaskManagerInitialisation
 
         // shutdown the activity service reaper
 
         ActivityReaper.shutdown();
-        
-        /*
-         * this will be done by the servlet shutdown code
-        // HttpClientInitialisation
-        final SoapRegistry soapRegistry = SoapRegistry.getRegistry() ;
-        soapRegistry.removeSoapClient("http") ;
-        soapRegistry.removeSoapClient("https") ;
-        */
+
+        //  execute shutdown for all registered initialisations
+
+        Iterator<XTSInitialisation> iterator = xtsInitialisations.iterator();
+
+        while (iterator.hasNext()) {
+            XTSInitialisation xtsInitialisation = iterator.next();
+            xtsInitialisation.shutdown();
+        }
+
+        xtsInitialisations.clear();
     }
 
     private void TaskManagerInitialisation()
@@ -295,50 +112,5 @@
         taskManager.setMaximumWorkerCount(taskManagerMaxWorkerCount) ;
     }
 
-    public MBeanServer getMbeanServer()
-    {
-       return mbeanServer;
-    }
-
-    public void setMbeanServer(MBeanServer mbeanServer)
-    {
-       this.mbeanServer = mbeanServer;
-    }
-
-    private MBeanServer mbeanServer = null;
-
-    ///////////////
-
-    // These setters are used to allow MC/ServiceBindingManger to relay information from the Web server
-    // seee bindings.xml and jboss-beans.xml
-
-    public InetAddress getHttpBindInetAddress() {
-        return httpBindInetAddress;
-    }
-
-    public void setHttpBindInetAddress(InetAddress httpBindInetAddress) {
-        this.httpBindInetAddress = httpBindInetAddress;
-    }
-
-    private InetAddress httpBindInetAddress = null;
-
-    public int getHttpPort() {
-        return httpPort;
-    }
-
-    public void setHttpPort(int httpPort) {
-        this.httpPort = httpPort;
-    }
-
-    int httpPort = 0;
-
-    public int getHttpsPort() {
-        return httpsPort;
-    }
-
-    public void setHttpsPort(int httpsPort) {
-        this.httpsPort = httpsPort;
-    }
-
-    int httpsPort = 0;
+    private List<XTSInitialisation> xtsInitialisations = new ArrayList<XTSInitialisation>();
 }
\ No newline at end of file

Added: labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/ClientSideInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/ClientSideInitialisation.java	                        (rev 0)
+++ labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/ClientSideInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -0,0 +1,43 @@
+package org.jboss.jbossts.xts.initialisation;
+
+import com.arjuna.mw.wst11.deploy.WSTXInitialisation;
+import com.arjuna.webservices11.wsarjtx.server.TerminationParticipantInitialisation;
+import com.arjuna.webservices11.wsat.server.CompletionInitiatorInitialisation;
+
+/**
+ * A class used to perform all 1.1 client side initialisation
+ */
+public class ClientSideInitialisation implements XTSInitialisation
+{
+    public void startup() throws Exception
+    {
+        // there is no WS-C coordinator startup
+
+        // run WS-T initialisation code
+
+        CompletionInitiatorInitialisation.startup();
+        TerminationParticipantInitialisation.startup();
+
+        // there is no WSCF coordinator startup
+
+        // run WSTX startup code
+
+        WSTXInitialisation.startup();
+    }
+
+    public void shutdown() throws Exception
+    {
+        // run WSTX shutdown code
+
+        WSTXInitialisation.shutdown();
+
+        // there is no WSCF coordinator shutdown
+
+        // run WS-T shutdown code
+
+        TerminationParticipantInitialisation.shutdown();
+        CompletionInitiatorInitialisation.startup();
+
+        // there is no WS-C coordinator shutdown
+    }
+}

Added: labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/CoordinatorSideInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/CoordinatorSideInitialisation.java	                        (rev 0)
+++ labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/CoordinatorSideInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -0,0 +1,79 @@
+package org.jboss.jbossts.xts.initialisation;
+
+import com.arjuna.mw.wsc11.deploy.WSCFInitialisation;
+import com.arjuna.webservices11.wsarjtx.server.TerminationCoordinatorInitialisation;
+import com.arjuna.webservices11.wsat.server.CompletionCoordinatorInitialisation;
+import com.arjuna.webservices11.wsat.server.CoordinatorInitialisation;
+import com.arjuna.webservices11.wsba.server.CoordinatorCompletionCoordinatorInitialisation;
+import com.arjuna.webservices11.wsba.server.ParticipantCompletionCoordinatorInitialisation;
+import com.arjuna.webservices11.wscoor.server.ActivationCoordinatorInitialisation;
+import com.arjuna.webservices11.wscoor.server.RegistrationCoordinatorInitialisation;
+import com.arjuna.wsc11.messaging.deploy.CoordinationInitialisation;
+import com.arjuna.wst11.messaging.deploy.WSTCoordinatorInitialisation;
+import org.jboss.jbossts.xts.recovery.coordinator.CoordinatorRecoveryInitialisation;
+
+/**
+ * A class used to perform all 1.1 coordinator side initialisation
+ */
+public class CoordinatorSideInitialisation implements XTSInitialisation
+{
+    public void startup() throws Exception
+    {
+        // run WS-C initialisation code
+
+        ActivationCoordinatorInitialisation.startup();
+        RegistrationCoordinatorInitialisation.startup();
+        CoordinationInitialisation.startup();
+
+        // run WS-T startup code
+
+        CoordinatorInitialisation.startup();
+        CompletionCoordinatorInitialisation.startup();
+
+        CoordinatorCompletionCoordinatorInitialisation.startup();
+        ParticipantCompletionCoordinatorInitialisation.startup();
+        TerminationCoordinatorInitialisation.startup();
+
+        WSTCoordinatorInitialisation.startup();
+
+        // run WSCF startup code
+        
+        WSCFInitialisation.startup();
+
+        // there is no WSTX coordinator startup
+
+        // run recovery startup code
+
+        CoordinatorRecoveryInitialisation.startup();
+    }
+
+    public void shutdown() throws Exception
+    {
+        // run recovery shutdown code
+
+        CoordinatorRecoveryInitialisation.shutdown();
+
+        // there is no WSTX coordinator shutdown
+
+        // run WSCF shutdown code
+
+        WSCFInitialisation.shutdown();
+
+        // run WS-T shutdown code
+
+        WSTCoordinatorInitialisation.shutdown();
+
+        TerminationCoordinatorInitialisation.shutdown();
+        ParticipantCompletionCoordinatorInitialisation.shutdown();
+        CoordinatorCompletionCoordinatorInitialisation.shutdown();
+
+        CompletionCoordinatorInitialisation.shutdown();
+        CoordinatorInitialisation.shutdown();
+
+        // run WS-C shutdown code
+        CoordinationInitialisation.shutdown();
+        RegistrationCoordinatorInitialisation.shutdown();
+        ActivationCoordinatorInitialisation.shutdown();
+
+    }
+}

Added: labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/ParticipantSideInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/ParticipantSideInitialisation.java	                        (rev 0)
+++ labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/ParticipantSideInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -0,0 +1,64 @@
+package org.jboss.jbossts.xts.initialisation;
+
+import com.arjuna.mw.wst11.deploy.WSTXInitialisation;
+import com.arjuna.webservices11.wsarjtx.server.TerminationParticipantInitialisation;
+import com.arjuna.webservices11.wsat.server.CompletionInitiatorInitialisation;
+import com.arjuna.webservices11.wsat.server.ParticipantInitialisation;
+import com.arjuna.webservices11.wsba.server.CoordinatorCompletionParticipantInitialisation;
+import com.arjuna.webservices11.wsba.server.ParticipantCompletionParticipantInitialisation;
+import com.arjuna.wst11.messaging.deploy.WSTParticipantInitialisation;
+import org.jboss.jbossts.xts.recovery.participant.ParticipantRecoveryInitialisation;
+
+/**
+ * A class used to perform all 1.1 participant side initialisation
+ */
+public class ParticipantSideInitialisation implements XTSInitialisation
+{
+    public void startup() throws Exception
+    {
+        // there is no WS-C coordinator startup
+
+        // run WS-T startup code
+
+        ParticipantInitialisation.startup();
+
+        CoordinatorCompletionParticipantInitialisation.startup();
+        ParticipantCompletionParticipantInitialisation.startup();
+
+        WSTParticipantInitialisation.startup();
+
+        // there is no WSCF coordinator startup
+
+        // run WSTX startup code
+
+        WSTXInitialisation.startup();
+
+        // run recovery startup code
+
+        ParticipantRecoveryInitialisation.startup();
+    }
+
+    public void shutdown() throws Exception
+    {
+        // run recovery shutdown code
+
+        ParticipantRecoveryInitialisation.shutdown();
+
+        // run WSTX shutdown code
+
+        WSTXInitialisation.shutdown();
+
+        // there is no WSCF coordinator shutdown
+        // there is no WS-C coordinator shutdown
+
+        // run WS-T shutdown code
+        WSTParticipantInitialisation.shutdown();
+
+        ParticipantCompletionParticipantInitialisation.shutdown();
+        CoordinatorCompletionParticipantInitialisation.shutdown();
+
+        ParticipantInitialisation.startup();
+
+        // there is no WS-C coordinator shutdown
+    }
+}

Added: labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/XTS10Initialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/XTS10Initialisation.java	                        (rev 0)
+++ labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/XTS10Initialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -0,0 +1,34 @@
+package org.jboss.jbossts.xts.initialisation;
+
+import com.arjuna.services.framework.startup.Sequencer;
+import org.jboss.jbossts.xts.recovery.coordinator.CoordinatorRecoveryInitialisation;
+import org.jboss.jbossts.xts.recovery.participant.ParticipantRecoveryInitialisation;
+
+/**
+ * A class used to perform all 1.0 initialisation
+ */
+public class XTS10Initialisation implements XTSInitialisation
+{
+    public void startup() throws Exception
+    {
+        // the XTS 1.0 code still uses listeners so we have to alow the sequence of callbacks to execute by
+        // opening the latch.
+
+        Sequencer.unlatch();
+
+        // we also need to ensure that recovery modules are started
+
+        CoordinatorRecoveryInitialisation.startup();
+
+        ParticipantRecoveryInitialisation.startup();
+    }
+
+    public void shutdown() throws Exception
+    {
+        // we just need to ensure that recovery modules are shut down
+
+        ParticipantRecoveryInitialisation.startup();
+
+        CoordinatorRecoveryInitialisation.startup();
+    }
+}

Added: labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/XTSInitialisation.java
===================================================================
--- labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/XTSInitialisation.java	                        (rev 0)
+++ labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/initialisation/XTSInitialisation.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -0,0 +1,10 @@
+package org.jboss.jbossts.xts.initialisation;
+
+/**
+ * interface allowing initialisation code to eb ;plugged into the XTS Service startup
+ */
+public interface XTSInitialisation
+{
+    public void startup() throws Exception;
+    public void shutdown()throws Exception;
+}

Added: labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/logging/XTSLogger.java
===================================================================
--- labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/logging/XTSLogger.java	                        (rev 0)
+++ labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/logging/XTSLogger.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -0,0 +1,32 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and/or its affiliates,
+ * and individual contributors as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2010,
+ * @author JBoss, by Red Hat.
+ */
+package org.jboss.jbossts.xts.logging;
+import org.jboss.logging.Logger;
+
+/**
+ * Class used to do logging in the XTS Service code
+ */
+public class XTSLogger
+{
+    public static final Logger logger = Logger.getLogger("com.arjuna.xtsservice");
+    public static final xtsI18NLogger i18NLogger  = new xtsI18NLoggerImpl(logger);
+}
+

Added: labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/logging/xtsI18NLogger.java
===================================================================
--- labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/logging/xtsI18NLogger.java	                        (rev 0)
+++ labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/logging/xtsI18NLogger.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and/or its affiliates,
+ * and individual contributors as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2010,
+ * @author JBoss, by Red Hat.
+ */
+package org.jboss.jbossts.xts.logging;
+
+import org.jboss.logging.*;
+import static org.jboss.logging.Logger.Level.*;
+import static org.jboss.logging.Message.Format.*;
+
+/**
+ * i18n log messages for the xts service module.
+ *
+ * @author adinn
+ */
+ at MessageLogger(projectCode = "ARJUNA")
+public interface xtsI18NLogger
+{
+    /*
+        Message IDs are unique and non-recyclable.
+        Don't change the purpose of existing messages.
+          (tweak the message text or params for clarification if you like).
+        Allocate new messages by following instructions at the bottom of the file.
+     */
+
+    @Message(id = 47001, value = "Unable to load XTS initialisation class {0}", format = MESSAGE_FORMAT)
+    @LogMessage(level = ERROR)
+    public void error_XTSService_1(String arg0, @Cause() Throwable arg1);
+
+    @Message(id = 47002, value = "Not an XTS initialisation class {0}", format = MESSAGE_FORMAT)
+    @LogMessage(level = ERROR)
+    public void error_XTSService_2(String arg0);
+
+    @Message(id = 47003, value = "Unable to instantiate XTS initialisation class {0}", format = MESSAGE_FORMAT)
+    @LogMessage(level = ERROR)
+    public void error_XTSService_3(String arg0, @Cause() Throwable arg1);
+
+    @Message(id = 47004, value = "Unable to access XTS initialisation class {0}", format = MESSAGE_FORMAT)
+    @LogMessage(level = ERROR)
+    public void error_XTSService_4(String arg0, @Cause() Throwable arg1);
+
+}

Added: labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/logging/xtsI18NLoggerImpl.java
===================================================================
--- labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/logging/xtsI18NLoggerImpl.java	                        (rev 0)
+++ labs/jbosstm/trunk/XTS/sar/src/org/jboss/jbossts/xts/logging/xtsI18NLoggerImpl.java	2010-08-23 12:42:03 UTC (rev 34828)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and/or its affiliates,
+ * and individual contributors as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2010,
+ * @author JBoss, by Red Hat.
+ */
+package org.jboss.jbossts.xts.logging;
+
+import org.jboss.jbossts.xts.recovery.logging.recoveryI18NLogger;
+import org.jboss.logging.Logger;
+import static org.jboss.logging.Logger.Level.*;
+
+/**
+ * i18n log messages implementation for the xts service module.
+ *
+ * @author adinn
+ */
+public class xtsI18NLoggerImpl implements xtsI18NLogger
+{
+    private final Logger logger;
+
+    xtsI18NLoggerImpl(Logger logger) {
+        this.logger = logger;
+    }
+
+    public void error_XTSService_1(String arg0, Throwable arg1) {
+        logger.logv(ERROR, arg1, "Unable to load XTS initialisation class {0}", arg0);
+    }
+
+    public void error_XTSService_2(String arg0) {
+        logger.logv(ERROR, "Not an XTS initialisation class {0}", arg0);
+    }
+
+    public void error_XTSService_3(String arg0, Throwable arg1) {
+        logger.logv(ERROR, arg1, "Unable to instantiate XTS initialisation class {0}", arg0);
+    }
+
+    public void error_XTSService_4(String arg0, Throwable arg1) {
+        logger.logv(ERROR, arg1, "Unable to access XTS initialisation class {0}", arg0);
+    }
+}

Modified: labs/jbosstm/trunk/XTS/sar/tests/build.xml
===================================================================
--- labs/jbosstm/trunk/XTS/sar/tests/build.xml	2010-08-23 10:42:37 UTC (rev 34827)
+++ labs/jbosstm/trunk/XTS/sar/tests/build.xml	2010-08-23 12:42:03 UTC (rev 34828)
@@ -59,7 +59,7 @@
 
   <property name="jbossts.build.extlib.dir" location="${jbossts.dir}/build/extlib"/>
   <property name="jbossts.build.extlib.jars" value="jaxb-api.jar jboss-javaee.jar stax-api.jar
-            jbossws-native-core.jar jbossws-common.jar jboss-logging-spi.jar jboss-servlet-api_3.0_spec.jar"/>
+            jbossws-native-core.jar jbossws-common.jar jboss-logging.jar jboss-servlet-api_3.0_spec.jar"/>
 
   <target name="init">
     <delete dir="${build.dir}"/>



More information about the jboss-svn-commits mailing list