org.springframework.integration.ip.udp
Class UnicastReceivingChannelAdapter

java.lang.Object
  extended by org.springframework.integration.context.IntegrationObjectSupport
      extended by org.springframework.integration.endpoint.AbstractEndpoint
          extended by org.springframework.integration.endpoint.MessageProducerSupport
              extended by org.springframework.integration.ip.AbstractInternetProtocolReceivingChannelAdapter
                  extended by org.springframework.integration.ip.udp.UnicastReceivingChannelAdapter
All Implemented Interfaces:
java.lang.Runnable, BeanFactoryAware, BeanNameAware, InitializingBean, Lifecycle, Phased, SmartLifecycle, NamedComponent, MessageProducer, TrackableComponent, CommonSocketOptions
Direct Known Subclasses:
MulticastReceivingChannelAdapter

public class UnicastReceivingChannelAdapter
extends AbstractInternetProtocolReceivingChannelAdapter

A channel adapter to receive incoming UDP packets. Packets can optionally be preceded by a 4 byte length field, used to validate that all data was received. Packets may also contain information indicating an acknowledgment needs to be sent.

Since:
2.0

Field Summary
protected  DatagramPacketMessageMapper mapper
           
protected  java.net.DatagramSocket socket
           
protected  int soSendBufferSize
           
 
Fields inherited from class org.springframework.integration.ip.AbstractInternetProtocolReceivingChannelAdapter
active, listening, localAddress, poolSize, port, receiveBufferSize, soReceiveBufferSize, soTimeout, taskExecutor
 
Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport
logger
 
Constructor Summary
UnicastReceivingChannelAdapter(int port)
          Constructs a UnicastReceivingChannelAdapter that listens on the specified port.
UnicastReceivingChannelAdapter(int port, boolean lengthCheck)
          Constructs a UnicastReceivingChannelAdapter that listens for packets on the specified port.
 
Method Summary
protected  boolean asyncSendMessage(java.net.DatagramPacket packet)
           
protected  void doStop()
          Takes no action by default.
 java.lang.String getComponentType()
          Subclasses may implement this method to provide component type information.
protected  java.net.DatagramSocket getSocket()
           
protected  java.net.DatagramPacket receive()
           
 void run()
           
protected  void sendAck(Message<byte[]> message)
           
 void setLookupHost(boolean lookupHost)
           
 void setSoSendBufferSize(int soSendBufferSize)
           
 
Methods inherited from class org.springframework.integration.ip.AbstractInternetProtocolReceivingChannelAdapter
checkTaskExecutor, doStart, getLocalAddress, getPort, isListening, setLocalAddress, setPoolSize, setReceiveBufferSize, setSoReceiveBufferSize, setSoTimeout, setTaskExecutor
 
Methods inherited from class org.springframework.integration.endpoint.MessageProducerSupport
onInit, sendMessage, setErrorChannel, setOutputChannel, setSendTimeout, setShouldTrack
 
Methods inherited from class org.springframework.integration.endpoint.AbstractEndpoint
getPhase, isAutoStartup, isRunning, setAutoStartup, setPhase, setTaskScheduler, start, stop, stop
 
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

socket

protected volatile java.net.DatagramSocket socket

mapper

protected final DatagramPacketMessageMapper mapper

soSendBufferSize

protected volatile int soSendBufferSize
Constructor Detail

UnicastReceivingChannelAdapter

public UnicastReceivingChannelAdapter(int port)
Constructs a UnicastReceivingChannelAdapter that listens on the specified port.

Parameters:
port -

UnicastReceivingChannelAdapter

public UnicastReceivingChannelAdapter(int port,
                                      boolean lengthCheck)
Constructs a UnicastReceivingChannelAdapter that listens for packets on the specified port. Enables setting the lengthCheck option, which expects a length to precede the incoming packets.

Parameters:
port - The port.
lengthCheck - If true, enables the lengthCheck Option.
Method Detail

run

public void run()

sendAck

protected void sendAck(Message<byte[]> message)

asyncSendMessage

protected boolean asyncSendMessage(java.net.DatagramPacket packet)

receive

protected java.net.DatagramPacket receive()
                                   throws java.lang.Exception
Throws:
java.lang.Exception

getSocket

protected java.net.DatagramSocket getSocket()

doStop

protected void doStop()
Description copied from class: MessageProducerSupport
Takes no action by default. Subclasses may override this if they need lifecycle-managed behavior.

Overrides:
doStop in class AbstractInternetProtocolReceivingChannelAdapter

setSoSendBufferSize

public void setSoSendBufferSize(int soSendBufferSize)
Specified by:
setSoSendBufferSize in interface CommonSocketOptions
Overrides:
setSoSendBufferSize in class AbstractInternetProtocolReceivingChannelAdapter
See Also:
Socket.setSendBufferSize(int), DatagramSocket.setSendBufferSize(int)

setLookupHost

public void setLookupHost(boolean lookupHost)

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 IntegrationObjectSupport