Class AbstractCommandLine<T extends CommandLineArguments>

  • Type Parameters:
    T - argument object type

    public abstract class AbstractCommandLine<T extends CommandLineArguments>
    extends Object
    A simple driver for a Spring-based CLI. This class handles a single parameters, the primary Spring configuration resource. Additional parameters may be handled by subclasses. All logging is done in accordance with the logback.xml file included in the library. If you wish to use a different logging configuration you may do so using the -Dlogback.configurationFile=/path/to/logback.xml JVM configuration option.
    • Constructor Detail

      • AbstractCommandLine

        public AbstractCommandLine()
    • Method Detail

      • getApplicationContext

        @Nonnull
        protected GenericApplicationContext getApplicationContext()
        Get the Spring context.
        Returns:
        Spring context
      • getAdditionalSpringResources

        @Nonnull
        @NonnullElements
        @Unmodifiable
        @NotLive
        protected List<Resource> getAdditionalSpringResources()
        Return any additional resources that should be prepended to that supplied by the caller.
        Returns:
        the resources
      • run

        protected int run​(@Nonnull
                          String[] args)
        Run method.
        Parameters:
        args - command line arguments
        Returns:
        exit code
      • setLoggingProperty

        private void setLoggingProperty​(@Nonnull
                                        String value)
        Set the logback configuration to a specific location.

        Note that this must be done before the first logger is retrieved.

        Parameters:
        value - logback configuration location to set
      • setLoggingToLocalResource

        private void setLoggingToLocalResource​(@Nonnull
                                               String value)
        Set the logback configuration to a specific package-local resource.
        Parameters:
        value - name of resource to use as the logback configuration file
      • initLogging

        protected void initLogging​(@Nonnull
                                   T args)
        Initialize the logging subsystem.
        Parameters:
        args - command line arguments
      • doRun

        protected int doRun​(@Nonnull
                            T args)
        The execution method to override. The default implementation handles Spring context creation.
        Parameters:
        args - input arguments
        Returns:
        exit code
      • getArgumentClass

        @Nonnull
        protected abstract Class<T> getArgumentClass()
        Get the class of the argument object to instantiate.
        Returns:
        argument class
      • getVersion

        @Nonnull
        @NotEmpty
        protected abstract String getVersion()
        Return an appropriate version value.
        Returns:
        a version string
      • getLogger

        @Nonnull
        protected abstract org.slf4j.Logger getLogger()
        Get logger.
        Returns:
        logger
      • error

        private static void error​(@Nonnull @NotEmpty
                                  String error)
        Prints the error message to STDERR.
        Parameters:
        error - the error message