List of usage examples for org.springframework.integration.support MessageBuilder fromMessage
public static <T> MessageBuilder<T> fromMessage(Message<T> message)
From source file:org.springframework.integration.jdbc.JdbcMessageStoreTests.java
@Test @Transactional/* w w w . j a va 2s . com*/ public void testSameMessageAndGroupToMultipleRegions() throws Exception { final String groupId = "myGroup"; final String region1 = "region1"; final String region2 = "region2"; final JdbcMessageStore messageStore1 = new JdbcMessageStore(dataSource); messageStore1.setRegion(region1); final JdbcMessageStore messageStore2 = new JdbcMessageStore(dataSource); messageStore1.setRegion(region2); final Message<String> message = MessageBuilder.withPayload("foo").build(); final MessageBuilder<String> builder1 = MessageBuilder.fromMessage(message); final MessageBuilder<String> builder2 = MessageBuilder.fromMessage(message); builder1.setSequenceNumber(1); builder2.setSequenceNumber(2); final Message<?> message1 = builder1.build(); final Message<?> message2 = builder2.build(); messageStore1.addMessageToGroup(groupId, message1); messageStore2.addMessageToGroup(groupId, message2); final Message<?> messageFromRegion1 = messageStore1.pollMessageFromGroup(groupId); final Message<?> messageFromRegion2 = messageStore2.pollMessageFromGroup(groupId); assertNotNull(messageFromRegion1); assertNotNull(messageFromRegion2); LOG.info("messageFromRegion1: " + messageFromRegion1.getHeaders().getId() + "; Sequence #: " + messageFromRegion1.getHeaders().getSequenceNumber()); LOG.info("messageFromRegion2: " + messageFromRegion2.getHeaders().getId() + "; Sequence #: " + messageFromRegion2.getHeaders().getSequenceNumber()); assertEquals(Integer.valueOf(1), messageFromRegion1.getHeaders().get(MessageHeaders.SEQUENCE_NUMBER)); assertEquals(Integer.valueOf(2), messageFromRegion2.getHeaders().get(MessageHeaders.SEQUENCE_NUMBER)); }
From source file:org.springframework.integration.jdbc.mysql.MySqlJdbcMessageStoreTests.java
@Test @Transactional/* w ww .ja v a 2 s . co m*/ @Rollback(false) @Repeat(20) public void testSameMessageToMultipleGroups() throws Exception { final String group1Id = "group1"; final String group2Id = "group2"; final Message<String> message = MessageBuilder.withPayload("foo").build(); final MessageBuilder<String> builder1 = MessageBuilder.fromMessage(message); final MessageBuilder<String> builder2 = MessageBuilder.fromMessage(message); builder1.setSequenceNumber(1); builder2.setSequenceNumber(2); final Message<?> message1 = builder1.build(); final Message<?> message2 = builder2.build(); messageStore.addMessageToGroup(group1Id, message1); messageStore.addMessageToGroup(group2Id, message2); final Message<?> messageFromGroup1 = messageStore.pollMessageFromGroup(group1Id); final Message<?> messageFromGroup2 = messageStore.pollMessageFromGroup(group2Id); assertNotNull(messageFromGroup1); assertNotNull(messageFromGroup2); LOG.info("messageFromGroup1: " + messageFromGroup1.getHeaders().getId() + "; Sequence #: " + messageFromGroup1.getHeaders().getSequenceNumber()); LOG.info("messageFromGroup2: " + messageFromGroup2.getHeaders().getId() + "; Sequence #: " + messageFromGroup2.getHeaders().getSequenceNumber()); assertEquals(Integer.valueOf(1), (Integer) messageFromGroup1.getHeaders().get(MessageHeaders.SEQUENCE_NUMBER)); assertEquals(Integer.valueOf(2), (Integer) messageFromGroup2.getHeaders().get(MessageHeaders.SEQUENCE_NUMBER)); }
From source file:org.springframework.integration.jdbc.mysql.MySqlJdbcMessageStoreTests.java
@Test @Transactional/*from www.j av a 2 s .c o m*/ @Rollback(false) @Repeat(20) public void testSameMessageAndGroupToMultipleRegions() throws Exception { final String groupId = "myGroup"; final String region1 = "region1"; final String region2 = "region2"; final JdbcMessageStore messageStore1 = new JdbcMessageStore(dataSource); messageStore1.setRegion(region1); final JdbcMessageStore messageStore2 = new JdbcMessageStore(dataSource); messageStore1.setRegion(region2); final Message<String> message = MessageBuilder.withPayload("foo").build(); final MessageBuilder<String> builder1 = MessageBuilder.fromMessage(message); final MessageBuilder<String> builder2 = MessageBuilder.fromMessage(message); builder1.setSequenceNumber(1); builder2.setSequenceNumber(2); final Message<?> message1 = builder1.build(); final Message<?> message2 = builder2.build(); messageStore1.addMessageToGroup(groupId, message1); messageStore2.addMessageToGroup(groupId, message2); final Message<?> messageFromRegion1 = messageStore1.pollMessageFromGroup(groupId); final Message<?> messageFromRegion2 = messageStore2.pollMessageFromGroup(groupId); assertNotNull(messageFromRegion1); assertNotNull(messageFromRegion2); LOG.info("messageFromRegion1: " + messageFromRegion1.getHeaders().getId() + "; Sequence #: " + messageFromRegion1.getHeaders().getSequenceNumber()); LOG.info("messageFromRegion2: " + messageFromRegion2.getHeaders().getId() + "; Sequence #: " + messageFromRegion2.getHeaders().getSequenceNumber()); assertEquals(Integer.valueOf(1), (Integer) messageFromRegion1.getHeaders().get(MessageHeaders.SEQUENCE_NUMBER)); assertEquals(Integer.valueOf(2), (Integer) messageFromRegion2.getHeaders().get(MessageHeaders.SEQUENCE_NUMBER)); }
From source file:org.springframework.integration.jdbc.store.JdbcChannelMessageStore.java
/** * Store a message in the database. The groupId identifies the channel for which * the message is to be stored.//from w w w .java 2 s .c o m * * Keep in mind that the actual groupdId (Channel * Identifier) is converted to a String-based UUID identifier. * * @param groupId the group id to store the message under * @param message a message */ @SuppressWarnings({ "rawtypes", "unchecked" }) public MessageGroup addMessageToGroup(Object groupId, Message<?> message) { final String groupKey = getKey(groupId); final long createdDate = System.currentTimeMillis(); final Message<?> result = MessageBuilder.fromMessage(message).setHeader(SAVED_KEY, Boolean.TRUE) .setHeader(CREATED_DATE_KEY, new Long(createdDate)).build(); final Map innerMap = (Map) new DirectFieldAccessor(result.getHeaders()).getPropertyValue("headers"); // using reflection to set ID since it is immutable through MessageHeaders innerMap.put(MessageHeaders.ID, message.getHeaders().get(MessageHeaders.ID)); final String messageId = getKey(result.getHeaders().getId()); final byte[] messageBytes = serializer.convert(result); jdbcTemplate.update(getQuery(channelMessageStoreQueryProvider.getCreateMessageQuery()), new PreparedStatementSetter() { public void setValues(PreparedStatement ps) throws SQLException { if (logger.isDebugEnabled()) { logger.debug("Inserting message with id key=" + messageId); } ps.setString(1, messageId); ps.setString(2, groupKey); ps.setString(3, region); ps.setLong(4, createdDate); lobHandler.getLobCreator().setBlobAsBytes(ps, 5, messageBytes); } }); return getMessageGroup(groupId); }
From source file:org.springframework.integration.jms.ChannelPublishingJmsMessageListener.java
public void onMessage(javax.jms.Message jmsMessage, Session session) throws JMSException { Object result = jmsMessage;//from w ww . j av a 2 s.c o m if (this.extractRequestPayload) { result = this.messageConverter.fromMessage(jmsMessage); if (logger.isDebugEnabled()) { logger.debug("converted JMS Message [" + jmsMessage + "] to integration Message payload [" + result + "]"); } } Map<String, Object> headers = headerMapper.toHeaders(jmsMessage); Message<?> requestMessage = (result instanceof Message<?>) ? MessageBuilder.fromMessage((Message<?>) result).copyHeaders(headers).build() : MessageBuilder.withPayload(result).copyHeaders(headers).build(); if (!this.expectReply) { this.gatewayDelegate.send(requestMessage); } else { Message<?> replyMessage = this.gatewayDelegate.sendAndReceiveMessage(requestMessage); if (replyMessage != null) { Destination destination = this.getReplyDestination(jmsMessage, session); if (destination != null) { // convert SI Message to JMS Message Object replyResult = replyMessage; if (this.extractReplyPayload) { replyResult = replyMessage.getPayload(); } try { javax.jms.Message jmsReply = this.messageConverter.toMessage(replyResult, session); // map SI Message Headers to JMS Message Properties/Headers headerMapper.fromHeaders(replyMessage.getHeaders(), jmsReply); this.copyCorrelationIdFromRequestToReply(jmsMessage, jmsReply); this.sendReply(jmsReply, destination, session); } catch (RuntimeException e) { logger.error("Failed to generate JMS Reply Message from: " + replyResult, e); throw e; } } } else if (logger.isDebugEnabled()) { logger.debug("expected a reply but none was received"); } } }
From source file:org.springframework.integration.x.gemfire.GemFireRPCMessaging.java
@Override public void execute(FunctionContext functionContext) { Assert.isInstanceOf(GemFireMessage.class, functionContext.getArguments()); GemFireMessage gemFireMessage = (GemFireMessage) functionContext.getArguments(); if (logger.isDebugEnabled()) { logger.debug("GemFireRPCMessaging.receive " + "\n\tgemFireMessage = " + gemFireMessage + "\n\tmessageProducer = " + messageProducer + "\n\tmessageProducer.get() = " + messageProducer.get(gemFireMessage.getChannelName())); }/*from www . j a v a2 s.c o m*/ GemFireMessageProducerSupport producerSupport = messageProducer.get(gemFireMessage.getChannelName()); if (producerSupport != null) { Message message = gemFireMessage.getPayload(); message = MessageBuilder.fromMessage(message).build(); GemFireMessageProducerSupport handler = messageProducer.get(gemFireMessage.getChannelName()); handler.pushMessage(message); } functionContext.getResultSender().lastResult(1); }