X-Git-Url: http://secure.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/util/JarUtil.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/util/JarUtil.java index c30bdad..2519891 100644 --- a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/util/JarUtil.java +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/util/JarUtil.java @@ -24,23 +24,36 @@ public class JarUtil { public static Driver loadDriver(String driverFile, String className) { Driver result = null; try { - File file = new File(driverFile); - if (file.exists() && file.isFile()) { - URLClassLoader loader = getURLClassLoader(file); - Class driverClass = loader.loadClass(className); + Class driverClass = loadDriverClass(driverFile, className); + if (driverClass != null) { try { result = (Driver) driverClass.newInstance(); } catch (ClassCastException e) { } } - } catch (MalformedURLException e) { - } catch (ClassNotFoundException e) { } catch (InstantiationException e) { } catch (IllegalAccessException e) { } return result; } + public static Class loadDriverClass(String driverFile, String className) { + Class result = null; + if (driverFile != null && className != null) { + try { + File file = new File(driverFile); + if (file.exists() && file.isFile()) { + URLClassLoader loader = getURLClassLoader(file); + Class driverClass = loader.loadClass(className); + result = Driver.class.isAssignableFrom(driverClass) ? driverClass : null; + } + } catch (MalformedURLException e) { + } catch (ClassNotFoundException e) { + } + } + return result; + } + public static String[] getAllDriverNames(String driverFile) { List list = new ArrayList(); try {