dlr         01/08/21 11:20:33

  Modified:    src/java/org/apache/torque/adapter DBFactory.java
  Log:
  Derive adapter package name from package of adapter description,
  abstract class DB.
  
  Revision  Changes    Path
  1.7       +23 -6     
jakarta-turbine-torque/src/java/org/apache/torque/adapter/DBFactory.java
  
  Index: DBFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-torque/src/java/org/apache/torque/adapter/DBFactory.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -u -r1.6 -r1.7
  --- DBFactory.java    2001/08/21 03:51:48     1.6
  +++ DBFactory.java    2001/08/21 18:20:33     1.7
  @@ -72,7 +72,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Brett McLaughlin</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Ralf Stranzenbach</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Daniel Rall</a>
  - * @version $Id: DBFactory.java,v 1.6 2001/08/21 03:51:48 dlr Exp $
  + * @version $Id: DBFactory.java,v 1.7 2001/08/21 18:20:33 dlr Exp $
    */
   public class DBFactory
   {
  @@ -81,6 +81,11 @@
        */
       private static Hashtable drivers = null;
   
  +    /**
  +     * The package name in which known adapters are stored.
  +     */
  +    private static String adapterPackage = null;
  +
       private static ExtendedProperties configuration;
   
       private static Category category;
  @@ -132,11 +137,7 @@
               Class c = null;
               try
               {
  -                //!! bad bad bad bad hardcoding!!!
  -                // This needs to be configurable, or set
  -                // in a hidden property file.
  -                c = Class.forName(
  -                    "org.apache.torque.adapter." + adapter);
  +                c = Class.forName(getAdapterPackageName() + adapter);
               }
               catch (ClassNotFoundException ignored)
               {
  @@ -156,6 +157,22 @@
                   registerDriver(driver, c);
               }
           }
  +    }
  +
  +    /**
  +     * Returns the package name in which adapters are usually kept.
  +     * Divines name from package of adapter description
  +     * <code>DB</code>.
  +     */
  +    private static final String getAdapterPackageName()
  +    {
  +        if (adapterPackage == null)
  +        {
  +            String clue = DB.class.getName();
  +            int i = clue.lastIndexOf('.');
  +            adapterPackage = (i > 0 ? clue.substring(0, i) : "");
  +        }
  +        return adapterPackage;
       }
   
       /**
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to