The Seam development team is pleased to announce the final release of Seam 3.0. Seam is a modular collection of portable extensions and tooling for Java EE6. This latest version represents a significant milestone in Seam's history, as it is the first release to be based on the standardized component model defined by the CDI (JSR-299 Java Contexts and Dependency Injection) specification.
Seam's goal is to enable developers to create rich, standards-based internet applications by solving many of the challenges encountered when developing software in today's connected world. It achieves this by providing an integrated set of feature-centric modules, each targetted at a single area of concern. This modular design also allows users the choice of using individual Seam modules based on the requirements of their project, without forcing them to adopt the overhead of a monolithic framework stack.
The following table contains a list of the modules included in the Seam 3.0 release, along with a brief description of their features.
Solder | Provides a collection of useful features for portable extension developers, and generally useful annotations and more for CDI-based applications. |
Catch | Provides a simple infrastructure based on the CDI event bus to allow developers to establish a unified and robust exception handling process. |
Config | Provides the capability to configure beans via alternate bean metadata sources, such as an XML-based configuration file. |
Faces | Further unifies JSF and CDI by providing additional features not defined by the specification, and provides JSF integration with other Seam modules. |
International | Provides a set of language and locale-based features to allow complete internationalization of your internet application. |
Persistence | Enables transactions and persistence features for managed beans, and provides a simplified transaction API. |
Remoting | Allows web-based applications to interact with the server-side component model via AJAX. |
REST | Provides JAX-RS integration for your Seam-based application. |
Security | Authentication and authorization services for your Java EE6 application. |
Servlet | Unifies the Servlet and CDI programming models via an event bridge, and provides producers for implicit Servlet objects. |
Validation | Provides enhanced validation features based on Hibernate Validator. |
Wicket | Integrates the CDI programming model and other portable Seam enhancements with Apache Wicket. |
Maven Users
The Seam BOM (Bill Of Materials) is a Maven POM artifact that is provided as a convenience for your Seam application. It declares the versions for all Seam modules and third party libraries that are used in the Seam stack. To use Seam in your Maven-based project, it is first recommended that you define the Seam version you wish to use by declaring the following property value:
<properties> <seam.version>3.0.0.Final</seam.version> </properties>
Next, add the following section to your project's POM file to import the Seam BOM:
<dependencyManagement> <dependencies> <dependency> <groupId>org.jboss.seam</groupId> <artifactId>seam-bom</artifactId> <version>${seam.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
After this, it is a simple matter of declaring which Seam modules you wish to use in your project. For example, if you wish to use the Seam Catch module in your project, simply add the following dependency:
<dependency> <groupId>org.jboss.seam.catch</groupId> <artifactId>seam-catch</artifactId> </dependency>
Please note that the Seam artifacts are published to the JBoss Community Maven Repository. See this page for more details on configuring Maven to use this repository.
Glassfish Users
If you use Glassfish 3.1 (or earlier) you must update the version of Weld contained inside your Glassfish installation. Please refer to the instructions at http://www.seamframework.org/Seam3/Compatibility for further information.
Downloads
Seam is available for download as a bundled distribution that includes all the modules, or alternatively as individual downloads for each module.
Bundled distribution: http://sourceforge.net/projects/jboss/files/Seam/3/3.0.0.Final/
Individual module downloads: http://www.seamframework.org/Seam3/Downloads
Documentation
Documentation for individual modules can also be found on the Seam documentation page.
User Forums
The Seam 3 user forums can be found at http://www.seamframework.org/Community/Seam3Users.
IRC
The Seam community is very active on IRC. Join us on the #seam or #seam-dev channels on Freenode to chat with the Seam developers. Find out more on the Seam Chat page.
Tooling
The Seam distribution comes bundled with Seam Forge, which replaces the seam-gen tool that was part of earlier versions of Seam. Forge is a rapid application development tool for Java EE6, which provides many productivity-enhancing features.
JBoss Tools 3.2 also supports Seam 3 development with its excellent CDI tooling. Some of the new features of Seam 3 are not yet covered, but are on the roadmap for JBoss Tools 3.3. You can find an informative walkthrough of the CDI tooling features here.
GWT
GWT support for CDI is provided by Errai. Please refer to the Errai reference documentation for details on integrating your GWT-based application with a CDI-based backend.
Acknowledgements
The Seam development team consists of a small team of full-time developers, plus a rapidly growing number of community contributors! Many of the modules in Seam 3 are led by community members who love and believe in Open Source software. Their ambition, innovation and ideas have made this important milestone possible! The entire Seam community should recognize and appreciate them for their dedication to the project, which is very much a collective community effort. While there are too many names to mention individually in this post, the full list of Seam contributors can be found here.