Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Conversion of message content from AMQP 0-8...0-10 into AMQP 1-0 is based on mime-type of the message (which is set as message property 'content-type'). Depending from mime-type the message content is converted into amqp:amqp-value or amqp:data formats. The table below contains the list of mime-types and corresponding AMQP 1-0 types. * is used to indicate any other mime type which is not listed in the table.

...

mime type

...

content type

...

text/plain

...

amqp:amqp-value containing string

...

text/xml

...

amqp:amqp-value containing string

...

jms/stream-message

...

...

jms/map-message

...

amqp:amqp-value containing map

...

amqp/list

...

amqp:amqp-value containing list

...

amqp/map

...

amqp:amqp-value containing map

...

*

...

amqp:data containing binary

Conversion of message content from AMQP 1-0 to AQMQP 0-x is based on the AMQP type used in AMQP 1-0 message

...

AMQP type

...

java type

...

Target mime-type

...

string

...

String

...

text/plain

...

list of primitive types (double,float,string,byte[],boolean,byte,short,int,long, char)

...

java.util.List

...

jms/stream-message

...

map with primitive value types (double,float,string,byte[],boolean,byte,short,int,long, char)

...

java.util.Map

...

jms/map-message

...

list

...

java.util.List

...

amqp/list

...

map

...

java.util.Map

...

amqp/map

...

binary

...

java.lang.Serializable

...

application/java-object-stream

...

binary

...

byte[]

...

application/octet-stream

...

 

AMQP 1.0 to AMQP 0-x

AMQP 1.0 MessageAMQP 0-x Message
body sectionbody data typeannotation x-opt-jms-msg-typecontent-typecontent typecomments
amqp-value



nullanyanysee commentthis case is treated identical to the case where there is no body section (see below)
stringanyanytext/plain 
mapanyanyjms/map-message or amqp/mapif keys' length<255 and values of simple types (string, boolean, double, float, binary(byte[]), null, byte, short, integer, long ), the  "jms/map-message " format is used. If keys' length<255 but non simple type value is used, than "amqp/map" format is used. Otherwise, MessageConversionException is thrown
listanyanyjms/stream-message
or amqp/list
if list items of simple types(string, boolean, double, float, byte[] (Binary), null, byte, short, integer, long ), otherwise conversion to "amqp/list" is attempted, otherwise MessageConversionException is thrown
otheranyany MessageConversionException is thrown
amqp-sequencesee commentsanyany

jms/stream-message
or amqp/list

if amqp-sequence section values of simple types(string, boolean, double, float, byte[] (Binary), null, byte, short, integer, long ), otherwise conversion to "amqp/list" is attempted, otherwise MessageConversionException is thrown
data






binary (bytes[])






0 (Message)anyapplication/octet-stream 
1 (ObjectMessage)anyapplication/java-object-stream 
2 (MapMessage)any

jms/map-message or amqp/map or application/octet-stream

 

The content types jms/map-message and amqp/map are preserved. Otherwise, application/octet-stream

3 (BytesMessage)anyapplication/octet-stream 
4 (StreamMessage)anyjms/stream-message or  amqp/list or application/octet-streamThe content types jms/stream-message or  amqp/list are preserved. Otherwise, application/octet-stream
5 (TextMessage)anytext/plain 
other or not set

content types listed as "common textual media types" in section 3.3.7 (Body Sections) of AMQP JMS Mapping specification (WD9)

text/plain 
jms/map-message or amqp/mapjms/map-message or amqp/mapthe content type is preserved on converted message
jms/stream-message or amqp/listjms/stream-message or amqp/listthe content type is preserved on converted message
application/x-java-serialized-object or application/java-object-streamapplication/java-object-stream 
other or not setapplication/octet-stream 
no body







N/A







0 (Message)anynot setempty body
1 (ObjectMessage)anyapplication/java-object-streambody will contain serialized null
2 (MapMessage)anyjms/map-messagebody will contain a serialized empty map
3 (BytesMessage)anyapplication/octet-streamempty body
4 (StreamMessage)anyjms/stream-messageempty body
5 (TextMessage)anytext/plainempty body
other or not setcontent types listed as "common textual media types" in section 3.3.7 (Body Sections) of AMQP JMS Mapping specification (WD9)text/plainempty body
jms/map-message or amqp/mapjms/map-messagebody will contain a serialized empty map
jms/stream-message or amqp/listjms/stream-messageempty body
application/x-java-serialized-object or application/java-object-streamapplication/java-object-streambody will contain serialized null
application/octet-streamapplication/octet-streamempty body
othernot set

empty body

...