In this post let us discuss a scenario where a missing semicolon error is interpreted as a different error by the compiler in a free-form programming language like C.

What is a Free-form Programming Language?

Free-form language is a programming language in which the positioning of characters on the page in program text is insignificant.

Program text does not need to be placed in specific columns as on old punched card systems, and frequently ends of lines are insignificant. Whitespace characters are used only to delimit tokens, and have no other significance.

In free-form languages the end of a statement is detected by the compiler based…


In this post let’s explore how we can setup multiple github (github.com) accounts to seamlessly perform git actions without switching between accounts and re-authenticating.

Consider you have two private github accounts hosted in github.com.

Default behavior,
In order to perform git operations (pull, push, clone, etc) on repositories hosted under one account you need authenticate using the credentials of that account, and each time you need to switch to the other account (on the same git provider) you need to authenticate again. This hinders the productivity and workflow.

Hmm… How can we overcome this and seamlessly work with repositories hosted…


When using git commands via Terminal, Git will sometimes need credentials from the user in order to perform operations; for example, it may need to ask for a username and password in order to access a remote repository over HTTP/HTTPS.

“gitcredentials” module is used to request these credentials from the user as well as stores these credentials to avoid inputting these credentials repeatedly.

Git Credentials Avoiding Repetition

Inputting the same credentials over and over can be a frustrating experience for the user.

Git provides two methods to reduce this annoyance:

  • Static configuration of usernames for a given authentication context.
  • Credential helpers to cache or…


(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/ micro-integrator.sh file,

-Dproperties.file.path=<Path_to_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. …


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]).


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…

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: https://mvnrepository.com/

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…

Seralahthan

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