{title:'Console Commands', created:'8.0.0'}

The Microservice API provides support for simple console commands.

| public static void main(String[] args) { | Microservice | .create() | .args(args) | .build() | .start() | .startConsole() // Start console. | .join() | ; | }

When started, the console renders the following output:

| Running class 'Microservice' using config file 'my-microservice.cfg'. | | List of available commands: | exit -- Shut down service | restart -- Restarts service | help -- Commands help | | >

The builder methods for controlling the console are as follows:

- {@link oaj.microservice.Microservice.Builder}
  - {@link oaj.microservice.Microservice.Builder#consoleEnabled(boolean) consoleEnabled(boolean)}
  - {@link oaj.microservice.Microservice.Builder#consoleCommands(ConsoleCommand...) consoleCommands(ConsoleCommand...)}
  - {@link oaj.microservice.Microservice.Builder#consoleCommands(Class...) consoleCommands(Class...)}
  - {@link oaj.microservice.Microservice.Builder#console(Scanner,PrintWriter) console(Scanner,PrintWriter)}

By default, the supported commands are pulled from the configuration file:

| #======================================================================================================================= | # Console settings | #======================================================================================================================= | [Console] | | enabled = true | | # List of available console commands. | # These are classes that implements ConsoleCommand that allow you to submit commands to the microservice via | # the console. | # When listed here, the implementations must provide a no-arg constructor. | # They can also be provided dynamically by overriding the Microservice.createConsoleCommands() method. | commands = | org.apache.juneau.microservice.console.ExitCommand, | org.apache.juneau.microservice.console.RestartCommand, | org.apache.juneau.microservice.console.HelpCommand

New commands can be added by adding them to the configuration file, or programmatically using the {@link oaj.microservice.Microservice.Builder#consoleCommands(ConsoleCommand...) consoleCommands(ConsoleCommand...)} builder method.

The API for defining console commands is shown below:

- {@link oaj.microservice.console.ConsoleCommand}
  - {@link oaj.microservice.console.ConsoleCommand#execute(Scanner,PrintWriter,Args) execute(Scanner,PrintWriter,Args)}
  - {@link oaj.microservice.console.ConsoleCommand#getDescription() getDescription()}
  - {@link oaj.microservice.console.ConsoleCommand#getExamples() getExamples()}
  - {@link oaj.microservice.console.ConsoleCommand#getInfo() getInfo()}
  - {@link oaj.microservice.console.ConsoleCommand#getName() getName()}
  - {@link oaj.microservice.console.ConsoleCommand#getSynopsis() getSynopsis()}

By default, the console input and output are taken from {@link java.lang.System#in} and {@link java.lang.System#out}. These can be overridden using the {@link oaj.microservice.Microservice.Builder#console(Scanner,PrintWriter) console(Scanner,PrintWriter)} method.