3.2. Seam Development Tools

JBoss Seam combines several technologies to reduce the complexity of developing modern Web 2.0 applications including:
Seam provides an interface to these different technologies through simple Plain Old Java Objects (POJO), user interface components, and XML. Seam does not distinguish between presentation-tier components and business logic components in an effort to present a simple, unified component model for the Java Enterprise Edition platform. Seam also provides mechanisms to manage application states across multiple workspaces, methods to manage workflow and pageflow through jBPM, and comprehensive integrated testing features.
The Seam Development Tools in JBoss Developer Studio allow for easy Seam application development with a number of features including:
New Seam Project wizard
The New Seam Project wizard allows the details of the Seam project to be configured, including target runtimes, target servers, project facets, and web module settings. It then generates all the necessary files for a Seam project.
The New Seam Project wizard, used to configure a Seam project.
Figure 3.5. New Seam Project wizard


Other Seam wizards
Wizards are also included for creating new Seam Actions, Seam Forms, Seam Conversations, and Seam Entities.
Entity generation
Another wizard exists for generating Seam entities. The wizard produces a set of CRUD (create-read-update-delete) Seam components and web pages. These can be generated by reverse-engineering an existing database, or by using the existing entities in the application.
Editors and views
There are a number of editors available in JBoss Developer Studio for working with Seam in addition to the Visual Page Editor including:
Seam Pages Editor
The Seam Pages Editor is used for editing the pages.xml file. The file can be edited through three different views:
  • the graphical view, which diagrammatically represents the project page-flow and exception handling;
  • the tree view, which lists the elements and attributes of the pages.xml file in a hierarchical tree for simplified editing;
  • and the source view, which allows direct editing of the pages.xml source.
The graphical view of the Seam Pages Editor, representing the project page-flow and exception handling.
Figure 3.6. Seam Pages Editor (graphical view)


Seam Components Editor
The Seam Components Editor is used for editing the components.xml file. The file can be edited through two views: the tree view and the source view, which operate similarly to the views in the Seam Pages Editor.
The Seam Components Editor, displaying the components in a hierarchical tree.
Figure 3.7. Seam Components Editor


The Seam Editors implement Content Assist and OpenOn; for more details on these technologies refer to Section 3.1, “Visual Web Tools”. Seam Editors also feature validation tools to highlight potential issues with the application.
CRUD database applications
CRUD refers to the four basic SQL commands: create, read, update, and delete. A CRUD database application uses forms to retrieve data from and submit data to a database.
CRUD database applications can be created through the New Seam Project wizard.
TestNG
TestNG (Testing, the Next Generation) is a Java-based unit testing framework. TestNG suites can be added to a project through the New Seam Action wizard.
Refer to the Seam Development Tools Reference Guide for more details.