Class MulticastSendingMessageHandler
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.handler.MessageHandlerSupport
org.springframework.integration.handler.AbstractMessageHandler
org.springframework.integration.ip.AbstractInternetProtocolSendingMessageHandler
org.springframework.integration.ip.udp.UnicastSendingMessageHandler
org.springframework.integration.ip.udp.MulticastSendingMessageHandler
- All Implemented Interfaces:
Runnable
,org.reactivestreams.Subscriber<Message<?>>
,Aware
,BeanFactoryAware
,BeanNameAware
,DisposableBean
,InitializingBean
,ApplicationContextAware
,Lifecycle
,Ordered
,ExpressionCapable
,Orderable
,IntegrationPattern
,CommonSocketOptions
,NamedComponent
,IntegrationManagement
,ManageableLifecycle
,TrackableComponent
,MessageHandler
,reactor.core.CoreSubscriber<Message<?>>
public class MulticastSendingMessageHandler extends UnicastSendingMessageHandler
A
MessageHandler
implementation that maps a
Message into a UDP datagram packet and sends that to the specified multicast address
(224.0.0.0 to 239.255.255.255) and port.
The only difference between this and its super class is the ability to specify how many
acknowledgments are required to determine success.- Since:
- 2.0
- Author:
- Gary Russell, Artem Bilan
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement
IntegrationManagement.ManagementOverrides
-
Field Summary
Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, logger
Fields inherited from interface org.springframework.integration.support.management.IntegrationManagement
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
-
Constructor Summary
Constructors Constructor Description MulticastSendingMessageHandler(String destinationExpression)
Construct MulticastSendingMessageHandler based on the destination SpEL expression to determine the target destination at runtime against requestMessage.MulticastSendingMessageHandler(String address, int port)
Constructs a MulticastSendingMessageHandler to send data to the multicast address/port.MulticastSendingMessageHandler(String address, int port, boolean lengthCheck)
Constructs a MulticastSendingMessageHandler to send data to the multicast address/port and enables setting the lengthCheck option (if set, a length is prepended to the packet and checked at the destination).MulticastSendingMessageHandler(String address, int port, boolean lengthCheck, boolean acknowledge, String ackHost, int ackPort, int ackTimeout)
Constructs a MulticastSendingMessageHandler to send data to the multicast address/port and enables setting the acknowledge option, where the destination sends a receipt acknowledgment.MulticastSendingMessageHandler(String address, int port, boolean acknowledge, String ackHost, int ackPort, int ackTimeout)
Constructs a MulticastSendingMessageHandler to send data to the multicast address/port and enables setting the acknowledge option, where the destination sends a receipt acknowledgment.MulticastSendingMessageHandler(Expression destinationExpression)
Construct MulticastSendingMessageHandler based on the destination SpEL expression to determine the target destination at runtime against requestMessage. -
Method Summary
Modifier and Type Method Description protected void
convertAndSend(Message<?> message)
protected DatagramSocket
getSocket()
void
setLocalAddress(String localAddress)
On a multi-homed system, specifies the ip address of the network interface used to communicate.void
setMinAcksForSuccess(int minAcksForSuccess)
If acknowledge = true; how many acks needed for success.void
setTimeToLive(int timeToLive)
Set the underlyingMulticastSocket
time to live property.Methods inherited from class org.springframework.integration.ip.udp.UnicastSendingMessageHandler
doStart, doStop, getAckPort, getComponentType, getSoReceiveBufferSize, getTheSocket, handleMessageInternal, isAcknowledge, onInit, restartAckThread, run, setAckCounter, setLengthCheck, setReliabilityAttributes, setSocket, setSocketAttributes, setSocketCustomizer, setSocketExpression, setSocketExpressionString, setSoReceiveBufferSize, setTaskExecutor, startAckThread, updateAckAddress
Methods inherited from class org.springframework.integration.ip.AbstractInternetProtocolSendingMessageHandler
getDestinationAddress, getHost, getPort, getSoSendBufferSize, getSoTimeout, isRunning, setSoSendBufferSize, setSoTimeout, start, stop
Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler
handleMessage, onComplete, onError, onNext, onSubscribe
Methods inherited from class org.springframework.integration.handler.MessageHandlerSupport
buildSendTimer, destroy, getIntegrationPatternType, getManagedName, getManagedType, getMetricsCaptor, getOrder, getOverrides, isLoggingEnabled, registerMetricsCaptor, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrack
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, 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.support.management.IntegrationManagement
getThisAs
Methods inherited from interface org.springframework.integration.support.context.NamedComponent
getBeanName, getComponentName
-
Constructor Details
-
MulticastSendingMessageHandler
Constructs a MulticastSendingMessageHandler to send data to the multicast address/port.- Parameters:
address
- The multicast address.port
- The port.
-
MulticastSendingMessageHandler
Constructs a MulticastSendingMessageHandler to send data to the multicast address/port and enables setting the lengthCheck option (if set, a length is prepended to the packet and checked at the destination).- Parameters:
address
- The multicast address.port
- The port.lengthCheck
- Enable the lengthCheck option.
-
MulticastSendingMessageHandler
public MulticastSendingMessageHandler(String address, int port, boolean acknowledge, String ackHost, int ackPort, int ackTimeout)Constructs a MulticastSendingMessageHandler to send data to the multicast address/port and enables setting the acknowledge option, where the destination sends a receipt acknowledgment.- Parameters:
address
- The multicast address.port
- The port.acknowledge
- Whether or not acknowledgments are required.ackHost
- The host to which acknowledgments should be sent; required if acknowledge is true.ackPort
- The port to which acknowledgments should be sent; required if acknowledge is true.ackTimeout
- How long to wait (milliseconds) for an acknowledgment.
-
MulticastSendingMessageHandler
public MulticastSendingMessageHandler(String address, int port, boolean lengthCheck, boolean acknowledge, String ackHost, int ackPort, int ackTimeout)Constructs a MulticastSendingMessageHandler to send data to the multicast address/port and enables setting the acknowledge option, where the destination sends a receipt acknowledgment.- Parameters:
address
- The multicast address.port
- The port.lengthCheck
- Enable the lengthCheck option.acknowledge
- Whether or not acknowledgments are required.ackHost
- The host to which acknowledgments should be sent; required if acknowledge is true.ackPort
- The port to which acknowledgments should be sent; required if acknowledge is true.ackTimeout
- How long to wait (milliseconds) for an acknowledgment.
-
MulticastSendingMessageHandler
Construct MulticastSendingMessageHandler based on the destination SpEL expression to determine the target destination at runtime against requestMessage.- Parameters:
destinationExpression
- the SpEL expression to evaluate the target destination at runtime. Must evaluate toString
,URI
orSocketAddress
.- Since:
- 5.0
-
MulticastSendingMessageHandler
Construct MulticastSendingMessageHandler based on the destination SpEL expression to determine the target destination at runtime against requestMessage.- Parameters:
destinationExpression
- the SpEL expression to evaluate the target destination at runtime. Must evaluate toString
,URI
orSocketAddress
.- Since:
- 5.0
-
-
Method Details
-
getSocket
- Overrides:
getSocket
in classUnicastSendingMessageHandler
- Throws:
IOException
-
setMinAcksForSuccess
public void setMinAcksForSuccess(int minAcksForSuccess)If acknowledge = true; how many acks needed for success.- Parameters:
minAcksForSuccess
- The minimum number of acks that will represent success.
-
setTimeToLive
public void setTimeToLive(int timeToLive)Set the underlyingMulticastSocket
time to live property.- Parameters:
timeToLive
-MulticastSocket.setTimeToLive(int)
-
setLocalAddress
Description copied from interface:CommonSocketOptions
On a multi-homed system, specifies the ip address of the network interface used to communicate. For inbound adapters and gateways, specifies the interface used to listed for incoming connections. If omitted, the endpoint will listen on all available adapters. For the UDP multicast outbound adapter specifies the interface to which multicast packets will be sent. For UDP unicast and multicast adapters, specifies which interface to which the acknowledgment socket will be bound. Does not apply to TCP outbound adapters and gateways.- Specified by:
setLocalAddress
in interfaceCommonSocketOptions
- Overrides:
setLocalAddress
in classUnicastSendingMessageHandler
- Parameters:
localAddress
- The local address.
-
convertAndSend
- Overrides:
convertAndSend
in classUnicastSendingMessageHandler
- Throws:
IOException
URISyntaxException
-