@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof PublishResult == false) return false; PublishResult other = (PublishResult) obj; if (other.getMessageId() == null ^ this.getMessageId() == null) return false; if (other.getMessageId() != null && other.getMessageId().equals(this.getMessageId()) == false) return false; return true; }
@Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getMessageId() == null) ? 0 : getMessageId().hashCode()); return hashCode; }
/** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getMessageId() != null) sb.append("MessageId: ").append(getMessageId()); sb.append("}"); return sb.toString(); }
@Override public void onSuccess( PublishRequest request, PublishResult result ) { if ( logger.isTraceEnabled() ) { logger.trace( "Successfully published... messageID=[{}], arn=[{}]", result.getMessageId(), request.getTopicArn() ); } } } );
private <T extends Serializable> void sendMessageToAllRegionsSync(final T body) throws IOException { if ( sns == null ) { logger.error( "SNS client is null, perhaps it failed to initialize successfully" ); return; } final String stringBody = toString( body ); String topicArn = getWriteTopicArn(); if ( logger.isTraceEnabled() ) { logger.trace( "Publishing Message...{} to arn: {}", stringBody, topicArn ); } try { PublishResult publishResult = sns.publish(topicArn, toString(body)); if ( logger.isTraceEnabled() ) { logger.trace( "Successfully published... messageID=[{}], arn=[{}]", publishResult.getMessageId(), topicArn ); } } catch (Exception e) { if (logger.isErrorEnabled()) { logger.error(FAILED_TO_SEND_MESSAGE, stringBody, topicArn, e); } sendMessageToAllRegionsAsync(body); } }
String publishedMsgId = publishResult.getMessageId(); if (publishedMsgId == null || publishedMsgId.isEmpty()) { backupMetrics.incrementSnsNotificationFailure();
@Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getMessageId() == null) ? 0 : getMessageId().hashCode()); return hashCode; }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof PublishResult == false) return false; PublishResult other = (PublishResult) obj; if (other.getMessageId() == null ^ this.getMessageId() == null) return false; if (other.getMessageId() != null && other.getMessageId().equals(this.getMessageId()) == false) return false; return true; } }
/** * Returns a string representation of this object; useful for testing and * debugging. * * @return A string representation of this object. * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getMessageId() != null) sb.append("MessageId: " + getMessageId()); sb.append("}"); return sb.toString(); }
@Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getMessageId() == null) ? 0 : getMessageId().hashCode()); return hashCode; }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof PublishResult == false) return false; PublishResult other = (PublishResult) obj; if (other.getMessageId() == null ^ this.getMessageId() == null) return false; if (other.getMessageId() != null && other.getMessageId().equals(this.getMessageId()) == false) return false; return true; } }
/** * Returns a string representation of this object; useful for testing and * debugging. * * @return A string representation of this object. * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getMessageId() != null) sb.append("MessageId: " + getMessageId()); sb.append("}"); return sb.toString(); }
@Override public void encode(PublishResult value, OutputStream outStream) throws CoderException, IOException { StringUtf8Coder.of().encode(value.getMessageId(), outStream); }
@Override protected void additionalOnSuccessHeaders(AbstractIntegrationMessageBuilder<?> messageBuilder, AmazonWebServiceRequest request, Object result) { if (request instanceof PublishRequest) { PublishRequest publishRequest = (PublishRequest) request; messageBuilder.setHeader(AwsHeaders.TOPIC, publishRequest.getTopicArn()); } if (result instanceof PublishResult) { PublishResult publishResult = (PublishResult) result; messageBuilder.setHeader(AwsHeaders.MESSAGE_ID, publishResult.getMessageId()); } }
@Override protected void additionalOnSuccessHeaders(AbstractIntegrationMessageBuilder<?> messageBuilder, AmazonWebServiceRequest request, Object result) { if (request instanceof PublishRequest) { PublishRequest publishRequest = (PublishRequest) request; messageBuilder.setHeader(AwsHeaders.TOPIC, publishRequest.getTopicArn()); } if (result instanceof PublishResult) { PublishResult publishResult = (PublishResult) result; messageBuilder.setHeader(AwsHeaders.MESSAGE_ID, publishResult.getMessageId()); } }
private void publishNotification( final String arn, final SNSMessage<?> message, final String counterKey ) throws Exception { PublishResult result = null; try { result = this.client.publish(arn, this.mapper.writeValueAsString(message)); } catch (InvalidParameterException | InvalidParameterValueException exception) { log.error("SNS Publish message exceeded the size threshold", exception); notificationMetric.counterIncrement( Metrics.CounterSNSNotificationPublishMessageSizeExceeded.getMetricName()); final SNSMessage<Void> voidMessage = new SNSMessage<>(message.getId(), message.getTimestamp(), message.getRequestId(), message.getType(), message.getName(), null); result = this.client.publish(arn, this.mapper.writeValueAsString(voidMessage)); } log.info("Successfully published message to topic {} with id {}", arn, result.getMessageId()); log.debug("Successfully published message {} to topic {} with id {}", message, arn, result.getMessageId()); notificationMetric.counterIncrement(counterKey); notificationMetric.recordTime(message, Metrics.TimerNotificationsPublishDelay.getMetricName()); } }
@Override protected Void run() throws Exception { final String topicArn = this.step.getTopicArn(); final String subject = this.step.getSubject(); final String message = this.step.getMessage(); final Map<String, String> messageAttributes = this.step.getMessageAttributes(); TaskListener listener = this.getContext().get(TaskListener.class); AmazonSNS snsClient = AWSClientFactory.create(AmazonSNSClientBuilder.standard(), this.getContext()); listener.getLogger().format("Publishing notification %s to %s %n", subject, topicArn); PublishRequest publishRequest = new PublishRequest() .withTopicArn(topicArn).withMessage(message).withSubject(subject); if (messageAttributes != null && !messageAttributes.isEmpty()) { for (Map.Entry<String, String> entry : messageAttributes.entrySet()) { MessageAttributeValue value = new MessageAttributeValue(); value.setStringValue(entry.getValue()); value.setDataType(STRING_DATATYPE); publishRequest.addMessageAttributesEntry(entry.getKey(), value); } } PublishResult result = snsClient.publish(publishRequest); listener.getLogger().format("Message published as %s %n", result.getMessageId()); return null; }
platformEndpointResult.getEndpointArn(), platform, attrsMap,message); System.out.println("Published! \n{MessageId=" + publishResult.getMessageId() + "}");