1 /* 2 * JBoss, Home of Professional Open Source 3 * Copyright 2005, JBoss Inc., and individual contributors as indicated 4 * by the @authors tag. See the copyright.txt in the distribution for a 5 * full listing of individual contributors. 6 * 7 * This is free software; you can redistribute it and/or modify it 8 * under the terms of the GNU Lesser General Public License as 9 * published by the Free Software Foundation; either version 2.1 of 10 * the License, or (at your option) any later version. 11 * 12 * This software is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with this software; if not, write to the Free 19 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 20 * 02110-1301 USA, or see the FSF site: http://www.fsf.org. 21 */ 22 package org.jboss.tm; 23 24 import javax.naming.InitialContext; 25 import javax.naming.NamingException; 26 27 /** 28 * Comment 29 * 30 * @author <a HREF="mailto:bill@jboss.org">Bill Burke</a> 31 * @version $Revision: 37459 $ 32 */ 33 public class TransactionPropagationContextUtil 34 { 35 private static TransactionPropagationContextFactory tpcFactory; 36 private static TransactionPropagationContextImporter tpcImporter; 37 38 public static TransactionPropagationContextFactory getTPCFactoryClientSide() 39 { 40 return tpcFactory; 41 } 42 43 public static TransactionPropagationContextFactory getTPCFactory() 44 { 45 if (tpcFactory == null) 46 { 47 try 48 { 49 InitialContext ctx = new InitialContext(); 50 // Get the transaction propagation context factory 51 tpcFactory = (TransactionPropagationContextFactory) 52 ctx.lookup("java:/TransactionPropagationContextExporter"); 53 } 54 catch (NamingException e) 55 { 56 throw new RuntimeException(e); 57 } 58 } 59 return tpcFactory; 60 } 61 62 public static void setTPCFactory(TransactionPropagationContextFactory tpcFactory) 63 { 64 TransactionPropagationContextUtil.tpcFactory = tpcFactory; 65 } 66 67 public static TransactionPropagationContextImporter getTPCImporter() 68 { 69 if (tpcImporter == null) 70 { 71 try 72 { 73 InitialContext ctx = new InitialContext(); 74 // and the transaction propagation context importer 75 tpcImporter = (TransactionPropagationContextImporter) 76 ctx.lookup("java:/TransactionPropagationContextImporter"); 77 } 78 catch (NamingException e) 79 { 80 throw new RuntimeException(e); 81 } 82 } 83 return tpcImporter; 84 } 85 86 public static void setTPCImporter(TransactionPropagationContextImporter importer) 87 { 88 tpcImporter = importer; 89 } 90 } 91