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

com.caucho.v5.deploy2.DeployStrategy2 Maven / Gradle / Ivy

There is a newer version: 1.0.1
Show newest version
/*
 * Copyright (c) 1998-2015 Caucho Technology -- all rights reserved
 *
 * This file is part of Baratine(TM)
 *
 * Each copy or derived work must preserve the copyright notice and this
 * notice unmodified.
 *
 * Baratine 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.
 *
 * Baratine 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 Baratine; 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.v5.deploy2;

import com.caucho.v5.amp.spi.ShutdownModeAmp;

import io.baratine.service.Result;


/**
 * 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 DeployStrategy2 { DeployMode redeployMode(); /** * Called at initialization time for automatic start. * * @param controller the owning controller */ void startOnInit(DeployService2Impl service, Result result); /** * Starts the instance from an admin command. * * @param controller the owning controller */ void start(DeployService2Impl service, Result result); /** * Stops the instance from an admin command. * * @param controller the owning controller */ void shutdown(DeployService2Impl service, ShutdownModeAmp mode, Result result); /** * 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 */ void update(DeployService2Impl service, Result result); /** * 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 */ void request(DeployService2Impl service, Result result); /** * On a timeout, update or restart as necessary. * * @param controller the owning controller */ void alarm(DeployService2Impl service, Result result); }