WA1627 Java Enterprise Programming with JBoss Seam 2.0 Training and Courseware Course Outline

1. Overview of JBoss Seam

  • The Missing Framework?
  • Problems Solved by Seam
  • Role of JSF and EJB 3
  • Seam Example
 

2. Seam development tools

  • RedHat Developer Studio
  • Seam Gen
  • Eclipse
  • Useful Eclipse Plug-ins
 

3. Seam Contextual Component Model

  • Types of Seam Components
  • Seam Contexts
  • Seam Component Names
  • Seam Bi-jection
  • Context Search Priority
  • Granularity
 

4. Overview of JSF

  • What is JavaServer Faces (JSF)?
  • Why Use JSF?
  • Nature of a JSF Application
  • The Sun Reference Implementation (RI)
  • JSF and MVC
  • Faces Servlet
  • Managed Bean
  • The View
  • A Simple JSF Application
  • The Input Form: form.jsp
  • The Result: thanks.jsp
  • The Controller: AddressBean
  • Page Flow or Navigation Rule
  • How Does the Application Work?
  • Under the Covers: The Rendered Form HTML
  • Under the Covers: The Layout Tree
 

5. Seam and JSF

  • JSF is not Required
  • Using Facelets with Seam
  • Using RichFaces with Seam
  • Seam UI Tags
  • Seam JSF EL Enhancements
  • Internationalization with Seam
  • Skinnable Themes for Seam Applications
 

6. Unit Testing

  • Overview of the TestNG Framework
  • Simulating Dependency Bi-jection
  • Mocking Databases and Transactions
  • TestNG Integration with Development Tools
 

7. Error Handling and Debugging

  • Problem with Standard Error Pages
  • Seam Exception Filter
  • Annotating Application Exceptions
  • Redirecting System Exceptions
  • Accessing Debug Information
  • Logging
  • Options for Hot Deployment
 

8. Overview of EJB 3

  • Objectives
  • Need for EJBs
  • Distributed Computing
  • Distributed Transaction
  • Distributed Security
  • What are EJBs?
  • Main Characteristics of EJBs
  • EJB Remote Method Call
  • EJB Architecture Components
  • EJB Client
  • EJB JAR File
  • EJB Container
  • EJB Server
  • Enterprise JavaBeans
  • Session Beans
  • Entity Beans
  • Java Persistence API - Entities
  • Message-Driven Beans (MDBs)
  • EJB Specification
  • Summary
 

9. Stateful Seam Applications

  • Seam Conversations
  • Long Running Conversations
  • Workspaces and Concurrent Conversations
  • Seam and Transaction Management
  • Seam "Atomic Conversation"
 

10. Overview of JPA

  • Objectives
  • Data Persistence
  • Java Persistence API
  • Entities
  • Session Beans Vs Entities
  • Entities
  • Persisting and Retrieving Data
  • Entities - Example
  • Descriptor File META-INF/persistence.xml
  • Accessing Entities
  • Persistence Context
  • Working With the EntityManager Interface
  • Accessing Entities Using Stateless Session Beans
  • Updating Data
  • Entity Lifecycle
  • Life-Cycle Callbacks
  • Example: Internal callback
  • External Callback Class
  • Listener Class - Example
  • Synchronizing with Databases
  • Entity Lookup
  • EJBQL (EJB Query Language)
  • EJB Query Language
  • EJBQL: Simple examples
  • EJBQL: SELECT clause
  • EJBQL: SELECT clause
  • EJBQL: FROM clause
  • EJBQL: WHERE clause
  • EJBQL: WHERE clause
  • Using EJBQL - Dynamic Query
  • Using EJBQL - Named Query
  • Summary
 

11. Seam and ORM

  • Seam DAO Components
  • Queries
  • Displaying Multi-page Results
  • Reverse-engineer CRUD Applications with Seam Gen
  • Seam-managed Persistence Contexts
 

12. Seam Enhancements for Applications

  • Bookmarkable Web Pages
  • Clickable JSF Data Tables
  • Validating Input Data
  • Displaying Rich Text
  • PDF Output
  • Template-based Email
 

13. Integration Testing

  • Simulating JSF Interactions
  • Using JSF EL in Tests
  • Accessing Seam Components Through the Seam API
 

14. AJAX Overview

  • Objectives
  • What is AJAX?
  • A Simple Example
  • The Old Way
  • The AJAX Way
  • Two Key Aspects of AJAX
  • What are the Advantages of the AJAX Approach?
  • AJAX Technologies
  • The Basic AJAX API
  • Creating the XMLHttpRequest Object
  • The XMLHttpRequest Object Basics
  • Complete Example
  • The Timeline
 

15. Seam AJAX Support

  • Using ICEfaces with Seam
  • Adding AJAX to Existing Components with Ajax4jsf
  • Direct JavaScript Integration
  • Using the Dojo Toolkit with Seam
  • Concurrency in Seam
 

16. Seam Web Services

  • Using Seam Components with Web Services
  • Configuration and Packaging
  • Seam Conversations with Web Services
  • Stateless Web Service Facades to Conversational Seam Components
 

17. Seam Rule-based Security

  • Authentication
  • Declarative Access Control
  • Method-level Access Control
  • Rule-based Access Control with JBoss Rules
  • Per-instance Access Rules
  • Configuring JBoss Rules
  • Implementing a Captcha Test
 

18. Using Seam with the Spring Framework

  • Injecting Seam components into Spring beans
  • Injecting Spring beans into Seam components
  • Making a Spring bean into a Seam component
  • Seam-scoped Spring beans
  • Spring Application Context as a Seam Component
  • Using Spring PlatformTransactionManagement
  • Using a Seam Managed Persistence Context in Spring
  • Using a Seam Managed Hibernate Session in Spring
 

19. Seam Without EJB

  • Using POJOs as Seam Components
  • Seam POJOs and JPA
  • Hibernate POJOs
  • Transaction Control Without EJB
  • Seam Features Unavailable Without EJB
 

20. Seam Production Deployment

  • Summary of Seam Configuration
  • Configuring and Packaging Seam in Java EE 5
  • Configuring and Packaging Seam in J2EE
  • Configuration for a Production Database
  • JBoss
  • Glassfish and Sun Java System Application Server
  • Apache Geronimo and WebSphere Community Edition
  • WebLogic 10
  • WebSphere 6.1
  • WebLogic 9.x
  • Tomcat
  • Configuring Seam in a Portal
 

Appendix A. Seam and JBoss jBPM Business Processes

  • jBPM Basics
  • Creating a Business Process
  • Working with Tasks
  • Stateful Pageflows
  • Using JBoss Rules from a Process Definition
  • jBPM Configuration with Seam
 
Notice: This course is still under development and the outline is subject to revisions.