Search in sources :

Example 6 with BytesMessageImpl

use of io.openmessaging.rocketmq.domain.BytesMessageImpl in project rocketmq by apache.

the class OMSUtil method msgConvert.

public static BytesMessage msgConvert(org.apache.rocketmq.common.message.MessageExt rmqMsg) {
    BytesMessage omsMsg = new BytesMessageImpl();
    omsMsg.setBody(rmqMsg.getBody());
    KeyValue headers = omsMsg.headers();
    KeyValue properties = omsMsg.properties();
    final Set<Map.Entry<String, String>> entries = rmqMsg.getProperties().entrySet();
    for (final Map.Entry<String, String> entry : entries) {
        if (isOMSHeader(entry.getKey())) {
            headers.put(entry.getKey(), entry.getValue());
        } else {
            properties.put(entry.getKey(), entry.getValue());
        }
    }
    omsMsg.putHeaders(MessageHeader.MESSAGE_ID, rmqMsg.getMsgId());
    if (!rmqMsg.getProperties().containsKey(NonStandardKeys.MESSAGE_DESTINATION) || rmqMsg.getProperties().get(NonStandardKeys.MESSAGE_DESTINATION).equals("TOPIC")) {
        omsMsg.putHeaders(MessageHeader.TOPIC, rmqMsg.getTopic());
    } else {
        omsMsg.putHeaders(MessageHeader.QUEUE, rmqMsg.getTopic());
    }
    omsMsg.putHeaders(MessageHeader.SEARCH_KEY, rmqMsg.getKeys());
    omsMsg.putHeaders(MessageHeader.BORN_HOST, String.valueOf(rmqMsg.getBornHost()));
    omsMsg.putHeaders(MessageHeader.BORN_TIMESTAMP, rmqMsg.getBornTimestamp());
    omsMsg.putHeaders(MessageHeader.STORE_HOST, String.valueOf(rmqMsg.getStoreHost()));
    omsMsg.putHeaders(MessageHeader.STORE_TIMESTAMP, rmqMsg.getStoreTimestamp());
    return omsMsg;
}
Also used : KeyValue(io.openmessaging.KeyValue) BytesMessageImpl(io.openmessaging.rocketmq.domain.BytesMessageImpl) BytesMessage(io.openmessaging.BytesMessage) Map(java.util.Map)

Aggregations

BytesMessage (io.openmessaging.BytesMessage)6 BytesMessageImpl (io.openmessaging.rocketmq.domain.BytesMessageImpl)6 KeyValue (io.openmessaging.KeyValue)2 Map (java.util.Map)2