ICEfaces makes use of the PortletFaces Bridge to handle the mapping of the portlet lifecycle onto the JSF lifecycle. This has many advantages like enabling proper resource handling and cleaner integration with the portal container. To define your portlet, take a look at the portlet definition of the chat portlet example:
The important parts are:
* The *portlet-class*, which needs to be defined as *org.portletfaces.bridge.GenericFacesPortlet*.
* The *javax.portlet.faces.defaultViewId.view* which should identify the page that is the initial view of the portlet.
To prevent the processing of portlet resource URLs to avoid caching of things like bridge.js, the following parameter should be set to false.