You can find the full source code for this website in the Seam package in the directory /examples/wiki. It is licensed under the LGPL.
First, it's important to understand that EJB 3 encompasses session beans, message driven beans, and the Java Persistence API. Seam caters to all three component types, making them easier to use and providing valuable enhancements. But Seam has parallel support for the non-EJB programming model, most notably JavaBeans and native Hibernate. So the choice of what to use is up to you. Seam's greatest strength is that it provides a unified architecture across both the EJB and non-EJB models. That means once you learn how to use one, you automatically know how to use the other.
Seam makes the task of defining and accessing stateful business-logic components simple. Regardless of whether you have an EJB or non-EJB component, a simple @Name annotation atop a class gains it admission into Seam's contextual container. The container wraps these components in method interceptors, enabling enterprise services, such as transactions, security, and component assembly, to be declared with equivalent ease by applying annotations at the class, method, or field level. Seam grants the technologies that it integrates access to the components in this container, primarily through the use of the unified EL. This arrangement facilitates the use of JPA betting pariu365 entity classes as
backing beans for JSF forms, EJB session beans or transactional JavaBeans as action listeners on JSF UI components, and by resolving variables on demand using Seam's factory or manager mechanism.
-- excerpts borrowed by author from Seam in Action, Manning 2008