|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.lang.ClassLoader org.objectweb.cjdbc.controller.connection.DriverClassLoader
This class defines a DriverClassLoader used to load drivers with their own classloder to be able to handle different implementations of drivers sharing the same class name. For example if you want to connect to two backends of the same vendor, but running with different releases and requiring a driver compatible with the respective database release
Nested Class Summary |
Nested classes inherited from class java.lang.ClassLoader |
|
Field Summary | |
private java.util.Hashtable |
htJarContents
we cache the contents of the jar files, as we don't want to have to read the file for every single class we are going to need |
private java.io.File |
path
path on filesystem where the driver is located |
Fields inherited from class java.lang.ClassLoader |
|
Constructor Summary | |
(package private) |
DriverClassLoader(java.lang.ClassLoader parent,
java.io.File pPath)
Creates a new DriverClassLoader.java object |
Method Summary | |
private java.lang.String |
convertClassNameToResourceName(java.lang.String className)
convert the class name into the rescource name. |
protected java.lang.Class |
findClass(java.lang.String className)
finds the specified class |
private byte[] |
findClassInJarFile(java.io.File dir,
java.lang.String className)
Find the first jar file containing the className and load it |
protected java.net.URL |
findResource(java.lang.String name)
|
private void |
loadJarFile(java.lang.String jarFileName)
Load the contents of jar file in the cache |
Methods inherited from class java.lang.ClassLoader |
clearAssertionStatus, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findResources, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
private java.io.File path
private java.util.Hashtable htJarContents
Constructor Detail |
DriverClassLoader(java.lang.ClassLoader parent, java.io.File pPath)
DriverClassLoader.java
object
parent
- classloader, null if no parent classloader should be usedpPath
- path where the driver classfiles of jar files are locatedMethod Detail |
protected java.lang.Class findClass(java.lang.String className) throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundException
ClassLoader.findClass(java.lang.String)
private byte[] findClassInJarFile(java.io.File dir, java.lang.String className) throws java.io.IOException
dir
- directory where we are looking for jar filesclassName
- name of the class we are looking for
java.io.IOException
- if an error occursprotected java.net.URL findResource(java.lang.String name)
ClassLoader.findResource(java.lang.String)
private java.lang.String convertClassNameToResourceName(java.lang.String className)
className
-
private void loadJarFile(java.lang.String jarFileName) throws java.io.IOException
jarFileName
- name of the jar file we want to load
java.io.IOException
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |