"Advanced" JavaTM EE (J2EE) Programming (with Passion!)

Sang Shin, www.javapassion.com/javaee_advanced, class forum

From March 6h, 2006:

 



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





Graduates of this course

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.) 

  1. Java EE 5, EJB 3.0
  2. JPA
  3. Hibernate
  4. Spring framework
  5. Other Web-tier Frameworks
  6. Seam
  7. 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.







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

3. Resources
                                                                                                                    return to topics

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)

2. Presentation slides 2

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
                                                                                                                    return to topics





JPA






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

                                                                                                                              return to topics

Java Persistence API (JPA) Mapping


1. Presentation slides
2. Lab  (1 hour) 

3. Resources

                                                                                                                             return to topics


JPA Query Language


1. Presentation slides
2. Lab  (1 hour) 

3. Resources

                                                                                                                             return to topics

JPA Advanced


1. Presentation slides
2. Lab  (1 hour) 
3. Resources

                                                                                                                             return to topics

Java Persistence API (JPA) Transaction


1. Presentation slides
2. Presentation slides  2

This is JavaOne 2007 presentation by Michael Keith.  You have to register to Sun Developer Network in order to watche the video.
3. Presentation slides 3

This is JavaOne 2007 presentation by Rima Patel and Marina Vatkina.  You have to register to Sun Developer Network in order to watche the video.
         4. Lab  (1 hour)
5. Resources

                                                                                                                    return to topics




Hibernate





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.
                                                                                                                              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.
                                                                                                                              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.
                                                                                                                              return to topics

Hibernate Support in NetBeans IDE


                                                                                                                              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.

                                                                                                                              return to topics

Hibernate Transaction and Concurrency



                                                                                                                              return to topics

Hibernate Interceptors & Events - Work in progress




                                                                                                                              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.

                                                                                                                              return to topics

Hibernate Caching


In this session, some of the advanced topics of Hibernate such as caching strategies will be talked about.

                                                                                                                              return to topics

Hibernate Annotation - work in progress


                                                                                                                              return to topics

Hibernate Best Practices - work in progress


                                                                                                                              return to topics






Spring Framework




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.

                                                                                                                              return to topics

Spring Framework Dependency Injection Advanced


                                                                                                                              return to topics

Spring framework and Hibernate


                                                                                                                              return to topics


Spring framework and JPA


                                                                                                                              return to topics


Spring MVC


                                                                                                                              return to topics

Spring Validation, Data-binding, BeanWrapper, and Property Editor


                                                                                                                              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. 
                                                                                                                              return to topics

Spring Integration with Struts


                                                                                                                              return to topics

Spring Integration with JavaServer Faces (JSF)


                                                                                                                              return to topics

Spring AOP Basics


                                                                                                                              return to topics


Spring framework and J2EE (EJB and JMS)


                                                                                                                              return to topics

Spring framework and Web Services


                                                                                                                              return to topics

Spring framework and Transaction


                                                                                                                              return to topics

Spring Batch


                                                                                                                              return to topics

Spring and Testing


                                                                                                                              return to topics

Spring framework sample applications - PetClinic


                                                                                                                              return to topics


telnet localhost 6666
                                                                                                                              return to topics

Acegi Security with Spring framework


                                                                                                                              return to topics

Spring Framework 3.0


                                                                                                                              return to topics




Seam and WebBeans




Seam Basics

1. Presentation slides (1.5 hour) - This is JavaOne 2007 presentation by xxx

2. Lab  
3. Resources

                                                                                                                    return to topics









Other Web-tier Frameworks




Shale

1. Presentation slides (1 hour)

2. Lab and homework (2 hours) - work in progress
3. Resources

                                                                                                                              return to topics



Echo2


1. Presentation slides

2. Lab 2 (2 hours) - work in progress
3. Resouces
                                                                                                                              return to topics

Tapestry


1. Presentation slides

2. Resources

                                                                                                                              return to topics


Wicket


1. Presentation slides

2. Resources


                                                                                                                              return to topics

Comparing various Java Web Application frameworks


1. Presentation slides

2. Resources

                                                                                                                              return to topics






Struts 2




Struts 2 Basics


                                                                                                                              return to topics

Struts 2 and Other View Technologies


                                                                                                                              return to topics

Struts 2 and Ajax


                                                                                                                              return to topics





Portlets and Portals




Portlet Basics -



                                                                                                                              return to topics