Wednesday, 27 January 2010
JSF 2.0 + ICEfaces 2.0 + Portlet 2.0 = The PortetFaces Bridge
« Which version of ICEfaces? | Main | JSF 2.0 Complete Reference, with JSF Portlet Appendix »UPDATE#1: PortletFaces Bridge webinar took place on Thursday, Feb 11 2010 AD. Click here to view the PDF slideshow.
UPDATE#2: The source code is at Alpha1 status and can be checked out from SVN here:
- http://svn.portletfaces.org/svn/portletfaces/bridge/org.portletfaces.bridge.api/trunk/
- http://svn.portletfaces.org/svn/portletfaces/bridge/org.portletfaces.bridge.impl/trunk/
I'm working on a new project called the PortletFaces Bridge which will enable the use of JSF 2.0 within Portlet 2.0 compliant portals like Liferay 5.x. The bridge implements a subset of the features available in JSR-329. Although the JSR-329 standard defines an API for a JSF 1.2 + Portlet 2.0 bridge, the PortletFaces Bridge is targeting JSF 2.0. Additionally, the bridge will facilitate usage of ICEfaces 2.0 within Liferay Portal.
Project Status as of January 27, 2010 AD:
- I have a sample JSF 2.0 portlet developed that is using the new PortletFaces Bridge.
- HTTP GET of portal page: bridge runs the portlet RENDER_PHASE, which runs the JSF lifecycle+renderResponse and the portlet renders fine in the browser.
- HTTP POST after clicking h:commandButton: bridge runs the portlet ACTION_PHASE, which runs the JSF lifecycle. It then runs the portlet RENDER_PHASE, which runs the JSF renderResponse and the portlet renders fine in the browser.
- RESOURCES: When using the new JSF 2.0 "resource" mechanism (like for downloading the "jsf.js" JavaScript file), the bridge correctly invokes the portlet RESOURCE_PHASE, which invokes the JSF 2.0 ResourceHandler and the contents of the requested resource are correctly delivered back to the browser.
- AJAX: After tabbing-out of a field, the JSF 2.0 "jsf.js" JavaScript code correctly invokes the portlet RESOURCE_PHASE, which runs the JSF lifecycle+renderResponse, and correctly applies the DOM updates in the browser. Currently it uses the new JSF 2.0 <f:ajax /> tag to do Ajax requests. BTW I had to fix a problem in Mojarra to make this work -- I'm in contact with the Mojarra team and they're working on fixing it for the upcoming 2.0.3 release.
-
What's left: There's a bunch of little things -- loose ends that need to be coded up. Stuff like:
- Testing of ICEfaces 2.0 WITHOUT the <f:ajax /> tag
- Testing of ICEfaces 2.0 components (compatibility components)
- Testing of ICEfaces 2.0 Ajax Push
- After navigation-rules fire, need to compute the next JSF viewId to render
- Detecting portlet mode changes (VIEW MODE, EDIT MODE, HELP MODE)
The goal is to have an Alpha version ready for use in time for the webinar on Thursday, Feb 11 2010 AD. The bridge will be be an open source project and be available for download from the http://www.portletfaces.org website.
Posted by at 4:41 PM in Entries by Neil Griffin
[Trackback URL for this entry]