Refine search
private Message<byte[]> message(SimpMessageType messageType) { MessageBuilder<byte[]> builder = MessageBuilder.withPayload(new byte[0]); if (messageType != null) { builder.setHeader(SimpMessageHeaderAccessor.MESSAGE_TYPE_HEADER, messageType); } return builder.build(); }
public <T> void sendWithTags(T msg, String tag) throws Exception { Message message = MessageBuilder.createMessage(msg, new MessageHeaders(Stream.of(tag).collect(Collectors .toMap(str -> MessageConst.PROPERTY_TAGS, String::toString)))); source.output1().send(message); }
@Test public void testCopySameHeaderValuesNotModifiedSameMessage() throws Exception { Date current = new Date(); Map<String, Object> originalHeaders = new HashMap<>(); originalHeaders.put("b", "xyz"); originalHeaders.put("c", current); Message<?> original = MessageBuilder.withPayload("foo").setHeader("a", 123).copyHeaders(originalHeaders).build(); Map<String, Object> newHeaders = new HashMap<>(); newHeaders.put("a", 123); newHeaders.put("b", "xyz"); newHeaders.put("c", current); Message<?> result = MessageBuilder.fromMessage(original).copyHeaders(newHeaders).build(); assertEquals(original, result); }
@Override protected Object preProcessResponse(Object result) { MethodParameter returnType = getHandlerMethod().getReturnType(); if (result instanceof Message) { return MessageBuilder.fromMessage((Message<?>) result) .setHeader(AbstractMessageSendingTemplate.CONVERSION_HINT_HEADER, returnType).build(); } return MessageBuilder.withPayload(result).setHeader( AbstractMessageSendingTemplate.CONVERSION_HINT_HEADER, returnType).build(); }
@SuppressWarnings("unchecked") @Override public Object fromMessage(javax.jms.Message message) throws JMSException, MessageConversionException { Map<String, Object> mappedHeaders = extractHeaders(message); Object convertedObject = extractPayload(message); MessageBuilder<Object> builder = (convertedObject instanceof org.springframework.messaging.Message ? MessageBuilder.fromMessage((org.springframework.messaging.Message<Object>) convertedObject) : MessageBuilder.withPayload(convertedObject)); return builder.copyHeadersIfAbsent(mappedHeaders).build(); }
@Override public Message<?> toMessage(Object payload, @Nullable MessageHeaders headers) { 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(); }
public void send(String msg) throws Exception { source.output1().send(MessageBuilder.withPayload(msg).build()); }
public <T> void sendObject(T msg, String tag) throws Exception { Message message = MessageBuilder.withPayload(msg) .setHeader(MessageConst.PROPERTY_TAGS, tag) .setHeader(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON) .build(); source.output1().send(message); }
@Test(expected = MessageHandlingException.class) public void resolveArgumentNotFound() throws Exception { Message<byte[]> message = MessageBuilder.withPayload(new byte[0]).build(); this.resolver.resolveArgument(this.paramAnnotated, message); }
/** * */ @Override public <T> boolean send(T payload, Map<String, ?> messageHeaders, long timeout) { if (this.toSpringChannel != null){ return this.toSpringChannel.send(MessageBuilder.withPayload(payload).copyHeaders(messageHeaders).build(), timeout); } else { throw new IllegalStateException("Failed to send message to '" + this.configName + "'. There are no 'fromNiFi' channels configured which means the Application Conetxt is not set up to receive messages from NiFi"); } }
private Message<String> message() { Map<String, Object> headersToCopy = messageHeaders.toMap(); return MessageBuilder.withPayload("hi").copyHeaders(headersToCopy).build(); } }
protected final void doSend(MessageChannel channel, Message<?> message, long timeout) { Assert.notNull(channel, "MessageChannel is required"); Message<?> messageToSend = message; MessageHeaderAccessor accessor = MessageHeaderAccessor.getAccessor(message, MessageHeaderAccessor.class); if (accessor != null && accessor.isMutable()) { accessor.removeHeader(this.sendTimeoutHeader); accessor.removeHeader(this.receiveTimeoutHeader); accessor.setImmutable(); } else if (message.getHeaders().containsKey(this.sendTimeoutHeader) || message.getHeaders().containsKey(this.receiveTimeoutHeader)) { messageToSend = MessageBuilder.fromMessage(message) .setHeader(this.sendTimeoutHeader, null) .setHeader(this.receiveTimeoutHeader, null) .build(); } boolean sent = (timeout >= 0 ? channel.send(messageToSend, timeout) : channel.send(messageToSend)); if (!sent) { throw new MessageDeliveryException(message, "Failed to send message to channel '" + channel + "' within timeout: " + timeout); } }
@Test public void jmsCorrelationIdIgnoredIfIncorrectType() throws JMSException { Message<String> message = initBuilder() .setHeader(JmsHeaders.CORRELATION_ID, new Date()).build(); javax.jms.Message jmsMessage = new StubTextMessage(); mapper.fromHeaders(message.getHeaders(), jmsMessage); assertNull(jmsMessage.getJMSCorrelationID()); }
@Test public void testCopiedHeaderValues() { Message<String> message1 = MessageBuilder.withPayload("test1") .setHeader("foo", "1") .setHeader("bar", "2") .build(); Message<String> message2 = MessageBuilder.withPayload("test2") .copyHeaders(message1.getHeaders()) .setHeader("foo", "42") .setHeaderIfAbsent("bar", "99") .build(); assertEquals("test1", message1.getPayload()); assertEquals("test2", message2.getPayload()); assertEquals("1", message1.getHeaders().get("foo")); assertEquals("42", message2.getHeaders().get("foo")); assertEquals("2", message1.getHeaders().get("bar")); assertEquals("2", message2.getHeaders().get("bar")); }
@Test // SPR-11326 public void resolveArgumentNativeHeader() throws Exception { TestMessageHeaderAccessor headers = new TestMessageHeaderAccessor(); headers.setNativeHeader("param1", "foo"); Message<byte[]> message = MessageBuilder.withPayload(new byte[0]).setHeaders(headers).build(); assertEquals("foo", this.resolver.resolveArgument(this.paramRequired, message)); }
@Test public void testNotModifiedSameMessage() throws Exception { Message<?> original = MessageBuilder.withPayload("foo").build(); Message<?> result = MessageBuilder.fromMessage(original).build(); assertEquals(original, result); }
@Override @Nullable protected final Message<?> doSendAndReceive(MessageChannel channel, Message<?> requestMessage) { Assert.notNull(channel, "'channel' is required"); Object originalReplyChannelHeader = requestMessage.getHeaders().getReplyChannel(); Object originalErrorChannelHeader = requestMessage.getHeaders().getErrorChannel(); long sendTimeout = sendTimeout(requestMessage); long receiveTimeout = receiveTimeout(requestMessage); TemporaryReplyChannel tempReplyChannel = new TemporaryReplyChannel(this.throwExceptionOnLateReply); requestMessage = MessageBuilder.fromMessage(requestMessage).setReplyChannel(tempReplyChannel) .setHeader(this.sendTimeoutHeader, null) .setHeader(this.receiveTimeoutHeader, null) .setErrorChannel(tempReplyChannel).build(); try { doSend(channel, requestMessage, sendTimeout); } catch (RuntimeException ex) { tempReplyChannel.setSendFailed(true); throw ex; } Message<?> replyMessage = this.doReceive(tempReplyChannel, receiveTimeout); if (replyMessage != null) { replyMessage = MessageBuilder.fromMessage(replyMessage) .setHeader(MessageHeaders.REPLY_CHANNEL, originalReplyChannelHeader) .setHeader(MessageHeaders.ERROR_CHANNEL, originalErrorChannelHeader) .build(); } return replyMessage; }
@Test public void encodeConnectWithLoginAndPasscode() throws UnsupportedEncodingException { MultiValueMap<String, String> extHeaders = new LinkedMultiValueMap<>(); extHeaders.add(StompHeaderAccessor.STOMP_LOGIN_HEADER, "joe"); extHeaders.add(StompHeaderAccessor.STOMP_PASSCODE_HEADER, "joe123"); StompHeaderAccessor headerAccessor = StompHeaderAccessor.create(StompCommand.CONNECT, extHeaders); Message<byte[]> message = MessageBuilder.createMessage(new byte[0], headerAccessor.getMessageHeaders()); byte[] bytes = new StompEncoder().encode(message); assertEquals("CONNECT\nlogin:joe\npasscode:joe123\n\n\0", new String(bytes, "UTF-8")); }
@Test public void simpDestSubscribeMatchersMatch() { message = MessageBuilder .fromMessage(message) .setHeader(SimpMessageHeaderAccessor.MESSAGE_TYPE_HEADER, SimpMessageType.SUBSCRIBE).build(); messages.simpSubscribeDestMatchers("location/**").denyAll().anyMessage() .permitAll(); assertThat(getAttribute()).isEqualTo("denyAll"); }
@Test(expected = IllegalArgumentException.class) public void testIdHeaderValueReadOnly() { UUID id = UUID.randomUUID(); MessageBuilder.withPayload("test").setHeader(MessageHeaders.ID, id); }