Summary
Shale was accepted as a top-level Apache project, graduating from being a Struts sub-project. This step is a recognition of Shale's maturity, and the fact that Shale for JSF is nearing its first stable release.
Advertisement
Shale started as a proposal for Struts 2, but then ended up becoming an Apache Struts subproject instead. With over five years in the making, Shale recently graduated as a top-level Apache project, and will soon have its own Web site and download page. The Shale team believes that independent project status will make it easier to attract new developers both as contributors and as users.
Shale is a web application framework, and is
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.
Shale currently provides the following features:
View Controller A mechanism to associate a backing Java class with each JavaServer Faces view in an application, with predefined event handlers for events significant to an application developer.
Dialog Manager 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.