Class ShutdownHandler

java.lang.Object
All Implemented Interfaces:
Handler, HandlerContainer, Container, Destroyable, Dumpable, Dumpable.DumpableContainer, LifeCycle

public class ShutdownHandler extends HandlerWrapper
A handler that shuts the server down on a valid request. Used to do "soft" restarts from Java. If _exitJvm is set to true a hard System.exit() call is being made. If _sendShutdownAtStart is set to true, starting the server will try to shut down an existing server at the same port. If _sendShutdownAtStart is set to true, make an http call to "http://localhost:" + port + "/shutdown?token=" + shutdownCookie in order to shut down the server. This handler is a contribution from Johannes Brodwall: https://bugs.eclipse.org/bugs/show_bug.cgi?id=357687 Usage:
 Server server = new Server(8080);
 HandlerList handlers = new HandlerList();
 handlers.setHandlers(new Handler[]
 { someOtherHandler, new ShutdownHandler("secret password", false, true) });
 server.setHandler(handlers);
 server.start();
 
 public static void attemptShutdown(int port, String shutdownCookie) {
 try {
 URL url = new URL("http://localhost:" + port + "/shutdown?token=" + shutdownCookie);
 HttpURLConnection connection = (HttpURLConnection)url.openConnection();
 connection.setRequestMethod("POST");
 connection.getResponseCode();
 logger.info("Shutting down " + url + ": " + connection.getResponseMessage());
 } catch (SocketException e) {
 logger.debug("Not running");
 // Okay - the server is not running
 } catch (IOException e) {
 throw new RuntimeException(e);
 }
 }