Example usage for org.springframework.messaging.simp SimpMessageHeaderAccessor setHeader

List of usage examples for org.springframework.messaging.simp SimpMessageHeaderAccessor setHeader

Introduction

In this page you can find the example usage for org.springframework.messaging.simp SimpMessageHeaderAccessor setHeader.

Prototype

public void setHeader(String name, @Nullable Object value) 

Source Link

Document

Set the value for the given header name.

Usage

From source file:org.springframework.messaging.simp.annotation.support.SubscriptionMethodReturnValueHandler.java

private MessageHeaders createHeaders(@Nullable String sessionId, String subscriptionId,
        MethodParameter returnType) {//from w  ww. j  av a 2 s .c  o m
    SimpMessageHeaderAccessor accessor = SimpMessageHeaderAccessor.create(SimpMessageType.MESSAGE);
    if (getHeaderInitializer() != null) {
        getHeaderInitializer().initHeaders(accessor);
    }
    if (sessionId != null) {
        accessor.setSessionId(sessionId);
    }
    accessor.setSubscriptionId(subscriptionId);
    accessor.setHeader(SimpMessagingTemplate.CONVERSION_HINT_HEADER, returnType);
    accessor.setLeaveMutable(true);
    return accessor.getMessageHeaders();
}

From source file:org.springframework.messaging.simp.broker.OrderedMessageSender.java

private void addCompletionCallback(Message<?> msg) {
    SimpMessageHeaderAccessor accessor = MessageHeaderAccessor.getAccessor(msg,
            SimpMessageHeaderAccessor.class);
    Assert.isTrue(accessor != null && accessor.isMutable(), "Expected mutable SimpMessageHeaderAccessor");
    accessor.setHeader(COMPLETION_TASK_HEADER, (Runnable) this::sendNextMessage);
}

From source file:org.springframework.messaging.simp.broker.OrderedMessageSenderTests.java

@Test
public void test() throws InterruptedException {

    int start = 1;
    int end = 1000;

    AtomicInteger index = new AtomicInteger(start);
    AtomicReference<Object> result = new AtomicReference<>();
    CountDownLatch latch = new CountDownLatch(1);

    this.channel.subscribe(message -> {
        int expected = index.getAndIncrement();
        Integer actual = (Integer) message.getHeaders().getOrDefault("seq", -1);
        if (actual != expected) {
            result.set("Expected: " + expected + ", but was: " + actual);
            latch.countDown();/*from w w w  .j a v  a  2s  .  c  o  m*/
            return;
        }
        if (actual == 100 || actual == 200) {
            try {
                Thread.sleep(200);
            } catch (InterruptedException ex) {
                result.set(ex.toString());
                latch.countDown();
            }
        }
        if (actual == end) {
            result.set("Done");
            latch.countDown();
        }
    });

    for (int i = start; i <= end; i++) {
        SimpMessageHeaderAccessor accessor = SimpMessageHeaderAccessor.create(SimpMessageType.MESSAGE);
        accessor.setHeader("seq", i);
        accessor.setLeaveMutable(true);
        this.sender.send(MessageBuilder.createMessage("payload", accessor.getMessageHeaders()));
    }

    latch.await(10, TimeUnit.SECONDS);
    assertEquals("Done", result.get());
}