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

Summary: Docs: Support message selectors
Product: Red Hat Enterprise MRG Reporter: Joshua Wulf <jwulf>
Component: Messaging_Programming_ReferenceAssignee: Jared MORGAN <jmorgan>
Status: CLOSED CURRENTRELEASE QA Contact: Zdenek Kraus <zkraus>
Severity: low Docs Contact:
Priority: high    
Version: DevelopmentCC: cdevine, esammons, gsim, iboverma, jross, mmurray, spurrier, tao, tross, whenry, zkraus
Target Milestone: 3.0Keywords: FutureFeature
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: 453539 Environment:
Last Closed: 2015-01-22 15:28:47 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 961011    
Bug Blocks: 453539    

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

see https://svn.apache.org/repos/asf/qpid/trunk/qpid/specs/apache-filters.xml#type-selector-filter
and http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Selector.cpp?revision=1559017&view=markup 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%'

etc.


-> ASSIGNED

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 http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Selector.cpp?revision=1559017&view=markup 

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

2. OK
3. OK

-> ASSIGNED

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 https://bugzilla.redhat.com/show_bug.cgi?id=1083015#c11

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:

http://deathstar1.usersys.redhat.com:3000/builds/19948-Messaging_Programming_Reference/#sect-Java_Message_Service_with_Filters

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


http://deathstar1.usersys.redhat.com:3000/builds/19948-Messaging_Programming_Reference/#sect-Java_Message_Service_with_Filters

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



http://deathstar1.usersys.redhat.com:3000/builds/19948-Messaging_Programming_Reference/#Select_messages_using_a_filter

[5a]
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%'"}}
to
  queue_name;{link:{selector:"amqp.reply_to LIKE '%news%'"}}

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

[5c]
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'"}}

[6]
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"}}}}

[7]
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:
http://deathstar1.usersys.redhat.com:3000/builds/19948-Messaging_Programming_Reference/#sect-Java_Message_Service_with_Filters

[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: http://deathstar1.usersys.redhat.com:3000/builds/19948-Messaging_Programming_Reference/#sect-Java_Message_Service_with_Filters

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 
http://deathstar1.usersys.redhat.com:3000/builds/19948-Messaging_Programming_Reference/#Select_messages_using_a_filter

⁠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