diff --git a/spring-context/src/main/java/org/springframework/messaging/MessageChannel.java b/spring-context/src/main/java/org/springframework/messaging/MessageChannel.java index 617d0a4c18..6bb8128e9c 100644 --- a/spring-context/src/main/java/org/springframework/messaging/MessageChannel.java +++ b/spring-context/src/main/java/org/springframework/messaging/MessageChannel.java @@ -16,6 +16,7 @@ package org.springframework.messaging; + /** * Base channel interface defining common behavior for sending messages. * @@ -39,4 +40,17 @@ public interface MessageChannel { */ boolean send(Message message); + /** + * Send a message, blocking until either the message is accepted or the + * specified timeout period elapses. + * + * @param message the {@link Message} to send + * @param timeout the timeout in milliseconds + * + * @return true if the message is sent successfully, + * false if the specified timeout period elapses or + * the send is interrupted + */ + boolean send(Message message, long timeout); + } diff --git a/spring-websocket/src/main/java/org/springframework/web/messaging/PubSubHeaders.java b/spring-websocket/src/main/java/org/springframework/web/messaging/PubSubHeaders.java index 7ed9546ba3..80c12c3994 100644 --- a/spring-websocket/src/main/java/org/springframework/web/messaging/PubSubHeaders.java +++ b/spring-websocket/src/main/java/org/springframework/web/messaging/PubSubHeaders.java @@ -51,19 +51,19 @@ public class PubSubHeaders { protected Log logger = LogFactory.getLog(getClass()); - private static final String DESTINATIONS = "destinations"; + public static final String DESTINATIONS = "destinations"; - private static final String CONTENT_TYPE = "contentType"; + public static final String CONTENT_TYPE = "contentType"; - private static final String MESSAGE_TYPE = "messageType"; + public static final String MESSAGE_TYPE = "messageType"; - private static final String PROTOCOL_MESSAGE_TYPE = "protocolMessageType"; + public static final String PROTOCOL_MESSAGE_TYPE = "protocolMessageType"; - private static final String SESSION_ID = "sessionId"; + public static final String SESSION_ID = "sessionId"; - private static final String SUBSCRIPTION_ID = "subscriptionId"; + public static final String SUBSCRIPTION_ID = "subscriptionId"; - private static final String EXTERNAL_SOURCE_HEADERS = "extSourceHeaders"; + public static final String EXTERNAL_SOURCE_HEADERS = "extSourceHeaders"; private static final Map> emptyMultiValueMap = diff --git a/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/StompHeaders.java b/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/StompHeaders.java index e8c9289172..138981b9fa 100644 --- a/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/StompHeaders.java +++ b/spring-websocket/src/main/java/org/springframework/web/messaging/stomp/StompHeaders.java @@ -48,33 +48,33 @@ import reactor.util.Assert; */ public class StompHeaders extends PubSubHeaders { - private static final String STOMP_ID = "id"; + public static final String STOMP_ID = "id"; - private static final String HOST = "host"; + public static final String HOST = "host"; - private static final String ACCEPT_VERSION = "accept-version"; + public static final String ACCEPT_VERSION = "accept-version"; - private static final String MESSAGE_ID = "message-id"; + public static final String MESSAGE_ID = "message-id"; - private static final String RECEIPT_ID = "receipt-id"; + public static final String RECEIPT_ID = "receipt-id"; - private static final String SUBSCRIPTION = "subscription"; + public static final String SUBSCRIPTION = "subscription"; - private static final String VERSION = "version"; + public static final String VERSION = "version"; - private static final String MESSAGE = "message"; + public static final String MESSAGE = "message"; - private static final String ACK = "ack"; + public static final String ACK = "ack"; - private static final String NACK = "nack"; + public static final String NACK = "nack"; - private static final String DESTINATION = "destination"; + public static final String DESTINATION = "destination"; - private static final String CONTENT_TYPE = "content-type"; + public static final String CONTENT_TYPE = "content-type"; - private static final String CONTENT_LENGTH = "content-length"; + public static final String CONTENT_LENGTH = "content-length"; - private static final String HEARTBEAT = "heart-beat"; + public static final String HEARTBEAT = "heart-beat"; private static final String STOMP_HEADERS = "stompHeaders";