ICEfaces™
V1.5 Release Notes
November 13th, 2006
|

|
Overview
This document contains the following sections:
For release note information for earlier ICEfaces releases, refer to
the ICEfaces
Knowledge Base.
Understanding
ICEfaces
ICEfaces delivers extensions to Java ServerFaces (JSF) that provide
an
AJAX-enabled rich presentation environment for JSF applications.
ICEfaces
brings value to any J2EE 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.
- 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.
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-1.5/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 5-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.
Additionally, all ICEfaces documentation is also available on-line
at http://documentation.icefaces.org/.
Changes in
This Release
ICEfaces V1.5 includes over 140
fixes and enhancements.
Click here
to review the complete Change
Log of changes made between the V1.5 and V1.0.1. releases.
The most notable changes are listed below:
General
- ICEfaces is now an open source product. It is available in
both a binary and a source code release.
Core Framework
- Clean DOM rendering mechanism improves support for 3rd party JSF
component compatibility.
- Server-initiated rendering API's now support startup, shutdown
and disposal methods for group renderers.
- Performance Improvements:
- Use of hidden fields has been reduced which improves form
processing time and reduces size of DOM updates.
- Finer-grained synchronization has been incorporated into
Servlet processing.
- Dynamic application reload for modified .jspx and .jsp pages
improves developer productivity.
ICEfaces Component Suite
- New Components;
- Positioned Panel Component:
With the panelPositioned component lists can be used to generate a
series of repeating child-components within a panel.
Each one of these child-components is draggable and can exchange
positions with other children. In addition, a child component can be
moved between different positioned panels components.
- Chart Component: The
outputChart component encapsulates Krysalis jCharts functionality (http://jcharts.sourceforge.net/).
It supports both pie (2D and 3D), and axis (area, areastacked,
bar, barclustered, barstacked, line, and point) type charts. The
outputChart component provides full interactivity through
actionListener bindings with the clientSideImageMap. The outputChart
component can be generated statically or dynamically.
- Modification to the tree component provide better support for
lazy loading of branches.
- IceUserObject includes a new boolean attribute leaf which explicitly declares leaf
nodes. All other nodes default to branches.
- Expand/collapse events are now available through ActionListener
binding to the Tree and/or TreeNode. It is possible to cause and
capture Node expand/collapse events.
- Several enhancements to the data table have been introduced.
- A columns component has been introduced that provides a dynamic
model for adding and deleting columns programmatically. The
columns component works in conjunction with the ice:dataTable, with the
headerClass and columnClasses being assigned for all generated columns.
- A rowSelector tag enables row selection for dataTable and
supports the following attributes: value, multiple, selectionListener,
selectedClass, mouseOverClass.
- dataTable now supports a scrollable attribute that enables a
scroll bar for the table.
- Several additional script.aculo.us effects are now supported
including: scale, puff, blind up/down, switch off, drop out, shake,
slide up/down, squish, grow, shrink, and fold.
- A new attribute target
has been added to menu component that can change the URL in a separate
window or frame. (Same as the
Anchor target attribute.)
- Connection status component now support ability to redirect on
connection error.
- File Upload component now uses commons-io-1.2.
- Panel Tab now supports icons in the tabs.
- A Hover class has been added to Panel Group.
- Panel Popup now supports the effect
attribute.
- SelectInputText width can now be specified in any unit (eg: 100,
100px, 100em, 100pt).
- A style class has been added to command sort header.
Tools
- Tools integration bundles are now supplied separately from the
ICEfaces release and include their own release notes. Go to http://www.icefaces.org to download
tools integration bundles.
Early Access Features
Supported
Browsers, Application Servers, and Tools
Browsers
This release of ICEfaces has been certified on the following
Browsers:
Vendor
|
Product
|
Version
|
Microsoft
|
Internet Explorer
|
6.x+, 7
|
Mozilla
|
Firefox
|
1.x+
|
Mozilla
|
Mozilla
|
1.7.x+
|
Apple
|
Safari
|
1.3+
|
Netscape
|
Netscape
|
7.x+ |
J2EE Application Servers
This release of ICEfaces has been certified on the following
Application Servers:
Vendor
|
Product
|
Version
|
Apache
|
Tomcat
|
5.0.28, 5.5
|
JBoss Inc.
|
JBoss Application Server
|
4.0.3
|
BEA Systems Inc.
|
Weblogic Server
|
8.1
|
Sun Microsystems
|
Sun Java System Application
Server
|
8.1
|
Oracle
|
Oracle Application Server
Container for J2EE (OC4J)
|
10.1.3
|
IBM
|
Websphere Application Server
|
6.0.0.1, 6.1
|
J2EE Integrated Development Environments (IDEs)
ICEfaces includes IDE integration bundles for the following
development
tools:
Vendor
|
Product
|
Version
|
Eclipse
|
Eclipse/Web Tools Platform
|
3.1.1/1.0,
3.2/1.5
|
|
Eclipse/Web Tools Platform with
JSF tools
|
3.2/1.5
|
IBM
|
Rational Application Developer
|
6.0.1
|
Oracle
|
JDeveloper 10g Studio Edition
|
10.1.3
|
BEA
|
Workshop Studio 3, Workshop
Studio for JSF
|
3.0, 3.1, 3.2
|
Genuitec LLC
|
MyEclipse Enterprise Workbench
|
5.0
|
Sun
|
Java Studio Creator 2
|
2.0 - Update 1
|
Sun
|
NetBeans
|
5.0, 5.5
|
Note that the tool integration bundles may be updated independently
from ICEfaces releases. Go to
http://www.icefaces.org to get the most recent
tools bundles.
Known Issues
The following are known issues with this release:
General
- There are conditions in which the asynchronous communication
between the server and browser stops (such as the user pressing the
browser "stop" button or allowing their machine to sleep). In this
situation, the application server console will show the following
exception (including stack trace) with no functional impact:
java.lang.RuntimeException:
IncrementalNodeWriter Queue limit
exceeded: 51.
The user may need to refresh the page to continue using
the application.
- 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.
- Integration of HTML renderers with the ICEfaces Direct-to-DOM
renderers is
generally possible but idiosyncrasies have been noted with a small
number of custom renderers. In these cases, enclosing the custom tag
with a standard JSF panelGrid tag in the source document can help to
correct the problem.
- 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);
- When using ICEfaces with com.icesoft.faces.concurrentDOMViews
enabled, reloading the page or opening the application with more than
one browser window simultaneously will prevent references to any
request-scoped beans from being removed, resulting in them being unable
to be garbage collected until the user session expires. Further, any
component bindings must be in request scope
in this configuration as a component binding in
session or application scope in concurrent views can lead to a
component existing simultaneously
in two component trees with unpredictable behavior.
- Cookies can be set though the ((BridgeExternalContext)
FacesContext.getCurrentInstance().getExternalContext()).addCookie(new
Cookie("test","test")); method.
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.
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).
- Drag & Drop (panelGroup)
- In Internet Explorer dragging and holding an image will cause
the cursor to change to the not symbol. Operation returns to normal
with a second left mouse button click.
- 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.
- inputFile
- When using Firefox / Mozilla with the inputFile component, if
the user interacts with the ICEfaces application while a file is being
uploaded, the file-upload operation may terminate abnormally. The
ICEfaces application itself will remain functional. In order to avoid
this possibility it is recommended that fileUpload operations be
performed in a modal panelPopup to prevent user-interaction with the
ICEfaces application while the file upload is in progress. For example,
the application may display a progress-bar in a modal panelPopup that
displays the upload progress while also preventing further
user-interaction while the upload is in progress.
- menuBar
- When a menu is expanded and the user clicks on one of the
menu items, and then the same
menu is expanded again, the last-clicked menu item will appear with a
dashed outline. This is
only an issue in the Firefox or Mozilla browser.
- panelPopup
- When using a modal panelPopup
it may be necessary to ensure that the body region of the page covers
the entire visible region of the document or the component used to
block user interaction with the document may not cover the entire page.
To accomplish this a surrounding DIV sized to 100% width and height can
be used to enclose all content in the document body. For example:
- panelTabSet
- On Safari browsers only, the layout of the tabs is incorrect,
with horizontal spacing between the tabs.
- On Safari browsers only, the tab panel resizes when tabs are
selected.
Facelets
- When using an ice:outputDeclaration component in a Facelets
document on a JBoss application server, several warning messages may be
logged. These warnings do not affect the performance or behavior of the
component and can be ignored.
Application Servers
- BEA Weblogic Server 9
- 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.
- Websphere Application Server 6.0.0.1
- A bug in the application server prevents the Timezone Step 3+
tutorials from running correctly. A WebSphere patch is available from
IBM that resolves this issue: APAR numberPQ99195, http://www-1.ibm.com/support/docview.wss?rs=180&uid=swg1PQ99195.
- The Component Effects demonstration in the ICEfaces Component
Showcase application doesn't display the effects when hosted on
WebSphere v6.0.0.1 server.
- Tomcat 5.5
- 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.
Support
Open source community support is available at http://www.icefaces.org. For
commercial support please visit http://www.icesoft.com/support.
License
Notice
License agreements can be found in the .../install_dir/ICEfaces-1.5/icefaces/docs/license directory.
© Copyright 2005-2006. ICEsoft Technologies, Inc.