Package org.jboss.seam.microcontainer

Source Code of org.jboss.seam.microcontainer.TransactionManagerFactory

//$Id: TransactionManagerFactory.java,v 1.13 2006/12/16 02:58:11 nrichards Exp $
package org.jboss.seam.microcontainer;

import javax.naming.InitialContext;
import javax.transaction.TransactionManager;

import org.jboss.seam.log.LogProvider;
import org.jboss.seam.log.Logging;
import org.jboss.resource.connectionmanager.TransactionSynchronizer;
import org.jboss.seam.util.Naming;
import org.jboss.seam.util.Transactions;
import org.jboss.tm.TransactionManagerLocator;
import org.jboss.tm.usertx.client.ServerVMClientUserTransaction;
import org.jboss.util.naming.NonSerializableFactory;

/**
* A factory that bootstraps a JTA TransactionManager
*
* @author Gavin King
*/
public class TransactionManagerFactory
{
  
   private static final LogProvider log = Logging.getLogProvider(TransactionManagerFactory.class);

   public TransactionManager getTransactionManager() throws Exception
   {
     
      log.info("starting JTA transaction manager");
      InitialContext initialContext = Naming.getInitialContext();

      //create a TransactionManager and bind to JNDI
      TransactionManager transactionManager = TransactionManagerLocator.getInstance().locate();
      TransactionSynchronizer.setTransactionManager(transactionManager);
      NonSerializableFactory.rebind( initialContext, "java:/TransactionManager", transactionManager );
     
      //create a UserTransaction and bind to JNDI
      ServerVMClientUserTransaction ut = new ServerVMClientUserTransaction(transactionManager);
      //TODO: parse the UserTransaction name and create subcontexts
      NonSerializableFactory.rebind( initialContext, Transactions.getUserTransactionName(), ut );
     
      return transactionManager;

   }

}
TOP

Related Classes of org.jboss.seam.microcontainer.TransactionManagerFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.