[
https://issues.apache.org/jira/browse/ARTEMIS-5826?focusedWorklogId=996798&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-996798
]
ASF GitHub Bot logged work on ARTEMIS-5826:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 17/Dec/25 21:10
Start Date: 17/Dec/25 21:10
Worklog Time Spent: 10m
Work Description: tabish121 commented on code in PR #6148:
URL: https://github.com/apache/artemis/pull/6148#discussion_r2628659955
##########
docs/user-manual/filter-expressions.adoc:
##########
@@ -57,24 +57,31 @@ The value is an integer.
Any other identifiers used in core filter expressions will be assumed to be
properties of the message.
-The JMS and Jakarta Messaging specs state that a String property should not
get converted to a numeric when used in a selector.
-So for example, if a message has the `age` property set to `String` `21` then
the following selector should not match it: `age > 18`.
-STOMP clients, for example, can only send messages with string properties,
which is a bit limiting.
-Therefore, if you want your filter expressions to auto-convert `String`
properties to the appropriate number type, just prefix it with
`convert_string_expressions:`.
-If you changed the filter expression in the previous example to be
`convert_string_expressions:age > 18`, then it would match the aforementioned
message.
+== Property Identifier Constraints
-The JMS and Jakarta Messaging specs also state that property identifiers (and
therefore the identifiers which are valid for use in a filter expression) are
an:
+The JMS and Jakarta Messaging specs state that property identifiers (and
therefore the identifiers which are valid for use in a filter expression) are
an:
____
unlimited-length sequence of letters and digits, the first of which must be a
letter.
-A letter is any character for which the method `Character.isJavaLetter`
returns `true`.
+A letter is any character for which the method
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Character.html#isJavaLetter(char)[`Character.isJavaLetter`]
returns `true`.
This includes `_` and `$`.
-A letter or digit is any character for which the method
`Character.isJavaLetterOrDigit` returns `true`.
+A letter or digit is any character for which the method
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Character.html#isJavaLetterOrDigit(char)[`Character.isJavaLetterOrDigit`]
returns `true`.
____
-This constraint means that hyphens (i.e. `-`) cannot be used.
-However, this constraint can be overcome by using the `hyphenated_props:`
prefix.
-For example, if a message had the `foo-bar` property set to `0` then the
filter expression `hyphenated_props:foo-bar = 0` would match it.
+=== Avoiding These Constraints
Review Comment:
I might title this "Working Around These Constraints" to match the wording
in the text that below.
Issue Time Tracking
-------------------
Worklog Id: (was: 996798)
Time Spent: 20m (was: 10m)
> Improve filter documentation
> ----------------------------
>
> Key: ARTEMIS-5826
> URL: https://issues.apache.org/jira/browse/ARTEMIS-5826
> Project: Artemis
> Issue Type: Task
> Reporter: Justin Bertram
> Assignee: Justin Bertram
> Priority: Major
> Labels: pull-request-available
> Time Spent: 20m
> Remaining Estimate: 0h
>
> The filter expression documentation doesn't include any details about how use
> quotation marks to avoid property identifier constraints.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]