ICEfaces 3.2 Beta 1 Release Notes
September 27th, 2012
About This Release
ICEfaces 3.2.0 Beta 1 is a preview release of ICEfaces 3.2.0 and is not suitable for production use.
ICEfaces is available for download in the following formats:
What's New in 3.2 Beta 1?
- The Delegate is a container component that will receive the ace:tooltip functionality on behalf of some other inner component.
- This is useful in cases where such inner components are prone to be completely replaced from the DOM during dynamic updates, where it could lose the ace:tooltip functionality.
- Enables a single ace:tooltip component to be used for multiple ace:dataTable rows/cells (including dynamic update of the tooltip contents prior to display).
- See the new ace:tooltip -> Delegate demo in the ICEfaces Showcase sample application.
- The ace:gMap component has a large number of helper subcomponents:
- ace:gMapControl - Modify the controls that appear on the map (overview, pan, rotate, scale, streetview, zoom).
- ace:gMapInfoWindow - displays a pop-up window that can display either straight text information, or nested html code. If placed within a gMap, it will render at the locations given by its latitude and longitude attributes. If it is placed inside an ace:gMapMarker, it will bind to that marker and move to whatever location it occupies.
- ace:gMapLayer - activates a layer on the parent gMap that's designed to provide an alternative visual, such as displaying bike paths, traffic, or third-party KML data.
- ace:gMapMarker - places a marker upon the map in the desired coordinates to be used for designating points of interest or important locations.
- ace:gMapOverlay - allows the user to create a shape of their choosing on the map.
- ace:gMapServices - is an access point to the services portion of the api and will return information about the specified points, such as maximum zoom, or height. Directions are also specified through this subcomponent.
- Requires that a valid Google Maps v3 API key be specified by setting the 'org.icefaces.ace.gmapKey' parameter in the web.xml.
- See the new ace:gMap demos in the ICEfaces Showcase sample application.
- Includes the ace:node sub-component.
- Supports Client (static) and Server (dynamic) modes, including lazy-loading w/ caching
- Single/Multiple node selection
- Drag & drop to reposition nodes
- Ajax updates update node regions rather than entire component (improves scalability with large trees)
- Tree & per node configuration of selection, expansion, reordering
- Flexible sizing, layout will remain consistent no matter the size of node content
- Ajax behaviours for (de)select / expand / contract / reorder
- See the new ace:tree demos in the ICEfaces Showcase sample application.
- Monitors all submits to the server and indicates the status of the submits while in progress.
- Can be made modal to block UI inputs during submits.
- Optionally reports server and network connection errors, and session expiry.
- Supports configurable text labels and image state indicators, or facets for a fully configurable UI.
- Can be targeted to a complete page, or one or more containers or components within a page.
- Multiple ace:submitMonitors can be used on the same page to customize behaviours for different component events or submit types.
- See the new ace:submitMonitor demos in the ICEfaces Showcase sample application.
Updated and Enhanced Components:
- Now merges multiple Client Events when triggered by the same user-action into a single submit.
- With the merging of ace:ajax requests, client side listeners for the same event are run in facelet order, and server side listeners are all called once on a single request.
- Improvement over standard f:ajax behaviour of triggering multiple sequential submits, one for each client event triggered.
- Added new "blur" client event.
- New support for custom exporter implementations:
- Includes the new OuterTableCSVExporter and InnerTableCSVExporter custom exporter types.
- These custom exporters can be used to export nested ace:dataTables to CSV format.
- See the new ace:dataExporter -> Custom Exporter demo in the ICEfaces Showcase sample application.
- Data can now optionally be exported with the column ordering established by the user in the client, or in the originally specified order.
- Optimized event initialization for improved performance with large tables.
- Now cancels sort or filter operations when the form fails validation.
- Compatibility note: Previously, ace:dataTable headers were always styled with "position:relative". Starting with this release, the headers are only set to "position:relative" when resizable columns are enabled. This may effect existing applications that are expecting the "position:relative" styling to always be present.
- Added new "blur" client event.
- New "forDelegate" attribute - Specifies the id of the component that will receive the tooltip listeners on behalf of the component specified in the "for" attribute.
- Useful when the tooltip component is outside a datatable or iterative container and references a component inside such container.
- Improves performance by avoiding the creation of tooltip objects in each each row. It also guards against dynamic updates that could replace the component and make it lose its tooltip listeners.
- This method allows retrieving row data by using the "fetch" and "store" attributes.
- This approach is now recommended vs the previous "forContainer" one.
- See the new ace:tooltip -> Delegate demo in the ICEfaces Showcase sample application.
- New "toggleOnInput" attribute to determine if mouse-clicks that occur over input components inside the header should result in the panel collapsing/expanding, or simply be left to be handled by the input components themselves.
- New support for Ordered Resource Loading
- Many times required resources need to be loaded in a specified order. Unfortunately JSF doesn't provide any mechanism for ordering the resources.
- Resources can now be loaded based on declared resource interdependencies.
- Resource dependencies can be specified via a new resource-dependency.xml configuration file.
- See icefaces/samples/showcase/showcase/src/main/resources/META-INF/resource-dependency.xml for an example implementation.
- New WindowScopeBeanLocator API
- Access WindowScope beans from other contexts.
- WindowScopeBeanLocator.lookupBean(HttpServletRequest request, String name) can be used to lookup a bean by its name in the current window scope.
Samples & Tutorials
- ICEfaces Showcase Sample Application
- A large set of new demonstration panels have been added to illustrate key features of the new and improved ACE components.
- Added a new ace:fileEntry callback demo to illustrate advanced custom file validation features
- Numerous bug fixes.
- Updated the Easy Ajax Push tutorial for current ICEfaces release
- Enhanced the fileEntry callback tutorial to show custom failure types
For a complete list of all changes in this release, see the related JIRA Change Log.
- Oracle Mojarra JSF 2.1.3 - 2.1.6 (included).
- Apache MyFaces JSF 2.1.9 (included).
- Chrome 22
- Firefox 10.02 - 15
- IE 6, IE 7, IE 8, IE 9
- Safari 5, 6
- Apple iOS Safari
- Google Android Chrome
- RIM BlackBerry OS6 WebKit Browser
|A subset of component functionality, such as those requiring mouse-drag operations, are not currently supported on mobile devices with touch-screen interfaces.|
- Apache Tomcat 6, 7
- Oracle Glassfish v3.0, 3.1
- RedHat JBoss AS 5, 6, 7
- Apache Pluto 2.0.3
- Liferay Portal 5, 6
Apache Pluto Portlet deployments require the PortletFaces Bridge library. Note that the version of the PortletFaces Bridge that is currently shipped with ICEfaces includes fixes that aren't available with the generally released version. Ensure you use the copy of the library that ships with ICEfaces.
Liferay Portal Portlet deployments may use either the Liferay Faces Bridge 3.1.RC2 (available from Liferay), or the included PortletFaces Bridge library.
|When using the Liferay Faces Bridge, the portletfaces-bridge-2.0.2-ice-7875.jar should not be included in the class path.|
The following section describes the most commonly encountered known issues with this release:
- JSPs are not supported by ICEfaces 3 - use Facelets.
- It is required to specify "h:head" and "h:body" tags in your ICEfaces application pages.
- 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.
- In ICEfaces 2+, the "Request" scope is the "standard" JSF Request scope, and not the "Extended" Request scope that was the default in ICEfaces 1.x. This change may result in failures for ICEfaces 1.x applications that relied on the Extended Request Scope behavior that are being moved to ICEfaces 2.0. The workaround for this issue is to adopt one of "View", "Window", or "Session" scopes in JSF/ICEfaces 2+ instead.
- This release includes the Mojarra JSF 2.1.6 runtime libraries.
|Note that Mojarra 2.1.4 introduced a dependency on Servlet 3.0 APIs, as a result, it should not be used on older JEE5 application servers. Instead, Mojarra 2.1.3, or Apache MyFaces 2.1, should be used on JEE5 servers.|
- Note that the Mojarra JSF releases prior to 2.1.3 and greater than 2.1.6 have several serious issues that may impact your project and are not recommended. We are working with the Mojarra team to ensure future Mojarra releases (>2.1.13) will resolve these issues.
- When running a JSF application in JSF2 PROJECT_STAGE="Development" mode, 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.
- ace:dataTable w/ Row Expansion
- An issue exists that prevents the use of the ace:dataTable with Row Expansion that contains editable components, on MyFaces only. At this time, Row Expansion can be used with none-editable components-only when running on MyFaces.
- 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:
- See http://jira.icesoft.org/browse/ICE-6138 for more information.
- Tomcat 6.0
- In some cases, when running Tomcat on Windows, undeploying an ICEfaces compatible application (i.e. that includes the icefaces-compat.jar) can cause an exception. See http://jira.icesoft.org/browse/ICE-5222 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:
<Context antiJarLocking="true" antiResourceLocking="true"/>
- Glassfish 3 / JBoss 6, 7 (JEE 6 Platforms)
- It is required to have Mojarra JSF 2.1.3+ installed. This may require updating the JSF Mojarra runtime libraries in Glassfish 3 or JBoss 6/7, depending on which JSF version is currently installed.
- Liferay 5
- Using the ACE Components with Liferay 5 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 5. See the Custom ACE Styles for Liferay Portal Wiki topic for details.
- 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.
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.