Package org.apache.tomcat.util.net
Class AprEndpoint
- java.lang.Object
-
- org.apache.tomcat.util.net.AbstractEndpoint<java.lang.Long,java.lang.Long>
-
- org.apache.tomcat.util.net.AprEndpoint
-
- All Implemented Interfaces:
SSLContext.SNICallBack
@Deprecated public class AprEndpoint extends AbstractEndpoint<java.lang.Long,java.lang.Long> implements SSLContext.SNICallBack
Deprecated.The APR/Native Connector will be removed in Tomcat 10.1.x onwards.APR tailored thread pool, providing the following services:- Socket acceptor thread
- Socket poller thread
- Sendfile thread
- Worker threads pool
- Author:
- Mladen Turk, Remy Maucherat
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AprEndpoint.AprSocketWrapper
Deprecated.class
AprEndpoint.Poller
Deprecated.class
AprEndpoint.Sendfile
Deprecated.static class
AprEndpoint.SendfileData
Deprecated.SendfileData class.static class
AprEndpoint.SocketInfo
Deprecated.static class
AprEndpoint.SocketList
Deprecated.protected class
AprEndpoint.SocketProcessor
Deprecated.This class is the equivalent of the Worker, but will simply use in an external Executor thread pool.static class
AprEndpoint.SocketTimeouts
Deprecated.protected class
AprEndpoint.SocketWithOptionsProcessor
Deprecated.This class is the equivalent of the Worker, but will simply use in an external Executor thread pool.-
Nested classes/interfaces inherited from class org.apache.tomcat.util.net.AbstractEndpoint
AbstractEndpoint.BindState, AbstractEndpoint.Handler<S>
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
deferAccept
Deprecated.Defer accept.protected AprEndpoint.Poller
poller
Deprecated.The socket poller.protected int
pollTime
Deprecated.Poll interval, in microseconds.protected long
rootPool
Deprecated.Root APR memory pool.protected AprEndpoint.Sendfile
sendfile
Deprecated.The static file sender.protected int
sendfileSize
Deprecated.Size of the sendfile (= concurrent files which can be served).protected long
serverSock
Deprecated.Server socket "pointer".protected long
serverSockPool
Deprecated.APR memory pool for the server socket.protected long
sslContext
Deprecated.SSL context.-
Fields inherited from class org.apache.tomcat.util.net.AbstractEndpoint
acceptor, acceptorThreadCount, acceptorThreadPriority, attributes, connections, internalExecutor, negotiableProtocols, paused, processorCache, running, sm, socketProperties, sslHostConfigs, threadPriority
-
-
Constructor Summary
Constructors Constructor Description AprEndpoint()
Deprecated.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected long
allocatePoller(int size, long pool, int timeout)
Deprecated.Allocate a new poller of the specified size.void
bind()
Deprecated.Initialize the endpoint.protected SocketProcessorBase<java.lang.Long>
createSocketProcessor(SocketWrapperBase<java.lang.Long> socketWrapper, SocketEvent event)
Deprecated.protected void
createSSLContext(SSLHostConfig sslHostConfig)
Deprecated.Create the SSLContext for the given SSLHostConfig.protected void
destroySocket(java.lang.Long socket)
Deprecated.Close the socket.protected void
doCloseServerSocket()
Deprecated.Actually close the server socket but don't perform any other clean-up.boolean
getDeferAccept()
Deprecated.java.lang.String
getId()
Deprecated.The default behavior is to identify connectors uniquely with address and port.boolean
getIpv6v6only()
Deprecated.int
getKeepAliveCount()
Deprecated.Obtain the number of kept alive sockets.java.net.InetSocketAddress
getLocalAddress()
Deprecated.Obtain the network address the server socket is bound to.protected Log
getLog()
Deprecated.AprEndpoint.Poller
getPoller()
Deprecated.int
getPollTime()
Deprecated.AprEndpoint.Sendfile
getSendfile()
Deprecated.int
getSendfileCount()
Deprecated.Obtain the number of sendfile sockets.int
getSendfileSize()
Deprecated.long
getSslContext(java.lang.String sniHostName)
Deprecated.This callback is made during the TLS handshake when the client uses the SNI extension to request a specific TLS host.java.lang.String
getUnixDomainSocketPath()
Deprecated.java.lang.String
getUnixDomainSocketPathPermissions()
Deprecated.boolean
isAlpnSupported()
Deprecated.Identifies if the endpoint supports ALPN.protected boolean
processSocket(long socket, SocketEvent event)
Deprecated.Process the given socket.protected java.lang.Long
serverSocketAccept()
Deprecated.void
setDeferAccept(boolean deferAccept)
Deprecated.void
setIpv6v6only(boolean ipv6v6only)
Deprecated.void
setMaxConnections(int maxConnections)
Deprecated.This endpoint does not support-1
for unlimited connections, nor does it support setting this attribute while the endpoint is running.void
setPollTime(int pollTime)
Deprecated.void
setSendfileSize(int sendfileSize)
Deprecated.protected boolean
setSocketOptions(java.lang.Long socket)
Deprecated.Process given socket.protected boolean
setSocketOptions(SocketWrapperBase<java.lang.Long> socketWrapper)
Deprecated.Process the specified connection.void
setUnixDomainSocketPath(java.lang.String unixDomainSocketPath)
Deprecated.void
setUnixDomainSocketPathPermissions(java.lang.String unixDomainSocketPathPermissions)
Deprecated.void
setUseSendfile(boolean useSendfile)
Deprecated.void
startInternal()
Deprecated.Start the APR endpoint, creating acceptor, poller and sendfile threads.void
stopInternal()
Deprecated.Stop the endpoint.void
unbind()
Deprecated.Deallocate APR memory pools, and close server socket.-
Methods inherited from class org.apache.tomcat.util.net.AbstractEndpoint
addNegotiatedProtocol, addSslHostConfig, addSslHostConfig, awaitConnectionsClose, closeServerSocketGraceful, closeSocket, countDownConnection, countUpOrAwaitConnection, createExecutor, destroy, destroySsl, findSslHostConfigs, getAcceptCount, getAcceptorThreadPriority, getAddress, getAttribute, getBindOnInit, getBindState, getConnectionCount, getConnectionLinger, getConnections, getConnectionTimeout, getCurrentThreadCount, getCurrentThreadsBusy, getDaemon, getDefaultSSLHostConfigName, getDomain, getExecutor, getExecutorTerminationTimeoutMillis, getHandler, getKeepAliveTimeout, getLocalPort, getMaxConnections, getMaxKeepAliveRequests, getMaxThreads, getMinSpareThreads, getName, getPort, getPortOffset, getPortWithOffset, getProperty, getSocketProperties, getSSLHostConfig, getTcpNoDelay, getThreadPriority, getUseAsyncIO, getUseSendfile, getUtilityExecutor, hasNegotiableProtocols, init, initializeConnectionLatch, isPaused, isRunning, isSSLEnabled, pause, processSocket, releaseSSLContext, reloadSslHostConfig, reloadSslHostConfigs, removeSslHostConfig, resume, setAcceptCount, setAcceptorThreadPriority, setAddress, setAttribute, setBindOnInit, setConnectionLinger, setConnectionTimeout, setDaemon, setDefaultSSLHostConfigName, setDomain, setExecutor, setExecutorTerminationTimeoutMillis, setHandler, setKeepAliveTimeout, setMaxKeepAliveRequests, setMaxThreads, setMinSpareThreads, setName, setPort, setPortOffset, setProperty, setSSLEnabled, setTcpNoDelay, setThreadPriority, setUseAsyncIO, setUtilityExecutor, shutdownExecutor, start, startAcceptorThread, stop, toTimeout, unlockAccept
-
-
-
-
Field Detail
-
rootPool
protected long rootPool
Deprecated.Root APR memory pool.
-
serverSock
protected volatile long serverSock
Deprecated.Server socket "pointer".
-
serverSockPool
protected long serverSockPool
Deprecated.APR memory pool for the server socket.
-
sslContext
protected long sslContext
Deprecated.SSL context.
-
deferAccept
protected boolean deferAccept
Deprecated.Defer accept.
-
sendfileSize
protected int sendfileSize
Deprecated.Size of the sendfile (= concurrent files which can be served).
-
pollTime
protected int pollTime
Deprecated.Poll interval, in microseconds. The smaller the value, the more CPU the poller will use, but the more responsive to activity it will be.
-
poller
protected AprEndpoint.Poller poller
Deprecated.The socket poller.
-
sendfile
protected AprEndpoint.Sendfile sendfile
Deprecated.The static file sender.
-
-
Method Detail
-
setDeferAccept
public void setDeferAccept(boolean deferAccept)
Deprecated.
-
getDeferAccept
public boolean getDeferAccept()
Deprecated.- Overrides:
getDeferAccept
in classAbstractEndpoint<java.lang.Long,java.lang.Long>
-
setIpv6v6only
public void setIpv6v6only(boolean ipv6v6only)
Deprecated.
-
getIpv6v6only
public boolean getIpv6v6only()
Deprecated.
-
setSendfileSize
public void setSendfileSize(int sendfileSize)
Deprecated.
-
getSendfileSize
public int getSendfileSize()
Deprecated.
-
getPollTime
public int getPollTime()
Deprecated.
-
setPollTime
public void setPollTime(int pollTime)
Deprecated.
-
setUseSendfile
public void setUseSendfile(boolean useSendfile)
Deprecated.- Overrides:
setUseSendfile
in classAbstractEndpoint<java.lang.Long,java.lang.Long>
-
getPoller
public AprEndpoint.Poller getPoller()
Deprecated.
-
getSendfile
public AprEndpoint.Sendfile getSendfile()
Deprecated.
-
getLocalAddress
public java.net.InetSocketAddress getLocalAddress() throws java.io.IOException
Deprecated.Description copied from class:AbstractEndpoint
Obtain the network address the server socket is bound to. This primarily exists to enable the correct address to be used when unlocking the server socket since it removes the guess-work involved if no address is specifically set.- Specified by:
getLocalAddress
in classAbstractEndpoint<java.lang.Long,java.lang.Long>
- Returns:
- The network address that the server socket is listening on or null if the server socket is not currently bound.
- Throws:
java.io.IOException
- If there is a problem determining the currently bound socket
-
setMaxConnections
public void setMaxConnections(int maxConnections)
Deprecated.This endpoint does not support-1
for unlimited connections, nor does it support setting this attribute while the endpoint is running.- Overrides:
setMaxConnections
in classAbstractEndpoint<java.lang.Long,java.lang.Long>
-
getUnixDomainSocketPath
public java.lang.String getUnixDomainSocketPath()
Deprecated.
-
setUnixDomainSocketPath
public void setUnixDomainSocketPath(java.lang.String unixDomainSocketPath)
Deprecated.
-
getUnixDomainSocketPathPermissions
public java.lang.String getUnixDomainSocketPathPermissions()
Deprecated.
-
setUnixDomainSocketPathPermissions
public void setUnixDomainSocketPathPermissions(java.lang.String unixDomainSocketPathPermissions)
Deprecated.
-
getKeepAliveCount
public int getKeepAliveCount()
Deprecated.Obtain the number of kept alive sockets.- Returns:
- The number of open sockets currently managed by the Poller
-
getSendfileCount
public int getSendfileCount()
Deprecated.Obtain the number of sendfile sockets.- Returns:
- The number of sockets currently managed by the Sendfile poller.
-
getId
public java.lang.String getId()
Deprecated.Description copied from class:AbstractEndpoint
The default behavior is to identify connectors uniquely with address and port. However, certain connectors are not using that and need some other identifier, which then can be used as a replacement.- Overrides:
getId
in classAbstractEndpoint<java.lang.Long,java.lang.Long>
- Returns:
- the id
-
bind
public void bind() throws java.lang.Exception
Deprecated.Initialize the endpoint.- Specified by:
bind
in classAbstractEndpoint<java.lang.Long,java.lang.Long>
- Throws:
java.lang.Exception
-
createSSLContext
protected void createSSLContext(SSLHostConfig sslHostConfig) throws java.lang.Exception
Deprecated.Description copied from class:AbstractEndpoint
Create the SSLContext for the given SSLHostConfig.- Specified by:
createSSLContext
in classAbstractEndpoint<java.lang.Long,java.lang.Long>
- Parameters:
sslHostConfig
- The SSLHostConfig for which the SSLContext should be created- Throws:
java.lang.Exception
- If the SSLContext cannot be created for the given SSLHostConfig
-
getSslContext
public long getSslContext(java.lang.String sniHostName)
Deprecated.Description copied from interface:SSLContext.SNICallBack
This callback is made during the TLS handshake when the client uses the SNI extension to request a specific TLS host.- Specified by:
getSslContext
in interfaceSSLContext.SNICallBack
- Parameters:
sniHostName
- The host name requested by the client - must be in lower case- Returns:
- The Java representation of the pointer to the OpenSSL SSLContext to use for the given host or zero if no SSLContext could be identified
-
isAlpnSupported
public boolean isAlpnSupported()
Deprecated.Description copied from class:AbstractEndpoint
Identifies if the endpoint supports ALPN. Note that a return value oftrue
implies thatAbstractEndpoint.isSSLEnabled()
will also returntrue
.- Specified by:
isAlpnSupported
in classAbstractEndpoint<java.lang.Long,java.lang.Long>
- Returns:
true
if the endpoint supports ALPN in its current configuration, otherwisefalse
.
-
startInternal
public void startInternal() throws java.lang.Exception
Deprecated.Start the APR endpoint, creating acceptor, poller and sendfile threads.- Specified by:
startInternal
in classAbstractEndpoint<java.lang.Long,java.lang.Long>
- Throws:
java.lang.Exception
-
stopInternal
public void stopInternal()
Deprecated.Stop the endpoint. This will cause all processing threads to stop.- Specified by:
stopInternal
in classAbstractEndpoint<java.lang.Long,java.lang.Long>
-
unbind
public void unbind() throws java.lang.Exception
Deprecated.Deallocate APR memory pools, and close server socket.- Specified by:
unbind
in classAbstractEndpoint<java.lang.Long,java.lang.Long>
- Throws:
java.lang.Exception
-
doCloseServerSocket
protected void doCloseServerSocket()
Deprecated.Description copied from class:AbstractEndpoint
Actually close the server socket but don't perform any other clean-up.- Specified by:
doCloseServerSocket
in classAbstractEndpoint<java.lang.Long,java.lang.Long>
-
setSocketOptions
protected boolean setSocketOptions(SocketWrapperBase<java.lang.Long> socketWrapper)
Deprecated.Process the specified connection.- Parameters:
socketWrapper
- The socket wrapper- Returns:
true
if the socket was correctly configured and processing may continue,false
if the socket needs to be close immediately
-
allocatePoller
protected long allocatePoller(int size, long pool, int timeout)
Deprecated.Allocate a new poller of the specified size.- Parameters:
size
- The sizepool
- The pool from which the poller will be allocatedtimeout
- The timeout- Returns:
- the poller pointer
-
setSocketOptions
protected boolean setSocketOptions(java.lang.Long socket)
Deprecated.Process given socket. This is called when the socket has been accepted.- Specified by:
setSocketOptions
in classAbstractEndpoint<java.lang.Long,java.lang.Long>
- Parameters:
socket
- The socket- Returns:
true
if the socket was correctly configured and processing may continue,false
if the socket needs to be close immediately
-
serverSocketAccept
protected java.lang.Long serverSocketAccept() throws java.lang.Exception
Deprecated.- Specified by:
serverSocketAccept
in classAbstractEndpoint<java.lang.Long,java.lang.Long>
- Throws:
java.lang.Exception
-
processSocket
protected boolean processSocket(long socket, SocketEvent event)
Deprecated.Process the given socket. Typically keep alive or upgraded protocol.- Parameters:
socket
- The socket to processevent
- The event to process- Returns:
true
if the processing completed normally otherwisefalse
which indicates an error occurred and that the socket should be closed
-
createSocketProcessor
protected SocketProcessorBase<java.lang.Long> createSocketProcessor(SocketWrapperBase<java.lang.Long> socketWrapper, SocketEvent event)
Deprecated.- Specified by:
createSocketProcessor
in classAbstractEndpoint<java.lang.Long,java.lang.Long>
-
destroySocket
protected void destroySocket(java.lang.Long socket)
Deprecated.Description copied from class:AbstractEndpoint
Close the socket. This is used when the connector is not in a state which allows processing the socket, or if there was an error which prevented the allocation of the socket wrapper.- Specified by:
destroySocket
in classAbstractEndpoint<java.lang.Long,java.lang.Long>
- Parameters:
socket
- The newly accepted socket
-
getLog
protected Log getLog()
Deprecated.- Specified by:
getLog
in classAbstractEndpoint<java.lang.Long,java.lang.Long>
-
-