Class OortConfigServlet

  • All Implemented Interfaces:
    jakarta.servlet.Servlet, jakarta.servlet.ServletConfig, java.io.Serializable
    Direct Known Subclasses:
    OortMulticastConfigServlet, OortStaticConfigServlet

    public abstract class OortConfigServlet
    extends jakarta.servlet.http.HttpServlet

    This servlet serves as a base class for initializing and configuring an instance of the Oort CometD cluster manager.

    The following servlet init parameters are used to configure the Oort instance:

    • oort.url, the absolute public URL to the CometD servlet
    • oort.secret, the pre-shared secret that Oort servers use to authenticate connections from other Oort comets
    • oort.channels, a comma separated list of channels that will be passed to Oort.observeChannel(String)
    • clientDebug, a boolean that enables debugging of the clients connected to other oort cluster managers

    Override method newOort(BayeuxServer, String) to return a customized instance of Oort.

    See Also:
    SetiServlet, Serialized Form
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected abstract void configureCloud​(jakarta.servlet.ServletConfig config, Oort oort)
      Configures the Oort cloud by establishing connections with other Oort comets.
      protected void configureOort​(jakarta.servlet.ServletConfig config, Oort oort)
      Configures the Oort instance with servlet init parameters.
      void destroy()  
      void init​(jakarta.servlet.ServletConfig config)  
      protected Oort newOort​(BayeuxServer bayeux, java.lang.String url)
      Creates and returns a new Oort instance.
      protected java.lang.String provideOortURL()
      Retrieves the oort.url parameter from this servlet init parameters.
      • Methods inherited from class jakarta.servlet.http.HttpServlet

        doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service, service
      • Methods inherited from class jakarta.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

      • OORT_SECRET_PARAM

        public static final java.lang.String OORT_SECRET_PARAM
        See Also:
        Constant Field Values
      • OORT_CHANNELS_PARAM

        public static final java.lang.String OORT_CHANNELS_PARAM
        See Also:
        Constant Field Values
      • OORT_ENABLE_ACK_EXTENSION_PARAM

        public static final java.lang.String OORT_ENABLE_ACK_EXTENSION_PARAM
        See Also:
        Constant Field Values
      • OORT_ENABLE_BINARY_EXTENSION_PARAM

        public static final java.lang.String OORT_ENABLE_BINARY_EXTENSION_PARAM
        See Also:
        Constant Field Values
      • OORT_JSON_CONTEXT_PARAM

        public static final java.lang.String OORT_JSON_CONTEXT_PARAM
        See Also:
        Constant Field Values
      • OORT_CLIENT_TRANSPORT_FACTORIES_PARAM

        public static final java.lang.String OORT_CLIENT_TRANSPORT_FACTORIES_PARAM
        See Also:
        Constant Field Values
    • Constructor Detail

      • OortConfigServlet

        public OortConfigServlet()
    • Method Detail

      • init

        public void init​(jakarta.servlet.ServletConfig config)
                  throws jakarta.servlet.ServletException
        Specified by:
        init in interface jakarta.servlet.Servlet
        Overrides:
        init in class jakarta.servlet.GenericServlet
        Throws:
        jakarta.servlet.ServletException
      • provideOortURL

        protected java.lang.String provideOortURL()

        Retrieves the oort.url parameter from this servlet init parameters.

        Subclasses can override this method to compute the oort.url parameter dynamically, for example by retrieving the IP address of the host.

        Returns:
        the oort.url parameter
      • newOort

        protected Oort newOort​(BayeuxServer bayeux,
                               java.lang.String url)

        Creates and returns a new Oort instance.

        Parameters:
        bayeux - the BayeuxServer instance to which the Oort instance should be associated to
        url - the oort.url of the Oort instance
        Returns:
        a new Oort instance
      • configureOort

        protected void configureOort​(jakarta.servlet.ServletConfig config,
                                     Oort oort)
                              throws java.lang.Exception

        Configures the Oort instance with servlet init parameters.

        Parameters:
        config - the Servlet configuration
        oort - the Oort instance to configure
        Throws:
        java.lang.Exception - if the Oort instance cannot be configured
      • configureCloud

        protected abstract void configureCloud​(jakarta.servlet.ServletConfig config,
                                               Oort oort)
                                        throws java.lang.Exception

        Configures the Oort cloud by establishing connections with other Oort comets.

        Subclasses implement their own strategy to discover and link with other comets.

        Parameters:
        config - the servlet configuration to read parameters from
        oort - the Oort instance associated with this configuration servlet
        Throws:
        java.lang.Exception - if the cloud configuration fails
      • destroy

        public void destroy()
        Specified by:
        destroy in interface jakarta.servlet.Servlet
        Overrides:
        destroy in class jakarta.servlet.GenericServlet