David Sills's muse is fueled by Bach, Beethoven, and Brahms (and Berlioz and Boulez). He has no life, which comports well with the über-geekitude to which he aspires. He reads and writes fitfully in English, Spanish, French, German, Italian (mostly medieval), C, VB, Perl.... Oh, and Java and XSLT, lots and lots of Java and XSLT. Trained somewhere in darkest Central America, he works today at DataSource, Inc., on the product team for the CASE tool Abri. David has posted 9 posts at DZone. View Full User Profile

Java EE 5

03.30.2008
| 8188 views |
  • submit to reddit
Published by: Eyrolles
ISBN: 9782212120387

Reviewer Ratings

Relevance:
5

Readability:
5

Overall:
5

Buy it now

One Minute Bottom Line

The book is well written, well researched, and best of all, only a bit over 300 pages. I'd heartily recommend it for someone making the transition to Java EE 5. Of course, since the book is written in French, the barrier of language would be forbidding for most of the people I personally know, but perhaps that can be solved in time as well. 5 stars!

Review

Chapter 1. Présentation de l'étude en cas (The case study)

First, we must know what we are building. Accordingly, we start with a general description of the Pet Store application. This is followed by a use case diagram and more detailed discussion of the individual use cases ("Look up an item", "Log in and out", and so forth).

Chapter 2. Architecture de l'application (Application architecture)

Knowing what we are building is great, but we must also know something about the application architecture. We are using the Java EE 5, which is built upon Java SE (the version used here is Java 5). The various Java EE 5 specifications are described at a very high level, as are XML, HTML, and so forth. The idea of design patterns is briefly touched upon, as is UML 2, which is used throughout the text to illustrate design points. The three-tier application architecture is explained.

Chapter 3. Outils et installation (Tools and installation)

So much for the high level. Now for the low: the JDK, Ant, the Glassfish Java EE 5 application server, and the Derby database. The reader is guided through installation and configuration of these basic tools.

Chapter 4. Objets persistants (Persistent objects)

And now, the EJBs (version 3, of course). This chapter starts with entity beans, their lifecycle and relationships, and finally addresses the main "nouns" of the case study (Category, Product, Client, Address, etc.). A brief look at the underlying database schema concludes the chapter.

Chapter 5. Traitements métier (Business logic)

Stateless session beans are the main carriers of business logic, as might be expected. Discussions of the Entity Manager, JPAQL, transactions, and exception handling give the reader the necessary background for next steps in application development. Specific examples of application beans are presented, followed by the first of several increasingly complex UML diagrams describing the general workings of the application.

Chapter 6. Exécution de l'application (Application execution)

To use the application, we need some sort of client interface. We begin with a graphical user interface (GUI) built using Swing. The Service Locator and Business Delegate design patterns are introduced.

Chapter 7. Interface web (Web interface)

In this chapter we move to a web client, keeping the whole application within Java EE 5. We start with a discussion of servlets and JSP, follow with a taste of the Model-View-Controller (MVC) design pattern, and present details of EL and JSTL. JavaServer Faces (JSF) are introduced as a way to simplify and clarify JSP pages by moving the logic out of the pages. Specific Pet Store application web pages are covered.

Chapter 8. Gestion du panier électronique (Management of the shopping cart)

We couldn't hardly shop without a cart, now could we? This introduces the stateful session bean and its lifecycle. A shopping cart bean is introduced, with a ShoppingCartController interposed as a JSF managed bean between the pages and the EJB. More web pages must be added, of course, to present the shopping cart and checkout functionality.

Chapter 9. Échanges B2B (B2B transactions)

Web services are a big thing these days, and are used here for business-to-business (B2B) transactions. Validating credit cards with BarkBank, arranging transportation with PetEx: these are essential parts of making the customer experience a pleasant one.

Chapter 10. Traitements asynchrones (Asynchronous logic)

Not everything has to be done right this moment. Aspects of the application that can be deferred until time permits should be, in order to make sure that the application can perform as well as possible when time is really of the essence. The JMS and JavaMail specifications are introduced, the message-driven bean (MDB) is explained, and the handling of order fulfillment and confirmatory emails to the customer is deferred to the appropriate beans. The close of this chapter presents the entire application architecture as developed heretofore.

Appendix A. Spécifications Java EE 5 (The Java EE 5 specifications)

This appendix presents a set of tables detailing the Java EE 5 specifications, which version and JSR they represent, and where to locate them on the web.

Appendix B. Tâches Ant (Ant tasks)

This appendix details the Ant build script used in developing the application, explaining as it goes.

Appendix C. Sigles et acronymes (Glossary)

With all the acronyms in JEE, a glossary is surely a handy thing to have.

Appendix D. EJB 2 (EJB 2)

The coverage of EJB is entirely of EJB 3, which makes sense, as it is the new functionality of Java EE 5. However, EJB 2 still must be supported; this appendix looks briefly but thoroughly at what is involved in entity and stateless session beans in EJB 2. By the time the reader has finished it, he or she will have a thorough understanding of exactly why EJB 3 was developed.

Published at DZone with permission of its author, David Sills.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)