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 {