"Advanced" JavaTM
EE
(J2EE)
Programming (with Passion!)
Message to potential
attendees
Announcement from Sang Shin (Feb.
1st, 2010): In the near future, the
courses in javapassion.com will be available as a subscription-based
service. (Yes, it is a painful decision on my part.) If you want
to
receive course announcement in the future, please send an blank email
to javapassion-announcement+subscribe@googlegroups.com.
How to register for
this course
In order to register for this course, all you have to do is sending
a blank email to the following email alias.
Basically, when you send a blank email to the above, you are
subscribing our
class
forum. This forum can be used for posting
questions/answers. Please use this forum for all class related
communication (technical or non-technical). If you have any
further questions on this course, please see the course FAQ below
Topics
and Schedule
Note
that only the topics
with the
dates assigned will be covered in this
course. The topics (and dates) will be updated as we move along.
(You need to submit homeworks only on the topics that have
dates.)
- Java
EE 5, EJB 3.0
- JPA
- Hibernate
- Spring
framework
- Spring framework and
persistence
- Spring framework Web-tier
technologies
- Other
Web-tier Frameworks
- Seam
- Design
patterns,
Best practices,
Performance tuning, etc

All homeworks are due by
Feb. 21st, 2010 Eastern Time.
For those of you who submitted all homeworks , please send the
following information to the homework alias (
javaeeadv-homeworks@javapassion.com)
by Feb. 22nd, 2010 using "Personal
information" as Subject.
- <First-name Last Name>,
Nationality or Country of Origin, <comment on this
course>
- Example: Sang Shin, Korea, This course
helped me greatly ...
Java
EE 5 & EJB 3.0 & JPA
Introduction to Java EE 5
Java EE 5 is a major major release in
the evolution of Java EE with lots of new features. It has a huge
emphasis on the ease of development. The ease of development
features include using annotations instead of deployment descriptors,
simplified EJB development, use of dependency injection for accessing
resources, Java Persistence API (JPA), and annotation based Web service
development. The goal of this presentation and hands-on lab is to
give you overall sense of the Java EE features.
1. Presentation slides - Java EE 5
Overview (1 hour)
2. Presentation slides - Java EE 5 support in NetBeans 5.5
EJB 3.0 Enterprise Beans
The new EJB 3.0 API makes software
development easier by reducing and simplifying the amount of work
required from the developer. In other words, fewer classes and less
code. This is possible because more of the work is now performed by the
container.
1. Presentation slides (1 hour)
Java
Persistence API
(JPA) Basics
The Java EE 5 platform introduces the
new Java Persistence API, which was developed as part of JSR-220. The
Java Persistence API can also be used outside of EJB components, for
example, in web applications and application clients, and also outside
the Java EE platform, in Java SE applications.
1. Presentation slides 1 (1 hour)
2. Presentation slides 4
This is
JavaOne
2006 presentation by Michael Keith and Linda DeMichiel, Peter
Walker, and Ron Ten-Hove. You have to
register to Sun Developer
Network in order to watche the video.
3. Lab and homework
4. Resources
- Websites
- Tutorials and articles
- GlassFish
- Hibernate and JPA
return
to topics
Java
Persistence API
(JPA) Mapping
1. Presentation slides
2. Lab (1 hour)
return
to topics
JPA
Query Language
1. Presentation slides
2. Lab (1 hour)
return
to topics
JPA Advanced
1. Presentation slides
2. Lab (1 hour)
- 4324_jpaadv.zip
(Unzip it in a directory of your choice
and read lab document from
<unzip-directory>/jpaadv/index.html to proceed)
- Online
lab document (This is the same document you will find in
the hands-on lab zip file)
return
to topics
Java
Persistence
API (JPA) Transaction
4. Lab (1 hour)
return
to topics
Hibernate Step By Step
This session takes you through the
basics of building a simple
HelloWorld Hibernate application. Even though you are building
the simplest
possible Hibernate application, you will get an exposure to the
relatively complete concept
of Hibernate. You will also learn how to
display context sensitive Java document on Hibernate classes.
- Presentation
- Lab and homework
- Resources
return
to topics
Hibernate Basics
In this session, you are going to learn
the basic concepts of Hibernate including transaction demarcation,
using DAO pattern, generating keys using different schemes, event
handling, and session management.
- Presentation
- Lab and homework
- Resources
return
to topics
Hibernate Mapping
In this session, you are going to learn
various mapping strategies including cadinalities (one to many
relationship, many to many relationship), and how class hierarchy is
represented in the database tables through inheritance strategies.
- Presentation
- Lab
- Resources
return
to topics
Hibernate
Support in NetBeans IDE
- Presentation
- Lab
- 3516_hibernatemapping.zip
(Unzip it in a directory of your
choice
and read lab document from
<unzip-directory>/hibernatemapping/index.html to proceed)
- Online
lab document (This is the same document you will find in
the hands-on lab zip file)
- Homework
- Change
log
- Resources
return
to topics
Hibernate Query Language
In this session, you are going to learn
how to perform query operations using Criteria Query API, Query By
Example, HQL, and native SQL.
- Presentation 1 (Criteria API)
- Presentation 1 (HQL)
- Lab
- Resources
return
to topics
Hibernate
Transaction and Concurrency
- Presentation 1
- Lab
- Resources
return
to topics
Hibernate
Interceptors & Events - Work in progress
- Presentation 1
- PDF:
1 slide per page
- StarOffice
file
- Lab
- Resources
return
to topics
Hibernate Join Fetch
(N+1 Select Problem, Join Fetch, Lazy Fetch)
The fetch mode you choose in using
Hibernate will have performance consequences especially if you fall
into a trap of N+1 selet problem. In this session, you will learn the
basic concepts of the fetch modes and also N+1 select problem and how
to avoice it.
- Presentation
- Lab
- Resources
return
to topics
Hibernate Caching
In this session, some of the advanced
topics of Hibernate such as caching strategies will be talked about.
- Presentation 1
- Lab
- Resources
return
to topics
Hibernate Annotation - work in
progress
- Presentation 1
- PDF:
1 slide per page
- StarOffice
file
- Lab
- 3522_hibernateannotation.zip
(Unzip it in a directory of your
choice
and read lab document from
<unzip-directory>/hibernateannotation/index.html to proceed)
- Online
lab document (This is the same document you will find in
the hands-on lab zip file)
- Homework
- Change
log
- Resources
return
to topics
Hibernate Best Practices -
work in progress
- Presentation 1
- PDF:
1 slide per page
- StarOffice
file
- Lab
- 3519_hibernatejoinfetch.zip
(Unzip it in a directory of your
choice
and read lab document from
<unzip-directory>/hibernatejoinfetch/index.html to proceed)
- Online
lab document (This is the same document you will find in
the hands-on lab zip file)
- Homework
- Change
log
- Resources
return
to topics
Refactoring
HelloWorld Application using Spring Framework
You are going to learn how to refactor
the good old "HelloWorld" application in various ways including the
usage of Dependency Injection (DI) scheme of the Spring framework.
return
to topics
Spring
Framework
Dependency Injection Basics
Dependency Injection (DI) is the one of
the foundation of the Spring framework. You are going to learn
how to use the basic usage of DI in this session.
- Pre-class reading
- Presentation
- Lab - using Spring framework 2.5
- Resources
return
to topics
Spring
Framework
Dependency Injection Advanced
- Presentation
- Lab - using Spring framework 2.5
- Resources
return
to topics
Spring framework and
Hibernate
- Presentation
- Lab - using Spring framework 2.5
- Resources
return
to topics
Spring framework and JPA
- Presentation
- PDF:
1 slide per page
- StarOffice
file
- Lab
- Resources
return
to topics
Spring MVC
- Presentation
- Lab - using Spring Framework 2.5
- Resources
- Documents
- Tutorials
- Presentations
- Tools
return
to topics
Spring Validation,
Data-binding, BeanWrapper, and Property Editor
- Presentation
- PDF:
1 slide per page
- StarOffice
8 file
- Lab
- 4918_springmvc.zip
(Unzip it in a directory of your
choice
and read lab document from
<unzip-directory>/springmvc/index.html to proceed)
- Online
lab document (This is the same document you will find in
the hands-on lab zip file)
- Homework
- Change
log
- Resources
return
to topics
Spring Web Flow
Spring Web Flow is a next generation
Java web application framework
that allows developers to model user actions as high-level modules
called flows that are runnable in any environment. The framework
delivers improved productivity and testability while providing a strong
solution to enforcing navigation rules and managing application
state.
- Presentation
- Lab
- Resources
- Web sites on Spring Web Flow
- Documentation
- Tutorials
- Presentations
return
to topics
Spring Integration
with Struts
- Presentation
- Lab
- Resources
return
to topics
Spring
Integration
with JavaServer Faces (JSF)
- Presentation slides (1.5 hour) - This
is JavaOne 2007 presentation by Kito Mann and Chris Richardson
- Lab
- Resources
return
to topics
Spring
AOP Basics
- Presentation
- Lab
- Resources
- Documentations
- Presentations
return
to topics
Spring
framework and J2EE (EJB and JMS)
return
to topics
Spring
framework and Web Services
- Presentation
- PDF:
1 slide per page
- StarOffice
8 file
- Lab
- Resources
return
to topics
Spring
framework and Transaction
- Presentation
- Lab
- Resources
- Documentations
- Articles and tutorials
return
to topics
Spring Batch
- Presentation
- PDF:
1 slide per page
- StarOffice
8 file
- Lab
- Resources
return
to topics
Spring and Testing
- Presentation
- PDF:
1 slide per page
- StarOffice
8 file
- Lab
- Resources
return
to topics
Spring
framework sample applications - PetClinic
- Presentation
- PDF:
1 slide per page
- StarOffice
8 file
- Lab
return
to topics
telnet localhost 6666
- Presentation - this is the JavaOne
2007 presentation by Rod Johnson
- Lab
return
to topics
Acegi Security
with Spring framework
- Presentation
- PDF:
1 slide per page
- StarOffice
- Lab
- Resources
return
to topics
Spring Framework 3.0
- Presentation
- PDF:
1 slide per page
- StarOffice
- Lab
- Resources
return
to topics
Seam and WebBeans
Seam Basics
1. Presentation slides (1.5 hour) - This
is JavaOne 2007 presentation by xxx
- PDF:
1 slide per page
- Video
2. Lab
3. Resources
- Tutorials
- Articles and blogs
- Presentations
- Websites
Other
Web-tier Frameworks
Shale
1. Presentation slides (1 hour)
2. Lab and homework (2 hours) - work in
progress
- 4261_webshale.zip
(Unzip it in a directory of your
choice
and read lab document from
<unzip-directory>/webshale/index.html to proceed)
- Online
lab document (This is the same document you will find in
the hands-on lab zip file)
3. Resources
return
to topics
Echo2
1. Presentation slides
- PDF:
1 slide per page
- OpenOffice file
2. Lab 2 (2 hours) -
work in
progress
- 4282_ajaxecho2.zip
(Unzip it in a directory of your
choice
and read lab document from
<unzip-directory>/ajaxecho2/index.html to proceed)
- Online
lab document (This is the same document you will find in
the hands-on lab zip file)
3. Resouces
return
to topics
Tapestry
1. Presentation slides
- PDF:
1 slide per page
- OpenOffice file
return
to topics
Wicket
1. Presentation slides
- PDF:
1 slide per page
- OpenOffice file
2. Resources
return
to topics
Comparing
various Java Web Application frameworks
1. Presentation slides
return
to topics
Struts 2 Basics
- Presentation
- Lab
- Resources
return
to topics
Struts 2 and Other View Technologies
- Presentation
- PDF:
1 slide per page
- OpenOffice 8 file
- Lab
- 4221_struts2basics.zip
(Unzip it in a directory of your
choice
and read lab document from
<unzip-directory>/struts2basics/index.html to proceed)
- Online
lab document (This is the same document you will find in
the hands-on lab zip file)
- Homework
- Change
log
- Resources
return
to topics
Struts 2 and Ajax
- Presentation
- PDF:
1 slide per page
- OpenOffice 8 file
- Lab
- 4221_struts2basics.zip
(Unzip it in a directory of your
choice
and read lab document from
<unzip-directory>/struts2basics/index.html to proceed)
- Online
lab document (This is the same document you will find in
the hands-on lab zip file)
- Homework
- Change
log
- Resources
return
to topics
Portlet Basics -
- Presentation
- PDF:
1 slide per page
- StarOffice
8 file
- Lab
- Resources
return
to topics