docs: @FFDCIgnore(Exception.class)
      public void deactivate(ComponentContext componentContext) {
          String methodName = "deactivate";
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) {
              Tr.event(tc, "Deactivating the WebContainer bundle");
          }
          
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, methodName, "Posting STOPPED_EVENT");
          }
          Event event = this.eventService.createEvent(WebContainerConstants.STOPPED_EVENT);
          this.eventService.postEvent(event);
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, methodName, "Posted STOPPED_EVENT");
          }
  
          this.classLoadingSRRef.deactivate(componentContext);
          this.sessionHelperSRRef.deactivate(componentContext);
          this.cacheManagerSRRef.deactivate(componentContext);
          this.injectionEngineSRRef.deactivate(componentContext);
          this.managedObjectServiceSRRef.deactivate(context);
          this.servletContainerInitializers.deactivate(componentContext);
          this.transferContextServiceRef.deactivate(componentContext);
          this.webMBeanRuntimeServiceRef.deactivate(componentContext);
  
          // will now purge each host as it becomes redundant rather than all here.
          //this.vhostManager.purge(); // Clear/purge all maps.
  
          WebContainer.instance.compareAndSet(this, null);
          extensionFactories.clear();
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, methodName, "Deactivating the WebContainer bundle: Complete");
          }                
      }