About the Reviewer
Jordi Domingo is a Java/Oracle freelance from 1997. He is working as a Java Architect and teacher.
Spotlight Features

The Rich Engineering Heritage Behind Dependency Injection

Andrew McVeigh takes us on a tour of the rich heritage behind dependency injection, what it represents, and tells us why its here to stay.

NetBeans 6: Matisse Updates

NetBeans 6 delivers great updates to the Matisse GUI builder. Spend a few minutes with Roman Strobl and get an expert briefing on what's new and what has changed.

Introduction to Groovy Part 3

In this, the third and final installation of Andres' Introduction to Groovy series, you learn about how Groovy handles variable numbers of arguments, named parameters, currying, and more about Groovy operators. Including, some new operators.

Easier Custom Components with Swing Fuse

Swing Fuse (actually just Fuse), is a framework designed to make it easier to create your own custom desktop components. In this article, Daniel Spiewak shows you how to get started and provides sample source code you can download.

Benchmark Analysis: Guice vs Spring

Willam Louth shows how he uses JXInsight Probes to investigate probable performance issues with code bases that he is not familiar with. He also highlights possible pitfalls in creating a benchmark, as well as in the analysis of results.

Beginning EJB™ 3 Application Development: From Novice to Professional



Author(s) Raghu R. Kodali and Jonathan Wetherbee with Peter Zadrozny
Publisher Apress
PubDate 2006
Reviewer Jordi Domingo



One Minute Review

Positives
  • Many good examples
  • Well structured and written
  • Source code and errata corrections available at Appress Website
Negatives
  • The ant scripts available with the source code are not at the level supposed.


Sections

Intent & Audience

This book is focused at experienced Java developers with some previous experience with EJB.

Relevance of material

Begining EJB3 provides a good introduction to EJB3 technology, the Java Persistence API, transactions and Web Services. It also provides a good chapter on how to migrate applications based on EJB2.

Performance plays always an important role in application development. This book has one chapter showing how EJB3 performs with the help of Grinder, a Java load testing framework available at SourceForge.net

Chapter highlights

Chapter 1: Introduction to the EJB 3 Architecture

This chapter introduces the book and provides a rapid view of the EJB technology. It also introduces you to the J2EE reference implementation, the Glassfish server.

Chapter 2: EJB 3 Session Beans

It covers the two session bean types, stateless and stateful and some use cases. This chapter explains dependency injection , callback methods and the use of annotations.

Chapter 3: Entities and the Java Persistence API

Starts showing how a simple JavaBean can be transformed into an entity by adding annotations and how to declare its primary key whether simple or composite.

After introducing the persistence archive and the Entity Manager, it takes a look at the Entity Life Cycle and annotations that affect O/R mapping and Entity relationships

JPQL, EJB's query language is introduced with the help of some examples showing how to declare and execute named,dynamic, bulk update and delete queries.

Chapter 4: Advanced Persistence Features

This chapter goes deeper inside advanced persistence concepts including entity inheritance hierachies, custom queries wit JPQL and SQL and the use of entities inside/outside and J2EE container. Support for autogenerated primary key values is covered at the end of the chapter.

Chapter 5: EJB 3 Message-Driven Beans

Discusses JMS components and architecture and how MDB's plugs in. The body of the chapter gives all the details about MDB classes, configuration properties and callback methods. A guided example (including the creation of necessary resources) is provided at the end.

Chapter 6: EJB 3 and Web Services

Covers the core web services and how J2EE supports it. Shows how to turn a Stateless session bean into a web service using annotations.

Chapter 7: Integrating Session Beans, Entities, Message-Driven Beans, and Web services

In this chapter EJB's and Web Services are cooked together and seasoned with some resources like DataSource's, JMS and Javamail.

 Chapter 8: Transaction Support in EJB 3

Transaction support is a key service in most applications. EJB3 provides a built-in JTA transaction manager. Metadata tags can be used to declaratively control the transactional behaviour on an enterprise bean.  

Chapter 9: EJB 3 Performance and Testing

This chapter provides a brief guide on how to set up performance tests using "The Grinder", an open source Java-based load testing framework.  Some performance test results are presented.

Chapter 10: Migrating EJB 2.x Applications to EJB 3

If you have existent EJB2 applications you might want to migrate it to EJB3, mainly to benefit from the new performance. In this chapter you will learn the steps needed to accomplish the task and also an example is given.

Chapter 11: EJB 3 Deployment

This chapter covers the Application Assembler and Deployer J2EE defined roles. Resource bindings, references, jar's, rar's, ear's and deployment descriptors are discussed in this chapter.

 Chapter 12: EJB 3 Client Applications

 This chapter walks through distinct architectures showing its pros and cons. Then it goes deeper into the JSF architecture with and EJB3 backend (in this case, the one developed in chapter 7)

Rating

I found this book to be an excellent value. While it's an easy reading book it's also very complete and a very good start point in EJB3 development. There are some mistakes in the examples. On the other hand, the authors have provided a site with the corrections.

I would recommend this book to anyone who wants to learn EJB3 its definitely a good book.

Relevance
Readability
Overall

Resources