code: public static Object newInstanceFromName(Object enclosingObject, String className, ClassLoader classLoader) {
  		try {
  			Class<?> clazz = Class.forName(className, false, classLoader);
  			for (Constructor<?> c : clazz.getConstructors()) {
  				Class<?>[] parameterTypes = c.getParameterTypes();
  				if (parameterTypes.length == 0) {
  					return c.newInstance();
  				} else if (parameterTypes.length == 1 && enclosingObject != null && parameterTypes[0].equals(enclosingObject.getClass())) {
  					return c.newInstance(enclosingObject);
  				}
  			}
  			return clazz.newInstance();
  		} catch (Exception e) {
  			String m = "Couldn't create instance from name " + className + " (" + e.getMessage() + ")";
  			LOG.error(m, e);
  			throw new RuntimeException(m);
  		}
  	}
docs: Creates an instance from a String class name.
  
  @param className
  full class name
  @param classLoader
  the class will be loaded with this ClassLoader
  @return new instance of the class
  @throws RuntimeException
  if class not found or could not be instantiated