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]