ICEfaces 4.2.0 Release Notes

Table of Contents

ICEfaces 4.2.0 Release Notes

March 9th, 2017

Contents

About This Release


ICEfaces 4.2.0 is an official ICEfaces feature release.

Release Highlights:

  • All-new ace:schedule Component (live demo)
    • Month, Week, or Day views of scheduled events.
    • Built-in functionality to optionally add, edit and delete events.
    • Event details can be displayed on a popup, on a sidebar, or on a tooltip.
    • Supports lazy-loading mode, only loading the events that are visible in the current view for a given date.
    • Includes time-zone support so that international events can be displayed in the local user's time.
    • Ajax support for nine different actions within the component, and multiple ways to configure the component for a more custom user experience.
  • New ace:colorEntry Component (live demo)
    • Comprehensive color selection support based on the JQuery Color Picker widget.
    • Inline, input/popup, and popup button display modes.
    • Support for swatches, wide array of color value types.
  • New icecore:repeat Component (live demo)
    • Allows components access to component repetition with expressions resolved when they are added to component tree.
  • ace:growlMessages now supports Native Platform Notifications on supported browsers/platforms.
  • mobi:camera and mobi:microphone can now use device cameras/microphones without requiring the BridgeIt app. on supported browsers/platforms.
  • Introduces preliminary support for Mojarra JSF 2.3 (pre-release).
  • Over 130 stabilizing bug fixes.

Downloads


ICEfaces is available for download in the following formats:

What's New in 4.2.0?


ACE Components

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

New Components:

  • New ace:colorEntry
    • Comprehensive color selection support based on the JQuery Color Picker widget.
  • New ace:schedule
    • Month, Week, or Day views of scheduled events.
    • Built-in functionality to optionally add, edit and delete events.

Enhanced Components:

  • General
    • HTML-element "on*" passthru attributes are now first-class attributes on applicable ACE components.
    • All eligible ACE components now support the "accesskey" attribute.
    • The 'style' attribute is now rendered on the main component elements instead of the root container element to support more intuitive style overriding.
  • ace:buttonGroup
    • Is now a JSF naming container for more efficient ace:ajax update calls with simplified ID syntax requirements.
    • Can now be used to group button components that are not nested inside the buttonGroup via the new "group" attribute on the buttons.
  • ace:chart
    • Added support for formatting of dataLabels for SectorSeries charts.
  • ace:checkboxButton(s)
    • Optimized to improve rendering performance when a large number of components are used on a page.
  • ace:clientValidate*
    • Add new "validateOn" attribute to ACE clientValidate* components
    • Client-side validators now respect "immediate=true" during ace:ajax submits
  • ace:dataExporter
    • New "encoding" attribute
  • ace:dataTable
    • New "enhMultiple" selection mode
    • Added new fast-forward and fast-rewind buttons to paginator (skips multiple pages)
  • ace:dialog
    • New "Maximize/Restore" button for ace:dialog header
  • ace:gMapMarker
    • Added ability to set marker with just an address
  • ace:growlMessages
    • Now supports Native Platform/Browser Notifications on supported browsers/platforms.
  • ace:linkButton
    • Added new "reset" type to reset form components to their original values prior to any un-submitted user edits.
  • ace:menu, ace:menuBar
    • Added "showDelay" attribute to configure the effect duration used while showing the menu.
  • ace:pushButton
    • Added new "reset" type to reset form components to their original values prior to any un-submitted user edits.
  • ace:radioButton(s)
    • Optimized to improve rendering performance when a large number of components are used on a page.
  • ace:richTextEntry
    • Updated CKEditor to version 4.5.8 to improve support for MS Edge browser.
  • ace:selectMenu
    • Added new "showListOnInput" attribute.
  • ace:submitMonitor
    • Can now display error messages asynchronously
  • ace:tabSet
    • Improved keyboard navigation.
  • ace:tooltip
    • Now supports intelligent tooltip placement based on the size of the tooltip and available room on the viewport.
  • ace:tree
    • Pressing "Esc" key while dragging a tree node now aborts the drag operation.
    • Added ability to get associated node objects for different events

Mobile (MOBI) Components

See the MOBI Components Wiki for reference documentation on these components.
Compatibility Note
As of January of 2017 the BridgeIt project has been deprecated. As a result, the following MOBI components that relied on the BridgeIt app. to function have been removed from ICEfaces as of the 4.2 release:
  • mobi:augmentedReality
  • mobi:augmentedRealityLocations
  • mobi:augmentedRealityMarkers
  • mobi:camcorder
  • mobi:cloudPush
  • mobi:fetchContact
  • mobi:geoTrack
  • mobi:scan
  • mobi:sms

Enhanced Components

  • mobi:camera
    • Now uses the HTML5 "Navigator.mediaDevices.getUserMedia()" APIs to access the native camera device(s) on supported platforms, in-lieu of the BridgeIt app. camera features. See the Wiki topic for supported platforms.
  • mobi:microphone
    • Now uses the HTML5 "Navigator.mediaDevices.getUserMedia()" APIs to access the native microphone device on supported platforms, in-lieu of the BridgeIt app. microphone features. See the Wiki topic for supported platforms.

Core (ICECORE) Components

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

New Components

  • icecore:repeat
    • Allows components access to component repetition with expressions resolved when they are added to component tree.

Enhanced Components

  • icecore:focusManager
    • Now supports setting focus on buttons and links in addition to input components.

ICEfaces Framework

See the Core Framework Wiki for reference documentation on these components.
"Security Improvement
A JavaScript injection vulnerability in the 'ice.window' and 'ice.view' HTTP parameters has been corrected in this release. This issue was previously corrected in the EE 4.1.0.GA, and EE 3.3.0.GA_P04 releases.
  • New "sessionTimeoutRedirectURI" configuration parameter.
    • Redirects to the specified URI only in the case of a session expiry due to user inactivity. The existing "sessionExpiredRedirectURI" parameter will redirect when a users session expires for any reason, such as by user inactivity timeout or programmatically (user logout), etc.
  • Now supports the capability of dynamically changing the lang attribute of an <html> tag via an ajax update.
    • Requires setting the "org.icefaces.diffConfig" configuration parameter to "att" in the web.xml.
  • Global Browser Console Logger
    • Added ability to select all logs, and send the logs to a file on the local filesystem.
  • Reduced server-side memory consumption
    • The amount of markup being rendered by the ACE components has been optimized to materially reduce the overall amount of heap memory required on the server.
    • Additionally, ICEfaces EE 4.2.0.GA will introduce an exclusive new View Root State Manager that completely avoids unnecessary state saving and restoration of the server-side component tree resulting in significantly reduced CPU utilization.

ICEpush

See the ICEpush Wiki reference documentation.
  • New "org.icefaces.fetchPendingNotificationsOnLoad" context parameter allows the disabling of auto fetching of pending updates across all open tabs/windows whenever an ICEpush connection is re-established.
  • Now avoids closing and re-creating the push blocking connection everytime a new browser window is opened or closed, and only does so if the window controlling the connection is closed.
Change Log
For a complete list of all changes in this release, see the related ICEpush JIRA Change Log.

Samples

  • ICEfaces Showcase
    • All new demos for ace:schedule, ace:colorEntry, icecore:repeat, and other component enhancements.
    • BridgeIt-dependent component demos have been removed from the Mobile Showcase.
    • Misc. bug fixes
  • Emporium
    • Fixed an issue that would prevent the "Click to change item image" feature from loading new images.

JSF Runtimes

  • Mojarra JSF has been updated to v2.2.14 in this release.
  • MyFaces JSF has been updated to 2.2.12 in this release.
  • Preliminary support for Mojarra JSF 2.3 (pre-release) added.
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.14 (2.2.14 included).
  • Apache MyFaces JSF 2.2.x (2.2.12 included)
  • Preliminary support for Mojarra JSF 2.3 (pre-release).

Java VM

  • Java 6 (1.6) - Java 8 (1.8)

Browsers

  • Chrome 55
  • Edge
  • Firefox 52
  • IE 8 - 11 (MOBI Components require IE10+)
  • Safari 10

Mobile Browsers

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

Application Servers

  • Apache Tomcat 7, 8
  • Oracle Glassfish 4.1.1
  • RedHat WildFly 10.1
  • 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).
  • MyFaces JSF Session State Serialization
    • By default, MyFaces serializes the state of the view into the session on every single request. While this allows the state of the view to be restored for that particular request, it can have an impact on performance as well as components that may not be designed for it. For these reasons we recommend to set the following context parameter in your application:
       <context-param>
              <param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name>
              <param-value>false</param-value>
          </context-param> 
    • See JIRA for a detailed explanation.

Browsers

  • The following features rely on HTML5 support in the browser, and are not supported on IE8 or IE9:
    • All MOBI components
    • ace:gmap (Google Maps doesn't support IE8 or IE9)
    • icecore:navigationNotifier
    • ace:audioPlayer and ace:videoPlayer
    • ace:textEntry "secret" mode is not supported on IE8.
    • The transition animation effects are not supported on IE8 browsers to maintain performance and reliability.
  • iOS Safari Browser
    • Window Scope functionality is restricted when running on the iOS variant of the Safari browser. The iOS Safari browser does not fire the "beforeunload" event when a page is unloaded. This interferes with ICEfaces Window scope tracking that relies on the mentioned event as noted below:
      • Using redirect navigation will result in a new Window scope instance being created for the target page of the redirect. The best workaround for this issue is to use forward navigation (where the redirect tag is not used in the navigation rule) instead. This will ensure that the window state is not lost (see ICE-11301).
      • Window scope instances will not be proactively cleaned up when the window is closed, but will be cleaned up when the session expires (see ICE-10326).

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 or Eclipse IDE projects for ICEfaces 4: IDE Tutorials for NetBeans and Eclipse

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.