code: public static Class loadClass(String className) throws ClassException {
  	Set<Throwable> exceptions = new HashSet<Throwable>();
  	// OSGI env
  	Class clazz = _loadClass(new OSGiBasedClassLoading(), className, null, exceptions);
  	if (clazz != null) {
  	    return clazz;
  	}
  
  	// core classloader
  	clazz = _loadClass(new ClassLoaderBasedClassLoading(SystemUtil.getCoreClassLoader()), className, null, exceptions);
  	if (clazz != null) {
  	    return clazz;
  	}
  
  	// loader classloader
  	clazz = _loadClass(new ClassLoaderBasedClassLoading(SystemUtil.getLoaderClassLoader()), className, null, exceptions);
  	if (clazz != null) {
  	    return clazz;
  	}
  
  	String msg = "cannot load class through its string name, because no definition for the class with the specified name [" + className + "] could be found";
  	if (exceptions.size() > 0) {
  	    StringBuilder detail = new StringBuilder();
  	    Iterator<Throwable> it = exceptions.iterator();
  	    Throwable t;
  	    while (it.hasNext()) {
  		t = it.next();
  		detail.append(t.getClass().getName()).append(':').append(t.getMessage()).append(';');
  	    }
  	    throw new ClassException(msg + " caused by (" + detail.toString() + ")");
  	}
  	throw new ClassException(msg);
      }
docs: loads a class from a String classname
  
  @param className
  @return matching Class
  @throws ClassException