[jboss-svn-commits] JBL Code SVN: r13760 - in labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats: jta/utils and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jul 24 09:55:51 EDT 2007


Author: jhalliday
Date: 2007-07-24 09:55:51 -0400 (Tue, 24 Jul 2007)
New Revision: 13760

Modified:
   labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionSynchronizationRegistryImple.java
   labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/utils/JNDIManager.java
Log:
Changed the way TransactionSynchronizationRegistryImple is bound in JNDI - JNDIManager now instantiates it and binds the instance, removing the need for an ObjectFactory, which we don't have.  See http://jira.jboss.com/jira/browse/JBCTS-622.


Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionSynchronizationRegistryImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionSynchronizationRegistryImple.java	2007-07-24 13:50:56 UTC (rev 13759)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/TransactionSynchronizationRegistryImple.java	2007-07-24 13:55:51 UTC (rev 13760)
@@ -28,15 +28,18 @@
 import com.arjuna.common.util.logging.VisibilityLevel;
 
 import javax.transaction.*;
+import java.io.Serializable;
 
 /**
  * Implementation of the TransactionSynchronizationRegistry interface, in line with the JTA 1.1 specification.
  *
  * @author jonathan.halliday at jboss.com
  */
-public class TransactionSynchronizationRegistryImple implements TransactionSynchronizationRegistry
-{
-	/*
+public class TransactionSynchronizationRegistryImple implements TransactionSynchronizationRegistry, Serializable {
+    // This Imple is stateless and just delegates the work down to the transaction maanger.
+    // It's Serilizable so it can be shoved into the app server JNDI.
+
+    /*
 	 * http://java.sun.com/javaee/5/docs/api/javax/transaction/TransactionSynchronizationRegistry.html
 	 * http://jcp.org/aboutJava/communityprocess/maintenance/jsr907/907ChangeLog.html
 	 */

Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/utils/JNDIManager.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/utils/JNDIManager.java	2007-07-24 13:50:56 UTC (rev 13759)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/jta/utils/JNDIManager.java	2007-07-24 13:55:51 UTC (rev 13760)
@@ -33,9 +33,12 @@
 import com.arjuna.ats.jta.common.jtaPropertyManager;
 
 import com.arjuna.ats.jta.common.Environment;
+import com.arjuna.ats.jta.logging.jtaLogger;
 
 import javax.naming.InitialContext;
 import javax.naming.Reference;
+import javax.naming.NamingException;
+import javax.naming.ConfigurationException;
 
 public class JNDIManager
 {
@@ -146,16 +149,25 @@
      * JNDI context.
      * @param initialContext
      * @throws javax.naming.NamingException
+     *
+     * @message com.arjuna.ats.jta.utils.JNDIManager.tsr1 [message com.arjuna.ats.jta.utils.JNDIManager] Unable to instantiate TransactionSynchronizationRegistry implementation class!
      */
 	public static void bindJTATransactionSynchronizationRegistryImplementation(InitialContext initialContext) throws javax.naming.NamingException
 	{
         /** Look up and instantiate an instance of the configured TransactionSynchronizationRegistry implementation **/
         String tsrImplementation = getTransactionSynchronizationRegistryImplementationClassname();
+        Object tsr = null;
+        try {
+            tsr = Class.forName(tsrImplementation).newInstance();
+        } catch(Exception e) {
+            NamingException namingException = new ConfigurationException(jtaLogger.logMesg.getString("com.arjuna.ats.jta.utils.JNDIManager.tsr1"));
+            namingException.setRootCause(e);
+            throw namingException;
+        }
 
         /** Bind the TransactionSynchronizationRegistry to the appropriate JNDI context **/
-        Reference ref = new Reference(tsrImplementation, tsrImplementation, null);
-        initialContext.rebind(getTransactionSynchronizationRegistryJNDIName(), ref);
-	}
+        initialContext.rebind(getTransactionSynchronizationRegistryJNDIName(), tsr);
+    }
 
 	public final static String getTransactionManagerJNDIName()
 	{




More information about the jboss-svn-commits mailing list