MessageWrapper(Message<?> message) { Assert.notNull(message, "'message' must not be null"); this.message = message; this._messageType = message.getClass().getName(); this.payload = message.getPayload(); this.headers = message.getHeaders(); if (message instanceof AdviceMessage) { this.inputMessage = ((AdviceMessage<?>) message).getInputMessage(); } else { this.inputMessage = null; } }
headerAccessor.setHeader(HEADER_NAME, history); message = new AdviceMessage<T>(message.getPayload(), headerAccessor.toMessageHeaders(), ((AdviceMessage<?>) message).getInputMessage());
@Test public void testCorrectAdviceMessageAfterWrite() { Message<?> inputMessage = new GenericMessage<>("input"); AdviceMessage<String> original = new AdviceMessage<>("foo", inputMessage); assertNull(MessageHistory.read(original)); Message<String> result1 = MessageHistory.write(original, new TestComponent(1)); assertThat(result1, instanceOf(AdviceMessage.class)); assertNotSame(original, result1); assertSame(original.getPayload(), result1.getPayload()); assertSame(original.getInputMessage(), ((AdviceMessage<?>) result1).getInputMessage()); MessageHistory history1 = MessageHistory.read(result1); assertNotNull(history1); assertEquals("testComponent-1", history1.toString()); Message<String> result2 = MessageHistory.write(result1, new TestComponent(2)); assertThat(result2, instanceOf(AdviceMessage.class)); assertNotSame(original, result2); assertSame(original.getPayload(), result2.getPayload()); assertSame(original.getInputMessage(), ((AdviceMessage<?>) result2).getInputMessage()); assertNotSame(result1, result2); MessageHistory history2 = MessageHistory.read(result2); assertNotNull(history2); assertEquals("testComponent-1,testComponent-2", history2.toString()); }
@Test @MongoDbAvailable public void testInt3076AdviceMessage() throws Exception { MessageStore store = this.getMessageStore(); Person p = new Person(); p.setFname("John"); p.setLname("Doe"); Message<Person> inputMessage = MessageBuilder.withPayload(p).build(); Message<?> messageToStore = new AdviceMessage<String>("foo", inputMessage); store.addMessage(messageToStore); Message<?> retrievedMessage = store.getMessage(messageToStore.getHeaders().getId()); assertNotNull(retrievedMessage); assertTrue(retrievedMessage instanceof AdviceMessage); assertEquals(messageToStore.getPayload(), retrievedMessage.getPayload()); assertEquals(messageToStore.getHeaders(), retrievedMessage.getHeaders()); assertEquals(inputMessage, ((AdviceMessage<?>) retrievedMessage).getInputMessage()); assertEquals(messageToStore, retrievedMessage); }
assertEquals("Hello, world!", ((AdviceMessage<?>) success).getInputMessage().getPayload()); assertEquals(ArithmeticException.class, success.getPayload().getClass()); assertEquals("/ by zero", ((Exception) success.getPayload()).getMessage()); assertEquals("Hello, world!", ((AdviceMessage<?>) success).getInputMessage().getPayload()); assertEquals(ArithmeticException.class, success.getPayload().getClass()); assertEquals("/ by zero", ((Exception) success.getPayload()).getMessage());
@Test @MongoDbAvailable public void testAdviceMessageAsPayload() throws Exception { MessageStore store = this.getMessageStore(); Person p = new Person(); p.setFname("John"); p.setLname("Doe"); Message<Person> inputMessage = MessageBuilder.withPayload(p).build(); Message<?> messageToStore = new GenericMessage<Message<?>>(new AdviceMessage<String>("foo", inputMessage)); store.addMessage(messageToStore); Message<?> retrievedMessage = store.getMessage(messageToStore.getHeaders().getId()); assertNotNull(retrievedMessage); assertTrue(retrievedMessage.getPayload() instanceof AdviceMessage); AdviceMessage<?> adviceMessage = (AdviceMessage<?>) retrievedMessage.getPayload(); assertEquals("foo", adviceMessage.getPayload()); assertEquals(messageToStore.getHeaders(), retrievedMessage.getHeaders()); assertEquals(inputMessage, adviceMessage.getInputMessage()); assertEquals(messageToStore, retrievedMessage); }
MessageWrapper(Message<?> message) { Assert.notNull(message, "'message' must not be null"); this.message = message; this._messageType = message.getClass().getName(); this.payload = message.getPayload(); this.headers = message.getHeaders(); if (message instanceof AdviceMessage) { this.inputMessage = ((AdviceMessage<?>) message).getInputMessage(); } else { this.inputMessage = null; } }
assertEquals("Hello, world!", ((AdviceMessage<?>) success).getInputMessage().getPayload()); assertEquals("foo", success.getPayload());
headerAccessor.setHeader(HEADER_NAME, history); message = new AdviceMessage<T>(message.getPayload(), headerAccessor.toMessageHeaders(), ((AdviceMessage<?>) message).getInputMessage());