...
AMQP 1.0 message | internal message | ||||||
---|---|---|---|---|---|---|---|
Section name | Property name | Type | Property segmentclass | Property name | type | Comments | Implemented |
header | durable | boolean | InternalMessage MetaDataInternalMessageMetaData | 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 |
header | delivery-count | MessageHeader | redelivered | N |
Internal message properties conversion into AMQP 1.0 message properties
Internal message | AMQP 1-0 message | Implemented
| |||||
---|---|---|---|---|---|---|---|
Property origin | Property name | Type | Section name | Property name | Type | Comments | |
InternalMessage InternalMessageMetaData | isPersistent() isPersistent() | boolean | header | durable | unsigned byte |
| Y |
MessageHeader | getPriority() | byte | header | priority | unsigned byte |
| Y |
MessageHeader | getExpiration() | long | header | ttl | milliseconds |
| Y |
MessageHeader | getExpiration() | long | properties | absolute-expiry-time | timestamp | N | |
MessageHeader | getMessageId() | String | properties | message-id | uuid/string/ulong |
| Y |
MessageHeader | getCorrelationId() | String | properties | correlation-id | binary |
| Y |
MessageHeader | getUserId() | String | properties | user-id | binary |
| Y |
MessageHeader | getTimestamp() | datetime | properties | creation-time | timestamp |
| Y |
MessageHeader | getReplyTo() | String | properties | reply-to | string |
| Y |
InternalMessage | getTo() | String | properties | to | string |
| TODO |
InternalMessage | getEncoding() | str8 | properties | content-encoding | symbol |
| Y |
delivery-properties | redelivered | bit | header | first-acquirer | boolean |
| N |
delivery-properties | routing-key | str8 | properties | to | string |
| Y |
delivery-properties | exchange | str8 | properties | to | string |
| Y |
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 | app-id | vbin16 |
|
|
|
|
|
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 |
| Y |
message properties headers | JMSXGroupSeq | int | properties | group-sequence | sequence number |
| 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 |
Content conversion
Conversion of message content from AMQP 0-8...0-9-1 into AMQP 0-10 and back is simply a matter of copying the content bytes.
...