001 package org.apache.ojb.broker.transaction.tm;
002
003 /* Copyright 2003-2005 The Apache Software Foundation
004 *
005 * Licensed under the Apache License, Version 2.0 (the "License");
006 * you may not use this file except in compliance with the License.
007 * You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017
018 import org.apache.ojb.broker.util.factory.ConfigurableFactory;
019 import org.apache.ojb.broker.util.logging.Logger;
020 import org.apache.ojb.broker.util.logging.LoggerFactory;
021 import org.apache.ojb.broker.transaction.tm.TransactionManagerFactory;
022
023 public class TransactionManagerFactoryFactory
024 {
025 private static Logger log = LoggerFactory.getLogger(TransactionManagerFactoryFactory.class);
026 private static TransactionManagerFactory tmInstance;
027 static
028 {
029 try
030 {
031 tmInstance = new TMFactoryFactory().createTransactionManagerFactory();
032 }
033 catch (Exception e)
034 {
035 log.error("Instantiation of TransactionManagerFactory failed", e);
036 }
037 }
038
039 public synchronized static TransactionManagerFactory instance()
040 {
041 return tmInstance;
042 }
043
044 public static class TMFactoryFactory extends ConfigurableFactory
045 {
046 protected String getConfigurationKey()
047 {
048 return "JTATransactionManagerClass";
049 }
050
051 protected TransactionManagerFactory createTransactionManagerFactory()
052 {
053 return (TransactionManagerFactory) this.createNewInstance();
054 }
055 }
056 }