Sorry for the late reply. I did notice this a few days ago when
debugging for an unrelated issue.
However reading the JMS API doc, it seems the 'type' has a different
meaning than merely content-type.
In other words a particular type of message could support several content-types.
For example "text/plain", "text/html" and "text/xml" could be valid
content-types for a particular message "type".
Therefore I believe we should do the following.
1) If an application sets a value using setJMSType, then we carry it
using "x-jms-type" and allow it be retrieve on the consumer side using
getJMSType (if the consumer is a jms application).
2) Use "x-amqp-0-10.content-type" to get/set the content type.
Since content type is really not tied to particular AMQP version
we could use "x-amqp.content-type" instead. This gives a clear
indication that the content type will be set in the underlying AMQP
message.
Regards,
Rajith
On Thu, Jul 21, 2011 at 4:33 PM, Matt Stevenson
<[email protected]> wrote:
> The "x-jms-type" header looks like some sort of placeholder. I couldn't
> find it in the specs or used by other projects.
> This can easily be fixed by having get/setJMSType(..) call
> get/setContentType(..) in AMQMessageDelegate_0_10.java.
>
> Should I submit a patch?
>
> On Thu, Jul 21, 2011 at 12:32 PM, Gordon Sim <[email protected]> wrote:
>
>> On 07/21/2011 08:48 AM, Matt Stevenson wrote:
>>
>>> Hi,
>>>
>>> I'm sending a BytesMessage from Java to C++ and I ran into a little
>>> trouble
>>> with content type.
>>> In my Java client code I am using a javax.jms.BytesMessage from the
>>> geronimo-jms_1.1 library.
>>> The BytesMessage only has methods for get/setJMSType( ), and not
>>> get/setContentType( ).
>>> If I set the JMSType in Java, it does not change the contentType in C++.
>>>
>>> I can work around this by casting the BytesMessage to a qpid
>>> JMSBytesMessage. Then I can use setContentType( ), which shows up on on
>>> the
>>> C++ side.
>>>
>>> From the documentation I was expecting setJMSType to set the contentType.
>>>>
>>> Looking at the code, it sets the "x-jms-type" message header.
>>>
>>> Should setJMSType actually set the contentType?
>>>
>>
>> That does sound reasonable to me.
>>
>> ------------------------------**------------------------------**---------
>> Apache Qpid - AMQP Messaging Implementation
>> Project: http://qpid.apache.org
>> Use/Interact:
>> mailto:users-subscribe@qpid.**apache.org<[email protected]>
>>
>>
>
>
> --
> Matt Stevenson.
>
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]