ICEfaces 4.1.0 Release Notes

Table of Contents

ICEfaces 4.1.0 Release Notes

December 23rd, 2015

Contents

About This Release


ICEfaces 4.1 is an official ICEfaces feature release.

Release Highlights:

  • 10 all-new, and 28 enhanced ACE & MOBI Components.
  • New support for client-side validation.
  • All-new "Emporium" sample application demonstrates ACE component features, ICEpush, and best-practices
  • Enhanced ICEfaces Showcase sample application with new demos for all significant new features.
  • 175 bugs fixed.

Downloads


ICEfaces is available for download in the following formats:

What's New in 4.1?


Compatibility

If you are migrating from ICEfaces 3.x to ICEfaces 4.1 (4.x) your application will need some degree of adaptation to work correctly with this release, the scope of which will depend on the specific features and components that they leverage from prior ICEfaces releases.

See the ICEfaces 3 to 4 Migration Guide Wiki for more information.

ACE Components

See the ACE Components Wiki for reference documentation on these components.

New Components:

  • New ACE Client-side Validators
    • ace:clientValidateRequired
    • ace:clientValidateLength (min, max, range)
    • ace:clientValidateDecimal
    • ace:clientValidateValueRange (min, max, range)
    • ace:clientValidatePattern
  • New ace:panelStack, ace:stackPane provides optimized server component-tree and rendering, plus client capabilities
  • New ace:checkboxButtons component
  • New ace:radioButtons component
  • New ace:theme component - Adds ability to set the theme on a per-page basis

Enhanced Components:

  • ace:autoCompleteEntry
    • Added HTML5 'placeholder' attribute support
    • Now supports using objects as values with conversion
  • ace:column
    • Added new "sortWhenGrouping" boolean attribute to optionally support unsorted grouping of dataTable column values
    • Added new "hideSortControls" attribute to hide sortControls when sorting is enabled on a column
    • Added new "displayPriority" attribute to enable responsive column display for desktop/mobile platforms
    • Sort controls can now be activated with the keyboard
  • ace:checkboxButton
    • Checkbox button is now toggled when an associated label or outputLabel is clicked.
  • ace:comboBox
    • Added support for "noSelectionOption"
    • Now automatically sizes its width based on its contents
  • ace:dataTable
    • Added robust "liveScroll" capabilities
    • Added support for responsive column display for desktop/mobile platforms via the new 'displayPriority' attribute in ace:column.
    • Now supports less-than, greater-than, and value-range based filtering of column data
    • Added "selectAllRows()", "deselectAllRows()", "selectAllCells()" and "deselectAllCells()" client-side JavaScript functions.
    • Improved paginator keyboard navigation support
    • Added a new CSS style/state for when hovering the mouse over a previously selected row
    • Added new 'caption' attribute
    • Replaced the "widgetVar" client JS object reference with the "ice.ace.instance()" API introduced in 4.0.
  • ace:dateTimeEntry
    • Added new "minDateTime" and "maxDateTime" attributes
    • Replaced the "widgetVar" client JS object reference with the "ice.ace.instance()" API introduced in 4.0.
  • ace:dialog
    • The "close" client-event is now called when the user closes the dialog by pressing the escape key.
  • ace:gMap
    • New actionEvent is fired when a gMapEvent is triggered
    • Now supports using multiple subcomponents concurrently
    • Added 'disabled' attribute to ace:gMapEvent
  • ace:growlMessages
    • Added a new "@inView" option to the "for" attribute to only display FacesMessages for components that are currently rendere in the current view.
  • ace:linkButton
    • Added new "type='clear'" attribute that performs a client-side clear of all form components, including ACE and MOBI comps.
  • ace:message(s)
    • Added a new "@inView" option to the "for" attribute to only display FacesMessages for components that are currently rendere in the current view.
  • ace:panel
    • New "isClosed()" JavaScript API has been added.
    • Added "headerAlign" attribute to support automatic alignment of header text (left/center/right).
  • ace:progressBar
    • Added support for "indeterminate" mode
    • Replaced the "widgetVar" client JS object reference with the "ice.ace.instance()" API introduced in 4.0.
  • ace:pushButton
    • Added new "type='clear'" attribute that performs a client-side clear of all form components, including ACE and MOBI comps.
    • Added more padding to default styling
  • ace:selectMenu
    • Added support for "noSelectionOption"
    • Now automatically sizes its width based on its contents
  • ace:sliderEntry
    • Added "label" and "labelPosition" attributes
  • ace:simpleSelectMenu
    • Added support for "noSelectionOption"
    • Now supports using non-SelectItem list types
  • ace:subMenu
    • Now automatically sets its width depending on its contents
    • Added new "actionListener" and "onClick" attributes
    • Added new "action" client event.
  • ace:submitMonitor
    • Now supports "order of precedence" when multiple overlapping ace:submitMonitors are defined.
  • ace:tableConfigPanel
    • Improved keyboard navigation support
  • ace:textEntry
    • Added new "charCount" client event
  • ace:textAreaEntry
    • New 'readonly' and 'disabled' attributes
    • Added new "charCount" client event
  • ace:themeSelect
    • Added "label" and "labelPosition" attributes
  • ace:tooltip
    • Added new 'delegateDisplayListener' attribute, which works like displayListener, but takes an argument of type TooltipDelegateDisplayEvent. This event object has a cancelDisplay() method that can be invoked to prevent the tooltip from being displayed, which enables per-row determination if a tooltip should be displayed or not.
  • ace:tree
    • Replaced the "widgetVar" client JS object reference with the "ice.ace.instance()" API introduced in 4.0.
  • General Improvements
    • Improved handling of HTML5 passthrough attributes.
    • The integrated "label" rendering in the ACE input components now renders in the browser as an HTML <label> element, which improves accessibility.
  • Themes
    • Increase height of background imaged for active and hover states in Sam theme
  • 3rd Party JavaScript Libraries
    • Updated CKEditor library to 4.3
    • See the icefaces/lib/versions-licenses.html file in the release bundle for details on all included libraries.

Mobile (MOBI) Components

See the MOBI Components Wiki for reference documentation on these components.
  • MOBI BridgeIt components
    • Added support for "fallback" facets. These are displayed when the BridgeIt app. is not available on the device.
  • mobi:camera
    • Added image button support via new "buttonImage" and "captureButtonImage" attributes
    • Added "Cancel" button to the in-browser image-capture popup window
  • mobi:dataViewColumn
    • Added new "sortable" boolean attribute to support configurable user-sorting per column
    • Allow usage of html markup similar to h:outputText escape="false"
  • mobi:fieldSetRow
    • Added "50%-split" positioning

ICEfaces Framework

ICEfaces Core (ICECORE) Components

See the CORE Components Wiki for reference documentation on these components.
  • icecore:config
    • New "lazyWindowScope" boolean attribute to enable per-page lazyWindowScope configuration
  • icecore:focusManager
    • Focus can now be set in response to ajax updates in addition to full page navigation
  • icecore:idleMonitor
    • The user events that are monitored for idleness are now configurable

ICEpush

See the ICEpush Wiki for details on the topics listed below.
  • Added startup logging for ICEpush configuration parameters to the server console
  • Added new "org.icepush.networkErrorRetryTimeouts" context-param to configure automatic retries for push connection failures.
  • Now supports automatic retries for failed push update retrieval requests via the new "org.icefaces.updateNetworkErrorRetryTimeouts" context-paramater.
  • Added support for multiple blocking connections to be used when IE11's "New Session Window" feature is used

Samples

  • ICEfaces Showcase
    • New and enhanced demos for all significant new features and component enhancements
    • New simplified showcase menu configuration scheme
    • Updated namespaces for JSF 2.2 core and fn libraries that replace original jstl namespaces and jar
      • Removed deprecated xmlns:ice="http://www.icesoft.com/icefaces/component" from showcase
    • Mitigated Apache commons-collections library zero-day exploit (https://blogs.apache.org/foundation/entry/apache_commons_statement_to_widespread).
      • The ICEfaces Showcase has been refactored to remove a dependency on the Apache commons-collections.jar. This library is no longer included with the ICEfaces distribution, other than in the MyFaces JSF runtime as it is a dependency of MyFaces.
      • Note that we do not believe this exploit was possible given the manner in which the Showcase was using the library, but this step was taken as usage of the library was minimal and we belive in minimizing unnecessary dependencies whenever feasible.
  • All-New "Emporium" Sample Application
    • This new sample application demonstrates best practices using ACE component features and ICEpush in a simulated online auction marketplace.
  • Tutorials
    • The ICEfaces 4 Tutorials Wiki pages have been updated and refreshed.

IDE Support

  • ICEfaces 4 does not require specialized IDE integration bundles, but rather can be used directly with leading JSF 2.2-supporting IDEs.
  • IDE tutorials are available to explain the steps required to configure your NetBeans 8.x or Eclipse 4.4 IDE projects for ICEfaces 4: IDE Tutorials for NetBeans and Eclipse

JSF Runtimes

  • Mojarra JSF has been updated to v2.2.12 in this release.
  • MyFaces JSF has been updated to 2.2.8 in this release.
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.2.1-2.2.12 (2.2.12 included). Note that 2.2.8 is not supported in this release (see ICE-10335 for details).
  • Apache MyFaces JSF 2.2.x (2.2.8 included)

Java VM

  • Java 6 (1.6)+

Browsers

  • Chrome 47
  • Firefox 43
  • IE 8 - 11 (MOBI Components require IE10+)
  • Safari 9

Mobile Browsers

  • Apple iOS 8.x, 9.x (Safari)
  • Google Android 5.x, 6.x (Chrome)

Application Servers

  • Apache Tomcat 8
  • Oracle Glassfish 4
  • RedHat WildFly (JBoss) 9
  • Possible to use with older none EE7 servers if JSF 2.2 libraries can be configured.

Known Issues


The following section describes the most commonly encountered known issues with this release:

General

  • 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, or ace:list.

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.

JSF Runtimes

  • This release requires JSF 2.2+. JSF 2.1 runtimes are not supported.
  • Note that Mojarra JSF 2.2.8 is not supported in this release (see ICE-10335 for details). JSF 2.2.12 is the latest Mojarra release certified with ICEfaces 4.1.

Browsers

  • The following features rely on HTML5 support in the browser, and are not supported on IE8 or IE9:
    • All MOBI components
    • icecore:navigationNotifier
    • ace:audioPlayer and ace:videoPlayer
    • ace:textEntry "secret" mode is not supported on IE8.

Portal Containers

  • Liferay Portal is not supported with ICEfaces 4.1 at the time of its release do to a conflict with the Liferay Faces Bridge. We expect this to be resolved soon.

Sample Applications

  • The Emporium sample application is not supported with MyFaces JSF in this release.

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 2021 ICEsoft Technologies Canada Corp.