GlassFish

Last updated
GlassFish
Original author(s) Sun Microsystems
Developer(s) Eclipse Foundation
Initial release6 June 2005;19 years ago (2005-06-06)
Stable release
7.0.18 [1] / 2 October 2024;7 days ago (2 October 2024)
Repository https://github.com/eclipse-ee4j/glassfish
Written in Java
Operating system Cross-platform
Platform Java
Available inEnglish
Type Application server
License Eclipse Public License 2.0 and GPL2 with GNU Classpath Exception
Website glassfish.org OOjs UI icon edit-ltr-progressive.svg

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. [2] The supported version under Oracle was called Oracle GlassFish Server. GlassFish is free software and was initially dual-licensed under two free software licences: the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL) with the Classpath exception. After having been transferred to Eclipse, GlassFish remained dual-licensed, but the CDDL license was replaced by the Eclipse Public License (EPL). [3]

Contents

Overview

GlassFish is the Eclipse implementation of Jakarta EE (formerly the reference implementation from Oracle) and as such supports Jakarta REST, Jakarta CDI, Jakarta Security, Jakarta Persistence, Jakarta Transactions, Jakarta Servlet, Jakarta Faces, Jakarta Messaging, 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, GlassFish runs straight on top of the Apache Felix implementation. It also runs with Equinox OSGi 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 released by Sun and Oracle Corporation's TopLink persistence system. It uses a derivative of Apache Tomcat as the servlet container for serving web content, with an added component called Grizzly which uses Java non-blocking I/O (NIO) for scalability and speed.

History

Epoch of Sun

Epoch of Oracle

The commercially supported version of GlassFish was known as Oracle GlassFish Server, [20] formerly Sun GlassFish Enterprise Server, and previously Sun Java System Application Server (SJSAS) has a history, along with other iPlanet software, going back to Netscape Application Server. This includes code from other companies such as Oracle Corporation for TopLink Essentials. Ericsson's SIP Servlet support is included, the opensource version of it is SailFish, developing towards JSR-289. [21] In 2010, the difference between the commercial and open source edition was already quite small. [21]


Epoch of Eclipse

Forks

Over the years several companies forked the GlassFish project and created their own distribution:

Payara Server

Payara
Developer(s) Payara Services Ltd (initial code from Oracle Corporation)
Initial releaseOctober 31, 2014;9 years ago (2014-10-31)
Stable release
6.2024.9 / September 3, 2024;36 days ago (2024-09-03)
Repository github.com/payara/Payara
Written in Java
Available inEnglish
Type Application server
License Common Development and Distribution License & GNU General Public License
Website payara.fish

In response to Oracle’s announcement to end commercial support for GlassFish, [39] [40] [41] 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) and has optional commercial support from Payara Services Ltd., via the Payara Enterprise project. [40]

See also

Related Research Articles

<span class="mw-page-title-main">Java (programming language)</span> Object-oriented programming language

Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers write once, run anywhere (WORA), meaning that compiled Java code can run on all platforms that support Java without the need to recompile. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of the underlying computer architecture. The syntax of Java is similar to C and C++, but has fewer low-level facilities than either of them. The Java runtime provides dynamic capabilities that are typically not available in traditional compiled languages.

<span class="mw-page-title-main">OSGi</span> Open standards organisation

OSGi is an open specification and open source project under the Eclipse Foundation.

The Jakarta Messaging 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 be used to facilitate the sending and receiving of messages between software systems. Jakarta Messaging is a part of Jakarta EE and was originally defined by a specification developed at Sun Microsystems before being guided by the Java Community Process.

<span class="mw-page-title-main">Jakarta EE</span> Set of specifications extending Java SE

Jakarta EE, formerly Java Platform, Enterprise Edition 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 services. Jakarta EE applications are run on reference runtimes, which can be microservices or application servers, which handle transactions, security, scalability, concurrency and management of the components they are deploying.

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.

A web container is the component of a web server that interacts with Jakarta Servlets. A web container is responsible for managing the lifecycle of servlets, mapping a URL to a particular servlet and ensuring that the URL requester has the correct access-rights. A web container handles requests to servlets, Jakarta Server Pages (JSP) files, and other types of files that include server-side code. The Web container creates servlet instances, loads and unloads servlets, creates and manages request and response objects, and performs other servlet-management tasks. A web container implements the web component contract of the Jakarta EE architecture. This architecture specifies a runtime environment for additional web components, including security, concurrency, lifecycle management, transaction, deployment, and other services.

<span class="mw-page-title-main">Apache Tomcat</span> Java-based HTTP web server environment

Apache Tomcat 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 run. Thus it is a Java web application server, although not a full JEE application server.

<span class="mw-page-title-main">JAR (file format)</span> Java archive file format

A JAR file is a package file format typically used to aggregate many Java class files and associated metadata and resources into one file for distribution.

Java Management Extensions (JMX) is a Java technology that supplies tools for managing and monitoring applications, system objects, devices and service-oriented networks. Those resources are represented by objects called MBeans. In the API, classes can be dynamically loaded and instantiated. Managing and monitoring applications can be designed and developed using the Java Dynamic Management Kit.

Jakarta XML Binding is a software framework that allows Java EE developers to map Java classes to XML representations. JAXB provides two main features: the ability to marshal Java objects into XML and the inverse, i.e. to unmarshal XML back into Java objects. In other words, JAXB allows storing and retrieving data in memory in any XML format, without the need to implement a specific set of XML loading and saving routines for the program's class structure. It is similar to xsd.exe and XmlSerializer in the .NET Framework.

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-based web applications. It is the flagship product within IBM's WebSphere software suite. It was initially created by Donald F. Ferguson, who later became CTO of Software for Dell. The first version was launched in 1998. This project was an offshoot from IBM HTTP Server team starting with the Domino Go web server.

<span class="mw-page-title-main">Java (software platform)</span> Set of computer software and specifications

Java is a set of computer software and specifications that provides a software platform for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones to enterprise servers and supercomputers. Java applets, which are less common than standalone Java applications, were commonly run in secure, sandboxed environments to provide many features of native applications through being embedded in HTML pages.

Jakarta Persistence, also known as JPA is a Jakarta EE application programming interface specification that describes the management of relational data in enterprise Java applications.

EclipseLink is the open source Eclipse Persistence Services Project from the Eclipse Foundation. The software provides an extensible framework that allows Java developers to interact with various data services, including databases, web services, Object XML mapping (OXM), and enterprise information systems (EIS). EclipseLink supports a number of persistence standards including:

SailFin was an open-source Java application server project led by Sun Microsystems. It implements the JCP SIP Servlet 1.1 specification integrated with the open-source Java EE application server GlassFish.

Java Composite Application Platform Suite (Java CAPS) is a standards-based enterprise service bus software suite from Oracle Corporation. The suite has several components that help to integrate existing applications and deliver new business services in a service-oriented architecture environment. It is a Java EE compliant platform and provides application-to-application integration, business-to-business integration, business process management along with integrated human workflow, an Enterprise Information Portal, extract transform and load (ETL), business activity monitoring and composite application development.

Orion Application Server is a Java EE application server developed by Swedish company IronFlare AB, founded by Magnus Stenman and Karl Avedal. First released in 1999, Orion claims to be the first commercially available application server with full Java EE support. The current stable version is 2.0.7 which is compliant with Java EE version 1.3.

OpenEJB is an open-source, embeddable and lightweight Enterprise JavaBeans Container System and EJB Server, released under the Apache License 2.0. OpenEJB has been integrated with Java EE application servers such as Geronimo and WebObjects.

<span class="mw-page-title-main">WildFly</span> Java application server software

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 specification. It runs on multiple platforms.

References

  1. "Release 7.0.18". 2 October 2024. Retrieved 3 October 2024.
  2. 1 2 "Eclipse GlassFish". projects.eclipse.org.
  3. Beaton, Wayne (10 May 2018). "Eclipse GlassFish". projects.eclipse.org.
  4. "Sun ONE Application Server 7 Release Notes".
  5. "Sun ONE Application Server 7 Debuts". 28 October 2002.
  6. "Java Live | July 30, 2002". developer.java.sun.com. Archived from the original on 4 February 2003. Retrieved 11 January 2022.
  7. "Sun Java System Application Server Platform Edition 8 Release Notes".
  8. "Sun Java System Application Server Platform Edition 8 Update 1 Release Notes". docs.oracle.com. Retrieved 14 April 2023.
  9. Sharples, Rich (5 February 2005). "Sun Java System Application Server 8.1 2005Q1 Announced". TheServersSide.com. Archived from the original on 19 April 2021.
  10. "FishEye: Browsing glassfish/". fisheye5.cenqua.com. Archived from the original on 3 February 2006. Retrieved 11 January 2022.
  11. "Developing and Building Project GlassFish with NetBeans". netbeans.org. Archived from the original on 28 October 2005. Retrieved 11 January 2022.
  12. "Server startup".
  13. Ottinger, Joseph (31 January 2006). "Sun Java System Application Server PE 8.2 has been released". TheServerSide.com. Archived from the original on 19 April 2021.
  14. "What's New in the 8.2 Release (Sun Java System Application Server Platform Edition 8.2 Release Notes)".
  15. Lynch, Regina (15 May 2006). "Sun Java System Application Server PE 9.0 has been released". TheServerSide.com. Archived from the original on 19 September 2020.
  16. "The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 289". jcp.org.
  17. "O'Reilly Media - Technology and Business Training". www.oreillynet.com. Retrieved 2018-11-22.
  18. "GlassFish v3 adds support for Tomcat-style valves". Archived from the original on 2008-09-06. Retrieved 2008-09-07.
  19. Eduardo Pelegri-Llopart (5 November 2008). "Saved Session State in GlassFish v3 Prelude".
  20. "Oracle GlassFish Server: Frequently Asked Questions" (PDF).
  21. 1 2 "Welcome - Oracle Community". community.oracle.com.
  22. "GlassFish Server 3.1.2.2 Now Available". blogs.oracle.com.
  23. "Java EE 7 / GlassFish 4.0 Launch Coverage". blogs.oracle.com.
  24. "Java EE and GlassFish Server Roadmap Update". blogs.oracle.com.
  25. McAllister, Neil (2013-11-04). "Want a support contract for GlassFish 4.0? Tough luck, says Oracle". The Register .
  26. "GlassFish Server Open Source Edition 4.1 Released!". blogs.oracle.com.
  27. Delabassee, David. "GlassFish 4.1.1 is now available!". blogs.oracle.com.
  28. Kalyandurga, Yamini. "GlassFish 4.1.2 Released". blogs.oracle.com.
  29. Delabassee, David. "Java EE 8 and GlassFish 5.0 Released!". blogs.oracle.com.
  30. Lyons, Will. "Moving Forward with Eclipse GlassFish at Jakarta EE". blogs.oracle.com.
  31. https://www.linux-magazine.com/Online/News/Oracle-Donating-Java-EE-to-the-Eclipse-Foundation
  32. Guindon, Christopher. "Eclipse GlassFish 5.1 is Released - The Eclipse Foundation". www.eclipse.org.
  33. "Jakarta EE 8 Status". 18 March 2019.
  34. "TCK Results".
  35. "GlassFish 7.0 Delivers Support for JDK 17 and Jakarta EE 10". InfoQ. Retrieved 2023-01-10.
  36. "Contributors to eclipse-ee4j/glassfish". GitHub. Retrieved 14 April 2023.
  37. "OmniFish on Providing Support for Jakarta EE 10 and GlassFish 7". InfoQ. Retrieved 14 April 2023.
  38. "Eclipse GlassFish". 31 March 2023. Retrieved 14 April 2023 via GitHub.
  39. "Home". Payara Services Ltd. Retrieved 2023-11-27.
  40. 1 2 "Java EE and GlassFish Server Roadmap Update (The Aquarium)".
  41. "GlassFish Became The Killer AppServer And Then Changed The Name : Adam Bien's Weblog".