public class ServerRSocketMessageHandler extends RSocketMessageHandler implements ApplicationEventPublisherAware
IntegrationRSocketMessageHandler extension for RSocket service side.
In a plain Spring Integration application instances of this class are created by the
ServerRSocketConnector internally and a new RSocket server is started over there.
When an existing RSocket server is in use, an instance of this class has to be
provided as a RSocketMessageHandler.responder() into that server and a ServerRSocketConnector
should accept the same instance as a delegate.
With a messageMappingCompatible option this class also handles
MessageMapping methods,
covering both Spring Integration and standard
RSocketMessageHandler
functionality.
| Modifier and Type | Class and Description |
|---|---|
protected static class |
org.springframework.integration.rsocket.IntegrationRSocketMessageHandler.IntegrationRSocketPayloadReturnValueHandler |
protected static class |
org.springframework.integration.rsocket.IntegrationRSocketMessageHandler.MessageHandlerMethodArgumentResolver |
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
messageMappingCompatible |
logger| Constructor and Description |
|---|
ServerRSocketMessageHandler()
Create an service side RSocket message handler instance for delegating
to
IntegrationRSocketEndpoint beans and collect RSocketRequesters
from client connections. |
ServerRSocketMessageHandler(boolean messageMappingCompatible)
Create an service side RSocket message handler instance for delegating
to
IntegrationRSocketEndpoint beans and collect RSocketRequesters
from client connections. |
| Modifier and Type | Method and Description |
|---|---|
void |
addEndpoint(IntegrationRSocketEndpoint endpoint) |
boolean |
detectEndpoints() |
RSocketRequester |
getClientRSocketRequester(Object key)
Obtain a connected
RSocketRequester mapped by provided key or null. |
Map<Object,RSocketRequester> |
getClientRSocketRequesters()
Get connected
RSocketRequesters mapped by the keys from the connect messages. |
protected List<? extends HandlerMethodArgumentResolver> |
initArgumentResolvers() |
protected List<? extends HandlerMethodReturnValueHandler> |
initReturnValueHandlers() |
void |
setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) |
void |
setClientRSocketKeyStrategy(java.util.function.BiFunction<Map<String,Object>,DataBuffer,Object> clientRSocketKeyStrategy)
Configure a
BiFunction to extract a key for mapping connected RSocketRequesters. |
afterPropertiesSet, extendMapping, getCondition, getDefaultDataMimeType, getDefaultMetadataMimeType, getEncoders, getMetadataExtractor, getRSocketStrategies, handleNoMatch, responder, responder, setDecoders, setDefaultDataMimeType, setDefaultMetadataMimeType, setEncoders, setMetadataExtractor, setReactiveAdapterRegistry, setRouteMatcher, setRSocketStrategiescreateExceptionMethodResolverFor, getConversionService, getDecoders, getDestination, getDirectLookupMappings, getMappingComparator, getMappingForMethod, getMatchingMapping, getRouteMatcher, getValidator, handleMatch, obtainRouteMatcher, processDestinations, setConversionService, setEmbeddedValueResolver, setValidatordetectHandlerMethods, getApplicationContext, getArgumentResolverConfigurer, getArgumentResolvers, getBeanName, getDestinationLookup, getHandlerMethods, getHandlerPredicate, getReactiveAdapterRegistry, getReturnValueHandlerConfigurer, handleMessage, registerExceptionHandlerAdvice, registerHandlerMethod, setApplicationContext, setArgumentResolverConfigurer, setBeanName, setHandlerPredicate, setHandlers, setReturnValueHandlerConfigurerpublic ServerRSocketMessageHandler()
IntegrationRSocketEndpoint beans and collect RSocketRequesters
from client connections.public ServerRSocketMessageHandler(boolean messageMappingCompatible)
IntegrationRSocketEndpoint beans and collect RSocketRequesters
from client connections.
When messageMappingCompatible == true, this class also handles
MessageMapping methods
as it is done by the standard
RSocketMessageHandler.messageMappingCompatible - whether handle also
MessageMapping.public void setClientRSocketKeyStrategy(java.util.function.BiFunction<Map<String,Object>,DataBuffer,Object> clientRSocketKeyStrategy)
BiFunction to extract a key for mapping connected RSocketRequesters.
Defaults to the destination a client is connected.clientRSocketKeyStrategy - the BiFunction to use.public Map<Object,RSocketRequester> getClientRSocketRequesters()
RSocketRequesters mapped by the keys from the connect messages.@Nullable public RSocketRequester getClientRSocketRequester(Object key)
RSocketRequester mapped by provided key or null.key - the key for mapped RSocketRequester if any.RSocketRequester or null.public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher)
setApplicationEventPublisher in interface ApplicationEventPublisherAwarepublic boolean detectEndpoints()
public void addEndpoint(IntegrationRSocketEndpoint endpoint)
protected List<? extends HandlerMethodArgumentResolver> initArgumentResolvers()
initArgumentResolvers in class MessageMappingMessageHandlerprotected List<? extends HandlerMethodReturnValueHandler> initReturnValueHandlers()
initReturnValueHandlers in class RSocketMessageHandler