docs: public void initialize(WebAppConfiguration config, DeployedModule moduleConfig, // BEGIN:
                             List extensionFactories) throws ServletException, Throwable {
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && logger.isLoggable(Level.FINE))
              logger.entering(CLASS_NAME, "Initialize WebApp -> [ " + this + " ]");
  
          this.loader = moduleConfig.getClassLoader(); // NEVER INVOKED BY
          // WEBSPHERE APPLICATION
          // SERVER (Common Component
          // Specific)
          this.applicationName = config.getApplicationName(); // NEVER INVOKED BY
          // WEBSPHERE APPLICATION
          // SERVER (Common
          // Component Specific)
  
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && logger.isLoggable(Level.FINE))
              logger.logp(Level.FINE, CLASS_NAME, "initialize", "Initializing application " + this.applicationName);
          // PK63920 End
          serverInfo = getServerInfo(); // NEVER INVOKED BY WEBSPHERE APPLICATION
          // SERVER (Common Component Specific)
  
          // Initialize the Logger for IDGeneratorImpl before setting Thread context ClassLoader
          // in order to avoid using the application ClassLoader to load the Logger's resource bundle.
          IDGeneratorImpl.init();
  
          ClassLoader origClassLoader = null; // NEVER INVOKED BY WEBSPHERE
          // APPLICATION SERVER (Common
          // Component Specific)
          try {
              origClassLoader = ThreadContextHelper.getContextClassLoader(); // NEVER
              // INVOKED
              // BY
              // WEBSPHERE
              // APPLICATION
              // SERVER
              // (Common
              // Component
              // Specific)
              final ClassLoader warClassLoader = getClassLoader(); // NEVER
              // INVOKED BY
              // WEBSPHERE
              // APPLICATION
              // SERVER
              // (Common
              // Component
              // Specific)
              if (warClassLoader != origClassLoader) // NEVER INVOKED BY WEBSPHERE
              // APPLICATION SERVER (Common
              // Component Specific)
              {
                  ThreadContextHelper.setClassLoader(warClassLoader); // NEVER
                  // INVOKED
                  // BY
                  // WEBSPHERE
                  // APPLICATION
                  // SERVER
                  // (Common
                  // Component
                  // Specific)
              } else {
                  origClassLoader = null; // NEVER INVOKED BY WEBSPHERE
                  // APPLICATION SERVER (Common Component
                  // Specific)
              }
  
              commonInitializationStart(config, moduleConfig); // NEVER INVOKED BY
              // WEBSPHERE
              // APPLICATION
              // SERVER (Common
              // Component
              // Specific)
              
              callWebAppInitializationCollaborators(InitializationCollaborCommand.STARTING);
  
              // No longer in use; post-construct and pre-destroy are located on demand.
              // Find annotations like PostConstruct and PreDestroy on objects in this web app
              // setupWebAppAnnotations();
  
              webAppNameSpaceCollab.preInvoke(config.getMetaData().getCollaboratorComponentMetaData()); //added 661473
              commonInitializationFinish(extensionFactories); // NEVER INVOKED BY
              
              this.initializeServletContainerInitializers(moduleConfig);
              
              loadLifecycleListeners(); //added 661473
              // WEBSPHERE
              // APPLICATION
              // SERVER (Common
              // Component
              // Specific)
              try {
                  //moved out of commonInitializationFinish
                  notifyServletContextCreated();
              } catch (Throwable th) {
                  // pk435011
                  logger.logp(Level.SEVERE, CLASS_NAME, "initialize", "error.notifying.listeners.of.WebApp.start", new Object[] { th });
                  if (WCCustomProperties.STOP_APP_STARTUP_ON_LISTENER_EXCEPTION) {          //PI58875
                      if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && logger.isLoggable(Level.FINE))
                          logger.logp(Level.FINE, CLASS_NAME, "initialize", "rethrowing exception due to stopAppStartupOnListenerException");
                      throw th;
                  }
              }
              commonInitializationFinally(extensionFactories); // NEVER INVOKED BY
              webAppNameSpaceCollab.postInvoke(); //added 661473            
              // WEBSPHERE
              // APPLICATION
              // SERVER (Common
              // Component
              // Specific)
              
              // Fix for 96420, in which if the first call to AnnotationHelperManager happens in destroy(), we can get 
              // errors because the bundle associated with the thread context classloader may have been uninstalled, 
              // resulting in us being unable to load a resource bundle for AnnotationHelperManager. 
              AnnotationHelperManager.verifyClassIsLoaded();
              
          } finally {
              if (origClassLoader != null) // NEVER INVOKED BY WEBSPHERE
              // APPLICATION SERVER (Common Component
              // Specific)
              {
                  final ClassLoader fOrigClassLoader = origClassLoader; // NEVER
                  // INVOKED
                  // BY
                  // WEBSPHERE
                  // APPLICATION
                  // SERVER
                  // (Common
                  // Component
                  // Specific)
  
                  ThreadContextHelper.setClassLoader(fOrigClassLoader); // NEVER
                  // INVOKED
                  // BY
                  // WEBSPHERE
                  // APPLICATION
                  // SERVER
                  // (Common
                  // Component
                  // Specific)
              }
              if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && logger.isLoggable(Level.FINE))
                  logger.exiting(CLASS_NAME, "initializeTargetMappings");
          }
          // PK63920 Start
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && logger.isLoggable(Level.FINE))
              logger.exiting(CLASS_NAME, "Initialize WebApp -> [ " + this + " ] ApplicationName -> [ " + config.getApplicationName() + " ]");
          // PK63920 End
      }