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

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

Introduction

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

Prototype

@Override
    @SuppressWarnings("unchecked")
    public Message<T> build() 

Source Link

Usage

From source file:org.springframework.integration.mail.transformer.AbstractMailMessageTransformer.java

public Message<?> transform(Message<?> message) {
    Object payload = message.getPayload();
    if (!(payload instanceof javax.mail.Message)) {
        throw new MessageTransformationException(message,
                this.getClass().getSimpleName() + " requires a javax.mail.Message payload");
    }/*from ww w.j a  v a 2  s.c  o  m*/
    javax.mail.Message mailMessage = (javax.mail.Message) payload;
    MessageBuilder<T> builder = null;
    try {
        builder = this.doTransform(mailMessage);
    } catch (Exception e) {
        throw new MessageTransformationException(message, "failed to transform mail message", e);
    }
    if (builder == null) {
        throw new MessageTransformationException(message, "failed to transform mail message");
    }
    builder.copyHeaders(this.extractHeaderMapFromMailMessage(mailMessage));
    return builder.build();
}

From source file:org.springframework.integration.smpp.core.SmesMessageSpecification.java

/**
 * this method takes an inbound SMS message and converts it to a Spring Integration message
 *
 * @param dsm            the {@link DeliverSm} from {@link AbstractReceivingMessageListener#onTextMessage(org.jsmpp.bean.DeliverSm, String)}
 * @param txtMessage the String from {@link AbstractReceivingMessageListener#onTextMessage(org.jsmpp.bean.DeliverSm, String)}
 * @return a Spring Integration message/*from  w  ww.  j a va 2s.co m*/
 */
public static Message<?> toMessageFromSms(DeliverSm dsm, String txtMessage) {

    Assert.isTrue(!dsm.isSmscDeliveryReceipt(), "the message should not be a delivery confirmation receipt!");

    MessageBuilder<String> mb = MessageBuilder.withPayload(txtMessage);
    mb.setHeader(SmppConstants.SMS, dsm);
    mb.setHeader(SmppConstants.REPLACE_IF_PRESENT, dsm.getReplaceIfPresent());
    mb.setHeader(SmppConstants.SHORT_MESSAGE, dsm.getShortMessage());
    mb.setHeader(SmppConstants.OPTIONAL_PARAMETERS, dsm.getOptionalParameters());
    mb.setHeader(SmppConstants.UDHI_AND_REPLY_PATH, dsm.isUdhiAndReplyPath());
    mb.setHeader(SmppConstants.VALIDITY_PERIOD, dsm.getValidityPeriod());
    mb.setHeader(SmppConstants.COMMAND_LENGTH, dsm.getCommandLength());
    mb.setHeader(SmppConstants.COMMAND_ID, dsm.getCommandId());
    mb.setHeader(SmppConstants.SME_ACK_NOT_REQUESTED, dsm.isSmeAckNotRequested());
    mb.setHeader(SmppConstants.DATA_CODING, dsm.getDataCoding());
    mb.setHeader(SmppConstants.REPLY_PATH, dsm.isReplyPath());
    mb.setHeader(SmppConstants.SOURCE_ADDR_TON, dsm.getSourceAddrTon());
    mb.setHeader(SmppConstants.SM_DEFAULT_MSG_ID, dsm.getSmDefaultMsgId());
    mb.setHeader(SmppConstants.UDHI, dsm.isUdhi());
    mb.setHeader(SmppConstants.SME_MANUAL_ACKNOWLEDGMENT, dsm.isSmeManualAcknowledgment());
    mb.setHeader(SmppConstants.CONVERSATION_ABORT, dsm.isConversationAbort());
    mb.setHeader(SmppConstants.DEST_ADDRESS, dsm.getDestAddress());
    mb.setHeader(SmppConstants.ESM_CLASS, dsm.getEsmClass());
    mb.setHeader(SmppConstants.COMMAND_ID_AS_HEX, dsm.getCommandIdAsHex());
    mb.setHeader(SmppConstants.SME_DELIVERY_AND_MANUAL_ACK_REQUESTED, dsm.isSmeDeliveryAndManualAckRequested());
    mb.setHeader(SmppConstants.SMSC_DELIVERY_RECEIPT, dsm.isSmscDeliveryReceipt());
    mb.setHeader(SmppConstants.SME_MANUAL_ACK_REQUESTED, dsm.isSmeManualAckRequested());
    mb.setHeader(SmppConstants.PRIORITY_FLAG, dsm.getPriorityFlag());
    mb.setHeader(SmppConstants.DEST_ADDR_TON, dsm.getDestAddrTon());
    mb.setHeader(SmppConstants.COMMAND_STATUS_AS_HEX, dsm.getCommandStatusAsHex());
    mb.setHeader(SmppConstants.SERVICE_TYPE, dsm.getServiceType());
    mb.setHeader(SmppConstants.INTERMEDIATE_DELIVERY_NOTIFICATION, dsm.isIntermedietDeliveryNotification());
    mb.setHeader(SmppConstants.SOURCE_ADDR_NPI, dsm.getSourceAddrNpi());
    mb.setHeader(SmppConstants.REGISTERED_DELIVERY, dsm.getRegisteredDelivery());
    mb.setHeader(SmppConstants.DEST_ADDR_NPI, dsm.getDestAddrNpi());
    mb.setHeader(SmppConstants.COMMAND_STATUS, dsm.getCommandStatus());
    mb.setHeader(SmppConstants.DEFAULT_MESSAGE_TYPE, dsm.isDefaultMessageType());
    mb.setHeader(SmppConstants.PROTOCOL_ID, dsm.getProtocolId());
    mb.setHeader(SmppConstants.SOURCE_ADDR, dsm.getSourceAddr());
    mb.setHeader(SmppConstants.SEQUENCE_NUMBER, dsm.getSequenceNumber());
    mb.setHeader(SmppConstants.SCHEDULE_DELIVERY_TIME, dsm.getScheduleDeliveryTime());
    mb.setHeader(SmppConstants.SME_DELIVERY_ACK_REQUESTED, dsm.isSmeDeliveryAckRequested());
    return mb.build();
}

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

protected final Message<?> serializePayloadIfNecessary(Message<?> message, MediaType 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)) {
        contentType = resolveContentType(originalPayload);
        Object payload = serializePayloadIfNecessary(originalPayload);
        MessageBuilder<Object> messageBuilder = MessageBuilder.withPayload(payload)
                .copyHeaders(message.getHeaders()).setHeader(MessageHeaders.CONTENT_TYPE, contentType);
        if (originalContentType != null) {
            messageBuilder.setHeader(ORIGINAL_CONTENT_TYPE_HEADER, originalContentType);
        }// w  w w  .j  a 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.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();
    }// w  ww . j a v  a  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;//  w w w . j av a 2s. 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);
        }/*from w  w  w  .  j  a  v a  2  s .  c  o  m*/
        messageToSend = transformed.build();
    }
    return messageToSend;
}

From source file:org.springframework.integration.xmpp.messages.XmppMessageDrivenEndpoint.java

private void forwardXmppMessage(Chat chat, Message xmppMessage) {
    Object payload = (this.extractPayload ? xmppMessage.getBody() : xmppMessage);
    MessageBuilder<?> messageBuilder = MessageBuilder.withPayload(payload)
            .setHeader(XmppHeaders.TYPE, xmppMessage.getType()).setHeader(XmppHeaders.CHAT, chat);
    messagingTemplate.send(requestChannel, messageBuilder.build());
}

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  www .j  a v  a  2  s.  c om
 * @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.j  a v  a  2  s .  co  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();
    }/*from w  ww .j  av  a 2s .  c  om*/
    return messageToSend;
}