Interface ProtocolHandler

All Known Implementing Classes:
AbstractAjpProtocol, AbstractHttp11JsseProtocol, AbstractHttp11Protocol, AbstractProtocol, AjpAprProtocol, AjpNio2Protocol, AjpNioProtocol, AjpProtocol, Http11AprProtocol, Http11Nio2Protocol, Http11NioProtocol, Http11Protocol

public interface ProtocolHandler
Abstract the protocol implementation, including threading, etc. This is the main interface to be implemented by a coyote protocol. Adapter is the main interface to be implemented by a coyote servlet container.
Author:
Remy Maucherat, Costin Manolache
See Also:
  • Method Details

    • 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

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

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

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

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

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

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

      void destroy() throws Exception
      Destroy the protocol (optional).
      Throws:
      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.
    • awaitConnectionsClose

      long awaitConnectionsClose(long waitMillis)
      Wait for the client connections to the server to close gracefully. The method will return when all of the client connections have closed or the method has been waiting for waitTimeMillis.
      Parameters:
      waitMillis - The maximum time to wait in milliseconds for the client connections to close.
      Returns:
      The wait time, if any remaining when the method returned
    • isAprRequired

      @Deprecated boolean isAprRequired()
      Deprecated.
      This method will be removed in Tomcat 10.1.x onwards
      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
    • addSslHostConfig

      void addSslHostConfig(SSLHostConfig sslHostConfig, boolean replace)
      Add a new SSL configuration for a virtual host.
      Parameters:
      sslHostConfig - the configuration
      replace - If true replacement of an existing configuration is permitted, otherwise any such attempted replacement will trigger an exception
      Throws:
      IllegalArgumentException - If the host name is not valid or if a configuration has already been provided for that host and replacement is not allowed
    • 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