This page is about the 2009 edition of GSoC - see http://community.apache.org/gsoc.html for the 2010 edition.

Google is sponsoring the 2009 Summer of Code, the The Apache Software Foundation (ASF) is officially participating this year again as one of the participating mentor organizations. This page lists all the subjects currently proposed by the Apache Software Foundation.

More topics are being added all the time, come back regularly if you don't see something you fancy. Some ASF projects are also willing to accept students own ideas, feel free to suggest things on project development lists.

*** STUDENT APPLICATIONS ARE CLOSED ***

See the GSoC 2009 timeline for more info.

Students: read this

First, review the GSoC wiki page on Advice for Students to make sure you really want to apply to GSoC.

If you (as a student) find an idea you like, we ask that you create a list of deliverables, quantifiable results for the Apache community, a detailed description / design document, an approach, an approximate schedule and something of a background text. In other words - sell yourselves, as if this was an actual job. Feel free to add a link to your proposal on this page, in the "status" field of the corresponding project description. Take a look at last year's submissions at SummerOfCode2008 to get an idea of what worked and didn't.

Philip Johnson's GSoC video presentation contains very valuable advice for students, don't miss it!

Contacting the ASF

The ASF is not just one project, it is a federation of projects, see the lists at http://apache.org/ and http://incubator.apache.org/. Each of our projects has its own community of users, contributors and committers, and GSoC students will usually be interacting with just one of these communities.

Each of the proposed subjects below is tied to a single ASF project, see the ASF Project field in the subjects descriptions below.

To ask questions about one of the subjects listed below, look at that field and go to that project's website to find the mailing list addresses to use to contact the project's community.

Prospective ASF mentors: read this

Mentors must register with the GSoC webapp, and request to become a mentor for the ASF organization. Make sure that the email address you use for that (it's often your @gmail.com address by default) is registered in committers/MailAlias.txt so that we can match it to your ASF account. You should also register your GSoC Link Id to committers/GSoCLinkId.txt.

All ASF projects are invited to submit their ideas to this page. Any Apache member and experienced committers can submit ideas using the template below. We are looking for as many interesting projects as we can come up with. For more info about mentoring, please read our SummerOfCodeMentor page.

ASF Subjects for Summer of Code

[Please add in project name order]


Template

Subject ID

project-id

Title

a short desciptive title of the subject

ASF Project

the ASF project(s) tied to this subject

Keywords

keywords on this subject, like language, technology or concept used

Description

a paragraph describing what this subject is all about

Possible Mentors

volunteer mentors for this subject

Status

indicate whether this subject has already been assigned to a participating student


Apache Camel

Subject ID

camel-dynamic-routes

Title

Camel Dynamic Routes

ASF Project

Apache Camel - http://camel.apache.org/

Keywords

Camel, REST, AST, Ruby, Groovy, Python, Scala, Java 5

Description

Apache Camel features a web console that allows one to visualize and modify routes using XML. Add support for modifying the routes at runtime using other languages like Ruby, Groovy, Python, Scala. For details see http://cwiki.apache.org/confluence/display/CAMEL/Google+SummerOfCode

Possible Mentors

Jonathan Anstey <janstey AT apache DOT org>

Status

http://socghop.appspot.com/student_proposal/show/google/gsoc2009/alloyer/t123873174058

Subject ID

camel-dsl

Title

Camel DSL in Ruby and Python

ASF Project

Apache Camel - http://camel.apache.org/

Keywords

Camel, DSL, Ruby, Python, Java 5

Description

Extend Camel DSL already available for Java, XML, Groovy, Scala to other dynamic languages like Ruby and Python. For details see http://cwiki.apache.org/confluence/display/CAMEL/Google+SummerOfCode

Possible Mentors

Hadrian Zbarcea <hadrian AT apache DOT org>

Status

http://socghop.appspot.com/student_proposal/show/google/gsoc2009/alloyer/t123872396878


Apache Cocoon

Subject ID

cocoon-3-monitoring

Title

Cocoon 3 Monitoring

ASF Project

Apache Cocoon - http://cocoon.apache.org/3.0/

Keywords

Cocoon 3, Cocoon Spring-Configurator, JMX, Spring 2.5, Log4j, Java 5

Description

Enable JMX monitoring for Cocoon 3 web applications. For details see http://cocoon.apache.org/3.0/student-project-ideas/cocoon3-monitoring.html

Possible Mentors

Reinhard Pötz <reinhard AT apache DOT org>

Status

One interested student: Dariusz Łuksza (proposal - updated)


Apache Commons Net

Subject ID

commons-net-ssh-and-scp

Title

Add SSH/SCP Support to Commons-Net

ASF Project

Commons Net - http://commons.apache.org/net

Keywords

SCP, SSH, Java 5, Network Protocols, Sockets

Description

Commons-Net is a popular framework that supports a variety of low-level network protocols, including FTP, FTPS, Telnet, and NTP. It would be a fantastic addition to the project to add basic SSH/SCP support. The work would entail reading the existing RFCs, studying existing protocol implementations, and designing and developing an SSH/SCP client for addition into the library. Ideally requires a student with an interest in network protocol design, low-level socket I/O, and cryptographic techniques.

Possible Mentors

Rory Winston <rwinston at apache dot org> (http://www.theresearchkitchen.com/blog)

Status

Six interested students


CouchDB

Subject ID

couchdb-windows

Title

Full fledged Windows support

ASF Project

Apache CouchDB

Keywords

couchdb, windows, build, distribution, autotools

Description

Full fledged Windows support including a script that turns trunk and releases into a binary distribution. Work here would include familiarizing with the current autotools-based build system, determining the best build environment on Windows and suggesting modifications to CouchDB's build system and code to build, install, package and run CouchDB on Windows.

Possible Mentors

Jan Lehnardt, Noah Slater

Status

no students yet

Subject ID

couchdb-erlang-unit-tests

Title

Comprehensive Erlang-based unit-, and behaviour-test suite

ASF Project

Apache CouchDB

Keywords

couchdb, erlang, test suite, unit tests, behaviour tests

Description

CouchDB currently lacks a comprehensive erlang-based test suite & tests. It should be determined which exisitng test suite is suitable for our purposes (if at all). A test suite framework would allow CouchDB developers to easily add test functions that cover new and existing code. Code coverage analysis or quickcheck integration are nice to have features.

Possible Mentors

Jan Lehnardt

Status

no students yet

Subject ID

couchdb-bencharks

Title

Comprehensive standardized benchmark suite (so we can compare CouchDB across hardware)

ASF Project

Apache CouchDB

Keywords

couchdb, erlang, benchmark suite, benchmarks

Description

CouchDB currently lacks a comprehensive Erlang-based benchmark suite. CouchDB users have a hard time finding out what performance to expect from CouchDB. An Erlang-based benchmark suite will include a set of common scenarios like mass data import, view generation on various levels, load-simulation for "typical" workloads, impact of replication and so on. The idea is that a user can run one or more of these benchmarks to determine whether CouchDB's performance is in line with their needs. The benchmark suite will also hel the CouhcDB development team to measure performance changes in new code and monitor improvements or degradation over time.

Possible Mentors

Paul Davis, Chris Anderson

Status

no students yet

Subject ID

couchdb-cluster

Title

Easy CouchDB cluster management solution.

ASF Project

Apache CouchDB

Keywords

couchdb, erlang, cluster, management, high availability, scaling, infrastructure

Description

Enhance CouchDB with the necessary modules and infrastructure to easily create and maintain distributed clusters of CouchDB nodes for flexible scaling application backends.

Possible Mentors

Damien Katz, Chris Anderson

Status

Randall Leeds (proposal) - (updated)

Subject ID

couchdb-fulltext

Title

Add a fulltext solution that comes with CouchDB

ASF Project

Apache CouchDB

Keywords

couchdb, fulltext, search, possibly lucene

Description

Make CouchDB out-of-the box Fulltext enabled.

Possible Mentors

Paul Davis

Status

no students yet

Subject ID

couchdb-erlang-interface

Title

Erlang interface to CouchDB to bypass HTTP/JSON layer

ASF Project

Apache CouchDB

Keywords

couchdb, erlang, interface

Description

This work would provide a direct interface to CouchDB. It could be used by, e.g., wpart_* interfaces from Erlang-Web, or by appmods in YAWS. It would interface directly to the CouchDB Erlang layer using Erlang term(), not JSON conversions. There would be no HTTP involved, only direct Erlang message passing or fun calls to/from CouchDB. If a message passing design is used, distributed access to one or more CouchDB nodes may be simplified (e.g. a cluster of web servers accessing one or more CouchDB nodes). Interface should minimally provide same functionality as that available to view servers or via HTTP interface and allow for maintenance to keep parity when new functionality is added. Since modifications/additions of CouchDB source is involved, additional value could be added by providing another interface to couch_query_servers which can pass lists of documents rather than a single document (to view servers and via the Erlang interface). This would allow parallel map functions to run on subsets of the list provided by couch_query_servers. couch_query_server could dynamically check memory and adjust the number of documents sent.

Possible Mentors

Chris Anderson, Jan Lehnardt, Paul Davis, Damien Katz

Status

no students yet


Apache CXF

Subject ID

cxf-soapjms

Title

Implement the SOAP/JMS specification for CXF

ASF Project

Apache CXF - http://cxf.apache.org/

Keywords

CXF, SOAP, JMS, webservices

Description

CXF does support SOAP over JMS, but it does not meet the current draft spec defined at http://www.w3.org/TR/soapjms/ and instead uses some proprietary formats, headers, url formats, etc.... The purpose of this project would be to update the SOAP/JMS support in CXF to be completely spec compliant.

Possible Mentors

Daniel Kulp <dkulp AT apache DOT org>, Willem Jiang, but post to dev AT cxf DOT apache DOT org

Status

http://socghop.appspot.com/student_proposal/review/google/gsoc2009/liucong/t123847391676

Subject ID

cxf-stonehenge

Title

Implement the Stonehenge application with CXF

ASF Project

Apache CXF and Apache Stonehenge (incubator)

Keywords

CXF, Stonehenge, SOAP, WCF, Interop

Description

The Stonehenge project (in the incubator) is a complete application designed to test and demonstrate interopability between different soap stacks and application platforms. This project would work closely with both the CXF community and the Stonehenge community to port the application to CXF and make sure CXF is completely interopable with the other stacks already provided by Stonehenge.

Possible Mentors

TBD

Status

no students yet

Subject ID

cxf-soaptcp

Title

Implement the SOAP over TCP standard supported by Metro and WCF(via plugin)

ASF Project

Apache CXF - http://cxf.apache.org

Keywords

CXF, SOAP, webservices, TCP

Description

Implement the SOAP optimized TCP transport developed by Sun and supported by Metro and WCF (via an external plugin). The spec is available at: http://java.sun.com/webservices/reference/apis-docs/soap-tcp-v1.0.pdf The optimized transport would support using a stateful fastinfoset grammar to optimize the transmissions increasing performance.

Possible Mentors

Daniel Kulp - <dkulp AT apache DOT org>, Willem Jiang, but post to dev AT cxf DOT apache DOT org

Status

no students yet

Subject ID

cxf-eventpub

Title

Event publication bus extension, with Atom publisher being a concrete implementation

ASF Project

Apache CXF - http://cxf.apache.org

Keywords

CXF, Atom, webservices

Description

Event publication bus extension, with Atom publisher being a concrete implementation. Specifically, this publisher should be capable of posting events as Atom entries to external Atom consumers or provide them as an Atom Feed for consumers to poll. Event publisher interface should not be tied to Atom and should be easy to use. Provide Atom-aware Logger implementation given that logging statements can be viewed as events to react upon.

Possible Mentors

Sergey Beryozkin" <sberyozk AT progress DOT com> but post to dev AT cxf DOT apache DOT org

Status

no students yet

Subject ID

cxf-jibx

Title

Implement JiBX databinding for CXF

ASF Project

Apache CXF - http://cxf.apache.org

Keywords

CXF, jibx, webservices

Description

CXF has a plugable Databinding framework that currently supports JAXB and XMLBeans. There have been user requests to support JiBX as well. This project would involve updating the runtime to support JiBX as well as the tooling and samples.

Possible Mentors

Daniel Kulp <dkulp AT apache DOT org> but post to dev AT cxf DOT apache DOT org

Status

http://socghop.appspot.com/student_proposal/review/google/gsoc2009/liucong/t123852690134

Subject ID

cxf-castor

Title

Implement castor databinding for CXF

ASF Project

Apache CXF - http://cxf.apache.org

Keywords

CXF, castor, webservices

Description

CXF has a plugable Databinding framework that currently supports JAXB and XMLBeans. There have been user requests to support castor as well. This project would involve updating the runtime to support castor as well as the tooling and samples.

Possible Mentors

Daniel Kulp <dkulp AT apache DOT org> but post to dev AT cxf DOT apache DOT org

Status

no students yet

Subject ID

cxf-sdo

Title

Implement SDO databinding for CXF

ASF Project

Apache CXF - http://cxf.apache.org

Keywords

CXF, sdo, webservices

Description

CXF has a plugable Databinding framework that currently supports JAXB and XMLBeans. There have been user requests to support SDO as well. This project would involve updating the runtime to support SDO as well as the tooling and samples.

Possible Mentors

Daniel Kulp <dkulp AT apache DOT org> but post to dev AT cxf DOT apache DOT org

Status

http://socghop.appspot.com/student_proposal/review/google/gsoc2009/addsdoforcxf/t123857416449


Apache Derby

Subject ID

derby-testandfix

Title

Convert Derby tests to JUnit and fix Derby bugs

ASF Project

Derby - http://db.apache.org/derby/

Keywords

java,bugs,test,database

Description

Convert Derby tests to JUnit and fix bugs in Derby. Small projects and incremental check-ins mean your code can make an impact right away and you have a wide choice of code areas to focus on. See DerbyTesting for information on Derby testing and Derby Open Code Bugs for a list of bugs to choose from.

Possible Mentors

Kathey Marsden

Status

no students yet

Subject ID

derby-optimizerFixes

Title

Servicability improvements to the Derby Query Optimizer

ASF Project

Derby - http://db.apache.org/derby/

Keywords

java,bugs,test,database

Description

Join the Derby community and contribute to the ongoing development of Derby's powerful and sophisticated query optimizer. Work is needed in the area of fixing optimizer bugs such as DERBY-4007, DERBY-3753, DERBY-3892 or DERBY-2752; other work may involve improvements in servicability by enhancing tracing (DERBY-837) or building tools for capturing and analyzing query plans (DERBY-2487); if time permits, we could look to add new features such as common sub-expression elimination (DERBY-890) or improved sub-query processing (DERBY-2231). Work is also needed on optimizer performance (DERBY-1905, DERBY-1906, DERBY-1907, DERBY-1908, DERBY-2130) , optimizer regression testing, and optimizer documentation. The Derby Query Optimizer is a complex and sophisticated piece of software. The successful applicant for this project should have already demonstrated familiary with the Derby development process (for example, by contributing fixes to existing Derby issues), and should present a proposal which substantiates the applicants willingness and ability to work on an intricate piece of software.

Possible Mentors

Bryan Pendleton

Status

no students yet

Subject ID

derby-sequence-generators

Title

Implement ANSI/ISO Sequence Generators

ASF Project

Derby - http://db.apache.org/derby/

Keywords

java,feature,sequence,generator,database

Description

Make substantial progress toward implementing sequence generators as described in the 2008 ANSI/ISO standard and in the functional specification attached to DERBY-712. The successful applicant for this project should have already demonstrated familiarity with the Derby development process (for example, by contributing fixes to existing Derby issues), and should present a proposal which substantiates the applicant's willingness and ability to work on an intricate piece of software.

Possible Mentors

Rick Hillegas

Status

no students yet

Subject ID

derby-dblook-authorization

Title

Make dblook work with SQLAuthorization

ASF Project

Derby - http://db.apache.org/derby/

Keywords

java,feature,dblook,sql,authorization

Description

When SQL authorization (GRANT/REVOKE) was added to Derby, dblook was left behind (DERBY-3954, DERBY-3884). Tackling this will yield insight into Derby's authorization aspects and system tables, while still allowing coding to happen in a smaller codebase (dblook). See also http://issues.apache.org/jira/browse/DERBY-3884, http://issues.apache.org/jira/browse/DERBY-3954

Possible Mentors

Dag Wanvik

Status

no students yet


Apache Directory

Subject ID

directory-proxy

Title

Develop a LDAP proxy GUI

ASF Project

Directory - http://directory.apache.org

Keywords

Java, Ldap, MINA, Eclipse

Description

Create an Eclipse plugin to expose the LDAP requests being exchanged between a client and an LDAP server, store them and replay them. This tool will be used to analyse the exchanged requests and responses, and to generate tests based on those recorded requests/responses. It should be defined as a RCP application or an Eclipse plugin, encapsulated into Apache Directory Studio.

Possible Mentors

Emmanuel Lécharny, Pierre-Arnadu Marcelot

Status

No student yet


Apache Geronimo

Subject ID

geronimo-applications-migration

Title

Migrate popular applications to Geronimo

ASF Project

Apache Geronimo - http://geronimo.apache.org

Keywords

Java, Geronimo, migration

Description

To test a bunch of most popular JEE apps like nexus, sugarCRM... on Geronimo. (a), If there are incompatibility problem in these Apps. Report or contribute the fix back to the App project. (b), If being able to install a App with some deployment tuning. To make a deployment guide about how to deploy this App to geronimo.

Possible Mentors

Haihong Xu(Ivan), LinQuan Jiang(Shawn), Ming Xia(Forrest)

Status

No student yet

Subject ID

geronimo-quartz-plugin

Title

Develop a Geronimo Quartz Plugin

ASF Project

Apache Geronimo - http://geronimo.apache.org

Keywords

Java, Geronimo, Quartz, Plugin

Description

Create a Quartz plugin for Geronimo, so that we could take advantage of its powerful scheduling features. Please refer to https://issues.apache.org/jira/browse/GERONIMO-4140

Possible Mentors

Haihong Xu(Ivan), LinQuan Jiang(Shawn), Gang Yin(Jeff)

Status

No student yet

Subject ID

geronimo-ws-security

Title

WS-Security support for JAX-WS Web Services

ASF Project

Apache Geronimo - http://geronimo.apache.org

Keywords

Java, Geronimo, JAX-WS, Web Services, WS-Security

Description

Apache Geronimo supports two JAX-WS providers: Axis2 and CXF. Both of these providers have support for WS-Security. However, the WS-Security features of Axis2 or CXF are not currently enabled in Geronimo. The goal of this project is to integrate and enable these WS-Security features in Geronimo.

Possible Mentors

Jarek Gawor

Status

No student yet


Apache Harmony

Subject ID

harmony-tools-1

Title

Implement a Java developer's command line tool

ASF Project

Apache Harmony http://harmony.apache.org

Keywords

Java, tools

Description

Harmony is missing several of the tools that ship with the JDK, including jar, jconsole and javaws. For this task you would implement one of these tools in Java.

Possible Mentors

Oliver Deakin (committer), Mark Hindess (committer)

Status

Yanxin Xue <yanxinxue AT gmail DOT com> (proposal: http://socghop.appspot.com/student_proposal/show/google/gsoc2009/yanxin/t123874499622)

Subject ID

harmony-tools-2

Title

Implement the jdb command line debugger tool

ASF Project

Apache Harmony http://harmony.apache.org

Keywords

Java, tools, jdb

Description

jdb is the command line debugger tool provided as part of the basic JDK tools (http://java.sun.com/javase/6/docs/technotes/tools/index.html). For this task you would implement the jdb debugger in Java.

Possible Mentors

Oliver Deakin (committer), Mark Hindess (committer)

Status

No student yet

Subject ID

harmony-i18n-tool

Title

Automatic localization tool for open source project

ASF Project

Apache Harmony http://harmony.apache.org

Keywords

open source project, localization, automatic translation

Description

The Harmony Project has no localized data for worldwide customers. This project plans to create an automatic tool that helps projects to translate the necessary messages. The tool will automatically extract the messages, conduct analysis if necessary to translate, translate and adjust, and at last inject into the source code with ResourceBundle or property loading mechanism and apply the localization. There are many open source projects in existence, most of which do not have localized messages for customer convenience, including the Harmony project, so the tool may also be helpful on a wider scale. (http://wiki.apache.org/harmony/Harmony_i18n_tool)

Possible Mentors

Jing Lv (Jimmy) (committer)

Status

No student yet

Subject ID

harmony-daemon

Title

Running multi-programs on one Harmony VM

ASF Project

Apache Harmony http://harmony.apache.org

Keywords

multi-programs on single VM

Description

In Java, we usually run one program on one VM. However there are many advantages to executing multiple programs on one jvm, e.g. memory usage, startup time, etc. However there are many potential conflicts that could be caused e.g. the vm will meet an exit() or fatal error in one program, which causes the other programs to fail together. This project is concerned with finding a clever solution for running multiple Java programs on a single VM.

Possible Mentors

Xu ruizhi(Regis) (committer), Jing Lv (Jimmy) (committer)

Status

No student yet

Subject ID

harmony-classes-selector

Title

Smallest classes set for customer application

ASF Project

Apache Harmony http://harmony.apache.org

Keywords

smallest class set for application

Description

Many Java desktop applications offer a JRE in the installation package, which may be big. Customising the JRE to be the smallest size to run an application takes a lot of effort. We are looking for an automatic tool to find out all classes used by an application and build up a smallest JRE for the customer. (http://wiki.apache.org/harmony/Harmony_classes_selector)

Possible Mentors

Xu ruizhi(Regis) (committer), Jing Lv (Jimmy) (committer), Li JinQing(Charles)

Status

No student yet

Subject ID

harmony-osgi

Title

Enable OSGi features for Harmony JDK

ASF Project

Apache Harmony http://harmony.apache.org

Keywords

OSGi, JDK

Description

OSGi is hot and Apache Harmony has already make it's modules into OSGi bundles. If the Harmony runtime itself can include an OSGi framework, it will help other projects executing on a Harmony JRE to be OSGi without implementing an OSGi framework themselves. If we can go a little further, it may make the Harmony Project the first OSGi-ed JDK on the world and could enable an update mechanism for Harmony easily. (http://wiki.apache.org/harmony/OSGi_Harmony)

Possible Mentors

Zhou Kai(Kevin), Jing Lv (Jimmy) (committer)

Status

No student yet

Subject ID

harmony-portlib

Title

Portability in Apache Harmony: portlib, the Apache Portable Runtime or a new alternative

ASF Project

Apache Harmony http://harmony.apache.org

Keywords

Harmony, APR

Description

To enable the Harmony class library to be easily ported to new platforms a portability library exists. By replacing components in the portability library a VM may integrate with the Harmony libraries. Alternatively a VM may use and build on the portability library with Harmony. No current VM builds on top of just the portability library. The IBM VMs use bespoke OS integration, DRLVM uses this and the Apache Portable Runtime (APR), Jikes RVM uses the Harmony portability library and limited bespoke OS integration. The Apache Portable Runtime differs from the Harmony portability library in that virtual memory functions are exposed via mmap/munmap/mprotect rather than reserve/free/commit/decommit. The Harmony portability library used to but no longer provides a portable signal handling mechanism. This project will create a portability strategy for VMs using the Harmony class library either by using the Harmony portability library, the Apache Portable Runtime or potentially with no wrapper layer. One option is to recode the Harmony portability library entirely using the APR, adding support for signal handling whilst also adding support to APR for a different means of managing virtual memory. Another option is to put the portability library functionality into APR. Alternatively no wrappers and adopting UNIX conventions may best suppport portability. Ideally multiple open source Harmony VMs can be tested with this portability layer such as DRLVM and Jikes RVM. This project will require consultation with Harmony developers to form agreement and consensus on a portability strategy. Documenting this strategy will also form part of the project.

Possible Mentors

Ian Rogers, Alexei Fedotov (committer)

Status

No student yet

Subject ID

harmony-zlib

Title

Improve Apache Harmony zlib/zip performance

ASF Project

Apache Harmony http://harmony.apache.org

Keywords

Java, zlib, Zip

Description

There are a number of changes that should improve zlib performance for Harmony such as using the inflateBack api (compare gzip/gun in the zlib distribution), exploiting parallelism (compare gzip/pigz) and/or using mmap rather than file operations. The project would be to implement these techniques to see what works in practice.

Possible Mentors

Mark Hindess (committer)

Status

No student yet

Subject ID

harmony-JIT-1

Title

Modularize Harmony JIT by separating JET as a standalone JIT compiler

ASF Project

Apache Harmony http://harmony.apache.org

Keywords

Harmony, JVM, JIT, modularity

Description

So far the JIT component (called Jitrino) of Harmony has virtually two JIT implementations: JET and OPT. Jitrino.JET is a fast but non-optimizing JIT, and Jitrino.OPT is an optimizing JIT. The code base of JET and OPT shares lots of code hence they are mixed in one module. This is undesirable for situations where people need only JET, for fast compilation, for small footprint. This project proposes to create a standalone JET-based JIT module for Harmony. It does not require to remove JET from Jitrino, but to create a new JIT module with JET. This project is also a very good exercise to examine the JIT modularity design, the interface between JIT and other components, the interaction between multiple co-existing JIT modules.

Possible Mentors

Xiao-Feng Li (committer)

Status

No student yet

Subject ID

harmony-GC-1

Title

Implement WeakReference support in Harmony concurrent GC

ASF Project

Apache Harmony http://harmony.apache.org

Keywords

Harmony, concurrent GC, weak reference

Description

Harmony already has a concurrent GC (called Tick, with three concurrent GC algorithms). It runs well with standard benchmarks. The only remaining unfinished feature is WeakReference support . Weakly referenced object (i.e., referent) is accessed through get() interface. That means, get() operation can make a weakly reachable referent strongly reachable. During concurrent collection, the system must monitor the get() operation to catch this change of reachability, otherwise the referent could be reclaimed. This project also includes to integrate the WeakReference processing with Finalization process. Other optimizations in Tick are also desirable, such as to reduce the amount of floating garbage.

Possible Mentors

Xiao-Feng Li (committer)

Status

No student yet


Apache Kato

Subject ID

kato-tools

Title

Develop improved analysis tools

ASF Project

Kato - http://incubator.apache.org/projects/kato.html

Keywords

Java, Diagnostics, Eclipse, Netbeans, Data scaling

Description

Apache Kato has opportunities to create new and improved example tools that can provide real value to users in solving problems. The size and complexity of diagnostic data coming from applications makes representing and analysing this information a substantial challenge.

Possible Mentors

Steve Poole, Ant Elder

Status

No student yet


Apache Lenya

Subject ID

lenya-xml-diff

Title

XML Diff for Lenya

ASF Project

Lenya - http://lenya.apache.org

Keywords

Java, Cocoon, XML, XSLT

Description

Use the revision history inside of Lenya to create a module to display XML diffs. These diffs should be based on the XML DOM structure rather than just the XML text. The module could also generate diffs based on rendered text. The ability to email these changes out would be a great addition.

Possible Mentors

Richard Frovarp: dev AT lenya DOT apache DOT org

Status

3 interested students


Apache Lucene

Subject ID

mahout-machine-learning

Title

Implement a Map/Reduce enabled Machine Learning Algorithm

ASF Project

Mahout - http://lucene.apache.org/mahout

Keywords

java,machine learning, mahout, map reduce, hadoop

Description

Implement one machine learning algorithms (including demo and docs) using Hadoop for the Mahout machine learning project. See http://www.cs.stanford.edu/people/ang/papers/nips06-mapreducemulticore.pdf for background information and ideas. Also see the Mahout http://cwiki.apache.org/MAHOUT wiki for more ideas and background. Implementation should be well documented and well tested. Students are also encouraged to work on projects related to their own machine learning research.

Possible Mentors

Grant Ingersoll, Ted Dunning

Status

interested students, see below

Prospective Mahout Students, please read: http://www.lucidimagination.com/search/document/b0c5843cabef059d/gsoc_time_nearing and http://www.lucidimagination.com/search/document/9b4e2ebc5859462b/gsoc_timeline_and_misc_advice_to_help_you_have_a_winning_proposal to help guide you in your proposal writing.

Apache ODE

Subject ID

ode-web-debugger

Title

Web-based BPEL debugger for Apache ODE

ASF Project

Apache ODE

Keywords

Java, BPEL, Web Services, AJAX, Oryx

Description

BPEL is the de-facto standard for modelling executable Web service orchestrations. Although BPEL processes are usually graphically modelled they still have the complexity of real-world programs. Although ODE already implements some debugging facilities like setting breakpoints and step-through, it still lacks an intuitive tool that supports the modeller with testing and debugging process models. The aim of this GSOC project is to create a web-based BPEL debugger that is capable of showing a graphical representation of a process model and allows for adding breakpoints to activities and/or variable modifications. In addition it sports a variable browser than can display current variable values. To visualize the process models, a slim, MIT-licensed version of Oryx, a web-based BPMN editor, should be used. Via its mashup API it can be easily integrated into web applications and thus into ODE's web console. There will be (hopefully) a similar project under the Eclipse umbrella featuring the same functionality within Eclipse BPEL (together with Apache ODE).

Possible Mentors

Tammo van Lessen <vanto AT apache DOT org> (for Apache ODE), Gero Decker <gero.decker (at) signavio.com> (for Oryx)

Status

unassigned

Subject ID

ode-testing

Title

Apache ODE Integration in BPELUnit

ASF Project

Apache ODE

Keywords

Java, BPEL, XML, BPELUnit

Description

BPEL is an emerging standard for Web service compositions. Although BPEL processes are typically modeled by using graphical tools, the language is so powerful that testing is as necessary as for traditional programming languages.
Apache ODE (is an open source BPEL engine and BPELUnit is an open source testing framework, which provides means for mocking services and for calculating test coverage. However, they haven't been integrated yet.
The goal of the project, in conjunction with Project Integration of BPELUnit in Eclipse BPEL Designer, is to provide a convenient, tightly integrated "unit testing environment" for BPEL processes in Eclipse / Apache ODE.
For this particular piece, BPELUnit must be extended to be capable of interacting with the Apache ODE runtime. This means to develop deployment routines for ODE that enable BPELUnit to package and deploy instrumented process models. Instrumentation can be adapted from the ActiveBPEL deployer.

Possible Mentors

Daniel Lübke <bpelunit (at) daniel-luebke.de> for (BPELUnit), Tammo van Lessen <vanto AT apache DOT org> (for Apache ODE), Simon Moser (for Eclipse BPEL)

Status

unassigned

Subject ID

ode-migration

Title

Development of an XML-based migration format for process instances

ASF Project

Apache ODE

Keywords

Java, BPEL, XML, Jacob

Description

Apache ODE in an emerging open source BPEL engine. For the execution of BPEL processes it employs a virtual machine for process definitions (JACOB) that takes care of concurrency, reliability, phoenix behavior etc. It currently persists the state of (potentially long-running) process instances in terms of binary streams in an attached database. In real-world scenarios it becomes necessary to move running process instances from one ODE installation to another (e.g. for maintenance reasons). It should also be possible to move process models and their running instances to newer versions of ODE. The aim of this GSOC project is to develop a version independent XML format that contains both, the process model (as deployed to the engine) and the state of all running instances. For this format an importer and exporter should be developed that allows exporting all process models+instances from one node and importing it again to another node. The migration between different versions of ODE or to slightly modified process models is not in the scope of this project, however the design of the intermediate format should in principle allow such tasks.

Possible Mentors

Tammo van Lessen <vanto AT apache DOT org> (for Apache ODE)

Status

unassigned

Apache OpenJPA

Subject ID

openjpa-slice-across

Title

Cross-partition Query in a Distributed Database Environment

ASF Project

Apache OpenJPA

Keywords

JPA, OpenJPA, Slice, Database Partition

Description

Slice is the distributed persistence module for OpenJPA to enable any JPA application to work seamlessly across horizontally partitioned databases or slices. Slice queries across each partition in parallel and merges the results from individual slices in memory. Currently, the query does not support relations that span across different database partitions. In this project, we will explore the possibility of devising a strategy to execute queries where relationships join across different databases.

Possible Mentors

Pinaki Poddar <ppoddar AT apache DOT org>

Status

unassigned

Subject ID

openjpa-jpa2.0-samples

Title

OpenJPA 2.0 Sample Suite

ASF Project

Apache OpenJPA

Keywords

JPA, OpenJPA, 2.0, Samples, Persistence

Description

OpenJPA is in the process of developing a JPA 2.0 implementation based on JSR 317. The current OpenJPA community is quite active with the development, test, and documentation efforts. This SoC project would provide additional user-oriented samples and examples to demonstrate basic JPA 2.0 features as well as exploit the extensions provided by OpenJPA.

Possible Mentors

Kevin Sutter <kwsutter AT apache DOT org>

Status

unassigned

Subject ID

openjpa-slice-robust

Title

Availability in Distributed Database Environment

ASF Project

Apache OpenJPA

Keywords

JPA, OpenJPA, Slice, Database Partition, Robustness

Description

Slice is the distributed persistence module for OpenJPA to enable any JPA application to work seamlessly across horizontally partitioned databases or slices. Slice is configured with mutiple database partitions during bootstrap. If one or more databases are not available during initial setup, then Slice can be configured to either continue functioning with available partitions or fail. In this project, we will strengthen robustness support for managment of partitions to add new partitions, ignore failed partitions or reestablish connection to a previously unavailable partition dynamically during runtime operations.

Possible Mentors

Pinaki Poddar <ppoddar AT apache DOT org>

Status

unassigned

Subject ID

openjpa-slice-xa

Title

Transaction Policy in Distributed Database Environment

ASF Project

Apache OpenJPA

Keywords

JPA, OpenJPA, Slice, Database Partition, Two-phase Commit

Description

Slice is the distributed persistence module for OpenJPA to enable any JPA application to work seamlessly across horizontally partitioned databases or slices. Slice employs a single phase commit protocol across mutiple database partitions. In this project, we will implement a two-phase commit protocol across the available slices provided each slice uses a XA-compliant JDBC driver.

Possible Mentors

Pinaki Poddar <ppoddar AT apache DOT org>

Status

unassigned

Subject ID

openjpa-slice-query-policy

Title

Adaptive Query Targeting in Distributed Database Environment

ASF Project

Apache OpenJPA

Keywords

JPA, OpenJPA, Slice, Database Partition, Adaptive Learning

Description

Slice is the distributed persistence module for OpenJPA to enable any JPA application to work seamlessly across horizontally partitioned databases or slices. Slice queries across each partition in parallel and merges the results from individual slices in memory. While it is possible curently to target queries only to a subset of slices, the mechanism is supported through query hints. This mechanics requires modification to user application code. In this project, we will employ a policy design pattern that will allow user application to target queries as a plug-in without modifying the existing application. We will also investigate to adapatively learn the candidate slice for a particular record based on past successful searches to improve performance for finder queries

Possible Mentors

Pinaki Poddar <ppoddar AT apache DOT org>

Status

unassigned

Apache PhotArk

Subject ID

photark-admin-ui

Title

Provide a Admin UI to allow users to create, populate and administrate PhotArk photo gallery/albums

ASF Project

PhotArk

Keywords

java, sca, photo

Description

Apache PhotArk will be a complete open source photo gallery application including a content repository for the images, a display piece, an access control layer, and upload capabilities. The idea here is to provide a Admin ui for the PhotArk photo gallery software to allow users to create, populate and administer their galleries and albums.

Possible Mentors

Luciano Resende (lresende)

Status

Allan Avendaño <aavendan AT gmail DOT com> (proposal: AdminUI)

Apache Pivot

Subject ID

pivot-collections

Title

Implement model classes to back Pivot components

ASF Project

Apache Pivot - http://incubator.apache.org/pivot/

Keywords

ria, java, ui, gui, rich client, windowing toolkit, collections, data model

Description

Apache Pivot is looking for a motivated student to implement the collection classes that act as the model for the windowing toolkit. The classes currently wrap the standard Java collections and would need to be written from scratch. Primary measurements of success are performance, scalability, and memory-efficiency.

Possible Mentors

Todd Volkert (tvolkert AT apache DOT org), Greg Brown (gbrown AT apache DOT org)

Status

1 interested student

Apache Tomcat

Subject ID

tomcat-1-valves2filters

Title

Convert current Tomcat valves to Servlet Filters

ASF Project

Apache Tomcat - http://tomcat.apache.org

Keywords

Tomcat, Valves, Filters, Java, Servlet, J2EE

Description

Tomcat has a number of Tomcat specific components, called valves, that are used to insert steps into the request/response processing chain. Valves are used to provide functionality such as authentication, access logging, limiting access based on client IP address, working around broken clients, etc. These valves can be applied per engine (an engine is a collection of virtual hosts), per virtual host or per context (a context is a web application). The Servlet specification has a similar concept called filters although the Servlet specification only permits filters to be specified per web application. The Tomcat project would like to replace the use of valves with filters. To provide similar functionality to valves, filters would be permitted to be configured at engine and host level, as well as context. The work would entail: re-writing all existing valves as filters, changing the internal Tomcat code that uses valves to use filters, updating the documentation to reflect these changes.

Possible Mentors

Mark Thomas

Status

no students yet

Subject ID

tomcat-2-jmx-improvements

Title

Improve the JMX support within Apache Tomcat

ASF Project

Apache Tomcat - http://tomcat.apache.org

Keywords

Tomcat, Java, Servlet, J2EE, JMX, Management

Description

Apache Tomcat uses JMX to provide management functionality. The current implementation is good but there is room for improvement. Specifically, not all attributes and operations are exposed and some attributes are exposed as read/write that should be read only. Additionally, some operations exposed via JMX can not be used as they require complex objects to be passed as parameters. The work would entail: documenting all the attributes for each component, ensuring that all the attributes are exposed via JMX, reviewing each attribute and configuring it for read only or read/write as appropriate, reviewing operations and, where necessary, providing implementations of the operations that can be used via JMX. The ultimate aim is to be able to take a Tomcat instance with the bare minimum configuration and to be able configure it, via JMX, as a fully functional Tomcat server.

Possible Mentors

Mark Thomas , Peter Rossbach

Status

no students yet

Subject ID

tomcat-proxy

Title

Write a proxy using Apache Tomcat

ASF Project

Apache Tomcat - http://tomcat.apache.org

Keywords

Tomcat, Java, Servlet, proxy

Description

The work would entail: prototyping a proxy servlet using the Servlet 3.0 specs and Tomcat 7, writing corresponding documentation and test cases.

Possible Mentors

Jean-Frederic Clere

Status

no students yet

Apache Tuscany

Subject ID

tuscany-binding.ws.jaxws

Title

A binding.ws implementation based on JAX-WS Dispatch and Provider APIs

ASF Project

Apache Tuscany - http://tuscany.apache.org

Keywords

SCA, JAX-WS, Web Services

Description

The current binding.ws in Tuscany is implemented based on Axis2. Now JAX-WS is shipped with JDK 1.6. It would be nice to support the web services with the JDK based on the standard JAX-WS APIs/SPIs. With this feature, it would be very simple to add integration to JAX-WS stacks such as CXF or Metro. The work will involve three features: Use JAX-WS Dispatch API to make outbound WS invocation on behalf of SCA reference, Use JAX-WS Provider API to expose SCA services as JAX-WS endpoints, Allow other databindings to be transformed into JAXB friendly representations so that JAX-WS can support them

Possible Mentors

Raymond Feng (rfeng AT apache DOT org)

Status

Not assigned yet

Subject ID

tuscany-wsdl2java

Title

A WSDL2Java tool for SCA that supports JAX-WS mapping from WSDL portType to Java interface with pluggable XSD2Java for various databindings such as JAXB, SDO, DOM and AXIOM.

ASF Project

Apache Tuscany - http://tuscany.apache.org

Keywords

SCA, JAX-WS, WSDL2Java, Web Services, JAXB, SDO

Description

1) Generate a java interface for each WSDL portType based on the JAX-WS mapping rules (the result should be pretty much like the wsimport). 2) Allows the plug-in of databinding specific XSD2Java generators (such as JAXB xjc or SDO XSD2Java) to generate the Java interfaces/classes from the XSD types representing the parts for WSDL messages. The XSD2Java can generate strongly-typed java types or weakly-typed java types (such as DOM Node, SDO DataObject, or AXIOM OMNode).There are existing tools from JAX-WS and Axis2 with some deficiencies: * JAX-WS wsimport requires the WSDL has service/port. In SCA, we only require the portType. JAX-WS wsimport only supports JAXB and there is no way to replace it with other databindings such as SDO or AXIOM.* Axis2 WSDL2Java is not fully JAX-WS compliant. *The CXF wsdl2java tool DOES support "portType" only wsdls and also has pluggable databindings (no SDO yet).

Possible Mentors

Raymond Feng (rfeng AT apache DOT org)

Status

Not assigned yet

Subject ID

tuscany-scadomain-search

Title

Add search capability to index/search artifacts in the SCA domain, including the contributions, WSDL/XSDs, java files, composite files.

ASF Project

Apache Tuscany - http://tuscany.apache.org

Keywords

SCA, Doamin, Search, Contribution, WSDL, XSD, Composite

Description

An SCA domain can have many contributions installed. An SCA contribution is a collection of artifacts such as java classes, composite files, WSDLs, XSDs, BPEL scripts. It would be great for SCA domain adminstrator or users can search the SCA domain to find artifacts based on keywords or artifact names. The implementation can be based Apache Lucene. It will integrate with the SCA domain manager web application to provide the search functionality.

Possible Mentors

Raymond Feng (rfeng AT apache DOT org) / Adriano Crestani

Status

Not assigned yet

Subject ID

tuscany-jpa-extension

Title

Add a Tuscany extension a short desciptive title of the subject

ASF Project

Apache Tuscany - http://tuscany.apache.org

Keywords

tuscany, sca, jpa, persistence

Description

This project would extend the SCA programming model to expose services that interact with a persistent layer in a declarative fashion hiding the implementation details from the service developer.It's all about simplicity, allowing a service to be defined without explicitly coding the persistence layer. This would be a new Tuscany Component Type named Implementaiton.JPA. A developer would provide the business objects that would by JPA to do the OR mapping, and a business interface that would be introspect by Tuscany to properly make the JPA calls to the persistence layer to retrieve the information. Information on how to connect to the data source would be done in the composite, and we could provide some annotations to read. More info available at http://cwiki.apache.org/confluence/display/TUSCANY/SCA+Java+implementation.jpa

Possible Mentors

Luciano Resende (lresende)

Status

No assigned yet

Subject ID

tuscany-host-android

Title

Empower Google Android applications to easily consume business services

ASF Project

Apache Tuscany - http://tuscany.apache.org

Keywords

Java, SCA, Mobile, Google Android

Description

This project would continue efforts made during GSoC'08 to mold a lightweight SCA core/runtime that will allow Google Android mobile applications to easily consume business services. This would require a follow-up on recent efforts to complete the bootstrapping of Tuscany extensions in a customized Android module. Then, once it's running, it would be about demonstrating the capabilities with the android calculator application, and to finish – extending the existing store android sample application.

Possible Mentors

Oscar Castañeda (ocastaneda AT apache DOT org) Adriano Crestani (adrianocrestani AT apache DOT org)

Status

Interested students: Lookman SANNI (lookouster AT gmail DOT com), Sudheendra Bhat (sbhat2 AT gmu DOT edu)


Apache RAT

Subject ID

rat-1-cutnpaste

Title

RAT 1 Cut&Paste Detector

ASF Project

Apache RAT - http://incubator.apache.org/rat/

Keywords

RAT, cut&paste, source plagiarism, detector

Description

Create a tool for detecting code fragments cut&pasted from different sources. Scanning new project code with the tool helps achieving the following: if you borrow the code from Apache, you are safe and legal. In other words, the tool guards the whole Apache source base against GPL/MPL/educational/non-profit licensed code. Also, scanning improves code reuse: one may decide to switch to re-using released library instead of code chunks. Technically, the tool uses Google [code] search, Krugle, Koders and other search engines to identify copied fragments. It scans the source file, and its algorithm may be thought as a sliding window. The window is enlarged to the right until the containing text cannot be matched via the code search engine. If the biggest match is considered to be suspicious according to heuristics (e.g. the match is big or contain misspelled words), it is added to the ranked list of suspicious matches, and the sliding window resets to the last word. If the match is not suspicious, only the leftmost token from sliding window is removed. Then the process continues until the whole file is parsed. Since Google code search understands regular expressions, it is possible to make the scanner invariant against variable renames. For real code bases the thorough sliding window algorithm may abuse search engine resources, so the first objective of the task is to define a scalable heuristic solution. The one way to go is to think of a person who manually scans the files: he scans suspicious entries, misspelled words, and uncommon constructs (including string and array constants) first. Another way to go is in-depth understanding of how search engines work. For example, several requests to the code search engine may be combined into one regular expression. To be eligible for this project, students will have to provide a tool prototype in a form of a patch to the existing RAT code base. Good luck.

Possible Mentors

Alexei Fedotov <rat-dev AT incubator.apache.org>

Status

Marija Sljivovic, proposal


Apache Sling

Subject ID

sling-wikipedia

Title

Wikipedia - powered by Apache Sling!

ASF Project

Apache Sling - http://incubator.apache.org/sling

Keywords

JCR, Java, Javascript, HTML, CSS

Description

Reimplement (a subset of) Wikipedia on Apache Sling, as a demo and showcase application, based on publically available Wikipedia data. Requires good knowledge of web technologies, server-side javascript, some Java, some OSGi and willingness to learn and apply JCR concepts.

Notes

To be eligible for this project, students will have to provide a useful patch for one of the existing Sling example applications, for example the espblog sample found at http://svn.apache.org/repos/asf/incubator/sling/trunk/samples/espblog/

Possible Mentors

Bertrand Delacretaz

Status

Not assigned yet


Hadoop HBase

Subject ID

hbase-snapshot

Title

Snapshot an HBase Table

ASF Project

Apache Hadoop HBase - http://hbase.org

Keywords

Hadoop, Bigtable, Java, Database, Backup

Description

Users want to be able to snapshot hbase tables with minimal downtime. See HBASE-50 for discussion and for description of two possible implementations.

Possible Mentors

Stack <stack AT apache DOT org>

Status

Guilherme Germoglio -- germoglio -- is a candidate

Subject ID

hbase-hbfsck

Title

Integrity check and repair tool

ASF Project

Apache Hadoop HBase - http://hbase.org

Keywords

Hadoop, Bigtable, Java, Database, Integrity

Description

Need a tool to read the content of the Distributed File System and catalog tables in hbase and flag integrity issues or mismatches. Tool would also effect certain types of repair at admins orchestration. See HBASE-7 for discussion.

Possible Mentors

Stack <stack AT apache DOT org>

Status

no students yet

Subject ID

hbase-optimize

Title

Optimize flush, split and compactions

ASF Project

Apache Hadoop HBase - http://hbase.org

Keywords

Hadoop, Bigtable, Java, Database, Optimization

Description

Any optimizations that can be found in hbase memory flushing, file compactions or improvements in split speeds will make the whole hbase system more efficient. See HBASE-1261 for discussion.

Possible Mentors

Stack <stack AT apache DOT org>

Status

no students yet

Subject ID

hbase-locality

Title

Exploit locality when assigning regions

ASF Project

Apache Hadoop HBase - http://hbase.org

Keywords

Hadoop, Bigtable, Java, Database, HDFS, Data Locality

Description

Study how blocks are allocated in a cluster under a running regionserver. Modify the region assignment function to maximize locality assigning regions ensuring regions are assigned to regionservers running on same node as hosting datanode. See HBASE-57 for discussion.

Possible Mentors

Stack <stack AT apache DOT org>

Status

Samuel Guo -- guosijie -- is a candidate


Apache Roller

Subject ID

roller-themesave

Title

Support for saving and loading Roller themes

ASF Project

Apache Roller - http://roller.apache.org

Keywords

web, blogging, java, rest, web services, roller

Description

Currently the only way to create a new Roller theme is to work outside of Roller, editing text files, creating a theme.xml file and then placing resources into Roller's themes directory. This is very inconvenient and error-prone. To fix this develop the ability to save a blog's current theme as a Theme Archive File (TAF). A TAF should contain all theme tempaltes, resources and the theme.xml file. Also provide the ability for Roller to load whatever TAFs that it finds in the themes diretcory.

Possible Mentors

Dave Johnson

Status

interested students: Tatyana Tokareva <tokareva AT cs DOT vsu DOT ru> (proposal: [WWW] http://wiki.apache.org/general/SoC2009/TatyanaTokareva-Roller-ThemeSaveProposal)

Subject ID

roller-export

Title

Support data import/export for Roller blogs

ASF Project

Apache Roller - http://roller.apache.org

Keywords

web, blogging, java, rest, web services, roller

Description

Support Roller via the Google Blog Converters effort http://code.google.com/p/google-blog-converters-appengine, Blog Markup language or using AtomPub to import/export data for a Roller blog.

Possible Mentors

Dave Johnson

Status

No students yet

Subject ID

roller-mobile

Title

iPhone-style Mobile interface for Roller blog server

ASF Project

Apache Roller - http://roller.apache.org

Keywords

mobile java html css javascript struts blogging web

Description

Develop an alternative user-interface for Roller, one that will work well on a small device with good HTML/Javascript support and provides an iPhone-like interface. Your interface should support blog browsing, posting and editing, commenting and photo uploading. This work should be done with the iPhone friendly iUI library (http://code.google.com/p/iui/). On the server-side you must implement via Roller's Struts 2 action infrastructure. Here are some example mobile blog client UIs: http://mashable.com/2008/03/10/blogging-phone-tools

Possible Mentors

Dave Johnson

Status

No students yet

Subject ID

roller-social

Title

Simple Social Networking for Roller blog server

ASF Project

Apache Roller - http://roller.apache.org

Keywords

web, social networking, blogging, java, roller, openjpa, struts

Description

Enable Twitter-like Activities (aka status messages) with following, followers, optional 140-character text limit and other Twitter features as time allows. This could be done via new table Followers, which allows users to follow each other, a new Manager for querying this table, and which stores Activity as blog entries but using a different category scheme so that they can be omitted from standard blog feeds. Provide a theme and blog template macros for updating status and for displaying your Activities, Friends Activities, All Activities and combinations of those. Support OpenSocial API by integrating Shindig.

Possible Mentors

Dave Johnson

Status

interested students: Floris Erich <florisjuh AT gmail DOT com> (proposal: http://wiki.apache.org/general/SoC2009/FlorisErich-Roller-SocialProposal)

Subject ID

roller-abdera

Title

Abdera AtomPub for Roller blog server

ASF Project

Apache Roller - http://roller.apache.org

Keywords

web, blogging, java, rest, web services, atompub, atom, roller, abdera, rome

Description

Roller currently uses ROME Propono for it's AtomPub implementation, but Apache Abdera provides a much stronger foundation for building the AtomPub services that Roller needs. This project is to develop a new Abdera-based AtomPub implementation for Roller. At a minimum, this implementation provide the same collections as the existing Propono implementation: blog entries and file-uploads. You should test it with Tim Bray's Atom Protocol Exerciser (APE) and all AtomPub-supporting blog clients you can find.

Possible Mentors

Dave Johnson

Status

No students yet


Apache ServiceMix

Subject ID

servicemix-web-mgmt

Title

Web-based management console for ServiceMix

ASF Project

Apache ServiceMix - http://servicemix.apache.org/

Keywords

OSGi, JBI, Web (AJAX, REST)

Description

Currently, administration of the ServiceMix Kernel OSGi container can be done through an text-based console. While this is a very powerful tool, we would also like to build a web-based management console to administer the platform. One key requirement for this console is that it allows for easy extension by features being installed on top of Kernel, e.g. ServiceMix 4 installs an NMR and JBI layer on top of Kernel, both of which should be administrable seamlessly through the web UI

Possible Mentors

Guillaume Nodet <gnodet AT apache DOT org>, Gert Vanthienen <gertv AT apache DOT org>

Status

no students yet

Subject ID

servicemix-audit

Title

User-friendly tool to audit exchanges in the ESB

ASF Project

Apache ServiceMix - http://servicemix.apache.org/

Keywords

OSGI, JBI, Web (AJAX, REST)

Description

When an ESB is being deployed in a production environment, it will process a lot of messages per day. ServiceMix NMR has a few implementations for auditing (as file or serialized in a db) and indexing (using Lucene) exchanges, but it would be nice to create new auditing tool that makes it easier for an end-user or system administator to find out what happened with any given exchange and even visualize the entire flow that exchange participated in.

Possible Mentors

Guillaume Nodet <gnodet AT apache DOT org>, Gert Vanthienen <gertv AT apache DOT org>

Status

no students yet


Apache Xerces

Subject ID

xerces-schema-component-designators

Title

Implement a parser and evaluator for Schema Component Designators (SCD)

ASF Project

Apache Xerces Java

Keywords

Java, XML, XML Schema, Component Designators, Xerces

Description

Design and implement a parser and evaluator for Schema Component Designators. A Schema component designator identifies XML Schema Component(s) defined in the W3C XML Schema Definition language using a path expression (similar to an XPath expression). This project invovles writing a parser to parse the SCD expression (automatic code generation tools like JavaCC can be used to generate the parser), and an evaluator to evaluate the expression (return the selected components from an XSModel).

Possible Mentors

Khaled Noaman (knoaman at apache dot org), Sandy Gao (sandygao at ca dot ibm dot com), Michael Glavassevich (mrglavas at apache dot org)

Status

No students yet

Subject ID

xerces-schema11-particle-restriction

Title

Check subsumption relationship of complex type particles

ASF Project

Apache Xerces Java

Keywords

Java, XML, Schema, Restriction, Particle, Xerces

Description

In XML Schema 1.1, the sequences of sub-elements allowed by a complex type is determined by its content model, a particle. When one complex type restricts a base type, its particle is required to accept less than that of the base type. When <all> model groups are used in the restriction type (while the base type may also have an <all> group or have a combination of <sequence>s and <choice>s), the "accept less" requirement becomes an interesting task. The student is expected to study this problem, research existing solutions to similar issues (e.g. those listed here), and propose and implement a solution. This work also helps to address the Priority Feedback in the specification regarding the usefulness and implementation difficulty of this feature.

Possible Mentors

Sandy Gao (sandygao at ca dot ibm dot com)

Status

No students yet

Subject ID

xerces-xinclude-xpointer-enhancements

Title

Implement a streamable subset of the XPointer xpointer() scheme for XInclude

ASF Project

Apache Xerces Java

Keywords

Java, XML, XInclude, XPointer, XPath, Xerces

Description

Xerces currently supports the XPointer Framework and the XPointer element() scheme. Though this meets the minimum requirements for XInclude it's quite limited in capability compared to the more powerful XPointer xpointer() scheme which allows one to select document fragments using XPath. Xerces' streaming XInclude processor would be greatly improved if it provided support for a streamable subset of this scheme.

Possible Mentors

Michael Glavassevich (mrglavas at apache dot org)

Status

No students yet

Subject ID

xerces-dom-level-3-load-and-save

Title

Asynchronous LSParser and parseWithContext

ASF Project

Apache Xerces Java

Keywords

Java, JAXP, DOM, XML, Xerces

Description

The goal of this project is to complete the implementation of the DOM Level 3 LSParser. Though Xerces has a functional LSParser, there are a couple parts of the spec which still need to be implemented. This includes an asynchronous version which returns from the parse method immediately and builds the DOM tree on another thread as well as parseWithContext which allows a document fragment to be parsed and attached to an existing DOM.

Possible Mentors

Michael Glavassevich (mrglavas at apache dot org)

Status

No students yet

Subject ID

xerces-unicode-normalization

Title

Add support for Unicode character normalization and normalization checking

ASF Project

Apache Xerces Java

Keywords

DOM, Java, Unicode, XML, Xerces

Description

Design and implement support for Unicode character normalization and normalization checking to allow applications to produce fully normalized documents and verify that the documents they process are fully normalized. With an XML document which has been verified to be fully normalized an application can perform string comparisons without having to deal with the many possible forms (with the same meaning) allowed by Unicode. These features have been on the TODO list for several releases, but keep being deferred because none of the current Xerces committers are familiar with Unicode normalization forms, so it would be great to get someone with that knowledge (or interested in acquiring it) involved in the project.

Possible Mentors

Michael Glavassevich (mrglavas at apache dot org)

Status

1 interested student: Richard Kelly <rakkie AT gmail DOT com> (proposal: http://wiki.apache.org/general/SoC2009/RichardKelly-Xerces-NormalizationProposal)

SummerOfCode2009 (last edited 2011-05-05 14:58:48 by SebastianBazley)