This page contains suggested student proposals for GNU Classpath.

For students

Students, please feel free to either adopt one of these proposals OR suggest something else. The official Summer of Code page is at make sure you read all the official pages there. When submitting a Google Summer of Code proposal for GNU Classpath, make sure you read the general GNU SoC Guidelines. These guidelines also provide a nice summary of important things to mention in any application (Benefits, Deliverables, Plan, Qualificaton, etc.) In addition to those you might want to read up on the GNU Classpath Hacker Guide and/or the GCC contrib and/or GCJ contrib pages.

For Google Summer of Code, you can choose either GNU or GCC as mentor organisation. Note that there are also other ideas for those projects if none of the ideas below fit you. See and Again, you are also more than welcome to propose something that is not on this list yet.

For maintainers/mentors

GNU Classpath developers, please feel free to add further entries or offer yourself as a mentor :)

Select tasks that a student could do if they had 2 months to work on it full time (assume they are smart, but might not have a lot experience and might need to learn some of the project customs). Please mention when you are willing to be a mentor for the project.


There is also:

but these are not as up to date.

Support the Java Attach API

Possible mentors: Andrew John Hughes (gnu_andrew)

This is needed to run JConsole locally (which would be the end goal of this project). Having it as part of our VM interface has general usefulness as VMs will need this for OpenJDK too.

Using JaxWS from OpenJDK

Possible mentors: Andrew John Hughes (gnu_andrew)

OpenJDK already has a complete implementation of JaxWS (various javax.xml.* packages). It's probably worth making this buildable by GNU Classpath rather than reimplementing it from scratch.

Support JBoss

Possible mentors: Andrew John Hughes (gnu_andrew)

Christian Thalinger filed a number of bugs about this yesterday, and there are a few others still in our codebase:

Support TomCat

Possible mentors: Chris Burdess (dog), Andrew John Hughes (gnu_andrew)

I know we did at one point, but...

Support Batik

Possible mentors: Andrew John Hughes (gnu_andrew)

See the Batik mailing list. Classpath should be able to run Batik.

Glib as the Native Layer

Possible mentors: Andrew John Hughes (gnu_andrew)

We could simplify the portability glue code by using glib underneath. We're using glib implicitly in the GTK peers already, and it would let us delegate the responsibility for portability wrappers out of classpath, while at the same time making the native code work transparently on win32.

Rewrite Qt peers using Jambi

Possible mentors:

Our Qt peers are rotting away, and that means it's time for someone to come in and rewrite them. Qt Jambi are the official bindings for Qt for Java code, so it could be both fun and useful to rewrite our Qt based AWT peers in pure Java.

Update GJDoc to support the 1.5 language constructs

Possible mentors: Andrew John Hughes (gnu_andrew)

Within the GNU Classpath Free Java stack, there remains one component that can not yet fully handle the 1.5 language constructs such as generics, enumerations and annotations. A development process of approximately two years ensured that the main code base and VMs supported these extensions, but our documentation generator has so far simply being patched so that it can at least generate documentation for the current codebase. The documentation for our latest release illustrates some of the problems, notably in classes like java.lang.Enum. GJDoc really needs a new parser to handle the 1.5 constructs and then appropriate adaptation to render them correctly in the HTML doclet.

Add file output support for the sound API

Possible mentors: Mario Torre (neugens)

Last year's Google Summer of Code saw a successful proposal to add support for reading and playing sound files using a GStreamer implementation of javax.sound. Support for writing sound files is still missing however.

GUI Ideas

Add JDWP support for jamvm or kaffe

In particular we want to be able to debug the core GNU Classpath libraries from Eclipse. GNU Classpath contains a generic JDWP server implementation, but this is not yet hooked up to any runtime. Work is underway for gij support, but this will at only enable debugging application code since gcj doesn't use the interpreter for the core classes (they have a ahead of time precompiled libgcj for speed). Hooking JDWP support to a traditional interpreter like jamvm would enable jdwp debugging of core classes.

GCJ Ideas

GNU/Linux Desktop Integration Ideas

StudentProjects (last edited 2009-07-30 21:28:55 by AndrewHughes)