Example usage for org.springframework.integration.support MessageBuilder setHeader

List of usage examples for org.springframework.integration.support MessageBuilder setHeader

Introduction

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

Prototype

@Override
public MessageBuilder<T> setHeader(String headerName, @Nullable Object headerValue) 

Source Link

Document

Set the value for the given header name.

Usage

From source file:org.springframework.integration.x.bus.MessageBusSupport.java

protected final Message<?> deserializePayloadIfNecessary(Message<?> message) {
    Message<?> messageToSend = message;
    Object originalPayload = message.getPayload();
    MimeType contentType = contentTypeResolver.resolve(message.getHeaders());
    Object payload = deserializePayload(originalPayload, contentType);
    if (payload != null) {
        MessageBuilder<Object> transformed = MessageBuilder.withPayload(payload)
                .copyHeaders(message.getHeaders());
        Object originalContentType = message.getHeaders().get(ORIGINAL_CONTENT_TYPE_HEADER);
        transformed.setHeader(MessageHeaders.CONTENT_TYPE, originalContentType);
        transformed.setHeader(ORIGINAL_CONTENT_TYPE_HEADER, null);
        messageToSend = transformed.build();
    }//ww  w  .ja va 2 s. com
    return messageToSend;
}

From source file:org.springframework.integration.x.channel.registry.ChannelRegistrySupport.java

protected final Message<?> transformOutboundIfNecessary(Message<?> message, MediaType to) {
    Message<?> messageToSend = message;
    Object originalPayload = message.getPayload();
    Object payload = null;/*from   w w  w  .  ja va  2  s . c  o  m*/
    Object originalContentType = message.getHeaders().get(MessageHeaders.CONTENT_TYPE);
    String originalContentTypeString = null;
    if (originalContentType instanceof MediaType) {
        originalContentTypeString = originalContentType.toString();
    } else if (originalContentType instanceof String) {
        originalContentTypeString = (String) originalContentType;
    }
    String contentType = originalContentTypeString;
    if (to.equals(MediaType.ALL)) {
        return message;
    } else if (to.equals(MediaType.APPLICATION_OCTET_STREAM)) {
        if (originalPayload instanceof byte[]) {
            payload = originalPayload;
            contentType = XD_OCTET_STREAM_VALUE;
        } else if (originalPayload instanceof String) {
            try {
                payload = ((String) originalPayload).getBytes("UTF-8");
                contentType = XD_TEXT_PLAIN_UTF8_VALUE;
            } catch (UnsupportedEncodingException e) {
                logger.error("Could not convert String to bytes", e);
            }
        } else {
            payload = this.jsonMapper.toBytes(originalPayload);
            contentType = XD_JSON_OCTET_STREAM_VALUE;
        }
    } else {
        throw new IllegalArgumentException("'to' can only be 'ALL' or 'APPLICATION_OCTET_STREAM'");
    }
    if (payload != null) {
        MessageBuilder<Object> messageBuilder = MessageBuilder.withPayload(payload)
                .copyHeaders(message.getHeaders()).setHeader(MessageHeaders.CONTENT_TYPE, contentType);
        if (originalContentTypeString != null) {
            messageBuilder.setHeader(ORIGINAL_CONTENT_TYPE_HEADER, originalContentTypeString);
        }
        messageToSend = messageBuilder.build();
    }
    return messageToSend;
}

From source file:org.springframework.integration.x.channel.registry.ChannelRegistrySupport.java

protected final Message<?> transformInboundIfNecessary(Message<?> message,
        Collection<MediaType> acceptedMediaTypes) {
    Message<?> messageToSend = message;
    Object originalPayload = message.getPayload();
    String contentType = message.getHeaders().get(MessageHeaders.CONTENT_TYPE, String.class);
    Object payload = transformPayloadForInputChannel(originalPayload, contentType, acceptedMediaTypes);
    if (payload != null) {
        MessageBuilder<Object> transformed = MessageBuilder.withPayload(payload)
                .copyHeaders(message.getHeaders());
        Object originalContentType = message.getHeaders().get(ORIGINAL_CONTENT_TYPE_HEADER);
        if (originalContentType != null) {
            transformed.setHeader(MessageHeaders.CONTENT_TYPE, originalContentType);
            transformed.setHeader(ORIGINAL_CONTENT_TYPE_HEADER, null);
        } else if (contentType != null && contentType.contains("/x-xd-")) {
            transformed.setHeader(MessageHeaders.CONTENT_TYPE, null);
        }//  w  w  w  .j  a v a  2 s  .c om
        messageToSend = transformed.build();
    }
    return messageToSend;
}

From source file:org.springframework.integration.xmpp.presence.XmppPresenceMessageMapper.java

/**
 * Returns a {@link org.springframework.integration.Message} with payload {@link org.jivesoftware.smack.packet.Presence}
 *
 * @param presence the presence object that can be used to present the priority, status, mode, and type of a given roster entry. This will be decomposed into a series of headers, as well as a payload
 * @return the Message/*from ww  w  .  ja  va 2s .  c o m*/
 * @throws Exception thrown if conversion should fail
 */
public Message<?> toMessage(Presence presence) throws Exception {
    MessageBuilder<?> presenceMessageBuilder = MessageBuilder.withPayload(presence);
    presenceMessageBuilder.setHeader(XmppHeaders.PRESENCE_PRIORITY, presence.getPriority());
    presenceMessageBuilder.setHeader(XmppHeaders.PRESENCE_STATUS, presence.getStatus());
    presenceMessageBuilder.setHeader(XmppHeaders.PRESENCE_MODE, presence.getMode());
    presenceMessageBuilder.setHeader(XmppHeaders.PRESENCE_TYPE, presence.getType());
    presenceMessageBuilder.setHeader(XmppHeaders.PRESENCE_FROM, presence.getFrom());

    return presenceMessageBuilder.build();
}

From source file:org.springframework.xd.dirt.integration.bus.MessageBusSupport.java

protected final Message<?> serializePayloadIfNecessary(Message<?> message, MimeType to) {
    Object originalPayload = message.getPayload();
    Object originalContentType = message.getHeaders().get(MessageHeaders.CONTENT_TYPE);
    Object contentType = originalContentType;
    if (to.equals(ALL)) {
        return message;
    } else if (to.equals(APPLICATION_OCTET_STREAM)) {
        //Pass content type as String since some transport adapters will exclude CONTENT_TYPE Header otherwise
        contentType = JavaClassMimeTypeConversion.mimeTypeFromObject(originalPayload).toString();
        Object payload = serializePayloadIfNecessary(originalPayload);
        MessageBuilder<Object> messageBuilder = MessageBuilder.withPayload(payload)
                .copyHeaders(message.getHeaders()).setHeader(MessageHeaders.CONTENT_TYPE, contentType);
        if (originalContentType != null) {
            messageBuilder.setHeader(XdHeaders.XD_ORIGINAL_CONTENT_TYPE, originalContentType);
        }//w w  w.  ja  v  a 2 s .  c o  m
        return messageBuilder.build();
    } else {
        throw new IllegalArgumentException("'to' can only be 'ALL' or 'APPLICATION_OCTET_STREAM'");
    }
}

From source file:org.springframework.xd.dirt.integration.bus.MessageBusSupport.java

protected final Message<?> deserializePayloadIfNecessary(Message<?> message) {
    Message<?> messageToSend = message;
    Object originalPayload = message.getPayload();
    MimeType contentType = contentTypeResolver.resolve(message.getHeaders());
    Object payload = deserializePayload(originalPayload, contentType);
    if (payload != null) {
        MessageBuilder<Object> transformed = MessageBuilder.withPayload(payload)
                .copyHeaders(message.getHeaders());
        Object originalContentType = message.getHeaders().get(XdHeaders.XD_ORIGINAL_CONTENT_TYPE);
        transformed.setHeader(MessageHeaders.CONTENT_TYPE, originalContentType);
        transformed.setHeader(XdHeaders.XD_ORIGINAL_CONTENT_TYPE, null);
        messageToSend = transformed.build();
    }/*  w  ww.ja  v a2  s  . c  om*/
    return messageToSend;
}