ICEfaces 2.1.0 Beta 2 Release Notes

Version 1 by Ken Fyten
on Oct 31, 2011 11:18.

compared with
Current by Ken Fyten
on Feb 01, 2012 15:25.

These lines were removed. This word was removed.
These lines were added. This word was added.

View page history

There are 43 changes. View first change.

 h1. ICEfaces 2.1.0 Beta 2 Release Notes
 *_November 1st, 2011_*
  *_November 4th, 2011_*
 h2. Contents
 These Release Notes include the following sections:
 * [About This Release|#about]
 * [Downloads|#downloads]
 * [Notable Changes|#notablechanges]
 ** [Advanced Components|#acechanges]
** [ICEfaces Components|#icechanges]
 ** [Core Framework|#frameworkchanges]
 ** [ICEpush|#icepushchanges]
** [ICEfaces Components|#icechanges]
 ** [Samples and Tutorials|#samplechanges]
 ** [JSF Runtimes|#jsfchanges]
  ** [MyFaces Support|#myfaceschanges]
 ** [Portlet Support|#portletchanges]
 ** [Samples & Tutorials|#samplechanges]
 ** [IDE Integrations|#idechanges]
 * [Known Issues|#knownissues]
 * [Support|#support]
 h2. About This Release
ICEfaces 2.1 Beta is a preview build of ICEfaces 2.1 and is not suitable for production deployments.
  ICEfaces 2.1 Beta 2 is a preview build of ICEfaces 2.1 and is not suitable for production use.
 h2. Downloads
ICEfaces 2.1 Beta is available for download in the following formats:
  ICEfaces 2.1 Beta 2 is available for download in the following formats:
 * Binary and source-code [bundles|]
 * IDE Tool [integration bundles|,NetBeans]
 * [Maven2 Public Repository|] (jars only)
 h2. Notable Changes in this Release
In addition to the notable changes listed below this release features substantial stability improvements across the product.
h4. [ICEfaces Advanced Components]
  h4. [ACE Components]
*All-new ace:datatable !*
 * Integrated pagination, scrolling, and lazy-data-loading (scroll down to load more data).
 * Column re-ordering via drag-and-drop of the column header.
 * Single and multiple row and cell selection.
 * Single and multi-column sorting.
 * Row data-filtering with configurable filter criteria (beginsWith, EndsWith, existsIn, etc.)
 * Expandable rows and panels.
 * Optional configuration panel for user-specified column visibility, ordering, and sort-criteria that can be persisted across sessions.
 * Optimized rendering and data-transport for efficiently viewing large data-sets.
  * ace:accordion
 ** The following component attributes have been renamed in this release:
 *** 'onTabChange' is now 'onPaneChange'
 *** 'onTabChangeUpdate' is now 'onPaneChangeUpdate'
 *** 'tabChangeListener' is now 'paneChangeListener'
 ** NOTE: Applications using the old attributes will need to be updated.
*More New Components !*
 * ace:accordion
 * ace:ajax
 * ace:confirmDialog
  * ace:checkboxButton, ace:linkButton, ace:pushButton
 ** Components now support typical passthrough attributes such as "onclick", "onkeypress", etc.
 ** Components and markup can now be nested inside ace:pushButton for increased button content flexibilty (ex. Labels with one or more images).
 * ace:contextMenu
 ** The contextMenu has been improved to auto-position intelligently based on the available on-screen display space available when it is displayed.
 * ace:dataExporter
** Exports dataTable content to CSV, XLS, PDF, and XML format.
 ** Optionally include dataTable column headers and/or footers in the export.
 ** Optionally export specific columns only.
 ** Optionally limit export to only include a single dataTable page (when paginated).
 ** Optionally limit export to only include currently selected dataTable rows.
  ** Has been re-implemented to not require the use of additional buttons, etc. to trigger the export.
 *** As a result, the component no longer needs to be inside a UICommand component with <f:ajax disabled="true"/>.
 *** NOTE: Applications will need to be revised to adopt the new component usage pattern.
 ** The following new attributes have been added:
 *** 'label'
 *** 'singleSubmit'
 *** 'style'
 *** 'styleClass'
 ** Component has been repackaged from "org.icefaces.ace.component.export" to "org.icefaces.ace.component.dataexporter".
 *** NOTE: Applications using component binding will need to have their imports updated. Also, references to the old package name in any mandatoryResource configurations must be updated to reflect the new package name.
 * ace:dataTable
 ** Support for n-level nesting of dataTables has been added in this release.
 ** New "reorderable=true/false" attribute on ace:column
 *** Specify on a per-column basis if a column should be reorderable by the user.
 ** Filtered data is now cached rather than being refiltered during each render.
 *** Additional component Java APIs have been added to support application manipulation of the filter cache as required.
 ** All dataTable configuration settings are now bindable to backing beans for possible persistence across user sessions, etc.
 ** Issues related to dynamically updating dataTable columns (changing number of columns) have been resolved.
 ** The "pageList" attribute has been renamed to "pageCount".
 *** NOTE: Applications using this attribute will need to be modified.
 * ace:dialog
* ace:draggable / ace:droppable
 * ace:maskedEntry
 * ace:menu / ace:menuBar / ace:menuButton / ace:contextMenu
 * ace:notificationPanel
 * ace:panel
 * ace:printer
  ** Now supports a new "visible" attribute for server-side toggling of the dialog visibility. The previous "autoDisplay" attribute has been removed in this release in favour of the new "visible" attribute.
 *** NOTE: Applications should either use the new visible component attribute exlusively to control dialog visibility, or the client-side JavaScript APIs, but not both (per dialog instance).
 * New ace:excludeFromExport Component
 ** Can be nested inside ace:dataTable sub-components (ace:column, ace:row, etc.) and components inside ace:column to indicate that a component should *not* be included in any ace:dataExporter export operations.
 ** Provides maximum application flexibilty for data export content customization.
 * ace:expansionToggler
 ** Component has been repackaged from "org.icefaces.ace.component.expansionToggler" to "org.icefaces.ace.component.expansiontoggler".
 *** NOTE: Applications using component binding will need to have their imports updated. Also, references to the old package name in any mandatoryResource configurations must be updated to reflect the new package name.
 * ace:menuItem, ace:menuBar
 ** Dynamic menus are now fully supported.
 * ace:progressBar
* ace:resizable
 * ace:tooltip
  ** A new "changeListener" attribute is available specifying a progressChangeListener to receive notifications whenever the progress changes.
*ThemeRoller Support*
 * All ACE components have been updated to support the jQueryUI [ThemeRoller|] theming system.
 * The ThemeRoller system provides an extensive collection of ready-to-use themes, as well as an intuitive web-application for creating custom themes easily without requiring extensive CSS knowledge.
 * The ThemeRoller-based CSS styles are injected into the ICEfaces page automatically. There is new "org.icefaces.ace.theme" configuration parameter to specify the ThemeRoller theme to use for the application in the web.xml. Currently supported themes are "sam" (default), and "rime" (preliminary).
 * NOTE: The previous ACE component skinning approach, including CSS style-classes and class-names are no longer supported. Existing applications must be updated to use the ThemeRoller-based style classes.
  * ace:tabSet
 ** New "showEffect" and "showEffectDuration" attributes provide ability to specify custom transition effects to be used when displaying a selected ace:tabPane.
 ** Component has been repackaged from "" to "org.icefaces.ace.component.tabset".
 *** NOTE: Applications using component binding will need to have their imports updated. Also, references to the old "tab" package name in any mandatoryResource configurations must be updated to reflect the new package name.
*Updated & Enhanced Components*
 * ace:animation has been re-implemented to use jQuery effects.
 ** Only standard jQuery effect types are supported. Custom transition types are no longer supported by the component.
 * ace:checkboxButton, ace:linkButton, and ace:pushButton now support ThemeRoller themes.
 * ace:dateTimeEntry is now based on the jQuery calendar and has the following additional enhancements:
 ** Supports ThemeRoller themes.
 ** Optionally display multiple-months in popup calendar.
 ** Initialize multi-month popup calendar to display Last/This/Next, This/Next/TheOneAfterThat, or any starting month desired.
 ** Optionally display Year / Month drop-down menus in popup calendar.
 ** Optionally include a "Today" button to navigate to the current date.
 * ace:fileEntry now supports ThemeRoller themes.
 * ace:sliderEntry has been re-implemented using the jQuery slider control.
 ** The showLabel attribute is currently not supported.
 * ace:tabSet / ace:tabPane
 ** Added new "cacheOnClient" and "cacheStatically" attributes to ace:tabPane to permit maximum client-caching behavior flexibility.
 ** Updated to support ThemeRoller themes.
  * Global usage of JavaScript '$' variable
 ** Beginning with this release the ACE components not longer define or use a global '$' JavaScript variable as a reference to the jQuery library instance.
 *** This change improves cross-compatilibilty with other 3rd party JavaScript libraries and application JavaScript usage.
 *** NOTE: Applications that had been previously relying on the ACE components to define the global '$' variable to jQuery will need to be modified to initialize their own usage of jQuery independently from that of the ACE components.
*ACE Repackaging*
 * The entire Advanced Component Environment and all components have been repackaged to better isolate the ACE library from other ICEfaces framework libraries.
 * Java code formerly located under the "org.icefaces.component" and "org.icefaces.generator" packages is now located under the "org.icefaces.ace" package.
 * JavaScript functions formerely namespaced under the "ice.component" name-space are now under the "ice.ace" name-space.
 * Any pre-existing application code that imports the ACE packages will need to be updated.
*mandatoryResource Change*
 * Starting with this release the default value for the "org.icefaces.mandatoryResourceConfiguration" configuration parameter has been changed to "none".
 * Previously, mandatoryResource would, by default, automatically preload all the required resources for any components found in the application classpath into the head of each new page that is rendered. This is required as it is not possible to add resources to the head dynamically in JSF 2. This resulted in applications that would continue to function even when components that were not on the original page were later added to the page dynamically. However, this convenience came at a relatively high expense in terms of additional page-loading overhead and JS processing on every page load.
 * The new default behaviour for mandatoryResource is to not preload any component resources automatically. This provides the optimal efficiency in terms not loading resources that are not required on the page. This may also result in resource loading errors occurring in cases where components are initially added to a page via a dynamic update. In these cases, it is now necessary to specify a suitable mandatoryResourceConfiguration configuration parameter in the web.xml that lists the component classes that will be loaded dynamically to ensure their resources are preloaded during the initial page load.
 * A new page-level mandatoryResource configuration option has been introduced in this release. By specifying the <icecore:config mandatoryResource="xxx"/> tag on the page, it is possible to tune the mandatoryResource behaviour to ensure that all required component resources are included in the initial page load. By using the page-level configuration, the mandatoryResource configuration can be optimized on a per-page basis.
 h4. ICEfaces Components
*License Change*
 * The Advanced Components library (icefaces-ace.jar) is now licensed under the [Apache 2.0|] license. This was done to better accommodate the licensing requirements of various 3rd party libraries that are used by the components (jQuery, YUI, etc.). Prior to this release it was licensed under the [Mozilla Public License (MPL) 1.1|].
 * Note that all other ICEfaces 2.1 libraries (icefaces.jar, icefaces-compat.jar, and ice push.jar) continue to be licensed under the MPL 1.1 license.
  * ice:inputRichText
 ** The CKeditor Javascript libraries required by the ice:inputRichText component are no longer automatically preloaded with every initial page render. Instead, the mandatoryResource [Configuration] may be used to specify if the ice:inputRichText resources should be preloaded on the page.
 *** There are two methods of configuring mandatoryResources; Application globally via the "mandatoryResourceConfiguration" context-parmeter in the web.xml file, or per-page via inclusion of an <icecore:config mandatoryResource="com.icesoft.faces.component.inputrichtext.InputRichText" /> tag on the page where the component is used.
 ** This provides increased efficiency to page loading in cases where the ice:inputRichText is not used on a page.
* ice:panelTooltip
 ** Improved auto-positioning when used in scrollable containers.
 h4. Core Framework
* Custom Update Support
 ** The ICEfaces Direct-to-DOM rendering engine has been enhanced to support partial component tree rendering that may consist of regular DOM-diffed regions combined with new sub-component custom update regions that are excluded from DOM differencing. This feature enables richer ACE component interactions and efficiencies for specific use-cases.
  * JSF Navigation Regression
 ** A serious regression issue that prevented the ICEfaces Javascript bridge from configuring properly when navigating from an ICEfaces page to another ICEfaces page has been corrected in this release.
* Window Scope
 ** Support for @PostConstruct and @PreDestroy annotations has been added to the ICEfaces custom Window scope.
  * mandatoryResourceConfiguration
 ** The new keyword "all" can be used with the mandatoryResourceConfiguration context-parameter, or <icecore:config mandatoryResource="all"/> tag.
 *** Specifying mandatoryResource="all" indicates that all available (on the classpath) component resources should be preloaded during the initial page load.
 *** This is useful when an application introduces new components to the page during a dynamic ajax update, and you don't want to specify individual components (which is optimal from a performance/efficiency perspective), such as when debugging more specific mandatoryResource configuration issues.
* Delta Submit Improvements
 ** The Delta Submit implementation has been refactored to improve efficiency and robustness.
  * Spring WebFlow
 ** Corrected an issue that was preventing ICEface 2 from working with WebFlow when using the ICEfaces Components (ice).
* New messagePersistence Configuration
 ** New configuration parameter and icecore:config attribute have been added to support configuration of ICEfaces "intelligent message caching" feature.
 ** {code}<context-param>
  </context-param> {code}
 ** Alternatively, the new <icecore:config messagePersistence="true"/> tag may be used to enable/disable message caching within a page.
  * Default Error & Session Expired Dialog Styling
 ** The default ICEfaces error and session expired dialogs are now stylable via the following CSS classes:
 *** "ice-status-indicator","ice-status-indicator-message", "ice-status-indicator-description".
* Optimizations
 ** Several aspects of the core framework have been optimized to reduce execution time and/or Java heap consumption.
 h4. ICEpush
* New <icecore:push group="chat"> Tag
 ** A new <icecore:push group=""> tag has been added to make push group registration easier.
 ** Multiple occurrences of this component within a view can be used to add the current view to different groups.
 ** Removal of expired views from the group currently relies on the automatic clean-up of the groups themselves.
  * Fixed a regression issue that was causing 2 push updates to be sent for each actual update that was occurring.
 * Fixed an issue whereby the Servlet 3.0 ARP timeout could interfere with ICEpush' heartbeat mechanism when used in ARP mode on a Servlet 3.0 compliant server.
* Automated ICEpush Setup/Teardown
 ** By default, ICEpush will now automatically setup and teardown it's blocking connection on a per-page basis, depending on whether or not any ICEPush groups are active on the page.
 ** Previously, ICEpush was lazily initialized, but not actively torn down if a once active push group became inactive on the page.
 h4. MyFaces Support
* New lazyPush Configurability
 ** A new configuration parameter has been added to disable the automated lazy initialization and teardown of ICEpush, forcing ICEpush to keep its blocking connection active at all times.
 ** {code} <context-param>
  </context-param> {code}
 ** There is also an attribute for the ice:config tag that allows page-level configuration. This take precedence over the context parameter setting. {code} <icecore:config lazyPush="false"/> {code}
  * Apache MyFaces JSF 2.1.3
 ** This release provides improved support for using ICEfaces with the Apache MyFaces 2.1.3 JSF runtime, including with standard JSF components, ICEfaces Components (ice), Ajax Push applications, and with portlets.
 ** NOTE: The Advanced Components (ace) are not yet fully supported on MyFaces in this release. Complete support will be provided prior to ICEfaces 2.1.0 final release.
 h4. Portlet Support
 * A regression introduced in 2.1.0.BETA that caused a Session Expired message to appear when navigating between two ICEfaces portlets on a page has been resolved.
 * PortletFacesBridge Updated
 ** This release includes an updated PortletFacesBridge library (2.0.2-SNAPSHOT) which is required in order for use with the MyFaces JSF runtime.
 h4. ICEfaces Components
 * Improved support for auto-scrolling when dragging a panelGroup inside a scrollable <DIV>.
 * The ice:dataExporter now uses converters when exporting data.
 * Added "partialSubmit" attribute to the ice:selectInputText component.
 * Added "escape" attribute to ice:message and ice:messages.
 * Added tabIndex attribute to ice:dataPaginator, ice:rowSelector/ice:datatable, and ice:panelCollapsible.
 h4. Samples & Tutorials
* New Comp-Suite Sample Application
 ** An all-new ICEfaces Component Suite (comp-suite) sample application is introduced in this release.
 ** Currently features preliminary demonstrations for the new ACE components.
 ** Comp-Suite demo is in "preview" status and does not reflect final styling and behavior.
 ** The "comp-suite" sample application replaces the "ace-showcase" sample application from ICEfaces 2.0 ("ace-showcase" has been removed).
  * Comp-Suite Sample Application
 ** A completely new set of ICEfaces Component (ice) demos have been added in this release.
 ** New and updated ICEfaces Advanced Component (ace) demos are also included for ace:tooltip and ace:progressBar, and others.
* MyFaces Support
 ** It is now possible to build the sample applications using the "servlet-container" (default) ant target to include the MyFaces JSF runtime libraries in the war using the following ant syntax:
 *** 'ant -Dmyfaces="" servlet-container', or just 'ant -Dmyfaces=""'
 h4. JSF Runtimes
* Apache MyFaces JSF 2.1.3
 ** This release provides preliminary support for ICEfaces 2 on Apache MyFaces JSF 2.1.3, and includes the MyFaces 2.1.3 libraries in the download bundles.
 ** See the [Known Issues|#knownissues] section for current limitations.
 * Mojarra JSF 2.1.3
 ** This release has been tested with Mojarra JSF 2.1.3, and includes the JSF 2.1.3 library in the download bundles.
 h4. IDE Integrations
 * NetBeans 7
 ** This release provides an updated IDE integration for NetBeans 7.
*** Now requires projects to select the JSF library to use with ICEfaces (Mojarra or MyFaces).
 ** NOTE: You *must* update your NetBeans 7 installation with the latest module versions prior to installing the ICEfaces 2.1 NetBeans integration. See the NetBeans Integration Release Notes for details.
 * Eclipse 3.7
 ** This release provides an updated IDE integration for Eclipse 3.7.
*** Features improved design-time renderers for the Advanced Components (ace).
{tip:title=Change Log}For a complete list of all changes in this release, see the related JIRA [Change Log|].{tip}
  {tip:title=Change Log}For a complete list of all changes in this release, see the related JIRA [Change Log|].{tip}
 h2. Known Issues
 The following section describes the most commonly encountered known issues with this release:
 h4. Wiki Documentation
* The [ICEfaces 2 Wiki documentation|] has not yet been extensively updated to reflect changes introduced in ICEfaces 2.1 Beta. This work is ongoing.
  * Updates to the [ICEfaces 2 Wiki documentation|] have not been completed to reflect changes introduced in ICEfaces 2.1. This work is ongoing.
 h4. General
 * JSPs are not supported by ICEfaces 2.0 - use Facelets.
 * 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).
 * The [Delta-Submit|Configuration] function does not support cases where an Ajax DOM update in the browser dynamically introduces new form elements into the DOM that were not part of the form when the page was originally loaded. In order to use Delta-Submit successfully all form elements / components must be present on the page at the time the page is loaded.
 * Due to an apparent [bug|] in the Sun Mojarra JSF 2 runtime library, component binding is not reliable when used within a View scope.
 ** The recommended workaround is to use the ICEfaces "Window" or JSF "Session" scopes instead if component-binding is required. Alternatively, applications can be modified to avoid the requirement for using component-binding in View scope by using techniques similar to that used in the Data Paginator demo section of Compatible Component Showcase application. For details, see [ICE-5226|].
 h4. Advanced Components
The following Known Issues affecting the ACE Components are expected to all be resolved prior to ICEfaces 2.1 release.
 * ace:accordion
 ** Note that ace:accordion attributes that currently reference "Tab" (TabChangeListener, OnTabChange, etc.) will be renamed PaneChangeListener and OnPaneChange in the next release.
 * ace:dataTable
 ** Currently does not support nesting of ace:dataTables with all features.
 ** Currently not able to persist dataTable sort configuration settings.
 ** Dynamically updating the dataTable columns (changing number of columns) may not be reflected in the rendered datatable.
 * ace:dataExporter
 ** Not exporting column headers when using column grouping.
 * ace:columns
 ** Not supported in this release.
* ace:menu(s)
 ** Dynamic menus are not being re-evaluated after the initial render.
* ACE component resource files are not minified or otherwise optimized in this release. These will be optimized to minimize page load times and processing prior to final release.
 h4. MyFaces JSF
* Component Showcase (w/ MyFaces)
 ** Dynamic language change, data is typically "one update behind".
 ** ice:positionedPanel demo, only first drag works.
 * Auction & Auction Monitor (w/ MyFaces)
 ** Both of these apps seems have an issue with the tight 1-second push loop used in those apps - they typically don't respond to clicks.
 ** Adjusting the <param-name></param-name> configuration parameter in the web.xml to 5000+ (5 secs) avoids the issue.
 ** AuctionMonitor can't close the bid box or chat.
 * ICEfaces is not yet supported on Portals using MyFaces.
  * Auction Monitor (w/ MyFaces)
 ** AuctionMonitor's chat facility is not currently functional with MyFaces.
 h4. Mojarra JSF
 * Note that the Mojarra JSF 2.1.0-2.1.2 releases have several serious issues that may impact your project:
 ** A bug that prevents it from supporting bean-annotation on non-Glassfish 3.1 application servers and servlet containers.
 ** Several bugs that prevent the IE9 browser from working properly with JSF-ajax operations.
 ** Partial State Saving bugs that might prevent the use of Partial State Saving in your application.
 * This release of ICEfaces includes the Mojarra JSF 2.1.3 release libraries which resolves the known issues noted above.
 * When running a JSF application in JSF2 _PROJECT_STAGE="Development"_ mode (which is the default setting for all ICEfaces sample applications), 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.
 h4. 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:
 {code}<f:view contentType="text/html">{code}
 ** See for more information.
 h4. Application Servers
 * Tomcat 6.0
 ** In some cases, when running Tomcat on Windows, undeploying an ICEfaces 2 compatible application (i.e. that includes the icefaces-compat.jar) can cause an exception. See [|] 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: {code:xml}<Context antiJarLocking="true" antiResourceLocking="true"/>{code}
** Comp-Suite Sample Application.
 *** The Comp-Suite sample application requires EL 2.2.1, which is not available in Tomcat 6. Tomcat 7 is required.
 * Glassfish 3 / JBoss 6 (JEE 6 Platforms)
  * Glassfish 3 / JBoss 6, 7 (JEE 6 Platforms)
 ** It is necessary to have Mojarra JSF 2.1.0-FCS or greater (2.1.3 is recommended) installed. This may require updating the JSF Mojarra runtime libraries in Glassfish 3 or JBoss 6, depending on which JSF version is currently installed.
 h2. Support
 Open source community support is available at
 Please report any issues, questions, or comments regarding this release to the ICEfaces [Development Build Feedback|] forum.
 The [ICEfaces community forums|] are available for questions, comments, or general discussions regarding ICEfaces 2.

© Copyright 2018 ICEsoft Technologies Canada Corp.