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";