Class RestartHandler

java.lang.Object
sunlabs.brazil.sunlabs.RestartHandler
All Implemented Interfaces:
sun.misc.SignalHandler, Handler

public class RestartHandler extends Object implements Handler, sun.misc.SignalHandler
Restart the server when a sigHUP is received. Only The handlers are restarted, by creating new instances of them, and calling the respective init() methods. None of the other server properties (such as the listening port) are effected. Any requests that are currently in-progress complete using the old configuration.

NOTES:

  • Supplying an invalid configuration file can render the server inoperable.
  • The non-portable sun.misc.Signal* classes are used.

Properties:

config
The name of the configuration file to use for this server. Relative paths are resolved relative to the current directory. If no file is specified, the server continues to use its existing configuration [which has presumably been modified in-place]. If a config file is specified and the config file hasn't changed, then no restart is done.
keep
If set, and a config file is specified, the existing configuration (server.props) is not cleared first.
  • Constructor Details

    • RestartHandler

      public RestartHandler()
  • Method Details

    • init

      public boolean init(Server server, String prefix)
      Description copied from interface: Handler
      Initializes the handler.
      Specified by:
      init in interface Handler
      Parameters:
      server - The HTTP server that created this Handler. Typical Handlers will use Server.props to obtain run-time configuration information.
      prefix - The handlers name. The string this Handler may prepend to all of the keys that it uses to extract configuration information from Server.props. This is set (by the Server and ChainHandler) to help avoid configuration parameter namespace collisions.
      Returns:
      true if this Handler initialized successfully, false otherwise. If false is returned, this Handler should not be used.
    • respond

      public boolean respond(Request request)
      Description copied from interface: Handler
      Responds to an HTTP request.
      Specified by:
      respond in interface Handler
      Parameters:
      request - The Request object that represents the HTTP request.
      Returns:
      true if the request was handled. A request was handled if a response was supplied to the client, typically by calling Request.sendResponse() or Request.sendError.
    • handle

      public void handle(sun.misc.Signal sig)
      Restart the server after re-reading the config file
      Specified by:
      handle in interface sun.misc.SignalHandler