docs: public static void addService(final ServiceTarget serviceTarget, final Bootstrap.Configuration configuration,
                                    final ControlledProcessState processState, final BootstrapListener bootstrapListener,
                                    final RunningModeControl runningModeControl, final AbstractVaultReader vaultReader, final ManagedAuditLogger auditLogger,
                                    final DelegatingConfigurableAuthorizer authorizer, final ManagementSecurityIdentitySupplier securityIdentitySupplier,
                                    final SuspendController suspendController) {
  
          // Install Executor services
          final ThreadGroup threadGroup = new ThreadGroup("ServerService ThreadGroup");
          final String namePattern = "ServerService Thread Pool -- %t";
          final ThreadFactory threadFactory = doPrivileged(new PrivilegedAction<ThreadFactory>() {
              public ThreadFactory run() {
                  return new JBossThreadFactory(threadGroup, Boolean.FALSE, null, namePattern, null, null);
              }
          });
  
          // TODO determine why QueuelessThreadPoolService makes boot take > 35 secs
  //        final QueuelessThreadPoolService serverExecutorService = new QueuelessThreadPoolService(Integer.MAX_VALUE, false, new TimeSpec(TimeUnit.SECONDS, 5));
  //        serverExecutorService.getThreadFactoryInjector().inject(threadFactory);
          final boolean forDomain = ProcessType.DOMAIN_SERVER == getProcessType(configuration.getServerEnvironment());
          final ServerExecutorService serverExecutorService = new ServerExecutorService(threadFactory, forDomain);
          serviceTarget.addService(MANAGEMENT_EXECUTOR, serverExecutorService)
                  .addAliases(Services.JBOSS_SERVER_EXECUTOR, ManagementRemotingServices.SHUTDOWN_EXECUTOR_NAME) // Use this executor for mgmt shutdown for now
                  .install();
          final ServerScheduledExecutorService serverScheduledExecutorService = new ServerScheduledExecutorService(threadFactory);
          serviceTarget.addService(JBOSS_SERVER_SCHEDULED_EXECUTOR, serverScheduledExecutorService)
                  .addAliases(JBOSS_SERVER_SCHEDULED_EXECUTOR)
                  .addDependency(MANAGEMENT_EXECUTOR, ExecutorService.class, serverScheduledExecutorService.executorInjector)
                  .install();
  
          final CapabilityRegistry capabilityRegistry = configuration.getCapabilityRegistry();
          ServerService service = new ServerService(configuration, processState, null, bootstrapListener, new ServerDelegatingResourceDefinition(),
                  runningModeControl, vaultReader, auditLogger, authorizer, securityIdentitySupplier, capabilityRegistry, suspendController);
  
          ExternalManagementRequestExecutor.install(serviceTarget, threadGroup, EXECUTOR_CAPABILITY.getCapabilityServiceName(), service.getStabilityMonitor());
  
          ServiceBuilder<?> serviceBuilder = serviceTarget.addService(Services.JBOSS_SERVER_CONTROLLER, service);
          serviceBuilder.addDependency(DeploymentMountProvider.SERVICE_NAME,DeploymentMountProvider.class, service.injectedDeploymentRepository);
          serviceBuilder.addDependency(ContentRepository.SERVICE_NAME, ContentRepository.class, service.injectedContentRepository);
          serviceBuilder.addDependency(Services.JBOSS_SERVICE_MODULE_LOADER, ServiceModuleLoader.class, service.injectedModuleLoader);
          serviceBuilder.addDependency(Services.JBOSS_EXTERNAL_MODULE_SERVICE, ExternalModuleService.class,
                  service.injectedExternalModuleService);
          serviceBuilder.addDependency(PATH_MANAGER_CAPABILITY.getCapabilityServiceName(), PathManager.class, service.injectedPathManagerService);
          if (configuration.getServerEnvironment().isAllowModelControllerExecutor()) {
              serviceBuilder.addDependency(MANAGEMENT_EXECUTOR, ExecutorService.class, service.getExecutorServiceInjector());
          }
          if (configuration.getServerEnvironment().getLaunchType() == ServerEnvironment.LaunchType.DOMAIN) {
              serviceBuilder.addDependency(HostControllerConnectionService.SERVICE_NAME, ControllerInstabilityListener.class,
                      service.getContainerInstabilityInjector());
          }
  
          serviceBuilder.install();
      }