Shale is a modern web application framework, fundamentaly based on JavaServer Faces, and focused on improving ease of use for developers adopting JSF as a foundational technology in their own development environments. At the same time, the architecture of Shale is a set of fine grained services (and service options) that can be combined as needed to meet particular application requirements, rather than a monolithic request processor that is hard to customize and extend. In addition, integration links for other frameworks and framework components are provided, to ease development when combinations of technologies are required.
The major features of the Shale Framework are described in the
following detail sections:
- View Controller - 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.
- Dialog Manager - Mechanism to
define a "conversation" with a user that requires multiple HTTP
requests to implement, modeled as a state diagram.
- Application Manager -
Traditional application wide front controller features that should
be applied to every request.
- Validation - Integration with
the Jakarta Commons Validator Framework, supporting both client side
and server side validations based on a single set of configured
validation rules.
- Remoting - Server side support
for applications that employ AJAX (Asynchronous JavaScript and XML) style interactions.
- Spring Integration - Integration
with the Spring Framework,
allowing the use of Spring's dependency injection framework to create
JavaServer Faces managed beans.
- Clay - An alternative to JSP where
you define views in pure HTML, in a fashion similar to Tapestry
and Facelets.
An innovative
sub-framework for supporting the configuration of reusable subtrees
of JavaServer Faces components for customizable reuse.
- Test Framework - Set of mock objects
and JUnit test case base classes suitable for
testing both the framework classes themselves, as well as application
components built on top of the framework.
- Tiger Extensions -
Optional add-on library that adds additional ease-of-use features
for Shale applications that run on Java Standard Edition 5
(popularly known by its code name during development, "tiger").