MyFaces 2.0 AJAX solution

38 views
Skip to first unread message

Ganesh

unread,
Mar 26, 2009, 3:16:39 AM3/26/09
to d...@myfaces.apache.org, j4...@googlegroups.com
Dear MyFaces team,

From this mailing list I saw you are making progres in the implementation
of MyFaces 2.0. However, the AJAX part must be hard to get running. Here
is what we would like to propose to you:

The J4Fry Team (http://www.j4fry.org) has been developing a JSF AJAX component under the apache
2.0 licence since 2006 to achieve better AJAX JSF integration in business
critical software. We have introduced a great amount of stability,
cross-browser capability and feature richness in the component. It has
been in productive use for years in applications with several thousand
users and meets sophisticated non functional requirements.
We would love to make it part of MyFaces 2.0. Here is what our AJAX JSF
solution has to offer:

- PPR (partial page rendering) picks single components out of the
JSF tree and triggers their encode() methods
- PPS (partial page submit) submits only part of a form and reduces
phases 2, 3, and 4 only to the submitted components
- Facelets support: We are using an extension of the FaceletsViewHandler
to gain access to its buildView method and call it before encoding the
components
- XHTML and HTML are equally well supported (especially the upper case
/lower case differences for tag names)
- Portlet support: When accessing the request (to determine the
encoding) or the response (to acces the ResponseWriter) we check their
types before casting and provide alternative portlet callbacks. We've
tested doing AJAX inside a portal with liferay.
- Portal support: When running in portals it may be inappropriate to
access resouces through the classpath, so we provide a way to define the
file path via web.xml
- JSF 1.1 and 1.2 comaptibility (tested with MyFaces 1.1.1, 1.1.5, 1.2
and JSF RI 1.2).
- Request queing with configurable queue size. The spec requires
queueing AJAX request, but doesn't always make sense, so with J4Fry AJAX
the size of the queue is configurable.
- During the AJAX request we offer a way to disable components either by
Id or by type.
- J4Fry AJAX accepts a loadingbar attribute pointing to an image that is
to show up while the AJAX request is running.
- To achieve compatibility with different JSF implementations we search
for 5 different keys designating the JSF view state ("jsf_sequence",
"jsf_tree_64", "jsf_viewid", "jsf_state_64", "javax.faces.ViewState")
- We work around several flaws in IE to allow a cross-browser capable
AJAX experience (use insertAdjacentHTML when createContextualFragment
isn't available, parse response with VBScript if content-type=iso88591
instead of ISO-8859-1 and run contained scripts after replacing HTML
elements)
- We've tested AJAX on IE 5.5 - IE 7, FF 2-3, Safari and Opera
- Our solution comprises 1057 lines of Javascript code and 1073 lines of
Java code (a great part of the Java code implements a declarative solution
that won't be required for JSF 2.0 compatibility)
- The entire solution is designed and implemented to achieve high
performance
- Our sourceforge downloads are approaching the 3000
(https://sourceforge.net/search/?type_of_search=soft&words=j4fry).
- We are personally supporting 7 productive systems that are using our
components.
- We've run J4Fry AJAX on Tomcat, BEA and Glassfish.
- Here's a link to out AJAX documentation:
http://www.j4fry.org/jsfAjax.shtml
- We're a completely non-commercial community of JSF developers with
dependencies of no company whatsoever.

To do:
- Separate J4Fry AJAX from the rest of J4Fry's JSF components
(see http://www.j4fry.org/jsfComponents.shtml)
- Create a JSF 2.0 spec compatible interface.
- Reorganize package structure to fit MyFaces 2.0
- Translate comments in our the Javascript files from german to english

The main AJAX commiters in our team are Alex Bell and Ganesh Jung. Both
are located in Munich, Germany and would volunteer to do the integration
work as well as testing and future support. Most of the J4Fry developers
are located in germany.
There must be an team that is already working on MyFaces 2.0 AJAX. We are
willing to integrate with the existing personal structures to find a common
cooperative base with the goal of making MyFaces 2.0 AJAX the best AJAX
of JSF 2.0 implematations!
Please tell us, whether you are welcoming our cooperation.

Best Regards,
Ganesh Jung

Matthias Wessendorf

unread,
Mar 26, 2009, 4:39:13 AM3/26/09
to MyFaces Development, j4...@googlegroups.com, Werner Punz
Hey Ganesh,

sounds interesting. Thanks for bringing this up, here!

Werner did already some (first) steps in that direction, based on the
Trinidad codebase;
I haven't followed MyFaces 2.0 that close recently, due to some workloads...

-Matthias

--
Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http://twitter.com/mwessendorf

Reply all
Reply to author
Forward
0 new messages