Qpid Broker-J supports message conversion from one protocol into another. For example, when message is published with AMQP 0-9-1 and consumed using AMQP 1.0, the Broker takes care about converting the message from AMQP 0-9-1 format into AMQP 1.0. This page provides summary of how conversion from one protocol into another works.
Type conversion matrices
Various types can be used to set values of message properties and values in Map, List messages. The matrices below show how the types are converted. The red colour is used to highlight the types where conversion is unsupported yet. The orange/yellow colours are used to highlight the types for which conversion is implemented but the target type does not correspond to the original one even when protocol supports such type. The green colour is used to highlight the types where conversion is implemented into correct corresponding type on another protocol.
X - used to indicate the corresponding type to convert to
? - used to indicate the type which is currently used to convert
AMQP 0-8/0-9.x types conversion into AMQP 1.0 types
AMQP 0-9.1 type | JMS type | AMQP 1.0 types | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
null | boolean | ubyte | ushort | uint | ulong | byte | short | int | long | float | double | decimal32 | decimal64 | decimal128 | char | timestamp | uuid | binary | string | symbol | list | map | array | ||
short-string | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
long-string | String |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
field-array | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
field-table | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
float | float |
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
double | double |
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
void | null | X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
boolean | boolean |
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
byte (short-short-int) | byte |
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
short (short-int) | short |
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
integer (long-int) | int |
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
long (long-long-int) | long |
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
unsigned byte (short-short-uint) | - |
|
| X |
|
|
| ? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
unsigned short (short-uint) | - |
|
|
| X |
|
|
| ? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
unsigned integer (long-uint) | - |
|
|
|
| X |
|
|
| ? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
unsigned long (long-long-unit) | - |
|
|
|
|
| X |
|
|
| ? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
timestamp | - |
|
|
|
|
|
|
|
|
| ? |
|
|
|
|
|
| X |
|
|
|
|
|
|
|
decimal (decimal-value) |
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
| |
binary * | byte[]** |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
ascii string * | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
wide string * | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
ascii character * | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
* - types are not defined in 0-9.1/0-9/0-8 specifications
** - can be used as a Map message value. JMS does not allow using in values for message properties
AMQP 0-8/0-9.x types conversion into AMQP 0-10 types
AMQP 0-9.1 type | JMS type | AMQP 0-10 types | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
void | boolean | char | int8 | int16 | int32 | int64 | float | double | map | list | uuid | str16 | vbin32 | datetime | dec32 | dec64 | uint8 | uint16 | uint32 | uint64 | ||
short-string | - |
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
| |
long-string | String |
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
| |
field-array | - |
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
| |
field-table | - |
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
| |
float | float |
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
| |
double | double |
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
| |
void | null | X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
boolean | boolean |
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
byte (short-short-int) | byte |
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
short (short-int) | short |
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
integer (long-int) | integer |
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
long (long-long-int) | long |
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
| |
unsigned byte(short-short-uint) | - |
|
|
| ? |
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
| |
unsigned short (short-uint) | - |
|
|
|
| ? |
|
|
|
|
|
|
|
|
|
|
|
|
| X |
| |
unsigned integer (long-uint) | - |
|
|
|
|
| ? |
|
|
|
|
|
|
|
|
|
|
|
|
| X | |
unsigned long (long-long-unit) | - |
|
|
|
|
|
| ? |
|
|
|
|
|
|
|
|
|
|
|
|
| X |
timestamp | - |
|
|
|
|
|
| ? |
|
|
|
|
|
|
| X |
|
|
|
|
| |
decimal (decimal-value) | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
| |
binary * | byte[]** |
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
| |
ascii string * | - |
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
| |
wide string * | - |
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
| |
ascii character * | - |
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* - types are not defined in 0-9.1/0-9/0-8 specifications
** - byte[] can be used as a Map message value. JMS does not allow using in values for message properties
AMQP 0-10 types conversion into AMQP 0-8/0-9.x
0-10 defines the following mandatory types: uint8, uint16, uint32, sequence-no, uint64, datetime, uuid, vbin8, str8, vbin16, str16, byte-ranges, sequence-set, vbin32,map, array, struct32, bit.
AMQP 0-10 type
| JMS Type | AMQP 0-9.1 types | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
short-string | long-string | timestamp | field-array | field-table | float | double | decimal | void | boolean | byte | unsigned byte | short | unsigned short | int | unsigned int | long | unsigned long | binary | ascii str | wide str | ascii char | ||
bin8 | - |
|
|
|
|
|
|
|
|
|
|
|
| ? |
|
|
|
|
| X |
|
|
|
int8 | byte |
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
uint8 | - |
|
|
|
|
|
|
|
|
|
|
| X | ? |
|
|
|
|
|
|
|
|
|
char | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
boolean | boolean |
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
bin16 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
| ? |
|
|
| X |
|
|
|
int16 | short |
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
uint16 | - |
|
|
|
|
|
|
|
|
|
|
|
|
| X | ? |
|
|
|
|
|
|
|
bin32 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ? |
| X |
|
|
|
int32 | int |
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
uint32 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X | ? |
|
|
|
|
|
float | float |
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
char-utf32 | - |
| X*** |
|
|
|
|
|
|
|
|
|
|
|
| ? |
|
|
|
|
|
| |
sequence-no | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
bin64 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ? |
| X |
|
|
|
int64 | long |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
uint64 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ? | X |
|
|
|
|
double | double |
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
datetime | - |
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
| ? |
|
|
|
|
|
bin128 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
uuid ** | - | X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bin256 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
bin512 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
bin1024 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
bin40 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
dec32 | - |
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
| ? |
|
|
|
bin72 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
dec64 | - |
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
| X |
|
|
|
void | null |
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
bit | - |
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
| ? |
|
|
|
vbin8 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
str8-latin | - | X | ? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
str8 | - |
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
str8-utf16 | - |
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vbin16 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
str16-latin | - |
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
str16 | - |
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
str16-utf16 | String |
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
byte-ranges | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
sequence-se | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
vbin32 | byte[] **** |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
map | - |
|
|
|
| X* |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
list | - |
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
array | - |
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct32 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
* - the type of keys in AMQP 0-10 map is utf8 encoded str8 whilst earlier protocols's FiledTable key type is short-string which allows only ASCII characters. Thus, conversion of UTF characters into ASCII characters would change the keys.
** - UUID type is unsupported by AMQP 0-8/0-9.x. An exception is thrown on attempt to convert. Should it be converted into short string?
*** - there is no corresponding type in AMQP 0-8..0-9.x. Thus, the most appropriate type for conversion UTF32 char is long-string.
**** - byte[] can be used as a Map message value. JMS does not allow using in values for message properties
AMQP 0-10 types conversion into AMQP 1.0 types
AMQP 0-10 type | JMS Type | AMQP 1.0 types | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
null | boolean | ubyte | ushort | uint | ulong | byte | short | int | long | float | double | decimal32 | decimal64 | decimal128 | char | timestamp | uuid | binary | string | symbol | list | map | array | ||
bin8 | - |
|
|
|
|
|
|
| ? |
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
int8 | byte |
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
uint8 | - |
|
| X |
|
|
|
| ? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
char | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
boolean | boolean |
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bin16 | - |
|
|
|
|
|
|
|
| ? |
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
int16 | short |
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
uint16 | - |
|
|
| X |
|
|
|
| ? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bin32 | - |
|
|
|
|
|
|
|
|
| ? |
|
|
|
|
|
|
|
| X |
|
|
|
|
|
int32 | int |
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
uint32 | - |
|
|
|
| X |
|
|
|
| ? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
float | float |
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
char-utf32 | - |
|
|
|
|
|
|
|
| ? |
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
sequence-no | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
bin64 | - |
|
|
|
|
|
|
|
|
| ? |
|
|
|
|
|
|
|
| X |
|
|
|
|
|
int64 | long |
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
uint64 | - |
|
|
|
|
| X |
|
|
| ? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
double | double |
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
datetime | - |
|
|
|
|
|
|
|
|
| ? |
|
|
|
|
|
| X |
|
|
|
|
|
|
|
bin128 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
uuid | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
bin256 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
bin512 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
bin1024 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
bin40 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
dec32 | - |
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
| ? |
|
|
|
|
|
bin72 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
dec64 | - |
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
| ? |
|
|
|
|
|
void | null | X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bit | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
vbin8 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
str8-latin | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
str8 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
str8-utf16 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
vbin16 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
str16-latin | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
str16 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
str16-utf16 | String |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
byte-ranges | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
sequence-se | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
vbin32 | byte[] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
map | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
list | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
array | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
struct32 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
AMQP 1-0 types conversion into AMQP 0-8/0-9.x
AMQP 1-0 type | JMS type | AMQP 0-9.1 types | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
short-string | long-string | timestamp | field-array | field-table | float | double | decimal | void | boolean | byte | ubyte | short | ushort | int | uint | long | ulong | binary | ascii str | wide str | ascii char | ||
null | null |
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
boolean | boolean |
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
ubyte | - |
|
|
|
|
|
|
|
|
|
|
| X | ? |
|
|
|
|
|
|
|
|
|
ushort | - |
|
|
|
|
|
|
|
|
|
|
|
|
| X | ? |
|
|
|
|
|
|
|
uint | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X | ? |
|
|
|
|
|
ulong | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ? | X |
|
|
|
|
byte | byte |
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
short | short |
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
int | int |
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
long | long |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
float | float |
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
double | double |
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
decimal32 | - |
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
decimal64 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
decimal128 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
char | - |
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ? **** |
timestamp | - |
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
| ? |
|
|
|
|
|
uuid *** | - | X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
binary | byte[] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
string | String |
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
symbol | - |
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
list | - |
|
|
| X** |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
map | - |
|
|
|
| X * |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
array | - |
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* - 1.0 map allows any type in keys whilst 0-8...0-9-1 FiledTable type only allows short-strings as key type. For string keys with length greater than 256, an exception is thrown on conversion.
** - list in AMQP 1.0 is a sequence of polymorphic values valued FieldArray is not.
*** - UUID type is unsupported by AMQP 0-8/0-9.x. An exception is thrown on attempt to convert. Should it be converted into short string?
**** - char in 1-0 is a UTF-32BE encoded unicode character but char in 0-10 is an octet. Should it be converted into string?
AMQP 1-0 types conversion into AMQP 0-10 types
AMQP 1-0 type | JMS type | AMQP 0-10 types | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
void | boolean | char | char-utf32 | int8 | int16 | int32 | int64 | float | double | map | list | uuid | str16 | vbin32 | datetime | dec32 | dec64 | uint8 | uint16 | uint32 | unit64 | ||
null | null | X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||
boolean | boolean |
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||
ubyte | - |
|
|
| ? |
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
| ||
ushort | - |
|
|
|
| ? |
|
|
|
|
|
|
|
|
|
|
|
|
| X |
| ||
uint | - |
|
|
|
|
| ? |
|
|
|
|
|
|
|
|
|
|
|
|
| X | ||
ulong | - |
|
|
|
|
|
| ? |
|
|
|
|
|
|
|
|
|
|
|
|
| X | |
byte | byte |
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||
short | short |
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||
int | int |
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||
long | long |
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
|
| ||
float | float |
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
|
| ||
double | double |
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
|
| ||
decimal32 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
| ||
decimal64 | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
| ||
decimal128 | - |
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
| ||
char | - |
|
| ? | X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
timestamp | - |
|
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
| ? | |
uuid | - |
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
| ||
binary | byte[] |
|
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
| ||
string | String |
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
| ||
symbol | - |
|
|
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
| ||
list | - |
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
| ||
map | - |
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
| ||
array | - |
|
|
|
|
|
|
|
|
|
| X |
|
|
|
|
|
|
|
|
|
Message properties conversion matrices
AMQP 0-8..0-9-1 message properties conversion into AMQP 1-0 message properties
AMQP 0-8..0-9-1 message | AMQP 1-0 message | Implemented
| ||||||
---|---|---|---|---|---|---|---|---|
Property origin | Property name | Bit | type | Section name | Property name | Type | Comments | |
message propery | delivery mode | 12 | unsigned byte | header | durable | boolean | true when 'delivery mode'=2, otherwise false | Y |
message propery | priority | 11 | unsigned byte | header | priority | unsigned byte |
| Y |
message propery | expiration | 8 | short-string | header | ttl | milliseconds/ulong | expiration - 'arrival-time' | Y |
message propery | expiration | 8 | short-string | header | absolute-expiry-time | timestamp /ulong |
| Y |
message propery | content type | 15 | short-string | properties | content-type | symbol | value '"application/java-object-stream' changed to 'application/x-java-serialized-object' | Y |
message propery | encoding | 14 | short-string | properties | content-encoding | symbol | only 'gzip' encoding is stored, null otherwise | Y |
message propery | message id | 7 | short-string | properties | message-id | binary |
| Y |
message propery | correlation id | 10 | short-string | properties | correlation-id | binary |
| Y |
message propery | user id | 4 | short-string | properties | user-id | binary |
| Y |
message propery | reply to | 9 | short-string | properties | reply-to | string | if binding url the value is changed to <exchange name>/<routing key> or <queue name> or <routing key> if either <exchange name>, <routing key> or <queue name> is sepcified, otherwise original value. No address support. | Y |
message propery | timestamp | 6 | long | properties | creation-time | timestamp /ulong |
| N |
message propery | type | 5 | short-string | message-annotation | x-opt-jms-type | string |
| N |
message propery | application id | 3 | short-string | application-properties | application-id | string |
| N |
message propery | cluster id | 2 | short-string | application-properties | cluster-id | string |
| N |
message propery | headers | 13 | field-table | application-properties | every entry except for 'qpid.subject' is put into application-properties as separate property. | Y | ||
message propery headers | qpid.subject | short-string | properties | subject | string |
| Y | |
message propery headers | JMSXGroupID | short-string | properties | group-id | string |
| N | |
message propery headers | JMSXGroupSeq | int | properties | group-sequence | sequence number |
| N | |
message delivery count | int | header | delivery-count | uint | dynamically set on sending | Y | ||
message delivery count | int | header | first-acquirer | boolean | dynamically set on sending | Y | ||
basic.publish | routing-key | short-string | properties | subject | string |
| Y | |
basic.publish | exchange | short-string | properties | to | string | Should it be included into 'properties->to' in a |
AMQP 0-8..0-9-1 message properties conversion into AMQP 0-10 message properties
AMQP 0-8..0-9-1 message | AMQP 0-10 message | Implemeneted | ||||||
---|---|---|---|---|---|---|---|---|
Property origin | Property name | Bit | type | Header entry | Property name | Type | Comments | |
message propery | delivery mode | 12 | unsigned byte | delivery-properties | delivery-mode | uint8 |
| N |
message propery | priority | 11 | unsigned byte | delivery-properties | priority | uint8 |
| Y |
message propery | expiration | 8 | short-string | delivery-properties | expiration | datetime | dynamically set on sending | Y |
message propery | expiration | 8 | short-string | delivery-properties | ttl | uint64 |
| Y |
message propery | timestamp | 6 | long | delivery-properties | timestamp | datetime |
| Y |
message propery | content type | 15 | short-string | message-properties | content-type | str8 |
| Y |
message propery | encoding | 14 | short-string | message-properties | content-encoding | str8 |
| Y |
message propery | message id | 7 | short-string | message-properties | message-id | uuid | removes 'ID:', if value cannpt be converted into uuid, null is used . Is it correct? | Y |
message propery | correlation id | 10 | short-string | message-properties | correlation-id | vbin16 |
| Y |
message propery | user id | 4 | short-string | message-properties | user-id | vbin16 |
| Y |
message propery | reply to | 9 | short-string | message-properties | reply-to | reply-to |
| Y |
message propery | application id | 3 | short-string | message-properties | app-id | vbin16 |
| Y |
message propery | headers | 13 | field-table | message-properties | application-headers | map |
| Y |
message propery | type | 5 | short-string | message-properties | application-headers['x-jms-type'] | str8 |
| Y |
message content | long | message-properties | content-length | uint64 |
| Y | ||
entry delivery count | int | delivery-properties | redelivered | bit | dynamically set on sending | Y | ||
basic.publish | routing-key | short-string | delivery-properties | routing-key | str8 |
| Y | |
basic.publish | exchange | short-string | delivery-properties | exchange | str8 |
| Y | |
basic.publish | immediate | bit | delivery-properties | immediate | bit |
| Y | |
basic.publish | mandatory | bit | delivery-properties | discard-unroutable | bit |
| N |
AMQP 0-10 message properties conversion into AMQP 1-0 message properties
AMQP 0-10 message | AMQP 1-0 message | Implemented
| |||||
---|---|---|---|---|---|---|---|
Property origin | Property name | Type | Section name | Property name | Type | Comments | |
delivery-properties | delivery-mode | uint8 | header | durable | unsigned byte |
| Y |
delivery-properties | priority | uint8 | header | priority | unsigned byte |
| Y |
delivery-properties | ttl | uint64 | header | ttl | milliseconds/ulong |
| Y |
delivery-properties | expiration | datetime | header | absolute-expiry-time | timestamp /ulong |
| Y |
delivery-properties | timestamp | datetime | properties | creation-time | timestamp /ulong |
| N |
delivery-properties | redelivered | bit | header | first-acquirer | boolean |
| N |
delivery-properties | routing-key | str8 | properties | subject | string |
| N |
delivery-properties | exchange | str8 | properties | to | string |
| N |
delivery-properties | immediate | bit |
|
|
|
|
|
delivery-properties | discard-unroutable | bit | header | first-acquirer | boolean |
| N |
message-properties | content-type | str8 | properties | content-type | symbol | "application/java-object-stream" replaced with "application/x-java-serialized-object" | Y |
message-properties | content-encoding | str8 | properties | content-encoding | symbol |
| Y |
message-properties | message-id | uuid | properties | message-id | binary |
| Y |
message-properties | correlation-id | vbin16 | properties | correlation-id | binary |
| Y |
message-properties | user-id | vbin16 | properties | user-id | binary |
| Y |
message-properties | reply-to | reply-to | properties | reply-to | string |
| Y |
message-properties | app-id | vbin16 | application-properties | application-id | string |
| N |
message-properties | application-headers | map | application-properties |
| Y | ||
message-properties | content-length | uint64 |
|
|
|
|
|
message-properies headers | qpid.subject |
| properties | subject | string | Y | |
message properies headers | JMSXGroupID | str | properties | group-id | string | N | |
message properties headers | JMSXGroupSeq | int | properties | group-sequence | sequence number | N |
AMQP 0-10 message properties conversion into AMQP 0-8..0-9-1 message properties
AMQP 0-10 message | AMQP 0-9 message | Implemented
| |||||
---|---|---|---|---|---|---|---|
Property origin | Property name | Type | Section name | Property name | Type | Comments | |
delivery-properties | delivery-mode | uint8 | message propery | delivery mode | boolean | true when 'delivery mode'=2, otherwise false | Y |
delivery-properties | priority | uint8 | message propery | priority | unsigned byte |
| Y |
delivery-properties | ttl | uint64 | message propery | expiration | short-string |
| Y |
delivery-properties | timestamp | datetime | message propery | timestamp | long |
| N |
delivery-properties | redelivered | bit | header | first-acquirer | boolean |
| N |
delivery-properties | routing-key | str8 | properties | subject | string |
| N |
delivery-properties | exchange | str8 | properties | to | string |
| N |
delivery-properties | immediate | bit |
|
|
|
|
|
delivery-properties | discard-unroutable | bit | header | first-acquirer | boolean |
| N |
message-properties | content-type | str8 | message propery | content type | short-string |
| Y |
message-properties | content-encoding | str8 | message propery | encoding | short-string |
| Y |
message-properties | message-id | uuid | message propery | message id | short-string |
| Y |
message-properties | correlation-id | vbin16 | message propery | correlation id | short-string |
| Y |
message-properties | user-id | vbin16 | message propery | user id | short-string |
| Y |
message-properties | reply-to | reply-to | message propery | reply to | short-string |
| Y |
message-properties | app-id | vbin16 | application-properties | application-id | string |
| N |
message-properties | application-headers | map | application-properties |
| Y | ||
message-properties | content-length | uint64 |
|
|
|
|
|
message-properies headers | qpid.subject | str | properties | subject | string |
| Y |
message properies headers | JMSXGroupID | str | properties | group-id | string |
| N |
message properties headers | JMSXGroupSeq | int | properties | group-sequence | sequence number |
| N |
AMQP 1-0 message properties conversion into AMQP 0-8..0-9-1 message properties
AMQP 1-0 message | AMQP 0-8..0-9-1 message |
|
|
|
| Implemented
| ||
---|---|---|---|---|---|---|---|---|
Section name | Property name | Type | Properties | Property name | Bit | Type | Comments | |
header | durable | boolean | message propery | delivery mode | 12 | unsigned byte |
| Y |
header | priority | unsigned byte | message propery | priority | 11 | unsigned byte |
| Y |
header | ttl | milliseconds/ulong | message propery | expiration | 8 | short-string |
| Y |
header | absolute-expiry-time | timestamp /ulong |
|
|
|
|
|
|
header | delivery-count | uint |
|
|
|
|
|
|
header | first-acquirer | boolean |
|
|
|
|
|
|
properties | content-type | symbol | message propery | content type | 15 | short-string |
| Y |
properties | content-encoding | symbol | message propery | encoding | 14 | short-string |
| Y |
properties | message-id | binary | message propery | message id | 7 | short-string |
| Y |
properties | correlation-id | binary | message propery | correlation id | 10 | short-string |
| Y |
properties | user-id | binary | message propery | user id | 4 | short-string |
| Y |
properties | reply-to | string | message propery | reply to | 9 | short-string |
| Y |
properties | creation-time | timestamp /ulong | message propery | timestamp | 6 | long |
| N |
properties | subject | string | message propery headers | qpid.subject | short-string |
| N | |
properties | group-id | string | message propery headers | JMSXGroupID | short-string |
| N | |
properties | group-sequence | sequence number | message propery headers | JMSXGroupSeq | int |
| N | |
properties | to | string |
|
|
|
| exchange/routing-key | N |
application-properties | application-id | string |
|
|
|
|
| N |
application-properties | cluster-id | string |
|
|
|
|
| N |
application-properties |
|
| message propery | headers | 13 | fieldtable |
| Y |
message-annotation | x-opt-jms-type | string | message propery | type | 5 | short-string |
| Y |
AMQP 1-0 message properties conversion into AMQP 0-10 message properties
AMQP 1-0 message | AMQP 0-10 message | Implemented
| |||||
---|---|---|---|---|---|---|---|
Section name | Property name | Type | Property segment | Property name | type | Comments | |
header | durable | boolean | delivery-properties | delivery-mode | uint8 |
| Y |
header | priority | unsigned byte | delivery-properties | priority | uint8 |
| Y |
header | ttl /absolute-expiry-time | milliseconds/ulong | delivery-properties | ttl | uint64 |
| Y |
properties | content-type | symbol | message-properties | content-type | str8 |
| Y |
properties | content-encoding | symbol | message-properties | content-encoding | str8 |
| Y |
properties | message-id | binary | message-properties | message-id | uuid |
| Y |
properties | correlation-id | binary | message-properties | correlation-id | vbin16 |
| Y |
properties | user-id | binary | message-properties | user-id | vbin16 |
| Y |
properties | reply-to | string | message-properties | reply-to | reply-to |
| Y |
properties | creation-time | timestamp /ulong | delivery-properties | timestamp | datetime |
| N |
properties | subject | string | message-properies | headersqpid.subject |
|
| N |
properties | group-id | string | message-properies | headersJMSXGroupID |
|
| N |
properties | group-sequence | sequence number | message properies | headersJMSXGroupSeq |
|
| N |
properties | to | string | delivery-properties | exchange | str8 |
| N |
properties | to | string | delivery-properties | routing-key | str8 |
| N |
application-properties | - | map | message-properties | application-headers | map |
| Y |
content | delivery-properties | content-length |
|
| Y |
Message types conversion matrices
TODO
.