}
private MessageMetaData_1_0 convertMetaData(final MessageTransferMessage serverMessage)
{
List<Section> sections = new ArrayList<Section>(3);
final MessageProperties msgProps = serverMessage.getHeader().getMessageProperties();
final DeliveryProperties deliveryProps = serverMessage.getHeader().getDeliveryProperties();
Header header = new Header();
if(deliveryProps != null)
{
header.setDurable(deliveryProps.hasDeliveryMode() && deliveryProps.getDeliveryMode() == MessageDeliveryMode.PERSISTENT);
if(deliveryProps.hasPriority())
{
header.setPriority(UnsignedByte.valueOf((byte)deliveryProps.getPriority().getValue()));
}
if(deliveryProps.hasTtl())
{
header.setTtl(UnsignedInteger.valueOf(deliveryProps.getTtl()));
}
sections.add(header);
}
Properties props = new Properties();
if(msgProps != null)
{
// props.setAbsoluteExpiryTime();
if(msgProps.hasContentEncoding())
{
props.setContentEncoding(Symbol.valueOf(msgProps.getContentEncoding()));
}
if(msgProps.hasCorrelationId())
{
props.setCorrelationId(msgProps.getCorrelationId());
}
// props.setCreationTime();
// props.setGroupId();
// props.setGroupSequence();
if(msgProps.hasMessageId())
{
props.setMessageId(msgProps.getMessageId());
}
if(msgProps.hasReplyTo())
{
props.setReplyTo(msgProps.getReplyTo().getExchange()+"/"+msgProps.getReplyTo().getRoutingKey());
}
if(msgProps.hasContentType())
{
props.setContentType(Symbol.valueOf(msgProps.getContentType()));
// Modify the content type when we are dealing with java object messages produced by the Qpid 0.x client
if(props.getContentType() == Symbol.valueOf("application/java-object-stream"))
{
props.setContentType(Symbol.valueOf("application/x-java-serialized-object"));
}
}
// props.setReplyToGroupId();
props.setSubject(serverMessage.getRoutingKey());
// props.setTo();
if(msgProps.hasUserId())
{
props.setUserId(new Binary(msgProps.getUserId()));
}
sections.add(props);
if(msgProps.getApplicationHeaders() != null)
{
sections.add(new ApplicationProperties(msgProps.getApplicationHeaders()));
}
}
return new MessageMetaData_1_0(sections, _sectionEncoder);
}