@Override
    public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {

        if (context.getRunningMode() == RunningMode.ADMIN_ONLY) {
            throw new OperationFailedException(HostControllerLogger.ROOT_LOGGER.cannotStartServersInvalidMode(context.getRunningMode()));
        }

        final String serverName = context.getCurrentAddressValue();
        final boolean blocking = BLOCKING.resolveModelAttribute(context, operation).asBoolean();
        final boolean suspend = START_MODE.resolveModelAttribute(context, operation).asString().toLowerCase(Locale.ENGLISH).equals(SUSPEND);

        final ModelNode model = Resource.Tools.readModel(context.readResourceFromRoot(PathAddress.EMPTY_ADDRESS, true));
        context.addStep(new OperationStepHandler() {
            @Override
            public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
                // WFLY-2189 trigger a write-runtime authz check
                context.getServiceRegistry(true);

                final ServerStatus origStatus = serverInventory.determineServerStatus(serverName);
                if (origStatus != ServerStatus.STARTED) {
                    throw new OperationFailedException(HostControllerLogger.ROOT_LOGGER.cannotRestartServer(serverName, origStatus));
                }
                final ServerStatus status = serverInventory.restartServer(serverName, -1, model, blocking, suspend);
                context.getResult().set(status.toString());
                context.completeStep(OperationContext.RollbackHandler.NOOP_ROLLBACK_HANDLER);
            }
        }, OperationContext.Stage.RUNTIME);
    }
@ Override public void execute ( OperationContext context , ModelNode operation ) throws OperationFailedException { if ( context . getRunningMode ( ) == RunningMode . ADMIN_ONLY ) { throw new OperationFailedException ( HostControllerLogger . ROOT_LOGGER . cannotStartServersInvalidMode ( context . getRunningMode ( ) ) ) ; } final String serverName = context . getCurrentAddressValue ( ) ; final boolean blocking = BLOCKING . resolveModelAttribute ( context , operation ) . asBoolean ( ) ; final boolean suspend = START_MODE . resolveModelAttribute ( context , operation ) . asString ( ) . toLowerCase ( Locale . ENGLISH ) . equals ( SUSPEND ) ; final ModelNode model = Resource . Tools . readModel ( context . readResourceFromRoot ( PathAddress . EMPTY_ADDRESS , true ) ) ; context . addStep ( new OperationStepHandler ( ) { @ Override public void execute ( OperationContext context , ModelNode operation ) throws OperationFailedException { context . getServiceRegistry ( true ) ; final ServerStatus origStatus = serverInventory . determineServerStatus ( serverName ) ; if ( origStatus != ServerStatus . STARTED ) { throw new OperationFailedException ( HostControllerLogger . ROOT_LOGGER . cannotRestartServer ( serverName , origStatus ) ) ; } final ServerStatus status = serverInventory . restartServer ( serverName , - 1 , model , blocking , suspend ) ; context . getResult ( ) . set ( status . toString ( ) ) ; context . completeStep ( OperationContext . RollbackHandler . NOOP_ROLLBACK_HANDLER ) ; } } , OperationContext . Stage . RUNTIME ) ; }
{@inheritDoc}