Details

    • Type: Improvement Improvement
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 1.1
    • Fix Version/s: None
    • Labels:
      None
    • Environment:

      All JMS environments

      Description

      It is desirable to be able to store multiple values with the same key in a JMS message, like in a HTTP request, for example.

        Issue Links

          Activity

          Hide
          abien added a comment -

          +1
          HTTP-protocol interoperability (because of REST and JAX-RS), becomes more and more important. Although the two paradigms (HTTP / REST and JMS) do not follow the same idea, interoperability becomes crucial in the "clouds"

          Show
          abien added a comment - +1 HTTP-protocol interoperability (because of REST and JAX-RS), becomes more and more important. Although the two paradigms (HTTP / REST and JMS) do not follow the same idea, interoperability becomes crucial in the "clouds"
          Hide
          Nigel Deakin added a comment -

          Tagging for review for the JMS 2.0 Public Draft

          Show
          Nigel Deakin added a comment - Tagging for review for the JMS 2.0 Public Draft
          Hide
          Nigel Deakin added a comment - - edited

          (Comment copied from JMS_SPEC-13, which has been closed as a duplicate of this)

          As a JMS client I would like to populate a set in the message header and have it take part in selectors. The set would be generic somehow and the filter expressions available would "contains" and "not contains"

          I cannot come up with a good looking API change to the Message interface to allow this set to be manipulated cleanly other than getStringHeaderSet, getDoubleHeaderSet etc. There must be a better way, perhaps via a builder pattern.

          What I really would find useful is the selector:

          "MyProperty contains 'AAA' or MyProperty contains 'BBB'"
          

          Use Case:

          Consider a multi national orgianisation with many offices (legal entities) and therefore many back office systems and they are all connected via messaging. A single "deal" can span many offices and many clients. When the deal has been agreed a notification would be sent with a "header set" containing all the offices involved in the deal with each back office subscribing to deals where it is a participant and therefore its identifier is in the header set.

          Topics and wild carding do not work in this scenario as the number of participating offices is variable.

          Show
          Nigel Deakin added a comment - - edited (Comment copied from JMS_SPEC-13 , which has been closed as a duplicate of this) As a JMS client I would like to populate a set in the message header and have it take part in selectors. The set would be generic somehow and the filter expressions available would "contains" and "not contains" I cannot come up with a good looking API change to the Message interface to allow this set to be manipulated cleanly other than getStringHeaderSet, getDoubleHeaderSet etc. There must be a better way, perhaps via a builder pattern. What I really would find useful is the selector: "MyProperty contains 'AAA' or MyProperty contains 'BBB'" Use Case: Consider a multi national orgianisation with many offices (legal entities) and therefore many back office systems and they are all connected via messaging. A single "deal" can span many offices and many clients. When the deal has been agreed a notification would be sent with a "header set" containing all the offices involved in the deal with each back office subscribing to deals where it is a participant and therefore its identifier is in the header set. Topics and wild carding do not work in this scenario as the number of participating offices is variable.
          Hide
          rdohna added a comment -

          @Nigel: In your use-case, you could also use one boolean property for each office or client involved. "la-office" = true, "ny-office" = true, etc. The selector would also be quite simple (e.g., fast). You can always map any multi-value property to a set of single-value properties... but when you have sets, you also may want to have lists... and maps... and lists of sets of maps, etc. If you can't limit this to what's in http headers, you will always have to argue about the next step... I'd leave it out.

          Show
          rdohna added a comment - @Nigel: In your use-case, you could also use one boolean property for each office or client involved. "la-office" = true, "ny-office" = true, etc. The selector would also be quite simple (e.g., fast). You can always map any multi-value property to a set of single-value properties... but when you have sets, you also may want to have lists... and maps... and lists of sets of maps, etc. If you can't limit this to what's in http headers, you will always have to argue about the next step... I'd leave it out.
          Hide
          fribeiro added a comment -

          You may want to go ahead and close the issue.

          Show
          fribeiro added a comment - You may want to go ahead and close the issue.

            People

            • Assignee:
              Unassigned
              Reporter:
              fribeiro
            • Votes:
              2 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: