Table of Contents
|
ICEfaces 3.3.0.RC1 Release Notes
March 29th, 2013

Contents
About This Release
ICEfaces 3.3.0 RC1 is a Release Candidate preview release featuring 12 new features (including 7 all-new ACE components and new framework resource coalescing), 60 improvements, and over 150 bug fixes.
Downloads
ICEfaces is available for download in the following formats:
What's New in 3.3?
New Components:
- ace:comboBox
- Allows users to select a value from a number of given options, while also allowing them to enter a custom value in the text field.
- Supports type-ahead selection from the complete list options, or a filtering mode which reduces the list of possible matches based on the entered text.
- Features integrated label rendering (incl. Inplace/InField labels), required/optional indicators and styling, and ThemeRoller themes.
- See the new ace:comboBox demos in the ICEfaces Showcase sample application.
- ace:gMapEvent
- An ace:gMap subcomponent that allows the other Google maps components to integrate with the google event handling API and execute user defined code.
- See the new ace:gMap -> gMapEvent demo in the ICEfaces Showcase sample application.
- ace:message / ace:messages
- Supports Theme-Roller styling.
- See the new ace:messages demos in the ICEfaces Showcase sample application.
- ace:selectMenu
- This rich select menu component supports both f:selectItems and Facet-based list items for complete flexibility and improved richness over the standard h:selectOneMenu component.
- Does not render using the native browser selection control, so the look-and-feel remains consistent across browsers.
- Features integrated label rendering (incl. Inplace/InField labels), required/optional indicators and styling, and ThemeRoller themes.
- See the new ace:selectMenu demos in the ICEfaces Showcase sample application.
- ace:simpleSelectOneMenu
- A drop-in replacement for the h:selectOneMenu component.
- Resolves issues related to a quirk of the h:selectOneMenu renderer when used with deltaSubmit.
- Uses the native browser control for browser-native look-and-feel.
- Additional features include integrated label rendering, required/optional indicators and styling, and ThemeRoller themes.
- See the new ace:simpleSelectOneMenu demos in the ICEfaces Showcase sample application.
- ace:themeSelect
- Select menu component which can be used to dynamically change the currently used ACE ThemeRoller theme in the application.
- Discovers all available ThemeRoller ACE themes on the application classpath at runtime to automatically generate the list of available themes.
- Uses the native browser select menu control for browser-native look-and-feel, as well as Theme-Roller themes.
- See the new themeSelect component in the ACE demos in the ICEfaces Showcase sample application.
Updated and Enhanced Features and Components:
- Additional support for ARIA Accessibility Roles
- The following ACE entry components now support ARIA accessibility roles:
- ace:accordion
- ace:autoCompleteEntry
- ace:checkboxButton
- ace:confirmationDialog
- ace:dateTimeEntry
- ace:dialog
- ace:linkButton
- ace:maskedEntry
- ace:notificationPanel
- ace:progressBar
- ace:pushButton
- ace:sliderEntry
- ace:textAreaEntry
- ace:textEntry
- ace:tooltip
- ace:ajax
- Now merges multiple Client Events when triggered by the same user-action into a single submit.
- With the merging of ace:ajax requests, client side listeners for the same event are run in facelet order, and server side listeners are all called once on a single request.
- Improvement over standard f:ajax behaviour of triggering multiple sequential submits, one for each client event triggered.
- ace:autoComplete
- Added new client filtering mode that avoids server roundtrips.
- Specify "clientSide=true" to enable this mode.
- ace:checkboxButton
- Re-implemented to not use the YUI JS library for reduced in-browser memory and processing footprint.
- ace:contextMenu
- Improved the auto-positioning logic to make better use of the visible space on the page.
- ace:dataTable
- New Column Freezing feature:
- Added the capability to freeze or lock one or more columns in place and allow the rest of the columns to scroll horizontally. For example the left most column would be locked in place and the rest of the columns could be scrolled while the left column remained in place.
- New support for cancelling a sort or filter operation if validation fails.
- Reverts the state of the dataTable to the previous sort or filter, if the during the submit a component in the form fails validation.
- ace:chart
- Now supports specifying a single ChartSeries instance to define the plot, in addition to accepting a List of ChartSeries subclasses.
- ace:dateTimeEntry
- Added new "lenientParsing" attribute to enable stricter validation of entered date values.
- With lenient parsing, the Java date parser may use heuristics to interpret inputs that do not precisely match this date's format. With strict parsing, inputs must match this date's format. Default = 'true'.
- Added new "buttonText" attribute to specify an optional text label for the calendar popup button. Default text has been changed from "..." to "".
- ace:draggable / ace:droppable
- ace:draggable - New 'dragStartListener' attribute and 'start' ace:ajax event support to trigger events when a drag operation is intiated.
- New support for using drag and drop operations between two ICEfaces portlets on the same portlet page (drag component from one portlet to another).
- ace:gMap
- New support for SSL / HTTPS connections.
- Component now recognizes when it has been placed within a secure page and automatically adjusts to using Google's secure API connection; this must be done to allow gMap to function without security errors in any HTTPS pages.
- New ICEfaces Showcase demos have been added for Autocomplete, Control, and InfoWindow.
- ace:linkButton
- Re-implemented to not use the YUI JS library for reduced in-browser memory and processing footprint.
- ace:maskedEntry
- Added new "keypress" ace:ajax event.
- ace:menu / ace:menuBar
- Added support for 'center' and 'middle' values to the 'direction' attribute for improved positioning flexibility.
- ace:multiColumnMenu
- Added 'positionTop', 'positionLeft', and 'relativeTo' attributes for improved positioning flexibility.
- Improved the auto-positioning logic to make better use of the visible space on the page.
- ace:panel
- New 'disableInputs' attribute to support disabling of all child components inside the panel without having to set the disabled attribute on each individual component.
- ace:pushButton
- Re-implemented to not use the YUI JS library for reduced in-browser memory and processing footprint.
- ace:subMenu
- Added 'positionTop', 'positionLeft', and 'relativeTo' attributes for improved positioning flexibility.
- Improved the auto-positioning logic to make better use of the visible space on the page.
- ace:tableConfigPanel
- Added new "modal" attribute to support optionally making the panel modal.
- Added new "offsetLeft" and "offsetTop" attributes to improve ability to position the panel.
- ace:textAreaEntry
- Added new "maxlength" attribute.
- 3rd Party JavaScript Libraries
- Updated JQuery to 1.9.1.
- Updated jQuery Timepicker to 1.2.0.
- See the icefaces/lib/versions-licenses.html file in the release bundle for details on all included libraries.
- ice:graphicImage
- Added support for using dynamic resources to generate the image.
- See the new ice:graphicImage demo in the ICEfaces Showcase sample application.
- ice:radio / ice:checkbox
- Added "title" attribute to these components.
- ice:panelConfirmation
- Added "escape" attribute.
Core Framework
- Dynamic Resource Coalescing
- New support for dynamically coalescing all CSS and JavaScript resources specified on the initial page load into a single file of each type.
- Drastically reduces the number of individual HTTP requests required to fetch JavaScript and CSS resources, resulting in improved page load times.
- Works with all resources specified via JSF @ResourceDependency mechanism.
- Preserves any specified resource ordering.
- Improved Resource Versioning
- All CSS and JavaScript resources are now versioned to ensure accurate browser caching behaviour, including ensuring that the correct resource versions are always used for the ICEfaces library version in use.
- Default version string is based on the product library version and the build date: ex. "v=3_3_0_130328"
- New icecore:defaultAction Component
- Component allows application to trigger an action event within an form for a specified key-press.
<icecore:defaultAction actionListener="#{sampleBean.update}" key="Enter"/>
- Multiple icecore:defaultAction instances can be used to capture different keypresses.
- See http://jira.icesoft.org/browse/ICE-8498 for more information.
- Improved icecore:singleSubmit Configurability
- A new "disabled" attribute has been added to the icecore:singleSubmit component to permit disabling of singleSubmit for a specific component or region that was enabled by a singleSubmit tag higher in the component hierarchy.
- Security Improvements
- Security improvements have been implemented in this release based on the results of a Veracode security scan.
Samples & Tutorials
- ICEfaces Showcase Sample Application
- A large set of new demonstration panels have been added to illustrate key features of the new and improved ACE components.
JSF Runtimes
- The Mojarra JSF library included in this release has been updated to v2.1.19.
- The MyFaces JSF library included in this release has been updated to v2.1.10.
 | Change Log For a complete list of all changes in this release, see the related JIRA Change Log. |
Supported Platforms
JSF Runtimes
- Oracle Mojarra JSF 2.1.3-2.1.6, 2.1.18, 2.1.19 (included).
- Apache MyFaces JSF 2.1.9, 2.1.10 (included).
Browsers
- Chrome 25
- Firefox 10.02 - 19
- IE 6, 7, 8, 9, 10
- Safari 6
Mobile Browsers
- Apple iOS Safari
- Google Android Chrome
- RIM BlackBerry OS6 WebKit Browser
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
Apache Pluto 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.
Liferay Portal 6.x Portlet deployments should use either the Liferay Faces Bridge 3.1 (available from Liferay).
Liferay Portal 5.x deployments must use the included PortletFaces Bridge library.
 | When using the Liferay Faces Bridge, the portletfaces-bridge-2.0.2-ice-8986.jar should not be included in the class path. |
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).
deltaSubmit
- Due to a non-standard rendering technique used by the h:selectOneMenu component, when using deltaSubmit=true mode, this component is not supported. Work-arounds are to use another component instead, such as ace:simpleSelectOneMenu, or ice:selectOneMenu.
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.19 runtime libraries.
- Supported Mojarra JSF libraries are 2.1.3-2.1.6, 2.1.18, 2.1.19. Other versions have serious known issues and are not recommended.
 | Note that Mojarra 2.1.4 introduced a dependency on Servlet 3.0 APIs, as a result, it should not be used on older JEE5 application servers. Instead, Mojarra 2.1.3, or Apache MyFaces 2.1, should be used on JEE5 servers. |
- When running a JSF application in JSF2 PROJECT_STAGE="Development" mode, 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
- This release includes the MyFaces JSF 2.1.10 runtime libraries.
- Session State Serialization
- There is a compatibility issue with MyFaces default behaviour of serializing the session state between requests. It is recommended that applications disable session-state serialization in MyFaces via the following configuration parameter:
<context-param>
<param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name>
<param-value>false</param-value>
</context-param>
- See ICE-8623 for a detailed explanation.
- 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-2.1.6 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.
Sample Applications
- ICEfaces Showcase Portlets
- The ICEfaces Showcase Portlets are intended to be used with a single instance of each demo portlet on the same page at one time. Adding the same demo portlet to the page multiple times will result in component failures.
- This issue is related to the id-usage and structure of the demo application itself, and is not an inherent limitation of ICEfaces or the components themselves.
3rd Party Libraries
The license and version information for all required/included 3rd Party libraries for this release is available here.
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.
Commercial support agreements are also available.
|