Wednesday, 27 January 2010

JSF 2.0 + ICEfaces 2.0 + Portlet 2.0 = The PortetFaces Bridge

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:

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 neil.griffin at 4:41 PM in Entries by Neil Griffin

Which version of ICEfaces?


People have been asking which ICEfaces version they should use. There are three main choices, and the full source code is available in each case:

  • ICEfaces-EE 1.8.2: You are using ICEfaces in production. You need rapid response to support issues, may have a highly available cluster on a commercial application server, and benefit from an extended component suite and testing resources. We are truly grateful to our subscribers and recognize that they are what makes ICEfaces possible.
  • ICEfaces 1.8.2: You are using ICEfaces to freely develop an application with rich JSF components and revolutionary Ajax Push features. You are supported by the very active ICEfaces community and generally deploy a single application to an open source server.
  • ICEfaces 2.0 A2: You are ready to benefit from JSF 2.0. We recommend that everyone begin with a prototype now and send in their feedback during the alpha phase.

    Why not just support ICEfaces 1.8 on JSF 2.0? In theory, this is possible, but it further increases the test matrix for ICEfaces 1.8 and cannot provide the major architectural simplifications obtained by building ICEfaces 2.0 purely on JSF 2.0. But in essence, the compatibility library in ICEfaces 2.0 (icefaces-compat.jar) is ICEfaces 1.8 on JSF 2.0.

Posted by ted.goddard at 11:15 AM in Entries by Ted Goddard

Friday, 22 January 2010

ICEfaces 2.0 Alpha2 is now available


ICEfaces 2.0 has reached Alpha 2 and is now available for download. If you're using JSF (or are curious about JSF), now is the time to try JSF 2.0: Facelets is standard, providing an advanced yet easy to use page and component definition language, the new standard View Scope correctly handles multiple windows and tabs, and standard annotations have eliminated tedious XML configuration. ICEfaces 2.0 provides a rich set of components and transparently adds Ajax to the JSF rendering process, giving you an Ajax application without writing a single line of JavaScript or manually adding any Ajax tags. ICEfaces also provides the easiest to use and most powerful Ajax Push API of any web framework in any language (a grand claim? please comment if you disagree).

ICEfaces 2.0 Alpha 1 was a technology preview, intended for experimentation. ICEfaces 2.0 Alpha 2 might have a few known issues (FileUpload is not available, and you may see a few exceptions) but is ready for general prototyping and application development. Porting the ICEfaces 1.8 sample applications was very easy (a couple of hours in each case), so please give us feedback on your porting experience so that we can enhance the compatibility layer and add porting tips to the wiki documentation.

For this release, the most extensive work has gone into the compatibility layer (providing the ICEfaces 1.8 components on JSF 2.0 ... even for Internet Explorer 6) and the standalone Ajax Push library (which is not quite ready to use standalone; more on that in the coming weeks). It's time to begin moving your ICEfaces 1.8 application to ICEfaces 2.0. We look forward to seeing you on the forums.

Technorati Tags:

Posted by ted.goddard at 7:31 PM in Entries by Ted Goddard

« January »
SMTWTFS
     12
3456789
10111213141516
17181920212223
24252627282930
31