Hi Pamod/Chamila, As Pamod mentioned the implementation is already there to resolve matching topics in Moquette. Since Moquette was integrated inside MB I was able to use the same implementation to resolve matching topics.
Chamila, the Moquette implementation is using if else with String manipulation techniques. This looks simpler to understand than a Regex since I was having a hard time creating a Regex that matches the MQTT specifications. Thanks, Akalanka On Thu, Dec 4, 2014 at 7:44 AM, Pamod Sylvester <[email protected]> wrote: > Hi Akalanka, > > Could we also consider the approach used by the ProtocolProcessor of > Moquette ? > > Where all the subscriptions are kept in a Tree based on their hierarchy > and when a message is published, the published topic is split into tokens, > and then the tree will be traversed for a match. When a match is found, the > message would be sent to the ancestral node and its descendants. > > It might also be good if we could find a way to point to the functionality > Moquette has introduced for cluster wide subscription identification as > well. This way if the protocol introduces a different set of wild cards, > the change will be reflected from the library itself. WDYT ? > > Thanks, > Pamod > > On Thu, Dec 4, 2014 at 12:34 AM, Chamila De Alwis <[email protected]> > wrote: > >> Hi Akalanka, >> >> Even though for the multi-level wildcard using if else might be simpler, >> since the single-level wildcard can appear in several places of the topic >> name wouldn't it be better to follow the regex approach? >> >> >> Regards, >> Chamila de Alwis >> Software Engineer | WSO2 | +94772207163 >> Blog: code.chamiladealwis.com >> >> >> >> On Wed, Dec 3, 2014 at 2:49 PM, Akalanka Pagoda Arachchi < >> [email protected]> wrote: >> >>> Hi all, >>> >>> I am implementing wildcard support for MQTT in WSO2 MB. >>> >>> The MQTT 3.1 Specification [1] provides details about how the wildcards >>> should behave. >>> >>> According to this, to implement this match making I can either use >>> java.lang.String functions and if else conditions or use a regular >>> expression. >>> >>> I believe a regular expression will be a bit more complex to understand >>> and hence prefer to use if else conditions. What will be best way to >>> approach this? >>> >>> [1] - >>> http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc398718107 >>> >>> Thanks, >>> Akalanka >>> -- >>> *Akalanka Pagoda Arachchi,* >>> *Software Engineer* >>> *078-4721791 <078-4721791>* >>> >>> _______________________________________________ >>> Dev mailing list >>> [email protected] >>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>> >>> >> >> _______________________________________________ >> Dev mailing list >> [email protected] >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> > > > -- > *Pamod Sylvester * > *Senior Software Engineer * > Integration Technologies Team, WSO2 Inc.; http://wso2.com > email: [email protected] cell: +94 77 7779495 > -- *Darshana Akalanka Pagoda Arachchi,* *Software Engineer* *078-4721791*
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
