Append suffx to user dest in SimpMessagingTemplate
Isssue: SPR-11868
This commit is contained in:
@@ -77,8 +77,9 @@ public class SimpMessagingTemplate extends AbstractMessageSendingTemplate<String
|
||||
* @see org.springframework.messaging.simp.user.UserDestinationMessageHandler
|
||||
*/
|
||||
public void setUserDestinationPrefix(String prefix) {
|
||||
Assert.notNull(prefix, "UserDestinationPrefix must not be null");
|
||||
this.userDestinationPrefix = prefix;
|
||||
Assert.hasText(prefix, "'userDestinationPrefix' must not be empty");
|
||||
this.userDestinationPrefix = prefix.endsWith("/") ? prefix : prefix + "/";
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -118,6 +118,25 @@ public class SimpMessagingTemplateTests {
|
||||
assertNull(headerAccessor.getNativeHeader("key"));
|
||||
}
|
||||
|
||||
// SPR-11868
|
||||
|
||||
@Test
|
||||
public void convertAndSendWithCustomDestinationPrefix() {
|
||||
this.messagingTemplate.setUserDestinationPrefix("/prefix");
|
||||
this.messagingTemplate.convertAndSendToUser("joe", "/queue/foo", "data");
|
||||
List<Message<byte[]>> messages = this.messageChannel.getMessages();
|
||||
|
||||
assertEquals(1, messages.size());
|
||||
|
||||
Message<byte[]> message = messages.get(0);
|
||||
SimpMessageHeaderAccessor headerAccessor =
|
||||
MessageHeaderAccessor.getAccessor(message, SimpMessageHeaderAccessor.class);
|
||||
|
||||
assertNotNull(headerAccessor);
|
||||
assertEquals(SimpMessageType.MESSAGE, headerAccessor.getMessageType());
|
||||
assertEquals("/prefix/joe/queue/foo", headerAccessor.getDestination());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertAndSendWithMutableSimpMessageHeaders() {
|
||||
SimpMessageHeaderAccessor accessor = SimpMessageHeaderAccessor.create();
|
||||
|
||||
@@ -264,7 +264,7 @@ public class MessageBrokerBeanDefinitionParserTests {
|
||||
|
||||
SimpMessagingTemplate simpMessagingTemplate = this.appContext.getBean(SimpMessagingTemplate.class);
|
||||
assertNotNull(simpMessagingTemplate);
|
||||
assertEquals("/personal", simpMessagingTemplate.getUserDestinationPrefix());
|
||||
assertEquals("/personal/", simpMessagingTemplate.getUserDestinationPrefix());
|
||||
|
||||
List<MessageConverter> converters = compositeMessageConverter.getConverters();
|
||||
assertThat(converters.size(), Matchers.is(3));
|
||||
|
||||
Reference in New Issue
Block a user