...
Test Case | Protocol 0-9/0-10 | ||
---|---|---|---|
Content Type | On screen preview | Content Download | |
small text message | text/plain | complete string value | ditto preview |
large text message | text/plain | truncated string value | complete string value |
small map message (default) | amqp/map | Table containing name/value pairs Map entry with bytes array value is base64 encoded | The map's contents encoded as a AMQP 0-10 map
|
large map message (default) | amqp/map | Error popup 'unknown code 67' No preview displayed. Broker survives. Stack trace (1) | |
small map message (legacy) | jms/map-message | Table containing name/value pairs Map entry with bytes array value is base64 encoded | Each written value is encoded by the TypedBytesContentWriter (2) |
large map message (legacy) | jms/map-message | Table containing name/value pairs Map entry with bytes array value is array of ints | |
small stream message | amqp/list | Table containing list values | The list's contents encoded as a AMQP 0-10 list |
large stream message | amqp/list | Error popup 'unknown code 67' No preview displayed. Broker survives. Stack trace (1) | |
small stream message (default - legacy) | jms/stream-message | No preview | Each written value is encoded by the TypedBytesContentWrite |
large stream message (default - legacy) | jms/stream-message | No preview | |
small object message | application/java-object-stream | No preview | Serialised object bytes |
large object message | application/java-object-stream | No preview | |
large pdf file | application/octet-stream | No preview | the pdf file. |
ff
Test Case | Protocol 1.0 | ||
---|---|---|---|
Content Type | On screen preview | Content Download | |
small text message | Not present in AMQP 1.0 | No preview | All the sections that comprise the immutable bare message, encoded in AMQP 1.0
|
large text message | |||
small map message | |||
large map message | |||
small stream message | |||
large stream message | |||
small object message | |||
large object message | |||
large pdf file |
(1)
No Format |
---|
2016-11-04 11:01:43,128 DEBUG [HttpManagement-HTTP-218] (o.a.q.s.m.p.s.r.RestServlet) - IllegalArgumentException processing request java.lang.IllegalArgumentException: unknown code: 67 at org.apache.qpid.transport.codec.AbstractDecoder.getType(AbstractDecoder.java:354) ~[classes/:na] at org.apache.qpid.transport.codec.AbstractDecoder.readMap(AbstractDecoder.java:287) ~[classes/:na] at org.apache.qpid.server.protocol.v0_8.MessageConverter_v0_8_to_Internal.convertMessageBody(MessageConverter_v0_8_to_Internal.java:340) ~[classes/:na] at org.apache.qpid.server.protocol.v0_8.MessageConverter_v0_8_to_Internal.convert(MessageConverter_v0_8_to_Internal.java:86) ~[classes/:na] at org.apache.qpid.server.protocol.v0_8.MessageConverter_v0_8_to_Internal.convert(MessageConverter_v0_8_to_Internal.java:48) ~[classes/:na] at org.apache.qpid.server.queue.AbstractQueue.createMessageContent(AbstractQueue.java:3731) ~[classes/:na] at org.apache.qpid.server.queue.AbstractQueue.getMessageContent(AbstractQueue.java:3701) ~[classes/:na] at org.apache.qpid.server.queue.StandardQueueImplWithAccessChecking.getMessageContent(StandardQueueImplWithAccessChecking.java:80) ~[classes/:na] |
...
(2) TypedBytesContentWriter is distinct from AMQP value system)
Other stuff
If I request a messageContent for a message that does not exist, I get 200 with a null response.
...
(3) http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#section-message-format
Current Problems
- When viewing a preview of a message with a structured payload included a byte-array, the representation differs between truncated and untruncated views (JSON list vs Base64)
- Previewing the large map and large list encoded as AMQP 0-10 fails in the internal message conversion (why?)
- As we already offer a preview of the amqp/lists is seems odd that the same is not offered for the jms/stream-message
- AMQP 1.0 doesn't offer any previews
- In AMQP 0-8..0-10, getContent is useful for bytes/text messages. For users of AMQP 1.0, the getContent returns the concatenation of the immutable 'bare message' which is useless to the end user unless they are prepared to decode the AMQP.
Suggested Behaviour
...