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.