GSoC 2016 : Pair programming with Eclipse Che Cloud IDE

Overview

I have contributed to Eclipse Che as my Google Summer of Code (GSoC) 2016 project. In this project I have concentrated on implementing a pair programming extension for Eclipse Che.  The implementation was divided into the following three sub tasks

  1. Display cursors of other participants
  2. Participants getting notified when the files which are not opened by them are getting modified at the moment
  3. Chat feature.

Implementation

Work in progress

  • Chat feature should be implemented.
  • The implemented extension should be split into two separate extensions.
    1. One plugin should be a general extension for pair programming. Any protocol other than Eclipse Flux should be able to plug to this plugin and use.
    2. The other plugin should be a sample protocol for the above plugin one. In this case, it should be Eclipse Flux.

Demo

Requirements

  1. Java 8
  2. Maven 3
  3. npm
  4. Docker

To make the demo up and running:

Build and launch Eclipse Che (With pair programming extension)

  1. Clone my forked repository (https://github.com/rnavagamuwa/che.git)
  2. Go into the cloned folder and build the product.
  3. Launch Eclipse Che

Use the bellow code snippet to execute the above steps

Enable extension in Eclipse Che

  1. Create a workspace with Eclipse Flux by selecting the Flux stack from the stacks library. (Dockerfile which is used to create this stack can be found here )
  2. Start the workspace, open in IDE and create a new project. You can simply select a sample project in the previous step.
  3. Start the flux custom command.
  4. Open a file to edit.
  5. Open a new browser windows to the same workspace, open the same file to edit.

Video demo of the plugin

Blog posts

During the implementation, I posted some interesting and pivotal posts on my personal blog.

Finally I’d like to express my gratitude and thanks to my mentor Sun Seng David Tan (https://twitter.com/sunsengdavidtan) for immensely guiding me during the GSoC period. Without his guidance, I wouldn’t have completed my project. This was an amazing experience and I was capable of gaining a thorough knowledge on the dimension. 🙂

 

Leave a Reply