Versions Compared

Key

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

...

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

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

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

if 'to' starts with "/" throw MCE
else if 'to' contains "/" split on first "/" and set exchange to first and routingKey to second part
else if 'to' refers to an existing queue set exchange to the empty string and routingKey to the queue name
else assume 'to' refers to an exchange and set it and set the routingKey to the empty string

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-annotationjms-typestringmessage-propertiescontent-typestr8 
headerdelivery-count delivery-propertiesredelivered  N

AMQP 1-0 message properties conversion to internal message

TODO
AMQP 1.0 messageinternal 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

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 delivery-propertiesMessageHeaderredelivered  N

Content conversion

...