* @throws Exception
*/
public static com.jms.client.entity.Message convert(javax.jms.Message sourceMessage) throws Exception {
Validate.notNull(sourceMessage, "Message must not be null");
com.jms.client.entity.Message message = new Message();
Map<String, String> headers = JmsUtility.jmsHeadersAsMap(sourceMessage);
Map<String, String> properties = JmsUtility.jmsPropertiesAsMap(sourceMessage);
String body = JmsUtility.jmsMessageBodyAsString(sourceMessage);
String jmsMessageID = sourceMessage.getJMSMessageID();
String destinationName = JmsUtility.getDestinationName(sourceMessage.getJMSDestination());
String jmsType = sourceMessage.getJMSType();
long jmsTimestamp = sourceMessage.getJMSTimestamp();
int jmsDeliveryMode = sourceMessage.getJMSDeliveryMode();
MessageType messageType = JmsUtility.getMessageType(sourceMessage);
DestinationType destinationType = JmsUtility.getDestinationType(sourceMessage.getJMSDestination());
Calendar time = GregorianCalendar.getInstance();
time.setTimeInMillis(jmsTimestamp);
String headersString = StringFormatterHelper.formatMap(headers, "\n");
String propertiesString = StringFormatterHelper.formatMap(properties, "\n");
message.setHeaders(headersString);
message.setProperties(propertiesString);
message.setBody(body);
message.setJmsId(jmsMessageID);
message.setDestinationJmsType(jmsType);
message.setDestinationName(destinationName);
message.setDestinationType(destinationType);
message.setTimestamp(time);
message.setType(messageType);
message.setDeliveryMode(DeliveryMode.fromIndex(jmsDeliveryMode));
return message;
}