...
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/properties | ttl /absolute-expiry-time | milliseconds/ulong | delivery-properties | ttl | uint64 |
| Y | |||||||
header/properties | ttl /absolute-expiry-time | milliseconds/ulong | delivery-properties | expiration | datetime | Y | ||||||||
properties | content-type | symbol | message-properties | content-type | str8 |
| TODO | |||||||
properties | content-encoding | symbol | message-properties | content-encoding | str8 | Throw MCE if conversion to str8 fails | Y | |||||||
properties | message-id | binary, uuid, ulong, string | message-properties | message-id | uuid | When converting from string direct conversion to UUID is attempted. If that fails a type 3 UUID is created. When converting from non-UUID a type 3 UUID is created from the source bytes. | Y | |||||||
properties | correlation-id | binary, uuid, ulong, string | message-properties | correlation-id | vbin16 | Throw MCE if conversion to vbin16 fails | Y | |||||||
properties | user-id | binary | message-properties | user-id | vbin16 | if conversion to vbin16 fails do not set this field | Y | |||||||
properties | reply-to | string | message-properties | reply-to | reply-to | Throw MCE if conversion of exchange or routingKey to str8 fails | Partial | |||||||
properties | creation-time | timestamp /ulong | delivery-properties | timestamp | datetime | when creation-time is not set, arrival-time is set as a timestamp | Y | |||||||
properties | subject | string | message-properies | headers['qpid.subject'] | str16 | if 'qpid.subject' is already in the application-properties it will not be overridden | Y | |||||||
properties | subject | string | message-properties | headers['x-jms-type'] | str16 | if 'x-jms-type' is already in the application-properties it will not be overridden | Y | |||||||
properties | subject | string | delivery-properties | routing-key | str8 | Throw MCE if conversion to str8 fails | Y | |||||||
properties | group-id | string | message-properies | headers['JMSXGroupID'] | str16 | if 'JMSXGroupId' is already in the application-properties it will not be overridden | Y | |||||||
properties | group-sequence | sequence number | message properies | headers['JMSXGroupSeq'] | int | if 'JMSXGroupSeq' is already in the application-properties it will not be overridden | Y | |||||||
properties | to | string | delivery-properties | exchange | str8 | if 'to' starts with "/" throw MCE Throw MCE if exchange or routingKey conversion to str8 fails | Y | |||||||
properties | to | string | delivery-properties | routing-key | str8 | see above | Y | |||||||
application-properties | - | map | message-properties | application-headers | map |
| Y | |||||||
content | message-properties | content-length | uint64 |
| Y | message-annotation | jms-type | string | message-properties | content-type | str8 | |||
header | delivery-count | delivery-properties | redelivered | N |
AMQP 1-0 message properties conversion to internal message
AMQP 1.0 message | internal message | |||||||
---|---|---|---|---|---|---|---|---|
Section name | Property name | Type | Property segment | Property name | type | Comments | Implemented | |
header | durable | boolean | InternalMessage MetaData | isPersistent() isPersistent() | boolean boolean |
| Y Y | |
header | priority | unsigned byte | MessageHeader | getPriority() | byte |
| Y | |
header/properties | ttl /absolute-expiry-time | milliseconds/ulong | MessageHeader | getExpiration() | long | Currently 'absolute-expiry-time' is used but we should change this to 'ttl' (see QPID-7872) | Y | |
properties | content-type | symbol |
|
|
|
| TODO | |
properties | content-encoding | symbol | MessageHeader | getEncoding() | String | Y | ||
properties | message-id | binary, uuid, ulong, string | MessageHeader | getMessageId() | String | toString() is used for the conversion | Y | |
properties | correlation-id | binary, uuid, ulong, string | MessageHeader | getCorrelationId() | String | toString() is used for the conversion | Y | |
properties | user-id | binary | MessageHeader | getUserId() | String | expects 'user-id' to contain UTF-8 bytes. results in mojibake otherwise. | Y | |
properties | reply-to | string | MessageHeader | getReplyTo() | String | Y | ||
properties | creation-time | timestamp /ulong | MessageHeader | getTimestamp() | long | when creation-time is not set, arrival-time should be set as a timestamp | Partial | |
properties | subject | string | MessageHeader | HeaderMap['qpid.subject'] | String | should this be done? | N | |
properties | subject | string | InternalMessage | getInitialRoutingAddress() | String | related: QPID-7868 | N | |
properties | group-id | string |
|
| N | |||
properties | group-sequence | sequence number |
|
| N | |||
properties | to | string | InternalMessage | getTo() | String | | Y | |
application-properties | - | map | MessageHeader | HeaderMap | Map |
| Y | TODO|
header | delivery-count | delivery-propertiesMessageHeader | redelivered | N |
Content conversion
...