Google Summer of Code 2014 Ideas

From Eclipsepedia

Jump to: navigation, search

Existing bugs marked "helpwanted" are a good source of project ideas.

Feel free to contribute the discussion on an Eclipse bug. Keep the discussion on bugs technical. The bugs are not a good place to talk about Google Summer of Code participation. Use the soc-dev mailing list for that.



  • Be creative
  • Be specific: what do you want to be implemented
  • If you are willing to mentor those ideas, add your name and email to the idea.
  • GSoC project ideas should align with an existing Eclipse project
  • If you're an interested student, add your name and email next to the idea. It is ok to have several students interested in one idea.
  • Aspiring students and mentors need to register and submit their proposals on the SoC app

Mentors info

If you were a mentor last year then you are automatically in the list this year (the GSoC site may require that you re-register, but we think of you as "in").

Note that we only accept as mentors people who are known to us. This includes Eclipse committers. If you would like to be a mentor, please either introduce yourself to the group using the soc-dev mailing list, or send a note to EMO.

Ideas submission

Idea proposal should contain the following information:

  • project title, like "WTP - Improve auto-complete in xml editor"
  • description with links to bug reports, project wiki pages, etc
  • Reporter: who submitted idea (optional e-mail)
  • Possible Mentors: who would like to mentor the students
  • More info: other links or e-mail
  • Eclipse Project: link to main eclipse project that improvement is targeting
  • Potential students: who is interested (with optional e-mail). This one completely informal, to actually be interested you need to submit the proposal. Contact the idea owner or possible mentor to get some details before submitting it.


These are some ideas. Students feel free to base your GSoC proposals on these ideas (note that you are more likely to find a mentor for an idea that has been proposed by a mentor). Some of these ideas can be factored into multiple projects; a GSoC project proposal can work on parts of these ideas (i.e. you don't necessarily have to do it all).

There are other sources of ideas. There are numerous bugs in the Eclipse Bugzilla issue tracking system marked as "helpwanted" that may give you ideas.

Eclipse Code Recommenders: Snippet Sharing Infrastructure

Eclipse Code Recommenders comes with a code-snippet search called Snipmatch (developed during previous Google Summer of Codes). Snipmatch allows users to search for and insert code snippets right in their Java editor; all it takes is Ctrl+Enter and a full-text search springs to life.

Under the hood, Snipmatch searches a single snippet repository which is currently backed by a Git repo, to which users can upload new snippets using EGit. Doing so is not supported by Snipmatch's UI yet. Moreover, only a single snippet repository is supported, which makes it impossible to use multiple sources for your snippets.

The goal of this project is to create the necessary infrastructure to manage multiple snippet repositories, possibly with different backing implementations (Git repo, filesystem, Eclipse's built-in templates). Moreover, this project should develop a uniform UI for sharing snippets with other developers.

Additional Resources: Bug 427905

Possible Mentors: Andreas Sewe, Marcel Bruch (contact us on the mailing list)

Interested Students: Olav Lenz

Eclipse Code Recommenders: Livedoc XXL

With version 2.0, Eclipse Code Recommenders made the jump from the Eclipse IDE into the Web: With Livedoc (developed during the Google Summer of Code 2013) it became possible to enrich your good ol' Javadoc with intelligent recommendations on how to use an API.

Livedoc, a stand-alone command-line application makes it very easy to generate enriched Javadoc for your JARs. At the moment, however, it works one JAR at a time.

The goal of this project thus is to create to enhance Livedoc such that it becomes possible to create a large, interconnected web of documentation for different APIs (and in different versions) that can be deployed to as a showcase for Eclipse Code Recommenders and Livedoc. Who knows, it may even become the default Javadoc for other Eclipse projects.

Additional Resources: Bug 428066

Possible Mentors: Andreas Sewe (contact me on the mailing list)

Interested Students: Patrick Gottschaemmer

Eclipse Code Recommenders: Xtext-based Editor for the JFace Template Language

Snipmatch is an incubator project of Eclipse Code Recommenders that makes it easy to search for and insert code snippets into your Java code. It also makes it possible to create new snippets and share these with other developers.

These snippets are written in the JFace template language, a very powerful language which unfortunately not everyone is familiar with. Thus, first-class editor support is needed. This is where Xtext comes in.

The goal of this project is to create a full-fledged editor for the JFace template language usable by Snipmatch (and possibly other projects). It should offer syntax highlighting, code completion, and (last but certainly not least) user-friendly error reporting. One possible stretch goals is the ability to automatically create JFace templates from any piece of selected Java code.

Possible Mentors: Andreas Sewe, Johannes Dorn (contact me on the mailing list)

Interested Students: Stefan Prisca (please note: knowledge of formal grammars and compiler front-ends is very beneficial)

GeoTrellis: Multi-band Raster support

GeoTrellis is a project recently submitted to become part of LocationTech. It is a framework for fast, parallel processing of raster data in the geospatial domain. GeoTrellis provides a number of operations to manipulate raster data, including cropping/warping, Map Algebra operations, and rendering operations, as well as vector to raster operations such as Kernel Density and vectorization of raster data.

Multi-band rasters are a group of rasters that have the same spatial extent and resolution. Examples might include rasters of different spectral bands or a time series of rasters. The ability to deal with a group of rasters like this is common in GIS software, for example GRASS GIS and R (RasterStack, RasterBrick) have this capability.

GeoTrellis currently lacks the infrastructure to handle such a collection of rasters as a single entity. The goal of this project is 4-fold:

  1. Investigate options for ARG multi-band files (may just be multiple ARG files)
  2. set up GeoTrellis to treat a group of rasters as a single entity
  3. provide a framework for developing operations on these raster groups
  4. implement some number of these operations.

One example of an operation is combining red, green, and blue spectral rasters to output a full-color PNG image. Another example is performing a calculation on a vector of values for each cell. If you imagine the rasters as 'stacked' on each other, the vector would be formed from the stack of values for each cell.

Possible Mentors: Rob Emanuele, Eric.J.Christeson (contact us on our mailing list)

Interested Students: please add yourself

GeoTrellis: GeoTiff Reader

GeoTrellis is a project recently submitted to become part of LocationTech. It is a framework for fast, parallel processing of raster data in the geospatial domain. GeoTrellis provides a number of operations to manipulate raster data, including cropping/warping, Map Algebra operations, and rendering operations, as well as vector to raster operations such as Kernel Density and vectorization of raster data.

Currently GeoTrellis requires an additional set of dependencies for reading GeoTIFF files: the geotrellis-geotools project, and GeoTools, which is a large dependency. GeoTrellis has code for writing GeoTIFF files, but we need a Scala-based, fast way to read files of the GeoTIFF format. In this project you will write library functionality to read raster data in the GeoTIFF file file format into GeoTrellis Raster data types. Emphasis will be placed on IO performance, and adhering to the GeoTIFF specification.

Possible Mentors: Rob Emanuele, Erik Osheim (contact us on our mailing list)

Interested Students: please add yourself

Improve CSS support for Eclipse

The Eclipse CSS engine has certain issues and perks. In this project you will work on the CSS engine to fix bugs, improve the existing style sheets and evaluate how to work around limitation in the native widget styling.

Possible Mentors: Lars Vogel

Interested Students: Shashank Vadali

Implement Generics support for the JFace viewers and migrate viewers from Eclipse UI

Last year a student migrated the JFace viewer framework partially to generics. In this task you will finish this work and also migrate interesting viewers from org.eclipse.ui to a new bundle to make them available for pure Eclipse 4 applications.

Possible Mentors: Lars Vogel

Interested Students: Jeanderson Candido

Performance work in Eclipse

In this project you will trace the Eclipse platform, identify performance bottlenecks and fix them. You will also configure and setup the platform performance tests to ensure that the performance of Eclipse can be reliable measured.

Possible Mentors: Lars Vogel

Interested Students: Matthias Mailänder

Eclipse 4 support in PDE and Platform

In this project you will rework the PDE to support Eclipse 4 application. This involves providing templates for Eclipse 4 applications and helping to port e4 tools to PDE or the platform.

Possible Mentors: Lars Vogel

Interested Students: Sakith Indula

Eclipse Platform SWT: Native Wayland support

Wayland is the next generation display server for Linuxes. The project will port SWT to be native Wayland client from its current X background. The work involved will be:

  • porting all direct X* function call to display server agnostic one available from GTK or to Wayland specific if such is not available
  • port all gdk_x11_* function call to display server agnostic one or to gdk_wayland_* one if such is not available
  • verify that SWT runs on top of Wayland without XWayland installed
  • testing and performance optimization to get Eclipse IDE working well.

Additional Resources: Gnome Wayland porting part 1, Gnome Wayland porting part 2

Possible Mentors: Alexander Kurtakov (contact us on the mailing list)

Interested Students: please add yourself

Add CSS support to Nebula NatTable

Nebula NatTable is a flexible framework to compose tables and grids with a lot of custom functionality. It already supports a very flexible styling approach, but currently you need to know about NatTable specific configurations for styling. In the current development state, there is theme styling added to NatTable, to make it easier to change the styling. Creating a plugin that adds CSS support for styling a NatTable would make it even easier to style a NatTable. It would also help on styling Eclipse 4 applications in one place instead of having several styling approaches.

As it would introduce dependencies to the Eclipse framework, the CSS styling engine should be implemented as new NatTable plugin.

Bugzilla Ticket Forum Discussion Extending CSS to handle new widgets

Possible Mentors: Dirk Fauth

Interested Students: please add yourself

Add support for new message extension to the Externalize Strings wizard

With Eclipse 4.4 the new message extension was introduced for plugin-development.

Users should be able to select whether they want to externalize the Strings using the old NLS or the new message extension mechanism.

While creating the properties file should be the same, the Java file generation needs to be slightly different.

In the following blog post you should get some ideas on the Java file generation:

In the linked posts there you should get also some more information on the new message extension if needed.

Bugzilla Ticket

Possible Mentors: Dirk Fauth

Interested Students: please add yourself

Add TranslationRegistry to support the Eclipse Translation Pattern as a service

With Eclipse 4.4 the possibility for Locale changes at runtime is introduced. While the application model itself solves this via MLocalizable and corresponding internal mechanisms, there needs to be manual efforts in the UI to achieve this.

In the following blog post this is called "Eclipse Translation Pattern":

To make it easier for developers to add that support, it would be a good idea to have something like a "TranslationRegistry". The idea would be to have such a registry where a user registers a Control with the corresponding translation key or Messages field. On a Locale change this registry would iterate over all registered controls and update the localized attribute accordingly.

I first thought it should be some extension for JFace, but as E4 is UI toolkit independent, a better idea would be some service in This way the definition would be UI toolkit independent, and every UI toolkit could create a custom registry that take the UI tookit control specifics into account.

Bugzilla Ticket

Possible Mentors: Dirk Fauth

Interested Students: Nishant Gupta

Eclipse IoT: MQTT test and simulation plug-in (Paho)

The initial contribution of the Eclipse Paho project contained an Eclipse plug-in that provides a very basic UI for connecting to an MQTT broker and publish/receive MQTT message. However that tool is not very intuitive and the proposed project would basically consist in revamping it.

The work involved would include:

  • Take the existing plug-in and provide an automated build so as possible adopters can easily install it via an update site,
  • Propose and implement improvements to the existing UI such as: use dialog settings to persist some values, ability to save settings (e.g. "connect to broker X and subscribe to /Y and /Z") so as it is easy to test a given communication scenario
  • Propose and implement simulation-like features, e.g. "publish a random integer value between 1 and 3 on topic X every 5 sec"

Code of the current tool is available here:

Possible Mentors: Benjamin Cabé

Interested Students: Buddhika Dilhan

Eclipse Sirius: JavaFX based Diagram Editor

Eclipse Sirius is using GEF + GMF as underlying frameworks to provide a generic and configurable diagram editor.

JavaFX on the other hand could enable a whole new approach to user interactions by leveraging effects, transitions and animations for instance.

The proposed project would consist in prototyping a generic diagram editor only using JavaFX, EMF and Sirius.

The work involved would include:

  • list the current interactions a user can do (create an node, an edge, enable / disable a layer) and design the user interaction in the JavaFX based editor
  • Work with the team through bugzilla and gerrit/
  • Develop the Eclipse plugins hosting this editor

Possible Mentors: Maxime Porhel, Alex Lagarde, Cédric Brun

Interested Students: please add yourself

Eclipse IoT: MQTT Google Chrome App

There are few desktop client for MQTT and tools that might help debugging MQTT applications. Google Chrome App can use full TCP, so we can have a full MQTT client inside Chrome As an example, the CoAP community have Copper (, and most people find it extremely useful for testing their apps and things.

The work involved would include:

  • Adapt Paho Javascript client or MQTT.js to run inside a Google Chrome App over the exposed TCP API.
  • Design and develop a user interface for MQTT, which can even be open sourced on its own and run with MQTT over Websocket. It might be based on AngularJS or any other popular JS framework.
  • Develop the MQTT Google Chrome App based on the adapted MQTT client and designed UX.

Possible Mentors: Matteo Collina, somebody from Paho or Mosquitto?

Interested Students: please add yourself

Project Explorer and Common Navigator

This not so much an idea itself, but more a pointer to a whole bunch of ideas for ways that students can make real contributions to the Eclipse community.

There are a large number of bugs (of varying complexity) open against the Project Explorer and Common Navigator. There is some discussion on a recent blog post. Consider selecting one or more of these as the basis of project proposal.

Possible Mentors: unknown

Students: please be mindful that as long as the "possible mentors" above is empty, the chances of having a proposal based on this entry accepted is generally smaller than that of a suggestion that does have possible mentors.

Implement an SLF4J-based Logging Center for Eclipse

Eclipse projects use a wide variety of Logging Frameworks like Log4J, Logback, Apache Commons Logging, OSGI Logging and probably many others more. While logging per se is a good thing, there is no central instance in Eclipse that allows to configure the logging system for *all* plugins. This proposal aims to find a student who implements a small logging center that allows to dynamically (re-)configure a logging system based on Logback (i.e, changing log levels for categories at runtime, adding new appenders, displaying logging events in a separate logging view, and finally persisting these settings).

See Bug 358968 for a comprehensive discussion on this issue.

Possible Mentors: Marcel Bruch

Students: Fill in your name.