All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.caucho.env.deploy.DeployControllerStrategy Maven / Gradle / Ivy

/*
 * Copyright (c) 1998-2018 Caucho Technology -- all rights reserved
 *
 * This file is part of Resin(R) Open Source
 *
 * Each copy or derived work must preserve the copyright notice and this
 * notice unmodified.
 *
 * Resin Open Source is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * Resin Open Source is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
 * of NON-INFRINGEMENT.  See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Resin Open Source; if not, write to the
 *
 *   Free Software Foundation, Inc.
 *   59 Temple Place, Suite 330
 *   Boston, MA 02111-1307  USA
 *
 * @author Scott Ferguson
 */

package com.caucho.env.deploy;


/**
 * DeployController controls the lifecycle of the DeployInstance.
 *
 * 

States

* *
    *
  • active - responds to requests normally *
  • modified - active with a dependency change like a web.xml *
  • active-idle - active idle state, which can be stopped on timeout *
  • active-error - configuration error (before timeout) *
  • error - configuration error (after timeout) *
  • stop - admin stop, refuses requests with a 503 *
  • stop-lazy - lazy stop *
* * error-wait is equivalent to the active state. idle and inactive only * applies to startup=lazy. * *

events

* *
    *
  • startOnInit - called at startup time for automatic start *
  • start - admin start *
  • stop - admin stop *
  • update - admin update/restart, ends up in initial state *
  • request - top-level request *
  • subrequest - include/forward *
  • alarm - timeout *
  • */ public interface DeployControllerStrategy { /** * Called at initialization time for automatic start. * * @param controller the owning controller */ public void startOnInit(DeployController controller); /** * Starts the instance from an admin command. * * @param controller the owning controller */ public void start(DeployController controller); /** * Stops the instance from an admin command. * * @param controller the owning controller */ public void stop(DeployController controller); /** * Checks for updates from an admin command. The target state will be the * initial state, i.e. update will not start a lazy instance. * * @param controller the owning controller */ public void update(DeployController controller); /** * On a top-level request, returns the deploy instance, starting if necessary. * * @param controller the owning controller * @return the active deploy instance or null if none are active */ /* XXX: should request always return an instance? */ public I request(DeployController controller); /** * On a sub-request, returns the deploy instance, starting if necessary. * * @param controller the owning controller * @return the active deploy instance or null if none are active */ /* XXX: should request always return an instance? */ public I subrequest(DeployController controller); /** * On a timeout, update or restart as necessary. * * @param controller the owning controller */ public void alarm(DeployController controller); }