Welcome to the Apache Shale Framework. Shale is a next generation framework for building web applications using Java technology, and builds upon the framework and component APIs provided by JavaServer Faces.
This is the initial milestone release of Shale, released to encourage experimentation and gather feedback on usage issues and requested features. This should be treated as an "alpha" quality release. However, many of the APIs in Shale are reasonably stable -- for details, see Shale API Target Audiences and Stability Ratings.
A release of Shale includes several primary categories of materials:
shale-core.jar
- Core framework functionalityshale-clay.jar
- Clay plug-inshale-spring.jar
- Optional integration layer with
adapters for the Spring
Frameworkshale-test.jar
- Unit test frameworkshale-tiles.jar
- Optional integration layer with
the standalone version of Tiles, currently under
development as part of the
Apache Struts project.tiles-core.jar
- For convenience, a copy of the
Standalone Tiles distribution is included here, to avoid the
requirement to extract it from the sample applications.struts-shale-usecases.war
Omnibus example application
that illustrates the use of most Shale features. As a convenience,
the /WEB-INF/lib directory of this application contains a copy
of all external dependencies described below.
This is the first milestone release of Shale, so there is no formal list of changes from the previous release.
[35066] The Dialog feature has known problems with attempting to have multiple simultaneously active dialogs in a single session (most commonly due to using frames or multiple windoes), and dealing with back buttons. These issues will be addressed in a subsequent release.
[35839] Additional improvements to the HTML parser will be addressed in a subsequent release.
[37024]
The Shale contribution to addressing this issue is to ensure that
META-INF/clay-config.xml
resources from JAR files loaded as
part of the application are automatically loaded. This will be addressed
in a subsequent release. The actual configuration resources for a given
component library such as Tomahawk, however, should be provided by the
component library itself rather than by Shale.
[37120] IFrames are a specific use case related to multiple simultaneous dialogs, so this issue will be addressed at the same time as 35066.
[37361]
There is a bug in the MyFaces implementation of validation that causes the
Use Cases example app to fail, where it works with the RI. The corresponding
MyFaces issue is
here. Leaving this bug open (with state REMIND
) as a
reminder to flag this issue in Shale release notes until it is resolved
in a subsequent MyFaces release.
[37615] RFE for using XML namespaces in Clay attributes, to be considered in a subsequent release.
[37643] RFE to add documentation (on the web site) for the Tiles and Remoting features, to be addressed in a subsequent release.
[37707]
Several classes that need to be serializable (because they could be stored
in session scope) are not currently. In addition, two classes inherit an
implements Serializable
declaration from their superclass, but
are not themselves able to be serialized. This does not cause a problem
using the classes in Shale, because such instances are never stored into
session scope, but will be flagged by code audits that check for this
scenario.