docs: protected void commonInitializationStart(WebAppConfiguration config, DeployedModule moduleConfig) throws Throwable {
          // End 299205, Collaborator added in extension processor recieves no
          // events
          WebGroupConfiguration webGroupCfg = ((WebGroup) parent).getConfiguration();
          isServlet23 = webGroupCfg.isServlet2_3();
          int versionID = webGroupCfg.getVersionID();
          effectiveMajorVersion = versionID / 10;
          effectiveMinorVersion = versionID % 10;
  
          collabHelper = createCollaboratorHelper(moduleConfig); // must happen
          // before
          // createSessionContext
          // which calls
          // startEnvSetup
          webAppNameSpaceCollab = collabHelper.getWebAppNameSpaceCollaborator();
          // LIBERTY: make sure we initialize the connector collaborator before trying to use it
          collabHelper.getWebAppConnectionCollaborator();
  
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && logger.isLoggable(Level.FINE)) {
              logger.logp(Level.FINE, CLASS_NAME, "commonInitializationStart", "servlet spec version -->" + versionID +
                                                                               "effectiveMajorVersion->" + effectiveMajorVersion +
                                                                               "effectiveMinorVersion->" + effectiveMinorVersion);
          }
          contextPath = ((WebGroup) parent).getConfiguration().getContextRoot();
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && logger.isLoggable(Level.FINE)) {
              logger.logp(Level.FINE, CLASS_NAME, "commonInitializationStart", "contextPath -->" + contextPath);
          }
          this.webExtensionProcessor = this.getWebExtensionProcessor();
  
          this.staticDocRoot = new DocumentRootUtils(this,this.config,DocumentRootUtils.STATIC_FILE);
          this.jspDocRoot = new DocumentRootUtils(this,this.config,DocumentRootUtils.JSP);
          
          // LIBERTY CMD placeholder until we get metadata
          //WebModuleMetaData cmd = null;
          //webAppNameSpaceCollab.preInvoke(cmd);
  
          webAppNameSpaceCollab.preInvoke(config.getMetaData().getCollaboratorComponentMetaData());
          loadWebAppAttributes();
  
          // loadLifecycleListeners();
          //since we have now removed clearing the listeners from within loadLifecycleListeners (due to when it is being called), 
          //we need to add this method to clear listeners now in case there was an error and the app gets updated
          clearLifecycleListeners();
          webAppNameSpaceCollab.postInvoke();
  
          registerGlobalWebAppListeners();
          txCollab = collabHelper.getWebAppTransactionCollaborator();
          createSessionContext(moduleConfig);
          eventSource
                          .onApplicationStart(new ApplicationEvent(this, this, new com.ibm.ws.webcontainer.util.IteratorEnumerator(config.getServletNames())));
      }