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.

    Author:
    Kohsuke Kawaguchi
    • Field Detail

      • 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 Detail

      • AbstractWebAppMain

        protected AbstractWebAppMain​(Class<T> rootType)
    • Method Detail

      • 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.
      • 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.