@Override public <T> MutableMessageBuilder<T> withPayload(T payload) { return MutableMessageBuilder.withPayload(payload); }
/** * Create a builder for a new {@link Message} instance with the provided payload. * @param payload the payload for the new message * @param <T> The type of the payload. * @return A MutableMessageBuilder. */ public static <T> MutableMessageBuilder<T> withPayload(T payload) { return withPayload(payload, true); }
@Override public MutableMessage<?> convert(Document source) { @SuppressWarnings("unchecked") Map<String, Object> headers = MongoDbMessageStore.this.converter.normalizeHeaders((Map<String, Object>) source.get("headers")); Object payload = MongoDbMessageStore.this.converter.extractPayload(source); return (MutableMessage<?>) MutableMessageBuilder.withPayload(payload) .copyHeaders(headers) .build(); }
@Test public void testIntegrationConverter() { this.numberChannel.send(new GenericMessage<Integer>(10)); this.numberChannel.send(new GenericMessage<Boolean>(true)); assertThat(this.testConverter.getInvoked(), Matchers.greaterThan(0)); assertTrue(this.bytesChannel.send(new GenericMessage<byte[]>("foo".getBytes()))); assertTrue(this.bytesChannel.send(new GenericMessage<>(MutableMessageBuilder.withPayload("").build()))); }
/** * Create a builder for a new {@link Message} instance with the provided payload. * @param payload the payload for the new message * @param <T> The type of the payload. * @return A MutableMessageBuilder. */ public static <T> MutableMessageBuilder<T> withPayload(T payload) { return withPayload(payload, true); }
@Test @MongoDbAvailable public void testMutableMessageAsPayload() throws Exception { MessageStore store = this.getMessageStore(); Person p = new Person(); p.setFname("John"); p.setLname("Doe"); Message<?> messageToStore = new GenericMessage<Message<?>>(MutableMessageBuilder.withPayload(p).build()); store.addMessage(messageToStore); Message<?> retrievedMessage = store.getMessage(messageToStore.getHeaders().getId()); assertNotNull(retrievedMessage); assertThat(retrievedMessage.getPayload(), instanceOf(MutableMessage.class)); assertEquals(messageToStore.getPayload(), retrievedMessage.getPayload()); assertEquals(messageToStore.getHeaders(), retrievedMessage.getHeaders()); assertEquals(((Message<?>) messageToStore.getPayload()).getPayload(), p); assertEquals(messageToStore, retrievedMessage); }
@Override public <T> MutableMessageBuilder<T> withPayload(T payload) { return MutableMessageBuilder.withPayload(payload); }
@Test public void testPopSequenceDetailsWhenNotPoppedMutable() throws Exception { Message<Integer> message1 = MutableMessageBuilder.withPayload(1).build(); assertFalse(message1.getHeaders().containsKey(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS)); Message<Integer> message2 = MutableMessageBuilder.fromMessage(message1).popSequenceDetails().build(); assertFalse(message2.getHeaders().containsKey(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS)); }
@Test public void mutable() { MutableMessageBuilder<String> builder = MutableMessageBuilder.withPayload("test"); Message<String> message1 = builder .setHeader("foo", "bar").build(); Message<String> message2 = MutableMessageBuilder.fromMessage(message1).setHeader("another", 1).build(); assertEquals("bar", message2.getHeaders().get("foo")); assertSame(message1.getHeaders().getId(), message2.getHeaders().getId()); assertTrue(message2 == message1); }
@Test public void testPushAndPopSequenceDetailsWhenNoCorrelationIdMutable() throws Exception { Message<Integer> message1 = MutableMessageBuilder.withPayload(1).build(); assertFalse(message1.getHeaders().containsKey(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS)); Message<Integer> message2 = MutableMessageBuilder.fromMessage(message1).pushSequenceDetails("bar", 1, 1).build(); assertFalse(message2.getHeaders().containsKey(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS)); Message<Integer> message3 = MutableMessageBuilder.fromMessage(message2).popSequenceDetails().build(); assertFalse(message3.getHeaders().containsKey(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS)); }
@Test public void testClaimCheck() { QueueChannel replyChannel = new QueueChannel(); Message<String> message = MutableMessageBuilder.withPayload("foo").setReplyChannel(replyChannel).build(); this.claimCheckInput.send(message); Message<?> receive = replyChannel.receive(10000); assertNotNull(receive); assertSame(message, receive); assertEquals(1, this.messageStore.getMessageCount()); assertSame(message, this.messageStore.getMessage(message.getHeaders().getId())); }
@Test public void testNoIdAndTimestampHeaders() { Message<String> message = MutableMessageBuilder.withPayload("foo", false) .pushSequenceDetails("bar", 1, 1) .build(); assertThat(message, hasHeaderKey(IntegrationMessageHeaderAccessor.CORRELATION_ID)); assertThat(message, hasHeaderKey(IntegrationMessageHeaderAccessor.SEQUENCE_NUMBER)); assertThat(message, hasHeaderKey(IntegrationMessageHeaderAccessor.SEQUENCE_SIZE)); assertThat(message, not(hasHeaderKey(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS))); assertThat(message, not(hasHeaderKey(MessageHeaders.ID))); assertThat(message, not(hasHeaderKey(MessageHeaders.TIMESTAMP))); }
@Test public void testPushAndPopSequenceDetailsMutable() throws Exception { Message<Integer> message1 = MutableMessageBuilder.withPayload(1).pushSequenceDetails("foo", 1, 2).build(); assertFalse(message1.getHeaders().containsKey(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS)); Message<Integer> message2 = MutableMessageBuilder.fromMessage(message1).pushSequenceDetails("bar", 1, 1).build(); assertTrue(message2.getHeaders().containsKey(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS)); Message<Integer> message3 = MutableMessageBuilder.fromMessage(message2).popSequenceDetails().build(); assertFalse(message3.getHeaders().containsKey(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS)); }
@Test public void testPushAndPopSequenceDetailsWhenNoSequenceMutable() throws Exception { Message<Integer> message1 = MutableMessageBuilder.withPayload(1).setCorrelationId("foo").build(); assertFalse(message1.getHeaders().containsKey(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS)); Message<Integer> message2 = MutableMessageBuilder.fromMessage(message1).pushSequenceDetails("bar", 1, 1).build(); assertTrue(message2.getHeaders().containsKey(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS)); Message<Integer> message3 = MutableMessageBuilder.fromMessage(message2).popSequenceDetails().build(); assertFalse(message3.getHeaders().containsKey(IntegrationMessageHeaderAccessor.SEQUENCE_DETAILS)); }
headers1.put("k1", "foo"); headers1.put("k2", null); Message<?> message1 = MutableMessageBuilder.withPayload("test") .setCorrelationId(1) .setSequenceNumber(1) headers2.put("k1", "bar"); headers2.put("k2", null); message2 = MutableMessageBuilder.withPayload("test") .setCorrelationId(1) .setSequenceNumber(2)
assertNotNull(out); assertEquals("foobar", out.getPayload()); child.getBean("parentIn", MessageChannel.class).send(MutableMessageBuilder.withPayload("bar").build()); out = child.getBean("parentOut", QueueChannel.class).receive(0); assertNotNull(out);
@Override public MutableMessage<?> convert(Document source) { @SuppressWarnings("unchecked") Map<String, Object> headers = MongoDbMessageStore.this.converter.normalizeHeaders((Map<String, Object>) source.get("headers")); Object payload = MongoDbMessageStore.this.converter.extractPayload(source); return (MutableMessage<?>) MutableMessageBuilder.withPayload(payload) .copyHeaders(headers) .build(); }
assertEquals(10, this.cms.getMessageGroup("cms:testChannel1").size()); for (int i = 0; i < 10; i++) { this.testChannel2.send(MutableMessageBuilder.withPayload(i).build());
@Test public void testClaimCheck() { QueueChannel replyChannel = new QueueChannel(); Message<String> message = MutableMessageBuilder.withPayload("foo").setReplyChannel(replyChannel).build(); this.claimCheckInput.send(message); Message<?> receive = replyChannel.receive(2000); assertNotNull(receive); assertSame(message, receive); assertEquals(1, this.messageStore.getMessageCount()); assertSame(message, this.messageStore.getMessage(message.getHeaders().getId())); }