Google Summer of Code 2006 proposal
Add DOM (JSR-280) support to Mirae
This project will implement JSR 280  based on JSR 172  JAXP-Subset API implementation of “MIRAE” .
It will be useful to have an object model to represent and manipulate an XML document. This is where JSR 280 steps into the picture to provide an API to process XML in Java ME. JSR 280 defines two APIS:
- A SAX2 API and javax.xml.parsers APIs
- A light-weight DOM API
The JAXP subset API defined in JSR 172 provides a SAX parser which provides callback procedures to parse and process XML. JSR 280 will reuse this API to to define the 'SAX2 API and javax.xml.parsers APIs'. There is an implementation of this subset available in the MIRAE project which implements JSR 172.
As for the 'light-weight DOM API', JSR 280 reuses the u(micro)-DOM specification  defined by W3C in the defined for the Scalable Vector Graphics (SVG) Tiny 1.2 Specification .
This project will implement the 'light-weight DOM API' of JSR 280 for Apache MIRAE to complete the JSR 280 support.
I came up with schedule, which breaks down the project into four phases, to set my self intermediate targets to ensure the successful completion of the project. During each of work items I hope to interact with the Apache MIRAE community regularly to obtain feedback on my work to ensure that my deliverable meet the expectations of the users and the developers.
Duration : 2 weeks
During the design, I will carry out an indepth study of the J2ME technologies and the Apache MIRAE project to come up with an architecture design.
Implementation and Unit Testing
Duration : 5 weeks
I will implement the u-DOM API using the JAXP-Subset implementation available in Apache MIRAE on J2ME platform and will provide a set of unit test cases.
Integration into Apache MIRAE and Integration Testing
Duration : 3 weeks
During this phase, I will integrate the u-DOM implementation into Apache MIRAE and will develop a set of integration test cases to test the complete functionality.
Duration : 2 weeks
Documentation will include the following:
- Complete javadoc documentation.
- A user guide/tutorial
- A developer guide which explains the architecture and the implementation
I am a student from the Software Engineering department of Informatics Institute of Technology in Sri Lanka.I will be completing my level 1 exams on 26'th May 2006.
I have been working with Java and C/C++ for about 5 years now, and during the last few years I have been working as a freelance programmer where I was involved in Java network programming, win32 API programming in C and also some web development with PHP and MySQL databases. Recently my obsession has been participating in TopCoder competitions which is a great way to enjoy programming. I am also a Linux enthusiast and I use the Gentoo Linux distribution.
Why am I the one for this project ?
I always enjoy taking up new challenges, learning new things and I am confident that I can deliver this project succesfully using my experience. I have a proven ability to learn new technologies fast and adapt them appropriately in my work.
My first year exams will be completed on the 26'th May 2006 and I will be able to completely devote my 3 month vacation to this project before the beginning of the next semester in the end of August 2006.
My objective is to successfully complete this project and make a valuable contribution to Apache MIRAE project and the opensource community. I will also use this project as my first contribution to Apache MIRAE and look forward to actively participate in the Apache MIRAE development in the future as well.