code: protected void deactivate(ComponentContext context) {
          if (TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINER)) {
              LoggingUtil.SESSION_LOGGER_CORE.entering(CLASS_NAME, "deactivate", context);
          }
          this.unregisterSessionManager(); // we won't restart applications in this case, so assume someone else stops them
          if (TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINER)) {
              LoggingUtil.SESSION_LOGGER_CORE.exiting(CLASS_NAME, "deactivate");
          }
      }
docs: Since this service is immediate and dynamic, it will not be
  deactivated unless the Servlet feature is removed. When this happens,
  we assume that an external feature stops applications appropariately.
  The deactivate should NOT stop applications via the appRecycleService
  because it will NOT be able to issue a corresponding start operation
  on the appRecycleService.
  
  @param context the context used to register the SessionManager service