io.vertx.ext.shell

## Interface ShellServer

-     public interface ShellServer

  The shell server.

  A shell server is associated with a collection of `term servers`: the `registerTermServer(TermServer)` method registers a term server. Term servers life cycle are managed by this server.

  When a `term server` receives an incoming connection, a `JobController` instance is created and associated with this connection.

  The `createShell()` method can be used to create `JobController` instance for testing purposes.
  Author:
    Julien Viet

- - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default Future<Void>` | `close()` Close the shell server, this is an asynchronous close.
    `void` | `close(Handler<AsyncResult<Void>> completionHandler)` Close the shell server, this is an asynchronous close.
    `static ShellServer` | `create(Vertx vertx)` Create a new shell server with specific options.
    `static ShellServer` | `create(Vertx vertx, ShellServerOptions options)` Create a new shell server with default options.
    `Shell` | `createShell()` Create a new shell, the returned shell should be closed explicitely.
    `Shell` | `createShell(Term term)` Create a new shell, the returned shell should be closed explicitely.
    `default Future<Void>` | `listen()` Start the shell service, this is an asynchronous start.
    `ShellServer` | `listen(Handler<AsyncResult<Void>> listenHandler)` Start the shell service, this is an asynchronous start.
    `ShellServer` | `registerCommandResolver(CommandResolver resolver)` Register a command resolver for this server.
    `ShellServer` | `registerTermServer(TermServer termServer)` Register a term server to this shell server, the term server lifecycle methods are managed by this shell server.
    `void` | `shellHandler(Handler<Shell> shellHandler)` Called when a new shell is created.

- - ### Method Detail

    - #### create

          static ShellServer create(Vertx vertx,
                                    ShellServerOptions options)

      Create a new shell server with default options.
      Parameters:
        `vertx` - the vertx
        `options` - the options
      Returns:
        the created shell server

    - #### create

          static ShellServer create(Vertx vertx)

      Create a new shell server with specific options.
      Parameters:
        `vertx` - the vertx
      Returns:
        the created shell server

    - #### registerCommandResolver

          ShellServer registerCommandResolver(CommandResolver resolver)

      Register a command resolver for this server.
      Parameters:
        `resolver` - the resolver
      Returns:
        a reference to this, so the API can be used fluently

    - #### registerTermServer

          ShellServer registerTermServer(TermServer termServer)

      Register a term server to this shell server, the term server lifecycle methods are managed by this shell server.
      Parameters:
        `termServer` - the term server to add
      Returns:
        a reference to this, so the API can be used fluently

    - #### createShell

          Shell createShell(Term term)

      Create a new shell, the returned shell should be closed explicitely.
      Parameters:
        `term` - the shell associated terminal
      Returns:
        the created shell

    - #### createShell

          Shell createShell()

      Create a new shell, the returned shell should be closed explicitely.
      Returns:
        the created shell

    - #### listen

          default Future<Void> listen()

      Start the shell service, this is an asynchronous start.

    - #### listen

          ShellServer listen(Handler<AsyncResult<Void>> listenHandler)

      Start the shell service, this is an asynchronous start.
      Parameters:
        `listenHandler` - handler for getting notified when service is started

    - #### close

          default Future<Void> close()

      Close the shell server, this is an asynchronous close.

    - #### close

          void close(Handler<AsyncResult<Void>> completionHandler)

      Close the shell server, this is an asynchronous close.
      Parameters:
        `completionHandler` - handler for getting notified when service is stopped

    - #### shellHandler

          void shellHandler(Handler<Shell> shellHandler)

      Called when a new shell is created. Can be used to prepopulate the shell session with objects or set the prompt.
      Parameters:
        `shellHandler` - handler for getting notified when the server creates a new shell.

Copyright © 2020 Eclipse. All rights reserved.