I thought that with qpid::messaging you could use a (perhaps more intuitive) shorthand in the link stanza like:

{link: {selector: \"messaging_service='amqp-delivery' and item_owner='fadams'\"}}

where messaging_service and item_owner are message properties and the example selector is doing a boolean and

I think that under the hood it gets mapped to an apache.org:selector-filter:string filter in the link attachment protocol and the above is just syntactic sugar at the API level, but the above seems neater to me than having to spell out the full filter syntax 'cause Lord knows Address strings can get complicated enough and be pretty hard to to debug.

ISTR too that property names need to use underscores for message selectors to work so properties like "messaging-service" which would work as property names in Qpid won't match with message selectors.

I *think* that was something to do with Java JMS spec. saying something about JMS property names having to be valid Java identifiers (that is to say something you could use as a variable name) however I don't thing that the AMQP spec said anything about constraining message property names in this way and moreover the AMQP 0.10 JMS API actually happily allowed property names separated by hyphens, but message selectors as I recall were more picky, it's possible that may have changed, but I'm not aware that it has.

IMHO if the AMQP spec doesn't disallow hyphen separated property names then Qpid message selectors should accept it (after all JMS is just one API to AMQP) though noting the potential for interoperability issues given the potential JMS property name constraint.

Frase


On 11/01/17 20:01, Gordon Sim wrote:
On 11/01/17 19:27, Flores, Paul A. wrote:
Interested in the C++ API

With qpid::messaging you use an address of the form:

   my-queue; {link:{filter:{name:jms-selector,
descriptor:'apache.org:selector-filter:string', value:'myProperty=7'}}}

The value of the 'value' element in the filter can be any valid JMS selector.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to