Versions Compared

Key

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

...

AMQP 0-10 type

 

Used in JMS ClientsAMQP 0-9-1 types

short-string

long-string

timestamp

field-array

field-table

float

double

decimal

void

boolean

byte

unsigned byte

short

unsigned short

int

unsigned int

long

unsigned long

binary

ascii str

wide str

ascii char

bin8

no

 

 

 

 

 

 

 

 

 

 

 

 

?

 

 

 

 

 

    X

 

 

 

int8

yes

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

uint8

no

 

 

 

 

 

 

 

 

 

 

 

      X

?

 

 

 

 

 

 

 

 

 

char

no ******

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

boolean

yes

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

bin16

no

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?

 

 

 

   X

 

 

 

int16

yes

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

uint16

no

 

 

 

 

 

 

 

 

 

 

 

 

 

   X

?

 

 

 

 

 

 

 

bin32

no

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?

 

   X

 

 

 

int32

yes

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

uint32

no

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    X

?

 

 

 

 

 

float

yes

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

char-utf32

no

 

 X***

 

 

 

 

 

 

 

 

 

 

 

 

?

 

 

 

 

 

 

 

sequence-no

no

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   X

 

 

 

bin64

no

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?

 

   X

 

 

 

int64

yes

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

uint64

no

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?

    X

 

 

 

 

double

yes

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

datetime

no

 

 

    X

 

 

 

 

 

 

 

 

 

 

 

 

 

?

 

 

 

 

 

bin128

no

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 X

 

 

 

uuid **

no ******

   

 X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 X

 

 

 

bin256

no

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

bin512

no

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

bin1024

no

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

bin40

no

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

dec32

no

 

 

 

 

 

 

 

    X

 

 

 

 

 

 

 

 

 

 

?

 

 

 

bin72

no

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

dec64

no

 

 

 

 

 

 

 

   

 

 

 

 

 

 

 

 

 

 

X

 

 

 

void

yes

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

bit

no

 

 

 

 

 

 

 

 

 

 X

 

 

 

 

 

 

 

 

?

 

 

 

vbin8

no

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

str8-latin

no

 X

?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

str8

no

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

str8-utf16

no

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

vbin16

no

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

str16-latin

no

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

str16

no

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

str16-utf16

yes

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

byte-ranges

no

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

sequence-se

no

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

vbin32

yes ****

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

map

no *****

 

 

 

 

X*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

list

no *****

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

array

no

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

struct32

no

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   X

 

 

 

...

** UUID type is unsupported by AMQP 0-8/0-9.x. An exception is thrown on attempt to convert. Should it be converted into short string?It is converted to a long string

*** there is no corresponding type in AMQP 0-8..0-9.x. Thus, the most appropriate type for conversion UTF32 char is long-string.

...

****** Instances of java.util.UUID and java.lang.Character can be specified as part of  ListMessage. They are encoded into AMQP 0-10 types "uuiuuid" and "char"  (one byte) accordingly.

...

AMQP 1.0 MessageInternal Message
body sectionbody data typeannotation x-opt-jms-msg-typecontent-typebody objectcontent typecomments
amqp-value



nullanyanynullsee commentthis case is treated identical to the case where there is no body section (see below)
stringanycontent types listed as "common textual media types" in section 3.3.7 (Body Sections) of AMQP JMS Mapping specification (WD9)Stringcopied verbatim 
otherString"text/plain" 
mapanyanyMap<Object,Object>null 
listanyanyList<Object>null 
otheranyanyObjectcopied verbatim 
amqp-sequenceanyanyanyList<Object>

null

 
data






binary (byte[])






0 (Message)anybyte[]copied verbatim or "application/octet-stream" if null 
1 (ObjectMessage)anybyte[]copied verbatim or "application/x-java-serialized-object" if null 
2 (MapMessage)anybyte[]

copied verbatim or "application/octet-stream" if null

 
3 (BytesMessage)anybyte[]copied verbatim or "application/octet-stream" if null 
4 (StreamMessage)anybyte[]copied verbatim or "application/octet-stream" if null 
5 (TextMessage)anybyte[]copied verbatim or "application/octet-stream" if null 
other or not set

any

byte[]copied verbatim or "application/octet-stream" if null 
no body







N/A







0 (Message)anynullnull 
1 (ObjectMessage)anynullapplication/x-java-serialized-object 
2 (MapMessage)anynullnull 
3 (BytesMessage)anynullapplication/octet-stream 
4 (StreamMessage)anynullnull 
5 (TextMessage)content types listed as "common textual media types" in section 3.3.7 (Body Sections) of AMQP JMS Mapping specification (WD9)nullcopied verbatim 
othernulltext/plain 
other or nullanynullcopy verbatim 

Conversion issues

This section summarises existing conversion issues

...

Issue description

...

Protocols

...

AMQP 0-8...0-9-1 to AMQP 0-10 and vice versa

No conversion is necessary. Content and contentType are simply copied.

AMQP 0-x to Internal

AMQP 0-xInternal Messagecomments
content typebody objectcontent-type
content types listed as "common textual media types" in section 3.3.7 (Body Sections) of AMQP JMS Mapping specification (WD9)Stringcopied verbatimif body is empty the body object is null.
jms/map-messageMapnullif body is empty, the body object will contain an empty map
amqp/mapMapnullif body is empty, the body object will contain an empty map
jms/stream-messageListnullif body is empty, the body object will contain an empty list
amqp/listListnullif body is empty, the body object will contain an empty list
application/java-object-streambyte[]application/x-java-serialized-objectif body is empty, the body object will contain an empty byte array
application/x-java-serialized-objectbyte[]application/x-java-serialized-objectif body is empty, the body object will contain an empty byte array
application/octet-streambyte[]application/octet-streamif body is empty, the body object will contain an empty byte array
other with bodybyte[]copied verbatim 
none with bodybyte[]null 
other without bodynullcopied verbatim 
none without bodynullnull 

Conversion issues

This section summarises existing conversion issues

))

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,

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

...

nonenullamqp-valuenull0 (Message)copied verbatim

 

 

empty body

 

 

application/java-object-streambyte[]