JBoss Seam

Seam is a web application framework developed by JBoss, a division of Red Hat.

Development

The project was founded in September 2005 by project lead Gavin King (JBoss), who was also the key initiator of the Object-relational mapping framework Hibernate. Pete Muir has since taken over for Gavin as the Seam project lead.

Functionality

Seam combines the two frameworks Enterprise JavaBeans (EJB3) and JavaServer Faces (JSF). One can access any back-end EJB component from the front-end by addressing it by its Seam component name.

Seam introduces the concept of bijection, taken from Spring’s dependency injection feature where objects can be in-jected or out-jected to/from assigned variables using the @In and @Out annotations.

The framework also expands the concept of contexts. Each Seam component exists within a context. The default Seam context is conversation which can span multiple pages and usually spans the whole business flow, from start to finish. The session context captures all actions of a user until he logs out or closes the browser – even multiple uses of the browser back-button.

One can automatically generate a CRUD (create-read-update-delete) web application from an existing database using the command line tool seam-gen, which is supplied with the framework.

WYSIWYG development in Seam is facilitated through the use of JBoss Tools, a set of plug-ins designed for the open source Eclipse integrated development environment.

Seam integrates out of the box, with JBoss RichFaces and ICEsoft ICEfaces AJAX libraries without needing to write Javascript code.

Among further features are a PDF document creator, e-mailing, graph creation and creation of Microsoft Excel worksheets.

Future Versions

Seam is one of the key influences behind Java Contexts and Dependency Injection (JSR-299 in the JCP). Version 3.0 promises to be a superset of WebBeans, the reference implementation of JSR-299.

Source