com.solace.spring.cloud.stream.binder.messaging.SolaceBinderHeaders Maven / Gradle / Ivy
Show all versions of spring-cloud-stream-binder-solace Show documentation
package com.solace.spring.cloud.stream.binder.messaging;
import com.solace.spring.cloud.stream.binder.util.CorrelationData;
import org.springframework.messaging.Message;
/**
* Solace-defined Spring headers to get/set Solace Spring Cloud Stream Binder properties
* from/to Spring {@link Message Message} headers.
*
* These can be used for:
*
* - Getting/Setting Solace Binder metadata
* - Directive actions for the binder when producing/consuming messages
*
*
* Header Access Control:
* Be aware that each header has an expected usage scenario.
* Using headers outside of their intended access-control scenario is not supported.
*/
public final class SolaceBinderHeaders {
/**
* The prefix used for all headers in this class.
*/
static final String PREFIX = SolaceHeaders.PREFIX + "scst_";
/**
* Acceptable Value Type: {@link String}
* Access: Write
*
* The partition key for PubSub+ partitioned queues.
*/
public static final String PARTITION_KEY = PREFIX + "partitionKey";
/**
* Acceptable Value Type: {@link Boolean}
*
* When true large messages are split in 4MB chunks and reassembled in the consumer.
* The Queue needs to be partitioned to support this feature
*/
public static final String LARGE_MESSAGE_SUPPORT = PREFIX + "largeMessageSupport";
/**
* Acceptable Value Type: {@link Long}
* Access: Internal Binder Use Only
*
* Then id (should be more or less unique) of the array of chunks.
*/
public static final String CHUNK_ID = PREFIX + "chunkId";
/**
* Acceptable Value Type: {@link Integer}
* Access: Internal Binder Use Only
*
* Then index of the current message in the array of chunks. Zero-Based.
*/
public static final String CHUNK_INDEX = PREFIX + "chunkIndex";
/**
* Acceptable Value Type: {@link Integer}
* Access: Internal Binder Use Only
*
* Then length of the array of chunks.
*/
public static final String CHUNK_COUNT = PREFIX + "chunkCount";
/**
* Acceptable Value Type: {@link Integer}
* Access: Read
* Default Value: {@code 1}
*
* A static number set by the publisher to indicate the Spring Cloud Stream Solace message version.
*/
public static final String MESSAGE_VERSION = PREFIX + "messageVersion";
/**
* Acceptable Value Type: {@link Boolean}
* Access: Internal Binder Use Only
*
* Is {@code true} if a Solace Spring Cloud Stream binder has serialized the payload before publishing
* it to a broker. Is undefined otherwise.
*/
public static final String SERIALIZED_PAYLOAD = PREFIX + "serializedPayload";
/**
* Acceptable Value Type: {@link String}
* Access: Internal Binder Use Only
*
* A JSON String array of header names where each entry indicates that that header’s value was serialized by a
* Solace Spring Cloud Stream binder before publishing it to a broker.
*/
public static final String SERIALIZED_HEADERS = PREFIX + "serializedHeaders";
/**
* Acceptable Value Type: {@link String}
* Access: Internal Binder Use Only
* Default Value: {@code "base64"}
*
* The encoding algorithm used to encode the headers indicated by {@link #SERIALIZED_HEADERS}.
*/
public static final String SERIALIZED_HEADERS_ENCODING = PREFIX + "serializedHeadersEncoding";
/**
* Acceptable Value Type: {@link CorrelationData}
* Access: Write
*
* A CorrelationData instance for messaging confirmations.
*/
public static final String CONFIRM_CORRELATION = PREFIX + "confirmCorrelation";
/**
* Acceptable Value Type: {@link Boolean}
* Access: Read
*
* Present and true to indicate when the PubSub+ message payload was null.
*/
public static final String NULL_PAYLOAD = PREFIX + "nullPayload";
/**
* Acceptable Value Type: String
* Access: Write
*
* Only applicable when {@code scst_targetDestination} is set.
*
* - topic: Specifies that the dynamic destination is a topic
* - queue: Specifies that the dynamic destination is a queue
*
* When absent, the binding’s configured destination-type is used.
*/
public static final String TARGET_DESTINATION_TYPE = PREFIX + "targetDestinationType";
}