code: private static Object newInstance(String className,
                                        ClassLoader classLoader,
                                        Properties properties)
      {
          try {
              Class<?> spiClass;
              if (classLoader == null) {
                  spiClass = Class.forName(className);
              } else {
                  spiClass = classLoader.loadClass(className);
              }
              if (properties != null) {
                  Constructor constr = null;
                  try {
                      constr = spiClass.getConstructor(Properties.class);
                  } catch (Exception ex) {
                  }
                  if (constr != null) {
                      return constr.newInstance(properties);
                  }
              }
              return spiClass.newInstance();
          } catch (ClassNotFoundException x) {
              throw new ELException(
                  "Provider " + className + " not found", x);
          } catch (Exception x) {
              throw new ELException(
                  "Provider " + className + " could not be instantiated: " + x,
                  x);
          }
      }
docs: Creates an instance of the specified class using the specified
  <code>ClassLoader</code> object.
  
  @exception ELException if the given class could not be found
  or could not be instantiated