[ 
https://issues.apache.org/jira/browse/ARTEMIS-1578?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16316510#comment-16316510
 ] 

Timothy Bish commented on ARTEMIS-1578:
---------------------------------------

I can't really speak to what the Artemis Core based JMS bits, but can say that 
the Qpid JMS client uses an JMS specific filter string which requires that the 
broker treat the selector given as a JMS selector, so the expected values for 
things like the user ID match those given in the JMS specification and don't 
really need further copying into the Artemis docs. 

You are confused a bit on what a property is in the JMS message sense, the AMQP 
message property section would not be treated as an JMS property as that 
section is not an application level property but a message specific property 
set or not set by the client itself and not the user.  The property is accessed 
by using the typical JMS defined values in the selector such as JMSXUserID for 
that and the other JMSX... values for other AMQP level message properties like 
group ID etc.  

> Cannot use "user-id" property in AMQP message selector
> ------------------------------------------------------
>
>                 Key: ARTEMIS-1578
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1578
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: AMQP
>    Affects Versions: 2.4.0
>            Reporter: Johan Stenberg
>            Priority: Minor
>         Attachments: Artemis1578Test.java, pom.xml
>
>
> It is not possible to use the "user-id" property specified in 
> http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-properties
>  for message selection in a subscription. Instead one has to use the JMS 
> specific "JMSXUserID" property name.
> This could be maybe fixed by changing the line 
> https://github.com/apache/activemq-artemis/blob/master/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java#L912
>  to
> {code:java}
> } else if (key.equals(MessageUtil.JMSXUSERID) || key.equals("user-id") {
> {code}
> but is also prevented by the 
> org.apache.activemq.artemis.selector.impl.SelectorParser which interprets 
> "user-id" as an arethmetic operations.
> It is also not possible to use the "userId" property instead - which is used 
> as key in the HashMap 
> [AMQPMessage#_properties|https://github.com/apache/activemq-artemis/blob/master/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java#L88]
>  - because 
> [AMQPMessage#getObjectProperty|https://github.com/apache/activemq-artemis/blob/master/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java#L919]
>  only resolves values from the [application 
> properties|http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-application-properties]
>  of an AMQP message.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to