Class RepositoryStartupServlet

  • All Implemented Interfaces:
    java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig

    public class RepositoryStartupServlet
    extends AbstractRepositoryServlet
    The RepositoryStartupServlet starts a jackrabbit repository and registers it to the JNDI environment.

    Note: if a bootstrap-config init parameter is specified the servlet tries to read the respective resource, either as context resource or as file. The properties specified in this file override the init params specified in the web.xml.

    Setup Wizard Functionality
    When using the first time, the configuraition can miss the relevant repository parameters in the web.xml. if so, it must contain a bootstrap-config parameter that referrs to a propertiy file. This file must exsit for proper working. If not, the repository is not started.
    If the servlet is not configured correctly and accessed via http, it will provide a simple wizard for the first time configuration. It propmpts for a new (or existing) repository home and will copy the templates of the repository.xml and bootstrap.properties to the respective location.

    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String INIT_PARAM_BOOTSTRAP_CONFIG
      initial param name for the bootstrap config location
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected Repository createRepository​(java.io.File configJson, java.io.File homedir)
      Creates the repository instance for the given config and homedir.
      void destroy()
      destroy the servlet
      protected void doGet​(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)
      protected void doPost​(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)
      BootstrapConfig getBootstrapConfig()
      Returns the config that was used to bootstrap this servlet.
      static RepositoryStartupServlet getInstance​(javax.servlet.ServletContext context)
      Returns an instance of this servlet.
      Repository getRepository()
      Returns the started repository or null if not started yet.
      RepositoryFactory getRepositoryFactory()
      Returns a repository factory that returns the repository if available or throws an exception if not.
      void init()
      Initializes the servlet.
      Please note that only one repository startup servlet may exist per webapp.
      void restart()
      Restarts the repository.
      void shutdown()
      Does a shutdown of the repository and unbinds if from the JNDI context if so configured.
      void startup()
      Configures and starts the repository.
      • Methods inherited from class javax.servlet.http.HttpServlet

        doDelete, doHead, doOptions, doPut, doTrace, getLastModified, service, service
      • Methods inherited from class javax.servlet.GenericServlet

        getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • INIT_PARAM_BOOTSTRAP_CONFIG

        public static final java.lang.String INIT_PARAM_BOOTSTRAP_CONFIG
        initial param name for the bootstrap config location
        See Also:
        Constant Field Values
    • Constructor Detail

      • RepositoryStartupServlet

        public RepositoryStartupServlet()
    • Method Detail

      • init

        public void init()
                  throws javax.servlet.ServletException
        Initializes the servlet.
        Please note that only one repository startup servlet may exist per webapp. it registers itself as context attribute and acts as singleton.
        Overrides:
        init in class AbstractRepositoryServlet
        Throws:
        javax.servlet.ServletException - if a same servlet is already registered or of another initialization error occurs.
      • getInstance

        public static RepositoryStartupServlet getInstance​(javax.servlet.ServletContext context)
        Returns an instance of this servlet. Please note, that only 1 repository startup servlet can exist per webapp.
        Parameters:
        context - the servlet context
        Returns:
        this servlet
      • startup

        public void startup()
                     throws javax.servlet.ServletException
        Configures and starts the repository.
        Throws:
        javax.servlet.ServletException - if an error occurs.
      • shutdown

        public void shutdown()
        Does a shutdown of the repository and unbinds if from the JNDI context if so configured.
      • restart

        public void restart()
                     throws javax.servlet.ServletException
        Restarts the repository.
        Throws:
        javax.servlet.ServletException - if an error occurs.
        See Also:
        shutdown(), startup()
      • destroy

        public void destroy()
        destroy the servlet
        Specified by:
        destroy in interface javax.servlet.Servlet
        Overrides:
        destroy in class AbstractRepositoryServlet
      • getRepositoryFactory

        public RepositoryFactory getRepositoryFactory()
        Returns a repository factory that returns the repository if available or throws an exception if not.
        Returns:
        repository factory
      • createRepository

        protected Repository createRepository​(java.io.File configJson,
                                              java.io.File homedir)
                                       throws RepositoryException
        Creates the repository instance for the given config and homedir. Subclasses may override this method of providing own implementations of a Repository.
        Parameters:
        configJson - input source of the repository config
        homedir - the repository home directory
        Returns:
        a new jcr repository.
        Throws:
        RepositoryException - if an error during creation occurs.
      • getBootstrapConfig

        public BootstrapConfig getBootstrapConfig()
        Returns the config that was used to bootstrap this servlet.
        Returns:
        the bootstrap config or null.
      • doGet

        protected void doGet​(javax.servlet.http.HttpServletRequest req,
                             javax.servlet.http.HttpServletResponse resp)
                      throws javax.servlet.ServletException,
                             java.io.IOException
        Overrides:
        doGet in class AbstractRepositoryServlet
        Throws:
        javax.servlet.ServletException
        java.io.IOException
      • doPost

        protected void doPost​(javax.servlet.http.HttpServletRequest req,
                              javax.servlet.http.HttpServletResponse resp)
                       throws javax.servlet.ServletException,
                              java.io.IOException
        Overrides:
        doPost in class javax.servlet.http.HttpServlet
        Throws:
        javax.servlet.ServletException
        java.io.IOException