Autobahn: Subscribing to channels with regex or wildcard pattern - autobahn

My question is very simple and straight-forward. In RabbitMQ, we can subscribe to channels using regex or wildcard pattern("Topic" type subscription). So is there any possibility to achieve this in Autobahn ?

Pattern-based subscriptions are now explained in more detail in its own document which is also referenced from the WAMP IETF draft. Here's an example, quoting from the current AutobahnJS reference:
Pattern-Based Subscriptions
As a default, topic URIs in subscriptions are matched exactly.
It is possible to change the matching policy to either prefix or
wildcard matching via an option when subscribing, e.g.
session.subscribe('com.myapp', on_event_all, { match: 'prefix' })
session.subscribe('com.myapp..update', on_event_update, { match: 'wildcard' })
In the first case, events for all publications where the topic
contains the prefix com.myapp will be received, in the second events
for all publications which match the wildcard pattern, e.g.
com.myapp.user121.update and com.myapp.sensor_23.update.
Given the above example is from official AutobahnJS docs, I presume the crossbar.io WAMP router must also have support built-in now.
As for any other WAMP libraries, your mileage will likely vary.

The WAMP specification is split into 2 parts:
the basic profile, which is stable and mandatory for all implementation to implement fully.
the advanced profile, which is work-in-progress and the features herein are optional for implementations to provide.
Pattern-based subscriptions are part of the WAMP "Advanced Profile", but not yet (2015/01) in the Autobahn WAMP client libraries or the e.g. the Crossbar.io WAMP router (see here).

Related

what is general route rules in i18n

I would like to separate my website to follow the Accept-Languages.
I have 4 language strings en, en-CA, zh-HK and zh-TW.
And my plan is routing them like /en, /en-CA, /zh-HK and /zh-TW.
but I have a question about that.
what is the general rule about routing?
for example, when I visit AWS website with /en-CA, I see 404 Not Found.
but I visit AWS with /ca, I can touch them.
Why AWS doesn't support /en-CA? or why it uses only /ca not both.
If there are some rules or protocol, let me know about it.
Thanks in advance.

How factory pattern is applied in opening a link from any mail

When we open a link from outlook or gmail, it opens up in browser.
Is there any kind of design pattern involved in it?
Is Factory pattern or Abstract factory pattern applied in this if yes i want to know how?
Any knowledge sharing will be appreciated.
Yes, there are instances of the strategy pattern and factory pattern involved when you open a link from your email client.
First the url scheme is inspected (https:, email:, etc.), and some kind of handler for opening links of that type is looked up from configuration. The client then delegates to this handler to open the link. (strategy pattern)
For http: or https: links, the handler instantiates the system's default web browser (factory pattern) and tells it to open the URL.
The details are quite involved and vary between OSes, but in general terms it always works like this.

Does the JIRA REST API support querying a list of labels?

I see the is the ability to get all components of a project by doing
/project/[projectkey]/components
but I don't see any capability or documentation on how to get the list of labels that are available for a project (something like:
/project/[projectkey]/labels
Does the JIRA REST API support querying the list of labels available on a project?
Just to clarify, labels (at least the built-in JIRA ones) are global entities so they can be attached to any Issue in any Project.
As to your question - no, there's no public REST endpoint to get/change/add labels to JIRA.
Jira Cloud has /rest/api/3/label.
Jira Server provides /rest/api/2/jql/autocompletedata/suggestions?fieldName=labels which is however not paginated and only returns the first few labels (label values can be queried using &fieldValue=X).
However, as hacky workaround you can misuse the API endpoints some Atlassian Jira Gadgets are communicating with. Though this has the following disadvantages:
Are internal APIs
Atlassian apparently plans to replace Gadgets with Dashboard Items eventually
Might change behavior, see e.g. JRASERVER-67446
No pagination (?), responses can be huge
Responses are designed for Gadgets, therefore contain irrelevant data
Labels Gadget
/rest/gadget/1.0/labels/gadget/project-<PROJECT_ID>/labels
Where <PROJECT_ID> is the numeric ID of the project.
Heat Map Gadget
/rest/gadget/1.0/heatmap/generate?projectOrFilterId=<PROJECT_OR_FILTER>&statType=labels
Where <PROJECT_OR_FILTER> can be either:
project-<PROJECT_ID>
filter-<FILTER_ID>

Customer email using .online tld is being rejected

I'm using DotNetKit 1.2.6.5 and SagePayIntegration.Validation() is rejecting a customer email that uses the new .online domain (eg: foo#bar.online) with
CustomerEMail is invalid.
Is this fixed in 1.2.6.7 or is the source code for SagePay.IntegrationKit.DotNet.dll available somewhere so I can fix it?
Despite access to the source code (many thanks to #DavidG) SagePay Support have confirmed that the actual Gateway does not support all these new domains - so even if I modified the DotNetKit it would still be rejected by the Gateway.
SagePay support were very helpful but ultimately the
"... email domain foo#bar.online is not yet supported on our gateway.
We run development sprints continuously and although there are some
domains we may not yet support, we look to in future, dependent on
impact and demand..."
The SagePay Integration Kit uses this regex to validate email addresses:
[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*#(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+(?:[a-zA-Z]{2,4})\b
Which does unfortunately not allow extra long TLDs. Fortunately I have the source code for the kit and I've added it to my GitHub account (along with a bug fix which is why I had to get it in the first place as SagePay are not updating it). You can find it here:
https://github.com/WiredUK/SagePay.IntegrationKit
And the Regex you need to edit is this file:
https://github.com/WiredUK/SagePay.IntegrationKit/blob/801f61cf965c391a98a025aa632949719084cef0/ApiRegex.cs
For info, you need to edit the very last part of the expression from 2,4 (which matches 2 to 4 characters in the TLD) to allow more, for example 2,30.
Edit: And just because I can, I opened an issue and fixed it.

How can I index sub-community discussions and events?

I have written a custom crawler to index all the data from the connections seedlists
https:///forums/seedlist/myserver
When we started utilizing subcommunities, I double checked to make sure subcommunities behave practically the same as communities. They seem to, they have all the same properties in the Connections DB, just subs have a parent uuid. Got it.
I expected my crawler to find the sub communities discussions (basically just iterating through the atom feed with a Java XML parser) and pulling out the relevant information. Are subcommunities not published to this seedlist? If not, there does not seem to be a subcommunity specific seedlist.
We are currently on Connections 4.5
Thank you.
I have found the answer here.
http://www-10.lotus.com/ldd/appdevwiki.nsf/xpDocViewer.xsp?lookupName=IBM+Connections+4.5+API+Documentation#action=openDocument&res_title=Community_entry_content_ic45&content=pdcontent
There seems to be an additional element that links to the sub-community feed from within the community. A crawler will need to send a GET request to that link.

Resources