Update cookies preferences

JBoss Seam: Simplicity and Power Beyond Java EE [Paperback / softback]

3.17/5 (24 ratings by Goodreads)
  • Format: Paperback / softback, 432 pages, height x width x depth: 234x180x26 mm, weight: 812 g
  • Pub. Date: 03-May-2007
  • Publisher: Prentice Hall
  • ISBN-10: 0131347969
  • ISBN-13: 9780131347960
Other books in subject:
  • Paperback / softback
  • Price: 47,79 €*
  • * This title is out of print. Used copies may be available, but delivery only inside Baltic States
  • This title is out of print. Used copies may be available, but delivery only inside Baltic States.
  • Quantity:
  • Add to basket
  • Add to Wishlist
  • Format: Paperback / softback, 432 pages, height x width x depth: 234x180x26 mm, weight: 812 g
  • Pub. Date: 03-May-2007
  • Publisher: Prentice Hall
  • ISBN-10: 0131347969
  • ISBN-13: 9780131347960
Other books in subject:
A new edition of this title is available, ISBN-10: 0137129394 ISBN-13: 9780137129393

 

 

Discover JBoss Seam: the Unified Framework for Simpler, More Powerful Web Development

 

JBoss Seam integrates EJB 3.0 and JSF components under a unified framework that simplifies and accelerates Java EE web development. Now, JBoss Seams project leader and technology evangelist take you inside this powerful new technology, showing exactly how to put it to work. 

 

Michael Yuan and Thomas Heute show how JBoss Seam enables you to create web applications that would have been difficult or impossible with previous Java frameworks. Through hands-on examples and a complete case study application, youll learn how to leverage JBoss Seams breakthrough state management capabilities; integrate business processes and rules; use AJAX with Seam; and deploy your application into production, one step at a time. Coverage includes

 

How JBoss Seam builds onand goes beyondthe Java EE platform

Using the Stateful Framework: conversations, workspaces, concurrent conversations, and transactions

Integrating the web and data components: validation, clickable data tables, and bookmarkable web pages

Creating AJAX and custom UI components, enabling AJAX for existing JSF components, and JavaScript integration via Seam Remoting

Managing business processes, defining stateful pageflows, and implementing rule-based security

Testing and optimizing JBoss Seam applications

Deploying in diverse environments: with Tomcat, with production databases, in clusters, without EJB 3, and more

 

* Download source code for this books case study application at http://michaelyuan.com/seam/.

 

www.prenhallprofessional.com

www.jboss.com

 

About This Book



About the Authors



Acknowledgments

 





Part I: Getting Started



Chapter 1: What Is Seam?



Chapter 2: Seam Hello World



Chapter 3: Recommended JSF Enhancements



Chapter 4: Rapid Application Development Tools



Part II: Stateful Applications Made Easy



Chapter 5: An Introduction to Stateful Framework



Chapter 6: A Simple Stateful Application



Chapter 7: Conversations



Chapter 8: Workspaces and Concurrent Conversations



Chapter 9: Transactions



Part III: Integrating Web and Data Components



Chapter 10: Validate Input Data



Chapter 11: Clickable Data Tables



Chapter 12: Bookmarkable Web Pages



Chapter 13: The Seam CRUD Application Framework



Chapter 14: Failing Gracefully



Part IV: AJAX Support



Chapter 15: Custom and AJAX UI Components



Chapter 16: Enabling AJAX for Existing Components



Chapter 17: Direct JavaScript Integration



Part V: Business Processes and Rules



Chapter 18: Managing Business Processes



Chapter 19: Stateful Pageflows



Chapter 20: Rule-Based Security Framework



Part VI: Testing Seam Applications



Chapter 21: Unit Testing



Chapter 22: Integration Testing



Part VII: Production Deployment



Chapter 23: Java EE 5.0 Deployment



Chapter 24: Seam Without EJB3



Chapter 25: Tomcat Deployment



Chapter 26: Using a Production Database



Chapter 27: Performance Tuning and Clustering



 

Appendix A: Installing and Deploying JBoss AS



Appendix B: Using Example Applications as Templates



Index



 

More info

JBoss Seam sits on top of the Java EE 5.0 frameworks to provide a consistent and easy-to-understand programming model for all components in an enterprise web application. It makes robust applications and business process-driven applications a breeze to develop. In other words, Seam is all about developer productivity and application scalability. In this book, the authors show how Seam can make development easier. They cover Web application examples and explain exactly what Seam does and its key design principles. This book will help any developer better understand how Seam works in applications. In a nutshell Seam simplifies overhead for Java EE applications, and at the same time, adds powerful new features beyond Java EE 5.0.
About This Book xv
About the Authors xvi
Acknowledgments xvii
I. Getting Started
1(74)
What Is Seam
3(8)
Integrate and Enhance Java EE Frameworks
3(2)
A Web Frameworks That Understands ORM
5(1)
Designed for Stateful Web Applications
5(2)
Web 2.0 Ready
7(1)
POJO Services via Dependency Bijection
7(1)
Configuration by Exception
8(1)
Avoid XML Abuse
8(1)
Designed for Testing
9(1)
Great Tools Support
10(1)
Let's Start Coding!
10(1)
Seam Hello World
11(20)
Create a Data Model
13(1)
Map the Data Model to a Web Form
14(1)
Handle Web Events
15(2)
More on the Seam Programming Model
17(6)
Seam POJO Components
17(2)
Seam Built-in Components
19(1)
Ease of Testing
20(1)
Getter/Setter-Based Bijection
20(1)
Avoid Excessive Bijection
21(1)
Page Navigation in JSF
22(1)
Access Database via the Entity Manager
23(1)
Configuration and Packaging
23(7)
The War file
26(2)
The Seam Components JAR
28(2)
How Is This Simple?
30(1)
Recommended JSF Enhancements
31(24)
An Introduction to Facelets
32(8)
Why Facelets?
32(2)
A Facelets Hello World
34(1)
Use Facelets as a Template Engine
35(4)
Data List Component
39(1)
Seam JSF Enhancements
40(4)
Seam UI Tags
40(2)
Seam JSF EL Enhancement
42(1)
Use El Everywhere
43(1)
Seam Filter
44(1)
Stateful JSF
44(1)
Add Facelets and Seam UI Support
44(3)
PDF, Email, and Rich Text
47(8)
Generate PDF Reports
48(2)
Template-Based Email
50(3)
Display Rich Text
53(2)
Rapid Application Development Tools
55(20)
Prerequisites
55(1)
A Quick Tutorial
56(9)
Set Up Seam Gen
56(4)
Generate a Skeleton Application
60(1)
Understand the Profiles
61(2)
Develop the Application
63(1)
Build and Deploy
63(1)
Run Test Cases
64(1)
Work with IDEs
65(6)
NetBeans
65(4)
Eclipse
69(2)
Generate Crud Application from Database
71(4)
II. Stateful Applications Made Easy
75(60)
An Introduction to Stateful Framework
77(10)
Correct Usage of ORM
77(3)
Better Performance
80(1)
Better Browser Navigation Support
81(1)
Less Memory Leak
82(1)
High Granularity Component Lifecycle
83(1)
Reduce Boilerplate Code
84(3)
A Simple Stateful Application
87(12)
Stateful Components
88(7)
Stateful Entity Bean
91(1)
Stateful Session Bean
91(2)
Stateful Component Lifecycle
93(1)
Factory Methods
94(1)
Page Navigation Flow
95(4)
Conversations
99(18)
The Default Conversation Scope
100(3)
Display JSF Messages
102(1)
Long Running Conversations
103(13)
Define a Long-Running Conversational Component
107(1)
Start a Conversation
108(1)
Inside the Conversation
109(2)
End the Conversation
111(3)
Links and Buttons
114(2)
New Frontiers
116(1)
Workspaces and Concurrent Conversations
117(10)
What Is a Workspace?
117(3)
Workspace Switcher
120(3)
Carry a Conversation Across Workspaces
123(1)
Managing the Conversation ID
124(3)
Transactions
127(8)
Managing a Transaction
128(2)
Forcing a Transaction Rollback
130(2)
Rolling Back Transactions via Checked Exceptions
130(1)
Rolling Back Transactions via Return Values
131(1)
Atomic Conversation (Web Transaction)
132(3)
Manual Flush of the Persistence Context
132(1)
One Transaction per Conversation
133(2)
III. Integrating Web and Data Components
135(60)
Validating Input Data
137(12)
Form-Validation Basics
137(2)
Validation Annotations on the Entity Bean
139(3)
Triggering the Validation Action
142(3)
Display Error Messages on the Web Form
145(2)
Use JSF Custom Validators
147(2)
Clickable Data Tables
149(8)
Implement a Clickable Data Table
150(4)
Display the Data Table
150(2)
Inject Selected Object into Event Handler
152(1)
Use Extended EL in Data Table
153(1)
Seam Data-Binding Framework
154(3)
Bookmarkable Web Pages
157(12)
Using Page Parameters
158(4)
The Java-Centric Approach
162(7)
Obtaining Query Parameters in an HTTP GET Request
163(1)
Load Data for the Page
164(1)
The @Factory Method
164(1)
The @Create Method
165(1)
Further Processing from the Bookmarked Page
166(3)
The Seam CRUD Application Framework
169(14)
Data Access Objects (DAOs)
169(1)
Seam CRUD DAOs Are POJOs
170(1)
The Declarative Seam DAO Component
171(5)
Use Simpler Names for the Entity Object
173(1)
Retrieving and Displaying an Entity Object
174(1)
Initializing a New Entity Instance
175(1)
Success Messages
175(1)
Queries
176(7)
Dynamic Queries
177(2)
Displaying Multipage Query Results
179(4)
Failing Gracefully
183(12)
Why Not Standard Servlet Error Pages?
184(1)
Set Up the Exception Filter
185(1)
Annotate Exceptions
186(2)
Use pages.xml for System Exceptions
188(2)
Debug Information Page
190(5)
The Facelets Debug Page
190(2)
The Seam Debug Page
192(3)
IV. AJAX Support
195(48)
Custom and AJAX UI Components
197(14)
Partial Form Submission Example
199(3)
Auto-complete Text Input Example
202(3)
Use ICEfaces with Seam
205(3)
Other JSF Component Libraries
208(3)
Enabling AJAX for Existing Components
211(14)
AJAX Validator Example
212(2)
Programmatic AJAX
214(3)
AJAX Buttons
217(2)
AJAX Containers
219(1)
Other Goodies
220(1)
Configuring Ajax4jsf
221(2)
Pros and Cons
223(2)
Direct JavaScript Integration
225(18)
AJAX Name Validation Example (Reloaded)
225(7)
Server-Side Component
226(2)
Triggering a JavaScript Event on the Web Page
228(1)
Making an AJAX Call
229(3)
The AJAX Progress Bar
232(4)
Seam Components
232(2)
Accessing Seam Components from JavaScript
234(2)
Integrating the Dojo Toolkit
236(7)
Visual Effects
236(2)
Input Widgets
238(5)
V. Business Processes and Rules
243(46)
Managing Business Processes
245(22)
jBPM Basics and Vocabulary
246(3)
Application Users and jBPM Actors
249(2)
Creating a Business Process
251(6)
Defining the Process
252(2)
Creating a Business Process Instance
254(1)
Binding Data Objects in Process Scope
255(2)
Managing Tasks
257(6)
Implementing Business Logic for Tasks
257(2)
Specifying a Task to Work On
259(1)
Selecting a Task in the UI
260(1)
The pooledTaskInstanceList Component
261(1)
The pooledTask Component
261(1)
The taskInstanceList Component
262(1)
The taskInstanceListBy Type Component
262(1)
jBPM Libraries and Configuration
263(4)
Stateful Pageflows
267(10)
Stateful Navigation Rules in pages.xml
267(3)
Associating a Business Process with a Web Page
270(4)
Pageflow and Stateful Conversation
274(1)
Configuration
275(2)
Rule-Based Security Framework
277(12)
Authentication and User Roles
277(3)
Declarative Access Control
280(3)
Web Pages
280(1)
UI Components
281(1)
Method-Level Access Control
282(1)
Rule-Based Access Control
283(6)
Simple Access Rules
283(3)
Per Instance Access Rules
286(1)
Configuring JBoss Rules
287(2)
VI. Testing Seam Applications
289(22)
Unit Testing
291(12)
A Simple TestNG Test Case
293(2)
Simulating Dependency Bijection
295(2)
Mocking the Database and Transaction
297(2)
Loading the Test Infrastructure
299(4)
Integration Testing
303(8)
A Complete Test Script
304(3)
Simulating JSF Interactions
304(2)
Using JSF EL Expressions
306(1)
Accessing Seam Components Without the EL
307(4)
Obtaining a Seam Component
307(1)
Binding Values to the Component
308(1)
Invoking UI Event Handler Method
308(1)
Checking the Response
309(2)
VII. Production Deployment
311(54)
Java EE 5.0 Deployment
313(6)
JBoss AS 4.0.5
313(1)
JBoss AS 4.2.x and 5.x
314(1)
GlassFish
315(4)
Seam Without EJB3
319(14)
Seam POJO with JPA
320(7)
A Seam POJO Example
320(2)
Configuration
322(3)
Packaging
325(2)
Using Hibernate POJOs and API
327(6)
Using the Hibernate API
328(1)
Configuration
329(4)
Tomcat Deployment
333(12)
Packaging a POJO Application for Tomcat
335(4)
Bundling Support JARs
335(2)
Configuring the Transactional DataSource
337(2)
Bootstrapping the JBoss MicroContainer
339(1)
Packaging an EJB3 Application for Tomcat
339(6)
Bundling Necessary JARs in the War File
340(1)
Bundling Embeddable EJB3 Configuration Files
341(1)
Bootstrapping the JBoss MicroContainer
342(1)
Using an Alternative Data Source
343(2)
Using a Production Database
345(6)
Installing and Setting Up the Database
345(2)
Installing Database Driver
347(1)
Defining a DataSource
347(1)
Configuring the Persistence Engine
348(3)
Performance Tuning and Clustering
351(14)
Tuning Performance on a Single Server
352(9)
Avoid Call by Value
352(1)
JVM Options
353(1)
Reducing Logging
354(1)
Tuning the HTTP Thread Pool
355(1)
Choosing between Client- and Server-Side State Saving
356(1)
Using a Production Data Source
357(1)
Using a Second-Level Database Cache
358(2)
Using Database Transactions Carefully
360(1)
Clustering for Scalability and Failover
361(4)
Sticky Session Load Balancing
362(1)
State Replication
363(1)
Failover Architectures
363(2)
Installing and Deploying JBoss AS
365(6)
JDK 5.0 Is Required
365(1)
Installing JBoss AS
366(3)
Deploying and Running Applications
369(2)
Using Example Applications as Templates
371(16)
Simple EJB3-Based Web Applications
371(7)
Pojo-Based Web Applications
378(5)
Tomcat Applications
383(2)
More Complex Applications
385(2)
Index 387


Michael Yuan is a product manager and technical evangelist at Red Hat Inc. working on Seam, JBoss Application Server, and other middleware products. He contributes code to the Seam project and writes about Seam in his blog (http://www.michaelyuan.com/blog/). Before joining JBoss, Michael was a software consultant for mobile end-to-end applications. He published three books on mobile technologies, including Enterprise J2ME and Nokia Smartphone Hacks.

 

After being a contributor to the pre-JBoss Portal project, Thomas Heute was hired by JBoss Inc. in 2004. He started as a software developer in the JBoss Portal team, and then became the colead of the JBoss Seam project in 2005, with the vision to bring EJB3 closer to JSF. At the end of 2006 Thomas came back to pursue his duty among the JBoss Portal team to work on various tasks.