Hi Akalanka,

I went on the same path and used the moquette logic to create a simple
string hiearachy processor :

http://devnutshell.tumblr.com/post/96378477451/hierarchical-token-matcher-for-strings

It's almost the same logic as moquette (but the tree only contains strings,
not subscription objects, so manipulation would be faster..). Sharing in
case it could help :)


On Thu, Dec 4, 2014 at 10:22 AM, Akalanka Pagoda Arachchi <
[email protected]> wrote:

> 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
>
>


-- 
Cheers,

Hasitha Amal De Silva
 Software Engineer
Mobile : 0772037426
Blog    : http://devnutshell.tumblr.com/
WSO2 Inc.: http://wso2.com ( lean.enterprise.middleware. )
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to