Monday, December 03, 2007

2007-12-03 Monday

Book Review: Java EE 5 Development using Glassfish Application Server

Author: David R. Heffelinger (
Publisher: PACKT Publishing
Publish Date: September 2007

Full Disclosure: PACKT Publishing provided me a free copy of the book to review.

Overall Reviewer Rating: B+

From the back cover:

"Who this book is written for
This book is aimed at Java developers wishing to become proficient with Java EE 5, who are expected to have some experience with Java and to have developed and deployed applications in the past, but need no previous knowledge of Java EE or J2EE. It teaches the reader how to use Glassfish to develop and deploy applications."
Given that description of the book's goal and scope, I would say that it is a "mission accomplished".

I came across Glassfish V2 this year while doing research for a client SOA project. After downloading it ( and spending a few days exploring its robust features, I decided to continue evaluating it for selection as a possible core component for the team's ESB and SOA efforts. While juggling a number of other priorities, I happened to come across an announcement offering a free copy of a book on Java EE 5 Development using Glassfish. I contacted the publisher - and they agreed to my offer to review their book. Within about 10 days, the book arrived - and I began diving into it.

Part of my interest in this book comes from the knowledge that the development team I'm currently leading is primarily experienced in .NET technologies - and adding Java to their toolbox will involve some training and self-education challenges. Although I have formal training planned for the team, a book that could provide a broad introduction to Java EE development with the added bonus of specifically covering Glassfish was something I didn't expect to find - but definitely thought my team needed.

Chapter Outline

1: Getting Started with Glassfish

Reviewer Comments: Clear and concise. What I would add in the next edition: Coverage of more in-depth discussion of configuration parameters - and performance / tuning parameters.

2: Servlet Development and Deployment

Reviewer Comments: Good basic introduction to the topic of Servlet Development - without burdening the reader with the additional complexity of learning application frameworks.

3: JavaServer Pages

4: Database Connectivity
Reviewer Comments: Covers JDBC and JPA. A decent survey of Entity Relationships (One-to-One, One-To-Many, and Many-to-Many). Covers Composite Primary Keys. The author, to his credit, notes that Database access code should be encapsulated in Data Access Objects (DAOs) - and provides suggested links for further reading.

5: JSP Standard Tag Library

Reviewer Comments: Discusses the Core JSTL tag library as well as Formatting JSTL, SQL JSTL, XML JSTL, and JSTL functions.

6: JavaServer Faces
Reviewer Comments: Basic coverage of JSF and JPA.

7: Java Messaging Service

Reviewer Comments: covers setting up Glassfish for JSM, working with message queues and topics.

8: Security
Reviewer Comments: Discusses various types of realms (Admin, File, Certificate, JDBC, Custom) - and how to utilize Glassfish's built-in security features.

9: Enterprise JavaBeans
Reviewer Comments: Sub-topics covered include Session Beans, Message-driven beans, Transactions in Enterprise Java Beans, Enterprise JavaBean Life Cycles, EJB timer service, and EJB security.

10: Web Services
Reviewer Comments: Sub-topics covered include developing web services with JAX-WS API, Developing web service clients with JAX-WS, adding attachments to web service calls, exposing EJBs as web services, and securing web services.

11: Beyond Java EE

Reviewer Comments: Sub-topics covered include Facelets, Ajax4jsf, Seam.

Appendix A: Sending Email from Java EE Applications

Appendix B: IDE Integration

As a bibliophile, I have a few pedestrian observations of the mechanics of the book's production:

1) The book appears to use a bit larger font than I usually see in technical books by other publishers - a positive - as I don't have to squint to read the text. The quality of the paper appears to be good. The binding appears to be fair-to-good.

2) The book makes extensive use of ample screen shots to capture the specifics of step-by-step instructions when covering the installation and configuration topics in chapter-1. Screen shots of the Glassfish administration screens are also provided in latter parts of the books where appropriate.

3) Coding examples are also liberally provided throughout the chapters (Example Code for the book is available at

4) "Notes" and "Tips and Tricks" are appropriately identified throughout the book using two icon designations.

If you are looking for an introductory survey of Java EE development topics, then this book is a good choice. It is not intended as a definitive reference for Java EE - so don't judge it against that kind of yardstick. The author does not assume that the reader is an advanced Java developer - but does expect that you have some familiarity with the language.

No comments: