001 package org.apache.ojb.broker;
002
003 /* Copyright 2002-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.core.PersistenceBrokerFactoryFactory;
019 import org.apache.ojb.broker.util.configuration.Configurator;
020 import org.apache.ojb.broker.util.configuration.impl.OjbConfigurator;
021 import org.apache.ojb.broker.metadata.MetadataManager;
022
023 /**
024 * Convenience factory class that produces {@link PersistenceBroker} instances.
025 *
026 * @see org.apache.ojb.broker.core.PersistenceBrokerFactoryFactory
027 * @see org.apache.ojb.broker.core.PersistenceBrokerFactoryIF
028 * @author Thomas Mahler
029 * @version $Id: PersistenceBrokerFactory.java,v 1.1 2007-08-24 22:17:36 ewestfal Exp $
030 */
031 public class PersistenceBrokerFactory
032 {
033 /**
034 * Returns the {@link org.apache.ojb.broker.util.configuration.Configurator}
035 * object.
036 *
037 * @return The configurator
038 */
039 public static Configurator getConfigurator()
040 {
041 return OjbConfigurator.getInstance();
042 }
043
044 /**
045 * Sets the key that specifies the default persistence manager.
046 *
047 * @param key The default broker key
048 * @see org.apache.ojb.broker.core.PersistenceBrokerFactoryIF#setDefaultKey
049 */
050 public static void setDefaultKey(PBKey key)
051 {
052 MetadataManager.getInstance().setDefaultPBKey(key);
053 }
054
055 /**
056 * Returns the key that specifies the default persistence manager.
057 *
058 * @return The default broker key
059 * @see org.apache.ojb.broker.core.PersistenceBrokerFactoryIF#getDefaultKey
060 */
061 public static PBKey getDefaultKey()
062 {
063 return MetadataManager.getInstance().getDefaultPBKey();
064 }
065
066 /**
067 * Creates a default broker instance for the default broker key.
068 *
069 * @return The persistence broker
070 * @see org.apache.ojb.broker.core.PersistenceBrokerFactoryIF#defaultPersistenceBroker
071 */
072 public static PersistenceBroker defaultPersistenceBroker() throws PBFactoryException
073 {
074 return PersistenceBrokerFactoryFactory.instance().
075 defaultPersistenceBroker();
076 }
077
078 /**
079 * Creates a new broker instance.
080 *
081 * @param jcdAlias The jdbc connection descriptor name as defined in the repository
082 * @param user The user name to be used for connecting to the database
083 * @param password The password to be used for connecting to the database
084 * @return The persistence broker
085 * @see org.apache.ojb.broker.core.PersistenceBrokerFactoryIF#createPersistenceBroker(java.lang.String, java.lang.String, java.lang.String)
086 */
087 public static PersistenceBroker createPersistenceBroker(String jcdAlias,
088 String user,
089 String password) throws PBFactoryException
090 {
091 return PersistenceBrokerFactoryFactory.instance().
092 createPersistenceBroker(jcdAlias, user, password);
093 }
094
095 /**
096 * Creates a new broker instance for the given key.
097 *
098 * @param key The broker key
099 * @return The persistence broker
100 * @see org.apache.ojb.broker.core.PersistenceBrokerFactoryIF#createPersistenceBroker(org.apache.ojb.broker.PBKey)
101 */
102 public static PersistenceBroker createPersistenceBroker(PBKey key) throws PBFactoryException
103 {
104 return PersistenceBrokerFactoryFactory.instance().createPersistenceBroker(key);
105 }
106
107 /**
108 * Releases all broker instances pooled by this factory (if any). Note that the broker are
109 * closed prior to releasing them.
110 *
111 * @see org.apache.ojb.broker.core.PersistenceBrokerFactoryIF#releaseAllInstances
112 */
113 public static void releaseAllInstances()
114 {
115 PersistenceBrokerFactoryFactory.instance().releaseAllInstances();
116 }
117
118 /**
119 * Shuts OJB down, i.e. releases all resources. You should not use any OJB functionality
120 * after calling this method.
121 *
122 * @see org.apache.ojb.broker.core.PersistenceBrokerFactoryIF#shutdown()
123 */
124 public static void shutdown()
125 {
126 PersistenceBrokerFactoryFactory.instance().shutdown();
127 }
128 }