use of org.apache.qpid.server.protocol.v0_10.transport.Header in project qpid-broker-j by apache.
the class PropertyConverter_Internal_to_v0_10Test method testReplyToConversionWhenExchangeAndRoutingKeyAreSpecified.
public void testReplyToConversionWhenExchangeAndRoutingKeyAreSpecified() throws IOException {
final AMQMessageHeader header = mock(AMQMessageHeader.class);
final String exchangeName = "testExchnageName";
final String routingKey = "testRoutingKey";
final String replyTo = String.format("%s/%s", exchangeName, routingKey);
final Exchange exchange = mock(Exchange.class);
when(exchange.getName()).thenReturn(exchangeName);
when(_addressSpace.getAttainedMessageDestination(exchangeName)).thenReturn(exchange);
when(header.getReplyTo()).thenReturn(replyTo);
InternalMessage originalMessage = createTestMessage(header);
MessageTransferMessage convertedMessage = _messageConverter.convert(originalMessage, _addressSpace);
final ReplyTo convertedReplyTo = convertedMessage.getHeader().getMessageProperties().getReplyTo();
assertEquals("Unexpected exchange", exchangeName, convertedReplyTo.getExchange());
assertEquals("Unexpected routing key", routingKey, convertedReplyTo.getRoutingKey());
}
use of org.apache.qpid.server.protocol.v0_10.transport.Header in project qpid-broker-j by apache.
the class PropertyConverter_Internal_to_v0_10Test method testReplyToConversionWhenExchangeIsSpecified.
public void testReplyToConversionWhenExchangeIsSpecified() throws IOException {
final AMQMessageHeader header = mock(AMQMessageHeader.class);
final String replyTo = "myTestExchange";
final Exchange exchange = mock(Exchange.class);
when(exchange.getName()).thenReturn(replyTo);
when(_addressSpace.getAttainedMessageDestination(replyTo)).thenReturn(exchange);
when(header.getReplyTo()).thenReturn(replyTo);
InternalMessage originalMessage = createTestMessage(header);
MessageTransferMessage convertedMessage = _messageConverter.convert(originalMessage, _addressSpace);
final ReplyTo convertedReplyTo = convertedMessage.getHeader().getMessageProperties().getReplyTo();
assertEquals("Unexpected exchange", replyTo, convertedReplyTo.getExchange());
assertEquals("Unexpected routing key", "", convertedReplyTo.getRoutingKey());
}
use of org.apache.qpid.server.protocol.v0_10.transport.Header in project qpid-broker-j by apache.
the class PropertyConverter_Internal_to_v0_10Test method testReplyToConversionWhenReplyToCannotBeResolved.
public void testReplyToConversionWhenReplyToCannotBeResolved() throws IOException {
final AMQMessageHeader header = mock(AMQMessageHeader.class);
final String replyTo = "direct://amq.direct//test?routingkey='test'";
when(header.getReplyTo()).thenReturn(replyTo);
InternalMessage originalMessage = createTestMessage(header);
MessageTransferMessage convertedMessage = _messageConverter.convert(originalMessage, _addressSpace);
final ReplyTo convertedReplyTo = convertedMessage.getHeader().getMessageProperties().getReplyTo();
assertEquals("Unexpected exchange", "", convertedReplyTo.getExchange());
assertEquals("Unexpected routing key", replyTo, convertedReplyTo.getRoutingKey());
}
use of org.apache.qpid.server.protocol.v0_10.transport.Header in project qpid-broker-j by apache.
the class MessageConverter_Internal_to_v0_10 method convertMetaData.
private MessageMetaData_0_10 convertMetaData(final InternalMessage serverMsg, final NamedAddressSpace addressSpace, final String bodyMimeType, final int size) {
DeliveryProperties deliveryProps = new DeliveryProperties();
MessageProperties messageProps = new MessageProperties();
deliveryProps.setDeliveryMode(serverMsg.isPersistent() ? MessageDeliveryMode.PERSISTENT : MessageDeliveryMode.NON_PERSISTENT);
long expiration = serverMsg.getExpiration();
if (expiration > 0) {
deliveryProps.setExpiration(expiration);
deliveryProps.setTtl(Math.max(0, expiration - serverMsg.getArrivalTime()));
}
InternalMessageHeader messageHeader = serverMsg.getMessageHeader();
deliveryProps.setPriority(MessageDeliveryPriority.get(messageHeader.getPriority()));
convertToAndInitialRoutingKey(serverMsg, deliveryProps, addressSpace);
deliveryProps.setTimestamp(messageHeader.getTimestamp());
messageProps.setContentEncoding(ensureStr8("content-encoding", messageHeader.getEncoding()));
messageProps.setContentLength(size);
messageProps.setContentType(bodyMimeType);
if (messageHeader.getCorrelationId() != null) {
messageProps.setCorrelationId(ensureVBin16("correlation-id", messageHeader.getCorrelationId().getBytes(UTF_8)));
}
validateValue(messageHeader.getHeaderMap(), "application-headers");
messageProps.setApplicationHeaders(messageHeader.getHeaderMap());
String messageIdAsString = messageHeader.getMessageId();
if (messageIdAsString != null) {
try {
if (messageIdAsString.startsWith("ID:")) {
messageIdAsString = messageIdAsString.substring(3);
}
messageProps.setMessageId(UUID.fromString(messageIdAsString));
} catch (IllegalArgumentException iae) {
// ignore message id is not a UUID
}
}
String userId = messageHeader.getUserId();
if (userId != null) {
byte[] bytes = userId.getBytes(UTF_8);
if (bytes.length <= MAX_VBIN16_LENGTH) {
messageProps.setUserId(bytes);
}
}
final String origReplyTo = messageHeader.getReplyTo();
if (origReplyTo != null && !origReplyTo.equals("")) {
messageProps.setReplyTo(getReplyTo(addressSpace, origReplyTo));
}
Header header = new Header(deliveryProps, messageProps, null);
return new MessageMetaData_0_10(header, size, serverMsg.getArrivalTime());
}
use of org.apache.qpid.server.protocol.v0_10.transport.Header in project qpid-broker-j by apache.
the class MessageConverter_v0_10_to_Internal method convertHeader.
private AMQMessageHeader convertHeader(final MessageTransferMessage serverMessage, final NamedAddressSpace addressSpace, final Object convertedBodyObject, final String encoding) {
final String convertedMimeType = getInternalConvertedMimeType(serverMessage, convertedBodyObject);
final AMQMessageHeader messageHeader = serverMessage.getMessageHeader();
Map<String, Object> headers = new HashMap<>();
messageHeader.getHeaderNames().forEach(headerName -> headers.put(headerName, messageHeader.getHeader(headerName)));
final InternalMessageHeader header = new InternalMessageHeader(headers, messageHeader.getCorrelationId(), messageHeader.getExpiration(), messageHeader.getUserId(), messageHeader.getAppId(), messageHeader.getMessageId(), convertedMimeType, messageHeader.getEncoding(), messageHeader.getPriority(), messageHeader.getTimestamp(), messageHeader.getNotValidBefore(), messageHeader.getType(), messageHeader.getReplyTo(), serverMessage.getArrivalTime());
MessageProperties messageProps = serverMessage.getHeader().getMessageProperties();
final ReplyTo replyTo = messageProps == null ? null : messageProps.getReplyTo();
return new DelegatingMessageHeader(header, replyTo, encoding);
}
Aggregations