Class CommandRunnerImpl

  • All Implemented Interfaces:
    CommandRunner

    @Service
    public class CommandRunnerImpl
    extends Object
    implements CommandRunner
    Encapsulates the logic needed to execute a server-side command (for example, a descendant of AdminCommand) including injection of argument values into the command.
    Author:
    dochez, tjquinn, Bill Shannon
    • Constructor Detail

      • CommandRunnerImpl

        public CommandRunnerImpl()
    • Method Detail

      • getActionReport

        public ActionReport getActionReport​(String name)
        Returns an initialized ActionReport instance for the passed type or null if it cannot be found.
        Specified by:
        getActionReport in interface CommandRunner
        Parameters:
        name - action report type name
        Returns:
        uninitialized action report or null
      • getModel

        public CommandModel getModel​(String commandName,
                                     Logger logger)
        Returns the command model for a command name.
        Specified by:
        getModel in interface CommandRunner
        Parameters:
        commandName - command name
        logger - logger to log any error messages
        Returns:
        model for this command (list of parameters,etc...), or null if command is not found
      • getModel

        public CommandModel getModel​(String scope,
                                     String commandName,
                                     Logger logger)
        Returns the command model for a command name.
        Specified by:
        getModel in interface CommandRunner
        Parameters:
        commandName - command name
        logger - logger to log any error messages
        scope - the scope (or namespace) for the command
        Returns:
        model for this command (list of parameters,etc...), or null if command is not found
      • validateCommandModelETag

        public boolean validateCommandModelETag​(AdminCommand command,
                                                String eTag)
        Description copied from interface: CommandRunner
        Checks if given command model eTag is equal to current command model eTag
        Specified by:
        validateCommandModelETag in interface CommandRunner
        Parameters:
        command - Command to be checked
        eTag - ETag to validate
      • validateCommandModelETag

        public boolean validateCommandModelETag​(CommandModel model,
                                                String eTag)
        Description copied from interface: CommandRunner
        Checks if given command model eTag is equal to current command model eTag
        Specified by:
        validateCommandModelETag in interface CommandRunner
        Parameters:
        model - of command to be checked
        eTag - ETag to validate
      • getCommand

        public AdminCommand getCommand​(String commandName,
                                       ActionReport report,
                                       Logger logger)
        Obtain and return the command implementation defined by the passed commandName for the null scope.
        Specified by:
        getCommand in interface CommandRunner
        Parameters:
        commandName - command name as typed by users
        report - report used to communicate command status back to the user
        logger - logger to log
        Returns:
        command registered under commandName or null if not found
      • getCommand

        public AdminCommand getCommand​(String scope,
                                       String commandName,
                                       ActionReport report,
                                       Logger logger)
        Obtain and return the command implementation defined by the passed commandName.
        Specified by:
        getCommand in interface CommandRunner
        Parameters:
        commandName - command name as typed by users
        report - report used to communicate command status back to the user
        logger - logger to log
        scope - the scope (or namespace) for the command
        Returns:
        command registered under commandName or null if not found
      • getCommandInvocation

        public CommandRunner.CommandInvocation getCommandInvocation​(String name,
                                                                    ActionReport report,
                                                                    Subject subject)
        Description copied from interface: CommandRunner
        Obtain a new command invocation object for the null scope. Command invocations can be configured and used to trigger a command execution.
        Specified by:
        getCommandInvocation in interface CommandRunner
        Parameters:
        name - name of the requested command to invoke
        report - where to place the status of the command execution
        subject - the Subject under which to execute the command
        Returns:
        a new command invocation for that command name.
      • getCommandInvocation

        public CommandRunner.CommandInvocation getCommandInvocation​(String scope,
                                                                    String name,
                                                                    ActionReport report,
                                                                    Subject subject)
        Description copied from interface: CommandRunner
        Obtain a new command invocation object. Command invocations can be configured and used to trigger a command execution.
        Specified by:
        getCommandInvocation in interface CommandRunner
        Parameters:
        scope - the scope (or namespace) for the command
        name - name of the requested command to invoke
        report - where to place the status of the command execution
        subject - the Subject under which to execute the command
        Returns:
        a new command invocation for that command name.
      • getCommandInvocation

        public CommandRunner.CommandInvocation getCommandInvocation​(String name,
                                                                    ActionReport report,
                                                                    Subject subject,
                                                                    boolean isNotify)
        Obtain a new command invocation object for the null scope. Command invocations can be configured and used to trigger a command execution.
        Specified by:
        getCommandInvocation in interface CommandRunner
        Parameters:
        name - name of the requested command to invoke
        report - where to place the status of the command execution
        subject - the Subject under which to execute the command
        isNotify - should notification be enabled
        Returns:
        a new command invocation for that command name
      • getCommandInvocation

        public CommandRunner.CommandInvocation getCommandInvocation​(String scope,
                                                                    String name,
                                                                    ActionReport report,
                                                                    Subject subject,
                                                                    boolean isNotify)
        Obtain a new command invocation object. Command invocations can be configured and used to trigger a command execution.
        Specified by:
        getCommandInvocation in interface CommandRunner
        Parameters:
        scope - the scope (or name space) for the command
        name - name of the requested command to invoke
        report - where to place the status of the command execution
        subject - the Subject under which to execute the command
        isNotify - Should notification be enabled
        Returns:
        a new command invocation for that command name
      • getHelp

        public BufferedReader getHelp​(CommandModel model)
                               throws com.sun.enterprise.v3.admin.CommandNotFoundException
        Description copied from interface: CommandRunner
        Returns manpage for the command.
        Specified by:
        getHelp in interface CommandRunner
        Parameters:
        model - of command
        Returns:
        Formated manpage
        Throws:
        com.sun.enterprise.v3.admin.CommandNotFoundException
      • getManPage

        public static BufferedReader getManPage​(String commandName,
                                                CommandModel model)
        Return an InputStream for the man page for the named command.