Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 957981 - Docs: Support message selectors
Summary: Docs: Support message selectors
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: Messaging_Programming_Reference
Version: Development
Hardware: All
OS: Linux
Target Milestone: 3.0
: ---
Assignee: Jared MORGAN
QA Contact: Zdenek Kraus
Depends On: 961011
Blocks: 453539
TreeView+ depends on / blocked
Reported: 2013-04-30 02:52 UTC by Joshua Wulf
Modified: 2018-12-06 15:03 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: Enhancement
Doc Text:
Clone Of: 453539
Last Closed: 2015-01-22 15:28:47 UTC
Target Upstream Version:

Attachments (Terms of Use)

System ID Priority Status Summary Last Updated
Apache JIRA QPID-4558 None None None Never
Apache JIRA QPID-530 None None None Never

Comment 2 Zdenek Kraus 2014-03-31 13:12:19 UTC
(1) we are missing the headers names table for AMQP and JMS headers

and table in code itself

to let users know which headers are mapped to what literal in selectors

(2) in the colour example is used "colour" and in the text above is "color" please unite it as "color"

(3) please add some examples using other constructs like

amqp.priority IS BETWEEN 3 AND 6
amqp.durable AND amqp.redelivered
amqp.reply_to LIKE '%news%'



Comment 4 Zdenek Kraus 2014-04-01 11:29:54 UTC
1. please separate comments from the parameters names, like:
JMSCorrelationID | correlation-id field of properties section
should be
JMSCorrelationID | correlation-id | field of properties section

Please add this table to the selector section 

to let users know what fields could be accessed by selectors and how.

2. OK
3. OK


Comment 5 Joshua Wulf 2014-04-28 07:46:38 UTC
1. Separated columns.

I'm not sure what's missing from that table - all the information from that table seems to me to be present for the JMS Selector mapping table in the doc.

Is there something that I am missing?

Comment 6 Zdenek Kraus 2014-04-28 08:02:27 UTC
table contains almost all information, but there is 'durable' and 'delivery_mode' and they are different, please add them both.

Also please note that only 3 amqp headers are currently implemented, see Bug 1083015

Comment 7 Zdenek Kraus 2014-04-28 09:03:24 UTC
also I'm not completely sure that all fields mentioned as amqp headers are really headers but only selectors aliases for JMS equivalent values.

Comment 8 Zdenek Kraus 2014-04-30 13:09:16 UTC
Bug 1083015 was postponed to 3.1, please make a note that only 3 headers are implemented now.

Comment 9 Joshua Wulf 2014-05-06 01:46:50 UTC
According to

correlation_id is the only one that is not implemented in 3.0, and the others *should* work.

Comment 10 Zdenek Kraus 2014-05-06 07:14:52 UTC
That is not correct, for MRG 3.0 only headers in Bug 1083015 Comment 6 are implemented.

Others may be implemented in upstream 0.28 as seen in Bug 1083015 Comment 5.

Comment 11 Joshua Wulf 2014-05-16 05:06:24 UTC
OK. Not sure if I have this right... I have pared down the table to the three selectors that are implemented for MRG 3.0:

Comment 12 Zdenek Kraus 2014-05-22 09:35:20 UTC
Headers table is correct, those are headers implemented in 3.0

Table 2. Mapping AMQP types to JMS types
there is one empty row breaking the alternating background, please fix it

because some headers are not yet implemented and some selector issues exists, we have to change examples section:

according to this Bug 1090376
we have to change the LIKE example from
  queue_name;{link:{selector:"amqp.reply_to LIKE '%news%'"}}
  queue_name;{link:{selector:"amqp.reply_to LIKE '%news%'"}}

according to implemented headers we need to change example
  queue_name;{link:{selector:"amqp.durable AND amqp.redelivered"}}
  queue_name;{link:{selector:"myflag AND amqp.redelivered"}}

according to implemented headers we need to delete examples:
  queue_name;{link:{selector:"amqp.message_id = 'c'"}}
  queue_name;{link:{selector:"amqp.correlation_id = 'b'"}}

because of existing issue Bug 1090022, please add note for python:
  With python, selectors could be used by temporary syntax
  for example c++ address with selector
    queue_name;{link:{selector:"myproperty = 1"}}
  in python is temporarily used as:
    queue_name;{link:{'x-subscribe': {'arguments': {'x-apache-selector': "myproperty = 1"}}}}

because of existing issue Bug 1090024, please add note for java:
  Java temporarily does not support qpid server side selectors, only JMS selectors.

Comment 13 Zdenek Kraus 2014-05-22 11:54:30 UTC
addition to a [7]
Please add to note that the JMS native selectors behaves slightly differently, and recommend to consult JMS Specification.

Comment 14 Joshua Wulf 2014-06-10 00:47:43 UTC
[4] Removed empty row:

[5a] The two lines are the same?

[5b] Changed

[5c] Removed

[6] Added 

[7] Documented

Comment 15 Zdenek Kraus 2014-06-10 08:21:14 UTC
[4]  OK
[5a] I'm sorry, that's my fault, there is correct example:
queue_name;{link:{selector:"msg_title LIKE '%news%'"}}

[5b] OK
[5c] OK
[6]  OK
[7]  OK

[8] Please make sure that the rounded rectangle with examples is fit to the content, there are 3 empty lines.

Comment 16 Joshua Wulf 2014-06-24 03:55:28 UTC
I'm looking here:

And I see no empty lines. Is this the right place?

Comment 17 Zdenek Kraus 2014-07-14 07:31:43 UTC
Sorry for not providing correct source.

it's here

⁠6.4.1. Select messages using a filter

second code block

same location for [5a]

Comment 19 Zdenek Kraus 2014-08-12 06:45:34 UTC
This is correct.

Verifiable, but waiting on BNF syntax Bug 961011

Comment 20 Zdenek Kraus 2014-08-19 13:40:36 UTC
BNF Syntax resolved. -> VERIFIED

Note You need to log in before you can comment on or make changes to this bug.