Class StompHeaderAccessor
- java.lang.Object
- org.springframework.messaging.support.MessageHeaderAccessor
- org.springframework.messaging.support.NativeMessageHeaderAccessor
- org.springframework.messaging.simp.SimpMessageHeaderAccessor
- org.springframework.messaging.simp.stomp.StompHeaderAccessor
public class StompHeaderAccessor extends SimpMessageHeaderAccessor
AMessageHeaderAccessorto use when creating aMessagefrom a decoded STOMP frame, or when encoding aMessageto a STOMP frame.When created from STOMP frame content, the actual STOMP headers are stored in the native header sub-map managed by the parent class
NativeMessageHeaderAccessorwhile the parent classSimpMessageHeaderAccessormanages common processing headers some of which are based on STOMP headers (e.g. destination, content-type, etc).An instance of this class can also be created by wrapping an existing
Message. That message may have been created with the more genericSimpMessageHeaderAccessorin which case STOMP headers are created from common processing headers. In this case it is also necessary to invoke eitherupdateStompCommandAsClientMessage()orupdateStompCommandAsServerMessage()if sending a message and depending on whether a message is sent to a client or the message broker.- Since:
- 4.0
- Author:
- Rossen Stoyanchev
Field Summary
Fields Modifier and Type Field Description static StringSTOMP_ACCEPT_VERSION_HEADERstatic StringSTOMP_ACK_HEADERstatic StringSTOMP_CONTENT_LENGTH_HEADERstatic StringSTOMP_CONTENT_TYPE_HEADERstatic StringSTOMP_DESTINATION_HEADERstatic StringSTOMP_HEARTBEAT_HEADERstatic StringSTOMP_HOST_HEADERstatic StringSTOMP_ID_HEADERstatic StringSTOMP_LOGIN_HEADERstatic StringSTOMP_MESSAGE_HEADERstatic StringSTOMP_MESSAGE_ID_HEADERstatic StringSTOMP_NACK_HEADERstatic StringSTOMP_PASSCODE_HEADERstatic StringSTOMP_RECEIPT_HEADERstatic StringSTOMP_RECEIPT_ID_HEADERstatic StringSTOMP_SUBSCRIPTION_HEADERstatic StringSTOMP_VERSION_HEADERFields inherited from class org.springframework.messaging.simp.SimpMessageHeaderAccessor
CONNECT_MESSAGE_HEADER, DESTINATION_HEADER, DISCONNECT_MESSAGE_HEADER, HEART_BEAT_HEADER, IGNORE_ERROR, MESSAGE_TYPE_HEADER, ORIGINAL_DESTINATION, SESSION_ATTRIBUTES, SESSION_ID_HEADER, SUBSCRIPTION_ID_HEADER, USER_HEADER
Fields inherited from class org.springframework.messaging.support.NativeMessageHeaderAccessor
NATIVE_HEADERS
Fields inherited from class org.springframework.messaging.support.MessageHeaderAccessor
DEFAULT_CHARSET
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static StompHeaderAccessorcreate(StompCommand command)Create an instance for the given STOMP command.static StompHeaderAccessorcreate(StompCommand command, Map<String,List<String>> headers)Create an instance for the given STOMP command and headers.protected MessageHeaderAccessorcreateAccessor(Message<?> message)Build a 'nested' accessor for the given message.static StompHeaderAccessorcreateForHeartbeat()Create headers for a heartbeat.Set<String>getAcceptVersion()StringgetAck()StompCommandgetCommand()Return the STOMP command, ornullif not yet set.static StompCommandgetCommand(Map<String,Object> headers)Return the STOMP command from the given headers, ornullif not set.IntegergetContentLength()static IntegergetContentLength(Map<String,List<String>> nativeHeaders)StringgetDetailedLogMessage(Object payload)Return a more detailed message for logging purposes.long[]getHeartbeat()StringgetHost()StringgetLogin()StringgetMessage()StringgetMessageId()StringgetNack()protected Map<String,List<String>>getNativeHeaders()Subclasses can use this method to access the "native" headers sub-map.StringgetPasscode()Return the passcode header value, ornullif not set.static StringgetPasscode(Map<String,Object> headers)Return the passcode header value, ornullif not set.StringgetReceipt()StringgetReceiptId()StringgetShortLogMessage(Object payload)Return a concise message for logging purposes.StringgetVersion()booleanisHeartbeat()voidsetAcceptVersion(String acceptVersion)voidsetAck(String ack)voidsetContentLength(int contentLength)voidsetContentType(MimeType contentType)voidsetDestination(String destination)voidsetHeartbeat(long cx, long cy)voidsetHost(String host)voidsetLogin(String login)voidsetMessage(String content)voidsetMessageId(String id)voidsetNack(String nack)voidsetPasscode(String passcode)voidsetReceipt(String receiptId)voidsetReceiptId(String receiptId)voidsetSubscriptionId(String subscriptionId)voidsetVersion(String version)StompCommandupdateStompCommandAsClientMessage()voidupdateStompCommandAsServerMessage()static StompHeaderAccessorwrap(Message<?> message)Create an instance from the payload and headers of the given Message.Methods inherited from class org.springframework.messaging.simp.SimpMessageHeaderAccessor
create, create, getDestination, getDestination, getHeartbeat, getMessageType, getMessageType, getSessionAttributes, getSessionAttributes, getSessionId, getSessionId, getSubscriptionId, getSubscriptionId, getUser, getUser, setMessageTypeIfNotSet, setSessionAttributes, setSessionId, setUser, setUserChangeCallback
Methods inherited from class org.springframework.messaging.support.NativeMessageHeaderAccessor
addNativeHeader, addNativeHeaders, containsNativeHeader, copyHeaders, copyHeadersIfAbsent, getFirstNativeHeader, getFirstNativeHeader, getNativeHeader, removeNativeHeader, setImmutable, setNativeHeader, setNativeHeaderValues, toNativeHeaderMap
Methods inherited from class org.springframework.messaging.support.MessageHeaderAccessor
getAccessor, getAccessor, getAccessor, getContentType, getDetailedPayloadLogMessage, getErrorChannel, getHeader, getId, getMessageHeaders, getMutableAccessor, getReplyChannel, getShortPayloadLogMessage, getTimestamp, isModified, isMutable, isReadableContentType, isReadOnly, removeHeader, removeHeaders, setErrorChannel, setErrorChannelName, setHeader, setHeaderIfAbsent, setLeaveMutable, setModified, setReplyChannel, setReplyChannelName, toMap, toMessageHeaders, toString, verifyType
Field Detail
STOMP_ID_HEADER
public static final String STOMP_ID_HEADER
- See Also:
- Constant Field Values
STOMP_HOST_HEADER
public static final String STOMP_HOST_HEADER
- See Also:
- Constant Field Values
STOMP_ACCEPT_VERSION_HEADER
public static final String STOMP_ACCEPT_VERSION_HEADER
- See Also:
- Constant Field Values
STOMP_MESSAGE_ID_HEADER
public static final String STOMP_MESSAGE_ID_HEADER
- See Also:
- Constant Field Values
STOMP_RECEIPT_HEADER
public static final String STOMP_RECEIPT_HEADER
- See Also:
- Constant Field Values
STOMP_RECEIPT_ID_HEADER
public static final String STOMP_RECEIPT_ID_HEADER
- See Also:
- Constant Field Values
STOMP_SUBSCRIPTION_HEADER
public static final String STOMP_SUBSCRIPTION_HEADER
- See Also:
- Constant Field Values
STOMP_VERSION_HEADER
public static final String STOMP_VERSION_HEADER
- See Also:
- Constant Field Values
STOMP_MESSAGE_HEADER
public static final String STOMP_MESSAGE_HEADER
- See Also:
- Constant Field Values
STOMP_ACK_HEADER
public static final String STOMP_ACK_HEADER
- See Also:
- Constant Field Values
STOMP_NACK_HEADER
public static final String STOMP_NACK_HEADER
- See Also:
- Constant Field Values
STOMP_LOGIN_HEADER
public static final String STOMP_LOGIN_HEADER
- See Also:
- Constant Field Values
STOMP_PASSCODE_HEADER
public static final String STOMP_PASSCODE_HEADER
- See Also:
- Constant Field Values
STOMP_DESTINATION_HEADER
public static final String STOMP_DESTINATION_HEADER
- See Also:
- Constant Field Values
STOMP_CONTENT_TYPE_HEADER
public static final String STOMP_CONTENT_TYPE_HEADER
- See Also:
- Constant Field Values
STOMP_CONTENT_LENGTH_HEADER
public static final String STOMP_CONTENT_LENGTH_HEADER
- See Also:
- Constant Field Values
STOMP_HEARTBEAT_HEADER
public static final String STOMP_HEARTBEAT_HEADER
- See Also:
- Constant Field Values
Method Detail
createAccessor
protected MessageHeaderAccessor createAccessor(Message<?> message)
Description copied from class:MessageHeaderAccessorBuild a 'nested' accessor for the given message.- Overrides:
createAccessorin classSimpMessageHeaderAccessor- Parameters:
message- the message to build a new accessor for- Returns:
- the nested accessor (typically a specific subclass)
getNativeHeaders
@Nullable protected Map<String,List<String>> getNativeHeaders()
Description copied from class:NativeMessageHeaderAccessorSubclasses can use this method to access the "native" headers sub-map.- Overrides:
getNativeHeadersin classNativeMessageHeaderAccessor
updateStompCommandAsClientMessage
public StompCommand updateStompCommandAsClientMessage()
updateStompCommandAsServerMessage
public void updateStompCommandAsServerMessage()
getCommand
@Nullable public StompCommand getCommand()
Return the STOMP command, ornullif not yet set.
isHeartbeat
public boolean isHeartbeat()
getHeartbeat
public long[] getHeartbeat()
setAcceptVersion
public void setAcceptVersion(String acceptVersion)
getAcceptVersion
public Set<String> getAcceptVersion()
setDestination
public void setDestination(@Nullable String destination)
- Overrides:
setDestinationin classSimpMessageHeaderAccessor
setContentType
public void setContentType(MimeType contentType)
- Overrides:
setContentTypein classMessageHeaderAccessor
setSubscriptionId
public void setSubscriptionId(@Nullable String subscriptionId)
- Overrides:
setSubscriptionIdin classSimpMessageHeaderAccessor
getContentLength
@Nullable public Integer getContentLength()
setContentLength
public void setContentLength(int contentLength)
setHeartbeat
public void setHeartbeat(long cx, long cy)
setPasscode
public void setPasscode(@Nullable String passcode)
getPasscode
@Nullable public String getPasscode()
Return the passcode header value, ornullif not set.
setReceiptId
public void setReceiptId(@Nullable String receiptId)
getReceiptId
@Nullable public String getReceiptId()
setReceipt
public void setReceipt(@Nullable String receiptId)
getReceipt
@Nullable public String getReceipt()
getMessage
@Nullable public String getMessage()
setMessage
public void setMessage(@Nullable String content)
getMessageId
@Nullable public String getMessageId()
setMessageId
public void setMessageId(@Nullable String id)
getVersion
@Nullable public String getVersion()
setVersion
public void setVersion(@Nullable String version)
getShortLogMessage
public String getShortLogMessage(Object payload)
Description copied from class:MessageHeaderAccessorReturn a concise message for logging purposes.- Overrides:
getShortLogMessagein classSimpMessageHeaderAccessor- Parameters:
payload- the payload that corresponds to the headers.- Returns:
- the message
getDetailedLogMessage
public String getDetailedLogMessage(@Nullable Object payload)
Description copied from class:MessageHeaderAccessorReturn a more detailed message for logging purposes.- Overrides:
getDetailedLogMessagein classSimpMessageHeaderAccessor- Parameters:
payload- the payload that corresponds to the headers.- Returns:
- the message
create
public static StompHeaderAccessor create(StompCommand command)
Create an instance for the given STOMP command.
create
public static StompHeaderAccessor create(StompCommand command, Map<String,List<String>> headers)
Create an instance for the given STOMP command and headers.
createForHeartbeat
public static StompHeaderAccessor createForHeartbeat()
Create headers for a heartbeat. While a STOMP heartbeat frame does not have headers, a session id is needed for processing purposes at a minimum.
wrap
public static StompHeaderAccessor wrap(Message<?> message)
Create an instance from the payload and headers of the given Message.
getCommand
@Nullable public static StompCommand getCommand(Map<String,Object> headers)
Return the STOMP command from the given headers, ornullif not set.
getPasscode
@Nullable public static String getPasscode(Map<String,Object> headers)
Return the passcode header value, ornullif not set.