WSO2 Internship - I

5 minute read


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.

I spent the first seven days of my internship with orientation. During the orientation, I learned about the company culture, company infrastructure, and harassment policies.

During the orientation, I had some technical sessions with the engineering division of the WSO2. They introduce WSO2 products starting from carbon architecture and walk us through other products such as API Manager, Data Analytics Server, Enterprise Mobility Manager, IoT Server, ESB Server. The engineering team also explains about the advancement in Integration server, which is parallelly developing with ESB- Enterprise Service Bus. At the beginning of the next week, the company members present the available projects and provide me with preferences to choose the project. Based on my preferences, the company assigns me to a specific project to work on during my internship.

My Internship project: Based on my preferences, the company assigned me to the “HL7 Monitoring Solution”. This project belongs to WSO2 Data Analytics Server(DAS) team. My mentors for this project are Mr. Anjana Fernando and Mr. Inosh Goonawardana.

As a starting point of my project, my mentors instruct me to study how DAS works with the help of DAS source code. Also, learn about how Maven, Ant, and other build tools work. I also researched the new features of Java 8 to make better use of when implementing HL7 monitoring solutions.

Next, I study the project’s domain by researching different HL7 monitoring solutions and looking at the carbon-mediation to implement the HL7 monitoring solution. After that, I explore the HAPI library, a Java library for HL7 version 2.

In addition to these, I also had some minor research and study of Apache Spark and Siddhi Query Language used in the DAS Management console. I also researched on H2 Database used in the database design of Carbon products. At the end of the research, I learned that we could use DAS in three phases: reactive, interactive, and batch processing. We use spark for batch processing and Siddhi for real-time or reactive processing. But my project belongs to the interactive category.

Finally, I focus on HL7 deeper with WSO2 ESB,, HAPI, and learning new things related to an HL7 data publisher and get a clear Idea on HL7 and My project.

During this period, I face few problems, and next, I will discuss the problem and how I managed to solve them.

Problems Encountered

Problem 1:

Description: When I try to build WSO2 DAS, using mvn clean install command, the build fails in the first place. To fix this problem, I applied the following solution.

Solution Applied

Solution Applied: Based on the error logs, I learned that few test cases failed while building the project. So as initial steps, I tried to build the project without test using ```mvn clean install -Dmaven.skip.test=true``` as instructed in Apache Maven. and it works fine. ( this is common when building a project which is in production)

Problem 2:

Description: When trying some examples provided in HAPI API, I had an issue with a different version of the HAPI since it recent version(released four years ago from today) version 26, I mainly used version 22, but some of the examples didn’t support version 22, as they don’t contain it.

Solution Applied

Solution Applied: So I try it with version 24 for those cases; in general, version 21 and version 24 look similar, but version 22 is different from different methods. this is a copied version of original examples provided by the HAPI, for ease of access and “it is hard to get the code in normally, as line numbers also included, I formatted the code and uploaded it into Github”

Note:- Above codes are not mine, :relaxed:

Problem 3:

Description :

When working with WSO2 ESB 4.8.1, I first download the project from the Github repository and start the server using the script sh /bin/ It successfully loads the server, but It doesn’t link to the Management console of ESB. It also produced some warnings to set up the CARBON HOME and mentioned that the particular project requires java 1.6 or 1.7. Then I configured the JAVA_HOME and set the PATH environmental variable for Java version 1.8.

Solution Applied

So I replaced PATH and

Solution :

So I replaced PATH and JAVA_HOME</code> variable in ```.bashrc``` by redirecting to the earlier version of Java, and It worked fine.

A Contradictory Fact: though ESB 4.6.0 is a lower version than that of ESB, 4.8.1 works fine with this Error mention in the description. If anyone who an exact answer, please tell me in the comments :relaxed:. It will be helpful to me.

Say tuned for the next post.


  3. And Generic Google Search on Each Unknown Phrases and Words.