docs: public synchronized void initialize(ContainerConfig configData) throws CSIException {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled(); // d532639.2
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "initialize");
  
          if (initialized) {
              throw new CSIException("already initialized");
          }
  
          this.containerExtFactory = configData.getContainerExtensionFactory(); // 125942
          this.ivEJBRuntime = configData.getEJBRuntime(); // F743-12528
          classLoader = configData.getClassLoader();
          if (classLoader == null)
              classLoader = this.getClass().getClassLoader(); // 92886
          this.ivName = configData.getContainerName();
          this.persisterFactory = configData.getPersisterFactory();
          EJSContainer.sessionKeyFactory = configData.getSessionKeyFactory();
          this.sessionHandleFactory = configData.getStatefulSessionHandleFactory();//86203
          this.ivSecurityCollaborator = configData.getSecurityCollaborator();
  
          this.uowCtrl = configData.getUOWControl();
          this.userTransactionImpl = uowCtrl.getUserTransaction();
          this.ivUOWManager = UOWManagerFactory.getUOWManager(); // LI4548-11
          this.ivAfterActivationCollaborators = configData.getAfterActivationCollaborators();
          this.ivBeforeActivationCollaborators = configData.getBeforeActivationCollaborators();
          this.ivBeforeActivationAfterCompletionCollaborators = configData.getBeforeActivationAfterCompletionCollaborators();//92702
          j2eeNameFactory = configData.getJ2EENameFactory();//89554
          this.pmiFactory = configData.getPmiBeanFactory();//86523.3
          this.ivObjectCopier = configData.getObjectCopier(); // RTC102299
          this.orbUtils = configData.getOrbUtils();//87918.11
          this.ivEntityHelper = configData.getEntityHelper();
          this.ivSFSBFailoverEnabled = configData.isEnabledSFSBFailover(); //LIDB2018-1
          this.ivSfFailoverCache = configData.getStatefulFailoverCache(); //LIDB2018-1
          this.passivator = configData.getStatefulPassivator(); // F87439
          this.ivStatefulBeanEnqDeq = configData.getStatefulBeanEnqDeq(); // d646413.2
          this.ivDispatchEventListenerManager = configData.getDispatchEventListenerManager(); // d646413.2
  
          //-------------------------------------------------
          // FIX ME: make cache size parameters configurable
          //-------------------------------------------------
  
          poolManager = configData.getPoolManager();//87918.7
          activator = new Activator(this, configData.getEJBCache(), configData.getPassivationPolicy(), passivator, ivSfFailoverCache); //LIDB2018-1
          homeOfHomes = new HomeOfHomes(this, activator);
          int uncached = Activator.UNCACHED_ACTIVATION_STRATEGY;
          ActivationStrategy as = activator.getActivationStrategy(uncached);
          homeOfHomes.setActivationStrategy(as);
  
          wrapperManager = configData.getWrapperManager();
  
          // Register an instance of RunUnderUOWCallback with the UOWManager,
          // so the EJB Container is notified when a 'user' (like Spring)
          // initiates a transaction.                                      LI4548-11
          ivUOWManager.registerRunUnderUOWCallback(new RunUnderUOWCallback());
  
          initialized = true;
          defaultContainer = this; // f111627.1
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "initialize");
      }