Google Summer of Code 2010: Project

"HTML5 Support for Apache MyFaces2"

Student: Ali OK < aliok AT aliok DOT com DOT tr >

Organization : Apache Software Foundation

Mentor : Matthias Wessendorf < matzew AT apache DOT org >

Abstract:

HTML5 Support for Apache MyFaces2 will extend MyFaces2 core components and also deliver a new set of JSF components to integrate browsers with Java Server Faces server-side rendering technology.

Description:

By this project, current MyFaces2 core components will be extended to support new HTML5 attributes and functionality. Additionally, several new JSF components will be developed, since some HTML5 features cannot be applied into current components in order to keep the complience with the JSF specification. New functional behaviors like HTML5 drag&drop will be supported on JSF side.

Applicable features within the current core components will be enabled optionally with a context parameter. Some examples of extending current core components are:

For the new components, a new namespace, preferably hx, will be used for new JSF components. Some examples are:

For the new functional behaviors, a new namespace, preferably fx, will be used for JSF components similar to:

A detailed descriptive diagram about the structure and deliverables is shown below.

http://upload.aliok.com.tr/uploads/myfaces_html5.jpg

Currently, HTML5 spec is in the "Last Call" state. Most of the browsers started to support new elements, and many leading websites started to use HTML5.

Weeknesses

During the Google Summer of Code period, a lot of HTML5 features cannot be covered since it requires much more time than 3 months. To solve this issue, HTML5 Renderkit Base framework will be provided to continue the work after GSoC.

Criteria

Meritocracy:

This project will follow the guidelines of the Apache Foundation.

Community:

There is no HTML5 supported JSF implementation, and HTML5 JSF component library at the moment, and this project will be the first one. I believe HTML5 support will attract a considerable number of people, therefore both Apache and Apache MyFaces communities will expand more.

Alignment:

Project will use Apache MyFaces Core, Apache MyFaces utils, Apache MyFaces Maven, Apache MyFaces builder and other Apache products. Apache is a good match for the project because it aims to extend Apache MyFaces with new components.

Schedule

http://sites.google.com/a/aliok.com.tr/upload/uploads/myfaces_html5_schedule.jpg

April 27 - May 23

Determining what components to create and which current MyFaces2 core components to extend

Prototyping(not coding)

Reading documentation.

May 24 - May 27

Creating the project structure

Configuring the builder

Doing initial work.

May 28 - June 1

Implementing a base library which future components will use. This base library will extend the MyFaces utils and the base, which will provide us to create new components easily.

June 2 - July 10

Implementing most of the targeted components, which should be served in a milestone release. Implementing a component consists of coding the component, writing unitcases and testing.

July 10 - July 12

Preparing for mid-term evaluations: Getting the milestone release ready and working on mid-term evaluation criteria.

July 13 - July 25

Implementing the remainder target components.

July 26 - August 1

Detailed testing and bugfixing.

August 2 - August 8

Writing a couple of sample projects to demonstrate the library.

August 9 - August 11

Improving the documentation.

August 12 - August 14

Preparing tutorials and presentations.

August 15 - August 16

Preparing for final evaluation and getting the final release ready.

Additional Information:

Discussions

http://old.nabble.com/-GSoc--Google-Summer-of-Code-Idea-td27040478.html

http://old.nabble.com/-GSOC--HTML5-Proposal-td27966054.html

Background

I will be graduated from Istanbul Technical University Computer Engineering in May 2010.

I am a Sun Certified Java Programmer (SCJP) for a year, and I have a blue belt in JavaBlackBelt.com since September 2008.

I am a big opensource fan and supporter. At this moment I consider myself as warming up my personal opensource progress.

At Apache MyFaces, other than providing some bugfix patches, I've worked on Google App Engine support for MyFaces. Starting from January 2010, in parallel with HTML5 discussions, I've worked on Google App Engine support and it made trunk. Google App Engine support is released with Apache MyFaces 2.0.0 Beta-3. I also prepared some documentation and some tutorials for App Engine support.

I am a PrimeFaces contributor, made several bugfixes and component implementations.

On the project "Eclipse Code Repository Search Plugin", I helped implementing a Proof of Concept.

Aside from my open source experience, I am working at a software house in Istanbul for 1.5 years. I mostly worked on international multi-vendor Internet Banking projects.

Commitments:

I will be graduated in May and I have only one exam in community bonding period. After coding starts (May 23), I have nothing to do with university.

Currently, I am working full time. I can get permission for Google Summer of Code, if not, I can convert my job to part time or I can even quit my job; since this program is important for me.

I guarantee that, I can work 40 hours a week on my project.

Contact:

Twitter : twitter.com/aliok_tr

Blog : blog.aliok.com.tr

GSoC2010_HTML5 (last edited 2010-07-21 22:46:39 by Ali Ok)