Easel
Easel provides a framework for producing basic CRUD web
user interfaces automatically from
Hibernate annotations and other
metadata sources. This is similar to the approach taken by
Trails and
Naked Objects.
Our principal objectives are:
- promote the DRY (don't repeat yourself) principle. If you ever got tired of copy-pasting the same JSP page and Struts action dozens of times to do basically the same thing, this is for you.
- You shouldn't have to
specify field sizes in two different places, for example. The user interface
should be able to take advantage of persistence layer metadata such as
required fields, max field sizes, etc.
- The amount of work to add an additional field to an existing CRUD
form should be minimal; you shouldn't have to touch 5 different files to
add one data element.
- decouple presentation framework from back-end: this is the primary difference between Easel and Trails. (Trails is tightly coupled to Tapestry.) We currently support JSF/MyFaces, but could easily be extended to support Struts (New or Classic), Tapestry, etc. We do this by leveraging lightweight containers like Spring.
- Provide a generic back-end as well, which could be used directly as
a remote service for AJAX, SOAP, etc.
How it works
Easel provides a generic business/DAO service for general CRUD operations,
and a generic JSF backing bean to handle standard CRUD UI operations. Both
of these objects work directly off of the Hibernate 3 annotations.
The generic JSP (view layer) is not yet completed.
Special thanks to Vecna Technologies for
providing sponsorship of this project.