Package org.springframework.messaging.support

Examples of org.springframework.messaging.support.MessageHeaderAccessor$MutableMessageHeaders


      }
    }
  }

  private  StompHeaderAccessor getStompHeaderAccessor(Message<?> message) {
    MessageHeaderAccessor accessor = MessageHeaderAccessor.getAccessor(message, MessageHeaderAccessor.class);
    if (accessor == null) {
      // Shouldn't happen (only broker broadcasts directly to clients)
      throw new IllegalStateException("No header accessor in " + message + ".");
    }
    StompHeaderAccessor stompAccessor;
    if (accessor instanceof StompHeaderAccessor) {
      stompAccessor = (StompHeaderAccessor) accessor;
    }
    else if (accessor instanceof SimpMessageHeaderAccessor) {
      stompAccessor = StompHeaderAccessor.wrap(message);
      if (SimpMessageType.CONNECT_ACK.equals(stompAccessor.getMessageType())) {
        stompAccessor = convertConnectAcktoStompConnected(stompAccessor);
      }
      else if (SimpMessageType.DISCONNECT_ACK.equals(stompAccessor.getMessageType())) {
        stompAccessor = StompHeaderAccessor.create(StompCommand.ERROR);
        stompAccessor.setMessage("Session closed.");
      }
      else if (stompAccessor.getCommand() == null || StompCommand.SEND.equals(stompAccessor.getCommand())) {
        stompAccessor.updateStompCommandAsServerMessage();
      }
    }
    else {
      // Shouldn't happen (only broker broadcasts directly to clients)
      throw new IllegalStateException(
          "Unexpected header accessor type: " + accessor.getClass() + " in " + message + ".");
    }
    return stompAccessor;
  }
View Full Code Here


  @Override
  protected final void doSend(MessageChannel channel, Message<?> message) {
    Assert.notNull(channel, "'channel' is required");

    MessageHeaderAccessor accessor = MessageHeaderAccessor.getAccessor(message, MessageHeaderAccessor.class);
    if (accessor != null && accessor.isMutable()) {
      accessor.setImmutable();
    }

    long timeout = this.sendTimeout;
    boolean sent = (timeout >= 0 ? channel.send(message, timeout) : channel.send(message));
View Full Code Here

    assertEquals("bar", message.getHeaders().get("foo"));
  }

  @Test
  public void toMessageWithPayloadAndMutableHeaders() {
    MessageHeaderAccessor accessor = new MessageHeaderAccessor();
    accessor.setHeader("foo", "bar");
    accessor.setLeaveMutable(true);
    MessageHeaders headers = accessor.getMessageHeaders();

    Message<?> message = this.converter.toMessage("payload", headers);

    assertEquals("payload", message.getPayload());
    assertSame(headers, message.getHeaders());
View Full Code Here

    }
  }

  @Test
  public void convertAndSendWithSimpMessageHeaders() {
    MessageHeaderAccessor accessor = new MessageHeaderAccessor();
    accessor.setHeader("key", "value");
    accessor.setLeaveMutable(true);
    MessageHeaders headers = accessor.getMessageHeaders();

    this.template.convertAndSend("channel", "data", headers);
    List<Message<byte[]>> messages = this.messageChannel.getMessages();
    Message<byte[]> message = messages.get(0);

    assertSame(headers, message.getHeaders());
    assertFalse(accessor.isMutable());
  }
View Full Code Here

    assertEquals("payload", this.template.message.getPayload());
  }

  @Test
  public void convertAndSendPayloadAndMutableHeadersToDestination() {
    MessageHeaderAccessor accessor = new MessageHeaderAccessor();
    accessor.setHeader("foo", "bar");
    accessor.setLeaveMutable(true);
    MessageHeaders messageHeaders = accessor.getMessageHeaders();

    this.template.setMessageConverter(new StringMessageConverter());
    this.template.convertAndSend("somewhere", "payload", messageHeaders);

    MessageHeaders actual = this.template.message.getHeaders();
View Full Code Here

    this.messagingTemplate.doSend("/queue/foo-user123", message);

    List<Message<byte[]>> messages = this.messageChannel.getMessages();
    Message<byte[]> sentMessage = messages.get(0);

    MessageHeaderAccessor sentAccessor = MessageHeaderAccessor.getAccessor(sentMessage, MessageHeaderAccessor.class);
    assertEquals(StompHeaderAccessor.class, sentAccessor.getClass());
    assertEquals("/queue/foo-user123", ((StompHeaderAccessor) sentAccessor).getDestination());
  }
View Full Code Here

    }

    StompHeaderAccessor stompAccessor;
    StompCommand command;

    MessageHeaderAccessor accessor = MessageHeaderAccessor.getAccessor(message, MessageHeaderAccessor.class);
    if (accessor == null) {
      throw new IllegalStateException(
          "No header accessor (not using the SimpMessagingTemplate?): " + message);
    }
    else if (accessor instanceof StompHeaderAccessor) {
      stompAccessor = (StompHeaderAccessor) accessor;
      command = stompAccessor.getCommand();
    }
    else if (accessor instanceof SimpMessageHeaderAccessor) {
      stompAccessor = StompHeaderAccessor.wrap(message);
      command = stompAccessor.getCommand();
      if (command == null) {
        command = stompAccessor.updateStompCommandAsClientMessage();
      }
    }
    else {
      throw new IllegalStateException(
          "Unexpected header accessor type " + accessor.getClass() + " in " + message);
    }

    if (sessionId == null) {
      if (!SimpMessageType.MESSAGE.equals(stompAccessor.getMessageType())) {
        if (logger.isErrorEnabled()) {
View Full Code Here

    }
    String lookupDestination = getLookupDestination(destination);
    if (lookupDestination == null) {
      return;
    }
    MessageHeaderAccessor headerAccessor = MessageHeaderAccessor.getMutableAccessor(message);
    headerAccessor.setHeader(DestinationPatternsMessageCondition.LOOKUP_DESTINATION_HEADER, lookupDestination);
    headerAccessor.setLeaveMutable(true);
    message = MessageBuilder.createMessage(message.getPayload(), headerAccessor.getMessageHeaders());

    if (logger.isDebugEnabled()) {
      logger.debug("Searching methods to handle " + headerAccessor.getShortLogMessage(message.getPayload()));
    }

    handleMessageInternal(message, lookupDestination);
    headerAccessor.setImmutable();
  }
View Full Code Here

    payload = convertToInternal(payload, headers);
    MimeType mimeType = getDefaultContentType(payload);

    if (headers != null) {
      MessageHeaderAccessor accessor = MessageHeaderAccessor.getAccessor(headers, MessageHeaderAccessor.class);
      if (accessor != null && accessor.isMutable()) {
        accessor.setHeaderIfAbsent(MessageHeaders.CONTENT_TYPE, mimeType);
        return MessageBuilder.createMessage(payload, accessor.getMessageHeaders());
      }
    }

    MessageBuilder<?> builder = MessageBuilder.withPayload(payload);
    if (headers != null) {
View Full Code Here

  public Message<?> toMessage(Object payload, MessageHeaders headers) {
    if (payload == null) {
      return null;
    }
    if (headers != null) {
      MessageHeaderAccessor accessor = MessageHeaderAccessor.getAccessor(headers, MessageHeaderAccessor.class);
      if (accessor != null && accessor.isMutable()) {
        return MessageBuilder.createMessage(payload, accessor.getMessageHeaders());
      }
    }
    return MessageBuilder.withPayload(payload).copyHeaders(headers).build();
  }
View Full Code Here

TOP

Related Classes of org.springframework.messaging.support.MessageHeaderAccessor$MutableMessageHeaders

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.