ICEfaces 2.0.0 Interview
Making 'the ICEfaces 2 experience even more productive and enjoyable.'
JAXenter spoke to Vice President of Product Development at ICEsoft Technologies, Ken Fyten, about the benefits of Automatic Ajax, the new implementation of the JSR 329: Portlet 2.0 Bridge for JSF, and a forthcoming ICEfaces Enterprise Edition........
JAXenter: You just released ICEfaces 2.0.0. What is the 'Automatic Ajax' functionality listed in the release notes?
Ken Fyten: 'Automatic Ajax' is a unique feature of the ICEfaces framework that automatically provides complete partial-page-rendering (PPR) updates for any ICEfaces-enabled pages, without the need to use JSF2 <f:ajax> tags. Without ICEfaces, developers need to make extensive use of the <f:ajax> tag in their pages to implement ajax-based PPR behaviours, which in practice quickly becomes complex and tedious to implement and maintain. ICEfaces 2 leverages ICEfaces Direct-to-DOM (D2D) rendering architecture to automatically calculate the precise/minimal browser page updates required to reflect the component state-changes between one JSF lifecycle and the next. This feature basically eliminates the need for application developers to use standard JSF2 <f:ajax> tags in their pages.
Direct-to-DOM is a mechanism that renders the JSF component tree
into a server-side
DOM. The rendered DOM is cached between JSF lifecycles, so it can be used to compute the difference between 2 successive page views, to determine a precise set of DOM changes required to update the browser page from one view to the next.
JAXenter: ICEfaces 2.0.0 includes Portlet support, thanks to an implementation of the JSR 329: Portlet 2.0 Bridge for JSF. How has this JSF 1.2 portlet bridge spec, been adapted to support JSF 2?
Ken Fyten: ICEfaces 2 leverages the PortletFaces Bridge project to provide portlet integration with Liferay 6, and soon other portal containers. Since there is currently no JSR for implementing a Portlet 2.0 bridge with JSF2, the PortletFaces Bridge implements the JSR 329 bridge spec as much as possible by supporting those APIs that make sense in a JSF2 environment. The bridge API JAR has its own "org.portletfaces.bridge" package namespace instead of "javax.faces.portlet" so that it can fortify the JSF 329 standard API with JSF 2.0 features where necessary. Having said that, the bridge implementation JAR contains 99% of the JSF 2.0 specific code. Also, since many JSF 2.0 features are only available with Facelets, the bridge only supports the Facelets view handler.
So in this case the PortletFaces Bridge library is necessarily leaping ahead of the available specifications to provide support for JSR-329 features on JSF2. Looking forward, the PortletFaces Bridge team will be involved in future JSR standards to help formalize this approach.
JAXenter: What components does ICEfaces 2.0.0 offer, in addition to the standard ones found in JSF 2?
Ken Fyten: In addition to providing Automatic Ajax features to any none-Ajax JSF2 components (incl. the standard JSF2 "h:" components), ICEfaces 2 provides a comprehensive set of rich components:
ICEfaces Components. This suite of components contains the ICEfaces 1.8 components running in ICEfaces 2. This component suite provides a solid foundation of rich-components for new ICEfaces 2 projects, as well as ensuring an easy migration for existing ICEfaces 1.8 projects moving to ICEfaces 2.
In addition to those... :), down the road a bit we will also be offering our commercial ICEfaces EE (Enterprise Edition) Components for ICEfaces EE 2.0, which will bring a large set of composite components to the ICEfaces 2 platform.
JAXenter: What's the next steps for the ICEfaces project?
Ken Fyten: Well, it's been a very busy year for us, particularly the last several months during the final push to complete ICEfaces 2! So our immediate plans include a nice break for the team over the holiday period. :)
In the new year, we'll be back at it working to rapidly expand our new Advanced Components set, including adding some support infrastructure to assist ICEfaces community members to author rich new components of their own. In addition, we'll be listening for the community's feedback on ICEfaces 2.0, to determine which areas to expand upon or otherwise refine to make the ICEfaces 2 experience even more productive and enjoyable.