From 3d87ce4f6a3b0f393b8ee5caa8c6aef41755aea4 Mon Sep 17 00:00:00 2001 From: Martin Ritchie Date: Wed, 31 Jan 2007 17:31:04 +0000 Subject: QPID-333 Message Properties on non Qpid Messages are not preserved Updated MessageConverter to have a constructor that takes a Message type. Updated MessageConverterTest to use the new NonQpidMessage to test it out. JMSHeaderAdapter.java - whitespace changes and comment noting that null return is required. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@501917 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/qpid/client/BasicMessageProducer.java | 4 +--- .../qpid/client/message/JMSHeaderAdapter.java | 22 +++++++++++----------- .../qpid/client/message/MessageConverter.java | 12 +++++++++++- 3 files changed, 23 insertions(+), 15 deletions(-) (limited to 'java/client/src/main') diff --git a/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java b/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java index 4426a7deee..f56fc40360 100644 --- a/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java +++ b/java/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java @@ -388,9 +388,7 @@ public class BasicMessageProducer extends Closeable implements org.apache.qpid.j } else { - //TODO; Do we really want to create an empty message here ? - newMessage = (AbstractJMSMessage) _session.createMessage(); - return new MessageConverter(newMessage).getConvertedMessage(); + newMessage = new MessageConverter(message).getConvertedMessage(); } if (newMessage != null) diff --git a/java/client/src/main/java/org/apache/qpid/client/message/JMSHeaderAdapter.java b/java/client/src/main/java/org/apache/qpid/client/message/JMSHeaderAdapter.java index 3086e5b90a..a1e2640f21 100644 --- a/java/client/src/main/java/org/apache/qpid/client/message/JMSHeaderAdapter.java +++ b/java/client/src/main/java/org/apache/qpid/client/message/JMSHeaderAdapter.java @@ -269,7 +269,7 @@ public final class JMSHeaderAdapter s = String.valueOf(o); } } - } + }//else return s // null; } return s; @@ -508,16 +508,16 @@ public final class JMSHeaderAdapter // JMS invalid names if ((propertyName.equals("NULL") - || propertyName.equals("TRUE") - || propertyName.equals("FALSE") - || propertyName.equals("NOT") - || propertyName.equals("AND") - || propertyName.equals("OR") - || propertyName.equals("BETWEEN") - || propertyName.equals("LIKE") - || propertyName.equals("IN") - || propertyName.equals("IS") - || propertyName.equals("ESCAPE"))) + || propertyName.equals("TRUE") + || propertyName.equals("FALSE") + || propertyName.equals("NOT") + || propertyName.equals("AND") + || propertyName.equals("OR") + || propertyName.equals("BETWEEN") + || propertyName.equals("LIKE") + || propertyName.equals("IN") + || propertyName.equals("IS") + || propertyName.equals("ESCAPE"))) { throw new IllegalArgumentException("Identifier '" + propertyName + "' is not allowed in JMS"); } diff --git a/java/client/src/main/java/org/apache/qpid/client/message/MessageConverter.java b/java/client/src/main/java/org/apache/qpid/client/message/MessageConverter.java index 58089f595b..f30b8ddc9d 100644 --- a/java/client/src/main/java/org/apache/qpid/client/message/MessageConverter.java +++ b/java/client/src/main/java/org/apache/qpid/client/message/MessageConverter.java @@ -25,7 +25,8 @@ import org.apache.log4j.Logger; import javax.jms.*; import java.util.Enumeration; -public class MessageConverter { +public class MessageConverter +{ /** * Log4J logger @@ -118,6 +119,15 @@ public class MessageConverter { setMessageProperties(message); } + public MessageConverter(Message message) throws JMSException + { + //TODO; Do we really want to create an empty message here ? + BytesMessage nativeMessage = new JMSBytesMessage(); + + _newMessage = (AbstractJMSMessage) nativeMessage; + setMessageProperties(message); + } + public AbstractJMSMessage getConvertedMessage() { return _newMessage; -- cgit v1.2.1