GlassFish is an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
Jakarta EE
Jakarta EE, formerly Java Platform, Enterprise Edition (Java EE) and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web serv ...
platform
application server
An application server is a server that hosts applications or software that delivers a business application through a communication protocol. For a typical web application, the application server sits behind the web servers.
An application ser ...
project started by
Sun Microsystems
Sun Microsystems, Inc., often known as Sun for short, was an American technology company that existed from 1982 to 2010 which developed and sold computers, computer components, software, and information technology services. Sun contributed sig ...
, then sponsored by
Oracle Corporation
Oracle Corporation is an American Multinational corporation, multinational computer technology company headquartered in Austin, Texas. Co-founded in 1977 in Santa Clara, California, by Larry Ellison, who remains executive chairman, Oracle was ...
, and now living at the
Eclipse Foundation
The Eclipse Foundation AISBL is an independent, Europe-based not-for-profit organization that acts as a steward of the Eclipse open source software development community, with legal jurisdiction in the European Union. It is an organization supp ...
and supported by OmniFish, Fujitsu and Payara.
The supported version under Oracle was called Oracle GlassFish Server. GlassFish is
free software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
and was initially
dual-licensed under two
free software licence
A free-software license is a notice that grants the recipient of a piece of software extensive rights to modify and redistribute that software. These actions are usually prohibited by copyright law, but the rights-holder (usually the author) ...
s: the
Common Development and Distribution License
The Common Development and Distribution License (CDDL) is a free and open-source software license, produced by Sun Microsystems, based on the Mozilla Public License (MPL). Files licensed under the CDDL can be combined with files licensed under oth ...
(CDDL) and the
GNU General Public License
The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
(GPL) with the
Classpath exception
A GPL linking exception modifies the GNU General Public License (GPL) in a way that enables software projects which provide library code to be " linked to" the programs that use them, without applying the full terms of the GPL to the using program. ...
. After having been transferred to Eclipse, GlassFish remained dual-licensed, but the CDDL license was replaced by the
Eclipse Public License
The Eclipse Public License (EPL) is a free and open source software license most notably used for the Eclipse IDE and other projects by the Eclipse Foundation. It replaces the Common Public License (CPL) and removes certain terms relating t ...
(EPL).
Overview
GlassFish is the Eclipse implementation of Jakarta EE (formerly the
reference implementation
In the software development process, a reference implementation (or, less frequently, sample implementation or model implementation) is a program that implements all requirements from a corresponding specification. The reference implementation ...
from Oracle) and as such supports
Jakarta REST,
Jakarta CDI,
Jakarta Security,
Jakarta Persistence
Jakarta Persistence, also known as JPA (abbreviated from the former name Java Persistence API) is a Jakarta EE application programming interface specification that describes the management of relational data in enterprise Java applications.
Pers ...
,
Jakarta Transactions
The Jakarta Transactions (JTA; formerly Java Transaction API), one of the Jakarta EE application programming interface, APIs, enables distributed transactions to be done across multiple X/Open XA resources in a Java (programming language), Java env ...
,
Jakarta Servlet
A Jakarta Servlet, formerly Java Servlet is a Java software component that extends the capabilities of a server. Although servlets can respond to many types of requests, they most commonly implement web containers for hosting web applicat ...
,
Jakarta Faces
Jakarta Faces, formerly Jakarta Server Faces and JavaServer Faces (JSF) is a Java specification for building component-based user interfaces for web applications. It was formalized as a standard through the Java Community Process as part of the ...
,
Jakarta Messaging
The Jakarta Messaging API (formerly Java Message Service or JMS API) is a Java application programming interface (API) for message-oriented middleware. It provides generic messaging models, able to handle the producer–consumer problem, that can ...
, etc. This allows developers to create enterprise applications that are portable and scalable, and that integrate with legacy technologies. Optional components can also be installed for additional services.
Built on a modular kernel powered by
OSGi
OSGi is an open specification and open source project under the Eclipse Foundation.
It is a continuation of the work done by the OSGi Alliance (formerly known as the Open Services Gateway initiative), which was an open standards organization fo ...
, GlassFish runs straight on top of the
Apache Felix
Apache Felix is an open source implementation of the OSGi Core Release 6 framework specification. The initial codebase was donated from the Oscar project at ObjectWeb. The developers worked on Felix for a full year and have made various improvem ...
implementation. It also runs with
Equinox OSGi
In computing, Equinox is a sub-project of the Eclipse project that provides a certified implementation of the OSGi R4.x core framework specification. It is a module runtime that allows developers to implement an application as a set of "bundles" u ...
or Knopflerfish OSGi runtimes.
HK2 abstracts the OSGi module system to provide components, which can also be viewed as services. Such services can be discovered and injected at runtime.
GlassFish is based on
source code
In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer.
Since a computer, at base, only ...
released by Sun and
Oracle Corporation
Oracle Corporation is an American Multinational corporation, multinational computer technology company headquartered in Austin, Texas. Co-founded in 1977 in Santa Clara, California, by Larry Ellison, who remains executive chairman, Oracle was ...
's
TopLink
Oracle TopLink is a mapping and persistence framework for Java developers. TopLink is produced by Oracle and is a part of Oracle's OracleAS, WebLogic, and OC4J servers. It is an object-persistence and object-transformation framework. TopLink p ...
persistence
Persistence or Persist may refer to:
Math and computers
* Image persistence, in LCD monitors
* Persistence (computer science), the characteristic of data that outlives the execution of the program that created it
* Persistence of a number, a ma ...
system. It uses a derivative of
Apache Tomcat
Apache Tomcat (called "Tomcat" for short) is a free and open-source implementation of the Jakarta Servlet, Jakarta Expression Language, and WebSocket technologies. It provides a "pure Java" HTTP web server environment in which Java code can also ...
as the
servlet
A Jakarta Servlet, formerly Java Servlet is a Java software component that extends the capabilities of a server. Although servlets can respond to many types of requests, they most commonly implement web containers for hosting web applicat ...
container for serving web content, with an added component called
Grizzly
The grizzly bear (''Ursus arctos horribilis''), also known as the North American brown bear or simply grizzly, is a population or subspecies of the brown bear inhabiting North America.
In addition to the mainland grizzly (''Ursus arctos horr ...
which uses Java
non-blocking I/O
In computer science, asynchronous I/O (also non-sequential I/O) is a form of input/output processing that permits other processing to continue before the I/O operation has finished. A name used for asynchronous I/O in the Windows API is '' over ...
(NIO) for scalability and speed.
History
Epoch of Sun
* October 2003 - Sun Microsystems released Sun ONE Application Server 7 that supports the J2EE 1.3 specification. It is based on the
iPlanet Application Server
GlassFish is an open-source Jakarta EE platform application server project started by Sun Microsystems, then sponsored by Oracle Corporation, and now living at the Eclipse Foundation and supported by OmniFish, Fujitsu and Payara. The supported v ...
and the J2EE reference implementation A basic version is free to download, but not open source.
* March 2004 - Sun Microsystems released Sun Java System Application Server 8 that supports the J2EE 1.4 specification. In June 2004 update 1 is released. A basic version is free to download, but not open source.
* 8 February 2005 - Sun Microsystems released Sun Java System Application Server 8.1 that supports the J2EE 1.4 specification. This version introduced a major update to web services security (a precursor to the later JASPIC and Jakarta Authentication), Admin Console GUI enhancements, JavaServer Faces 1.1 Support (at this point not yet part of J2EE), performance enhancements, and support for Java SE 5.0. A basic version is free to download, but not open source.
* 6 June 2005 - Sun Microsystems launched the GlassFish project by publishing the vetted source of Sun Java System Application Server. Builds of this early version identity themselves in the log as "sun-appserver-pe9.0".
* 31 January 2006 - Sun Microsystems released Sun Java System Application Server 8.2. This version introduced bundling of the Derby database and Fast Infoset for web services. A basic version is free to download, but not open source.
* 4 May 2006 - Project GlassFish released the 1.0 version (a.k.a. Sun Java System Application Server 9.0) that supports the Java EE 5 specification.
* 15 May 2006 - Sun Java System Application Server 9.0, derived from GlassFish 1.0, is released.
* 8 May 2007 - Project
SailFin was announced at
JavaOne
__NOTOC__
JavaOne is an annual conference first organized in 1996 by Sun Microsystems to discuss Java technologies, primarily among Java developers. It was held in San Francisco, California, typically running from a Monday to Thursday in summer m ...
as a sub-project under Project GlassFish. Project SailFin aims to add
Session Initiation Protocol
The Session Initiation Protocol (SIP) is a signaling protocol used for initiating, maintaining, and terminating communication sessions that include voice, video and messaging applications. SIP is used in Internet telephony, in private IP telepho ...
(SIP)
servlet
A Jakarta Servlet, formerly Java Servlet is a Java software component that extends the capabilities of a server. Although servlets can respond to many types of requests, they most commonly implement web containers for hosting web applicat ...
functionality to GlassFish.
* 17 September 2007 - the GlassFish community released version 2.0 (a.k.a. Sun Java System Application Server 9.1) with full enterprise clustering capabilities,
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
-interoperable Web Services.
* 21 January 2009 - Sun Microsystems and the community released version GlassFish 2.1 (a.k.a. Sun GlassFish Enterprise Server 2.1) which serves as the basis for the Sailfin 1.0 (a.k.a. Sun Communication Application Server 1.0).
* 28 October 2009 - SailFin 2.0 (a.k.a. Sun Communication Application Server 2.0) was released which leverages GlassFish 2.1.1 (a.k.a. Sun GlassFish Enterprise Server 2.1.1) and adds a number of features including high availability, rolling upgrade, flexible network topology, better overload protection, Diameter support, improved diagnosability, Java based DCR files for the load balancer, and more.
* 10 December 2009 - GlassFish 3.0 (a.k.a. Sun GlassFish Enterprise Server 3.0) was released. Being the Java EE reference implementation, this was the first application server to completely implement
Java EE 6 JSR 316. JSR 316 was however approved with reservations. In this version GlassFish adds new features to ease migration from Tomcat to GlassFish. The other main new features are around modularity (GlassFish v3 Prelude already shipped with an
Apache Felix
Apache Felix is an open source implementation of the OSGi Core Release 6 framework specification. The initial codebase was donated from the Oscar project at ObjectWeb. The developers worked on Felix for a full year and have made various improvem ...
OSGi
OSGi is an open specification and open source project under the Eclipse Foundation.
It is a continuation of the work done by the OSGi Alliance (formerly known as the Open Services Gateway initiative), which was an open standards organization fo ...
runtime), startup time (a few seconds), deploy-on-change (provided by NetBeans and Eclipse plugins), and session preservation across redeployments.
Epoch of Oracle
The commercially supported version of GlassFish was known as Oracle GlassFish Server, formerly Sun GlassFish Enterprise Server, and previously Sun Java System Application Server (SJSAS) has a history, along with other
iPlanet
iPlanet was a product brand that was used jointly by Sun Microsystems and Netscape Communications Corporation when delivering software and services as part of a non-exclusive cross marketing deal that was also known as "A Sun, Netscape Alliance". ...
software, going back to
Netscape Application Server Netscape Application Server was an integrated software platform for developing and running transaction-oriented business applications on the web. It was developed originally by Kiva Software, which Netscape acquired in 1997.
When Netscape and Sun ...
. This includes code from other companies such as
Oracle Corporation
Oracle Corporation is an American Multinational corporation, multinational computer technology company headquartered in Austin, Texas. Co-founded in 1977 in Santa Clara, California, by Larry Ellison, who remains executive chairman, Oracle was ...
for TopLink Essentials.
Ericsson
(), commonly known as Ericsson (), is a Swedish multinational networking and telecommunications company headquartered in Stockholm, Sweden. Ericsson has been a major contributor to the development of the telecommunications industry and is one ...
's
SIP Servlet support is included, the opensource version of it is SailFish, developing towards JSR-289.
In 2010, the difference between the commercial and open source edition was already quite small.
* 25 March 2010 - Soon after the acquisition of Sun Microsystems, Oracle issued a Roadmap for versions 3.0.1, 3.1, 3.2 and 4.0 with themes revolving around clustering, virtualization and integration with
Coherence
Coherence is, in general, a state or situation in which all the parts or ideas fit together well so that they form a united whole.
More specifically, coherence, coherency, or coherent may refer to the following:
Physics
* Coherence (physics ...
and other Oracle technologies. The open source community remains otherwise unaffected.
* 28 February 2011 - Oracle Corporation released GlassFish 3.1. This version introduced support for ssh-based provisioning, centralized admin, clustering and load-balancing. It maintains its support for both the Web Profile and full Java EE 6 Platform specifications.
* 28 July 2011 - Oracle Corporation released GlassFish 3.1.1. This is fix release for GlassFish 3.1 with multiple component updates (Weld, Mojarra, Jersey, EclipseLink, ...), JDK 7 support, AIX support and more.
* 29 February 2012 - Oracle Corporation released GlassFish 3.1.2. This release includes bug fixes and new features including administration console enhancements, transaction recovery from a database and new thread pool properties.
* 17 July 2012 - Oracle Corporation released GlassFish 3.1.2.2. This is a "micro" release to address some exceptional issues in the product.
* 12 June 2013 - Oracle Corporation released GlassFish 4.0. This major release brings
Java Platform, Enterprise Edition
Jakarta EE, formerly Java Platform, Enterprise Edition (Java EE) and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web serv ...
7 support.
* 4 November 2013, Oracle announced the future roadmap for Java EE and Glassfish Server, with a 4.1 open-source edition planned and continuing open-sources updates to GlassFish but with an end to commercial Oracle support. Commercial customers have instead been encouraged to transition to Oracle's alternative product,
Oracle WebLogic Server
Oracle Fusion Middleware (FMW, also known as Fusion Middleware) consists of several software products from Oracle Corporation. FMW spans multiple services, including Java EE and developer tools, integration services, business intelligence, co ...
.
* 9 September 2014 - Oracle Corporation released GlassFish 4.1. This release includes many bug fixes (over a thousand) and the latest MR releases of CDI and WebSockets.
* 7 October 2015 - Oracle Corporation released GlassFish 4.1.1. This release includes many bug fixes and security fixes as well as updates to many underlying components.
* 31 March 2017 - Oracle Corporation released GlassFish 4.1.2. This release includes bug fixes.
* 21 September 2017 - Oracle Corporation released GlassFish 5.0. This release includes Java EE 8 Open Source Reference Implementation and that the Java EE 8 umbrella specification and all the underlying specifications (JAX-RS 2.1, Servlet 4.0, CDI 2.0, JSON-B 1.0, Bean Validation 2.0, etc.) are finalized and approved.
Epoch of Eclipse
* 2017 Oracle donated the source code to the Eclipse Foundation. At Eclipse, Payara was leading the GlassFish project, with support from Oracle and Red Hat.
* 29 January 2019 - the Eclipse Foundation released GlassFish 5.1. This release is technically identical to Oracle's GlassFish 5.0 but is fully build from the source code that Oracle transferred to the Eclipse Foundation and which was subsequently relicensed to
EPL 2.0. Like GlassFish 5.0, 5.1 is Java EE 8 certified, but does not have any RI status. The main goal of this release is to prove that all source code has been transferred and can indeed be built into a fully compliant product.
A GlassFish 5.2 release was planned as a Jakarta EE 8 compatible implementation, but was never released. Jakarta EE 8 is functionally identical to Java EE 8, but was created via the Eclipse Foundation Specification Process (EFSP).
* 31 December 2020 - the Eclipse Foundation released GlassFish 6.0.0. This version is functionally largely identical to GlassFish 5.1 but implements Jakarta EE 9. Jakarta EE 9 is functionally identical to Jakarta EE 8 (which is functionally identical to Java EE 8) but has its package and various constants changed from javax.* to jakarta.*
* 5 May 2021 - the Eclipse Foundation released GlassFish 6.1.0. This version is functionally identical to GlassFish 6.0.0 but implements Jakarta EE 9.1. Jakarta EE 9.1 is functionally identical to Jakarta EE 9 (which is functionally identical to Jakarta EE 8 and Java EE 8) but has support for JDK 11. This release requires JDK 11.
* 28 August 2021 - the Eclipse Foundation released GlassFish 6.2.1. This version has improved support for JDK 17 and includes a new component Eclipse Exousia, the standalone Jakarta Authorization implementation. GlassFish 6.2.1 compiles with JDK 11 to JDK 17
* 14 December 2022 - the Eclipse Foundation released GlassFish 7.0.0. This is the first version containing larger refactoring and code cleanup, large amount of bugfixes and also new features. Implements new Jakarta Concurrency specification, and supports JDK 11 but recommends usage of JDK17. The GlassFish 7 development is sponsored to a large degree by the Estonian company OmniFish, which also provides commercial support for GlassFish once again.
Forks
Over the years several companies forked the GlassFish project and created their own distribution:
Payara Services
In response to Oracle’s announcement to end commercial support for GlassFish,
a fork called Payara Server was created and released in October 2014. Payara Server is open source under the same licenses as the original Oracle GlassFish (combined
GPL2 +
CDDL
The Common Development and Distribution License (CDDL) is a free and open-source software license, produced by Sun Microsystems, based on the Mozilla Public License (MPL). Files licensed under the CDDL can be combined with files licensed under o ...
) and has optional commercial support from Payara Services Ltd., via the Payara Enterprise project.
See also
*
List of application servers
This list compares the features and functionality of application servers, grouped by the hosting environment that is offered by that particular application server.
C
* Enduro/X A middleware platform for distributed transaction processing, base ...
*
WildFly
WildFly, formerly known as JBoss AS, or simply JBoss, is an application server written by JBoss, now developed by Red Hat. WildFly is written in Java and implements the Java Platform, Enterprise Edition (Java EE) specification. It runs on multi ...
(formerly JBoss AS)
*
IBM WebSphere Application Server
WebSphere Application Server (WAS) is a software product that performs the role of a web application server. More specifically, it is a software framework and middleware that hosts Java (software platform), Java-based web applications. It is t ...
*
Oracle WebLogic Server
Oracle Fusion Middleware (FMW, also known as Fusion Middleware) consists of several software products from Oracle Corporation. FMW spans multiple services, including Java EE and developer tools, integration services, business intelligence, co ...
*
Apache TomEE
Apache TomEE (pronounced "Tommy") is the Enterprise Edition of Apache Tomcat (Tomcat + Java/Jakarta EE = TomEE) that combines several Java enterprise projects including Apache OpenEJB, Apache OpenWebBeans, Apache OpenJPA, Apache MyFaces and o ...
*
Eclipse Jetty
*
Quarkus
Quarkus is a Java framework tailored for deployment on Kubernetes. Key technology components surrounding it are OpenJDK HotSpot and GraalVM. Quarkus aims to make Java a leading platform in Kubernetes and serverless environments while offerin ...
*
Spring Boot
Spring Boot is an open-source Java framework used for programming standalone, production-grade Spring-based applications with a bundle of libraries that make project startup and management easier. Spring Boot is a convention-over-configuration ...
*
Apache Geronimo
Apache Geronimo is an open source application server developed by the Apache Software Foundation and distributed under the Apache license.
Geronimo 3, the current version, is compatible with the Java Enterprise Edition (Java EE) 6 specification ...
*
References
{{DEFAULTSORT:Glassfish
Web server software programmed in Java
Free software application servers
Sun Microsystems software
Software using the Eclipse Public License
Java enterprise platform
Free software programmed in Java (programming language)
2005 software