Example usage for org.springframework.integration.support DefaultMessageBuilderFactory DefaultMessageBuilderFactory

List of usage examples for org.springframework.integration.support DefaultMessageBuilderFactory DefaultMessageBuilderFactory

Introduction

In this page you can find the example usage for org.springframework.integration.support DefaultMessageBuilderFactory DefaultMessageBuilderFactory.

Prototype

DefaultMessageBuilderFactory

Source Link

Usage

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;
}