What is Glassfish?

Glassfish is an Open Source project driven by Sun to build an EE 5.0 Application Server. The java.sun.com site has an overview of the project and where to go for further information.

This project is a big deal since this is the first time that Sun has driven a project like this to provide their first implementation of a new spec for a Java EE Application Server, other than providing reference implementations which are not considered production ready.

In addition to open sourcing the development, Sun have donated Sun Java System Application Server Platform Edition 9, as the starting point for the development, so the project already had a solid start from a known platform. In addition to this, Oracle have donated the source for Toplink, their ORM solution (previously from WebGain).

I expect this project is in response to the phenomenal success that JBoss have had with their open source App Server, and the fact that for the past few years they are always the first to have an implementation of a new spec out there and ready to go, way ahead of the commercial vendors.

Project Reporting and Publishing with Maven

Maven goes beyond the typical build and deploy tasks of build tools like Ant, and also provides facilities to generate and deploy skeleton project website and document for the project, and then publish the documentation to a website.

OnJava.com have a link to a sample chapter from the book ‘Maven: A Developers Notebook’, which explains how to use this feature.

Does the ServiceLocator pattern have life after EJB3.0?

Brandon Werner has an interesting article on JavaLobby.com looking at how typically the ServiceLocator pattern has been implemented prior to EJB3.0, and whether or not it will be needed with EJB3.0.

The ServiceLocator has been called a ‘compensating pattern’, one of a collection of patterns from the J2EE Core Patterns book by Sun that are viewed by many as patterns that attempt to negate some of the disadvantages and complexities of dealing with J2EE. They are know as ‘compensating’, because the general opinion has been if EJBs were designed right in the first place, we wouldn’t need the majority of these patterns in the first place.

Werner shows in his article how the ServiceLocator pattern is used to hide the complexities of looking up JNDI resources, and compares to how this is implemented in EJB3.0 using annotations and Dependency Injection. The EJB3.0 approach is much simpler and cleaner, and yes, in this case, we would no longer to use an approach like the ServiceLocator.