Leonardo's Summer of Code 2007 Project Proposal


MyFaces Component Set Integration


Leonardo Uribe


lu4242 at gmail.com , l-uribe at javeriana.edu.co


lu4242 at gmail.com (Google Talk)

Project Title

MyFaces Component Set Integration


MyFaces is ths first free open source Java Server Faces implementation. It's widely used, but there is a lot of thing to do. The objective of this project is to improve the integration of the components available in MyFaces, being incorporated the capacity to define skins or styles for define a look n feel of the components in a web page, making a wiki tutorial about using tiles for layout MyFaces components, and solving some previously raised topics in jira of MyFaces that contribute to improve integration between different components available in MyFaces.

Benefits for the community

With the fulfillment of the objectives previously exposed, the community will see beneficiary in the following aspects.

1. The appearance of the components in a Web based application using MyFaces will be able to be defined and to be updated in a consistent way, with no need to rewrite jsp pages.

2. The documentation adapted about how positioning different components in a page with tiles and MyFaces, improve the support of this characteristic to the community.

3. When contributing to the solution of different topics raised in jira from MyFaces, one improves the quality of the library, and therefore its perspective of evolution and ease of use.

Project Detail

The project presents/displays the following objectives:

1. Incorporate the capacity to define skins in MyFaces

He is quite desirable to be able to easily define the appearance of an application, because this activity affects the perceived quality of the application on the part of the user. Given the advance of development of the MyFaces project, two possible courses of action exist, that they will remember after agreement to the suggestions of the mentor:

a. Study the form since it makes ADF Faces (at the moment it were donated to the organization Apache and his new project name is Trinidad) and modify possibly separating it of Trinidad to make it accessible to the other components of MyFaces (or qualifying this characteristic for components of Tomahawk or introducing this characteristic within Core of MyFaces, which seems better).

b. To design and to implement an own form to do that, using CSS 3.0

Whatever course of action posibily will be implemented on the core or MyFaces, in order to obtain the greater possible cover and the greater benefit.

2. To make a tutorial about like along with using tiles for layout of components MyFaces

As it devises of the project is to make a new contribution to the MyFaces project, being avoided have to write the same code twice, and due to the ample use of tiles library that comes with struts, one considers to make a tutorial in form of wiki, about like an application can be combined tiles with the components of MyFaces, and be done of example that shows the advantages to use so much the existing components in MyFaces like integration with the tiles library.

3. Solving some raised topics previously in jira of MyFaces

When finishing both previous points, I will choose some nonresolute problems of jira of MyFaces, that contribute to the integration of components in MyFaces and they will be solved, with the purpose of improving the quality of the library and to support the development of open source in the apache foundation. Some of the problems whereas they are susceptible to be solved, or to make some partial contribution to its resolution, which could be boarded in this point are:

a. Some components of Tomahawk do not work well with the reference implementation of JSF, such as the t:DataTable and t:DataScroller. Several bugs already were raised in jira of MyFaces, reason why would be chosen to solve them, according to the suggestions of the mentor.

b. To correct MyFaces so that it can work jointly with a4jsf to be able to add AJAX support to MyFaces components.

c. To test to some components of Sandbox and to correct errors in such so that they can be including in the distribution of MyFaces Tomahawk.

Project Plan & Deliverables

1, Document of initial design definition of styles in MyFaces

2. Necessary code to define styles in MyFaces + documentation.

3, Tutorial Wiki of MyFaces + tiles, documentation and code of the resolute topics.


1. Initial planning and design of the project: - 28th of May

Initially, the two options previously exposed will be explored to define styles, the best alternative will be chosen and a departure design will be defined to implement.

Deliverable (s): Document of initial design definition of styles in MyFaces

2. July, 9th (midterm)

To this point the code of styles with an example of the same one will be given.

Deliverable (s): Coding necessary to define styles in MyFaces + documentation.

3. August, 20th (endterm)

In this point, corrections would be done that make lack to the previous code, and the tutorial in wiki will be elaborated and finally some related topics will be solved that were in jira of MyFaces.

Deliverable (s): Tutorial Wiki of MyFaces + tiles, documentation about resolute topics.



I am using Tomahawk in a project to systematize the handling of inventories, invoicing and accounting in a gas company local butane. I have found some problems using this library as they are:

1. There will be very cool is I could defien an look n feel of a page done with Tomahawk components (THE OBJECTIVE OF THIS PROJECT!!!!).

2. Some components do not work well with the implementation of JSF reference, such as the t:DataTable and t:DataScroller. At the moment, they even continue being a topic to solve.

3. When not being able to work with the reference implementation, it is not possible to me to use a4jsf to qualify support AJAX. GRRRRRR... I know many friends who work using JSF HTML tag library + a4jsf, and who use some components of tomahawk which they work, to try to take advantage of the best thing each thing.

4. It not exist Ajax support for tomahawk components. Some times it is not necessary, but others if serious very desirable. (Ej: like drawing single a part of the page without doing it everything)

4. With Tomahawk, layout of the components can be defined using tag t:HtmlTag, but to do it thus is very complicated. It's better to use tiles or facelets.

5. Many components in Sandbox exist, but that could not have been promoted or have been integrated to Tomahawk, due to the lack of people who test on them.

6. With the exception of the examples, a document does not exist that precise says to him to one the advantages to use Tomahawk.



Integración del Conjunto de Componentes MyFaces (Translation to Spanish)

Leonardo's Summer of Code 2007 Propuesta de Proyecto


MyFaces Component Set Integration


Leonardo Uribe


lu4242 at gmail.com , l-uribe at javeriana.edu.co


lu4242 at gmail.com (Google Talk)

Titulo del proyecto

MyFaces Component Set Integration


MyFaces es la primera implementación open source de Java Server Faces. Es ampliamente usada, pero hay muchas cosas por hacer. El objetivo de este proyecto es mejorar la integración de los componentes disponibles en MyFaces, incorporando la capacidad de definir estilos para el dibujado de los componentes, realizando un tutorial acerca de como usar tiles para el layout de componentes junto con MyFaces, y solucionando algunos tópicos previamente planteados en el jira de MyFaces que contribuyan a mejorar la integración entre diferentes componentes disponibles en MyFaces.

Beneficios para la comunidad

Con el cumplimiento de los objetivos anteriormente expuestos, la comunidad se verá beneficiada en los siguientes aspectos:

1. Se podrá definir y actualizar de manera consistente la apariencia de una aplicación web basada en los componentes de MyFaces, sin necesidad de reescribir las páginas jsp.

2. Se contará con una documentación adecuada acerca de como posicionar diferentes componentes en una página jsp, mejorando el soporte de esta característica a la comunidad.

3. Al contribuir a la solución de diferentes tópicos planteados en el jira de MyFaces, se mejora la calidad de la librería, y por ende sus perspectivas de evolución y facilidades de uso.

Detalle del Proyecto

El proyecto presenta los siguientes objetivos:

1. Incorporar la capacidad de definir estilos en MyFaces

a. Estudiar la forma como lo hace ADF Faces (actualmente ese codigo fue donado a la organización Apache y renombrado como Trinidad) y modificar el codigo posiblemente separandolo de Trinidad para hacerlo accesible a los demás componentes de MyFaces (ya sea habilitando esta característica para componentes de Tomahawk o introduciendo esta característica dentro del core de MyFaces, lo cual suena mucho mejor).

b. Diseñar e implementar una forma propia de hacer las cosas, usando CSS 3.0

Sin importar el camino escogido, posiblemente sera implementado en el core de MyFaces, en orden de obtener el mayor cubrimiento y el mayor beneficio.

2. Realizar un tutorial acerca de como usar tiles para el layout de componentes junto con MyFaces

la integración con la librería tiles.

3. Solucionar algunos tópicos previamente planteados en el jira de MyFaces

ser abordados en este punto son:

a. Algunos componentes de Tomahawk no funcionan bien con la implementación de referencia de JSF, tales como el t:DataTable y t:DataScroller. Varios bugs ya fueron planteado en el jira de MyFaces, por lo que concretamentes se escogerían algunos para resolverlos, de acuerdo a las sugerencias del mentor.

b. Corregir MyFaces para que pueda trabajar conjuntamente con a4jsf para poder agregar soporte AJAX a componentes MyFaces.

c. Hacer pruebas a algunos componentes de Sandbox y corregir errores en los mismos para que puedan ser incluidos en la distribución de MyFaces Tomahawk.


1. Documento de diseño inicial definición de estilos en MyFaces

2. Codigo necesario para definir estilos en MyFaces + documentacion.

3. Wiki Tutorial de MyFaces + tiles, documentacion y codigo de los topicos resueltos.

Linea de Tiempo

1. Planeacion inicial y diseño del proyecto: - 28th of May

Inicialmente, se explorarán las dos opciones anteriormente expuestas para definir estilos, se escogerá la mejor alternativa y se definirá un diseño de partida a implementar.

Entregables (s): Documento de diseño inicial definición de estilos en MyFaces

2. Entrega July, 9th (midterm)

A este punto se entregará el código de estilos con un ejemplo del mismo.

Entregables (s): Codigo necesario para definir estilos en MyFaces + documentacion.

3. Entrega August, 20th (endterm)

En este punto se haran las correcciones que hagan falta al código anterior, y se elaborará el tutorial en wiki y finalmente se solucionarán algunos tópicos relacionados que esten en el jira de MyFaces.

Entregables (s): Wiki Tutorial de MyFaces + tiles, documentacion y codigo de los topicos resueltos.


Soy un estudiante de Ingenieria de Sistemas e Ingenieria Electronica en Colombia. El grado de mis dos carreras es este semestre. En mi ciudad, el estudio profesional es diferente a otras partes del mundo. Toma alrededor de 5 años ganar un titulo, asi que es como hacer un grado y 2 semestres de especialización. Debes saber acerca de todo, debido a que hay mucho por hacer, y no hay muchas grandes compañías de desarrollo de software aqui. ¿Por que dos carreras? Me gusta el trabajo duro y soy muy curioso. Pienso que si quieres hacer grandes cosas, debes aprender como lo hizo Leonardo Da Vinci, y en realidad funciona!!!.

Pienso que GSOC es una gran oportunidad de ofrecer algo a la comunidad e incrementar mis habilidades personales. Yo quiero hacer este proyecto, debido a que creo en los productos de la ASF, y he recibido muchos beneficios usando sus componentes en mis proyectos. Es hora de decir con mi trabajo gracias.

Anteriormente, he trabajado en pequeños y medianos proyectos, usando tecnologías J2EE como EJBs, JSTL o JSF, siempre corriendo en servidores de aplicaciones jboss.


Yo he usando Tomahawk en un proyecto para sistematizar el manejo de inventarios, facturación y contabilidad en una empresa de gas butano local. He encontrado algunos problemas usando esta librería como son:

1. Seria super si se pudiera definir el lool n feel de una página hecha con componentes Tomahawk.

2. Algunos componentes no funcionan bien con la implementación de referencia de JSF, tales como el t:DataTable y t:DataScroller. Actualmente, aun siguen siendo tópicos por resolver.

3. Al no poder trabajar con la implementación de referencia, no me es posible utilizar a4jsf para habilitar soporte AJAX. GRRRRRR... Yo conosco muchos amigos que trabajan usando JSF HTML tag library + a4jsf, y que usan algunos componentes de tomahawk que funcionen, para intentar aprovechar lo mejor de cada cosa.

4. No existe soporte ajax para tomahawk. Algunas veces no es necesario, pero otras si seria muy deseable. (Ej: como redibujar solo una parte de la página sin hacerlo todo)

4. Con Tomahawk, se puede definir el layout de los componentes usando el tag t:HtmlTag, pero hacerlo así resulta muy complicado. Es mejor usar tiles.

5. Existen muchos componentes en Sandbox, pero que no han podido ser promovidos o integrados a Tomahawk, debido a la falta de personas que hagan pruebas sobre ellos.

6. A excepción de los ejemplos, no existe un documento que le diga a uno puntualmente las ventajas de usar Tomahawk.



LeonardoUribe/GSoC2007/proposal (last edited 2009-09-20 23:36:28 by localhost)