code: @SuppressWarnings("unchecked")
      public static <T> T getInstanceInitParameter(ExternalContext context, String name, 
              String deprecatedName, T defaultValue)
      {
          String param = getStringInitParameter(context, name, deprecatedName);
          if (param == null)
          {
              return defaultValue;
          }
          else
          {
              try
              {
                  return (T) ClassUtils.classForName(param).newInstance();
              }
              catch (Exception e)
              {
                  throw new FacesException("Error Initializing Object[" + param + "]", e);
              }
          }
      }
docs: Gets the init parameter value from the specified context and instanciate it.
  If the parameter was not specified, the default value is used instead.
  
  @param context
  the application's external context
  @param name
  the init parameter's name
  @param deprecatedName
  the init parameter's deprecated name.
  @param defaultValue
  the default value to return in case the parameter was not set
  
  @return the init parameter value as an object instance
  
  @throws NullPointerException
  if context or name is <code>null</code>