The JBoss Seam project released version 2.1 of the open-source Java application framework, with many and significant enhancements. The new features strengthen Seam's ability to act as a full-stack framework with which to build Ajax- and JSF-rich Web applications.
Among the new features is a security infrastructure. In a recent article, Shane Bryzak explains the main identity-management features of Seam 2.1:
Up until now, Seam has only provided the built-in components used to facilitate user authentication (the Identity component). What it didn't provide was a formal API for the creation and management of the actual user accounts that you authenticate with, leaving this pretty much up to the developer. Identity Management fills this gap by providing such an API, which endeavors to provide a consistent way of managing users and roles, no matter how they are stored in the backend. Whether they are persisted as records in a relational database, or stored as entries in an LDAP directory, Identity Management offers a standard API for creating, updating and deleting users and roles within a Seam application.
An interesting feature of Seam 2.1 is its support for presenting enterprise data in the format of Microsoft Excel spreadsheets:
[The] Microsoft Excel spreadsheet application JSF controls... are used to construct views that can render the document, and the DocumentStore component, which serves the rendered document to the user.
Wicket has been emerging as a Web application framework favored for its simplicity and code-centric development model. Seam 2.1 incorporates integration with Wicket applications:
One of the primary goals of Seam is to allow you to use "one kind of stuff" when writing your project, so when integrating with Wicket with Seam we've tried, as far as possible, to allow you to use exactly the same annotations, with exactly the same meaning in your Wicket application.
The advent of JSR 311 will likely make RESTful Java Web applications more common, and Seam 2.1 now supports this type of Web architecture as well:
Seam integrates the RESTEasy implementation of the JAX-RS specification (JSR 311). You can decide how "deep" the integration into your Seam application is going to be:
Seamless integration of RESTEasy bootstrap and configuration, automatic detection of resources and providers.
Serving HTTP/REST requests with the SeamResourceServlet, no external servlet or configuration in web.xml required.
Writing resources as Seam components, with full Seam lifecycle management and interception (bijection).
Additional features in Seam 2.1 include better support for popular caching tools, and closer integration with app servers and other Java Web APIs.