Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

AMQP 1.0 message

AMQP 0-8...0-9-1 message

 

 

 

Implemented

 

Section name

Property name

Type

Properties

Property name

Type

Comments

header

durable

boolean

message property

delivery mode

unsigned byte

 

Y

header

priority

unsigned byte

message property

priority

unsigned byte

 

Y

header

ttl

milliseconds/uint

message property

expiration

short-string

'absolute-expiry-time' takes precedence over 'ttl'

Y

properties

absolute-expiry-time

timestamp /ulong

message property

expiration

short-string

'absolute-expiry-time' takes precedence over 'ttl'

Y

header

delivery-count

uint

 

 

 

 

 

header

first-acquirer

boolean

 

 

 

 

 

message-annotations

x-opt-jms-msg-type

byte

message property

content type

short-string

see table for content conversion below

Y

headercontent-typesymbol

message property

content type

short-string

see table for content conversion belowY

properties

content-encoding

symbol

message property

encoding

short-string

MCE is thrown on content-encoding length > 255

Y

properties

message-id

binary, uuid, ulong, string

message property

message id

short-string

if conversion to AMQShortString fails the field is not set.

when converting from binary no restrictions are applied to the bytes. May contain invalid UTF-8 and/or zero-bytes.

Y

properties

correlation-id

binary, uuid, ulong, string

message property

correlation id

short-string

if conversion to AMQShortString fails the MCE is thrown.

when converting from binary no restrictions are applied to the bytes. May contain invalid UTF-8 and/or zero-bytes. 

Y

properties

user-id

binary

message property

user id

short-string

if conversion to AMQShortString fails the field is not set

Y

properties

reply-to

string

message property

reply to

short-string

See section "Address Conversion"

if conversion to AMQShortString fails the MCE is thrown

Y

properties

creation-time

timestamp /ulong

message property

timestamp

long

if creation-time is not set arrival time will be used

Y

properties

subject

string

message property

headers['qpid.subject']

long-string

 

Y

properties

subject

string

message property

typeshort-stringMCE is thrown on subject length > 255Y
propertiessubjectstringpublish propertyrouting-keyshort-string

See conversion of 'to' below.

Y

properties

group-id

string

message property

headers['JMSXGroupID']

long-string

specified in JMS bindmap

Y

properties

group-sequence

sequence number

message property

headers['JMSXGroupSeq']

int

specified in JMS bindmap

Y

properties

to

string

basic.publish

exchange, routingKey

short string

See section "Address Conversion".

If an exchange is specified without routingKey the properties.subject is used as routingKey.

Throw MCE if exchange or routingKey conversion to AMQShortString fails

Y

application-properties

*

*

message property

headers

field-table

If conversion fails a MCE is thrown

Y

...

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/propertiesttl /absolute-expiry-timemilliseconds/ulongdelivery-propertiesexpirationdatetime Y

message-annotations

x-opt-jms-msg-type

byte

message-properties

content-type

str8see table for content conversion belowY

properties

content-type

symbol

message-properties

content-type

str8

see table for content conversion below

Y

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

See secton "Address Conversion"

Throw MCE if conversion of exchange or routingKey to str8 fails

Y

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

propertiessubjectstringmessage-propertiesheaders['x-jms-type'] str16if 'x-jms-type' is already in the application-properties it will not be overriddenY
propertiessubjectstringdelivery-propertiesrouting-keystr8Throw MCE if conversion to str8 failsY

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

See section "Address Conversion"

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

headerdelivery-count delivery-propertiesredelivered  N

...

MessageHeader
AMQP 1.0 messageinternal message  

Section name

Property name

Type

Property class

Property name

type

Comments

Implemented

header

durable

boolean

InternalMessage

InternalMessageMetaData

isPersistent()

isPersistent()

boolean

boolean

 

Y

Y

header

priority

unsigned byte

MessageHeader

getPriority()

byte

 

Y

header/properties

ttl /absolute-expiry-time

milliseconds/ulong

MessageHeader

getExpiration()

longCurrently 'absolute-expiry-time' is used but we should change this to 'ttl' (see QPID-7872)

 

Y

properties

content-type

symbol

 MessageHeader 

getMimeType()

 String

 

TODOY

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 timestampis used

YPartial
propertiessubjectstring

HeaderMap['qpid.subject']

String

should this be done?

N

propertiessubjectstringInternalMessagegetInitialRoutingAddress()Stringrelated: QPID-7868N

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

headerdelivery-count MessageHeaderredelivered  N

...

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

 

TODOY

InternalMessage

getEncoding()

String

properties

content-encoding

symbol

 

Y

MessageHeader

getContentType()

str8

properties

content-type

symbol

 

TODOY

   propertiessubjectstring N

MessageHeader

getHeader(String)/getHeaderNames()

String/Enumeration

application-properties

* 

MessageConversionException is thrown when string or key is invalid

Y

...

Internal message

AMQP 0-8...0-9-1 message

Implemented

 

Property origin

Property name

Type

Section name

Property name

Type

Comments

InternalMessage

InternalMessageMetaData

isPersistent()

isPersistent()

boolean

message property

delivery mode

unsigned byte

 

Y

MessageHeader

getPriority()

byte

message property

priority

unsigned byte

 

Y

MessageHeader

getExpiration()

long

message property

expiration

short-string

 

Y

MessageHeader

getMessageId()

String

message property

message-id

short-string

if conversion to short-string fails 'message-id' is not set

Y

MessageHeader

getCorrelationId()

String

message property

correlation-id

short-string

MessageConversionException is thrown when conversion to short-string fails

Y

MessageHeader

getUserId()

String

message property

user-id

short-string

if conversion to short-string fails 'user-id' is not set

Y

MessageHeader

getTimestamp()

datetime

message property

timestamp

long

 

Y

MessageHeader

getReplyTo()

String

message property

reply-to

short-string

See section Address Conversion then convert to BURL.

MessageConversionException is thrown when conversion to short-string fails

Y

InternalMessage

getTo()

String

message property

to

string

 

TODO

InternalMessage

getEncoding()

String

message property

encoding

short-string

MessageConversionException is thrown when conversion to short-string fails

Y

MessageHeader

getMimeType()

String

message property

content-type

short-string

 

TODOY

MessageHeader

getContentTypegetHeader(String)/getHeaderNames()

String/Enumeration

message propertycontent-type

headers

shortfield-string

 

TODO

   message propertysubjectstring N

table

MessageConversionException is thrown when

MessageHeader

getHeader(String)/getHeaderNames()

String/Enumeration

message property

headers

field-table

MessageConversionException is thrown when key or value is invalid

Y
InternalMessagegetTo() / getInitialRoutingAddress()   

basic.publish

exchange, routing-key

short-string

 TODO   

basic.publish

exchange

short-string

 

If getTo() is null or the empty string getInitialRoutingAddress() is used instead.
Then see section Address Conversion

Throw MessageConversionException if conversion to short-string fails.

YTODO
   

basic.publish

immediatebitalways set to false N
   

basic.publish

mandatorybitalways set to false N

AMQP 0-10 message properties conversion into internal message properties

AMQP 0-10 message

Internal message

Implemented

 

Property origin

Property name

Type

Class name

Property name

Type

Comments

delivery-properties

delivery-mode

uint8

InternalMessage

InternalMessageMetaData

isPersistent()

boolean

 

Y

delivery-properties

priority

uint8

MessageHeader

getPriority()

byte

 

Y

delivery-properties

ttl

uint64

MessageHeader

getExpiration()

long

the 'ttl' delivery-property takes precedence over 'expiration'

Y

delivery-propertiesexpiration

datetime

MessageHeader

getExpiration()

longthe 'ttl' delivery-property takes precedence over 'expiration'Y

delivery-properties

timestamp

datetime

MessageHeader

getTimestamp()

long

if not set, the arrival time is used as timestamp

Y

delivery-properties

redelivered

bit

    N

delivery-properties

routing-key

str8

InternalMessage

getInitialRoutingAddress()

String TODOY

delivery-properties

exchange

str8

InternalMessagegetTo()String TODOY

delivery-properties

immediate

bit

 

  

 

N

delivery-properties

discard-unroutable

bit

 

   N

message-properties

content-type

str8

InternalMessage

getContentTypegetMimeType()

String

 

TODOY

message-properties

content-encoding

str8

MessageHeader

getEncoding()

string

 

Y

message-properties

message-id

uuid

MessageHeader

getMessageId()

String

 

Y

message-properties

correlation-id

vbin16

MessageHeader

getCorrelationId()

String

 

Y

message-properties

user-id

vbin16

MessageHeader

getUserId()

String

 

Y

message-properties

reply-to

reply-to

MessageHeader

getReplyTo()

String

<exchange name>/<routing key>

TODOY

message-properties

app-id

vbin16

MessageHeader

getAppId()

String

 

Y

message-properties

application-headers

map

MessageHeader

getHeadersMap()Map<String,Object>

 

Y

message-properties

content-length

uint64

 

 

 

 

 

message-propertiesapplication-headers['x-jms-type']str16MessageHeadergetType()String'x-jms-type' is not removed from application headersY

...

Internal message

AMQP 0-10 message

Implemented

 

Property origin

Property name

Type

Segment name

Property name

Type

Comments

InternalMessage

InternalMessageMetaData

isPersistent()

isPersistent()

boolean

delivery-properties

delivery-mode

uint8

 

Y

MessageHeader

getPriority()

byte

delivery-properties

priority

uint8

 

Y

MessageHeader

getExpiration()

long

delivery-properties

ttl

uint64

 getExpiration() - arrivalTimeY

MessageHeader

getExpiration()

long

delivery-properties

expiration

datetime

 Y

MessageHeader

getMessageId()

String

message-properties

message-id

uuid

if conversion to uuid fails 'message-id' is not set

Y

MessageHeader

getCorrelationId()

String

message-properties

correlation-id

vbin16

MessageConversionException is thrown when conversion to vbin16 fails

Y

MessageHeader

getUserId()

String

message-properties

user-id

vbin16

if conversion to vbin16 fails 'user-id' is not set

Y

MessageHeader

getTimestamp()

datetime

delivery-properties

timestamp

datetime

if timestamp is not set arrivalTime will be used as timestamp

Y

MessageHeader

getReplyTo()

String

message-properties

reply-to

reply-to

See section Address Conversion

MessageConversionException should be is thrown when conversion to str8 fails.

TODOY

InternalMessage

getTo()/getInitialRoutingKey()

String

delivery-properties

 

 

 

exchange, routing-key

str8

If getTo() is null or the empty string getInitialRoutingAddress() is used instead.
See section Address Conversion.

MessageConversionException is thrown when conversion to str8 fails.

YTODO

InternalMessage

getEncoding()

String

message-properties

content-encoding

str8

MessageConversionException is thrown when conversion to str8 fails

Y

MessageHeader

getMimeType()

String

message-properties

content-type

str8

 

TODOT

MessageHeader

getContentType()

String

message-properties

content-type

str8

 

TODO

MessageHeader

getHeader(String)/getHeaderNames()

String/Enumeration

message-properties

application-headers

map

MessageConversionException is thrown when key or value is invalid

Y
InternalMessage  

message-properties

content-length

uint64 Y
   

delivery-properties

routing-key

str8

 TODO
   

delivery-properties

exchange

str8

 TODO
   

delivery-properties

immediatebit N
   

delivery-properties

discard-unroutablebit N

...