Class AbstractWebAppMain<T>

Type Parameters:
T - The type of the root object instance
All Implemented Interfaces:
EventListener, javax.servlet.ServletContextListener

public abstract class AbstractWebAppMain<T> extends Object implements javax.servlet.ServletContextListener
Entry point for web applications.

Applications that use stapler can use this as the base class, and then register that as the servlet context listener.

Kohsuke Kawaguchi
  • Field Details

    • rootType

      protected final Class<T> rootType
    • context

      protected javax.servlet.ServletContext context
    • home

      protected File home
      Once the home directory is determined, this value is set to that directory.
  • Constructor Details

    • AbstractWebAppMain

      protected AbstractWebAppMain(Class<T> rootType)
  • Method Details

    • getApplicationName

      protected abstract String getApplicationName()
      Returns the application name, like "Hudson" or "Torricelli". The method should always return the same value. The name should only contain alpha-numeric character.
    • createPlaceHolderForAsyncLoad

      protected Object createPlaceHolderForAsyncLoad()
      If the root application object is loaded asynchronously, override this method to return the place holder object to serve the request in the mean time.
      null to synchronously load the application object.
    • createApplication

      protected abstract Object createApplication() throws Exception
      Creates the root application object.
    • contextInitialized

      public void contextInitialized(javax.servlet.ServletContextEvent event)
      Specified by:
      contextInitialized in interface javax.servlet.ServletContextListener
    • setApplicationObject

      protected void setApplicationObject()
      Sets the root application object.
    • getInitializer

      public Future<Object> getInitializer()
      Returns a Future of getApplication(). Useful to synchronize on the completion of initialization, successful or otherwise.
    • getApplication

      public Object getApplication()
      Returns the root application object created in createApplication()
    • checkEnvironment

      protected boolean checkEnvironment()
      Performs pre start-up environment check.
      false if a check fails. Webapp will fail to boot in this case.
    • getHomeDir

      protected File getHomeDir()
      Determines the home directory for the application. People makes configuration mistakes, so we are trying to be nice with those by doing String.trim().
    • getDefaultHomeDir

      protected File getDefaultHomeDir()
      If no home directory is configured, this method is called to determine the default location, which is "~/.appname". Override this method to change that behavior.
    • contextDestroyed

      public void contextDestroyed(javax.servlet.ServletContextEvent event)
      Specified by:
      contextDestroyed in interface javax.servlet.ServletContextListener
    • cleanUp

      protected void cleanUp(T app)
      Called during the destruction of the web app to perform any clean up act on the application object.