I HEAR and I FORGET. I SEE and I REMEMBER. I DO and I UNDERSTAND.
Developing Enterprise Java Applications with Lightweight Frameworks

Attendee Feedback:
"It's a great course to attend and I recommend it to lead/architects/individual contractors before they start any new project and decide on technologies"
-Srinivas Peri, Adobe Inc.


   Seattle Course Details

Day 1: Track A
Java Server Faces

This JSF course begins by explaining what JavaServer Faces is, and how it relates to Struts and other web frameworks currently on the market. You will learn about key JSF concepts, and some of the architectural principals behind the framework. You will then learn about IDEs that support JSF, as well as libraries that facilitate JSF development. You will also learn about the current market for off-the-shelf user interface components, such as grids, menus, toolbars, trees, and tabbed panes. We'll also examine the extension points within JSF, and how they can be leveraged to provide features such as security, alternate templating technology, and access to external resources.

  • Introduction to JSF
  • The Java web development landscape
  • What is JSF?
  • JSF fundamentals

Exploring the JSF landscape

  • JSF implementations
  • Third-party components
  • Development tools
  • Other frameworks and libraries

Getting Started

  • Setting up your environment
  • Structuring the application
  • Developing views
  • Navigation

Lab: Configuring a JSF application

  • Get a JSF application to run
  • Create a static login page
  • Configure basic navigation

Creating Backing Beans and using Managed Beans

  • The JSF Expression Language
  • Managed Beans
  • Backing Beans

Lab: Creating Backing Beans and using Managed Beans

  • Configure application objects
  • Write the AuthenticationBean backing bean
  • Configure Authentication bean

Day 1: Track B
Hibernate 3

In this class you will learn how to use Hibernate to persist a domain model. We describe how to write the Hibernate ORM metadata for a domain model. You will develop data access objects (DAOs) using the Spring/Hibernate APIs.

 

Introduction to ORM with Hibernate

  • Hibernate OR mapping
  • Using the Hibernate API
  • Executing queries
  • Optimizing performance
  • Using detached objects
  • Handling concurrency
  • Batch processing

Mapping objects to the DB with Hibernate

  • Mapping classes
  • Mapping relationships
  • Transitive persistence
  • Mapping inheritance

Lab: Mapping objects to the DB with Hibernate

  • Mapping classes and relationships
  • Mapping user defined types
  • Using transitive persistence

Developing DAOs with Hibernate

  • The role of the data access layer
  • Spring/Hibernate API
  • Persisting, loading, querying and deleting objects
  • Detaching and reattaching objects
  • Hibernate queries




Day 2: Track A
Advanced Java Server Faces

Exploring the standard components

  • Working with the standard components
  • Using basic components and HtmlPanelGrid
  • Using HtmlSelectItems
  • Using HtmlDataTable

Internationalization, validators, and converters

  • Internationalization
  • The standard converters
  • The standard validators

Lab: Working with the standard components

  • Add JavaScript to the login page
  • Develop the inbox page
  • Write a backing bean

Developing with JSF

  • Key APIs
  • Building an application
  • Best practices
  • Security

Inside the JSF Architecture

  • Using Phase Listeners and Pluggable Extensions

Lab: Using Phase Listeners and Pluggable Extensions

  • Write an authorization phase listener
  • Write a custom navigation handler

Writing custom components, validators, and converters

  • Developing custom components
  • Developing converters and validators

Wrap up & Future Directions

Day 2: Track B
Spring 2

 

In this class you will get a good understanding of the Spring framework including Spring's dependency injection and transaction management features. You will also, learn about the different design patterns for encapsulating the business logic and how Spring can be used with each pattern. In the labs you will use the Spring framework to make the business tier of an enterprise application transactional.

 

Introduction to the Spring framework

  • Untangling crosscutting concerns
  • Dependency injection
  • Transaction management
  • Database access with Spring
  • Spring and testing

Business logic encapsulation options

  • Avoiding the Golden Hammer Syndrome
  • EJB Facade pattern
  • POJO facade pattern
  • Exposed Domain Model pattern

Transaction management with the Spring framework

  • Transaction management as a crosscutting concern
  • Declarative transaction management with Spring
  • Annotations versus XML
  • Custom aspects with Spring AOP and AspectJ

Lab: Implementing the Exposed Domain Model

  • Configuring the OpenSessionInViewFilter
  • Configuring transactions

Lab: Implementing the POJO façade pattern with the Spring framework

  • Configuring transactions
  • Detaching objects with Hibernate

Integrating Spring with the presentation tier

  • JSF
  • Struts
  • Spring MVC

Attendee Feedback:
"We have plans to implement JSF/Spring/Hibernate in our future projects, and attending the Open Source Live! practicum has given us more insights in those topics."
-Parda Akalamkm, TransAmerica

Day 3: Tack A

 

AJAX with JSF

This session is a perfect follow-on to two days Of JSF, where you will understand why AJAX is the great match for JSF. You will learn how to add AJAX functionality to JSF applications to deliver rich enterprise Internet applications without the tedious task of writing any JavaScript. You will comprehend various approaches to using AJAX with JSF. In the lab, you will build and test numerous AJAX/JSF examples using an open source framework called Ajax4jsf. You will explore this popular framework and learn how to effectively add AJAX capability seamlessly to JSF applications without any JavaScript coding. At the completion of this session, you will posses the knowledge and skills to build dynamic JSF application with AJAX.

Overview of AJAX

  • Why use it?
  • When to use it?
  • Traditional Web applications
  • AJAX Web applications (Web 2.0/Enterprise 2.0)
  • AJAX technologies: JavaScript, XMLHTTPRequest, DOM, CSS

Overview of AJAX Toolkits

  • Sarissa
  • Prototype
  • Dojo Toolkit
  • DWR
  • Other

Introduction to Ajax4jsf

  • What is Ajax4jsf?
  • Architecture overview
  • Ajax4jsf components

Lab: Implement Ajax4jsf Command Components

  • a4j:support
  • a4j:commandLink
  • a4j:commandButton

Lab: Implement Ajax4jsf Container Components

  • a4j:region
  • a4j:page
  • a4j:outputPanel

Lab: Implement More Ajax4jsf Components

  • a4j:ajaxListener
  • a4j:actionparam
  • a4j:status
  • a4j:loadBundle
  • a4j:mediaOutput

Other Ajax4jsf Features

  • Skinability

Day 3: Track B

AspectJ and AOP

Aspect Oriented Programming offers powerful capabilities to increase design leverage and reduce code duplication to more effectively develop systems. This session will teach you how the AspectJ language and tool support can be used to achieve these benefits today. After an introduction to the concepts and tools this talk provides practical insights into using AspectJ drawn from real-world enterprise experience. Lab exercises provide hands-on experience to move Aspects from an abstract idea to a powerful tool that can be applied in your application when you return to work. You will gain concrete experience in tools, pointcut authoring, and advice implementation to create cross-cutting functionality without code duplication. You will walk away with know-how to build more flexible, maintainable and higher quality code by using AspectJ.

Introduction to AOP
 * Concepts and context
 * AspectJ language and AJDT tool support
 
Exercise 1: Aspect Visualization in Eclipse AJDT

Tracing and Logging Application Flow: Aspects can be used to trace the flow of application control.
* Tracing to understand a new system
* Using Aspects to describe and observe application flow
* Introducing Log4J logging into application with Aspects

Exercise 2: Add Tracing and Logging Aspects to example system
* Add execution and control flow Aspects to observe running system
* Introduce Log4J logging to key points in control flow

Pointcuts, Advice, and Cross-Cutting Functionality
* Pointcuts matching over the Join point model
* Pattern matching in Pointcuts
* Exposing context in Pointcuts and Advice
* Metadata-based Pointcuts
* Advice: Before, After, and Around

Exercise 3: Add behavior to existing classes with advice
* Implement new feature by defining pointcuts and advice

Control Flow and Program Execution:
* Aspects, join points, and control flow
* clfow and cflowbelow
* Avoiding infinite recursion

Exercise 4: Extend exercise 4) to avoid repeated advice execution

Adding new elements to existing designs: AOP Inter-type Declarations
* Introducing fields and methods
* Introducing interfaces

Conclusion: AOP and AspectJ
* The State of AOP
* Spring 2.0 and AspectJ
* Use throughout development lifecycle
* Adoption Strategy

 


Developing Enterprise Java Applications with Lightweight Frameworks

© 2007 Open Source Live™. All rights reserved.
Java, J2EE, JavaEE are registered trademarks of Sun Microsystems.