@Override public void send(Message<?> message) { SimpMessageHeaderAccessor headers = SimpMessageHeaderAccessor.wrap(message); String destination = headers.getDestination(); destination = (destination != null) ? destination : getRequiredDefaultDestination(); doSend(destination, message); }
@Override protected void doSend(String destination, Message<?> message) { Assert.notNull(destination, "Destination must not be null"); SimpMessageHeaderAccessor headers = SimpMessageHeaderAccessor.wrap(message); headers.setDestination(destination); headers.setMessageTypeIfNotSet(SimpMessageType.MESSAGE); message = MessageBuilder.withPayload(message.getPayload()).setHeaders(headers).build(); long timeout = this.sendTimeout; boolean sent = (timeout >= 0) ? this.messageChannel.send(message, timeout) : this.messageChannel.send(message); if (!sent) { throw new MessageDeliveryException( message, "failed to send message to destination '" + destination + "' within timeout: " + timeout); } }