List of usage examples for org.springframework.messaging.simp SimpMessageHeaderAccessor setHeader
public void setHeader(String name, @Nullable Object value)
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()); }