ICEfaces 3.3.0 Release Notes

Table of Contents

ICEfaces 3.3.0 Release Notes

April 16th, 2013

Contents

About This Release


ICEfaces 3.3.0 is an official ICEfaces feature release, featuring 12 new features (including 7 all-new ACE components and new framework-level resource coalescing), over 60 improvements, and over 180 bug fixes.

Downloads


ICEfaces is available for download in the following formats:

What's New in 3.3?


ACE Components

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 show/hide transition effects, 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 show/hide transition effects, 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.
    • The @ClientEvent default Execute and Render scopes for various ACE component client event types have been rationalized to provide more logical and consistent defaults. These changes may produce noticeable changes in execution or rendering behaviors in existing applications in certain cases.
  • ace:autoCompleteEntry
    • New client filtering mode that avoids server roundtrips.
      • Specify "clientSide=true" to enable this mode.
    • Added show/hide transition effect support for the popup list.
  • 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:fileEntry
    • Now supports Internet Explorer (IE) 10.
  • 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.
    • Added new 'headerClass' and 'footerClass' attributes to provide improves CSS styling flexibility.
    • Improved the auto-positioning logic to make better use of the visible space on the page.
  • ace:printer
    • Added new "ignoreValidation" attribute.
    • By default, if the ace:printer component has an ace:ajax behavior, the printing UI will appear right after the ajax request is made, whether there were validation errors or not in such request. In some cases, application developers will want to make sure the page content is valid before printing the page. This can now be achieved via setting "ignoreValidation='false'".
  • 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.
  • ace:tooltip
    • Added "style" and "styleClass" attributes.
  • 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 Components

  • 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.
    • Can drastically reduce 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.
    • See the http://www.icesoft.org/wiki/display/ICE/coalesceResources Wiki topic for more information.
  • 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 the http://www.icesoft.org/wiki/display/ICE/defaultAction Wiki topic 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.
    • All instances of "h:message(s)" and "h:selectOneMenu" in the ACE Components demos have been replaced with "ace:message(s)" and "ace:simpleSelectOneMenu".
    • Enabled dynamic resource coalescing in the Showcase sample application (web.xml).

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), 2.1.21.
  • Apache MyFaces JSF 2.1.9, 2.1.10 (included).

Browsers

  • Chrome 26
  • Firefox 10.02 - 20
  • 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 required fixes that aren't available with the generally released version.

Liferay Portal 6.x Portlet deployments should use either the Liferay Faces Bridge 3.1 or 3.2 (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.
  • Client state saving mode is not supported by ICEfaces - it is required to use SERVER state saving mode.
  • 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

  • The following standard "h:" components are not supported by the deltaSubmit feature (due to a problematic rendering technique that they utilize):
    • h:selectOneMenu
    • h:selectManyMenu
    • h:selectOneListbox
    • h:selectManyListbox
  • The work-around is to use similar alternative components instead, such as ace:simpleSelectOneMenu, ace:list, 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, 2.1.21. 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.
  • Mojarra 2.1.15 introduced a serious regression issue that prevents "partialStateSaving=false" mode from working correctly. This issue also affects all subsequent Mojarra versions through 2.2.21. The Mojarra JIRA has been marked fixed for the upcoming 2.1.22 release. Work-arounds are to use "partialStateSaving=true", which is the default, or Mojarra 2.1.6, or MyFaces JSF instead.
  • 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 a supported Mojarra JSF library 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

  • PortletFaces Bridge
    • The PortletFaces Bridge is not supported in this release with Mojarra JSF 2.1.19+.
    • The recommended workaround is to use Mojarra 2.1.3-2.1.6.
  • LiferayFaces Bridge
    • LiferayFaces Bridge 3.1.2 is required for use with Mojarra JSF versions greater than 2.1.6.
  • 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.

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

© Copyright 2014 ICEsoft Technologies Canada Corp.