private static Class getClass (String className)
throws ClassNotFoundException, IllegalAccessException,
InstantiationException {
Method m = null;
ClassLoader cl = null;
try {
m = Thread.class.getMethod("getContextClassLoader", null);
} catch (NoSuchMethodException e) {
// Assume that we are running JDK 1.1, use the current ClassLoader
cl = DOMImplementationRegistry.class.getClassLoader();
}
if (cl == null ) {
try {
cl = (ClassLoader) m.invoke(Thread.currentThread(), null);
} catch (IllegalAccessException e) {
// assert(false)
throw new UnknownError(e.getMessage());
} catch (InvocationTargetException e) {
// assert(e.getTargetException() instanceof SecurityException)
throw new UnknownError(e.getMessage());
}
}
if (cl == null) {
// fall back to Class.forName
return Class.forName(className);
}
try {
return cl.loadClass(className);
} catch (ClassNotFoundException e) {
return Class.forName(className);
}
}