public class SnsInboundChannelAdapter
extends org.springframework.integration.http.inbound.HttpRequestHandlingMessagingGateway
HttpRequestHandlingMessagingGateway
extension for the Amazon WS SNS HTTP(S) endpoints.
Accepts all x-amz-sns-message-type
s, converts the received Topic JSON message to the
Map
using MappingJackson2HttpMessageConverter
and send it to the provided
MessagingGatewaySupport.requestChannel
as Message
payload
.
The mapped url must be configured inside the Amazon Web Service platform as a subscription. Before receiving any notification itself this HTTP endpoint must confirm the subscription.
The handleNotificationStatus
flag (defaults to false
) indicates that
this endpoint should send the SubscriptionConfirmation/UnsubscribeConfirmation
messages to the the provided MessagingGatewaySupport.requestChannel
. If that, the AwsHeaders.NOTIFICATION_STATUS
header is populated with the NotificationStatus
value. In that case it is a responsibility of
the application to NotificationStatus.confirmSubscription()
or not.
By default this endpoint just does NotificationStatus.confirmSubscription()
for the SubscriptionConfirmation
message type.
And does nothing for the UnsubscribeConfirmation
.
For the convenience on the underlying message flow routing a AwsHeaders.SNS_MESSAGE_TYPE
header is present.
activeCount, expectReply, jaxb2Present, nonReadableBodyHttpMethods, romeToolsPresent
messagingTemplate
Constructor and Description |
---|
SnsInboundChannelAdapter(com.amazonaws.services.sns.AmazonSNS amazonSns,
java.lang.String... path) |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
getComponentType() |
protected void |
onInit() |
protected void |
send(java.lang.Object object) |
void |
setExtractReplyPayload(boolean extractReplyPayload) |
void |
setHandleNotificationStatus(boolean handleNotificationStatus) |
void |
setHeaderExpressions(java.util.Map<java.lang.String,org.springframework.expression.Expression> headerExpressions) |
void |
setHeaderMapper(org.springframework.integration.mapping.HeaderMapper<org.springframework.http.HttpHeaders> headerMapper) |
void |
setMergeWithDefaultConverters(boolean mergeWithDefaultConverters) |
void |
setMessageConverters(java.util.List<org.springframework.http.converter.HttpMessageConverter<?>> messageConverters) |
void |
setMultipartResolver(org.springframework.web.multipart.MultipartResolver multipartResolver) |
void |
setPayloadExpression(org.springframework.expression.Expression payloadExpression) |
void |
setRequestMapping(org.springframework.integration.http.inbound.RequestMapping requestMapping) |
void |
setRequestPayloadTypeClass(java.lang.Class<?> requestPayloadType) |
void |
setStatusCodeExpression(org.springframework.expression.Expression statusCodeExpression) |
handleRequest, setConvertExceptions
doHandleRequest, getMessageConverters, setStatusCodeIfNeeded, setupResponseAndConvertReply
afterShutdown, beforeShutdown, createEvaluationContext, evaluateHttpStatus, getCrossOrigin, getExtractReplyPayload, getHeaderExpressions, getHeaderMapper, getPayloadExpression, getRequestMapping, getRequestPayloadType, getStatusCodeExpression, isExpectReply, isReadable, resolveHttpStatusFromHeaders, setCrossOrigin, setRequestPayloadType, setStatusCodeExpressionString
buildErrorMessage, doStart, doStop, getErrorChannel, getErrorMessageAttributes, getManagedName, getManagedType, getMessageCount, getMessageCountLong, getOverrides, getReplyChannel, getRequestChannel, isCountsEnabled, isLoggingEnabled, receive, receive, receiveMessage, receiveMessage, registerReplyMessageCorrelatorIfNecessary, reset, sendAndReceive, sendAndReceiveMessage, sendAndReceiveMessageReactive, setCountsEnabled, setErrorChannel, setErrorChannelName, setErrorMessageStrategy, setLoggingEnabled, setManagedName, setManagedType, setReplyChannel, setReplyChannelName, setReplyMapper, setReplyTimeout, setRequestChannel, setRequestChannelName, setRequestMapper, setRequestTimeout, setShouldTrack
destroy, doStop, getPhase, getRole, isAutoStartup, isRunning, setAutoStartup, setPhase, setRole, setTaskScheduler, start, stop, stop
afterPropertiesSet, extractTypeIfPossible, getApplicationContext, getApplicationContextId, getBeanFactory, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, toString
public SnsInboundChannelAdapter(com.amazonaws.services.sns.AmazonSNS amazonSns, java.lang.String... path)
public void setHandleNotificationStatus(boolean handleNotificationStatus)
protected void onInit() throws java.lang.Exception
onInit
in class org.springframework.integration.http.inbound.HttpRequestHandlingEndpointSupport
java.lang.Exception
public java.lang.String getComponentType()
getComponentType
in interface org.springframework.integration.support.context.NamedComponent
getComponentType
in class org.springframework.integration.http.inbound.BaseHttpInboundEndpoint
protected void send(java.lang.Object object)
send
in class org.springframework.integration.gateway.MessagingGatewaySupport
public void setPayloadExpression(org.springframework.expression.Expression payloadExpression)
setPayloadExpression
in class org.springframework.integration.http.inbound.BaseHttpInboundEndpoint
public void setHeaderExpressions(java.util.Map<java.lang.String,org.springframework.expression.Expression> headerExpressions)
setHeaderExpressions
in class org.springframework.integration.http.inbound.BaseHttpInboundEndpoint
public void setMessageConverters(java.util.List<org.springframework.http.converter.HttpMessageConverter<?>> messageConverters)
setMessageConverters
in class org.springframework.integration.http.inbound.HttpRequestHandlingEndpointSupport
public void setMergeWithDefaultConverters(boolean mergeWithDefaultConverters)
setMergeWithDefaultConverters
in class org.springframework.integration.http.inbound.HttpRequestHandlingEndpointSupport
public void setHeaderMapper(org.springframework.integration.mapping.HeaderMapper<org.springframework.http.HttpHeaders> headerMapper)
setHeaderMapper
in class org.springframework.integration.http.inbound.BaseHttpInboundEndpoint
public void setRequestMapping(org.springframework.integration.http.inbound.RequestMapping requestMapping)
setRequestMapping
in class org.springframework.integration.http.inbound.BaseHttpInboundEndpoint
public void setRequestPayloadTypeClass(java.lang.Class<?> requestPayloadType)
setRequestPayloadTypeClass
in class org.springframework.integration.http.inbound.BaseHttpInboundEndpoint
public void setExtractReplyPayload(boolean extractReplyPayload)
setExtractReplyPayload
in class org.springframework.integration.http.inbound.BaseHttpInboundEndpoint
public void setMultipartResolver(org.springframework.web.multipart.MultipartResolver multipartResolver)
setMultipartResolver
in class org.springframework.integration.http.inbound.HttpRequestHandlingEndpointSupport
public void setStatusCodeExpression(org.springframework.expression.Expression statusCodeExpression)
setStatusCodeExpression
in class org.springframework.integration.http.inbound.BaseHttpInboundEndpoint