public abstract class AbstractProtocol<S> extends Object implements ProtocolHandler, MBeanRegistration
| Modifier and Type | Class and Description |
|---|---|
protected static class |
AbstractProtocol.ConnectionHandler<S> |
protected static class |
AbstractProtocol.RecycledProcessors |
| Modifier and Type | Field and Description |
|---|---|
protected Adapter |
adapter
The adapter provides the link between the ProtocolHandler and the
connector.
|
protected String |
domain |
protected MBeanServer |
mserver |
protected ObjectName |
oname |
protected int |
processorCache
The maximum number of idle processors that will be retained in the cache
and re-used with a subsequent request.
|
protected ObjectName |
rgOname
Name of MBean for the Global Request Processor.
|
| Constructor and Description |
|---|
AbstractProtocol(AbstractEndpoint<S,?> endpoint) |
| Modifier and Type | Method and Description |
|---|---|
void |
addWaitingProcessor(Processor processor) |
long |
awaitConnectionsClose(long waitMillis)
Wait for the client connections to the server to close gracefully.
|
void |
closeServerSocketGraceful()
Close the server socket (to prevent further connections) if the server
socket was bound on
ProtocolHandler.start() (rather than on ProtocolHandler.init()
but do not perform any further shutdown. |
protected abstract Processor |
createProcessor()
Create and configure a new Processor instance for the current protocol
implementation.
|
protected abstract Processor |
createUpgradeProcessor(SocketWrapperBase<?> socket,
UpgradeToken upgradeToken) |
void |
destroy()
Destroy the protocol (optional).
|
int |
getAcceptCount() |
int |
getAcceptorThreadCount()
Deprecated.
Will be removed in Tomcat 10.
|
int |
getAcceptorThreadPriority() |
Adapter |
getAdapter()
Return the adapter associated with the protocol handler.
|
InetAddress |
getAddress() |
String |
getClientCertProvider()
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. |
long |
getConnectionCount() |
int |
getConnectionLinger() |
int |
getConnectionTimeout() |
String |
getDomain() |
protected AbstractEndpoint<S,?> |
getEndpoint() |
Executor |
getExecutor()
The executor, provide access to the underlying thread pool.
|
ObjectName |
getGlobalRequestProcessorMBeanName() |
protected AbstractEndpoint.Handler<S> |
getHandler() |
String |
getId()
The default behavior is to identify connectors uniquely with address
and port.
|
int |
getKeepAliveTimeout()
The time Tomcat will wait for a subsequent request before closing the
connection.
|
int |
getLocalPort() |
protected abstract Log |
getLog()
Concrete implementations need to provide access to their logger to be
used by the abstract classes.
|
int |
getMaxConnections() |
int |
getMaxHeaderCount() |
int |
getMaxThreads() |
int |
getMinSpareThreads() |
String |
getName()
The name will be prefix-address-port if address is non-null and
prefix-port if the address is null.
|
int |
getNameIndex() |
protected abstract String |
getNamePrefix()
Obtain the prefix to be used when construction a name for this protocol
handler.
|
protected abstract UpgradeProtocol |
getNegotiatedProtocol(String name)
Find a suitable handler for the protocol negotiated
at the network layer.
|
ObjectName |
getObjectName() |
int |
getPort() |
int |
getPortOffset() |
int |
getPortWithOffset() |
int |
getProcessorCache() |
String |
getProperty(String name)
Generic property getter used by the digester.
|
protected abstract String |
getProtocolName()
Obtain the name of the protocol, (Http, Ajp, etc.).
|
boolean |
getTcpNoDelay() |
int |
getThreadPriority() |
protected abstract UpgradeProtocol |
getUpgradeProtocol(String name)
Find a suitable handler for the protocol upgraded name specified.
|
ScheduledExecutorService |
getUtilityExecutor()
Get the utility executor that should be used by the protocol handler.
|
int |
getWaitingProcessorCount() |
void |
init()
Initialise the protocol.
|
boolean |
isAprRequired()
Requires APR/native library
|
boolean |
isPaused() |
boolean |
isSendfileSupported()
Does this ProtocolHandler support sendfile?
|
void |
pause()
Pause the protocol (optional).
|
void |
postDeregister() |
void |
postRegister(Boolean registrationDone) |
void |
preDeregister() |
ObjectName |
preRegister(MBeanServer server,
ObjectName name) |
void |
removeWaitingProcessor(Processor processor) |
void |
resume()
Resume the protocol (optional).
|
void |
setAcceptCount(int acceptCount) |
void |
setAcceptorThreadCount(int threadCount)
Deprecated.
Will be removed in Tomcat 10.
|
void |
setAcceptorThreadPriority(int threadPriority) |
void |
setAdapter(Adapter adapter)
The adapter, used to call the connector.
|
void |
setAddress(InetAddress ia) |
void |
setClientCertProvider(String s) |
void |
setConnectionLinger(int connectionLinger) |
void |
setConnectionTimeout(int timeout) |
void |
setExecutor(Executor executor)
Set the optional executor that will be used by the connector.
|
protected void |
setHandler(AbstractEndpoint.Handler<S> handler) |
void |
setKeepAliveTimeout(int keepAliveTimeout) |
void |
setMaxConnections(int maxConnections) |
void |
setMaxHeaderCount(int maxHeaderCount) |
void |
setMaxThreads(int maxThreads) |
void |
setMinSpareThreads(int minSpareThreads) |
void |
setPort(int port) |
void |
setPortOffset(int portOffset) |
void |
setProcessorCache(int processorCache) |
boolean |
setProperty(String name,
String value)
Generic property setter used by the digester.
|
void |
setTcpNoDelay(boolean tcpNoDelay) |
void |
setThreadPriority(int threadPriority) |
void |
setUtilityExecutor(ScheduledExecutorService utilityExecutor)
Set the utility executor that should be used by the protocol handler.
|
void |
start()
Start the protocol.
|
protected void |
startAsyncTimeout()
Note: The name of this method originated with the Servlet 3.0
asynchronous processing but evolved over time to represent a timeout that
is triggered independently of the socket read/write timeouts.
|
void |
stop()
Stop the protocol.
|
protected void |
stopAsyncTimeout() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitaddSslHostConfig, addUpgradeProtocol, create, findSslHostConfigs, findUpgradeProtocols, getDesiredBufferSizeprotected ObjectName rgOname
protected Adapter adapter
protected int processorCache
getMaxConnections() although it will
usually be closer to getMaxThreads().protected String domain
protected ObjectName oname
protected MBeanServer mserver
public AbstractProtocol(AbstractEndpoint<S,?> endpoint)
public boolean setProperty(String name, String value)
name - The name of the property to setvalue - The value, in string form, to set for the propertytrue if the property was set successfully, otherwise
falsepublic String getProperty(String name)
name - The name of the property to getpublic ObjectName getGlobalRequestProcessorMBeanName()
public void setAdapter(Adapter adapter)
ProtocolHandlersetAdapter in interface ProtocolHandleradapter - The adapter to associatepublic Adapter getAdapter()
ProtocolHandlergetAdapter in interface ProtocolHandlerpublic int getProcessorCache()
public void setProcessorCache(int processorCache)
public String getClientCertProvider()
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.public void setClientCertProvider(String s)
public int getMaxHeaderCount()
public void setMaxHeaderCount(int maxHeaderCount)
public boolean isAprRequired()
ProtocolHandlerisAprRequired in interface ProtocolHandlertrue if this Protocol Handler requires the
APR/native library, otherwise falsepublic boolean isSendfileSupported()
ProtocolHandlerisSendfileSupported in interface ProtocolHandlertrue if this Protocol Handler supports sendfile,
otherwise falsepublic String getId()
ProtocolHandlergetId in interface ProtocolHandlerpublic Executor getExecutor()
ProtocolHandlergetExecutor in interface ProtocolHandlerpublic void setExecutor(Executor executor)
ProtocolHandlersetExecutor in interface ProtocolHandlerexecutor - the executorpublic ScheduledExecutorService getUtilityExecutor()
ProtocolHandlergetUtilityExecutor in interface ProtocolHandlerpublic void setUtilityExecutor(ScheduledExecutorService utilityExecutor)
ProtocolHandlersetUtilityExecutor in interface ProtocolHandlerutilityExecutor - the executorpublic int getMaxThreads()
public void setMaxThreads(int maxThreads)
public int getMaxConnections()
public void setMaxConnections(int maxConnections)
public int getMinSpareThreads()
public void setMinSpareThreads(int minSpareThreads)
public int getThreadPriority()
public void setThreadPriority(int threadPriority)
public int getAcceptCount()
public void setAcceptCount(int acceptCount)
public boolean getTcpNoDelay()
public void setTcpNoDelay(boolean tcpNoDelay)
public int getConnectionLinger()
public void setConnectionLinger(int connectionLinger)
public int getKeepAliveTimeout()
getConnectionTimeout().public void setKeepAliveTimeout(int keepAliveTimeout)
public InetAddress getAddress()
public void setAddress(InetAddress ia)
public int getPort()
public void setPort(int port)
public int getPortOffset()
public void setPortOffset(int portOffset)
public int getPortWithOffset()
public int getLocalPort()
public int getConnectionTimeout()
public void setConnectionTimeout(int timeout)
public long getConnectionCount()
@Deprecated public void setAcceptorThreadCount(int threadCount)
threadCount - Unused@Deprecated public int getAcceptorThreadCount()
public void setAcceptorThreadPriority(int threadPriority)
public int getAcceptorThreadPriority()
public int getNameIndex()
public String getName()
public void addWaitingProcessor(Processor processor)
public void removeWaitingProcessor(Processor processor)
public int getWaitingProcessorCount()
protected AbstractEndpoint<S,?> getEndpoint()
protected AbstractEndpoint.Handler<S> getHandler()
protected void setHandler(AbstractEndpoint.Handler<S> handler)
protected abstract Log getLog()
protected abstract String getNamePrefix()
protected abstract String getProtocolName()
protected abstract UpgradeProtocol getNegotiatedProtocol(String name)
name - The name of the requested negotiated protocol.UpgradeProtocol.getAlpnName() matches
the requested protocolprotected abstract UpgradeProtocol getUpgradeProtocol(String name)
name - The name of the requested negotiated protocol.UpgradeProtocol.getAlpnName() matches
the requested protocolprotected abstract Processor createProcessor()
protected abstract Processor createUpgradeProcessor(SocketWrapperBase<?> socket, UpgradeToken upgradeToken)
public ObjectName getObjectName()
public String getDomain()
public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
preRegister in interface MBeanRegistrationExceptionpublic void postRegister(Boolean registrationDone)
postRegister in interface MBeanRegistrationpublic void preDeregister()
throws Exception
preDeregister in interface MBeanRegistrationExceptionpublic void postDeregister()
postDeregister in interface MBeanRegistrationpublic void init()
throws Exception
ProtocolHandlerinit in interface ProtocolHandlerException - If the protocol handler fails to initialisepublic void start()
throws Exception
ProtocolHandlerstart in interface ProtocolHandlerException - If the protocol handler fails to startprotected void startAsyncTimeout()
protected void stopAsyncTimeout()
public void pause()
throws Exception
ProtocolHandlerpause in interface ProtocolHandlerException - If the protocol handler fails to pausepublic boolean isPaused()
public void resume()
throws Exception
ProtocolHandlerresume in interface ProtocolHandlerException - If the protocol handler fails to resumepublic void stop()
throws Exception
ProtocolHandlerstop in interface ProtocolHandlerException - If the protocol handler fails to stoppublic void destroy()
throws Exception
ProtocolHandlerdestroy in interface ProtocolHandlerException - If the protocol handler fails to destroypublic void closeServerSocketGraceful()
ProtocolHandlerProtocolHandler.start() (rather than on ProtocolHandler.init()
but do not perform any further shutdown.closeServerSocketGraceful in interface ProtocolHandlerpublic long awaitConnectionsClose(long waitMillis)
ProtocolHandlerwaitTimeMillis.awaitConnectionsClose in interface ProtocolHandlerwaitMillis - The maximum time to wait in milliseconds for the
client connections to close.Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.