[ https://issues.apache.org/jira/browse/ATLAS-992?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Hemanth Yamijala resolved ATLAS-992. ------------------------------------ Resolution: Invalid This does not seem to be an Apache Atlas project's issue. Could you please file this against the right component? > Added support for message queue properties an Selectors in Apache.NMS.MSMQ > -------------------------------------------------------------------------- > > Key: ATLAS-992 > URL: https://issues.apache.org/jira/browse/ATLAS-992 > Project: Atlas > Issue Type: Improvement > Reporter: Stephane Ramet > Attachments: 2016-07-05 - Apache.NMS.MSMQ.patch > > > The proposed package implements the following enhancements : > 1. Support for communication of message properties between compatible peers > The DefaultMessageConverter has been enhanced, so as to marshall custom > message properties in the MSMQ Message.Extension field, along with the > NMSCorrelationID which was already marshalled in this field. > An additional flag specifies whether the MSMQ Message.Label field should be > populated with the NMSType (as currently - default value) or with the value > of a message property called "Label". > 2. Support for selectors > A parser for selection strings has been introduced. > It is based on the Apache.ActiveMQ V4 implementation, ported from Java to C#. > MessageReaders have been developped, that support various types of filtering: > - no filtering when no selector strings are specified. > - filtering based on the Id (NMSMessageID), CorrelationId (NMSCorrelationID) > or LookupId properties. > - filtering based on any other valid selection string. > MessageReaders have been introduced in MessageConsumers and QueueBrowsers. > The generic filtering system, based on a selection string, has - at least - > two limitations: > - it cannot be fully included in the build chains: the source code is > generated from SelectorParser.csc (a port of ActiveMQ's SelectorParser.jj) by > CSharpCC (https://github.com/deveel/csharpcc, a port of JavaCC, now > unmaintained). Due to limitations and/or bugs in the CSharpCC (eg. support > for namespace {}), the generated code must be rectified manually. A port to > another parser generator (eg. ANTLR) would certainly be required. > - selection is performed by the client, by browsing through the messages in > the queue, via MessageQueue.GetMessageEnumerator2(), and retrieving only the > matching messages via MessageQueue.ReceiveByLookupId. When the queue gets > very long and the relevant messages are sparse, performance becomes an issue. -- This message was sent by Atlassian JIRA (v6.3.4#6332)