code: private static Driver load(String className, ClassLoader loader) throws DriverLoadException {
          try {
              final Class<?> c = Class.forName(className, true, loader);
              //final Class c = loader.loadClass(className);
              final Driver driver = (Driver) c.getDeclaredConstructor().newInstance();
  
              //TODO add usage count so we don't de-register a driver that is in use.
              final Driver shim = new DriverShim(driver);
              //using the DriverShim to get around the fact that the DriverManager won't register a driver not in the base class path
              DriverManager.registerDriver(shim);
              return shim;
          } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException
                  | NoSuchMethodException | SecurityException | IllegalArgumentException | InvocationTargetException ex) {
              final String msg = String.format("Unable to load database driver '%s'", className);
              LOGGER.debug(msg, ex);
              throw new DriverLoadException(msg, ex);
          }
      }
docs: Loads the specified class using the supplied class loader and registers
  the driver with the driver manager.
  
  @param className the fully qualified name of the desired class
  @param loader the class loader to use when loading the driver
  @return the loaded Driver
  @throws DriverLoadException thrown if the driver cannot be loaded