Apache Shale (Version 1.0.5) Release Notes
1.0 Introduction
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.
To download the binary release artifacts, go
here,
select an appropriate mirror,
download the corresponding zip files, and check the checksums and
digital signatures. In addition, the individual JAR files are available
in the default Maven 2 repositories, using artifact identifiers described
below in Section 2.2.
2.0 What Is Included
2.1 Release Artifacts
Shale is released as a series of zip files, each of which contains
the binary deliverables, as well as the corresponding source code. In
addition, if you have Maven 2 (version 2.0.4 or later) installed, you
can rebuild the contents of each zip, by positioning to the
top level directory in a command shell, and typing mvn install
from there.
The following release artifacts are available:
- shale-framework-1.0.5.zip - Contains source code,
javadocs, and compiled libraries for the standard Shale libraries,
plus copies of dependent JAR files that are also required. The
following Shale libraries are included:
- shale-application-1.0.5.jar - Traditional
application wide front controller features that should be
applied to every request.
- shale-clay-1.0.5.jar - An innovative sub-framework
for supporting the configuration of reusable subtrees of
JavaServer Faces components for customizable reuse. An
alternative to JSP where you define views in pure HTML.
- shale-core-1.0.5.jar - Features such as
JNDI integration, a JSF taglib and a set of utility
classes.
- shale-dialog-1.0.5.jar - Abstract API to define a
"conversation" with a user that requires multiple HTTP
requests to implement, modeled as a state diagram.
- shale-dialog-basic-1.0.5.jar - A relatively simple
implementation that models a dialog as a state diagram
with four types of states. This implementation supports
a superset of the functionality that was present in
versions of Shale up through 1.0.3.
- shale-dialog-scxml-1.0.5.jar - A more
sophisticated implementation based on state charts
modeled with State Chart XML, which is currently a Working
Draft published by the W3C. Uses the Apache Jakarta
Commons SCXML engine.
- shale-remoting-1.0.5.jar - Standalone library
supporting static and dynamic resource downloads for
AJAX applications and components.
- shale-spring-1.0.5.jar - Library providing
lightweight integration with the dependency injection
capabilities of the
Spring Framework.
- shale-test-1.0.5.jar - Library of mock objects
and JUnit test case base classes for building unit tests
for JSF-based web applications and components.
- shale-tiger-1.0.5.jar - Optional library providing
additional features for applications running on Java SE 5
"Tiger" or later releases.
- shale-validator-1.0.5.jar - Support for client-side
validation and a rich set of server-side validators
for JSF components using the Apache Jakarta Commons
Validator library.
- shale-view-1.0.5.jar - Convenient mechanism to
associate a "backing" Java class with each JavaServer Faces
view in an application, with predefined event handers for
events significant to an application developer.
- mailreader-jpa-1.0.5.zip - Java class library
containing Java Persistence Architecture (JPA) entity classes, and
a corresponding Persistence Unit configuration, for use by the
shale-mailreader-jpa
example application.
- Other shale-xxxxx-1.0.5.zip archives - Each of the
following archives contains the source code and javadocs for a
sample application using Shale, plus a WAR file that can be
dropped directly into your servlet container to run the sample.
The following sample apps are included in this release:
- shale-blank-1.0.5.zip - Simple base application
that can be used as a starting point for developing your
own application that depends on Shale
- shale-clay-usecases-1.0.5.zip - A simple
"Rolodex" application implemented in several ways to
show off the capabilities of the Clay Plug-In
- shale-mailreader-1.0.5.zip - A transcription of
the canonical Struts "mail reader" example application,
using an XML document to simulate the database.
- shale-mailreader-jpa-1.0.5.zip - A modernized
version of the mail reader example that uses a database
to store the data, and JPA entity classes to access it
(requires a Java EE 5 application server)
- shale-sql-browser-1.0.5.zip - Simple SQL
browser application that illustrates features from
the shale-tiger.jar library, as well as dynamically
building a JSF component tree
- shale-usecases-1.0.5.zip - Contains miniature
sets of pages showcasing various features of the Shale
Core library
2.2 Maven Repository Artifacts
The various JAR files that are included
in the framework release artifact have also been published to public
Maven 2 repositories. If you are using Maven 2 to build your apps, you
need only declare dependencies on the following identifiers (group id,
artifact id, and version number), and Maven 2
will automatically download Shale (and its dependencies) for you.
- org.apache.shale:shale-application:1.0.5 - for shale-application-1.0.5.jar
- org.apache.shale:shale-clay:1.0.5 - for shale-clay-1.0.5.jar
- org.apache.shale:shale-core:1.0.5 - for shale-core-1.0.5.jar
- org.apache.shale:shale-dialog:1.0.5 - for shale-dialog-1.0.5.jar
- org.apache.shale:shale-dialog-basic:1.0.5 - for shale-dialog-basic-1.0.5.jar
- org.apache.shale:shale-dialog-scxml:1.0.5 - for shale-dialog-scxml-1.0.5.jar
- org.apache.shale:shale-remoting:1.0.5 - for shale-remoting-1.0.5.jar
- org.apache.shale:shale-spring:1.0.5 - for shale-spring-1.0.5.jar
- org.apache.shale:shale-test:1.0.5 - for shale-test-1.0.5.jar
- org.apache.shale:shale-tiger:1.0.5 - for shale-tiger-1.0.5.jar
- org.apache.shale:shale-validator:1.0.5 - for shale-validator-1.0.5.jar
- org.apache.shale:shale-view:1.0.5 - for shale-validator-1.0.5.jar
- org.apache.shale.extras:mailreader-jpa:1.0.5 - for mailreader-jpa-1.0.5.jar
3.0 Changes From Previous Releases
Details on all of the included changes are in
Section 5, below. The following sections highlight the most important
changes.
3.1 Shale Tiles
The Apache MyFaces project has
released a Tiles view handler that uses a GA version of
Apache Tiles. Rather than duplicate
that effort the Shale PMC decided to remove the Shale Tiles component and
encourage users to migrate to the MyFaces component.
3.2 Other Changes
In addition to the removal of Shale-Tiles several improvements and bug
fixes were implemented to stabilize the framework.
4.0 Known Issues In This Release
Follow
this link for a detailed Road Map of upcoming versions of Shale.
5.0 Detailed Change Log
5.1 Bug
- [SHALE-323] - Wrong output directoryname in shale-archetype-blank pom
- [SHALE-386] - Have to execute action twice to return to calling dialog
- [SHALE-390] - NPE in ComponentConfigBean$WatchDog.isDirty
- [SHALE-394] - ConcurrentModificationException in ViewPhaseListener.afterRenderResponse
- [SHALE-395] - Broken links in 'Shale Commons Validator Integration'
- [SHALE-398] - Correct web pages that were not fully updated for 1.0.4
- [SHALE-405] - Incorrect logic in MockApplication12.addELResolver(ELResolver resolver)
- [SHALE-406] - ConverterHelper produce NullPointerException by calling Converter with uiComponent = null parameter during restore view phase.
- [SHALE-407] - E-Mail Validator is not working in sample applications
- [SHALE-409] - Shale 1.0.4+ incorrectly removes all entries in the request map after render response
- [SHALE-411] - Typo in example on Clay introduction page
- [SHALE-412] - CommonsValidator doesn't take component converters into account!
- [SHALE-413] - CommonsValidator "arg" argument is loosing it's value for server-side validation rules.
- [SHALE-418] - Exception "Client-id : _id0 is duplicated in the faces tree" occurs with MyFaces 1.1.1
- [SHALE-423] - Subdialog not returning to calling dialog
- [SHALE-424] - ComponentConfigBean does not check for an empty value in the config files list
- [SHALE-426] - Implicit mapping of <a> tag appears to be overriding explicit mapping
- [SHALE-431] - Tomahawk's enabledOnUserRole property doesn't work with Clay
- [SHALE-437] - Setting Locale on ViewRoot to an EL Expression is broken
- [SHALE-450] - Server Side state saving is not saving the sequence generated to the client, leading to errors when always restoring the latest state.
- [SHALE-451] - outputFormat ignores "escape" attribute
- [SHALE-452] - f:validator not mapped
- [SHALE-486] - Validator Tests are failing due to errors in the properties files.
- [SHALE-491] - MyFaces profile won't build
5.2 Improvement
- [SHALE-403] - Back the root Context used for SCXML dialogs with the application VariableResolver
- [SHALE-416] - Upgrade Shale-Tiles to the Tiles 2.0.1 build.
- [SHALE-459] - Test is language dependant
- [SHALE-473] - Spelling "handers" >> "handlers"
- [SHALE-474] - Documentation Correction
- [SHALE-478] - Add MarkMail archives to shale-master
5.3 Task
- [SHALE-460] - Update references for Commons move from Jakarta --> TLP
- [SHALE-483] - Remove Shale-Tiles