public PublishResult publish()

in src/main/java/software/amazon/sns/AmazonSNSExtendedClient.java [83:111]


    public PublishResult publish(PublishRequest publishRequest) {
        if (publishRequest == null || StringUtils.isNullOrEmpty(publishRequest.getMessage())) {
            return super.publish(publishRequest);
        }

        if (!StringUtils.isNullOrEmpty(publishRequest.getMessageStructure()) &&
                publishRequest.getMessageStructure().equals(MULTIPLE_PROTOCOL_MESSAGE_STRUCTURE)) {
            String errorMessage = "SNS extended client does not support sending JSON messages.";
            LOGGER.error(errorMessage);
            throw new AmazonClientException(errorMessage);
        }

        publishRequest.getRequestClientOptions().appendUserAgent(USER_AGENT_HEADER);

        long messageAttributesSize = getMsgAttributesSize(publishRequest.getMessageAttributes());
        long messageBodySize = Util.getStringSizeInBytes(publishRequest.getMessage());

        if (!shouldExtendedStoreBeUsed(messageAttributesSize + messageBodySize)) {
            return super.publish(publishRequest);
        }

        checkMessageAttributes(publishRequest.getMessageAttributes());
        checkSizeOfMessageAttributes(messageAttributesSize);

        PublishRequest clonedPublishRequest = copyPublishRequest(publishRequest);
        publishRequest = storeMessageInExtendedStore(clonedPublishRequest, messageAttributesSize);

        return super.publish(publishRequest);
    }