In this article the following topics will be covered.

  1. Creating a Siddhi project and a Siddhi file in Intellij IDEA
  2. Running a Siddhi file in Intellij IDEA
  3. Debugging a Siddhi file in Intellij IDEA

[Want to know how to setup Siddhi in Intellij IDEA? Then checkout my previous article.]

Creating a Siddhi project and a Siddhi file

Creating a new Siddhi project

  1. Go to File -> New -> Project. Select Siddhi project type and click Next button.

Siddhi is a java library that listens to events from data streams, detects complex conditions described via a Streaming SQL language, and triggers actions. It performs both Stream Processing and Complex Event Processing. You can run Siddhi with additional functionality in WSO2 Stream Processor as well.

In this article I’m going to talk about ,

  1. How to install Siddhi plugin in Intellij IDEA
  2. Setting up the Siddhi SDK

Let’s get started!

Installing Siddhi Plugin

NOTE: You need to have IntelliJ IDEA 2017.2.5 or above version to use the Siddhi plugin.

1)Go to File ->Settings (Preferences in MacOS) and select Plugins section.

2)Select Browse…

(Prior knowledge in Gradle, Checkstyle, FindBugs is required to understand this blog)

Currently I am working on a gradle based project in WSO2 and I met with a requirement where I wanted to add Checkstyle and FindBugs plugins to my gradle script. So as the first step(which everyone do normally :D) I googled about this and found some solutions which are NOT clearly describing the topic. So I thought It would be ideal if I write a blog on this.

What is done by the Checkstyle plugin?

The Checkstyle plugin performs quality checks on your project’s Java source files using Checkstyle and generates reports from these checks.

What is done by the FindBugs plugin

Image courtesy:

Recently I wanted to move all the content from my github repository to a repository which was managed by the company I am working now. You may say that It is really easy because I can fork that repository to my github account and do the changes and send a Pull Request to the main repository. But in my case I created my own repository long time ago, the company created its repository. So in this case company repository has a newer commit history than my commit history. (my commit history starts long time before the company one starts) The…

Go to Tutorial 1

In this article i will be considering on creating a Gradle project for plugin and implementing the file type recognition. Let’s consider Sample is the name of our custom language and the file extension for the language is .sample. I used gradle in the project because it is really easy to configure and do the necessary changes later in the project.

1. Creating the Gradle project

Click Create New Project or File -> New -> Project and select Gradle.

Step 1

Provide a GroupId and ArtifactId.

As my first intern project at WSO2, Inc I got the chance to develop a plugin for the Siddhi language. Siddhi is a query language which is used inside the WSO2 Complex Event Processor. Building this plugin was a challenging task because the documentation given by @intellijidea on developing a custom plugin is not descriptive enough, specially when implementing the debug functionality in the plugin. So I thought to share my knowledge on developing a custom language plugin for Intellij IDEA.

Custom Language Support

Custom language support provides basic functionality for working with a particular programming language. This includes:

  • File type recognition
  • Lexical…

Since this is the time period where almost all the undergraduates going for the internship interviews, I thought it is high time to write on preparation for the internship interview. This checklist provides a guide for a person who is looking for the software engineering trainee position.

Object Oriented Programming concepts

Almost all companies ask questions from this section. It is a must to know the basics of OOP concepts. It will be great if you can remember and explain these concepts with practical examples. These examples will help the interviewer to get an idea that you know these concepts very well.


UML Diagrams


I had a problem when using the Raspberry pi which is I don’t have a separate display or a monitor to connect it. I had only the laptop with me. So after googling I found some interesting stuff. The best part is you can use your laptop’s(or PC’s) keyboard and track pad(or mouse pad) with the raspberry pi. Let’s see what is this method.

What you need

How to do it

After getting what you need, downloading and installing required software in…

Since this the time of the year where most of the students who are looking for internship opportunities, I thought to write about How to create a good looking CV. Use this as a guideline to create a remarkable CV of you.

CV is simply a material which showcase yourself. CV is the first impression that will go to the reader’s mind about you. So basically, CV is a DO or Die thing. If you get the attention you have a go. If not 🙁

Short and sweet

Think the reader gets 400 CVs and your CV is among them. Think how long…

Image Courtesy:

First of all let’s see what you need

  • Obviously a Raspberry Pi
  • Stable power supply
  • 8GB micro SD card (anything more than 4GB is okay)
  • Monitor or TV
  • HDMI Cable (If you are using a old monitor get a HDMI to VGA cable)
  • Raspberry Pi Casing — optional
  • If you are using an old raspberry pi model get a Wi-Fi adapter or a Ethernet cable. Edimax EW-7811Un Wi-Fi adapter will be a great choice.
  • A USB mouse and a USB Keyboard
  • Micro SD card reader

The RPi use a micro USB for power and it is really important to get a good power supply. If you are using…

Raveen Savinda Rathnayake

Software Engineer @WSO2 | Graduate of University of Westminster |

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store