Chapter I: A little history of GlassFish
“This announcement and Oracle’s ‘optimizations’ is the perfect opportunity for other vendors like TomEE (with commercial support by Tomitribe), Wildfly (supported by Red Hat) or WebSphere Liberty Profile (supported by IBM), to step in.”
— Adam Bien, In his Blog
From caviar to great white shark
Officially, the tool we all know as “GlassFish” is really GlassFish Open Source Edition, which is Oracle’s GPL/CDDL-licensed Java EE application server.
GlassFish came a long way, starting as a Sun Microsystems Inc. project back in mid-2005. It was based on the source code for the Sun Java System Application Server (SJAS) PE 9, which was donated to the community by Sun Microsystems along with Oracle’s donation of TopLink persistence code. The joint goal was to encourage communication between Sun & Oracle engineers and the community, enabling all developers to participate in the application server development process along with the JCP.
With this donation, developers from all over the world could access source code, nightly builds, discussion groups, and mailing lists. For the very first time in history, developers were able to meaningfully contribute to the application server creation process.
What? A free, faster competitor to Oracle and IBM?
Historically, GlassFish has always been backed up by a commercial distribution. Initially named SJAS, it became Sun GlassFish Enterprise Server with the Version 2.1 in mid-2009. At the end of the same year. Sun released the first Java EE 6 compatible version carrying the famous “v3” as the version number. It contained the completely rebuilt OSGi foundation created on Apache Felix and delivered an awesome developer experience by cutting down startup-times, providing hot-deployment and preserving http sessions across development redeployments.
GlassFish’s main competitor back in the day was the extremely lightweight Apache Tomcat. Developers got attracted to both the new Java EE 6 specification, which finally improved development productivity and ease of use, establishing convenient handling and administration as well. All this happened a year and a half after Oracle completed its acquisition of BEA Systems.
With increasing uptake on Java EE technologies, GlassFish became a solid alternative for even the most attractive and performant commercial application servers. Leading the field by continuously delivering technical innovation and driving specifications on the JCP had always been BEA Systems with their WebLogic server, but the release of GlassFish 2.1 was in more or less direct competition with Oracle’s and IBM’s WebSphere product line. But GlassFish was for free. And much faster.
Oracle buys Sun Microsystems
The famous Oracle-Sun merger in early-2010 changed the rules. The GlassFish community was afraid of Oracle cutting off GlassFish completely in favor of the commercial WebLogic product they just recently integrated as their foundation for almost all commercial products. But basically nothing happened. Aside from a bunch of extra marketing and re-naming efforts for both the OSS and the commercial edition, pretty much everything else remained the same.
It had seemed that Oracle wanted invest into their new assets by putting up the so called 100-day releases with patches for both 2.1 and 3.0 versions. Unfortunately, this was followed by nothing groundbreaking. The 3.1.0 – 3.1.2 releases brought clustering back to the 3.x branch and delivered on long-overdue component updates and fixes in early 2011.
In mid-2012, a micro-release 220.127.116.11 fixed a handful of exceptional issues. No further updates took place until June 2013, with the initial release of GlassFish 4.0 being the reference implementation of Java EE 7. The community stood behind GlassFish the whole time. The NetBeans bundle, the unzip and start packages, the comparably good startup times and the overall availability of examples and documentation made GlassFish the #1 choice not only for beginners but also for people running real applications on it.
Download the PDF