Spring Integration

org.springframework.integration.ip.tcp
Class TcpSendingMessageHandler

java.lang.Object
  extended by org.springframework.integration.context.IntegrationObjectSupport
      extended by org.springframework.integration.handler.AbstractMessageHandler
          extended by org.springframework.integration.ip.tcp.TcpSendingMessageHandler
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.InitializingBean, org.springframework.context.Lifecycle, org.springframework.context.Phased, org.springframework.context.SmartLifecycle, org.springframework.core.Ordered, NamedComponent, Orderable, MessageHandler, TrackableComponent, ClientModeCapable, TcpSender

public class TcpSendingMessageHandler
extends AbstractMessageHandler
implements TcpSender, org.springframework.context.SmartLifecycle, ClientModeCapable

Tcp outbound channel adapter using a TcpConnection to send data - if the connection factory is a server factory, the TcpListener owns the connections. If it is a client factory, this object owns the connection.

Since:
2.0
Author:
Gary Russell

Field Summary
protected  java.lang.Object lifecycleMonitor
           
 
Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport
logger
 
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
 
Constructor Summary
TcpSendingMessageHandler()
           
 
Method Summary
 void addNewConnection(TcpConnection connection)
          When we are using sockets owned by a TcpListener, this method is called each time a new connection is made.
protected  void doWrite(Message<?> message)
          Method that actually does the write.
protected  ConnectionFactory getClientConnectionFactory()
           
 java.lang.String getComponentType()
          Subclasses may implement this method to provide component type information.
protected  TcpConnection getConnection()
          Deprecated. Use obtainConnection(Message). TODO: remove in 3.0
protected  java.util.Map<java.lang.String,TcpConnection> getConnections()
           
 int getPhase()
           
 long getRetryInterval()
           
protected  ConnectionFactory getServerConnectionFactory()
           
 void handleMessageInternal(Message<?> message)
          Writes the message payload to the underlying socket, using the specified message format.
 boolean isAutoStartup()
           
 boolean isClientMode()
           
 boolean isClientModeConnected()
           
 boolean isRunning()
           
protected  TcpConnection obtainConnection(Message<?> message)
           
protected  void onInit()
          Subclasses may implement this for initialization logic.
 void removeDeadConnection(TcpConnection connection)
          When we are using sockets owned by a TcpListener, this method is called each time a connection is closed.
 void retryConnection()
          Immediately attempt to establish the connection.
 void setAutoStartup(boolean autoStartup)
           
 void setClientMode(boolean isClientMode)
           
 void setConnectionFactory(AbstractConnectionFactory connectionFactory)
          Sets the client or server connection factory; for this (an outbound adapter), if the factory is a server connection factory, the sockets are owned by a receiving channel adapter and this adapter is used to send replies.
 void setPhase(int phase)
           
 void setRetryInterval(long retryInterval)
           
 void setScheduler(org.springframework.scheduling.TaskScheduler scheduler)
          Deprecated. Use setTaskScheduler(TaskScheduler)
 void setTaskScheduler(org.springframework.scheduling.TaskScheduler taskScheduler)
           
 void start()
           
 void stop()
           
 void stop(java.lang.Runnable callback)
           
 
Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler
getOrder, handleMessage, setOrder, setShouldTrack
 
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, getBeanFactory, getComponentName, getConversionService, getTaskScheduler, setBeanFactory, setBeanName, setComponentName, setConversionService, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.springframework.integration.context.NamedComponent
getComponentName
 

Field Detail

lifecycleMonitor

protected final java.lang.Object lifecycleMonitor
Constructor Detail

TcpSendingMessageHandler

public TcpSendingMessageHandler()
Method Detail

getConnection

@Deprecated
protected TcpConnection getConnection()
Deprecated. Use obtainConnection(Message). TODO: remove in 3.0


obtainConnection

protected TcpConnection obtainConnection(Message<?> message)

handleMessageInternal

public void handleMessageInternal(Message<?> message)
                           throws MessageHandlingException
Writes the message payload to the underlying socket, using the specified message format.

Specified by:
handleMessageInternal in class AbstractMessageHandler
Throws:
MessageHandlingException
See Also:
MessageHandler.handleMessage(org.springframework.integration.Message)

doWrite

protected void doWrite(Message<?> message)
Method that actually does the write.

Parameters:
message - The message to write.

setConnectionFactory

public void setConnectionFactory(AbstractConnectionFactory connectionFactory)
Sets the client or server connection factory; for this (an outbound adapter), if the factory is a server connection factory, the sockets are owned by a receiving channel adapter and this adapter is used to send replies.

Parameters:
connectionFactory - the connectionFactory to set

addNewConnection

public void addNewConnection(TcpConnection connection)
Description copied from interface: TcpSender
When we are using sockets owned by a TcpListener, this method is called each time a new connection is made.

Specified by:
addNewConnection in interface TcpSender
Parameters:
connection - The connection.

removeDeadConnection

public void removeDeadConnection(TcpConnection connection)
Description copied from interface: TcpSender
When we are using sockets owned by a TcpListener, this method is called each time a connection is closed.

Specified by:
removeDeadConnection in interface TcpSender
Parameters:
connection - The connection.

getComponentType

public java.lang.String getComponentType()
Description copied from class: IntegrationObjectSupport
Subclasses may implement this method to provide component type information.

Specified by:
getComponentType in interface NamedComponent
Overrides:
getComponentType in class AbstractMessageHandler

onInit

protected void onInit()
               throws java.lang.Exception
Description copied from class: IntegrationObjectSupport
Subclasses may implement this for initialization logic.

Overrides:
onInit in class IntegrationObjectSupport
Throws:
java.lang.Exception

start

public void start()
Specified by:
start in interface org.springframework.context.Lifecycle

stop

public void stop()
Specified by:
stop in interface org.springframework.context.Lifecycle

isRunning

public boolean isRunning()
Specified by:
isRunning in interface org.springframework.context.Lifecycle

getPhase

public int getPhase()
Specified by:
getPhase in interface org.springframework.context.Phased

isAutoStartup

public boolean isAutoStartup()
Specified by:
isAutoStartup in interface org.springframework.context.SmartLifecycle

stop

public void stop(java.lang.Runnable callback)
Specified by:
stop in interface org.springframework.context.SmartLifecycle

setAutoStartup

public void setAutoStartup(boolean autoStartup)

setPhase

public void setPhase(int phase)

getClientConnectionFactory

protected ConnectionFactory getClientConnectionFactory()
Returns:
the clientConnectionFactory

getServerConnectionFactory

protected ConnectionFactory getServerConnectionFactory()
Returns:
the serverConnectionFactory

getConnections

protected java.util.Map<java.lang.String,TcpConnection> getConnections()
Returns:
the connections

isClientMode

public boolean isClientMode()
Specified by:
isClientMode in interface ClientModeCapable
Returns:
the isClientMode

setClientMode

public void setClientMode(boolean isClientMode)
Parameters:
isClientMode - the isClientMode to set

setScheduler

@Deprecated
public void setScheduler(org.springframework.scheduling.TaskScheduler scheduler)
Deprecated. Use setTaskScheduler(TaskScheduler)

Parameters:
scheduler - the scheduler to set

setTaskScheduler

public void setTaskScheduler(org.springframework.scheduling.TaskScheduler taskScheduler)
Overrides:
setTaskScheduler in class IntegrationObjectSupport

getRetryInterval

public long getRetryInterval()
Returns:
the retryInterval

setRetryInterval

public void setRetryInterval(long retryInterval)
Parameters:
retryInterval - the retryInterval to set

isClientModeConnected

public boolean isClientModeConnected()
Specified by:
isClientModeConnected in interface ClientModeCapable
Returns:
true if the endpoint is running in client mode.

retryConnection

public void retryConnection()
Description copied from interface: ClientModeCapable
Immediately attempt to establish the connection.

Specified by:
retryConnection in interface ClientModeCapable

Spring Integration