Table of Contents
|
ICEfaces 3.1.0.RC1 Release Notes
July 4th, 2012

Contents
About This Release
ICEfaces 3.1.0.RC1 is a release-candidate preview release of ICEfaces 3.1.0 and may not be suitable for production use.
Downloads
ICEfaces is available for download in the following formats:
What's New in 3.1.0.RC1?
Updated & Enhanced Components:
- New ace:textAreaEntry Component:
- Integrated label rendering, including Inplace/InField labels and left/right/top/bottom label positions.
- Integrated required/optional label indicators and positioning (ex. render a "*" or "(Required)" string next to the component or component label).
- Required/optional CSS style classes for style-based required or optional status indication (ex. change background colour for required input components).
- Built-in support for Theme-Roller based style classes for components in Error/Invalid validation status (ex. highlight invalid components with red borders).
- Optionally user-resizable when running in HTML5 capable browsers.
- ace:chart Enhancements:
- Additional chart types: Pie, Donut, OHLC, Candlestick
- Axis Configurations
- Support for up to 2 X Axes and up to 9 Y Axes
- Date Axis
- Tick Format String, Angle, and Prefix
- Sort Merged Labels
- Autoscale
- Animated plotting
- Dynamic zooming
- Cursor display and cursor tooltips
- Hover highlighter (fully configurable)
- Support for click events
- ace:column
- The "sortBy", "filterBy", and "selectBy" attributes have been removed.
- These attributes were none-functional in previous 3.1.0 preview releases and have been removed as they will not be supported in the 3.1.0 release.
- ace:dataTable
- Now maintains the scrollable dataTable scrollbar position after an ajax-update occurs within the dataTable.
- ice:gmap
- The ice:gmap component(s) have been updated to use the newer Google Maps v3 JavaScript API.
- All previously supported component APIs, map-control types, etc. remain supported.
- Compatibility Note: Applications will require new gmap keys to be provided in the web.xml file for use with the Google Maps v3.0 API, instead of the former v2.0 API. GMap keys used with previous ICEfaces releases will no longer function. The gmap key value is specified in the web.xml file via the "com.icesoft.faces.gmapKey" context parameter.
Core Framework
- New icecore:setEventPhase tag
- Provides the ability to specify the JSF life-cycle phase that certain events will be broadcast in, for events originating from components in its child hierarchy.
- See the setEventPhase Wiki Topic for details.
- Improved Support for "window.onload" and "window.onunload" JavaScript Properties
- Applications can now register their own listener callbacks directly with the "window.onload" and "window.onunload" JavaScript properties without causing adverse affects to ICEfaces.
- Previously, applications had to use the "window.ice.onLoad(callback)" and "window.ice.onUnLoad(callback)" ICEfaces JavaScript APIs instead in order to avoid conflicting with ICEfaces' own event listeners on the native window object.
- Configurable Minification/Compression of JavaScript Resources
- All ICEfaces JavaScript resource files can now be provided in a none-minified/uncompressed format to the browser for easier analysis and debugging of JavaScript related issues in the browser.
- ICEfaces' JavaScript files are provided unminified/uncompressed when the JSF 2 "PROJECT_STAGE" configuration parameter is set to "Development". Any other "PROJECT_STAGE" value will result in minified/compressed JavaScript files being provided, which is optimal from a performance an bandwidth perspective.
Samples & Tutorials
- Use MyFaces JSF when building with Maven
- All sample applications built using Maven can now optionally include the MyFaces JSF libraries, instead of the Mojarra JSF libs (default).
- See the Building and Running ICEfaces with Maven Wiki topic for details.
- ICEfaces Showcase Sample Application
- The ice:gmap demo will fail with a Google Maps invalid gmapKey warning in this release as the showcase sample web.xml specifies the old v2 API key inadvertently. Replacing the gmapKey value with one generated yourself for gmap v3 will resolve the issue. A corrected key will be provided in the final 3.1.0 release.
- Minor adjustments as required to adapt existing demos to use new ACE component attributes.
IDE Integrations
- NetBeans 7.1
- This release provides an updated IDE integration for NetBeans 7.1
- Eclipse 3.6, 3.7, 4.2
- This release provides an updated IDE integration for Eclipse 3.6/3.7/4.2.
 | Change Log For a complete list of all changes in this release, see the related JIRA Change Log. |
Migration Guide
An ICEfaces 2 to ICEfaces 3 Migration Guide is available for those wishing to migrate their existing ICEaces 2.x applications to ICEfaces 3.0.
Supported Platforms
JSF Runtimes
- Oracle Mojarra JSF 2.1.3+ (2.1.6 is included).
- Apache MyFaces JSF 2.1.6 (included)
Browsers
- Chrome 19
- Firefox 10.02 - 13
- IE 6, IE 7, IE 8, IE 9
- Safari 5
Mobile Browsers
- Apple iOS Safari
- Google Android Chrome
- RIM BlackBerry OS6 WebKit Browser
 | A subset of component functionality, such as those requiring mouse-drag operations, are not currently supported on mobile devices with touch-screen interfaces. |
Application Servers
- Apache Tomcat 6, 7
- Oracle Glassfish v3.0, 3.1
- RedHat JBoss AS 5, 6, 7
Portal Containers
- Apache Pluto 2.0.3
- Liferay Portal 5, 6
(All portlet deployments require the PortletFaces Bridge library. Note that the version of the PortletFaces Bridge that is currently shipped with ICEfaces includes fixes that aren't available with the generally released version. Ensure you use the copy of the library that ships with ICEfaces for all of your ICEfaces portlet deployments.)
Known Issues
The following section describes the most commonly encountered known issues with this release:
General
- JSPs are not supported by ICEfaces 3 - use Facelets.
- It is required to specify "h:head" and "h:body" tags in your ICEfaces application pages.
- Applications must avoid the use of "javascript: void(0)" in browser DOM event handlers as this technique causes the "onBeforeOnload" event handler to be called in IE, which results in the ICEfaces bridges shutting down (thinking that the page is being navigated away from).
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 (EPS), which is included in ICEfaces EE (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.
1.8.x Compatibility
- In ICEfaces 2+, the "Request" scope is the "standard" JSF Request scope, and not the "Extended" Request scope that was the default in ICEfaces 1.x. This change may result in failures for ICEfaces 1.x applications that relied on the Extended Request Scope behavior that are being moved to ICEfaces 2.0. The workaround for this issue is to adopt one of "View", "Window", or "Session" scopes in JSF/ICEfaces 2+ instead.
Mojarra JSF
- This release includes the Mojarra JSF 2.1.6 runtime libraries.
 | Note that Mojarra 2.1.4 introduced a dependency on Servlet 3.0 APIs, as a result, it cannot be used on older JEE5 application servers. Mojarra 2.1.3, or Apache MyFaces 2.1.6 should be used in on older JEE5 servers instead. |
- Note that the Mojarra JSF releases prior to 2.1.3 have several serious issues that may impact your project and are not recommended.
- 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.
MyFaces JSF
- Portal Detection
- MyFaces 2.1.6 has a defect that prevents proper detection of Portlet 2.0 spec. portal containers.
- To work-around this issue, this release includes a patched MyFaces 2.1.6 library that resolves this issue (See http://jira.icesoft.org/browse/ICE-7926for details).
- It is anticipated that this issue will be resolved in a future MyFaces JSF official release.
- ace:dataTable w/ Row Expansion
- An issue exists that prevents the use of the ace:dataTable with Row Expansion that contains editable components, on MyFaces only. At this time, Row Expansion can be used with none-editable components-only when running on MyFaces.
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:
<f:view contentType="text/html">
- See http://jira.icesoft.org/browse/ICE-6138 for more information.
Application Servers
- Tomcat 6.0
- In some cases, when running Tomcat on Windows, undeploying an ICEfaces compatible application (i.e. that includes the icefaces-compat.jar) can cause an exception. See http://jira.icesoft.org/browse/ICE-5222 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:
<Context antiJarLocking="true" antiResourceLocking="true"/>
- Glassfish 3 / JBoss 6, 7 (JEE 6 Platforms)
- It is required to have Mojarra JSF 2.1.3+ installed. This may require updating the JSF Mojarra runtime libraries in Glassfish 3 or JBoss 6/7, depending on which JSF version is currently installed.
Portal Containers
- Liferay 5
- Using the ACE Components with Liferay 5 can result in CSS styling conflicts between the Liferay themes and the ACE Component theme, as they both utilize the jQuery ThemeRoller styling scheme. It may be necessary to customize the themes to avoid conflicts when using the ACE components with Liferay 5. See the Custom ACE Styles for Liferay Portal Wiki topic for details.
Support
Open source community support is available at http://www.icesoft.org.
The ICEfaces Community Forums are available for questions, comments, or general discussions regarding ICEfaces.
|