GlassFish v3 release

A few minutes ago, GlassFish v3was released. When I first talked aboutGlassFish v3 in this blog entry, I considered it a revolution rather thanan evolution. Today, I still believe GlassFish v3 is more than just thenumerical successor to GlassFish v2.

Reference implementation

First of all, GlassFishv3 is the reference implementation of the Java EE 6specification.Compared with Java EE 5, this specification is a next step towardssimplification in enterprise development. The voice of the enterprisedevelopers has been heard.Personally, I am very happy with the JSR 311 (Java API for RESTfulWeb Services) and the EJB 3.1 spec. One of the majorbenefits of JSR 311 is that it facilitates mobile applications insteadof just Web Applications. A decoupling of business logic and front-enddevelopment at the REST interface offers lots of possibilities.

It took awhile before I realized the real benefits of EJB 3.1. Butonce I started using a NetBeans 6.8 milestone, it became clear thatthe enhancements are significant. We don’t have to package an ejb-jar anda war together in an ear anymore, everything can be in one package(with the confusing name “war”, though).

Open Source

GlassFish v3 is completely Open Source. I have the head-version of therepository on my desktop, and it is not too difficult to build andinstall it yourself.
The simple fact that software is Open Source itself does not say anythingabout its quality. But in the GlassFish case, the code is very wellwritten and documented, and I was often surprised how easy it is todive into the code of this complex piece of software.
Having access and being able to understand the source code is somethingthat speeds up development. In a number of cases, your application isnot behaving the way you want it, and you assume that this is a bugor some strange feature in the application server. You can spend lots oftime trying to find out the cause without looking into theapplication server — and that is how it goes most often.But you can also look into the relevant code of the Application Serverand try to find out what is causing the problem. When the code isavailable and readable, this process can save developers time.

Modular

One of the major changes in GlassFish v3 is the modular approach.The old lib-directory has been replaced by a modules directory.Modules can be installed and uninstalled easily. The Glassfish kernelitself is very small. As a consequence, the kernel itself is alsousable in environments with limited resources — desktop and evenmobile. Today, most modules are still enterprise focussed, but theGlassFish modularity can be a next step towards convergence betweenenterprise and mobile software. Enterprise software is becomingsimpler, and mobile devices are becoming more powerful. Softwarepatterns and technologies that are typically used in oneenvironment may also work (or be adapted) in another environment.

I assume GlassFish v3 will be primarily used in the same areas whereGlassFish v2 and other Application Servers are used. But in thefuture, I think GlassFish can extend its marketing potential intonew areas, especially when modularity is required and when resourcesare still somehow limited, preventing typical big applicationservers from being used.