GlassFish
| Company type | Open source software project |
|---|---|
| Industry | Software, Application server |
| Predecessor | Sun Java System Application Server |
| Founded | June 6, 2005 |
| Founder | Sun Microsystems |
| Headquarters | N/A |
Area served | Worldwide |
| Owner | Eclipse Foundation (current) |
| Parent | Eclipse Foundation |
| Website | projects |
GlassFish is an open-source Jakarta EE platform application server initiative originally developed by Sun Microsystems, later supported by Oracle Corporation, and presently overseen by the Eclipse Foundation with contributions from OmniFish, Fujitsu, and Payara. The iteration backed by Oracle was known as Oracle GlassFish Server. As free software, it was initially distributed under a dual-license model combining the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL) with the Classpath exception. Following its migration to the Eclipse Foundation, it continues as a dual-licensed project, substituting CDDL with the Eclipse Public License (EPL).
Overview
GlassFish functions as the Eclipse Foundation’s official implementation of Jakarta EE (formerly recognized as Oracle's reference implementation), supporting essential specifications such as Jakarta REST, Jakarta CDI, Jakarta Security, Jakarta Persistence, Jakarta Transactions, Jakarta Servlet, Jakarta Faces, and Jakarta Messaging. This comprehensive support facilitates the creation of portable and scalable enterprise-grade applications with capabilities for legacy system integration. Additional optional components further extend its functionality.
Constructed on a modular architecture utilizing OSGi, GlassFish operates atop the Apache Felix runtime but also maintains compatibility with alternative OSGi containers like Equinox or Knopflerfish. The HK2 layer within GlassFish abstracts OSGi bundles into manageable components or services that can be dynamically located and injected as needed.
The foundation of GlassFish’s codebase incorporates Sun and Oracle’s proprietary TopLink persistence framework. Its servlet container is a tailored version of Apache Tomcat, enhanced by the inclusion of the Grizzly framework, which exploits Java non-blocking I/O (NIO) to deliver superior scalability and performance.
Sun Microsystems Era
- October 2003 – Sun Microsystems introduced Sun ONE Application Server 7, which supported J2EE 1.3 and was based on the iPlanet Application Server alongside the J2EE reference implementation. While a basic edition was available at no cost, it was not open source.
- March 2004 – Sun launched Sun Java System Application Server 8, compatible with J2EE 1.4; Update 1 followed in June 2004. The core version remained free but proprietary.
- 8 February 2005 – The release of Sun Java System Application Server 8.1 brought enhancements including improved web services security, an upgraded Admin Console GUI, support for JavaServer Faces 1.1, performance improvements, and compatibility with Java SE 5.0. The free version continued to be closed source.
- 6 June 2005 – The GlassFish project was initiated when Sun published the vetted source code of Sun Java System Application Server, marking a strategic move towards open development.
- 31 January 2006 – Sun delivered Sun Java System Application Server 8.2, which bundled the Derby database and integrated Fast Infoset for web services; its basic edition stayed free but proprietary.
- 4 May 2006 – Project GlassFish announced version 1.0 (Sun Java System Application Server 9.0), supporting Java EE 5 standards.
- 15 May 2006 – Sun released Sun Java System Application Server 9.0 based on GlassFish 1.0.
- 8 May 2007 – Project SailFin was unveiled within GlassFish to introduce Session Initiation Protocol (SIP) servlet capabilities.
- 17 September 2007 – The GlassFish community issued version 2.0 (Sun Java System Application Server 9.1), featuring enterprise clustering and Web Services interoperability with Microsoft platforms.
- 21 January 2009 – GlassFish 2.1 (Sun GlassFish Enterprise Server 2.1) became available and served as the foundation for SailFin 1.0 (Sun Communication Application Server).
- 28 October 2009 – SailFin 2.0 built upon GlassFish version 2.1.1, incorporating features such as high availability, rolling upgrades, adaptable network topology, overload protection mechanisms, Diameter protocol support, enhanced diagnostic tools, and Java-based DCR files to manage load balancing.
- 10 December 2009 – With the release of GlassFish 3.0 (Sun GlassFish Enterprise Server 3.0), it became the first application server to fully implement Java EE 6 (JSR 316). Notable advancements included a modular design based on Apache Felix OSGi runtime, significantly faster startup times, deploy-on-change functionality supported through NetBeans and Eclipse plugins, session persistence during redeployments, and utilities facilitating migration from Tomcat to GlassFish.
Oracle Era
The commercially licensed edition, Oracle GlassFish Server (previously known as Sun GlassFish Enterprise Server and Sun Java System Application Server), originates from Netscape Application Server and integrates technologies from Oracle (TopLink Essentials) and Ericsson (SIP Servlet support). Its open-source counterpart is SailFish, compliant with JSR-289. By 2010, distinctions between the commercial and open-source versions had largely diminished.
- 25 March 2010 – After Oracle's acquisition of Sun Microsystems, a development roadmap was published covering versions 3.0.1 through 4.0, emphasizing clustering, virtualization capabilities, and integration with Oracle Coherence alongside other Oracle products; the open-source community's activities continued independently.
- 28 February 2011 – The release of GlassFish 3.1 introduced ssh-based provisioning, centralized management, clustering, load balancing, and support for both the Web Profile and full Java EE 6 specifications.
- 28 July 2011 – GlassFish 3.1.1 became available, delivering numerous component upgrades along with compatibility for JDK 7 and AIX platforms.
- 29 February 2012 – GlassFish 3.1.2 brought bug corrections, improvements to the administration console, enhanced transaction recovery features, and new thread pool configuration options.
- 17 July 2012 – The minor update GlassFish 3.1.2.2 resolved targeted product issues.
- 12 June 2013 – The significant GlassFish 4.0 release incorporated support for Java EE 7 standards.
- 4 November 2013 – Oracle declared the cessation of commercial support for GlassFish, advising users to transition to Oracle WebLogic Server; meanwhile, open-source development persisted with plans for GlassFish 4.1.
- 9 September 2014 – GlassFish 4.1 was issued with over a thousand bug fixes plus updates to CDI and WebSocket implementations.
- 7 October 2015 – GlassFish 4.1.1 included a variety of bug patches, security enhancements, and component refreshes.
- 31 March 2017 – The release of GlassFish 4.1.2 delivered further bug fixes.
- 21 September 2017 – GlassFish 5.0 debuted as the open-source reference implementation for Java EE 8, completing the specification with JAX-RS 2.1, Servlet 4.0, CDI 2.0, JSON-B 1.0, and Bean Validation 2.0.
Oracle’s strategic direction redefined GlassFish primarily as an open-source reference platform while channeling enterprise customers toward Oracle WebLogic Server for robust commercial support and tighter integration within Oracle’s middleware suite.
Eclipse Period
- In 2017, Oracle contributed the GlassFish source code to the Eclipse Foundation. Within Eclipse, Payara assumed leadership of the GlassFish project with backing from Oracle and Red Hat.
- On 29 January 2019, Eclipse Foundation released GlassFish 5.1, which is functionally identical to Oracle’s GlassFish 5.0 but rebuilt from the donated codebase and re-licensed under EPL version 2.0. It retained Java EE 8 certification without RI status, mainly demonstrating complete source transfer and build compliance. A planned GlassFish version 5.2 targeting Jakarta EE 8 was never published.
- On 31 December 2020, Eclipse launched GlassFish 6.0.0 featuring Jakarta EE 9 implementation that transitioned package namespaces from javax.* to jakarta.* while maintaining functional parity with version 5.1.
- On 5 May 2021, GlassFish version 6.1.0 was released supporting Jakarta EE 9.1 and requiring JDK 11 compatibility.
- On 28 August 2021, GlassFish version 6.2.1 improved compatibility with JDK 17 and introduced Eclipse Exousia—a standalone Jakarta Authorization module—while compiling against JDK versions ranging from eleven through seventeen.
- On 14 December 2022, GlassFish version 7.0.0 was unveiled featuring substantial code refactoring, numerous bug fixes, new capabilities including support for Jakarta Concurrency specifications, recommending JDK version seventeen but maintaining support for JDK eleven as well. Development efforts are strongly supported by Estonian firm OmniFish, which also reinstated commercial support services for GlassFish.
Forks
Various organizations have created their own versions of the GlassFish project by forking it:
Payara Services
Following Oracle's discontinuation of commercial support for GlassFish, Payara Server was introduced in October 2014. It remains open source under the same licensing terms as Oracle GlassFish (a combination of GPL2 and CDDL) and provides optional commercial support via Payara Services Ltd.'s Payara Enterprise offering.
See also
- List of application servers
- WildFly (previously known as JBoss AS)
- IBM WebSphere Application Server
- Oracle WebLogic Server
- Apache TomEE
- Eclipse Jetty
- Quarkus
- Spring Boot
- Apache Geronimo