Overview
This document contains the following sections:
Changes
in ICEfaces EE 1.8.2.GA_P01
ICEfaces EE (Enterprise Edition) 1.8.2.GA_P01 (Patch 1) is a
production-certified
release.
ICEfaces EE is a commercial software product that extends the ICEfaces
open source project to provide additional advanced enterprise features,
professional support options, and platform certification against a wide
range of proprietary and open source application servers and Java EE
middleware. For more information on ICEfaces EE, see the
ICEfaces
EE
Product
Page, and the
ICEpack
Wiki.
Review the
Known
Issues
prior to using this release.
Review the
Migration
Notes
if you plan to use an existing ICEfaces 1.7.x application with 1.8.x.
Please report any issues with
this release to
ICEsoft
customer support.
Notable ICEfaces Changes In This
Release
- [ICE-3979]
- Support for Glassfish v3 (final).
- [ICE-2464]
- Support for portlet containers - IBM WebSphere Portal 6.1.
- [ICE-5511]
- Support for portlet containers - Sun Web Space Server.
- [ICE-5241]
-
Fix for a regression in ICEfaces 1.8.2 and ICEfaces EE 1.8.2.GA that
can break support for Spring Web Flow applications.
- [ICE-5375]
-
Create a new "jsEventListener" container component that can listen for
client-side javascript events and fire an action events on the server.
- [ICE-5357]
- Keyboard support: add keyboard support to rowSelector component.
- [ICE-5363]
- Add keyboard support to dataPaginator component.
- [ICE-5365]
- Integrate dataPaginator shortcut keys with focused row of dataTable.
- [ICE-2198]
- Allow inputFile to save file to OutputStream.
- [ICE-3366]
- Make ice:columns support resizable columns.
- [ICE-5486]
- Add support for the rowSelector.singleRowAutoSelect attribute.
- [ICE-5438]
- Allow de-registration of dynamic resources.
- [ICE-5522]
- Reduce server notifications for select traversal.
- [ICE-5255]
- Optimize drag and drop DOM update markup.
- [ICE-5290]
- outputMessageRenderer should use ViewRoot locale.
- [ICE-5386]
- add jsEventListener demo to the showcase.
- Numerous bug fixes.
Refer to the ICEfaces JIRA
Change
Log for detailed information on all the ICEfaces changes included
in this
release.
Notable ICEpack Changes In This Release
- Enterprise Push Server (EPS)
- [IPCK-61]
- Clustered fail-over supported has been added for WebSphere 7.
- [IPCK-77]
- Stand-alone (none-clustered) support has been added for
Glassfish 2.
- [IPCK-57]
- Support for Tomcat 6.0 ARP (Asynchronous Request Processing)
mode has been added.
- [IPCK-47]
- Support for ActiveMQ 5.3.0 has been added (when used with
Tomcat 6).
- ICEfaces Composite Components
- [IPCK-72]
- Support for validation in the Editable Table.
- [IPCK-73]
- Support for boolean columns in Editable Table.
- [IPCK-74]
- Support for required attribute in the Editable Table columns.
- [IPCK-68]
- Dual List add item directly to right list.
- Numerous bug fixes.
Refer to the ICEpack JIRA
Change
Log for detailed information on all the ICEpack changes included in
this
release.
Changes
in ICEfaces EE 1.8.2.GA
ICEfaces EE (Enterprise Edition) 1.8.2.GA is a production-certified
release.
ICEfaces EE is a commercial software product that extends the ICEfaces
open source project to provide additional advanced enterprise features,
professional support options, and platform certification against a wide
range of proprietary and open source application servers and Java EE
middleware. For more information on ICEfaces EE, see the
ICEfaces
EE
Product
Page, and the
ICEpack
Wiki.
Review the
Known
Issues
prior to using this release. Review the
Migration Notes
if you plan to use an existing ICEfaces 1.7.x application with 1.8.x.
Please report any issues with
this release to
ICEsoft
customer support.
Notable ICEfaces Changes (vs.
ICEfaces
1.8.2 open-source)
- [ICE-5140]
- Improve form serialization performance. The ICEfaces
JavaScript Bridge has been optimized to improve performance on Internet
Explorer browsers when dealing with large forms. Actual performance
improvements
vary with form size, but 3x
improvements have been seen with large
forms.
- [ICE-5132]
- create ice:repeat component that would work similar to the
panelSeries but will not render any markup of its own. Intended for
situations where you you
need to render a repeating series of custom markup inside another
component.
- [ICE-5156]
- Improve performance for JS event listener cleanup
- [ICE-5006]
- Limit individual users to a maximum number of views
- [ICE-5176]
- Add Maven2 poms and resources to ICEfaces EE bundle
- [ICE-5061]
- Empty ice:graphicImage URL creates unnecessary views
- [ICE-5149]
- Configurable update coalescing
- Numerous bug fixes.
Refer to the ICEfaces JIRA
Change
Log for detailed information on all the changes included in this
release.
Notable ICEpack Changes Since ICEpack 1.8.1 Beta
- Enterprise Push Server (EPS)
- All-new support for
clustered fail-over of ICEfaces push applications when using EPS.
- Clustered fail-over is supported on the following platforms in
this release:
- Tomcat 6.0 + ActiveMQ 5.1
- JBoss 4.2.3
- WebLogic 10.3.2
- WebSphere 6.1
- ICEfaces Composite Components
- The following new
facelets composite components have been added to the ICEfaces Composite
Components in this
release:
- editableTable
- filterTable
- richDataGrid
- dynamic dialog
- textSpinner
- selectLocale
- selectOneStateProvince
- richTabs
- tabView
- slideshow
- schedule
- selectDateInterval
- Samples
- The ICEfaces Composite Component Showcase sample has been
updated to include examples for each of the new composite components
added in this release.
Migration
Notes
The following changes may affect applications that were originally
developed with ICEfaces 1.7.x.
Asynchronous ICEfaces applications should be deployed with
the new Push Server
- Asynchronous ICEfaces applications (push) should now be
deployed with the new Push Server.
- If you deploy more than one asynchronous ICEfaces
application to the same application server/host-name and view
more than one of these applications in a single browser (via multiple
tabs or windows), the push updates only function correctly for one of
the applications. This restriction is due to HTTP 1.1 connection-limit
recommendations that many browsers enforce. Changes in 1.8.0 make this
issue more prevelant on all browsers than in previous releases.
- Note that the Push Server MUST be deployed when using any
ICEfaces asynchronous portlets.
- See the "Push Server" section on pg. 74 of the
ICEfaces
Developer's Guide for more information.
Asynchronous HTTP Server (AHS)
- The ICEfaces Asynchronous HTTP Server (AHS) is no longer
supported with ICEfaces 1.8.0.
- If
your application was previously configured to use AHS you will
need to deploy the new Push Server
with your application instead.
- See the "Push Server" section on pg. 74 of the
ICEfaces
Developer's Guide for more information.
Session Renderer API Repackaging
- The
SessionRenderer API
was introduced as an experimental API in ICEfaces 1.7.1. Based on
positive feedback from the community it has been repackaged and is
now an official API. If your application uses the SessionRenderer it
will need to be updated to reflect the new package name.
- Former package-name (experimental):
org.icefaces.x.core.push.SessionRenderer.
- New package-name (official):
com.icesoft.faces.async.render.SessionRenderer
ice:inputFile Component Changes
- The behavior and features of the ice:inputFile component
have changed to better support indicating progress
without requiring as much application-level code.
- In previous ICEfaces releases, a technique of using the
ICEfaces push APIs (e.g. PersistentFacesState.renderxxx(),
RenderManager, etc.) to push progress updates to the browser was used.
In this release this technique is unnecesary and deprecated. The
specific case of using the PeristentFacesState.render() API can cause
nested JSF lifecycles to occur which can cause unpredictable results.
- See the ice:inputFile TLD documentation for details.
Glassfish Grizzly ARP Support
- If you would like to leverage the Glassfish Grizzly ARP
mechanism with ICEfaces 1.8.0 you must include the new "
grizzly-compat.jar"
in
your
project
classpath.
This
jar
is
located
in
the
"../icefaces/libs"
directory.
Supported
Platforms
Java
ICEfaces is supported on the following Java versions:
- JDK 1.4 and greater
- MyFaces and Sun JSF 1.1 runtimes
- Sun JSF 1.2 runtime
Note that ICEfaces 1.x is not supported on JSF 2.0 runtimes. ICEfaces
2.0 is targeted at JSF 2.0 runtime environments.
Browsers
Vendor
|
Product
|
Version
|
Apple
|
Safari
|
4.0
|
Google
|
Chrome
|
3.0+
|
Microsoft
|
Internet
Explorer
|
6,
7, 8
|
Mozilla
|
Firefox
|
3.x
|
Opera
|
Opera
|
9,
10.1
|
Mobile
Browsers
Vendor
|
Product
|
Platform |
Version
|
Apple
|
Safari
|
iPhone, iPod Touch |
1.x,
2.x, 3.x
|
Opera
|
Opera Mobile
|
Windows Mobile |
8.65,
9.21b2 |
RIM
|
Blackberry
|
Blackberry Bold |
All
|
Application
Servers
Vendor
|
Product
|
Version
|
Apache
|
Tomcat
|
5.5,
6.0
|
BEA Systems Inc.
|
WebLogic Server
|
8.1,
9.2, 10.1
|
IBM
|
Websphere
Application Server
|
6.0.2,
6.1, 7.0
|
| Oracle |
WebLogic Server |
10.3.1, 10.3.2
|
Oracle
|
Oracle
Application
Server
Container for J2EE (OC4J)
|
10.1.3
|
RedHat
|
JBoss
Application
Server
|
4.0.5,
4.2.x, 5.0
|
SAP
|
NetWeaver
|
7.0
|
Sun Microsystems
|
GlassFish
|
v2.x,
v3.0
|
Sun Microsystems
|
Sun Java System
Application
Server
|
8.1,
9.x
|
Webtide
|
Jetty
|
6.1.x
|
Portal
Containers
Vendor
|
Product
|
Version
|
| Apache |
Pluto |
1.1.4 |
| Apache |
Jetspeed 2 |
2.1.3 |
| BEA |
WebLogic Portal |
10 |
IBM
|
WebSphere Portal
|
6.1
|
Liferay
|
Liferay Portal
|
4.3.x,
5.x
|
RedHat
|
JBoss Portal
|
2.6.x
|
Sun Microsystems
|
Sun Glassfish Web Space Server
|
10.1
Community Build 2
|
Enterprise Push Server (EPS),
Supported Application
Servers
Vendor
|
Product
|
Version
|
Apache
|
Tomcat (w/ Apache ActiveMQ 5.1 -
5.3.0)
|
6.0
|
JBoss Inc.
|
JBoss
Application
Server
|
4.2.x
|
IBM
|
Websphere
Application Server
|
6.1, 7.0
|
| Oracle |
WebLogic Server |
10.3.1 |
IDE
Tools
ICEfaces IDE integration bundles are available for the following
development
tools:
Vendor
|
Product
|
Version
|
Eclipse
|
Eclipse/Web
Tools
Platform
|
3.5
|
Genuitec LLC
|
MyEclipse
Enterprise
Workbench
|
8.0
|
| IBM |
Rational Application Developer (RAD) |
7.5 |
Sun
|
NetBeans
|
6.5,
6.8
|
Note: Tool integration bundles may be
updated independently
from ICEfaces releases. Refer to
http://downloads.icefaces.org for the most recent
tool bundles and associated ICEfaces runtime libraries.
Note: ICEfaces can generally be used with any Java IDE that supports
JEE 1.4 0 (+JSF) and JEE 1.5 projects. If a specific ICEfaces
integration is not available for your IDE, ICEfaces can be manually
included into your project classpath. See the ICEfaces
Tools forum and
Tutorials for more information on
using ICEfaces with a variety of IDEs.
Known
Issues
The following section describes the most commonly
encountered
known
issues with this release. For a complete reference of all outstanding
issues please refer to the ICEfaces.org JIRA issue
tracker.
- If at any time the asynchronous connection
between the browser
and the server is lost due to a network interruption, reloading the
page
will generally restore normal operation from the previous application
state.
- ICEfaces pages included via
<jsp:include> or
<tiles:insert> have distinct PersistentFacesContext
objects even
if they are included by the same parent page. For this reason,
application-initiated renders will apply only to the inclusion
associated with the particular PersistentFacesContext.
- Inclusion of ICEfaces content from JSP
is not compatible with
MyFaces.
- Attempting to retrieve a Request
parameter in the url using the
following syntax is not supported (returns null):
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(paramName);
A workaround for this issue is to retrieve the Request parameter using
the following alternative syntax:
((HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest()).getParameter(paramName);
- Cookies can be set though
the
((BridgeExternalContext)
FacesContext.getCurrentInstance().getExternalContext()).addCookie(new
Cookie("test","test")); method.
- If you are using the Sun JSF 1.2 RI and experience the
following exception:
"javax.faces.application.ViewExpiredException:
viewId:/xxx.iface - View /xxx.iface could not be restored. at
com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:xxx)"
It may be necessary to include the following configuration in web.xml:
<context-param>
<param-name>com.sun.faces.enableRestoreView11Compatibility</param-name>
<param-value>true</param-value>
</context-param>
JSP Markup
- UIComponentBodyTag processing supports only a
single call to
doAfterBody(). The full JSP lifecycle for iterative body processing is
not supported.
- The first-generation children of the
DataTable's table-header and
column-header facets must be standard JSF components. For example,
plain markup cannot be contained on its own within these facets, it
must be wrapped in a panelGrid and the panelGrid, in turn, can be
contained within the facet.
- JSP Page to Document conversion
escapes  , but  
in JSP Documents must be manually escaped by the developer as
&nbsp. Similarly, & characters must be escaped as
&.
- Non-JSF JSP tags
(<jsp:xxx/>, etc.) embedded in JSP Pages
and Documents are ignored by the ICEfaces parser with the exception of
the inclusion mechanism (see Markup Reference in Developer's Guide for
details).
- Java code (<% ...%>,
etc.) embedded in JSP Pages and
Documents is ignored by the ICEfaces parser with the exception of the
inclusion mechanism (see Markup Reference in Developer's Guide for
details).
- Input documents must be well-formed
XML.
- Deprecated HTML elements, specifically
the FONT element, do not
respond properly to DOM manipulation functions in the ICEfaces
client-side JavaScript bridge. (see HTML 4.01 Specification for details
on deprecated HTML Elements).
- Pages should contain both a
<head> tag and a <body>
tag
so that they are well-formed XHTML and ICEfaces can
easily add a link to its own custom JavaScript library.
- Any ICEfaces page included from a JSP
via <jsp:include/>
must contain a <body> tag as the content of the
<body> tag
is precisely the content inserted into the including page.
- Tiles tags are not supported within
ICEfaces pages, but ICEfaces
pages may be included via Tiles.
- If multiple ICEfaces inclusions are
performed by the same parent
JSP, each ICEfaces form must have a manually applied unique ID.
- JSP Pages are dynamically converted to
JSP Documents for
processing by the ICEfaces parser, so it is important not to mix JSP
Page and JSP Document types when performing static inclusion.
- UTF-8 encoding must be used for all
source files for ICEfaces
(jsp jspx,
etc.)
ICEfaces Component
Suite
- All ICEfaces Component Suite
components must be enclosed in a JSF
form component (i.e.
ice:form, h:form,
or ui:form).
- Effects (various components)
- In Internet Explorer the Fade,
Appear, and Pulsate effects
will not transition when used with select elements.
- In Safari the Highlight effect will
does not work on buttons
and lists.
- gMap
- Requires
an API key which must be obtained from the Google
Maps website.
- Client
browser must be able to access the Google Maps website URL
(http://maps.google.com)
- menuPopup
- menuPopup is not supported in the Opera browser due
to
a
browser security feature that prevents the override of the browser's
own context menu.
- inputRichText
- The FCKeditor JavaScript library that is the basis
for
the ice:inputRichText component does not currently support the Opera
browser.
- outputChart
- Negative values are not supported in "barstacked"
chart-types. This is a limitation of the krysalis.jcharts
library used to generate the chart images.
- When using the ice:outputChart component with IE6
the
following warning log messages may appear in the ICEfaces server log:
"java.net.SocketException: Connection reset by peer: socket
write error". This is the result of IE6 closing connections
abruptly and is a browser quirk. It has no impact on the functionality
of the component.
Portlets
- The following ICEfaces components are known not to work
correctly in a portlet environment:
- ice:gMapDirection
- ice:inputRichText - using this component in more
than
one portlet
on a page may cause problems with the functioning of this
component.
- Drag & drop (via ice:panelGroup) - using
drag-and-drop in more
than one portlet on a page may cause drag-and-drop to not
function in some of the portlets on the page.
- When using ICEfaces with
Liferay Portal positioning problems may occur with components that
rely on dynamic positioning, such as ice:panelPopup, ice:menuBar,
and menuPopup. This issue is related to an aggressive styling
behavior in Liferay and there is a work-around identified. See ICE-2967
for details.
- Liferay 5.2+ automatically compresses all resources
being
served by the Portal container. By default this will conflict
with ICEfaces automatic resource compression. When running with Liferay
5.2+ it is necessary to either disable Liferay's resource compression,
or disable ICEfaces resource compression by
specifying the "
com.icesoft.faces.compressResources=false"
configuration
parameter
setting
in
the
web.xml
file.
- Web Space Server - Portlets dynamically added to a page may not
be immediately usable. When dynamically adding a porlet to a page the
portlet may not appear on the page automatically for the administrator
session that added the portlet to the page.
Accessing the page as a guest user works correctly, as does logging out
and back in as an administrator.
- The ICEfaces Component Showcase portlet sample
application
may have styling and layout related issues related to the specific
portal container and portal theme being used. The
primary intention is to show component functionality in a portlet
context. It may be necessary to customize the specific styles being
used to work well within the portal theme, etc.
Spring WebFlow
- In Spring WebFlow 2.0.5+ there is a ViewHandler
delegation
issue that prevents the logic that determines whether a view is
restorable from working correctly resulting in the flow being
continuously restarted.
A workaround is to define a Spring FlowViewHandler in the application
faces-config.xml file.
<application>
<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
<view-handler>com.icesoft.faces.facelets.D2DFaceletViewHandler</view-handler>
<view-handler>org.springframework.faces.webflow.FlowViewHandler</view-handler>
<variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>
</application>
Sample
Applications
- Of the
four varieties of the Component Showcase application (jsp, portlet,
portlet-enh, and portlets), only the facelet-enh version includes the
Description and Source tabs for viewing documentation and resources
related to the components being demonstrated.
- The Component Showcase enhanced
facelets sample
application
(
icefaces/samples/component-showcase/facelet-enh)
requires JDK 1.5 to compile and run. All other samples in this release
require JDK 1.4+.
Application
Servers
- Due to an apparent
bug in Tomcat 5.x, users have occasionally reported seeing the
following error when using ICEfaces with Tomcat 5.x or JBoss 4.0.x: "SEVERE:
ICEfaces
could
not
initialize
JavaServer
Faces.
Please
check
that
the
JSF
.jar
files
are
installed
correctly." This
issue
can be resolved by including the following listener in the web.xml:
<listener>
<listener-class>
com.sun.faces.config.ConfigureListener
</listener-class>
</listener>
- Tutorials bundled with the
ICEfaces release will not build and
deploy to Tomcat 5.5 with MyFaces due to a conflict related to
jsp-api.jar. To build and deploy tutorials on Tomcat 5.5 with
MyFaces, it is necessary to modify the .../install_dir/ICEfaces-1.5/icefaces/samples/tutorial/build.properties
and set tomcat55=true
prior to building the application.
- To use ICEfaces
with Tomcat v6.0 these jars that are included in the ICEfaces
distribution
must be removed from the web application (note that the sample
application build script target for Tomcat 6 will include the correct
.jars in the .war file):
- el-api.jar
- xercesImpl.jar
- xml-apis.jar
- Tomcat
v6.0
/
JBoss 4.2 with NIO Connector
- When using the optional Tomcat 6 NIO connector (can
also
be used with JBoss 4.2) with asynchronous ICEfaces applications a
NullPointerException can be thrown
when using the TomcatPushServlet (located in the
com.icesoft.faces.webapp.http.servlet package) due to Tomcat recycling
objects that are still in use by the TomcatPushServlet. The issue seems
to be timing related and is more apparent with multiple users.
- Workarounds
for this issue include not configuring the optional Tomcat NIO
connector and configuring the ICEfaces Enterprise Push Server for NIO
asynchronous communications instead.
- Due to a bug in the JSF RI included in the Glassfish
v2.1
distribution (v1.2_04), exception redirection may not work correctly
with ICEfaces. The work-around is to install or use Sun JSF RI
1.2_05 or newer.
- BEA
Weblogic Server 9 & 10
- In order to run ICEfaces
on the BEA Weblogic Server 9, the html
and core tld files located in jsf-impl.jar should be extracted from the
jar file and placed into the WEB-INF folder of any application you want
to deploy.
- When deploying an ICEfaces application that uses the
ice:inputFile and/or ice:dataExporter components to WebLogic 9 or 10
you must use an exploded directory copied to the domain's autodeploy
directory, rather than simply using .war files or using the console.
Otherwise, the file-write operations these components depend on will
fail (as there is no writeable directory in a .war file).
- Websphere
Application Server 6.0.0.1, 6.1
ICEpack
- EPS
- When a shutdown node within
a WebLogic server cluster (fail-over) is brought back up again, the
following error may be reported (Note that this error does not impact
normal operation of the application):
<Oct 30, 2009 3:47:17 AM MDT> <Warning>
<RMI> <BEA-080004> <An error was thrown by rmi server:
weblogic.cluster.replication.ReplicationManager.update(Lweblogic.cluster.replication.ROID;ILjava.io.Serializable;Ljava.lang.Object;)
java.lang.AssertionError: Found the session, but not the
application. Double-check that proxy/loadbalancers are respecting
session stickiness..
...>
Support
Please report any issues with
this release to
ICEsoft
customer support.
About
ICEfaces
ICEfaces delivers extensions to Java ServerFaces
(JSF) that provide
an
AJAX-enabled rich presentation environment for JSF applications.
ICEfaces
brings value to any Java EE development project that needs to provide
superior
presentation capabilities to the web application user. In particular,
ICEfaces provides the following features:
- Smooth, incremental page updates that do not
require a full page
refresh to achieve presentation changes in the application.
- Server-initiated
asynchronous presentation updates for dynamic
instantaneous data push (Ajax Push/Comet).
- The ICEfaces Component
Suite, a complete rich JSF component suite
that fully leverages ICEfaces capabilities.
- Intelligent
form processing that facilitates fine-grained
interactions with the user as they manipulate a form.
- API
support for rapid development of group-aware and
collaborative applications, such as Chat, Webcast, social apps., etc.
- JSP or Facelets based development.
- Tool
integrations for leading Java IDEs.
- Support for
leading Java EE frameworks, such as Spring and JBoss
Seam.
- Support for portlet development.
Learn More
This ICEfaces release comes with extensive documentation
that
will
help you
understand the product thoroughly. Documentation for this release is
located
in your installation directory at .../install_dir/icefaces/docs/.
The
following
documents
are
provided
in
PDF
format:
- ICEfaces Getting Started Guide - This guide takes
you through product installation, environment
configuration, demo app installation, and a basic 7-stage tutorial.
This guide also contains information related to support for different
application server environments and development tools.
- ICEfaces Developer's Guide - This guide contains
information relevant to developing applications
with ICEfaces. It describes the ICEfaces architecture, and explains key
concepts that the ICEfaces developer should be aware of. It also
provides a complete reference guide that covers APIs, configuration,
components (including the ICEfaces Component Suite) and TLDs, and
covers advanced topics like server-initiated rendering.
- ICEpack Wiki -
Provides complete documentation for all ICEpack features, including:
- Development Resources: Self-serve Training and Rapid
Application Development.
- Test Resources: Functional Testing and Load Testing.
- Deployment Resources: Enterprise Deployment Guide, Enterprise
Push Server (EPS), and the Clustered Push Development Guide.
ICEfaces documentation is also available
on-line
at
http://documentation.icefaces.org/.
License
Notice
License agreements can be found in the
.../install_dir/icefaces/docs/license
directory.
© Copyright
2005-2010 ICEsoft Technologies, Inc.