This topic documents the changes that may impact backwards-compatibility when migrating an existing ICEfaces 2.x application to ICEfaces 3.
ICEfaces 3 is licensed under the Apache License, Version 2.0. Previous ICEfaces releases were licensed under the Mozilla Public License (MPL) 1.1.
The original ACE Components included in ICEfaces 2 have been substantially re-implemented for ICEfaces 3. Due the comprehensive nature of these changes, backwards compatibility could not be provided. However, efforts have been made to keep the ACE component tag APIs as similar as possible to the previous versions, thus, porting existing applications should be a straightforward process.
The following ICEfaces 2 ACE components are impacted:
ICEfaces 2 applications that use the above components will need to be revised to adapt to the following significant component changes:
ACE Repackaging
org.icefaces.component" and "org.icefaces.generator" packages is now located under the "org.icefaces.ace" package.ice.component" name-space are now under the "ice.ace" name-space.ThemeRoller Support
<link> tags at the bottom of the page and it is no longer necessary to specify the theme style class in the <body> tag. Themes are now loaded via a context parameter. This new theme-loading mechanism is explained in ace.theme in more detail. Instructions on how to use an existing theme or create a new one can be found at ACE ThemeRoller Support.mandatoryResource Change
org.icefaces.mandatoryResourceConfiguration" configuration parameter has been changed to "none", which results in no component resources being pre-loaded. As a result, overall resource loading efficiency is greatly improved, but there is a risk that certain required resources for components that are dynamically added to the page after the initial page load will not be available, resulting in a component failure.org.icefaces.mandatoryResourceConfiguration" configuration parameter to "all" in the web.xml is a good temporary workaround to mandatoryResource loading issues, but is not recommended for production use in most circumstances due to its heavy-weight approach to resource loading in the browser.'singleSubmit' Attribute Removal
<ace:ajax> component. The <ace:ajax> approach provides a more flexible and standards compliant approach to ajax-submit, execution, and rendering configuration.singleSubmit attribute will need to be updated to adopt the <ace:ajax event="xxx" execute="@this" render="@all"> equivalent.ice:gMap & ice:inputRichText
ice:gMap and ice:inputRichText components no longer automatically loads their required resources into the head of each page in the application. Instead, each component's resources will only be automatically loaded if the component is rendered on the page during the initial full page load. If the component is not rendered on the initial page load, and is subsequently added to the page via a dynamic page update (Ajax), it will not function correctly. In these cases, a mandatoryResourceConfiguration must be used to ensure that the component's resources are available when required, without incurring the expense unnecessary loading in cases when it is not in use.PushRenderer API Change
PushRenderer.getPortableRenderer(FacesContext) method has been removed.PushRenderer.getPortableRenderer() API must now be used.Compat Component Showcase Sample Application Removed