Introduction
Overview of EJB and Java Persistence API (JPA)
Goals of EJB, EJB in the Java EE architecture
EJB 3.0 Overview
Session Beans, Persistent Entities, Message Driven Beans
Lab: JBoss AS Server setup and introduction
Session Beans
Session Bean Overview
Services provided, Stateless and Stateful Beans
Defining a Session Bean - EJB 3 Annotations
The Bean Implementation, Remote and Local Business Interface
Packaging and Deployment
ejb-jar file, Deployment Descriptors in EJB 3
EAR file
The EJB Container
Lab: Creating a Stateless Session Bean
JNDI Overview
Distributed Naming and Lookup
Context and InitialContext
Using JNDI
Writing an EJB 3 Client
Client View of a Session Bean
PortableRemoteObject and Casting
Running the Client
Lab: Creating an EJB Client
Additional Capabilities
Resources and Dependency Injection
EJB referencing another EJB
Referencing Resources, Environment Entries
Connection Factories (DataSource and others)
Lab: Using Dependency Injection
Lab: Creating and Using Environment Entries
Session Bean Lifecycle and Interceptors
Stateless Session Bean Lifecycle
Business Method Interceptors, InvocationContext, Lifecycle Callback Interceptors, Interceptor Classes
Lab: Working with Interceptors
Stateful Session Beans
Overview
Defining, Client Relationship
Lifecycle, Activation, Passivation
Lab: Stateful Session Beans
Timer Service
Overview and usage
Message-Driven Beans
Overview of Messaging Systems
Messaging, Loose Coupling
Pub/Sub, Point2Point
Overview of JMS API
Overview and Structure
ConnectionFactory and Destination
JMS Producer and Consumer Client example
JMS Messages
Message-Driven Beans (MDB)
Overview and Goals
@MessageDriven and MDB example
Configuring with activationConfig
State Diagram and Interceptors
Lab: Message Driven Beans
Transactions and Security
Overview of Transactions and Transactional Systems
ACID, Transaction Managers, Resource Managers
Transactions in EJB 3
Declarative Transaction Management
Transaction Attributes and Transactional Scope
Transaction Scenarios and Bean-Managed Tx
Lab: Working with Transactions
Security
Java EE Security Overview (Role-based)
@RolesAllowed, @PermitAll
Programmatic Security
Lab: Integrating EJB and Java EE Security
Exceptions
Exception Overview
Checked and Unchecked Exceptions
Exceptions in EJB 3
Application Exceptions, System Exceptions
EJB 3 Best Practices
When to Use, Coarse-Grained Business Interfaces, Session Façade, Transaction Guidelines, Clustering
Introduction to Java Persistence API (JPA)
Overview
Persistence Layers, Object-Relational Mapping (ORM), JDBC
JPA Overview
Mapping with JPA
Entities and @Entity, ids and @Id,
Generated Id Values
Basic Mapping Types
Lab: Mapping an Entity Class
EntityManager
Persisting to the DB, the EntityManager,
Persistence Units and Configuration
Injecting an EntityManager
Retrieving Persistent Entities
Lab: Using the EnityManager to persist and find an Entity
Updates and Queries
Inserting and Updating
Transient, Persistent, Detached, Removed
Persisting new Entities, Updating a Persistent Instance
Lab: Inserting and Updating an Entity
Querying and JPQL
Object Based Queries, Select statements, WHERE clause
Named Queries
Lab: Creating and Using JPQL Queries
Versioning and Optimistic Locking
Detached Instances
Versioning and Optimistic Locking in EJB
[Optional] Session 9: Overview of Entity Relationships
Object Relationships Overview
Mapping Overview (1-1, 1-N, N-1, N-N)
Unidirectional and Bidirectional
Owner, Invoice and Join Columns
Lazy and Eager Loading, and Cascading
Inheritance Mapping Overview
[Optional] Session 10: Additional JPA Capabilities
Versioning Overview
Queries - Projection, Aggregate, Bulk Update/Delete
Embedded Objects
EJB 3 and Java SE