Versions Compared

Key

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

...

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.publishmandatorybit    N
basic.publishimmediatebit    N
message propertycontent-typeshort-stringmessage-annotationsx-opt-jms-msg-typstring 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-propertiescontent-typestr8message-annotationx-opt-jms-msg-typestring N
message-propertiesapplication-headers['x-jms-type']str16propertiessubjectstring ?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 propertiesAll
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 strings1-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

...