Difference between revisions of "Google Summer of Code 2011 Ideas"

From Eclipsepedia

Jump to: navigation, search
m (EMF - Provider for OData)
m (EMF - Provider for OData)
Line 218: Line 218:
*Reporter: Alex Leites  
*Reporter: Alex Leites  
*Possible Mentors: TBD  
*Possible Mentors: TBD  
*More info: [http://www.odata.org/ OData] ([http://mailinglist.odata.org/scripts/wa-ODATA.exe?A0=ODATA Mailing List] and [http://mailinglist.odata.org/scripts/wa-ODATA.exe?A2=ODATA;7e492ecf.1007 EMF provider proposal] there), [https://code.google.com/p/odata4j/ odata4j]([http://groups.google.com/group/odata4j-discuss Google group]), [http://www.eclipse.org/forums/index.php?t=thread&frm_id=108 EMF forum], [http://www.eclipsecon.org/2009/sessions?id=272 Building RESTFul Java Applications with EMF]  
*More info: [http://www.odata.org/ OData] ([http://mailinglist.odata.org/scripts/wa-ODATA.exe?A0=ODATA Mailing List] and [http://mailinglist.odata.org/scripts/wa-ODATA.exe?A2=ODATA;7e492ecf.1007 EMF provider proposal] there), [http://olingo.incubator.apache.org Apache Olingo] (and its [http://wiki.apache.org/incubator/OlingoProposal incubator proposal] for more background), [https://code.google.com/p/odata4j/ odata4j]([http://groups.google.com/group/odata4j-discuss Google group]), [http://www.eclipse.org/forums/index.php?t=thread&frm_id=108 EMF forum], [http://www.eclipsecon.org/2009/sessions?id=272 Building RESTFul Java Applications with EMF]  
*Eclipse Project: [http://www.eclipse.org/emf '''EMF''']  
*Eclipse Project: [http://www.eclipse.org/emf '''EMF''']  
*Potential students: Tiger Gui [mailto:tigergui1990@gmail.com tigergui1990@gmail.com],Malith Dhanushka(University of Moratuwa)
*Potential students: Tiger Gui [mailto:tigergui1990@gmail.com tigergui1990@gmail.com],Malith Dhanushka(University of Moratuwa)

Revision as of 19:44, 13 September 2013



  • 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.

EGit / JGit - git-blame support

It's about adding support for "git blame" in JGit (git library in Java) and EGit (Eclipse integration and UI). There is an early proposed draft for the jgit part by Benjamin Muskalla which is based on prior work from Manuel Woelker but there wasn't much progress on that in the last months.

If you are interested to have a closer look refer to the EGit Contributor Guide to find out how to setup your environment for contributing and maybe try to fix some low hanging fruit from our bug list to get a feeling what these projects are all about.

  • Reporter: Chris Aniszczyk
  • Possible Mentors: Chris Aniszczyk, Matthias Sohn
  • More info: EGit mailing list
  • Eclipse Project: EGit
  • Potential students: Alex Korotkikh [1], Stefanos Antaris [2]

Acceleo - Export profiling data to gprof

Acceleo has a nice profiling model, so it could be nice to be able to export this data to gprof files so that the user can leverage other more sophisticated tools to analyse the trace. See bug 293304. If you want to know more about the profiling in Acceleo see the user guide.

If you are interested to have a closer look refer to our Contributor Guide to find out how to setup your environment for contributing.

EEF - Enhance the end user experience

EEF provides a three steps process to generate eye-candy user interface for your models. This process could be simplified by doing automatically several steps instead of asking the user to do it. See bug 338939 and bug 338942 for instance.

A second part of the work is to create a EEF models designer. This designer would help EEF users to defines easily their UI models (with enhanced model presentation, drag'n'drop, ...) and to iterate in case of ecore model changes.

Finally the last part consists of link EEF and Eclipse WindowBuilder in order to allow EEF user to define their views with the WYSIWYG editor of WindowBuilder.

If you are interested to have a closer look refer to our Developer Guide to find out how to setup your environment for contributing.

CDT - Build UI Improvements

Currently the CDT build UI is hidden away in Project Properties. We'd like to add nodes in the Project Explorer under each project to list the build configurations. Actions would be added to open up a build configuration editor to change the settings. Actions would be added for invoking build and clean, and for setting the default build and indexer configuration.

CDT - CMake and/or Qt qmake Builder Integration

CDT has it's own managed build system, but we are seeing more and more use of external managed builders such as CMake and Qt's qmake. We need to make sure the infrastructure is in place to allow for integration of these builders into the CDT builds. Then we need to implement them. CMake is a priority because there already exists a qmake builder. But then the qmake builder isn't very standard and could be redone.

CDT - Static Analysis Checkers for C/C++

Codan is a code analysis framework for CDT. The project goal is to create a framework for static analysis and checkers for C/C++. Looking for contributors to create checkers using CDT and Codan API for code style, program errors, security vulnerability, and so on. Project is extremely scalable (can be done by lots of students in parallel). Students should have strong background in compiler technologies and C/C++ (and Java/Eclipse obviously).


Mylyn maintains a list of ideas on this the Contribution Ideas wiki page. If you have your own idea or if you interested in one of the suggested ideas please feel free to contact mylyn-dev@eclipse.org or join one of the weekly meetings.

  • Reporter: Steffen Pingel
  • Possible Mentors: Benjamin Muskalla, Steffen Pingel
  • Eclipse Project: Mylyn
  • Potential students: Muslim Chochlov muslim.chochlov@gmail.com

Equinox - Bndtools based OSGi bundles maker project

I want to build a bndtools based OSGi bunlles maker project, it will help us analyse java application and split the whole project into several OSGi bundles. This tool can analyse source code, supply vari-size grained split and refactor suggestions, show the analyse result in a GUI view and we can change split solution manually, then it will split the project into several OSGi bundles/projects. I have started the development job for this tool, if you are interested, you can check project proposal details and online demo here;

Sequoyah - Add multi-language support to Eclipse plugin projects using the Sequoyah Localization Editor

The Sequoyah project is focused on Mobile application development tools. One of the components of Sequoyah is the Localization Files Editor (LFE), which is a visual editor for handling parallel resources for multi-language projects. The LFE has a reference implementation for Android, although it was written in a way so that the model is abstracted from the underlying implementation.

We are proposing a feature for the Sequoyah Localization Framework, which will extend support to Eclipse plugin projects. In order to do that, the framework must be changed to handle PDE projects, which contain strings files in the Java .properties format. The result will be a new set of editors that will allow Eclipse projects to localize themselves more easily.

The Eclipse Babel project has expressed interest in participating in this work.

  • Reporter: Marcel Gorri
  • Possible mentors: Marcel Gorri, Werner Keil (Babel)
  • More info: Sequoyah mailing list
  • Eclipse Project: Sequoyah
  • Potential students: Lucas DE CASTRO (lucastdcj@gmail.com); Everton Ferreira dos Santos (everton.ic08@gmail.com)

Eclipse Communication Framework

ECF is a framework for building distributed servers, applications, and tools. It provides a modular implementation of the OSGi 4.2 Remote Services standard, along with support for REST-based and SOAP-based remote services, and asynchronous messaging for remote services.

Eclipse IDE for Education

The Eclipse IDE for Education is a version of Eclipse streamlined specifically for use by university and college students. The environment provides support for programming languages that are commonly used in university courses, including Java, Scheme, and Prolog (though only Java is supported for the time being).

Eclipse OCL - Add an extensible Java Code Generation Framework

The OMG's OCL specification provides a core expression language for an increasing range of modeling languages. The Eclipse MDT/OCL project provides an implementation for which evaluation occurs through interpreted evaluation of the OCL Abstract Syntax Tree. With the advent of Validation, Setting and Invocation delegates in Ecore, it is very desirable to support direct synthesis of Java code avoiding the need or incentive for manual recoding. More generally direct synthesis of C and VHDL implementations will expand the project utility.

ECF: Salvo, the Eclipse NNTP/Newsreader Project

A subproject of ECF aims to provide a communications layer to NNTP servers (network news or forums) as well as a slick newsreader that is operated from within the Eclipse IDE.

Downloads and more Information Google on Salvo

The newsreader and the underlying protocol implementation is currently release 0.7.0 with 0.8.0 pending. The project has all the basic stuff: A local storage, subscribe to server, subscribe to newsgroups, read and post of articles.

There are several fields where students can work on on this project, see this entry for more details.

EMF - ProtocolBuffer EMF Serialization

ProtocolBuffer is binary serialization API which is smaller and faster than XML. It would be interesting to be able to serialize EMF models with it.See http://code.google.com/intl/fr/apis/protocolbuffers/

Amalgamation - Modeling Example

This idea is about providing an example of application of the modeling project tooling through a whole chain, from Ecore domain model, to code generator and going through model to model transformations and textual DSL. Basically taking the "Modeling Project as a DSL Toolkit" book examples, updating those and integrating them in the Modeling discovery UI available in the package.

Orion - Git client

The first release of Orion is going to provide a simple but fully functional support for git. The idea behind this proposal is to identify missing bits and address them. The work will need to be done on the server by providing required services and in the UI (browser client). Required skills: Java, JavaScript, git, RESTful services.

PDT - Orion Web IDE PHP Editor

Orion is going to dominate the way the web developers work with their code, grow their websites and build next Facebooks, Googles and Twitters. Unfortunately they won't make it without PHP editor. The task is to research existing Orion code base, determine killer feature set and drive the implementation of an example PHP editor, by working closely with Orion developers and PHP community. Required skills: Java, JavaScript, RESTful services.

EMF - Provider for OData

Open Data Protocol (OData) is a Web protocol for querying and updating structured data. It uses technologies such as HTTP, AtomPub, JSON etc. OData can be used to expose and access information from a variety of sources. There are many existing OData-capable producers and consumers.

Exposing EMF models via OData would make them accessible from any OData-capable client, but also from any browser / HTTP-capable client. This can be done in a generic way for any EMF model, including store-backed (e.g. CDO-backed) models. Anything convertible to Ecore (POJO/UML/XSD/...) could be OData-enabled as a result. The implementation could use odata4j project or Apache Olingo as a generic framework for Java-based OData providers.

EMF - EMF Databinding for Apache CXF

Implement EMF Databinding for Apache CXF. Note that this was one of the goals of the Servus Project (which is no longer active).

EGit - EGit Synchronize View support part 2

There are some things that can be implemented or improved in EGit Synchronization eg. synchronizing on folder level, synchronize wizard, show conflicts, include non-workspace resources in 'Workspace model', remove IO operations from UI thread, improve context menu action and so on...

  • Reporter: Dariusz Luksza
  • Possible Mentors: Matthias Sohn
  • More info: EGit mailing list
  • Eclipse Project: EGit
  • Potential students: Dariusz Luksza

Tools - Implement a tool for compositional verification of temporal safety properties

The goal is to add a scalable formal verification tool into Eclipse to aid software development. I propose the integration of CVPP, which is a tool set that implements a compositional algorithmic technique for the verification of Java software. CVPP is mature, as can be testified by the significant number of scientific publications it generated. It was developed jointly from researchers at KTH (Sweden), U. of Twente (Netherlands) and ETH (Switzerland).

CVPP verifies control-flow safety properties. This means that it can verify properties of the type "method A will always be invoked after B has finished", or "a call to method computeVote can only happen when nested inside to a call to method startVotingSession" or "the method authenticateUser has to always be called before "giveAccess" method. To have a better understanding, one can try ProMoVer, which is a web tool that wraps the verification steps of CVPP.

The idea is to provide a push-button approach for the user once it has stated the desired properties using some temporal logic, e.g., LTL. In case the check fails, the tool provides a counter-example, which is very helpful to understand the non-compliance. As mentioned before, the verification method is compositional, which implies that it may scale. Moreover, the support for open systems, i.e., systems that don't have the full implementation yet, is on the way. This brings new possibilities, such as one developer can verify its own code, even if he doesn't have yet the code from another college.

IEE - Integrated Engineering Environment

Universal platform to enlarge Eclipse IDE functionality. My proposal is interesting to you because it provides creation of custom embedded editor tools, including math evaluator and language translators, so potentially it covers a lot of fields of interest.

The main idea is to integrate specific engineering and educational tools to the powerful programming platform. Two main goals are raising up usability and effectiveness.

The competitive edge of our project is that the prototype is already developed, it performs symbol evaluations and image insertion straight in Eclipse java source editor. Code became more documented and understandable, at once it keeps being runnable.

The project can be logically divided in two parts: platform development (until 1 of July) and tools development (until the end of summer).

Examples of tools in short rate plans:

math to java translator;

prolog to java translator.

The methods I use could be also implemented in Eclipse for Education project, in my opinion it's very useful to insert images in source code, especially for students. Inserting images(with block-schemes or algorithms) straight in the source could make the code clearer for the student.

  • Reporter: Egor Ivanov <egor7ivanov @ gmail.com>
  • Possible Mentors:
  • More info: [IEE repository - wiki, prototype, snippets].
  • Eclipse Project: IDE4EDU, DLTK, JDT
  • Potential students: Egor Ivanov,Pavel Ershov, Artem Bankin, Sergey Khavrenko, Vlad Efremov

Code Recommenders: Extended & Crowd-sourced Javadoc Platform

API documentation, independent of how much time has been spent on writing them, lacks the information how developers actually use these APIs. This information, however, can be easily extracted from code that *uses* the APIs in questions, and thus could be used to enrich existing API documentation with real usage driven documentation. As part of the Code Recommenders project several mining approaches have been developed to find and extract interesting information from example code (see http://code-recommenders.blogspot.com/2010/03/problem-of-incomplete-javadocs.html for a more detailed introduction to this topic).

However, appropriate means to present this mined documentation in Eclipse are missing. As part of this GSOC project, student(s) may implement means to integrate this mined documentation into Eclipse, for instance as a new "Extended Javadoc view" that may serve as a replacement for the existing Javadoc view, or as new kind of proposal info popup window inside Eclipse' code completion etc.


EPreferences project is an Eclipse plugin that aims at creating comprehensive preferences mechanism for the Eclipse e4 without the faults of its predecessors. Special focus is set on introducing better import / export handling with preferences grouped into a tree-like structure, as well as proper preferences validation and preferences discovery mechanism. To facilitate setting default values and groups for preferences a visual editor will be created.