Class RSocketOutboundGateway
- All Implemented Interfaces:
- org.reactivestreams.Subscriber<Message<?>>,- Aware,- BeanClassLoaderAware,- BeanFactoryAware,- BeanNameAware,- DisposableBean,- InitializingBean,- ApplicationContextAware,- Ordered,- ExpressionCapable,- Orderable,- MessageProducer,- HeaderPropagationAware,- IntegrationPattern,- NamedComponent,- IntegrationManagement,- TrackableComponent,- MessageHandler,- reactor.core.CoreSubscriber<Message<?>>
RSocketRequester, which can be obtained from the
 ClientRSocketConnector on the client side or from the
 RSocketRequesterMethodArgumentResolver.RSOCKET_REQUESTER_HEADER request message header
 on the server side.
 
 An RSocket operation is determined by the configured RSocketInteractionModel or respective SpEL
 expression to be evaluated at runtime against the request message.
 By default the RSocketInteractionModel.requestResponse operation is used.
 
 For a Publisher-based requests, it must be present in the request message payload.
 The flattening via upstream FluxMessageChannel will work, too,
 but this way we will lose a scope of particular request and every Publisher event
 will be send in its own plain request.
 
 If reply is a Flux, it is wrapped to the Mono to retain a request scope.
 The downstream flow is responsible to obtain this Flux from a message payload
 and subscribe to it by itself. The Mono reply from this component is subscribed from the downstream
 FluxMessageChannel or it is adapted to the
 ListenableFuture otherwise.
- Since:
- 5.2
- Author:
- Artem Bilan
- See Also:
- 
Nested Class SummaryNested classes/interfaces inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandlerAbstractReplyProducingMessageHandler.RequestHandlerNested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagementIntegrationManagement.ManagementOverrides
- 
Field SummaryFields inherited from class org.springframework.integration.handler.AbstractMessageProducingHandlermessagingTemplateFields inherited from class org.springframework.integration.context.IntegrationObjectSupportEXPRESSION_PARSER, loggerFields inherited from interface org.springframework.integration.support.management.IntegrationManagementMETER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAMEFields inherited from interface org.springframework.core.OrderedHIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
- 
Constructor SummaryConstructorsConstructorDescriptionRSocketOutboundGateway(String route, Object... routeVariables) Instantiate based on the provided RSocket endpointrouteand optional variables to expand route template.RSocketOutboundGateway(Expression routeExpression) Instantiate based on the provided SpEL expression to evaluate an RSocket endpointrouteat runtime against a request message.
- 
Method SummaryModifier and TypeMethodDescriptionprotected voiddoInit()protected ObjecthandleRequestMessage(Message<?> requestMessage) Subclasses must implement this method to handle the request Message.voidsetClientRSocketConnector(ClientRSocketConnector clientRSocketConnector) Configure aClientRSocketConnectorfor client side requests based on the connection provided by theClientRSocketConnector.getRequester().voidsetExpectedResponseType(Class<?> expectedResponseType) Specify an response type for the RSocket response.voidsetExpectedResponseTypeExpression(Expression expectedResponseTypeExpression) Specify anExpressionto determine the type for the RSocket response.voidsetInteractionModel(RSocketInteractionModel interactionModel) Configure anRSocketInteractionModelfor the RSocket request type.voidsetInteractionModelExpression(Expression interactionModelExpression) Configure a SpEL expression to evaluate anRSocketInteractionModelfor the RSocket request type at runtime against a request message.voidsetMetadataExpression(Expression metadataExpression) Specify a SpEL expression to evaluate a metadata for the RSocket request asMap<Object, MimeType>against a request message.voidsetPublisherElementType(Class<?> publisherElementType) Configure a type for a requestPublisherelements.voidsetPublisherElementTypeExpression(Expression publisherElementTypeExpression) Configure a SpEL expression to evaluate a requestPublisherelements type at runtime against a request message.Methods inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandlerdoInvokeAdvisedRequestHandler, getBeanClassLoader, getIntegrationPatternType, getRequiresReply, handleMessageInternal, hasAdviceChain, onInit, setAdviceChain, setBeanClassLoader, setRequiresReplyMethods inherited from class org.springframework.integration.handler.AbstractMessageProducingHandleraddNotPropagatedHeaders, createOutputMessage, getNotPropagatedHeaders, getOutputChannel, isAsync, messageBuilderForReply, produceOutput, resolveErrorChannel, sendErrorMessage, sendOutput, sendOutputs, setAsync, setNotPropagatedHeaders, setOutputChannel, setOutputChannelName, setSendTimeout, setupMessageProcessor, shouldCopyRequestHeaders, shouldSplitOutput, updateNotPropagatedHeadersMethods inherited from class org.springframework.integration.handler.AbstractMessageHandlerhandleMessage, onComplete, onError, onNext, onSubscribe, setObservationConventionMethods inherited from class org.springframework.integration.handler.MessageHandlerSupportbuildSendTimer, destroy, getComponentType, getManagedName, getManagedType, getMetricsCaptor, getObservationRegistry, getOrder, getOverrides, isLoggingEnabled, isObserved, registerMetricsCaptor, registerObservationRegistry, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrackMethods inherited from class org.springframework.integration.context.IntegrationObjectSupportafterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toStringMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface reactor.core.CoreSubscribercurrentContextMethods inherited from interface org.springframework.integration.support.management.IntegrationManagementgetThisAsMethods inherited from interface org.springframework.integration.support.context.NamedComponentgetBeanName, getComponentName
- 
Constructor Details- 
RSocketOutboundGatewayInstantiate based on the provided RSocket endpointrouteand optional variables to expand route template.- Parameters:
- route- the RSocket endpoint route to use.
- routeVariables- the variables to expand route template.
 
- 
RSocketOutboundGatewayInstantiate based on the provided SpEL expression to evaluate an RSocket endpointrouteat runtime against a request message. If route is a template and variables expansion is required, it is recommended to do that in this expression evaluation, for example using some bean with an appropriate logic.- Parameters:
- routeExpression- the SpEL expression to use.
 
 
- 
- 
Method Details- 
setClientRSocketConnectorConfigure aClientRSocketConnectorfor client side requests based on the connection provided by theClientRSocketConnector.getRequester(). In case of server side, anRSocketRequestermust be provided in theRSocketRequesterMethodArgumentResolver.RSOCKET_REQUESTER_HEADERheader of request message.- Parameters:
- clientRSocketConnector- the- ClientRSocketConnectorto use.
 
- 
setInteractionModelConfigure anRSocketInteractionModelfor the RSocket request type.- Parameters:
- interactionModel- the- RSocketInteractionModelto use.
- Since:
- 5.2.2
 
- 
setInteractionModelExpressionConfigure a SpEL expression to evaluate anRSocketInteractionModelfor the RSocket request type at runtime against a request message.- Parameters:
- interactionModelExpression- the SpEL expression to use.
- Since:
- 5.2.2
 
- 
setPublisherElementTypeConfigure a type for a requestPublisherelements.- Parameters:
- publisherElementType- the type of the request- Publisherelements.
- See Also:
 
- 
setPublisherElementTypeExpressionConfigure a SpEL expression to evaluate a requestPublisherelements type at runtime against a request message.- Parameters:
- publisherElementTypeExpression- the expression to evaluate a type for the request- Publisherelements.
- See Also:
 
- 
setExpectedResponseTypeSpecify an response type for the RSocket response.- Parameters:
- expectedResponseType- The expected type.
- See Also:
 
- 
setExpectedResponseTypeExpressionSpecify anExpressionto determine the type for the RSocket response.- Parameters:
- expectedResponseTypeExpression- The expected response type expression.
- See Also:
 
- 
setMetadataExpressionSpecify a SpEL expression to evaluate a metadata for the RSocket request asMap<Object, MimeType>against a request message.- Parameters:
- metadataExpression- the expression for metadata.
 
- 
doInitprotected void doInit()- Overrides:
- doInitin class- AbstractReplyProducingMessageHandler
 
- 
handleRequestMessageDescription copied from class:AbstractReplyProducingMessageHandlerSubclasses must implement this method to handle the request Message. The return value may be a Message, a MessageBuilder, or any plain Object. The base class will handle the final creation of a reply Message from any of those starting points. If the return value is null, the Message flow will end here.- Specified by:
- handleRequestMessagein class- AbstractReplyProducingMessageHandler
- Parameters:
- requestMessage- The request message.
- Returns:
- The result of handling the message, or null.
 
 
-