Making ‘the ICEfaces 2 experience even more productive and enjoyable.’
JAXenter speaks to VP of Product Development at ICEsoft Technologies on the ICEfaces 2.0 release.
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
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
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.
ICEfaces Advanced Components. This component set represents the
initial batch of new components based on our next-generation
Advanced Component Environment (ACE). The ACE platform provides a
productive environment for rapid authoring of new ICEfaces2
components, which leverage all the features of the JSF 2 component
provide rich, client-side web controls, but they are packaged as
ICEfaces JSF components, so you don’t need to know or use any
their Automatic Ajax behaviours. Important features of the Advanced
Components include flexible form definition, rich client-side
behaviours, UI theming/skinning, and W3C ARIA accessibility,
including keyboard navigation.
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
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.