Details
-
Improvement
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
proton-j-0.33.7
-
None
Description
This is a request for new feature to provide implementation to support multiple Data sections.
Current usage of single Data section looks like this
Message amqpMessage = Proton.message();
amqpMessage.setBody(new Data(new Binary(“my data”.getBytes())));
This does not allow to add multiple Data sections.
The AMQP specification require to support "one or more data sections, one or more amqp-sequence sections. Specification " http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#section-message-format
I have looked into various threads which suggest users of qpid to implement their own version of MessageImpl/ Encoders and decoders to achieve this functionality.
Here are previous discussions.
Previous pull request by community: https://github.com/apache/qpid-proton/pull/54
Discussion on developer forum http://qpid.2158936.n2.nabble.com/Re-Amqp-Spec-multiple-byte-is-not-supported-for-DATA-td7695225.html
This will duplicate effort by many users of qpid, for a feature which is in AMQP specification.
Can we request this feature to be supported in qpid by providing an implementation for it ?
The API for this could be designed to what make sense, here is one suggestion
Message amqpMessage = Proton.message();
amqpMessage.setMultipleBody(Iterable<Section> multipleData);
or
amqpMessage.setMultipleBody(List<Section> multipleData);
And for getting multiple sections ..
Iterable<Section> amqpMessage.getMultipleBody();
or
List<Section> amqpMessage.getMultipleBody();
Or provide a different implementation of MessageImpl which support this feature.
This feature will help community a lot, so they do not have to maintain on the wire amqp protocol details in their code base. For example implementing encoders and decoders.
Since it is being asked few times, it is something community would benefits from, more ever it is part of AMQP spec.
If there is an appetite for this feature, I or any community members provide PR for the implementation and finally it becomes part of proton-j library.
Appreciate your response.
Thank,
Hemant