[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