Interface ProtocolHandler

    • Method Detail

      • getAdapter

        Adapter getAdapter()
        Return the adapter associated with the protocol handler.
        Returns:
        the adapter
      • setAdapter

        void setAdapter​(Adapter adapter)
        The adapter, used to call the connector.
        Parameters:
        adapter - The adapter to associate
      • getExecutor

        java.util.concurrent.Executor getExecutor()
        The executor, provide access to the underlying thread pool.
        Returns:
        The executor used to process requests
      • setExecutor

        void setExecutor​(java.util.concurrent.Executor executor)
        Set the optional executor that will be used by the connector.
        Parameters:
        executor - the executor
      • getUtilityExecutor

        java.util.concurrent.ScheduledExecutorService getUtilityExecutor()
        Get the utility executor that should be used by the protocol handler.
        Returns:
        the executor
      • setUtilityExecutor

        void setUtilityExecutor​(java.util.concurrent.ScheduledExecutorService utilityExecutor)
        Set the utility executor that should be used by the protocol handler.
        Parameters:
        utilityExecutor - the executor
      • init

        void init()
           throws java.lang.Exception
        Initialise the protocol.
        Throws:
        java.lang.Exception - If the protocol handler fails to initialise
      • start

        void start()
            throws java.lang.Exception
        Start the protocol.
        Throws:
        java.lang.Exception - If the protocol handler fails to start
      • pause

        void pause()
            throws java.lang.Exception
        Pause the protocol (optional).
        Throws:
        java.lang.Exception - If the protocol handler fails to pause
      • resume

        void resume()
             throws java.lang.Exception
        Resume the protocol (optional).
        Throws:
        java.lang.Exception - If the protocol handler fails to resume
      • stop

        void stop()
           throws java.lang.Exception
        Stop the protocol.
        Throws:
        java.lang.Exception - If the protocol handler fails to stop
      • destroy

        void destroy()
              throws java.lang.Exception
        Destroy the protocol (optional).
        Throws:
        java.lang.Exception - If the protocol handler fails to destroy
      • closeServerSocketGraceful

        void closeServerSocketGraceful()
        Close the server socket (to prevent further connections) if the server socket was bound on start() (rather than on init() but do not perform any further shutdown.
      • isAprRequired

        boolean isAprRequired()
        Requires APR/native library
        Returns:
        true if this Protocol Handler requires the APR/native library, otherwise false
      • isSendfileSupported

        boolean isSendfileSupported()
        Does this ProtocolHandler support sendfile?
        Returns:
        true if this Protocol Handler supports sendfile, otherwise false
      • addSslHostConfig

        void addSslHostConfig​(SSLHostConfig sslHostConfig)
        Add a new SSL configuration for a virtual host.
        Parameters:
        sslHostConfig - the configuration
      • findSslHostConfigs

        SSLHostConfig[] findSslHostConfigs()
        Find all configured SSL virtual host configurations which will be used by SNI.
        Returns:
        the configurations
      • addUpgradeProtocol

        void addUpgradeProtocol​(UpgradeProtocol upgradeProtocol)
        Add a new protocol for used by HTTP/1.1 upgrade or ALPN.
        Parameters:
        upgradeProtocol - the protocol
      • findUpgradeProtocols

        UpgradeProtocol[] findUpgradeProtocols()
        Return all configured upgrade protocols.
        Returns:
        the protocols
      • getDesiredBufferSize

        default int getDesiredBufferSize()
        Some protocols, like AJP, have a packet length that shouldn't be exceeded, and this can be used to adjust the buffering used by the application layer.
        Returns:
        the desired buffer size, or -1 if not relevant
      • create

        static ProtocolHandler create​(java.lang.String protocol,
                                      boolean apr)
                               throws java.lang.ClassNotFoundException,
                                      java.lang.InstantiationException,
                                      java.lang.IllegalAccessException,
                                      java.lang.IllegalArgumentException,
                                      java.lang.reflect.InvocationTargetException,
                                      java.lang.NoSuchMethodException,
                                      java.lang.SecurityException
        Create a new ProtocolHandler for the given protocol.
        Parameters:
        protocol - the protocol
        apr - if true the APR protcol handler will be used
        Returns:
        the newly instantiated protocol handler
        Throws:
        java.lang.ClassNotFoundException - Specified protocol was not found
        java.lang.InstantiationException - Specified protocol could not be instantiated
        java.lang.IllegalAccessException - Exception occurred
        java.lang.IllegalArgumentException - Exception occurred
        java.lang.reflect.InvocationTargetException - Exception occurred
        java.lang.NoSuchMethodException - Exception occurred
        java.lang.SecurityException - Exception occurred