Back in October, Packt Publishing (a UK based publishing company specializing in focused IT books) extended the offer of reviewing titles from their open source selection. I accepted and decided on the following two titles:
- "JasperReports for Java Developers" by David R. Heffelfinger
- "Java EE 5 Development using GlassFish Application Server" by David R. Heffelfinger
Today I'm sharing my review of the latter, with additional information, about this and other titles, available on Packt's website.
To be clear, I made every attempt to read the book, having had a background in enterprise software development, from a developer's perspective. Especially considering the fact that the book is aimed at Java developers wishing to become proficient with Java EE 5, who are have some experience with Java. The theme centered on using GlassFish version 2 to develop and deploy applications. Its author, David Heffelfinger, earned a Masters degree in Software Engineering from Southern Methodist University and is currently editor in chief of Ensode.net, a web site about Java, Linux and other technology topics.
Overall I thought "Java EE 5 Development using GlassFish Application Server" was a well constructed publication that can serve as a solid introductory foundation as well as a decent reference for GlassFish powered development. I did think that it could have done a better job of integrating an overarching vision of how GlassFish fits into the concept of a Java EE 5 solution at a higher level. Especially seeing how the book cover contained the text, "From Technologies to Solutions." Nevertheless it contains enough information and examples to provide the type of comprehensive breakdown of the GlassFish architecture that an uninitiated developer needs.
The first chapter spans an overview of, getting, installing and verifying a current version of GlassFish. I thought this could have included a clear delineation of the GlassFish architecture in picture format, to better provide a clear account of its composition. Still, I was able to follow the installation prompts and install GlassFish successfully, quite a testimony considering my experience with other tech books that endeavored to provide installation instructions. The second (Servlet Development and Deployment) and third (JavaServer Pages) chapters were useful even if they probably could have been combined into a unified chapter, if only because GlassFish boasts a number of impressive features that arguably deserve mention/added coverage throughout a book of this nature.
The next two chapters covered Database connectivity and the JSP Standard Tag Library (JSTL). The latter of which I found particularly useful considering how lacking up-to-date, developer-oriented usage-based JSTL documentation is. Interesting enough, Chapter 4 contained a section called Final Notes which contained mention of accepted design patterns related to Data Access Objects (DAOs). I thought that segment should have been longer and duplicated across every chapter in the book. My reasoning is that since application server architectures are implementations of a Java EE specification there is heavy overlap between design patterns and other accepted best practices. It would have been useful to have a couple of paragraphs shed light on that reality.
Chapter 6 (JavaServer Faces) and chapter 7 (Java Messaging Service) were, in my opinion, two of the better written chapters throughout the entire book. The section in chapter 6 about integrating JSF and JPA was a timely cross reference that provided applicable practical insight into pulling the view and model components of an MVC web application together. Chapter 8 (Security) was well-placed but could have used more information about the security behavior of a Java EE container towards providing a clearer picture for developers of what happens in a simple web application. Reading through this chapter was also the point where I realized that it would have been tremendously useful to see a compilation of to the JSR's that are implemented by GlassFish as a reference.
The last three chapters: 9 (Enterprise Java Beans), 10 (Web Services), and 11 (Beyond Java EE) did not disappoint even if Chapter 11 probably could have used additional information about topics, i.e. GlassFish JBI, beyond the scope of core Java EE. Also, it might not have hurt to make mention of SOA accordant, GlassFish-friendly components like OpenESB in either the last chapter or an Appendix.
If you're considering using GlassFish as the basis of your Java EE 5 development this title is absolutely perfect for scaling that initial learning curve and getting up to speed on GlassFish version 2. For administrators or developers who don't want to reduce the time it takes to get comfortable and productive in the book will be a really big help. It's straight forward and allows readers to really jumpstart their efforts right away.
Next week I plan to post my review of JasperReports for Java Developers.