...
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 Message | AMQP 0-x Message | ||||
---|---|---|---|---|---|
body section | body data type | annotation x-opt-jms-msg-type | content-type | content type | comments |
amqp-value | null | any | any | see comment | this case is treated identical to the case where there is no body section (see below) |
string | any | any | text/plain | ||
map | any | any | jms/map-message or amqp/map | if 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 | |
list | any | any | jms/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 | |
other | any | any | MessageConversionException is thrown | ||
amqp-sequence | see comments | any | any | jms/stream-message | 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) | any | application/octet-stream | |
1 (ObjectMessage) | any | application/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) | any | application/octet-stream | |||
4 (StreamMessage) | any | jms/stream-message or amqp/list or application/octet-stream | The content types jms/stream-message or amqp/list are preserved. Otherwise, application/octet-stream | ||
5 (TextMessage) | any | text/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/map | jms/map-message or amqp/map | the content type is preserved on converted message | |||
jms/stream-message or amqp/list | jms/stream-message or amqp/list | the content type is preserved on converted message | |||
application/x-java-serialized-object or application/java-object-stream | application/java-object-stream | ||||
other or not set | application/octet-stream | ||||
no body | N/A | 0 (Message) | any | not set | empty body |
1 (ObjectMessage) | any | application/java-object-stream | body will contain serialized null | ||
2 (MapMessage) | any | jms/map-message | body will contain a serialized empty map | ||
3 (BytesMessage) | any | application/octet-stream | empty body | ||
4 (StreamMessage) | any | jms/stream-message | empty body | ||
5 (TextMessage) | any | text/plain | empty body | ||
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 | empty body | ||
jms/map-message or amqp/map | jms/map-message | body will contain a serialized empty map | |||
jms/stream-message or amqp/list | jms/stream-message | empty body | |||
application/x-java-serialized-object or application/java-object-stream | application/java-object-stream | body will contain serialized null | |||
application/octet-stream | application/octet-stream | empty body | |||
other | not set | empty body |
...