Class AbstractWebAppMain<T>

java.lang.Object
org.kohsuke.stapler.framework.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.

Author:
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.
      Returns:
      null to synchronously load the application object.
    • createApplication

      protected abstract Object createApplication() throws Exception
      Creates the root application object.
      Throws:
      Exception
    • 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.
      Returns:
      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.