ICEfaces EE 4.3.0.GA Release Notes
December 14th, 2018

About This Release
ICEfaces EE 4.3.0.GA is a certified ICEfaces Enterprise Edition release.
ICEfaces EE 4.3.0.GA includes all the new features and improvements that were introduced in the ICEfaces 4.3.0 open-source release, plus additional stabilizing fixes, ICEfaces EE-exclusive improvements, and verification on and support for additional server platforms.
 | If you are not already familiar with the changes introduced in ICEfaces 4.3, see the ICEfaces 4.3 Release Notes prior to using this release. |
Contents
Downloads
ICEfaces EE is available in both binary and source download bundles from the www.icesoft.org download page.
Changes in EE 4.3.0.GA
Key improvements and EE exclusive features are listed below.
Additional Platform Support
Support for the following platforms has been added in this release:
ACE Components
New Components:
- JIRA - New ace:triStateCheckbox component.
Enhanced Components:
- ace:dataTable
- JIRA - New "currentRowCount" property provides the number of rows when filters are applied.
- JIRA - New client JS functions to support selecting/deselecting all rows or cells in the server-side row state map.
- JIRA - Improved "livescroll" behaviour.
- ace:fileEntry (SECURITY)
- JIRA - Fixed a vulnerability in our forked version of the Apache Commons Fileupload library: CVE-2016-3092 Specially crafted input can trigger a DoS, if the size of the MIME boundard is close to the size of the buffer in MultipartStream.
- ace:tree
- JIRA - Added new 'icon' facet which supports using custom expanded, contracted and leaf icons for tree nodes.
- f:selectItems
- JIRA - Added support for 'itemLabelEscaped' attribute on f:selectItems, and 'escapeItem' on f:selectItem when used with the following components:
- ace:autoCompleteEntry
- ace:comboBox
- ace:selectMenu
- ace:simpleSelectOneMenu
Core
- JIRA - (SECURITY) New "org.icefaces.httpPostValidationEnabled" context parameter can be enabled which will constrain any partial-requests being received by the server to HTTP POST only (invalid JSF post-backs will receive appropriate HTTP error responses).
Samples
- ICEfaces Desktop and Mobile Showcase Sample Application
- New demos for new components and significant enhancements.
- Refinements and bug fixes.
Platform Support
- This release requires a Java 8 runtime as a minimum.
 | Change Logs For a complete list of all changes included in this release (since the ICEfaces 4.3 open-source release), see the related JIRA Change Log:
|
Key Features
ICEfaces Enterprise Edition includes a suite of enterprise software and documentation that will enhance your ICEfaces project from development, through testing and deployment. In addition to high quality certified software and tools, ICEfaces EE includes direct access to the extensive knowledge and expertise of our technical team.
ICEfaces-EE provides the following additional exclusive features in addition to all of the features available in ICEfaces:
Certified Software
ICEfaces EE has been certified against a wide-range of supported commercial and open-source application servers, portal-containers, and 3rd-party frameworks. See the Supported Platforms section for details.
Enterprise Push Server (EPS)
The [Enterprise Push Server] extends the standard Ajax Push capabilities of open-source ICEfaces with these critical enterprise-grade features:
- Multi-application Support. EPS supports concurrent use of multiple ICEfaces push-enabled applications on the same application server (host-name) in the same client browser. The ICEfaces open-source ICEpush library can only support a single push application from the same server (host-name) in the same browser at one time.
- Distributed management of blocking push connections across a cluster for increased application scalability.
- Load-balancing of Ajax Push connections across a cluster for increased application scalability.
- Fail over of Ajax Push connections across a cluster for high application availability.
- Asynchronous Request Processing (ARP) integration for increased Ajax Push scalability.
Core Framework Extensions
ICEfaces EE includes the Core Framework Extensions library that can improve the ICEfaces experience on EE-certified platforms:
- Embedded HTML Compatibility for Facelets Applications - Configurable support for wrapping HTML markup in Facelets pages into components at runtime.
- View Root State Manager - Completely avoids unnecessary state saving and restoration of the server-side component tree resulting in significantly reduced server CPU utilization and memory consumption.
Sample Applications
- [EPS Poller Application] - Demonstrates an Ajax Push application using EPS with various deployment scenarios, including fail-over support in a clustered deployment.
Functional & Load Testing Documentation, Tutorials, and Reference Materials
The ICEfaces EE Wiki includes extensive documentation, tutorials, and reference materials that clearly explain and demonstrate successful testing techniques for use with ICEfaces.
Deployment Guides
The ICEfaces EE Wiki provides extensive configuration and [deployment guides] for all supported application server and portal container platforms. In addition, server-specific [step-by-step instructions] are provided to enable fast, successful deployments for each of the following deployment scenarios:
- Stand-alone server
- Stand-alone server w/ EPS
- Clustered server w/ EPS (including fail-over)
Migration Guide
An ICEfaces 3 to ICEfaces 4 Migration Guide is available for those wishing to migrate their existing ICEaces 3.x applications to ICEfaces 4.x.
Supported Platforms
Java VMs
JSF Runtimes
- Oracle Mojarra JSF 2.2.1-2.2.14 (2.2.14 included).
- Oracle Mojarra JSF 2.3.5.
- Apache MyFaces JSF 2.2.x (2.2.12 included).
- Apache MyFaces JSF 2.3.1.
Browsers
- Apple Safari 9, 10, 11
- Google Chrome 67
- Microsoft Edge (Windows 10)
- Microsoft Internet Explorer (IE) 8 - 11 (MOBI Components require IE 10+)
- Mozilla Firefox 60, ESR 53
Mobile Browsers
- Apple iOS 10.x+ (Safari)
- Google Android 6.x+ (Chrome)
Application Servers
Specific installation and configuration information for some platforms can be found in the [Server Configuration Appendices].
- Apache Tomcat 8.5, 9.1
- IBM WebSphere AS 8.5.5, 9.0
- Jetty 9
- Oracle Glassfish v5
- Oracle WebLogic Server 12c
- RedHat JBoss EAP 6.3, 7.0
- RedHat WildFly 14
Portal Containers
When using Liferay, specific versions of the Liferay Faces Bridge must be used for each Liferay release version. See the Liferay Faces Version Scheme page for details.
Enterprise Push Server (EPS) Supported Platforms
Server |
Stand-alone |
Clustered |
Apache Tomcat 8.5 |
Yes |
Yes 1 |
IBM WebSphere AS 8.5 |
Yes |
Yes |
IBM WebSphere AS 9.0 |
Yes |
|
Jetty 9 |
Yes |
|
Oracle GlassFish 5 |
Yes |
|
Oracle WebLogic Server 12c |
Yes |
Yes |
RedHat JBoss EAP 7.0 |
Yes |
Yes |
RedHat WildFly 14.x |
Yes |
Yes |
1 Requires ActiveMQ 5 for JMS support
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, ace:list, or ice:selectOneMenu.
ICEpush
- ICEpush (icepush-ee.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).
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).
Application Servers
- JBoss EAP 6.3, WebLogic 12c, WebSphere 8.5 (JEE 6 Platforms)
- It is required to have a supported Mojarra JSF 2.2 runtime installed and/or deployed with your application. This may require updating the JSF runtime libraries depending on which JSF version is currently installed in the server.
- Detailed instructions on how to deploy your application along with updated JSF libraries are provided in the ICEfaces EE Wiki [Server Configuration Appendices].
Portal Containers
- Liferay 6
- Using the ACE Components with Liferay 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. 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.
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
Please report any issues with this release to ICEsoft Customer Support.