docs: public ExtensionProcessor createExtensionProcessor(IServletContext webapp) throws Exception {
  
          applicationName = webapp.getServletContextName();
  
          if (log.isLoggable(Level.FINE)) {
              log.logp(Level.FINE, CLASS_NAME, "createExtensionProcessor", "Enter createExtensionProcessor(): webapp =[" + applicationName + "]");
          }
  
          WebAppConfig config = webapp.getWebAppConfig();
  
          if (!isFacesApp(config)) {
              webapp.setAttribute(JSFConstants.JSF_IMPL_ENABLED_PARAM, JSFImplEnabled.None);
              if (log.isLoggable(Level.FINE)) {
                  log.logp(Level.FINE, CLASS_NAME, "createExtensionProcessor", "Exit createExtensionProcessor(): JSF is not enabled for webapp =[" + applicationName + "]");
              }
              return null;
          }
  
          //initialize the JSF runtime based on the FacesServlet loaded in the webapp
          initFaces(webapp, config);
  
          //set a context attribute for later queries on which JSF impl is in use. 
          webapp.setAttribute(JSFConstants.JSF_IMPL_ENABLED_PARAM, jsfImplEnabled);
  
          if (log.isLoggable(Level.FINE)) {
              log.logp(Level.FINE, CLASS_NAME, "createExtensionProcessor", "Exit createExtensionProcessor(): JSF is enabled for webapp: [" + applicationName
                                                                           + "] using implementation=[" + jsfImplEnabled + "]");
          }
  
          //if (jsfImplEnabled == JSFImplEnabled.MyFaces) {
          //    setValidatorFactoryAttribute(webapp);
          //}
  
          return new JSFExtensionProcessor(webapp);
      }