aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/sql/DriverManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/sql/DriverManager.java')
-rw-r--r--libjava/java/sql/DriverManager.java63
1 files changed, 57 insertions, 6 deletions
diff --git a/libjava/java/sql/DriverManager.java b/libjava/java/sql/DriverManager.java
index 3612783..19d4e9d 100644
--- a/libjava/java/sql/DriverManager.java
+++ b/libjava/java/sql/DriverManager.java
@@ -1,5 +1,5 @@
/* DriverManager.java -- Manage JDBC drivers
- Copyright (C) 1999 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -138,6 +138,38 @@ setLoginTimeout(int login_timeout)
/*************************************************************************/
/**
+ * This method returns the log writer being used by all JDBC drivers.
+ * This method should be used in place of the deprecated
+ * <code>getLogStream</code> method.
+ *
+ * @return The log writer in use by JDBC drivers.
+ */
+public static PrintWriter
+getLogWriter()
+{
+ return(log_writer);
+}
+
+/*************************************************************************/
+
+/**
+ * This method sets the log writer being used by JDBC drivers. This is a
+ * system-wide parameter that affects all drivers. Note that since there
+ * is no way to retrieve a <code>PrintStream</code> from a
+ * <code>PrintWriter</code>, this method cannot set the log stream in
+ * use by JDBC. Thus any older drivers may not see this setting.
+ *
+ * @param log_writer The new log writer for JDBC.
+ */
+public static void
+setLogWriter(PrintWriter log_writer)
+{
+ DriverManager.log_writer = log_writer;
+}
+
+/*************************************************************************/
+
+/**
* This method returns the log stream in use by JDBC.
*
* @return The log stream in use by JDBC.
@@ -186,9 +218,11 @@ println(String str)
* called by the driver itself in a static initializer.
*
* @param driver The new <code>Driver</code> to add.
+ *
+ * @exception SQLException If an error occurs.
*/
public static void
-registerDriver(Driver driver)
+registerDriver(Driver driver) throws SQLException
{
if (!drivers.contains(driver))
drivers.addElement(driver);
@@ -200,9 +234,11 @@ registerDriver(Driver driver)
* This method de-registers a driver from the manager.
*
* @param driver The <code>Driver</code> to unregister.
+ *
+ * @exception SQLException If an error occurs.
*/
public static void
-deregisterDriver(Driver driver)
+deregisterDriver(Driver driver) throws SQLException
{
if (drivers.contains(driver))
drivers.removeElement(driver);
@@ -211,15 +247,30 @@ deregisterDriver(Driver driver)
/*************************************************************************/
/**
- * This method returns a list of all the currently loaded JDBC drivers which
- * the current caller has access to.
+ * This method returns a list of all the currently registered JDBC drivers
+ * that were loaded by the current <code>ClassLoader</code>.
*
* @return An <code>Enumeration</code> of all currently loaded JDBC drivers.
*/
public static Enumeration
getDrivers()
{
- return(drivers.elements());
+ Vector v = new Vector();
+ Enumeration e = drivers.elements();
+
+ // Is this right?
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+
+ while(e.hasMoreElements())
+ {
+ Object obj = e.nextElement();
+ if (!obj.getClass().getClassLoader().equals(cl))
+ continue;
+
+ v.addElement(obj);
+ }
+
+ return(v.elements());
}
/*************************************************************************/