use of org.apache.qpid.server.protocol.v1_0.Message_1_0 in project qpid-broker-j by apache.
the class MessageConverter_1_0_to_v0_10 method convertMetaData.
private MessageMetaData_0_10 convertMetaData(Message_1_0 serverMsg, final NamedAddressSpace addressSpace, final String bodyMimeType, final int size) {
DeliveryProperties deliveryProps = new DeliveryProperties();
MessageProperties messageProps = new MessageProperties();
final MessageMetaData_1_0.MessageHeader_1_0 origHeader = serverMsg.getMessageHeader();
setExchangeAndRoutingKeyOnDeliveryProperties(deliveryProps, origHeader, addressSpace);
deliveryProps.setDeliveryMode(serverMsg.isPersistent() ? MessageDeliveryMode.PERSISTENT : MessageDeliveryMode.NON_PERSISTENT);
deliveryProps.setExpiration(serverMsg.getExpiration());
deliveryProps.setPriority(MessageDeliveryPriority.get(origHeader.getPriority()));
Date creationTime = getCreationTime(serverMsg);
final long arrivalTime = serverMsg.getArrivalTime();
if (creationTime != null) {
deliveryProps.setTimestamp(creationTime.getTime());
} else {
deliveryProps.setTimestamp(arrivalTime);
}
Long ttl = getTtl(serverMsg);
Date absoluteExpiryTime = getAbsoluteExpiryTime(serverMsg);
if (ttl != null) {
deliveryProps.setTtl(ttl);
deliveryProps.setExpiration(arrivalTime + ttl);
} else if (absoluteExpiryTime != null) {
final long time = absoluteExpiryTime.getTime();
deliveryProps.setTtl(Math.max(0, time - arrivalTime));
deliveryProps.setExpiration(time);
}
UUID messageId = getMessageIdAsUUID(serverMsg);
if (messageId != null) {
messageProps.setMessageId(messageId);
}
byte[] correlationId = getCorrelationIdAsBytes(serverMsg);
if (correlationId != null) {
messageProps.setCorrelationId(correlationId);
}
final String encoding = origHeader.getEncoding();
if (encoding != null) {
messageProps.setContentEncoding(ensureStr8("content-encoding", encoding));
}
messageProps.setContentLength(size);
messageProps.setContentType(bodyMimeType);
byte[] userId = getUserIdAsBytes(serverMsg);
if (userId != null && userId.length <= MAX_VBIN16_LENGTH) {
messageProps.setUserId(ensureVBin16("user-id", userId));
}
final String origReplyTo = origHeader.getReplyTo();
if (origReplyTo != null && !origReplyTo.equals("")) {
messageProps.setReplyTo(getReplyTo(addressSpace, origReplyTo));
}
Map<String, Object> appHeaders = getApplicationHeaders(serverMsg);
messageProps.setApplicationHeaders(appHeaders);
Header header = new Header(deliveryProps, messageProps, null);
return new MessageMetaData_0_10(header, size, arrivalTime);
}
use of org.apache.qpid.server.protocol.v1_0.Message_1_0 in project qpid-broker-j by apache.
the class MessageConverter_1_0_to_v0_10Test method testDataWithStreamMessageAnnotationAndContentTypeJmsStreamMessage.
public void testDataWithStreamMessageAnnotationAndContentTypeJmsStreamMessage() throws Exception {
List<Object> originalList = Collections.singletonList("testValue");
byte[] data = new ListToJmsStreamMessage().toMimeContent(originalList);
String expectedMimeType = "jms/stream-message";
final Data value = new Data(new Binary(data));
Properties properties = new Properties();
properties.setContentType(Symbol.valueOf(expectedMimeType));
Message_1_0 sourceMessage = createTestMessage(properties, STREAM_MESSAGE_MESSAGE_ANNOTATION, value.createEncodingRetainingSection());
final MessageTransferMessage convertedMessage = _converter.convert(sourceMessage, mock(NamedAddressSpace.class));
assertEquals("Unexpected mime type", expectedMimeType, convertedMessage.getMessageHeader().getMimeType());
final QpidByteBuffer content = convertedMessage.getContent(0, (int) convertedMessage.getSize());
assertArrayEquals("Unexpected content", data, getBytes(content));
}
use of org.apache.qpid.server.protocol.v1_0.Message_1_0 in project qpid-broker-j by apache.
the class MessageConverter_1_0_to_v0_10Test method doTestDataWithAnnotation.
private void doTestDataWithAnnotation(final byte[] data, final MessageAnnotations messageAnnotations, final String expectedMimeType) throws Exception {
final Data value = new Data(new Binary(data));
Message_1_0 sourceMessage = createTestMessage(messageAnnotations, value.createEncodingRetainingSection());
final MessageTransferMessage convertedMessage = _converter.convert(sourceMessage, mock(NamedAddressSpace.class));
assertEquals("Unexpected mime type", expectedMimeType, convertedMessage.getMessageHeader().getMimeType());
final QpidByteBuffer content = convertedMessage.getContent();
assertArrayEquals("Unexpected content", data, getBytes(content));
}
use of org.apache.qpid.server.protocol.v1_0.Message_1_0 in project qpid-broker-j by apache.
the class MessageConverter_1_0_to_v0_10Test method testDataWithContentTypeAmqpMap.
public void testDataWithContentTypeAmqpMap() throws Exception {
Map<String, Object> originalMap = Collections.singletonMap("testKey", "testValue");
byte[] bytes = new MapToAmqpMapConverter().toMimeContent(originalMap);
final Data value = new Data(new Binary(bytes));
Properties properties = new Properties();
properties.setContentType(Symbol.valueOf("amqp/map"));
Message_1_0 sourceMessage = createTestMessage(properties, value.createEncodingRetainingSection());
final MessageTransferMessage convertedMessage = _converter.convert(sourceMessage, mock(NamedAddressSpace.class));
assertEquals("Unexpected mime type", "amqp/map", convertedMessage.getMessageHeader().getMimeType());
final QpidByteBuffer content = convertedMessage.getContent(0, (int) convertedMessage.getSize());
assertArrayEquals("Unexpected content", bytes, getBytes(content));
}
use of org.apache.qpid.server.protocol.v1_0.Message_1_0 in project qpid-broker-j by apache.
the class MessageConverter_1_0_to_v0_10Test method testAmqpSequenceWithSimpleTypes.
public void testAmqpSequenceWithSimpleTypes() throws Exception {
final List<Integer> expected = new ArrayList<>();
expected.add(37);
expected.add(42);
final AmqpSequence amqpSequence = new AmqpSequence(expected);
Message_1_0 sourceMessage = createTestMessage(amqpSequence.createEncodingRetainingSection());
final MessageTransferMessage convertedMessage = _converter.convert(sourceMessage, mock(NamedAddressSpace.class));
assertEquals("Unexpected mime type", "jms/stream-message", convertedMessage.getMessageHeader().getMimeType());
final QpidByteBuffer content = convertedMessage.getContent(0, (int) convertedMessage.getSize());
assertEquals("Unexpected content", expected, new JmsStreamMessageToList().toObject(getBytes(content)));
}
Aggregations