...
AMQP 1.0 Message | AMQP 0-8 Message | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
body section | body data type | annotation x-opt-jms-msg-type | content-type | content type | comments | |||||||
amqp-value | null | any | any | text/plain | ||||||||
string | any | any | text/plain | |||||||||
map | any | any | jms/map-message or amqp/map (0-10) | 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 | textapplication/plain | without a body | 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 | any | MessageConversionException | ||||||||||
- | other or not set | content types listed 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 | - | other | application/octet-stream | |||||||||
no body | N/A | 0 (Message) | any | text/plain | 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 | ||||||||||
other | any | MessageConversionException | ||||||||||
empty body | ||||||||||||
other or not set | - | content types listed in section 3.3.7 (Body Sections) of AMQP JMS Mapping specification (WD9) | text/plain | - | - | application/octet-stream | 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 | ||||||||||
other | text/plain | empty body |
At the moment the conversion into AMQP 1-0 might end-up in unexpected message types, for example, stream message can be received as object message and map message can be received as object message. It seems the same applies to conversion from AMQP 1-0 into AMQP 0-x
...