@Override public Message<?> toMessage(MethodArgsHolder object, @Nullable Map<String, Object> headers) { return MessageBuilder.withPayload("fizbuz") .copyHeadersIfAbsent(headers) .build(); }
@Test public void copyHeadersIfAbsent() { Message<String> message1 = MessageBuilder.withPayload("test1") .setHeader("foo", "bar").build(); Message<String> message2 = MessageBuilder.withPayload("test2") .setHeader("foo", 123) .copyHeadersIfAbsent(message1.getHeaders()) .build(); assertEquals("test2", message2.getPayload()); assertEquals(123, message2.getHeaders().get("foo")); }
private static Message<?> correlatedMessage(Object correlationId, Integer sequenceSize, Integer sequenceNumber, Map<String, Object> headers) { return MessageBuilder.withPayload("test") .setCorrelationId(correlationId) .setSequenceNumber(sequenceNumber) .setSequenceSize(sequenceSize) .copyHeadersIfAbsent(headers) .build(); }
@Override @SuppressWarnings("unchecked") protected Object splitMessage(Message<?> message) { Assert.state(message.getPayload() instanceof Map, "The UnZipResultSplitter supports only Map<String, Object> payload"); Map<String, Object> unzippedEntries = (Map<String, Object>) message.getPayload(); MessageHeaders headers = message.getHeaders(); List<MessageBuilder<Object>> messageBuilders = new ArrayList<MessageBuilder<Object>>(unzippedEntries.size()); for (Map.Entry<String, Object> entry : unzippedEntries.entrySet()) { String path = FilenameUtils.getPath(entry.getKey()); String filename = FilenameUtils.getName(entry.getKey()); MessageBuilder<Object> messageBuilder = MessageBuilder.withPayload(entry.getValue()) .setHeader(FileHeaders.FILENAME, filename) .setHeader(ZipHeaders.ZIP_ENTRY_PATH, path) .copyHeadersIfAbsent(headers); messageBuilders.add(messageBuilder); } return messageBuilders; }