@Override public Message<?> preSend(Message<?> message, MessageChannel channel) { StepContext context = StepSynchronizationManager.getContext(); if (context == null) { return message; } return MessageBuilder.fromMessage(message).setHeader(STEP_EXECUTION, context.getStepExecution()).build(); }
@Override public <T> MessageBuilder<T> fromMessage(Message<T> message) { return MessageBuilder.fromMessage(message) .readOnlyHeaders(this.readOnlyHeaders); }
@Override public Message<?> preSend(Message<?> message, MessageChannel channel) { assertNotNull(message); return MessageBuilder.fromMessage(message) .setHeader(this.getClass().getSimpleName(), counter.incrementAndGet()) .build(); } public String getFoo() {
@SuppressWarnings("unused") public Message<?> handle(Message<?> message) { return MessageBuilder.fromMessage(message) .setCorrelationId("ABC-123").build(); } }, "handle");
@Test public void saveToSubDir2() throws Exception { final Message<File> message2 = MessageBuilder.fromMessage(message) .setHeader("myFileLocation", "target/base-directory/headerdir") .build(); this.inputChannelSaveToSubDirWithHeader.send(message2); Assert.assertTrue(new File("target/base-directory/headerdir/foo.txt").exists()); }
public void serialize(Object object, OutputStream outputStream) throws IOException { Message<?> message = (Message<?>) object; message = MessageBuilder.fromMessage(message).setHeader("serializer", "CUSTOM").build(); targetSerializer.serialize(message, outputStream); }
@Test public void hasExpirationDate_() throws Exception { Matcher<Long> anyMatcher = any(Long.class); assertThat(message, not(hasExpirationDate(anyMatcher))); Date expirationDate = new Date(System.currentTimeMillis() + 10000); message = MessageBuilder.fromMessage(message).setExpirationDate(expirationDate).build(); assertThat(message, hasExpirationDate(expirationDate)); assertThat(message, hasExpirationDate(not(is((System.currentTimeMillis()))))); }
@Test public void testPushAndPopSequenceDetailsWhenNoCorrelationId() throws Exception { Message<Integer> message1 = MessageBuilder.withPayload(1).build(); assertFalse(message1.getHeaders().containsKey(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS)); Message<Integer> message2 = MessageBuilder.fromMessage(message1).pushSequenceDetails("bar", 1, 1).build(); assertFalse(message2.getHeaders().containsKey(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS)); Message<Integer> message3 = MessageBuilder.fromMessage(message2).popSequenceDetails().build(); assertFalse(message3.getHeaders().containsKey(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS)); }
@Test public void childOverridesDefaultOverwrite() { QueueChannel replyChannel = new QueueChannel(); Message<?> request = MessageBuilder.fromMessage(this.message) .setHeader("foo", "bar") .setReplyChannel(replyChannel) .build(); this.context.getBean("defaultInput", MessageChannel.class).send(request); Message<?> reply = replyChannel.receive(); assertNotNull(reply); assertEquals("John Doe", reply.getHeaders().get("foo")); }
@Test public void testPushAndPopSequenceDetails() throws Exception { Message<Integer> message1 = MessageBuilder.withPayload(1).pushSequenceDetails("foo", 1, 2).build(); assertFalse(message1.getHeaders().containsKey(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS)); Message<Integer> message2 = MessageBuilder.fromMessage(message1).pushSequenceDetails("bar", 1, 1).build(); assertTrue(message2.getHeaders().containsKey(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS)); Message<Integer> message3 = MessageBuilder.fromMessage(message2).popSequenceDetails().build(); assertFalse(message3.getHeaders().containsKey(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS)); }
@Test public void createFromMessage() { Message<String> message1 = MessageBuilder.withPayload("test") .setHeader("foo", "bar").build(); Message<String> message2 = MessageBuilder.fromMessage(message1).build(); assertEquals("test", message2.getPayload()); assertEquals("bar", message2.getHeaders().get("foo")); }
@Test public void testNotModifiedSameMessage() throws Exception { Message<?> original = MessageBuilder.withPayload("foo").build(); Message<?> result = MessageBuilder.fromMessage(original).build(); assertEquals(original, result); }
@Test public void hasSequenceSize_() throws Exception { int sequenceSize = 123; message = MessageBuilder.fromMessage(message).setSequenceSize(sequenceSize).build(); assertThat(message, hasSequenceSize(sequenceSize)); assertThat(message, hasSequenceSize(is(sequenceSize))); }
@Test public void hasSequenceNumber_() throws Exception { int sequenceNumber = 123; message = MessageBuilder.fromMessage(message).setSequenceNumber(sequenceNumber).build(); assertThat(message, hasSequenceNumber(sequenceNumber)); }
@Test public void testSettingToNullRemoves() { Message<Integer> message1 = MessageBuilder.withPayload(1) .setHeader("foo", "bar").build(); Message<Integer> message2 = MessageBuilder.fromMessage(message1) .setHeader("foo", null) .build(); assertFalse(message2.getHeaders().containsKey("foo")); }
@Test @Transactional public void testAddAndUpdateAlreadySavedAndCopied() throws Exception { Message<String> message = MessageBuilder.withPayload("foo").build(); Message<String> saved = messageStore.addMessage(message); Message<String> copy = MessageBuilder.fromMessage(saved).build(); Message<String> result = messageStore.addMessage(copy); assertEquals(copy, result); assertEquals(saved, result); assertNotNull(messageStore.getMessage(saved.getHeaders().getId())); }
@Test public void testContainsHeaderNotModifiedSameMessage() throws Exception { Message<?> original = MessageBuilder.withPayload("foo").setHeader("bar", 42).build(); Message<?> result = MessageBuilder.fromMessage(original).build(); assertEquals(original, result); }
@Test public void testSameHeaderValueAddedNotModifiedSameMessage() throws Exception { Message<?> original = MessageBuilder.withPayload("foo").setHeader("bar", 42).build(); Message<?> result = MessageBuilder.fromMessage(original).setHeader("bar", 42).build(); assertEquals(original, result); }
@Test @Transactional public void testAddAndUpdateWithChange() throws Exception { Message<String> message = MessageBuilder.withPayload("foo").build(); Message<String> saved = messageStore.addMessage(message); Message<String> copy = MessageBuilder.fromMessage(saved).setHeader("newHeader", 1).build(); Message<String> result = messageStore.addMessage(copy); assertNotSame(saved, result); assertThat(saved, sameExceptIgnorableHeaders(result, "newHeader")); assertNotNull(messageStore.getMessage(saved.getHeaders().getId())); }
@Test public void testAddAndUpdateAlreadySavedAndCopied() throws Exception { Message<String> message = MessageBuilder.withPayload("foo").build(); Message<String> saved = messageStore.addMessage(message); Message<String> copy = MessageBuilder.fromMessage(saved).build(); Message<String> result = messageStore.addMessage(copy); assertEquals(copy, result); assertEquals(saved, result); assertNotNull(messageStore.getMessage(saved.getHeaders().getId())); }