Hi Hao, I am one of the active committers for Commons Configuration. What you write sounds very good, and I am pleased that you are interested in this component. I was not involved in the creation of the project proposal, so I don't know the details. I think this was done by Emmanuel Bourg (I hope he will join this thread to provide further advise). In Jira, our bug tracking system [1], there are enhancement tickets for the new configuration formats to implement [2-4]. These tickets also link to pages with reference information. I would suggest using classes in the org.apache.commons.configuration.plist package as examples. They are based on a grammar for reading specific formats. You will probably have to do something similar. If you have further questions or comments, don't hesitate to post them to this list! Regards Oliver [1] http://commons.apache.org/configuration/issue-tracking.html [2] http://issues.apache.org/jira/browse/CONFIGURATION-258 [3] http://issues.apache.org/jira/browse/CONFIGURATION-201 [4] http://issues.apache.org/jira/browse/CONFIGURATION-198 Hao Zheng schrieb: > 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. > > Abstract > > 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 http://www.apexlab.org/apex_wiki/hzheng. > > 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 > phase. > > 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. > > [References] > > [1]. My new feature suggestion on Feb 20, > http://mail-archives.apache.org/mod_mbox/commons-dev/200802.mbox/%3cabec10af0802192110v5dc711a6vbe1985f5cfb76190@mail.gmail.com%3e > [2]. Google announced GSoC 2008 on Feb 26, > https://groups.google.com/group/google-summer-of-code-announce/browse_thread/thread/cc8d2165772e7de8 > [3]. My JIRA, http://issues.apache.org/jira/browse/EMAIL-72 > [4]. JLex, http://www.cs.princeton.edu/~appel/modern/java/JLex/ > [5]. CUP, http://www2.cs.tum.edu/projects/cup/ > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org > For additional commands, e-mail: dev-help@commons.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org For additional commands, e-mail: dev-help@commons.apache.org