Saturday, August 20, 2016

Contact Development Team Feature in Developer Studio

GSOC 2016

For the past 3 months, I got the opportunity do a project in WSO2 for GSOC 2016. My project was to develop the Contact Development Team Feature in Developer Studio.

Developer Studio is an eclipse based IDE which provides complete Eclipse­based SOA development environment for WSO2 Carbon middle-ware platform. Developer Studio provides comprehensive support for developing tools and speedup the development process while ensuring unified tooling user experience across Carbon platform.

Currently Developer Studio users contact the development team via WSO2 web support portal (Jira), so the users have to put additional effort to send error logs, metadata etc. More importantly sometimes users are not aware of sending error logs and other required metadata and as a result most of the bugs get unnoticed.

My GSOC project goal was to develop a new plugin for the users to be able to contact development team within the IDE itself.  This new plugin can be used to capture and report errors to Development team (WSO2).

This is how the new plugin works.

  • When an unexpected error occurs in Developer Studio IDE, the plugin captures this error.
  •  If the error is caused by any plugin related to WSO2 Developer studio, the plugin would collect all the relevant Meta information, the log files, plugin information, java version information and Operating system information that would be useful for the development team to fix the error.
  •  Using the error information and user information, a text report would be generated and displayed to the user for approval.
  • The user can select the option to publish the error in WSO2 Jira or to both publish the error in Jira and email to a user given email address.
  • A remote micro service hosted in WSO2 cloud would be used for the Jira and email publishing.
  • Each error report sent would be persistently stored in the system and they can be viewed using the report archive of the plugin.
  •  The user can inquire the current status of the issue in Jira using the report archive.
  •  A preference page is developed for the plugin, so the user information like name, organization and contact information, the remote micro service URL and Jira project keys and sending options can be set by the user.
  • An extension point is defined by the plugin, so that other plugins can extend it to contribute their plugin IDs and Jira project keys to create an issue in Jira, under their Projects.

The initial project plan was to perform the Jira publishing and Email publishing tasks within the plugin itself. However since that approach had certain limitations like every Developer Studio user needs to have a WSO2 Jira account and a Gmail account, we decided to externalize this task.
For that I developed a micro service and provided the Jira Publishing and email sending services through a single common Jira account and a Gmail account. This way I could easily externalize and standardize the Jira and Email publishing methods. 

Deliverable of the project

The links of key deliverable of the project are listed below.

1. Eclipse plugin project
2. Remote Jira Publisher - Micro service

The links for my GitHub commits are listed below.


Tips on how to use the Error Reporting Tool can be found here.
Using the Error Reporting Tool

Thank You

  • Thank you WSO2 for giving me this opportunity to participate in Google Summer of Code Program. Participating in this program helped me learn a lot of new things and to improve my skills.
  • Thank you my mentors, Jasintha Dasanayake and Kavith Lokuhewage for selecting me for this project, for the guidance and support extended throughout this period and for helping me to complete this project successfully.
  • Thank you Dinanjana Gunaratne for encouraging me to apply for the GSOC program and supporting me throughout this period.


  1. Excellent work during the GSoC time period and hope you will continue to contribute to Developer Studio and WSO2 projects ,

    PS : better to use some solid color backgrounds in the content area it will be easy for readers