IT Training

Java Enterprise Programming with JBoss Seam 2.0

BSP-1627
3 Days
1 (?)
$1,795.00

Description

Seam is an exciting new programming model that enables "next generation" Java Enterprise programming. Seam can help combine some of the latest improvements in Java Enterprise programming, including JSF, EJB3, JPA, and AJAX. Seam also makes Java Enterprise programming easier by solving many of the common drawbacks and difficulties encountered using the various Java Enterprise technologies. Seam simplifies the configuration of applications by using annotations, dependency injection, and "contextual components".

In this class you will learn the various options when creating Seam components. You will also learn how to integrate Seam with various technologies and how to deploy Seam applications to a variety of servers, including JBoss, Glassfish, WebSphere, and WebLogic. This class covers Seam 2.0.

After completing this course, the student should be able to:
• Describe and leverage the various advantages of the Seam programming model.
• Use Seam in combination with various technologies like JSF, EJB 3.0, JPA, and AJAX.
• Use various development tools to work more efficiently with Seam applications.
• Test Seam applications.
• Solve common application programming problems using Seam techniques.
• Apply rule-based security to Seam applications.
• Describe how to use Seam without EJBs and the tradeoff when doing so.
• Deploy Seam applications into a variety of production environments.

Course Outline

1. Seam Unifies Java EE
• Which framework should I use?
• Seam's approach to unification
• Your first swings with Seam
• Seam's core competencies
 

2. Putting seam-gen to Work
• The Open 18 prototype
• Letting seam-gen do the initial work
• Kick off your project with seam-gen
• Deploying the project to JBoss AS
• Show and tell, change, and repeat
• Rapidly developing a seam-gen project

 
3. The Seam Life Cycle
• Exploring how Seam participates in a request
• The JSF life cycle sans Seam
• Seam's page-oriented life-cycle additives
• Combining page actions with navigation
• The JSF life cycle with Seam
• A try-catch block around the life cycle

 
4. Components and Contexts
• Seam's contextual naming container
• Sorting out components
• Defining components using annotations
• A comprehensive component example
• A component's life
• Using EJB 3 session beans in Seam
• Accessing components

 
5. The Seam Component Descriptor
• Defining components using XML
• XML namespaces in the component descriptor
• Configuring component properties
• Component definitions vs. component configuration
• Configuring and enabling built-in components

 
6. Absolute Inversion of Control
• Bijection: dependency injection evolved
• Dynamic dependency @In-jection
• @Out-jecting context variables
• Bypassing bijection
• Component events
• Custom method interceptors
• Factory and manager components

 
7. The Conversation: Seam's Unit of Work
• Learning to appreciate conversational state
• The conversation context
• Establishing conversation boundaries
• Putting the conversation aside
• Switching between conversations
• Driving the conversation with a page flow
• Ad hoc conversations

 
8. Entities and Java Persistence API
• Objectives
• Data Persistence
• Java Persistence API
• Entities
• Session Beans Vs Entities
• Entities
• Persisting and Retrieving Data
• Accessing Entities
• EntityManager & Persistence Unit
• Persistence Context
• Entities - Example
• persistence.xml Hibernate Provider
• persistence.xml Open JPA Provider
• persistence.xml - Toplink
• Entity Instance Lifecycle
• Creating EntityManager in Session EJB
• Creating EntityManager in a Plain Java Class
• Working With the EntityManager Interface
• Transaction Basics
• Entity Lifecycle
• When is an Entity Managed or Detached?
• Implementing the CRUD Pattern
• Accessing Entities Using Stateless Session Beans
• Inserting Data
• Retrieving Data
• Updating Data
• Deleting Data
• Merging Entities
• Life-Cycle Callbacks
• Example: Internal callback
• External Callback Class
• Listener Class - Example
• Synchronizing with Databases
• Entity Lookup
• JPAQL (JPA Query Language)
• Summary
9. Seam-managed Persistence and Transactions
• Getting persistence context management right
• Enhancing the capabilities of the persistence manager
• Setting up a persistence unit in Seam
• Seam's transaction support

 
10. Rapid Seam Development
• A framework within a framework
• Stateful CRUD using the Home component
• Providing feedback
• Smarter queries with the Query component

 
11. Securing Seam Applications
• Authentication jump-start
• Securing pages
• Role-based authorization
• Rule-based authorization using Drools
• Separating the computers from the humans

 
12. Ajax and JavaScript Remoting
• Using Ajax with JSF
• Partial form submits
• Ajax Push with ICEfaces
• JavaScript remoting to Seam
• Conversational remoting calls
• Responding to GWT remoting calls

 
13. File, Rich Rendering, and Email Support
• Uploading files and rendering dynamic images
• PDF generation with iText
• Quick and easy charting with JFreeChart
• Composing email the Seam way
• Customizing the UI with resource bundles

 
Appendix A. 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

 
Appendix B. Introduction to Facelets
• Constructing and Rendering a View (JSP way)
• Facelets
• Getting Facelets
• Using Facelets
• Page Templates
• Define a Page Template
• Define a Template Client
• Summary

 
Appendix C. 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
• Review Questions
• Review Answers

Audience

This class is meant for Java Enterprise programmers looking to write a new breed of Enterprise applications based on Seam.

College Credit, CEUs, PDUs and CDUs
When you take courses with the Babbage Simmel, be sure you get the credit you deserve. Curriculum offered by Babbage Simmel can earn you college credit, CEUs, PDUs or CDUs.

College Credit through The University of Findlay
Select curriculum offered by Babbage Simmel is part of the accredited University of Findlay's undergraduate and graduate course catalogs. For questions please E-Mail: info@babsim.com or call 800-288-5937.

Continuing Education Units (CEUs)
Continuing Education Units (CEUs) are nationally recognized standard units of measurement earned for satisfactory completion of qualified programs of continuing education. If you need more information about CEUs, call us at 800-288-5937.

Professional Development Units (PDUs)
Professional Development Units (PDUs) can be issued by PMI® for formal learning activities related to project management. Babbage Simmel's provider number with PMI® is 1737. Project Management Professionals (PMPs®) are required to earn a minimum of 60 PDUs every 3 years to maintain certification. For more information about this program go to the PMI® web site or call 610-356-4600.

Continuing Development Units (CDUs)
CDUs may be earned by attending professional development (e.g. courses, seminars) offered by organizations endorsed by IIBA® and designated as an EEP vendor. As an IIBA Endorsed Education Provider (EEP) Babbage Simmel's IIBA® endorsed courses qualify for CDU credit. For more information about CDUs go the IIBA® web site or call 866-512-4422.

babsimLIVE live distance learning is hands-on, instructor-led training in real-time. The training is live and interactive. Using the latest technologies, babsimLIVE is an innovative solution for distance learning that makes it possible for students to attend one of our public classes without the need to travel.

Unlike other distance learning options, babsimLive brings the classroom learning experience to you by seating you virtually into a real-life instructor-led classroom taught by award winning world-class instructors with other IT professionals like yourself. From the comfort of your home, workplace, or at the Babbage Simmel Marble Cliff Campus, you acquire the training you need, when you want it, in the environment that is most comfortable for you to be successful.