ModelControllerImpl(final ServiceRegistry serviceRegistry, final ServiceTarget serviceTarget, final ManagementResourceRegistration rootRegistration, final ContainerStateMonitor stateMonitor, final ConfigurationPersister persister, final ProcessType processType, final RunningModeControl runningModeControl, final OperationStepHandler prepareStep, final ControlledProcessState processState, final ExecutorService executorService, final ExpressionResolver expressionResolver, final Authorizer authorizer, final ManagedAuditLogger auditLogger, NotificationSupport notificationSupport) { this.serviceRegistry = serviceRegistry; this.serviceTarget = serviceTarget; this.rootRegistration = rootRegistration; this.stateMonitor = stateMonitor; this.persister = persister; this.processType = processType; this.runningModeControl = runningModeControl; this.notificationSupport = notificationSupport; this.prepareStep = prepareStep == null ? new DefaultPrepareStepHandler() : prepareStep; this.processState = processState; this.serviceTarget.addListener(stateMonitor); this.executorService = executorService; this.expressionResolver = expressionResolver; this.authorizer = authorizer; this.auditLogger = auditLogger; this.hostServerGroupTracker = processType.isManagedDomain() ? new HostServerGroupTracker() : null; auditLogger.startBoot(); }