@Override public PublishResult retriableCall() throws Exception { PublishRequest publishRequest = new PublishRequest(topic_arn, msg) .withMessageAttributes(messageAttributes); return snsClient.publish(publishRequest); } }.call();
@Override protected boolean sendInternal(Message<?> message, long timeout) { PublishRequest publishRequest = new PublishRequest(this.topicArn, message.getPayload().toString(), findNotificationSubject(message)); Map<String, MessageAttributeValue> messageAttributes = getMessageAttributes(message); if (!messageAttributes.isEmpty()) { publishRequest.withMessageAttributes(messageAttributes); } this.amazonSns.publish(publishRequest); return true; }
@Override protected boolean sendInternal(Message<?> message, long timeout) { PublishRequest publishRequest = new PublishRequest(this.topicArn, message.getPayload().toString(), findNotificationSubject(message)); Map<String, MessageAttributeValue> messageAttributes = getMessageAttributes(message); if (!messageAttributes.isEmpty()) { publishRequest.withMessageAttributes(messageAttributes); } this.amazonSns.publish(publishRequest); return true; }
@Override public PublishResult publish(String topicArn, String messageText, Map<String, MessageAttributeValue> messageAttributes, AmazonSNS amazonSNS) { return amazonSNS.publish(new PublishRequest().withTopicArn(topicArn).withMessage(messageText).withMessageAttributes(messageAttributes)); } }
@Override public PublishResult publish(String topicArn, String messageText, Map<String, MessageAttributeValue> messageAttributes, AmazonSNS amazonSNS) { return amazonSNS.publish(new PublishRequest().withTopicArn(topicArn).withMessage(messageText).withMessageAttributes(messageAttributes)); } }
protected void send(String topicName, String topicArn, IPubSubMessage pubSubMessage, ITraceContext trace) { trace.trace("ABOUT-TO-PUBLISH", "SNS_TOPIC", topicName); try { PublishRequest publishRequest = new PublishRequest(topicArn, pubSubMessage.getPayload()); if(!pubSubMessage.getAttributes().isEmpty()) { Map<String, MessageAttributeValue> messageAttributes = new HashMap<>(); for(Entry<String, String> entry : pubSubMessage.getAttributes().entrySet()) { messageAttributes.put(entry.getKey(), new MessageAttributeValue() .withDataType("String") .withStringValue(entry.getValue())); } publishRequest.withMessageAttributes(messageAttributes); } snsClient_.publish(publishRequest); trace.trace("PUBLISHED", "SNS_TOPIC", topicName); } catch (RuntimeException e) { throw new TransactionFault(e); } }