...
AMQP 0-8...0-9-1 message | AMQP 1-0 message | ||||||
---|---|---|---|---|---|---|---|
Property origin | Property name | type | Section name | Property name | Type | Comments | Implemented |
message property | delivery mode | octet | header | durable | boolean | true when 'delivery mode'=2, otherwise false | Y |
message property | priority | octet | header | priority | unsigned byte |
| Y |
message property | expiration | short-string | header | ttl | milliseconds/ulong | expiration - 'arrival-time' | Y |
message property | expiration | short-string | properties | absolute-expiry-time | timestamp |
| Y |
message property | content type | short-string | properties | content-type | symbol | value '"application/java-object-stream' changed to 'application/x-java-serialized-object' | Y |
message property | encoding | short-string | properties | content-encoding | symbol |
| Y |
message property | message id | short-string | properties | message-id | string | used to convert to binary in AMQP 1.0 | Y |
message property | correlation id | short-string | properties | correlation-id | string | used to convert to binary in AMQP 1.0 | Y |
message property | user id | short-string | properties | user-id | binary |
| Y |
message property | reply to | short-string | properties | reply-to | string | if binding url the value is changed to <exchange name>/<routing key> or <exchange_name>/<queue_name> or <exchange_name> or <queue name> or <routing key> depending on whether <exchange name>, <routing key> or <queue name> is specified. Original value if not a valid BURL. No address support. | Y |
message property | timestamp | timestamp | properties | creation-time | timestamp |
| Y |
message property | type | short-string | properties | subject | string | See JMS bindmap spec. setting "qpid.subject" in the message properties takes precedence over this. | Y |
message property | application id | short-string |
|
|
|
| N |
message property | cluster id | short-string |
|
|
|
| N |
message property | headers | field-table | application-properties | * | every entry except for 'qpid.subject' is put into application-properties as separate property. | Y | |
message property 'headers' | qpid.subject | short-string | properties | subject | string | This takes precedence over the message property "type". | Y |
message property 'headers' | JMSXGroupID | short-string | properties | group-id | string | see JMS bindmap | Y |
message property 'headers' | JMSXGroupSeq | int | properties | group-sequence | sequence number | see JMS bindmap | Y |
message delivery count | int | header | delivery-count | uint | dynamically set on sending | Y | |
message delivery count | int | header | first-acquirer | boolean |
| N | |
basic.publish | routing-key | short-string | properties | to | string | "to" property should be set to <exchange>/<routing-key> | Y |
basic.publish | exchange | short-string | properties | to | string | "to" property should be set to <exchange>/<routing-key> | Y |
basic.publish | mandatory | bit | N | ||||
basic.publish | immediate | bit | N | ||||
message property | content-type | short-string | message-annotations | x-opt-jms-msg-typ | string | N |
AMQP 0-8...0-9-1 message properties conversion into AMQP 0-10 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 |
| NY | ||
delivery-properties | redelivered | bit | header | first-acquirer | boolean |
| N | ||
delivery-properties | routing-key | str8 | properties | subjectto | string |
| NY | ||
delivery-properties | exchange | str8 | properties | to | string |
| NY | ||
delivery-properties | immediate | bit |
|
|
|
|
| ||
delivery-properties | discard-unroutable | bit |
|
| |||||
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 | binaryuuid |
| 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 | * | MessageConversionException is thrown when string or key is invalid | Y | |||
message-properties | content-length | uint64 |
|
|
|
|
| ||
message-properies headers | qpid.subject | str8 | properties | subject | string |
| Y | ||
message properies headers | JMSXGroupID | str8 | properties | group-id | string |
| N Y | ||
message properties headers | JMSXGroupSeq | int | properties | group-sequence | sequence number | N | Y | ||
message-properties | content-type | str8 | message-annotation | x-opt-jms-msg-type | string | N | |||
message-properties | application-headers['x-jms-type'] | str16 | properties | subject | string | ?Y |
AMQP 0-10 message properties conversion into AMQP 0-8...0-9-1 message properties
...
Issue description | Protocols |
---|---|
Missing Type conversion (decimal, uuid (0-10 --> 0-8...0-9-1)) | All |
Inaccurate Type conversion (unsigned types are converted into types (all), timestamps are converted into long (all), utf chars are converted into ascii chars, binary types are converted into signed (0-10)) | All |
Unsupported property key or value (uuid is unsupported in 0-8...0-9-1, decimal is unsupported in 0-10, etc) | All |
Missing conversion of message properties | All |
0-10 requires uuid type for message-id. As result, a conversion of non-0-10 message-id which is not UUID can not be done. This should not prevent the conversion of entire message. | non-0-10 --> 0-10 |
Conversion of application properties from AMQP 1-0 into AMQP 0-x headers (0-8...0-9-1 FieldTable and 0-10 map) when application properties length exceeds 255 character ( or contains non-ascii characters or start with illegal characters) | 1-0 --> 0-x |
Conversion of AMQP 0.x headers (represented as 0-8...0-9-1 FieldTable or 0-10 map) into AMQP 1-0 application properties when headers values are not primitives (for example, maps, collections, etc) | 0-x --> 1-0 |
Conversion of Map content from AMQP 1-0 into AMQP 0-x Map Message when keys are not strings | 1-0 --> 0-x |
JMS message type is changed when converted from AMQP 0.x into AMQP 1.0 (jms-type annotation is not set) | 0-x --> 1-0 |
JMS message type is changed when converted from AMQP 1-0 into AMQP 0.x (jms-type annotation is not respected) | 1-0 --> 0-x |
...