Class AbstractCommandLine<T extends CommandLineArguments>

java.lang.Object
net.shibboleth.ext.spring.cli.AbstractCommandLine<T>
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.
  • Field Details

  • Constructor Details

    • AbstractCommandLine

      public AbstractCommandLine()
  • Method Details

    • setContextInitializer

      protected void setContextInitializer(@Nonnull ApplicationContextInitializer<? super FilesystemGenericApplicationContext> initializer)
      Set a context initializer.
      Parameters:
      initializer - what to set
    • 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