SeamFramework.orgCommunity Documentation

Chapter 32. Built-in Seam components

32.1. Context injection components
32.2. JSF-related components
32.3. Utility components
32.4. Components for internationalization and themes
32.5. Components for controlling conversations
32.6. jBPM-related components
32.7. Security-related components
32.8. JMS-related components
32.9. Mail-related components
32.10. Infrastructural components
32.11. Miscellaneous components
32.12. Special components

This chapter describes Seam's built-in components, and their configuration properties. The built-in components will be created even if they are not listed in your components.xml file, but if you need to override default properties or specify more than one component of a certain type, components.xml is used.

Note that you can replace any of the built in components with your own implementations simply by specifying the name of one of the built in components on your own class using @Name.

The first set of built in components exist purely to support injection of various contextual objects. For example, the following component instance variable would have the Seam session context object injected:

@In private Context sessionContext;

All of these components are always installed.

The following set of components are provided to supplement JSF.


Provides a default JSF converter for properties of type java.util.Date.

This converter is automatically registered with JSF. It is provided to save a developer from having to specify a DateTimeConverter on an input field or page parameter. By default, it assumes the type to be a date (as opposed to a time or date plus time) and uses the short input style adjusted to the Locale of the user. For Locale.US, the input pattern is mm/DD/yy. However, to comply with Y2K, the year is changed from two digits to four (e.g., mm/DD/yyyy).

It's possible to override the input pattern globally using component configuration. Consult the JavaDoc for this class to see examples.


Allows faces success messages to propagate across a browser redirect.


A convenient API for performing redirects with parameters (this is especially useful for bookmarkable search results screens).


A convenient API for sending HTTP errors.


A component (session-scoped by default) responsible for maintaining a collection of render stamps. A render stamp is an indicator as to whether a form which was rendered has been submitted. This store is useful when the client-side state saving method of JSF is being used because it puts the determination of whether a form has been posted in the control of the server rather than in the component tree which is maintained on the client.

To unbind this check from the session (which is one of the main design goals of client-side state saving) an implementation must be provided that stores the render stamps in the application (valid as long as the application is running) or the database (valid across server restarts).

These components are installed when the class javax.faces.context.FacesContext is available on the classpath.

These components are merely useful.

All of these components are always installed.

The next group of components make it easy to build internationalized user interfaces using Seam.


The Seam locale.

The Seam timezone. The timezone is session scoped.


The Seam resource bundle. The resource bundle is stateless. The Seam resource bundle performs a depth-first search for keys in a list of Java resource bundles.


The resource loader provides access to application resources and resource bundles.

Supports selection of the locale either at configuration time, or by the user at runtime.

Supports selection of the timezone either at configuration time, or by the user at runtime.

A map containing internationalized messages rendered from message templates defined in the Seam resource bundle.


Supports selection of the theme either at configuration time, or by the user at runtime.


A map containing theme entries.

All of these components are always installed.

The next group of components allow control of conversations by the application or user interface.


API for application control of attributes of the current Seam conversation.


Manager component for the conversation list.


Manager component for the conversation stack (breadcrumbs).


The conversation switcher.

All of these components are always installed.

These components are for use with jBPM.


API control of Seam pageflows.

API for application control of attributes of the jBPM actor associated with the current session.


API for application control of the jBPM transition for the current task.


API for programmatic control of the association between the conversation and business process.


Manager component for the jBPM TaskInstance.


Manager component for the jBPM ProcessInstance.


Manager component for an event-scoped JbpmContext.


Manager component for the jBPM task list.


Manager component for the jBPM pooled task list.


Manager component for the jBPM task lists.


Action handler for pooled task assignment.


Manager for the process instance task list.


The process instance task list.

All of these components are installed whenever the component org.jboss.seam.bpm.jbpm is installed.

These components relate to web-tier security.

These components are for use with managed TopicPublishers and QueueSenders (see below).

These components are for use with Seam's Email support

These components provide critical platform infrastructure. You can install a component which isn't installed by default by setting install="true" on the component in components.xml.


Initialization settings for Seam. Always installed.


Internal component for Seam page and conversation context management. Always installed.


Internal component for Seam workspace management. Always installed.


Bootstraps a JbpmConfiguration. Install as class org.jboss.seam.bpm.Jbpm.


Internal session-scoped component recording the active long-running conversations between requests.


Internal page-scoped component recording the conversation context associated with a page.


Internal component recording the persistence contexts which were used in the current conversation.


Manages a JMS QueueConnection. Installed whenever managed QueueSender is installed.


Manages a JMS TopicConnection. Installed whenever managed TopicPublisher is installed.


Abstraction layer for non-standardized features of JPA provider.


Caches instances of Hibernate Validator ClassValidator.


Allows the application to determine whether validation failed or was successful.


Support for the Seam Debug Page.


Support for the Seam Debug Page.


Internal component for exception handling.


API for controlling transactions and abstracting the underlying transaction management implementation behind a JTA-compatible interface.


Decides if an action expression in an incoming URL is safe. This is done by checking that the action expression exists in the view.

These components don't fit into

Certain special Seam component classes are installable multiple times under names specified in the Seam configuration. For example, the following lines in components.xml install and configure two Seam components:

<component name="bookingDatabase"
    <property name="persistenceUnitJndiName">java:/comp/emf/bookingPersistence</property>

<component name="userDatabase"
    <property name="persistenceUnitJndiName">java:/comp/emf/userPersistence</property>

The Seam component names are bookingDatabase and userDatabase.

<entityManager>, org.jboss.seam.persistence.ManagedPersistenceContext

Manager component for a conversation scoped managed EntityManager with an extended persistence context.

<entityManagerFactory>, org.jboss.seam.persistence.EntityManagerFactory

Manages a JPA EntityManagerFactory. This is most useful when using JPA outside of an EJB 3.0 supporting environment.

See the API JavaDoc for further configuration properties.

<session>, org.jboss.seam.persistence.ManagedSession

Manager component for a conversation scoped managed Hibernate Session.

<sessionFactory>, org.jboss.seam.persistence.HibernateSessionFactory

Manages a Hibernate SessionFactory.

See the API JavaDoc for further configuration properties.

<managedQueueSender>, org.jboss.seam.jms.ManagedQueueSender

Manager component for an event scoped managed JMS QueueSender.

<managedTopicPublisher>, org.jboss.seam.jms.ManagedTopicPublisher

Manager component for an event scoped managed JMS TopicPublisher.

<managedWorkingMemory>, org.jboss.seam.drools.ManagedWorkingMemory

Manager component for a conversation scoped managed Drools WorkingMemory.

<ruleBase>, org.jboss.seam.drools.RuleBase

Manager component for an application scoped Drools RuleBase. Note that this is not really intended for production usage, since it does not support dynamic installation of new rules.

<entityHome>, org.jboss.seam.framework.EntityHome

<hibernateEntityHome>, org.jboss.seam.framework.HibernateEntityHome

<entityQuery>, org.jboss.seam.framework.EntityQuery

<hibernateEntityQuery>, org.jboss.seam.framework.HibernateEntityQuery