public abstract class AbstractConnectionFactory extends IntegrationObjectSupport implements ConnectionFactory, ApplicationEventPublisherAware
Modifier and Type | Field and Description |
---|---|
protected static int |
DEFAULT_REPLY_TIMEOUT |
protected Object |
lifecycleMonitor |
EXPRESSION_PARSER, logger
Constructor and Description |
---|
AbstractConnectionFactory(int port) |
AbstractConnectionFactory(String host,
int port) |
Modifier and Type | Method and Description |
---|---|
protected void |
addConnection(TcpConnectionSupport connection) |
protected void |
checkActive() |
boolean |
closeConnection(String connectionId)
Close a connection with the specified connection id.
|
protected void |
delayRead(Selector selector,
long now,
SelectionKey key) |
protected void |
doAccept(Selector selector,
ServerSocketChannel server,
long now) |
ApplicationEventPublisher |
getApplicationEventPublisher() |
protected BlockingQueue<org.springframework.integration.ip.tcp.connection.AbstractConnectionFactory.PendingIO> |
getDelayedReads() |
Deserializer<?> |
getDeserializer() |
String |
getHost() |
protected Object |
getLifecycleMonitor() |
TcpListener |
getListener() |
TcpMessageMapper |
getMapper() |
List<String> |
getOpenConnectionIds()
Returns a list of (currently) open
TcpConnection connection ids; allows,
for example, broadcast operations to all open connections. |
int |
getPort() |
protected long |
getReadDelay() |
TcpSender |
getSender() |
List<TcpSender> |
getSenders()
Return the list of senders.
|
Serializer<?> |
getSerializer() |
int |
getSoLinger() |
int |
getSoReceiveBufferSize() |
int |
getSoSendBufferSize() |
int |
getSoTimeout() |
int |
getSoTrafficClass() |
protected Integer |
getSslHandshakeTimeout() |
protected Executor |
getTaskExecutor()
Creates a taskExecutor (if one was not provided).
|
protected TcpSocketSupport |
getTcpSocketSupport() |
protected void |
harvestClosedConnections()
Cleans up this.connections by removing any closed connections.
|
protected boolean |
isActive() |
boolean |
isLookupHost() |
boolean |
isRunning() |
boolean |
isSingleUse() |
boolean |
isSoKeepAlive() |
boolean |
isSoTcpNoDelay() |
protected void |
onInit()
Subclasses may implement this for initialization logic.
|
protected void |
processNioSelections(int selectionCount,
Selector selector,
ServerSocketChannel server,
Map<SocketChannel,TcpNioConnection> connectionMap)
Times out any expired connections then, if
selectionCount > 0 ,
processes the selected keys. |
void |
registerListener(TcpListener listenerToRegister)
Registers a TcpListener to receive messages after
the payload has been converted from the input data.
|
void |
registerSender(TcpSender senderToRegister)
Registers a TcpSender; for server sockets, used to
provide connection information so a sender can be used
to reply to incoming messages.
|
protected void |
setActive(boolean active) |
void |
setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) |
void |
setDeserializer(Deserializer<?> deserializer) |
void |
setHost(String host)
Set the host; requires the factory to be stopped.
|
void |
setInterceptorFactoryChain(TcpConnectionInterceptorFactoryChain interceptorFactoryChain) |
void |
setLeaveOpen(boolean leaveOpen)
If true, sockets created by this factory will be reused.
|
void |
setLookupHost(boolean lookupHost)
If true, DNS reverse lookup is done on the remote ip address.
|
void |
setMapper(TcpMessageMapper mapper) |
void |
setNioHarvestInterval(int nioHarvestInterval)
How often we clean up closed NIO connections if soTimeout is 0.
|
void |
setPort(int port)
Set the port; requires the factory to be stopped.
|
void |
setReadDelay(long readDelay)
The delay (in milliseconds) before retrying a read after the previous attempt
failed due to insufficient threads.
|
void |
setSerializer(Serializer<?> serializer) |
void |
setSingleUse(boolean singleUse)
If true, sockets created by this factory will be used once.
|
protected void |
setSocketAttributes(Socket socket)
Sets socket attributes on the socket.
|
void |
setSoKeepAlive(boolean soKeepAlive) |
void |
setSoLinger(int soLinger) |
void |
setSoReceiveBufferSize(int soReceiveBufferSize) |
void |
setSoSendBufferSize(int soSendBufferSize) |
void |
setSoTcpNoDelay(boolean soTcpNoDelay) |
void |
setSoTimeout(int soTimeout) |
void |
setSoTrafficClass(int soTrafficClass) |
void |
setSslHandshakeTimeout(int sslHandshakeTimeout)
Set the handshake timeout used when waiting for SSL handshake data; only applies
to SSL connections, when using NIO.
|
void |
setTaskExecutor(Executor taskExecutor) |
void |
setTcpSocketSupport(TcpSocketSupport tcpSocketSupport) |
void |
start() |
void |
stop()
Stops the server.
|
String |
toString() |
boolean |
unregisterSender(TcpSender sender)
Unregister a TcpSender.
|
protected TcpConnectionSupport |
wrapConnection(TcpConnectionSupport connectionArg) |
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getComponentType, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getConnection
protected static final int DEFAULT_REPLY_TIMEOUT
protected final Object lifecycleMonitor
public AbstractConnectionFactory(int port)
public AbstractConnectionFactory(String host, int port)
public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher)
setApplicationEventPublisher
in interface ApplicationEventPublisherAware
@Nullable public ApplicationEventPublisher getApplicationEventPublisher()
protected void setSocketAttributes(Socket socket) throws SocketException
socket
- The socket.SocketException
- Any SocketException.public int getSoTimeout()
public void setSoTimeout(int soTimeout)
soTimeout
- the soTimeout to setpublic int getSoReceiveBufferSize()
public void setSoReceiveBufferSize(int soReceiveBufferSize)
soReceiveBufferSize
- the soReceiveBufferSize to setpublic int getSoSendBufferSize()
public void setSoSendBufferSize(int soSendBufferSize)
soSendBufferSize
- the soSendBufferSize to setpublic boolean isSoTcpNoDelay()
public void setSoTcpNoDelay(boolean soTcpNoDelay)
soTcpNoDelay
- the soTcpNoDelay to setpublic int getSoLinger()
public void setSoLinger(int soLinger)
soLinger
- the soLinger to setpublic boolean isSoKeepAlive()
public void setSoKeepAlive(boolean soKeepAlive)
soKeepAlive
- the soKeepAlive to setpublic int getSoTrafficClass()
public void setSoTrafficClass(int soTrafficClass)
soTrafficClass
- the soTrafficClass to setpublic void setHost(String host)
host
- the host.public String getHost()
public void setPort(int port)
port
- the port.public int getPort()
@Nullable public TcpListener getListener()
public List<TcpSender> getSenders()
public Serializer<?> getSerializer()
public Deserializer<?> getDeserializer()
public TcpMessageMapper getMapper()
public void registerListener(TcpListener listenerToRegister)
listenerToRegister
- the TcpListener.public void registerSender(TcpSender senderToRegister)
senderToRegister
- The senderpublic boolean unregisterSender(TcpSender sender)
sender
- the sender.public void setTaskExecutor(Executor taskExecutor)
taskExecutor
- the taskExecutor to setpublic void setDeserializer(Deserializer<?> deserializer)
deserializer
- the deserializer to setpublic void setSerializer(Serializer<?> serializer)
serializer
- the serializer to setpublic void setMapper(TcpMessageMapper mapper)
mapper
- the mapper to set; defaults to a TcpMessageMapper
public boolean isSingleUse()
public void setSingleUse(boolean singleUse)
singleUse
- The singleUse to set.public void setLeaveOpen(boolean leaveOpen)
setSingleUse(boolean)
.leaveOpen
- The keepOpen to set.public void setInterceptorFactoryChain(TcpConnectionInterceptorFactoryChain interceptorFactoryChain)
public void setLookupHost(boolean lookupHost)
lookupHost
- the lookupHost to setpublic boolean isLookupHost()
public void setNioHarvestInterval(int nioHarvestInterval)
soTimeout > 0
because the clean up
process is run as part of the timeout handling.
Default 2000 milliseconds.nioHarvestInterval
- The interval in milliseconds.public void setSslHandshakeTimeout(int sslHandshakeTimeout)
sslHandshakeTimeout
- the timeout.@Nullable protected Integer getSslHandshakeTimeout()
setSslHandshakeTimeout(int)
protected BlockingQueue<org.springframework.integration.ip.tcp.connection.AbstractConnectionFactory.PendingIO> getDelayedReads()
protected long getReadDelay()
public void setReadDelay(long readDelay)
readDelay
- the readDelay to set.protected Object getLifecycleMonitor()
protected void onInit()
IntegrationObjectSupport
onInit
in class IntegrationObjectSupport
public void start()
start
in interface Lifecycle
start
in interface ManageableLifecycle
protected Executor getTaskExecutor()
public void stop()
stop
in interface Lifecycle
stop
in interface ManageableLifecycle
protected TcpConnectionSupport wrapConnection(TcpConnectionSupport connectionArg)
protected void processNioSelections(int selectionCount, Selector selector, @Nullable ServerSocketChannel server, Map<SocketChannel,TcpNioConnection> connectionMap)
selectionCount > 0
,
processes the selected keys.
Removes closed connections from the connections field, and from the connections parameter.selectionCount
- Number of IO Events, if 0 we were probably woken up by a close.selector
- The selector.server
- The server socket channel.connectionMap
- Map of connections.protected void delayRead(Selector selector, long now, SelectionKey key)
protected void doAccept(Selector selector, ServerSocketChannel server, long now)
selector
- The selector.server
- The server socket channel.now
- The current time.protected void addConnection(TcpConnectionSupport connection)
protected void harvestClosedConnections()
public boolean isRunning()
isRunning
in interface Lifecycle
isRunning
in interface ManageableLifecycle
protected boolean isActive()
protected void setActive(boolean active)
active
- the active to setprotected void checkActive()
protected TcpSocketSupport getTcpSocketSupport()
public void setTcpSocketSupport(TcpSocketSupport tcpSocketSupport)
public List<String> getOpenConnectionIds()
TcpConnection
connection ids; allows,
for example, broadcast operations to all open connections.public boolean closeConnection(String connectionId)
connectionId
- the connection id.public String toString()
toString
in class IntegrationObjectSupport