commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hao Zheng" <>
Subject GSoC application
Date Mon, 31 Mar 2008 13:40:35 GMT
Dear all commons devs:

I am a graduate student. I want to apply for the project "New file
formats for Commons Configuration". I have submitted my proposal on
Google. Please give me some suggestions on it. Thank you all.


I have much experience in Java programming. For this project, I plan
to find the most similar format for each new format first. Then I
could implement the new format with the help of the old format.
Existing tests can also be converted for the new format. In this way,
I believe I can achieve the goal of this project.

I am interested in Open Source development, and I am eager to
participate in an open source project. I have used so many open source
software/tools for a long time. GSoC is a good opportunity for me to
contribute to open source community. I want to get started here, and
continue to contribute even after the GSoC.

1. Biography

I am a graduate student at CS department, Shanghai JiaoTong
University, Shanghai, China. I have about 4 years experience in Java
programming. I am proficient in Java, and have taken part in several
large projects. I have used many open source library/tools, e.g. Ant,
Commons, Tomcat, Log4j, Lucene, etc. from Apache. My resume could be
accessed at

Recently, I am interested in Open Source development, and eager to
participate in an open source project. GSoC is a good opportunity for
me to contribute to Apache. I want te get started here, and continue
to contribute even after the GSoC. Coincidently, I have suggested a
new feature for Commons Email [1], just one week before Google
announced GSoC 2008 [2]. The devs from Apache Commons thought my
suggestion is useful, and let me file a JIRA asking for an enhancement
[3]. Although the issue has not been resolved, it is still a good
start for me to approach open source development.

2. Plan for Commons Configuration

I have used some components of Apache Commons: DBCP, Email, Logging,
and Pool. However, I have to admit I haven't used Commons
Configuration. I take a glance at it, and feel it is easy to use, like
most Commons components. I believe it is in my competencies. Here is
my detailed plan.

2.1. Preparation Phase

Learn completely how to use Commons Configuration, by which I can gain
a deeper understanding of it. Then I will begin to read the existing
code, to learn how to implement it.

By now, I am not sure how it is implemented. I guess some
lexical/syntax analyzer are used. I have taken a course on Compiler
Implementation when I was an undergraduate. The course required to
implement a compiler of a subset of Java language. I used JLex [4] for
lexical analysis and Cup [5] for syntax analysis.

As for the new formats, I have used JSON files when developing some
web application. I will learn the format of YAML and OGDL in this

2.2. Coding Phase

Existing support for XML format will be a good reference. I am
familiar with JSON, so I will talk about JSON particularly. JSON could
be considered as "simplified XML", so I think existing XML
implementation or tests could largely benefit JSON implementation. For
the other two formats, maybe similar formats also exists. The detailed
plan is:

a). read one similar old format for reference
b). implement the new format
c). convert the tests for old format to tests for new format, and test
my implementation

3. Schedule

now - May 26: Preparation Phase. Learn more on Commons Configuration.
Consult mentors on what to started first. Take part in the discussion
on the dev maillist.

May 27 - August 11: Coding Phase. In this 11 weeks, plan to implement
3 new formats: JSON, YAML, and OGDL, which means about 3-4 weeks per
format. Write documentation and unit tests.

August 12 - August 18: Revise some minor errors. Complete some documentation.


[1]. My new feature suggestion on Feb 20,
[2]. Google announced GSoC 2008 on Feb 26,
[3]. My JIRA,
[4]. JLex,
[5]. CUP,

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message