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.