Image for post
Image for post
(Image Credit — Pinterest)

What is Concurrency?

Carrying out more than one tasks at a time in a pseudo-parallel fashion.

Concurrency is when multiple sequences of operations are run in overlapping periods of time.

Refer to the link for further details.

What is Multithreading?

According to Wikipedia,

Multithreading is the ability of a CPU (or a single core in a multi-core processor) to provide multiple threads of execution concurrently, supported by the operating system.

Refer to the link for further details.

Thundering herd problem

Consider a scenario where multiple threads/processes (with same scheduling priority) waiting for a particular lock Or an I/O event.

Once the lock is released (on a shared object) Or…

In this blog let us explore how we can read System properties from a property file (stored in the system) and pass them as arguments to the Integration Studio’s Embedded MI runtime.

When using a General WSO2 MI Server (not the embedded runtime) we can point the properties file to the MI Server by appending the following argument to the micro-integrator.bat/ file,


MI will read the system properties from the properties file and they can be referred in the mediation flow.

To do the same with the Embedded runtime in the Integration Studio follow the below steps,

  • You…

In this blog let us explore how we can seemlessly share Integration Projects across multiple developer environments using Git and WSO2 Integration Studio.

One commonly raising requirement in large scale Integration Projects is the need to share the partial/complete Project artifacts with other developers. So that the other developers can continue the work from where it was left Or work on another part of the project in parallel.

WSO2 Integration Studio is a tool to design, develop, debug, test and deploy your integration flows. It is a drag-and-drop graphical development environment for WSO2 Enterprise Integrator. …

Image for post
Image for post

In this blog, let us learn some of the Javascript regular expression basics using an example.

Regular Expressions in JavaScript

A Regular Expression, or RegEx, is a pattern used to match character combinations in a string. In JavaScript, regular expressions are also objects.

Let us start by taking some basic examples, and then explain the syntax needed to construct and understand Regular Expressions in further detail.

Let’s create a RegExp object, “re”, that matches any string “S” that begins and ends with the same vowel.

String S,
The length of string S is >= 3.
String S consists of lowercase letters only (i.e., [a-z]).

Image for post
Image for post

Currently, the WSO2 Product Docker images available in the Docker registry are prepackaged with the following artifacts,

  1. MySQL Connector / J (MySQL JDBC Driver).
  • Currently, all container based deployments of WSO2 products
    (ex: Resources for Docker Compose Or Container orchestration platforms such as, Kubernetes) use MySQL as the default RDBMS.
  • Hence, WSO2 product Docker images are shipped with the MySQL Connector / J prepackaged, to avoid the hassle of requiring to include the MySQL JDBC driver during a quick start deployment.

2. WSO2 Kubernetes membership scheme artifacts.

  • WSO2 products (Carbon version 4 based) use WSO2 Kubernetes membership scheme for member…

In the previous post, we discussed how to install a third-party JAR file to the locally .m2 repository.

In this post let us proceed with the remaining options.

Adding third-party JAR to the Project as a System-Scoped file

Consider this as a short term strategy.
Download the .jar file and place it in the local file system folder (make sure the location of the .jar file is read/write accessible).

Include the .jar file directly to the maven project (without installing to the .m2 repository) as a dependency with “systemPath” parameter.

Please find the below example of adding the claim-manager jar file as a system-scoped file.

Installing third-party Jar as a…

Image for post
Image for post

Most of the time when we built a maven project we use JAR files that are hosted in the Maven Central Repository.

Maven Central Repository can be accessed via the following URL:

In this post let us explore, how to install third-party JAR to a project which is not hosted in the Maven Central Repository.

Third-party JAR can be a proprietary JAR that is not hosted publicly OR it can be a custom JAR which you have written.

There are a lot of options available to install a third-party JAR to the maven project.

  • Installing the JAR locally to…

Image for post
Image for post

Sometimes during the maven project build, some of the dependencies might get partially downloaded from the remote repository manager (Maven Central Or Nexus) due to some network issues.

In such cases, the first time the build will fail. When we try to build the project again, we are most likely to get the following error message.

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project saml2-web-app-pickup-manager: Could not resolve dependencies for project Failure to find in was cached in the local repository, resolution will not be reattempted until the update interval of wso2-nexus has elapsed or updates are forced…

Image for post
Image for post

A cryptographic hash function is an algorithm that can be run on data such as an individual file or a password to produce a value called a digest.

The main purpose of the cryptographic hash function is to verify the authenticity of a piece of data.

Two files can be assumed to be identical only if the checksums generated from each file, using the same cryptographic hash function, are identical.

SHA-0, SHA-1, SHA-2, and SHA-3 are some common Secure Hash Algorithm (SHA) family of cryptographic hash functions designed by the National Security Agency. …

Image for post
Image for post

Debugging is like a murdered hunting the crime scene for the evidence he/she has left. It is a discipline which develops critical and analytical thinking. This thought process can be applied to many aspects of life.

Here are few Debugging Rules

  1. Never approach with preconceived ideas.
    Don’t trust what others say, no one knows the codebase thoroughly.
    Only trust the logs.
    Don’t assume this can’t go wrong. Everything has a breaking point.
  2. It might be a serious monster. If the program is doing something unexpected, then either the “program is wrong somewhere or the input is wrong somewhere or some…


Senior Software Engineer @WSO2, B.Sc.(Hons).Computer Engineering

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