Uploaded image for project: 'Qpid Proton'
  1. Qpid Proton
  2. PROTON-2299

Support multiple data sections in amqpMessage

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: proton-j-0.33.7
    • Fix Version/s: None
    • Component/s: proton-j

      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

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              hemant_tanwar@hotmail.com Hemant Tanwar
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: