Class UnicastReceivingChannelAdapter
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.endpoint.AbstractEndpoint
org.springframework.integration.endpoint.MessageProducerSupport
org.springframework.integration.ip.udp.inbound.AbstractInternetProtocolReceivingChannelAdapter
org.springframework.integration.ip.udp.inbound.UnicastReceivingChannelAdapter
- All Implemented Interfaces:
Runnable, Aware, BeanFactoryAware, BeanNameAware, DisposableBean, InitializingBean, SmartInitializingSingleton, ApplicationContextAware, ApplicationEventPublisherAware, Lifecycle, Phased, SmartLifecycle, ComponentSourceAware, ExpressionCapable, MessageProducer, IntegrationPattern, CommonSocketOptions, NamedComponent, IntegrationInboundManagement, IntegrationManagement, ManageableLifecycle, ManageableSmartLifecycle, TrackableComponent, SchedulingAwareRunnable
- Direct Known Subclasses:
MulticastReceivingChannelAdapter
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
- Author:
- Gary Russell, Artem Bilan, Christian Tzolov, Glenn Renfro
-
Nested Class Summary
Nested classes/interfaces inherited from interface IntegrationManagement
IntegrationManagement.ManagementOverrides -
Field Summary
FieldsFields inherited from class AbstractEndpoint
lifecycleLockFields inherited from class IntegrationObjectSupport
EXPRESSION_PARSER, loggerFields inherited from interface IntegrationManagement
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAMEFields inherited from interface SmartLifecycle
DEFAULT_PHASE -
Constructor Summary
ConstructorsConstructorDescriptionUnicastReceivingChannelAdapter(int port) Construct a UnicastReceivingChannelAdapter that listens on the specified port.UnicastReceivingChannelAdapter(int port, boolean lengthCheck) Construct a UnicastReceivingChannelAdapter that listens for packets on the specified port. -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanasyncSendMessage(DatagramPacket packet) protected voiddoSend(DatagramPacket packet) protected voiddoStop()Take no action by default.intgetPort()protected @Nullable DatagramSocketbooleanprotected voidonInit()Subclasses may implement this for initialization logic.protected DatagramPacketreceive()voidrun()protected voidvoidsetLengthCheck(boolean lengthCheck) voidsetLookupHost(boolean lookupHost) voidsetSocket(DatagramSocket socket) protected voidsetSocketAttributes(DatagramSocket socket) Set timeout and receive buffer size; calls the socket customizer.voidsetSocketCustomizer(SocketCustomizer socketCustomizer) Set a customizer to further configure the socket after creation.voidsetSoSendBufferSize(int soSendBufferSize) voidsetTrustedAckAddresses(String... trustedAckAddresses) Set patterns for trusted acknowledgment addresses.Methods inherited from class AbstractInternetProtocolReceivingChannelAdapter
checkTaskExecutor, doStart, getApplicationEventPublisher, getLocalAddress, getReceiveBufferSize, getSoReceiveBufferSize, getSoTimeout, getTaskExecutor, isListening, setApplicationEventPublisher, setListening, setLocalAddress, setPoolSize, setReceiveBufferSize, setSoReceiveBufferSize, setSoTimeout, setTaskExecutorMethods inherited from class MessageProducerSupport
afterSingletonsInstantiated, buildErrorMessage, getErrorChannel, getErrorMessageAttributes, getErrorMessageStrategy, getIntegrationPatternType, getMessagingTemplate, getOutputChannel, getOutputChannelName, getRequiredOutputChannel, isObserved, registerObservationRegistry, sendErrorMessageIfNecessary, sendMessage, setErrorChannel, setErrorChannelName, setErrorMessageStrategy, setObservationConvention, setOutputChannel, setOutputChannelName, setSendTimeout, setShouldTrack, subscribeToPublisherMethods inherited from class AbstractEndpoint
destroy, doStop, getPhase, getRole, isActive, isAutoStartup, isRunning, setAutoStartup, setPhase, setRole, start, stop, stopMethods inherited from class IntegrationObjectSupport
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentDescription, getComponentName, getComponentSource, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentDescription, setComponentName, setComponentSource, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toStringMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface IntegrationManagement
destroy, getManagedName, getManagedType, getOverrides, getThisAs, isLoggingEnabled, registerMetricsCaptor, setLoggingEnabled, setManagedName, setManagedTypeMethods inherited from interface NamedComponent
getBeanName, getComponentNameMethods inherited from interface SchedulingAwareRunnable
getQualifierMethods inherited from interface SmartLifecycle
isPauseable
-
Field Details
-
lock
-
-
Constructor Details
-
UnicastReceivingChannelAdapter
public UnicastReceivingChannelAdapter(int port) Construct a UnicastReceivingChannelAdapter that listens on the specified port.- Parameters:
port- The port.
-
UnicastReceivingChannelAdapter
public UnicastReceivingChannelAdapter(int port, boolean lengthCheck) Construct 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 Details
-
setLengthCheck
public void setLengthCheck(boolean lengthCheck) - Parameters:
lengthCheck- if true, the incoming packet is expected to have a four byte binary length header.- Since:
- 5.0
-
setSocketCustomizer
Set a customizer to further configure the socket after creation.- Parameters:
socketCustomizer- the customizer.- Since:
- 5.3.3
-
setTrustedAckAddresses
Set patterns for trusted acknowledgment addresses. Only packets whoseIpHeaders.ACK_ADDRESSheader matches one of these patterns will trigger an acknowledgment. Patterns support*wildcards viaPatternMatchUtils.simpleMatch(String, String). The address format ishost:port, matching the format set byUnicastSendingMessageHandler. By default, no patterns are set. Setting trustedAckAddresses implies acknowledgments will be sent. Packets from non-matching addresses will not receive an acknowledgment, and aMessagingExceptionis thrown.- Parameters:
trustedAckAddresses- the patterns to trust.- Since:
- 5.5.22
-
isLongLived
public boolean isLongLived() -
getPort
public int getPort()- Overrides:
getPortin classAbstractInternetProtocolReceivingChannelAdapter- Returns:
- The port on which this receiver is listening.
-
onInit
protected void onInit()Description copied from class:IntegrationObjectSupportSubclasses may implement this for initialization logic.- Overrides:
onInitin classMessageProducerSupport
-
run
public void run() -
sendAck
-
asyncSendMessage
-
doSend
-
receive
- Throws:
IOException
-
setSocket
- Parameters:
socket- the socket to set
-
getTheSocket
-
getSocket
-
setSocketAttributes
Set timeout and receive buffer size; calls the socket customizer.- Parameters:
socket- The socket.- Throws:
SocketException- Any socket exception.
-
setSoSendBufferSize
public void setSoSendBufferSize(int soSendBufferSize) - Parameters:
soSendBufferSize- The send buffer size.- See Also:
-
setLookupHost
public void setLookupHost(boolean lookupHost) -
getComponentType
- Specified by:
getComponentTypein interfaceNamedComponent- Overrides:
getComponentTypein classMessageProducerSupport
-
doStop
protected void doStop()Description copied from class:MessageProducerSupportTake no action by default. Subclasses may override this if they need lifecycle-managed behavior.- Overrides:
doStopin classAbstractInternetProtocolReceivingChannelAdapter
-