WSO2 Internship - V

2 minute read

Published:

In this series of posts, I provide some key points and Ideas that I report to my university during my internship. I arrange these posts as a set of reports, where each report provides the summary of tasks I have done during those four weeks of my training and the experience I gained during that period.

This post is the fifth post in the series of posts about my internship @WSO2.

I mainly focused on the last parts of my projects these four weeks, completing the search part and moving into the notification part. I have made the search part look like the one that existed in the Business Activity Manager’s Message Console. I also make it work efficiently for the dashboard level.

Then I move into the notification part; first, I have looked into the real-time analytics parts such as siddhi queries and execution plans. I have a look at the documentation and get a clear idea of that. Then I have a meeting with mentors regarding implementing things, and based on that, out of the six ideas proposed; they choose two scenarios since it becomes worthwhile doing. And I started doing that.

In the meantime, I also focused on the packaging artifacts as CApp. Then I started designing the dashboard first design dashboard to display the alerts that persisted in the event store. Then I focused on developing Interactive Map using the leaflet javascript library, and Also I improved it to display the popup. After that, I have a look into the notification of SMS and Email Alerts using Alert Setting.

Problem Encountered & Things I learnt

Arbitrary Attribute

We can’t directly use the arbitrary attribute as it is commonly available as an arbitrary data map. The way to get specific arbitrary attribute is,

cast(map:get(ArbitraryMap,'relatedfield/key'), 'typeOfKey') as fieldName, here typeOfKey can be string,long,int,double. fieldName is used for ease of access.

cast(map:get(ArbitraryMap,'relatedfield/key'), 'typeOfKey') can be used to filter the input streams based on our requirement.

Dealing with jaggery controller with CApp

We can use jaggery controller at dashboard rather than deploying it at /portal/controllers/apis.

Template manager

Template manager use for complex event processing related concepts mainly, it is best practice for making the custom publisher, executionplans, eventstore, eventstream.

References

My Blog Links :

  1. Packaging Artifacts as CApp
  2. Some Useful Javascript Libraries
  3. Datatables Makes Things Easy
  4. Search Comparator & Apache Lucene