List of usage examples for org.springframework.integration.support DefaultMessageBuilderFactory DefaultMessageBuilderFactory
DefaultMessageBuilderFactory
From source file:xolpoc.plugins.StreamPlugin.java
private void track(final Module module, MessageChannel channel, final Map<String, Object> historyProps) { final MessageBuilderFactory messageBuilderFactory = module.getComponent( IntegrationUtils.INTEGRATION_MESSAGE_BUILDER_FACTORY_BEAN_NAME, MessageBuilderFactory.class) == null ? new DefaultMessageBuilderFactory() : module.getComponent(IntegrationUtils.INTEGRATION_MESSAGE_BUILDER_FACTORY_BEAN_NAME, MessageBuilderFactory.class); if (channel instanceof ChannelInterceptorAware) { ((ChannelInterceptorAware) channel).addInterceptor(new ChannelInterceptorAdapter() { @Override/* w w w. ja v a 2s . c o m*/ public Message<?> preSend(Message<?> message, MessageChannel channel) { @SuppressWarnings("unchecked") Collection<Map<String, Object>> history = (Collection<Map<String, Object>>) message.getHeaders() .get(XdHeaders.XD_HISTORY); if (history == null) { history = new ArrayList<Map<String, Object>>(1); } else { history = new ArrayList<Map<String, Object>>(history); } Map<String, Object> map = new LinkedHashMap<String, Object>(); map.putAll(historyProps); map.put("thread", Thread.currentThread().getName()); history.add(map); Message<?> out = messageBuilderFactory.fromMessage(message) .setHeader(XdHeaders.XD_HISTORY, history).build(); return out; } }); } }
From source file:org.springframework.integration.support.utils.IntegrationUtils.java
/** * Returns the context-wide `messageBuilderFactory` bean from the beanFactory, * or a {@link DefaultMessageBuilderFactory} if not found or the beanFactory is null. * @param beanFactory The bean factory./*from ww w .j a v a 2s .c o m*/ * @return The message builder factory. */ public static MessageBuilderFactory getMessageBuilderFactory(BeanFactory beanFactory) { MessageBuilderFactory messageBuilderFactory = null; if (beanFactory != null) { try { messageBuilderFactory = beanFactory.getBean(INTEGRATION_MESSAGE_BUILDER_FACTORY_BEAN_NAME, MessageBuilderFactory.class); } catch (Exception e) { if (logger.isDebugEnabled()) { logger.debug( "No MessageBuilderFactory with name '" + INTEGRATION_MESSAGE_BUILDER_FACTORY_BEAN_NAME + "' found: " + e.getMessage() + ", using default."); } } } else { if (logger.isDebugEnabled()) { logger.debug("No 'beanFactory' supplied; cannot find MessageBuilderFactory, using default."); } if (fatalWhenNoBeanFactory) { throw new RuntimeException("All Message creators need a BeanFactory"); } } if (messageBuilderFactory == null) { messageBuilderFactory = new DefaultMessageBuilderFactory(); } return messageBuilderFactory; }