Search in sources :

Example 16 with BytesMessage

use of io.openmessaging.BytesMessage in project rocketmq by apache.

the class OMSUtil method msgConvert.

public static org.apache.rocketmq.common.message.Message msgConvert(BytesMessage omsMessage) {
    org.apache.rocketmq.common.message.Message rmqMessage = new org.apache.rocketmq.common.message.Message();
    rmqMessage.setBody(omsMessage.getBody());
    KeyValue headers = omsMessage.headers();
    KeyValue properties = omsMessage.properties();
    // All destinations in RocketMQ use Topic
    if (headers.containsKey(MessageHeader.TOPIC)) {
        rmqMessage.setTopic(headers.getString(MessageHeader.TOPIC));
        rmqMessage.putUserProperty(NonStandardKeys.MESSAGE_DESTINATION, "TOPIC");
    } else {
        rmqMessage.setTopic(headers.getString(MessageHeader.QUEUE));
        rmqMessage.putUserProperty(NonStandardKeys.MESSAGE_DESTINATION, "QUEUE");
    }
    for (String key : properties.keySet()) {
        MessageAccessor.putProperty(rmqMessage, key, properties.getString(key));
    }
    // Headers has a high priority
    for (String key : headers.keySet()) {
        MessageAccessor.putProperty(rmqMessage, key, headers.getString(key));
    }
    return rmqMessage;
}
Also used : KeyValue(io.openmessaging.KeyValue) BytesMessage(io.openmessaging.BytesMessage)

Example 17 with BytesMessage

use of io.openmessaging.BytesMessage in project rocketmq by apache.

the class PushConsumerImplTest method testConsumeMessage.

@Test
public void testConsumeMessage() {
    final byte[] testBody = new byte[] { 'a', 'b' };
    MessageExt consumedMsg = new MessageExt();
    consumedMsg.setMsgId("NewMsgId");
    consumedMsg.setBody(testBody);
    consumedMsg.putUserProperty(NonStandardKeys.MESSAGE_DESTINATION, "TOPIC");
    consumedMsg.setTopic("HELLO_QUEUE");
    consumer.attachQueue("HELLO_QUEUE", new MessageListener() {

        @Override
        public void onMessage(final Message message, final ReceivedMessageContext context) {
            assertThat(message.headers().getString(MessageHeader.MESSAGE_ID)).isEqualTo("NewMsgId");
            assertThat(((BytesMessage) message).getBody()).isEqualTo(testBody);
            context.ack();
        }
    });
    ((MessageListenerConcurrently) rocketmqPushConsumer.getMessageListener()).consumeMessage(Collections.singletonList(consumedMsg), null);
}
Also used : MessageExt(org.apache.rocketmq.common.message.MessageExt) MessageListenerConcurrently(org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently) Message(io.openmessaging.Message) BytesMessage(io.openmessaging.BytesMessage) MessageListener(io.openmessaging.MessageListener) ReceivedMessageContext(io.openmessaging.ReceivedMessageContext) Test(org.junit.Test)

Example 18 with BytesMessage

use of io.openmessaging.BytesMessage in project rocketmq by apache.

the class SequenceProducerImplTest method testSend_WithCommit.

@Test
public void testSend_WithCommit() throws InterruptedException, RemotingException, MQClientException, MQBrokerException {
    SendResult sendResult = new SendResult();
    sendResult.setMsgId("TestMsgID");
    sendResult.setSendStatus(SendStatus.SEND_OK);
    when(rocketmqProducer.send(ArgumentMatchers.<Message>anyList())).thenReturn(sendResult);
    when(rocketmqProducer.getMaxMessageSize()).thenReturn(1024);
    final BytesMessage message = producer.createBytesMessageToTopic("HELLO_TOPIC", new byte[] { 'a' });
    producer.send(message);
    producer.commit();
    assertThat(message.headers().getString(MessageHeader.MESSAGE_ID)).isEqualTo("TestMsgID");
}
Also used : SendResult(org.apache.rocketmq.client.producer.SendResult) BytesMessage(io.openmessaging.BytesMessage) Test(org.junit.Test)

Aggregations

BytesMessage (io.openmessaging.BytesMessage)18 Test (org.junit.Test)8 Message (io.openmessaging.Message)6 BytesMessageImpl (io.openmessaging.rocketmq.domain.BytesMessageImpl)6 KeyValue (io.openmessaging.KeyValue)4 SendResult (org.apache.rocketmq.client.producer.SendResult)4 MessageExt (org.apache.rocketmq.common.message.MessageExt)4 MessageListener (io.openmessaging.MessageListener)2 ReceivedMessageContext (io.openmessaging.ReceivedMessageContext)2 ArrayList (java.util.ArrayList)2 Map (java.util.Map)2 MessageListenerConcurrently (org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently)2 MQClientException (org.apache.rocketmq.client.exception.MQClientException)2