View Javadoc
1 package org.apache.torque; 2 3 /* ==================================================================== 4 * The Apache Software License, Version 1.1 5 * 6 * Copyright (c) 2001-2003 The Apache Software Foundation. All rights 7 * reserved. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 16 * 2. Redistributions in binary form must reproduce the above copyright 17 * notice, this list of conditions and the following disclaimer in 18 * the documentation and/or other materials provided with the 19 * distribution. 20 * 21 * 3. The end-user documentation included with the redistribution, 22 * if any, must include the following acknowledgment: 23 * "This product includes software developed by the 24 * Apache Software Foundation (http://www.apache.org/)." 25 * Alternately, this acknowledgment may appear in the software itself, 26 * if and wherever such third-party acknowledgments normally appear. 27 * 28 * 4. The names "Apache" and "Apache Software Foundation" and 29 * "Apache Turbine" must not be used to endorse or promote products 30 * derived from this software without prior written permission. For 31 * written permission, please contact apache@apache.org. 32 * 33 * 5. Products derived from this software may not be called "Apache", 34 * "Apache Turbine", nor may "Apache" appear in their name, without 35 * prior written permission of the Apache Software Foundation. 36 * 37 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 38 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 39 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 40 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 41 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 42 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 43 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 44 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 45 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 46 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 47 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 48 * SUCH DAMAGE. 49 * ==================================================================== 50 * 51 * This software consists of voluntary contributions made by many 52 * individuals on behalf of the Apache Software Foundation. For more 53 * information on the Apache Software Foundation, please see 54 * <http://www.apache.org/>. 55 */ 56 57 import java.sql.Connection; 58 59 import org.apache.commons.configuration.Configuration; 60 61 import org.apache.stratum.lifecycle.Configurable; 62 import org.apache.stratum.lifecycle.Disposable; 63 import org.apache.stratum.lifecycle.Initializable; 64 65 import org.apache.torque.adapter.DB; 66 import org.apache.torque.manager.AbstractBaseManager; 67 import org.apache.torque.map.DatabaseMap; 68 69 /*** 70 * A static facade wrapper around the Torque implementation (which is in 71 * {@link org.apache.torque.TorqueInstance}). 72 * <br/> 73 * For historical reasons this class also contains a thin object which can 74 * be used to configure Torque with the Stratum Lifecycle. This is deprecated 75 * and will be removed in the future in favour of using Torque as an Avalon 76 * Component. 77 * 78 * @todo This class will be made abstract once Stratum is removed. 79 * 80 * @author <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a> 81 * @author <a href="mailto:magnus@handtolvur.is">Magnús Þór Torfason</a> 82 * @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a> 83 * @author <a href="mailto:Rafal.Krzewski@e-point.pl">Rafal Krzewski</a> 84 * @author <a href="mailto:mpoeschl@marmot.at">Martin Poeschl</a> 85 * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a> 86 * @author <a href="mailto:kschrader@karmalab.org">Kurt Schrader</a> 87 * @version $Id: Torque.java,v 1.91 2003/08/05 18:09:35 mpoeschl Exp $ 88 */ 89 public class Torque 90 implements Initializable, 91 Configurable, 92 Disposable 93 { 94 /*** 95 * Name of property that specifies the default map builder and map. 96 */ 97 public static final String DATABASE_DEFAULT = "database.default"; 98 99 /*** 100 * A prefix for <code>Manager</code> properties in the configuration. 101 */ 102 public static final String MANAGER_PREFIX = "managed_class."; 103 104 /*** 105 * A <code>Service</code> property determining its implementing 106 * class name . 107 */ 108 public static final String MANAGER_SUFFIX = ".manager"; 109 110 /*** 111 * property to determine whether caching is used. 112 */ 113 public static final String CACHE_KEY = "manager.useCache"; 114 115 /*** 116 * The single instance of {@link TorqueInstance} used by the 117 * static API presented by this class. 118 */ 119 private static TorqueInstance torqueSingleton = null; 120 121 /*** 122 * This is a member variable of Torque objects created by the Stratum 123 * lifecycle 124 */ 125 private Configuration memberConfig = null; 126 127 /*** 128 * C'tor for usage with the Stratum Lifecycle. 129 * 130 * @todo Should be made private or protected once Stratum is removed. 131 */ 132 public Torque() 133 { 134 } 135 136 /*** 137 * Retrieves the single {@link org.apache.torque.TorqueInstance} 138 * used by this class. 139 * 140 * @return Our singleton. 141 */ 142 public static TorqueInstance getInstance() 143 { 144 if (torqueSingleton == null) 145 { 146 torqueSingleton = new TorqueInstance(); 147 } 148 return torqueSingleton; 149 } 150 151 /*** 152 * Initialization of Torque with a properties file. 153 * 154 * @param configFile The absolute path to the configuration file. 155 * @throws TorqueException Any exceptions caught during processing will be 156 * rethrown wrapped into a TorqueException. 157 */ 158 public static void init(String configFile) 159 throws TorqueException 160 { 161 getInstance().init(configFile); 162 } 163 164 /*** 165 * Initialization of Torque with a properties file. 166 * 167 * @param conf The Torque configuration. 168 * @throws TorqueException Any exceptions caught during processing will be 169 * rethrown wrapped into a TorqueException. 170 */ 171 public static void init(Configuration conf) 172 throws TorqueException 173 { 174 getInstance().init(conf); 175 } 176 177 /*** 178 * Determine whether Torque has already been initialized. 179 * 180 * @return true if Torque is already initialized 181 */ 182 public static boolean isInit() 183 { 184 return getInstance().isInit(); 185 } 186 187 /*** 188 * Sets the configuration for Torque and all dependencies. 189 * 190 * @param conf the Configuration 191 */ 192 public static void setConfiguration(Configuration conf) 193 { 194 getInstance().setConfiguration(conf); 195 } 196 197 /*** 198 * Get the configuration for this component. 199 * 200 * @return the Configuration 201 */ 202 public static Configuration getConfiguration() 203 { 204 return getInstance().getConfiguration(); 205 } 206 207 /*** 208 * This method returns a Manager for the given name. 209 * 210 * @param name name of the manager 211 * @return a Manager 212 */ 213 public static AbstractBaseManager getManager(String name) 214 { 215 return getInstance().getManager(name); 216 } 217 218 /*** 219 * This methods returns either the Manager from the configuration file, 220 * or the default one provided by the generated code. 221 * 222 * @param name name of the manager 223 * @param defaultClassName the class to use if name has not been configured 224 * @return a Manager 225 */ 226 public static AbstractBaseManager getManager(String name, 227 String defaultClassName) 228 { 229 return getInstance().getManager(name, defaultClassName); 230 } 231 232 /*** 233 * Shuts down the service. 234 * 235 * This method halts the IDBroker's daemon thread in all of 236 * the DatabaseMap's. 237 */ 238 public static void shutdown() 239 { 240 getInstance().shutdown(); 241 } 242 243 /*** 244 * Returns the default database map information. 245 * 246 * @return A DatabaseMap. 247 * @throws TorqueException Any exceptions caught during processing will be 248 * rethrown wrapped into a TorqueException. 249 */ 250 public static DatabaseMap getDatabaseMap() 251 throws TorqueException 252 { 253 return getInstance().getDatabaseMap(); 254 } 255 256 /*** 257 * Returns the database map information. Name relates to the name 258 * of the connection pool to associate with the map. 259 * 260 * @param name The name of the database corresponding to the 261 * <code>DatabaseMap</code> to retrieve. 262 * @return The named <code>DatabaseMap</code>. 263 * @throws TorqueException Any exceptions caught during processing will be 264 * rethrown wrapped into a TorqueException. 265 */ 266 public static DatabaseMap getDatabaseMap(String name) 267 throws TorqueException 268 { 269 return getInstance().getDatabaseMap(name); 270 } 271 272 /*** 273 * Register a MapBuilder 274 * 275 * @param className the MapBuilder 276 */ 277 public static void registerMapBuilder(String className) 278 { 279 getInstance().registerMapBuilder(className); 280 } 281 282 /*** 283 * This method returns a Connection from the default pool. 284 * 285 * @return The requested connection. 286 * @throws TorqueException Any exceptions caught during processing will be 287 * rethrown wrapped into a TorqueException. 288 */ 289 public static Connection getConnection() 290 throws TorqueException 291 { 292 return getInstance().getConnection(); 293 } 294 295 /*** 296 * This method returns a Connecton using the given database name. 297 * 298 * @param name The database name. 299 * @return a database connection 300 * @throws TorqueException Any exceptions caught during processing will be 301 * rethrown wrapped into a TorqueException. 302 */ 303 public static Connection getConnection(String name) 304 throws TorqueException 305 { 306 return getInstance().getConnection(name); 307 } 308 309 /*** 310 * This method returns a Connecton using the given parameters. 311 * You should only use this method if you need user based access to the 312 * database! 313 * 314 * @param name The database name. 315 * @param username The name of the database user. 316 * @param password The password of the database user. 317 * @return A Connection. 318 * @throws TorqueException Any exceptions caught during processing will be 319 * rethrown wrapped into a TorqueException. 320 */ 321 public static Connection getConnection(String name, String username, 322 String password) 323 throws TorqueException 324 { 325 return getInstance().getConnection(name, username, password); 326 } 327 /*** 328 * Returns database adapter for a specific connection pool. 329 * 330 * @param name A pool name. 331 * @return The corresponding database adapter. 332 * @throws TorqueException Any exceptions caught during processing will be 333 * rethrown wrapped into a TorqueException. 334 */ 335 public static DB getDB(String name) throws TorqueException 336 { 337 return getInstance().getDB(name); 338 } 339 340 /*** 341 * Returns the name of the default database. 342 * 343 * @return name of the default DB 344 */ 345 public static String getDefaultDB() 346 { 347 return getInstance().getDefaultDB(); 348 } 349 350 /*** 351 * Closes a connection. 352 * 353 * @param con A Connection to close. 354 */ 355 public static void closeConnection(Connection con) 356 { 357 getInstance().closeConnection(con); 358 } 359 360 /* 361 * ======================================================================== 362 * 363 * Stratum Lifecycle Interface (deprecated) 364 * 365 * ======================================================================== 366 */ 367 368 /*** 369 * configure torque 370 * 371 * @param conf Configuration 372 * @see org.apache.stratum.lifecycle.Configurable 373 * @throws TorqueException Any exceptions caught during processing will be 374 * rethrown wrapped into a TorqueException. 375 */ 376 public void configure(Configuration conf) throws TorqueException 377 { 378 this.memberConfig = conf; 379 } 380 381 /*** 382 * initialize Torque 383 * 384 * @see org.apache.stratum.lifecycle.Initializable 385 * @throws TorqueException Any exceptions caught during processing will be 386 * rethrown wrapped into a TorqueException. 387 */ 388 public void initialize() throws TorqueException 389 { 390 getInstance().init(memberConfig); 391 } 392 393 /*** 394 * Shuts down the service, Lifecycle style 395 * @see org.apache.stratum.lifecycle.Disposable 396 */ 397 public void dispose() 398 { 399 getInstance().shutdown(); 400 } 401 }

This page was automatically generated by Maven