h1. ICEfaces 2.0.1 Release Notes
*_March 30th, 2011_*
!http://www.icefaces.org/docs/latest/resources/ICEfaces-logo.gif!
h2. Contents
These Release Notes include the following sections:
* [About This Release|#about]
* [Downloads|#downloads]
* [Notable Changes|#notablechanges]
** [New Supported Platforms|#newplatforms]
** [Core Framework Changes|#frameworkchanges]
** [ICEfaces Components|#compchanges]
** [Advanced Components|#acechanges]
** [Samples and Tutorials|#samplechanges]
* [Supported Platforms|#supportedplatforms]
* [Known Issues|#knownissues]
* [Support|#support]
{anchor:about}
h2. About This Release
----
ICEfaces 2.0.1 is an official maintenance release featuring over 110 improvements and fixes.
{note}Although this release has been certified on Mojarra JSF 2.1.0-FCS, there are significant known issues with this JSF release that impact users working on non-Glassfish application servers, or who wish to use IE 9. As a result, the ICEfaces release bundles provide the Mojarra JSF 2.1.1-b03 preview release to be used as an alternative. See the [Known Issues|#jsfki] section for details.{note}
{anchor:downloads}
h2. Downloads
----
ICEfaces 2.0.1 is available for download in the following formats:
* Binary and source-code [bundles|http://downloads.icefaces.org]
* IDE Tool [integration bundles|http://www.icefaces.org/main/downloads/os-downloads.iface?category=Eclipse,NetBeans]
* [Maven2 Public Repository|http://anonsvn.icefaces.org/repo/maven2/releases/org/] (jars only)
* [SVN repository checkout|http://anonsvn.icefaces.org/repo/icefaces2/tags/icefaces-2.0.1/]
{anchor:notablechanges}
h2. Notable Changes in this Release
----
{anchor:newplatforms}
h4. New Supported Platforms
* Support for the following additional platforms is added in this release:
** Google Chrome 10
** Mozilla Firefox 4.0
** Microsoft Internet Explorer 9 (IE 9)
** Oracle Glassfish 3.1 (final)
** JBoss 6.0 (final)
** Liferay Portal 5.2.3
{anchor:frameworkchanges}
h4. Core Framework
* Lazy Window Scope Initialization
** Management of Window Scope requires HTTP messages to be sent to the server whenever browser navigation or window closing events occur. To avoid unnecessary network traffic, Window Scope initialization has been optimized to only perform Window Scope related HTTP transactions when Window Scope is being used by the application.
* Single-Submit
** Several improvements have been made to SingleSubmit to resolve issues with unnecessary double-submits occurring in specific circumstances.
* JavaScript Bridge
** Due to a bug in Mojarra, JSF full-page DOM updates performed via Ajax do not properly execute JavaScript included in the <HEAD> region of the page on some browsers (IEs, Firefox), resulting is unpredictable and hard-to-trace failures. A work-around for this issue has been included in this release.
** HTTP errors are now handled and reported by the ICEfaces bridge. There is an associated new _ice.onNetworkError(callback)_ [JavaScript Client API] in support of this.
** It is now possible to disable the default ICEfaces error popup panels. By default, ICEfaces will report various connection or application errors in the form of popup dialog panels in the browser window. Using one of the techniques below, it is now possible to disable the default error dialogs, which is useful if you are implementing your own error reporting strategy, etc.
*** A new _ice.disableDefaultErrorPopups_ [JavaScript Client API] is available for dynamically disabling the error popups on the client using JavaScript.
*** The new configuration parameter "_org.icefaces.disableDefaultErrorPopups_" can be specified in the web.xml file to disable the default error popups. See the [Configuration] topic for details.
** Several omissions and errors have been corrected in the [JavaScript Client API] topic in the ICEfaces 2 Documentation Wiki.
{anchor:compchanges}
h4. [ICE Components]
* The JavaScript files used by the ICEfaces Components have been optimized to reduce their sizes, resulting in a 50% size savings vs. 2.0.0 (approx. 250KB).
* ice:dataPaginator
** A layout bug related to using "vertical" alignment has been fixed.
* ice:inputRichText
** Now supports the "partialSubmit" attribute.
* ice:outputResource
** Now supports the "disabled" attribute.
* ice:panelPopup
** Several issues with modal ice:panelPopups in various browsers and use-cases have been resolved.
* ice:selectOneMenu
** This component can now accept an array of Objects as input to create the list.
{anchor:acechanges}
h4. [ACE Components]
* Reduced Static JavaScript Footprint
** The Advanced Components now leverage the YUI bootstrap loader which greatly reduces the number and size of the JavaScript files that must loaded when initially visiting the page. The net result is that pages using the Advanced Components now load dramatically faster and overall response time when navigating between pages is substantially improved.
* ace:fileEntry
** New support for stream-based processing of uploaded files, roughly analogous to the old ice:inputFile's outputStream property. Using this mode of operation, when files are uploaded they are not automatically written to the server file-system, but will instead be processed by the new FileEntryCallback interface, allowing for in-memory processing of the file. Typical use-cases for this functionality are when the file may be stored in a database, needs to be virus scanned before being saved on the server, etc.
** The previously selected file/path information is now automatically cleared upon the successful completion of an upload.
* ace:slider
** Now supports displaying range labels on slider for min, median, and max values via the new "showLabels" attribute.
* All ACE input components now support the "disabled" attribute and associated skin style-classes and predefined skin styles.
{anchor:samplechanges}
h4. Samples & Tutorials
* Support for building the portlet versions of various sample applications with Maven has been added in this release.
* Component Showcase
** A new demo has been added to demonstrate the use of the ice:menuItems sub-component, called "Dynamic Menu".
** A bug in the Output Resource demo has been fixed that caused the demo to attempt to download zero-length files.
* The following new tutorials are available:
** [Using ICEfaces with CDI]
** [Using ICEfaces with Spring Security 3|http://wiki.icefaces.org/display/ICE/Spring+Security]
** [Using ICEfaces with Spring WebFlow 2|http://wiki.icefaces.org/display/ICE/Spring+Web+Flow+2]
{tip:title=Change Log}For a complete list of all changes in this release, see the related JIRA [Change Log|http://jira.icefaces.org/browse/ICE/fixforversion/10255].{tip}
{anchor:supportedplatforms}
h2. Supported Platforms
----
This release has been tested on the following:
h4. JSF Runtimes
* Mojarra JSF 2.1.0-FCS
* Mojarra JSF 2.1.1-b03
** JSF 2.1.1-b03 is an unofficial preview release from 3/22/2011, see [Known Issues|#knownissues] for details.
** This version is included in the release bundle.
h4. Browsers
* Google Chrome 10
* Mozilla Firefox 3.6, 4.0
* Microsoft IE 8, IE 9
* Apple Safari 5
h4. Application Servers
* Tomcat 6, 7
* Glassfish 3.1
* JBoss 6.0
h4. Portal Containers
* Liferay Portal 5.2.3, 6.0.6
** Both using PortletFacesBridge v2.0-RC1
{anchor:knownissues}
h2. Known Issues
----
The following section describes the most commonly encountered known issues with this release:
h4. General
* JSPs are not supported by ICEfaces 2.0 - use Facelets.
* It is required to specify "h:head" and "h:body" tags in your ICEfaces application pages.
* Due to an apparent [bug|https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=1492] in the Sun Mojarra JSF 2 runtime library, component binding is not reliable when used within a View scope.
** The recommended workaround is to use the ICEfaces "Window" or JSF "Session" scopes instead if component-binding is required. Alternatively, applications can be modified to avoid the requirement for using component-binding in View scope by using techniques similar to that used in the Data Paginator demo section of Compatible Component Showcase application. For details, see [ICE-5226|http://jira.icefaces.org/browse/ICE-5226?focusedCommentId=29297&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_29297].
h4. ICEpush
* ICEpush (icepush.jar) asynchronous update support is limited to a single ICEfaces application per host-name/server.
** Viewing multiple ICEfaces applications in the same browser from the same host server concurrently will result in only one of the applications having functional push capabilities.
** Support for pushing asynchronous updates to multiple ICEfaces applications from the same server/host-name requires the use of the [Enterprise Push Server|http://www.icesoft.org/products/ICEfaces-EE/enterprise-push-server.jsf] (EPS), which is included in [ICEfaces EE|http://www.icesoft.org/products/ICEfaces-EE/overview.jsf] (Enterprise Edition).
** This is necessary because the browser cannot support multiple concurrent push connections, so all push traffic must be multiplexed at a single point on the server.
h4. ICEfaces Components
* ice:inputRichText
** The inputRichText component is not currently supported on IE9. This issue will be resolved in the next release.
h4. Advanced Components
* ace:fileEntry - occasionally the JavaScript error _"Failed to load resource: javax.faces.resource/listen.icepush.jsf"_ will appear in the JavaScript console after a successful file upload. This error can be ignored as it has no functional impact.
h4. Portlets
* The Advanced Components are not currently supported for portlet development, with the exception of the fileEntry component. Using the fileEntry component on Liferay requires that the mandatoryResourceConfiguration configuration parameter be set in the web.xml as follows:
{code} <context-param>
<param-name>org.icefaces.mandatoryResourceConfiguration</param-name>
<param-value></param-value>
</context-param{code}See the [Configuration|http://wiki.icefaces.org/display/ICE/Configuration] topic for more information on mandatoryResourceConfiguration.
{anchor:jsfki}
h4. Mojarra JSF
* The official Mojarra JSF 2.1.0-FCS release has several serious issues that may impact your project:
** A bug that prevents it from supporting bean-annotation on non-Glassfish 3.1 application servers and servlet containers.
** Several bugs that prevent the IE9 browser from working properly with JSF-ajax operations.
** This release of ICEfaces includes the Mojarra JSF 2.1.1-b03 preview release libraries which resolves both of the issues noted above. It is recommended that the JSF 2.1.1-b03 libraries be used if either of the issues above will impact your project. Note that this is not an official Mojarra JSF release, so other issues may exist with it.
* When running a JSF application in JSF2 _PROJECT_STAGE="Development"_ mode (which is the default setting for all ICEfaces sample applications), you may see the follow warning appear at the bottom of the page: _"Form component needs to have a UIForm in its ancestry."_.
** This issue is caused by a bug in Mojarra JSF, a suggested work-around is to set the JSF2 _PROJECT_STAGE="Production"_ in the web.xml file.
h4. Browsers
* WebKit (Safari and Chrome)
** The WebKit-based browsers (Google Chrome and Apple Safari) request content-type "application/xhtml+xml" by default, which is different from virtually all other browsers. In cases where the application page doesn't set the contentType explicitly this can result in these browsers defaulting to a strict XHTML rendering mode, which can cause some unexpected styling and layout issues. In order to have WebKit-based browsers render markup consistently with other browsers, you must specify the content-type in the view tag on each page:
{code}<f:view contentType="text/html">{code}
** See http://jira.icefaces.org/browse/ICE-6138 for more information.
h4. Application Servers
* Tomcat 6.0
** In some cases, when running Tomcat on Windows, undeploying an ICEfaces 2 compatible application (i.e. that includes the icefaces-compat.jar) can cause an exception. See [http://jira.icefaces.org/browse/ICE-5222|http://jira.icefaces.org/browse/ICE-5222?focusedCommentId=27631&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_27631] for additional information about this issue. To prevent this, include a context.xml file with your application that includes the following Context attributes to prevent jar and resource locking: {code:xml}<Context antiJarLocking="true" antiResourceLocking="true"/>{code}
* Glassfish 3 / JBoss 6 (JEE 6 Platforms)
** It is necessary to have Mojarra JSF 2.1.0-FCS or greater installed. This may require updating the JSF Mojarra runtime libraries in Glassfish 3 or JBoss 6, depending on which JSF version is currently installed.
{anchor:support}
h2. Support
----
Open source community support is available at http://www.icefaces.org.
The [ICEfaces community forums|http://www.icefaces.org/JForum/forums/list.page] are available for questions, comments, or general discussions regarding ICEfaces 2.
*_March 30th, 2011_*
!http://www.icefaces.org/docs/latest/resources/ICEfaces-logo.gif!
h2. Contents
These Release Notes include the following sections:
* [About This Release|#about]
* [Downloads|#downloads]
* [Notable Changes|#notablechanges]
** [New Supported Platforms|#newplatforms]
** [Core Framework Changes|#frameworkchanges]
** [ICEfaces Components|#compchanges]
** [Advanced Components|#acechanges]
** [Samples and Tutorials|#samplechanges]
* [Supported Platforms|#supportedplatforms]
* [Known Issues|#knownissues]
* [Support|#support]
{anchor:about}
h2. About This Release
----
ICEfaces 2.0.1 is an official maintenance release featuring over 110 improvements and fixes.
{note}Although this release has been certified on Mojarra JSF 2.1.0-FCS, there are significant known issues with this JSF release that impact users working on non-Glassfish application servers, or who wish to use IE 9. As a result, the ICEfaces release bundles provide the Mojarra JSF 2.1.1-b03 preview release to be used as an alternative. See the [Known Issues|#jsfki] section for details.{note}
{anchor:downloads}
h2. Downloads
----
ICEfaces 2.0.1 is available for download in the following formats:
* Binary and source-code [bundles|http://downloads.icefaces.org]
* IDE Tool [integration bundles|http://www.icefaces.org/main/downloads/os-downloads.iface?category=Eclipse,NetBeans]
* [Maven2 Public Repository|http://anonsvn.icefaces.org/repo/maven2/releases/org/] (jars only)
* [SVN repository checkout|http://anonsvn.icefaces.org/repo/icefaces2/tags/icefaces-2.0.1/]
{anchor:notablechanges}
h2. Notable Changes in this Release
----
{anchor:newplatforms}
h4. New Supported Platforms
* Support for the following additional platforms is added in this release:
** Google Chrome 10
** Mozilla Firefox 4.0
** Microsoft Internet Explorer 9 (IE 9)
** Oracle Glassfish 3.1 (final)
** JBoss 6.0 (final)
** Liferay Portal 5.2.3
{anchor:frameworkchanges}
h4. Core Framework
* Lazy Window Scope Initialization
** Management of Window Scope requires HTTP messages to be sent to the server whenever browser navigation or window closing events occur. To avoid unnecessary network traffic, Window Scope initialization has been optimized to only perform Window Scope related HTTP transactions when Window Scope is being used by the application.
* Single-Submit
** Several improvements have been made to SingleSubmit to resolve issues with unnecessary double-submits occurring in specific circumstances.
* JavaScript Bridge
** Due to a bug in Mojarra, JSF full-page DOM updates performed via Ajax do not properly execute JavaScript included in the <HEAD> region of the page on some browsers (IEs, Firefox), resulting is unpredictable and hard-to-trace failures. A work-around for this issue has been included in this release.
** HTTP errors are now handled and reported by the ICEfaces bridge. There is an associated new _ice.onNetworkError(callback)_ [JavaScript Client API] in support of this.
** It is now possible to disable the default ICEfaces error popup panels. By default, ICEfaces will report various connection or application errors in the form of popup dialog panels in the browser window. Using one of the techniques below, it is now possible to disable the default error dialogs, which is useful if you are implementing your own error reporting strategy, etc.
*** A new _ice.disableDefaultErrorPopups_ [JavaScript Client API] is available for dynamically disabling the error popups on the client using JavaScript.
*** The new configuration parameter "_org.icefaces.disableDefaultErrorPopups_" can be specified in the web.xml file to disable the default error popups. See the [Configuration] topic for details.
** Several omissions and errors have been corrected in the [JavaScript Client API] topic in the ICEfaces 2 Documentation Wiki.
{anchor:compchanges}
h4. [ICE Components]
* The JavaScript files used by the ICEfaces Components have been optimized to reduce their sizes, resulting in a 50% size savings vs. 2.0.0 (approx. 250KB).
* ice:dataPaginator
** A layout bug related to using "vertical" alignment has been fixed.
* ice:inputRichText
** Now supports the "partialSubmit" attribute.
* ice:outputResource
** Now supports the "disabled" attribute.
* ice:panelPopup
** Several issues with modal ice:panelPopups in various browsers and use-cases have been resolved.
* ice:selectOneMenu
** This component can now accept an array of Objects as input to create the list.
{anchor:acechanges}
h4. [ACE Components]
* Reduced Static JavaScript Footprint
** The Advanced Components now leverage the YUI bootstrap loader which greatly reduces the number and size of the JavaScript files that must loaded when initially visiting the page. The net result is that pages using the Advanced Components now load dramatically faster and overall response time when navigating between pages is substantially improved.
* ace:fileEntry
** New support for stream-based processing of uploaded files, roughly analogous to the old ice:inputFile's outputStream property. Using this mode of operation, when files are uploaded they are not automatically written to the server file-system, but will instead be processed by the new FileEntryCallback interface, allowing for in-memory processing of the file. Typical use-cases for this functionality are when the file may be stored in a database, needs to be virus scanned before being saved on the server, etc.
** The previously selected file/path information is now automatically cleared upon the successful completion of an upload.
* ace:slider
** Now supports displaying range labels on slider for min, median, and max values via the new "showLabels" attribute.
* All ACE input components now support the "disabled" attribute and associated skin style-classes and predefined skin styles.
{anchor:samplechanges}
h4. Samples & Tutorials
* Support for building the portlet versions of various sample applications with Maven has been added in this release.
* Component Showcase
** A new demo has been added to demonstrate the use of the ice:menuItems sub-component, called "Dynamic Menu".
** A bug in the Output Resource demo has been fixed that caused the demo to attempt to download zero-length files.
* The following new tutorials are available:
** [Using ICEfaces with CDI]
** [Using ICEfaces with Spring Security 3|http://wiki.icefaces.org/display/ICE/Spring+Security]
** [Using ICEfaces with Spring WebFlow 2|http://wiki.icefaces.org/display/ICE/Spring+Web+Flow+2]
{tip:title=Change Log}For a complete list of all changes in this release, see the related JIRA [Change Log|http://jira.icefaces.org/browse/ICE/fixforversion/10255].{tip}
{anchor:supportedplatforms}
h2. Supported Platforms
----
This release has been tested on the following:
h4. JSF Runtimes
* Mojarra JSF 2.1.0-FCS
* Mojarra JSF 2.1.1-b03
** JSF 2.1.1-b03 is an unofficial preview release from 3/22/2011, see [Known Issues|#knownissues] for details.
** This version is included in the release bundle.
h4. Browsers
* Google Chrome 10
* Mozilla Firefox 3.6, 4.0
* Microsoft IE 8, IE 9
* Apple Safari 5
h4. Application Servers
* Tomcat 6, 7
* Glassfish 3.1
* JBoss 6.0
h4. Portal Containers
* Liferay Portal 5.2.3, 6.0.6
** Both using PortletFacesBridge v2.0-RC1
{anchor:knownissues}
h2. Known Issues
----
The following section describes the most commonly encountered known issues with this release:
h4. General
* JSPs are not supported by ICEfaces 2.0 - use Facelets.
* It is required to specify "h:head" and "h:body" tags in your ICEfaces application pages.
* Due to an apparent [bug|https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=1492] in the Sun Mojarra JSF 2 runtime library, component binding is not reliable when used within a View scope.
** The recommended workaround is to use the ICEfaces "Window" or JSF "Session" scopes instead if component-binding is required. Alternatively, applications can be modified to avoid the requirement for using component-binding in View scope by using techniques similar to that used in the Data Paginator demo section of Compatible Component Showcase application. For details, see [ICE-5226|http://jira.icefaces.org/browse/ICE-5226?focusedCommentId=29297&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_29297].
h4. ICEpush
* ICEpush (icepush.jar) asynchronous update support is limited to a single ICEfaces application per host-name/server.
** Viewing multiple ICEfaces applications in the same browser from the same host server concurrently will result in only one of the applications having functional push capabilities.
** Support for pushing asynchronous updates to multiple ICEfaces applications from the same server/host-name requires the use of the [Enterprise Push Server|http://www.icesoft.org/products/ICEfaces-EE/enterprise-push-server.jsf] (EPS), which is included in [ICEfaces EE|http://www.icesoft.org/products/ICEfaces-EE/overview.jsf] (Enterprise Edition).
** This is necessary because the browser cannot support multiple concurrent push connections, so all push traffic must be multiplexed at a single point on the server.
h4. ICEfaces Components
* ice:inputRichText
** The inputRichText component is not currently supported on IE9. This issue will be resolved in the next release.
h4. Advanced Components
* ace:fileEntry - occasionally the JavaScript error _"Failed to load resource: javax.faces.resource/listen.icepush.jsf"_ will appear in the JavaScript console after a successful file upload. This error can be ignored as it has no functional impact.
h4. Portlets
* The Advanced Components are not currently supported for portlet development, with the exception of the fileEntry component. Using the fileEntry component on Liferay requires that the mandatoryResourceConfiguration configuration parameter be set in the web.xml as follows:
{code} <context-param>
<param-name>org.icefaces.mandatoryResourceConfiguration</param-name>
<param-value></param-value>
</context-param{code}See the [Configuration|http://wiki.icefaces.org/display/ICE/Configuration] topic for more information on mandatoryResourceConfiguration.
{anchor:jsfki}
h4. Mojarra JSF
* The official Mojarra JSF 2.1.0-FCS release has several serious issues that may impact your project:
** A bug that prevents it from supporting bean-annotation on non-Glassfish 3.1 application servers and servlet containers.
** Several bugs that prevent the IE9 browser from working properly with JSF-ajax operations.
** This release of ICEfaces includes the Mojarra JSF 2.1.1-b03 preview release libraries which resolves both of the issues noted above. It is recommended that the JSF 2.1.1-b03 libraries be used if either of the issues above will impact your project. Note that this is not an official Mojarra JSF release, so other issues may exist with it.
* When running a JSF application in JSF2 _PROJECT_STAGE="Development"_ mode (which is the default setting for all ICEfaces sample applications), you may see the follow warning appear at the bottom of the page: _"Form component needs to have a UIForm in its ancestry."_.
** This issue is caused by a bug in Mojarra JSF, a suggested work-around is to set the JSF2 _PROJECT_STAGE="Production"_ in the web.xml file.
h4. Browsers
* WebKit (Safari and Chrome)
** The WebKit-based browsers (Google Chrome and Apple Safari) request content-type "application/xhtml+xml" by default, which is different from virtually all other browsers. In cases where the application page doesn't set the contentType explicitly this can result in these browsers defaulting to a strict XHTML rendering mode, which can cause some unexpected styling and layout issues. In order to have WebKit-based browsers render markup consistently with other browsers, you must specify the content-type in the view tag on each page:
{code}<f:view contentType="text/html">{code}
** See http://jira.icefaces.org/browse/ICE-6138 for more information.
h4. Application Servers
* Tomcat 6.0
** In some cases, when running Tomcat on Windows, undeploying an ICEfaces 2 compatible application (i.e. that includes the icefaces-compat.jar) can cause an exception. See [http://jira.icefaces.org/browse/ICE-5222|http://jira.icefaces.org/browse/ICE-5222?focusedCommentId=27631&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_27631] for additional information about this issue. To prevent this, include a context.xml file with your application that includes the following Context attributes to prevent jar and resource locking: {code:xml}<Context antiJarLocking="true" antiResourceLocking="true"/>{code}
* Glassfish 3 / JBoss 6 (JEE 6 Platforms)
** It is necessary to have Mojarra JSF 2.1.0-FCS or greater installed. This may require updating the JSF Mojarra runtime libraries in Glassfish 3 or JBoss 6, depending on which JSF version is currently installed.
{anchor:support}
h2. Support
----
Open source community support is available at http://www.icefaces.org.
The [ICEfaces community forums|http://www.icefaces.org/JForum/forums/list.page] are available for questions, comments, or general discussions regarding ICEfaces 2.