Muutke küpsiste eelistusi

Seam Framework: Experience the Evolution of Java EE 2nd edition [Pehme köide]

  • Formaat: Paperback / softback, 504 pages, kõrgus x laius x paksus: 178x234x26 mm, kaal: 794 g, Illustrations
  • Ilmumisaeg: 13-Mar-2009
  • Kirjastus: Prentice Hall
  • ISBN-10: 0137129394
  • ISBN-13: 9780137129393
Teised raamatud teemal:
  • Pehme köide
  • Hind: 47,79 €*
  • * saadame teile pakkumise kasutatud raamatule, mille hind võib erineda kodulehel olevast hinnast
  • See raamat on trükist otsas, kuid me saadame teile pakkumise kasutatud raamatule.
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Lisa soovinimekirja
  • Formaat: Paperback / softback, 504 pages, kõrgus x laius x paksus: 178x234x26 mm, kaal: 794 g, Illustrations
  • Ilmumisaeg: 13-Mar-2009
  • Kirjastus: Prentice Hall
  • ISBN-10: 0137129394
  • ISBN-13: 9780137129393
Teised raamatud teemal:
Fully Updated to Cover Major Enhancements to Seam 2.x

 

In Seam Framework, Second Edition, the authors of the leading guide to Seam programming have systematically updated their text to reflect the major improvements introduced with Seam 2.x. This author teamall key Seam project contributorsteach Seam 2.x through detailed example applications that reveal how Seam simplifies many tasks that were previously difficult or impractical. Their robust descriptions are complemented by in-depth feature discussions that demonstrate how to use Seams power to the fullest. Whether youre new to Seam programming or a seasoned Seam developer who wants to achieve deeper mastery of Seam 2.x, this book will be an indispensable resource.

 

Coverage includes





Using improvements to Seams conversation model, transaction management, and other features Enhancing security, performing end-to-end validation, and providing custom exception pages Using Quartz to execute timer jobs in your application Generating bookmarkable RESTful Web pages the easy way Developing highly scalable applications with Seam 2.xs new multilayer caching Simplifying development with Groovy, the scripting language that runs directly on the JVM Using jBPM business processes to improve page flow Previewing Web Beans (JSR-299), the future core of Seam that will transform Java EE Web development

 

*Download source code for this books case study application at solutionsfit.com/seam.
About This Book xvii
About the Authors xix
Acknowledgments xxi
PART I Getting Started
1(74)
What is Seam?
3(8)
Integrating and Enhancing Java EE Frameworks
4(1)
A Web Framework That Understands ORM
5(1)
Supporting Stateful Web Applications
6(1)
Web 2.0 Ready
7(1)
POJO Services via Dependency Bijection
7(1)
Convention over Configuration
8(1)
Avoiding XML Abuse
8(1)
Designed for Testing
9(1)
Great Tools Support
10(1)
Let's Start Coding!
10(1)
Seam Hello World
11(16)
Create a Data Model
13(1)
Map the Data Model to a Web Form
13(1)
Handle Web Events
14(1)
Navigate to the Next Page
15(1)
EJB3 Bean Interface and Mandatory Method
16(1)
More on the Seam Programming Model
17(3)
Seam Built-in Components
17(1)
Ease of Testing
18(1)
Getter/Setter-Based Bijection
18(1)
Avoid Excessive Bijection
19(1)
Accessing Database via the EntityManager
20(1)
Configuration and Packaging
20(5)
The WAR File
22(2)
The Seam Components JAR
24(1)
How is This Simple?
25(2)
Recommended JSF Enhancements
27(20)
An Introduction to Facelets
28(6)
Why Facelets?
29(1)
A Facelets Hello World
30(1)
Use Facelets as a Template Engine
31(3)
Data List Component
34(1)
Seam JSF Enhancements
34(4)
Seam UI Tags
34(2)
Seam JSF EL Enhancement
36(1)
Use EL Everywhere
37(1)
Seam Filter
37(1)
Stateful JSF
38(1)
Add Facelets and Seam UI Support
38(2)
PDF, Email, and Rich Text
40(6)
Generate PDF Reports
40(2)
Template-Based Email
42(2)
Display Rich Text
44(2)
Internationalization
46(1)
Seam without EJB3
47(6)
A Seam POJO Example
47(1)
Configuration
48(2)
Packaging
50(2)
POJO Trade-Offs
52(1)
Rapid Application Development Tools
53(22)
Prerequisites
54(1)
A Quick Tutorial
54(9)
Setting Up Seam-gen
54(3)
Generating a Skeleton Application
57(2)
Understand the Profiles
59(2)
Developing the Application
61(1)
Building and Deploying
61(2)
Running Test Cases
63(1)
Working with IDEs
63(9)
NetBeans
63(4)
Eclipse
67(1)
JBoss Tools and JBoss Developer Studio
68(4)
Generating a CRUD Application from a Database
72(1)
Seam-gen Command Reference
73(2)
PART II Stateful Applications Made Easy
75(100)
An Introduction to Stateful Framework
77(10)
Correct Usage of ORM
77(2)
Better Performance
79(2)
Better Browser Navigation Support
81(1)
Fewer Memory Leaks
82(1)
High Granularity Component Lifecycle
83(1)
Reducing Boilerplate Code
84(3)
Thinking in Components
87(14)
Stateful Components
87(5)
Stateful Entity Bean
90(1)
Stateful Session Bean
90(2)
Managing Stateful Components
92(5)
Stateful Component Lifecycle
92(2)
Factory Methods
94(2)
Manager Components
96(1)
Configuring Components through XML
97(2)
Page Navigation Flow
99(2)
Conversations
101(24)
What is a Conversation?
102(4)
The Default Conversation Scope
102(2)
Displaying JSF Messages
104(2)
Long-Running Conversations
106(6)
Introducing the Hotel Booking Example
106(4)
The Lifecycle of a Long-Running Conversation
110(1)
Conversation Timeout
111(1)
Managing Long-Running Conversations
112(12)
The Annotation Approach
112(1)
The Navigation Approach
113(2)
Beginning a Long-Running Conversation
115(2)
Inside the Conversation
117(2)
Ending a Long-Running Conversation
119(4)
Links and Buttons
123(1)
New Frontiers
124(1)
Workspaces and Concurrent Conversations
125(20)
What is a Workspace?
125(4)
Workspace Management
129(5)
Workspace Switcher
130(2)
Carrying a Conversation across Workspaces
132(1)
Managing the Conversation ID
133(1)
Natural Conversations
134(6)
Beginning a Natural Conversation via Links
135(2)
Redirecting to a Natural Conversation
137(1)
Resuming a Natural Conversation
138(1)
Rewriting to User-Friendly URLs
139(1)
Workspace Timeout
140(3)
Desktop Features in a Stateless Web
143(2)
Nested Conversations
145(14)
Why Are Nested Conversations Needed?
145(2)
Continuing the Conversation
147(5)
Understanding the Nested Conversation Context
148(1)
Nesting Conversations
149(3)
The Conversation Stack
152(5)
Managing the Conversation Stack
152(4)
Displaying Breadcrumbs
156(1)
Nested Conversation Timeout
156(1)
Fine-Grained State Management
157(2)
Transactions and Persistence
159(16)
Seam-Managed Transactions
160(5)
Transactional Attributes
162(2)
Forcing a Transaction Rollback
164(1)
Atomic Conversation (Web Transaction)
165(10)
Managing the Persistence Context
165(2)
Seam-Managed Persistence Contexts
167(5)
One Transaction per Conversation
172(3)
PART III Integrating Web and Data Components
175(82)
Validating Input Data
177(10)
Form Validation Basics
177(2)
Validation Annotations on Entity Beans
179(2)
Triggering the Validation Action
181(2)
Displaying Error Messages on the Web Form
183(2)
Using JSF Custom Validators
185(2)
Clickable Data Tables
187(6)
Implementing a Clickable Data Table
188(3)
Displaying a Data Table
188(1)
Injecting Selected Object into an Event Handler
189(1)
Using Extended EL in a Data Table
190(1)
Seam Data-Binding Framework
191(2)
Decoupling Components Using Events
193(10)
The Observer Pattern
193(3)
Component-Driven Events
196(7)
Raising Events Declaratively
196(2)
Observing Events
198(1)
Event Processing and the Events API
199(4)
Bookmarkable Web Pages
203(10)
Using Page Parameters
204(3)
The Java-Centric Approach
207(4)
Obtaining Query Parameters from an HTTP GET Request
208(1)
Loading Data for the Page
208(2)
Further Processing from the Bookmarked Page
210(1)
RESTful Web Services
211(2)
The Seam CRUD Application Framework
213(10)
Data Access Objects (DAOs)
213(1)
Seam CRUD DAOs Are POJOs
214(1)
A Declarative Seam DAO Component
215(3)
Using Simpler Names for the Entity Object
216(1)
Retrieving and Displaying an Entity Object
217(1)
Initializing a New Entity Instance
217(1)
Success Messages
217(1)
Queries
218(5)
Dynamic Queries
219(2)
Displaying Multipage Query Results
221(2)
Failing Gracefully
223(10)
Why Not Standard Servlet Error Pages?
223(2)
Setting Up the Exception Filter
225(1)
Annotating Exceptions
225(2)
Using pages.xml for System Exceptions
227(2)
The Debug Information Page
229(4)
The Facelets Debug Page
229(1)
The Seam Debug Page
230(3)
Seam Security
233(24)
Authentication and User Roles
234(3)
Declarative Access Control
237(6)
Page Access
238(1)
UI Components
239(1)
Component Access Control
240(2)
Type-Safe Role Annotations
242(1)
Identity Management
243(8)
Using the JpaIdentityStore
244(6)
Using the LdapIdentityStore
250(1)
Additional Security Feature
251(6)
Simplified SSL
251(2)
Telling Humans and Computers Apart with CAPTCHA
253(4)
PART IV AJAX Support
257(36)
Custom and AJAX UI Components
259(10)
Autocompletion Text Input Example
261(2)
Rich Input Control Examples
263(1)
A Scrollable Data Table
264(1)
Using RichFaces with Seam
265(1)
Other JSF Component Libraries
266(3)
Enabling AJAX for Existing Components
269(10)
AJAX Validator Example
270(2)
Programmatic AJAX
272(2)
AJAX Buttons
274(2)
AJAX Containers
276(1)
Other Goodies
276(1)
Using Ajax4jsf with Seam
277(1)
Pros and Cons
278(1)
Direct JavaScript Integration
279(14)
AJAX Validator Example (Reloaded)
280(4)
Server-Side Component
280(1)
Triggering a JavaScript Event on a Web Page
281(1)
Making an AJAX Call
282(2)
AJAX Progress Bar
284(3)
Seam Components
285(1)
Accessing Seam Components from JavaScript
286(1)
Integrating the Dojo Toolkit
287(6)
Visual Effects
288(1)
Input Widgets
289(4)
PART V Business Processes and Rules
293(46)
Rule-Based Security Framework
295(10)
Rule-Based Access Control
295(1)
Configuring Rule-Based Permissioning
296(1)
Simple Access Rules
297(2)
Per-Instance Access Rules
299(3)
Securing Your Entities
302(3)
Integrating Business Rules in Web Applications
305(10)
Embedded Rules
305(4)
Rule-Based Behavior
306(1)
Applying Rules
306(3)
Generic Rules
309(3)
The Working Memory
309(1)
Using the Working Memory
310(1)
Dynamically Updatable Rules
311(1)
Building and Deployment
312(1)
Conclusions
313(2)
Managing Business Processes
315(20)
jBPM Concepts and Vocabulary
316(2)
Application Users and jBPM Actors
318(2)
Creating a Business Process
320(5)
Defining the Process
320(3)
Creating a Business Process Instance
323(1)
Binding Data Objects in Process Scope
323(2)
Managing Tasks
325(5)
Implementing Business Logic for Tasks
325(2)
Specifying a Task to Work On
327(1)
Selecting a Task in the UI
328(2)
Business Process-Based Page Navigation Flow
330(3)
jBPM Libraries and Configuration
333(2)
Integrating Business Processes and Rules
335(4)
The Process
335(2)
The Rules
337(1)
Conclusions
338(1)
PART VI Testing Seam Applications
339(18)
Unit Testing
341(10)
A Simple TestNG Test Case
343(1)
Simulating Dependency Bijection
344(1)
Mocking the Database and Transaction
345(2)
Loading the Test Infrastructure
347(4)
Integration Testing
351(6)
Simulating JSF Interactions
352(1)
Using JSF EL Expressions
353(2)
Transactional Data Source
355(2)
PART VII Production Deployment
357(26)
Using a Production Database
359(6)
Installing and Setting Up the Database
359(2)
Installing the Database Driver
361(1)
Defining a Data Source
361(1)
Configuring the Persistence Engine
362(1)
How about Tomcat?
362(3)
Java EE 5.0 Deployment
365(6)
JBoss AS 4.0.5
365(1)
JBoss AS 4.2.x and 5.x
366(1)
GlassFish
367(4)
Performance Tuning and Clustering
371(12)
Tuning Performance on a Single Server
372(7)
Avoid Calling by Value
372(1)
JVM Options
372(1)
Reducing Logging
373(1)
Tuning the HTTP Thread Pool
374(1)
Choosing Between Client- and Server-Side State Saving
375(1)
Using a Production Data Source
376(1)
Using a Second-Level Database Cache
376(2)
Using Database Transactions Carefully
378(1)
Clustering for Scalability and Failover
379(4)
Sticky Session Load Balancing
380(1)
State Replication
380(1)
Failover Architectures
381(2)
PART VIII Emerging Technologies
383(42)
Scheduling Recurring Jobs from a Web Application
385(8)
Simple Recurring Events
386(1)
Configuring the Quartz Scheduler Service
387(2)
Scheduling Cron Jobs
389(1)
Scheduling Jobs When Starting Up
390(1)
Conclusion
391(2)
Improving Scalability with Multilayered Caching
393(8)
Multilayered Caching
394(2)
Integrating a Cache Provider through Seam
396(2)
Simplified Caching with Seam
398(3)
Making Seam Groovy
401(8)
Groovy Entities
402(3)
Groovy Actions
405(1)
Integrating Groovy
406(3)
Introduction to Web Beans
409(16)
Defining a Web Beans Component
410(1)
Component Injection
411(3)
Producer Methods
414(2)
The Context Model
416(3)
Component Stereotyping
419(2)
Implementing Cross-Cutting Behavior
421(2)
Conclusion
423(2)
Appendix A Installing and Deploying JBoss AS
425(2)
A.1 JDK 5.0 is Required
425(1)
A.2 Installing JBoss AS
426(1)
A.3 Deploying and Running Applications
426(1)
Appendix B Using Example Applications as Templates
427(14)
B.1 Simple EJB3-Based Web Application
428(5)
B.2 POJO-Based Web Applications
433(5)
B.3 More Complex Applications
438(3)
Appendix C Using Maven
441(10)
Appendix D Direct Access to the Hibernate API
451(4)
D.1 Using the Hibernate API
451(2)
D.2 Configuration
453(2)
Index 455
Michael Juntao Yuan is cofounder of Ringful, LLC, a company that develops RESTful APIs for telephone voice and mobile messaging solutions. He contributes code to the Seam project and writes about Seam at www.michaelyuan.com/blog. Formerly technical product manager at Red Hats JBoss division, Yuan is author of five books on software development.

 

Jacob Orshalick is an independent consultant and the owner of Focus IT Solutions, LLC. He has developed enterprise software solutions that span the retail, financial, media, and telecommunications industries. He specializes in developing enterprise Java solutions utilizing open source technologies and agile techniques. He is a committer to the Seam project, and you can find Jacob writing about Seam, Web Beans, and related Java EE technologies in his blog, www.solutionsfit.com/blog.

 

Thomas Heute was a contributor to the pre-JBoss Portal project before being hired by JBoss, Inc., in 2004. He started as a member of the JBoss Portal team but became a JBoss Seam coleader in 2005, with a plan to bring EJB3 closer to JSF (where it really should be). At the end of 2006, Thomas returned to the JBoss Portal team to work on a range of tasks.