Class AbstractProtocol<S>

    • Field Detail

      • rgOname

        protected ObjectName rgOname
        Name of MBean for the Global Request Processor.
      • adapter

        protected Adapter adapter
        The adapter provides the link between the ProtocolHandler and the connector.
      • processorCache

        protected int processorCache
        The maximum number of idle processors that will be retained in the cache and re-used with a subsequent request. The default is 200. A value of -1 means unlimited. In the unlimited case, the theoretical maximum number of cached Processor objects is getMaxConnections() although it will usually be closer to getMaxThreads().
      • clientCertProvider

        protected String clientCertProvider
        When client certificate information is presented in a form other than instances of X509Certificate it needs to be converted before it can be used and this property controls which JSSE provider is used to perform the conversion. For example it is used with the AJP connectors, the HTTP APR connector and with the SSLValve. If not specified, the default provider will be used.
      • domain

        protected String domain
    • Constructor Detail

    • Method Detail

      • setProperty

        public boolean setProperty​(String name,
                                   String value)
        Generic property setter used by the digester. Other code should not need to use this. The digester will only use this method if it can't find a more specific setter. That means the property belongs to the Endpoint, the ServerSocketFactory or some other lower level component. This method ensures that it is visible to both.
        Parameters:
        name - The name of the property to set
        value - The value, in string form, to set for the property
        Returns:
        true if the property was set successfully, otherwise false
      • getProperty

        public String getProperty​(String name)
        Generic property getter used by the digester. Other code should not need to use this.
        Parameters:
        name - The name of the property to get
        Returns:
        The value of the property converted to a string
      • getGlobalRequestProcessorMBeanName

        public ObjectName getGlobalRequestProcessorMBeanName()
      • setAdapter

        public void setAdapter​(Adapter adapter)
        Description copied from interface: ProtocolHandler
        The adapter, used to call the connector.
        Specified by:
        setAdapter in interface ProtocolHandler
        Parameters:
        adapter - The adapter to associate
      • getProcessorCache

        public int getProcessorCache()
      • setProcessorCache

        public void setProcessorCache​(int processorCache)
      • getClientCertProvider

        public String getClientCertProvider()
      • setClientCertProvider

        public void setClientCertProvider​(String s)
      • isAprRequired

        public boolean isAprRequired()
        Description copied from interface: ProtocolHandler
        Requires APR/native library
        Specified by:
        isAprRequired in interface ProtocolHandler
        Returns:
        true if this Protocol Handler requires the APR/native library, otherwise false
      • isSendfileSupported

        public boolean isSendfileSupported()
        Description copied from interface: ProtocolHandler
        Does this ProtocolHandler support sendfile?
        Specified by:
        isSendfileSupported in interface ProtocolHandler
        Returns:
        true if this Protocol Handler supports sendfile, otherwise false
      • getSendReasonPhrase

        @Deprecated
        public boolean getSendReasonPhrase()
        Deprecated.
        This option will be removed in Tomcat 9. Reason phrase will not be sent.
        Returns whether the reason phrase will be sent in the response. By default a reason phrase will not be sent in the response.
        Returns:
        whether the reason phrase will be sent
      • setSendReasonPhrase

        @Deprecated
        public void setSendReasonPhrase​(boolean sendReasonPhrase)
        Deprecated.
        This option will be removed in Tomcat 9. Reason phrase will not be sent.
        Specifies whether the reason phrase will be sent in the response. By default a reason phrase will not be sent in the response.
        Parameters:
        sendReasonPhrase - specifies whether the reason phrase will be sent
      • getExecutor

        public Executor getExecutor()
        Description copied from interface: ProtocolHandler
        The executor, provide access to the underlying thread pool.
        Specified by:
        getExecutor in interface ProtocolHandler
        Returns:
        The executor used to process requests
      • setExecutor

        public void setExecutor​(Executor executor)
      • getMaxThreads

        public int getMaxThreads()
      • setMaxThreads

        public void setMaxThreads​(int maxThreads)
      • getMaxConnections

        public int getMaxConnections()
      • setMaxConnections

        public void setMaxConnections​(int maxConnections)
      • getMinSpareThreads

        public int getMinSpareThreads()
      • setMinSpareThreads

        public void setMinSpareThreads​(int minSpareThreads)
      • getThreadPriority

        public int getThreadPriority()
      • setThreadPriority

        public void setThreadPriority​(int threadPriority)
      • getAcceptCount

        public int getAcceptCount()
      • setAcceptCount

        public void setAcceptCount​(int acceptCount)
      • getBacklog

        @Deprecated
        public int getBacklog()
        Deprecated.
      • setBacklog

        @Deprecated
        public void setBacklog​(int backlog)
        Deprecated.
      • getTcpNoDelay

        public boolean getTcpNoDelay()
      • setTcpNoDelay

        public void setTcpNoDelay​(boolean tcpNoDelay)
      • getConnectionLinger

        public int getConnectionLinger()
      • setConnectionLinger

        public void setConnectionLinger​(int connectionLinger)
      • getSoLinger

        @Deprecated
        public int getSoLinger()
        Deprecated.
      • setSoLinger

        @Deprecated
        public void setSoLinger​(int soLinger)
        Deprecated.
      • getKeepAliveTimeout

        public int getKeepAliveTimeout()
        The time Tomcat will wait for a subsequent request before closing the connection. The default is getConnectionTimeout().
        Returns:
        The timeout in milliseconds
      • setKeepAliveTimeout

        public void setKeepAliveTimeout​(int keepAliveTimeout)
      • setAddress

        public void setAddress​(InetAddress ia)
      • getPort

        public int getPort()
      • setPort

        public void setPort​(int port)
      • getPortOffset

        public int getPortOffset()
      • setPortOffset

        public void setPortOffset​(int portOffset)
      • getPortWithOffset

        public int getPortWithOffset()
      • getLocalPort

        public int getLocalPort()
      • getConnectionTimeout

        public int getConnectionTimeout()
      • setConnectionTimeout

        public void setConnectionTimeout​(int timeout)
      • getSoTimeout

        @Deprecated
        public int getSoTimeout()
        Deprecated.
      • setSoTimeout

        @Deprecated
        public void setSoTimeout​(int timeout)
        Deprecated.
      • getMaxHeaderCount

        public int getMaxHeaderCount()
      • setMaxHeaderCount

        public void setMaxHeaderCount​(int maxHeaderCount)
      • getConnectionCount

        public long getConnectionCount()
      • setAcceptorThreadCount

        @Deprecated
        public void setAcceptorThreadCount​(int threadCount)
        Deprecated.
        This attribute is hard-coded to 1 and is no longer configurable.
        Unused.
        Parameters:
        threadCount - Ignored
      • getAcceptorThreadCount

        @Deprecated
        public int getAcceptorThreadCount()
        Deprecated.
        This attribute is hard-coded to 1 and is no longer configurable.
        Unused.
        Returns:
        Always returns 1
      • setAcceptorThreadPriority

        public void setAcceptorThreadPriority​(int threadPriority)
      • getAcceptorThreadPriority

        public int getAcceptorThreadPriority()
      • getNameIndex

        public int getNameIndex()
      • getName

        public String getName()
        The name will be prefix-address-port if address is non-null and prefix-port if the address is null.
        Returns:
        A name for this protocol instance that is appropriately quoted for use in an ObjectName.
      • addWaitingProcessor

        public void addWaitingProcessor​(Processor processor)
      • removeWaitingProcessor

        public void removeWaitingProcessor​(Processor processor)
      • getWaitingProcessorCount

        public int getWaitingProcessorCount()
      • getLog

        protected abstract Log getLog()
        Concrete implementations need to provide access to their logger to be used by the abstract classes.
        Returns:
        the logger
      • getNamePrefix

        protected abstract String getNamePrefix()
        Obtain the prefix to be used when construction a name for this protocol handler. The name will be prefix-address-port.
        Returns:
        the prefix
      • getProtocolName

        protected abstract String getProtocolName()
        Obtain the name of the protocol, (Http, Ajp, etc.). Used with JMX.
        Returns:
        the protocol name
      • getNegotiatedProtocol

        protected abstract UpgradeProtocol getNegotiatedProtocol​(String name)
        Find a suitable handler for the protocol negotiated at the network layer.
        Parameters:
        name - The name of the requested negotiated protocol.
        Returns:
        The instance where UpgradeProtocol.getAlpnName() matches the requested protocol
      • getUpgradeProtocol

        protected abstract UpgradeProtocol getUpgradeProtocol​(String name)
        Find a suitable handler for the protocol upgraded name specified. This is used for direct connection protocol selection.
        Parameters:
        name - The name of the requested negotiated protocol.
        Returns:
        The instance where UpgradeProtocol.getAlpnName() matches the requested protocol
      • createProcessor

        protected abstract Processor createProcessor()
        Create and configure a new Processor instance for the current protocol implementation.
        Returns:
        A fully configured Processor instance that is ready to use
      • getObjectName

        public ObjectName getObjectName()
      • getDomain

        public String getDomain()
      • awaitConnectionsClose

        public long awaitConnectionsClose​(long waitMillis)
        Description copied from interface: ProtocolHandler
        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.
        Specified by:
        awaitConnectionsClose in interface ProtocolHandler
        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