Eclipse GlassFish 8.0.0 brings Jakarta EE 11 compatibility, virtual thread support, enhanced security, and improved data access through Jakarta Data integration, marking a significant milestone in the server's evolution.
The Eclipse Foundation has released version 8.0.0 of Eclipse GlassFish, the lightweight open-source application server that, for many years, has served as a reference implementation and compatible implementation of JavaEE/Jakarta EE. This release marks a significant milestone after 15 milestone releases led by the team at OmniFish, bringing comprehensive Jakarta EE 11 compatibility and modern Java features to enterprise Java developers.
Jakarta EE 11 Compatibility and Java Requirements
GlassFish 8.0.0 requires JDK 21 as a minimal version, with support for JDK 25, making it a compatible implementation of Jakarta EE 11. This represents a strategic shift in the Java ecosystem, as Jakarta EE 11 requires at least one certified server, and GlassFish was realistically the only server to be certified by that time.
The certification process was complicated by Jakarta EE's decision to also support Java 17 despite the initial plan to support Java 21 only. This dual compatibility requirement put significant pressure on the GlassFish team and OmniFish, who stand behind GlassFish and contribute most of the work on it.
Virtual Thread Support
One of the most significant technical advancements in GlassFish 8.0 is comprehensive support for virtual threads. This includes:
- Managed executors from the Jakarta Concurrency 3.1 specification
- Virtual thread pool from GlassFish Grizzly 5.0 for HTTP and IIOP requests
The implementation allows GlassFish to handle many concurrent requests with minimal overhead. This effort has a long history - soon after Java 21 was released, OmniFish built an extension for GlassFish which runs HTTP requests in virtual threads. However, it was a challenge to add that to the GlassFish project officially because the Grizzly module was not ready to include code that requires Java 21.
In the end, the team managed to add it in Grizzly 5 and GlassFish 8, which require Java 21. To get support for virtual threads in managed executors, OmniFish closely collaborated with Payara on the GlassFish Concurro component, which is also used in their server.
Enhanced Security Features
GlassFish 8.0 provides enhanced security through integration of the MicroProfile JWT Authentication 2.1 and Jakarta Security 4.0 specifications. This allows developers to:
- Inject a JWT-based authentication mechanism
- Combine with secure REST endpoints and user interface pages
The security enhancements represent a significant improvement in how enterprise applications can handle authentication and authorization in modern microservices architectures.
Improved Data Access with Jakarta Data
A highlight of GlassFish 8.0 is the unique support of the new Jakarta Data specification, where GlassFish supports both NoSQL and Persistence (JPA) repositories. The team joined forces with the Eclipse JNoSQL project, which had a reusable Data implementation for NoSQL databases.
OmniFish added support for SQL databases to JNoSQL, creating a comprehensive data access solution. Both projects benefited from this collaboration - GlassFish got support for Data repositories over both NoSQL and JPA entities, and JNoSQL got support for a reusable JPA backend.
The repository pattern defined in Jakarta Data provides an improved developer experience with features such as:
- Reduced boilerplate code
- The ability to organize repositories based on domain models and use cases
- Support for both offset-based and cursor-based pagination
OmniFish's Role and Development Journey
Led by the team at OmniFish since its creation in April 2022 with David Matějček as Project Lead, OmniFish provides direct support for all GlassFish releases to ensure correctness of all administrative tasks and that GlassFish is thoroughly tested.
When asked about the highlights and challenges about the OmniFish journey of 15 milestone releases and the final delivery of GlassFish 8.0.0, Ondro Mihályi told InfoQ: "Every new major release is a challenge in planning, execution, and keeping all things aligned. GlassFish is not a single monolithic project, it's composed of many internal and external modules. Everything needed to be synchronized and all modules released as a final version for the final GlassFish 8 version."
The development process involved significant coordination challenges. At the same time, there was pressure from the Jakarta EE TCK team to provide them early milestones they can run the test suites against. The team had to balance multiple competing priorities while maintaining the quality and stability expected from an enterprise-grade application server.
Performance and Structural Enhancements
The team was working on enhancing GlassFish 7 concurrently with bringing GlassFish 8 to life. They introduced a lot of structural and performance enhancements, including initial JPMS modularization in GlassFish 7.1, which they then merged into GlassFish 8.
These enhancements demonstrate that GlassFish 8 is not only about a new Jakarta EE version, but also brings MicroProfile Health, support for the latest Java version, some new GlassFish-specific features, and production quality guaranteed by its comprehensive test suite and by the OmniFish team that maintains it.
Historical Context and Evolution
GlassFish has a rich history going back 30 years. It was first introduced as the Kiva Enterprise Server in January 1996, the same month as the release of JDK 1.0. Along the way, it had made its way through a number of companies and name changes that include:
- Netscape Application Server (NAS) when Netscape purchased Kiva in 1997
- iPlanet when Sun and Netscape formed an alliance in 1999
- The Sun ONE Application Server (S1AS or SOAS) with the release of version 7 in 2002
- The Sun Java System Application Server (SJSAS) with the release of version 8 in 2004
- Finally as a new open-source project named GlassFish in 2005 with the source code donated from SJSAS
GlassFish 1.0 was a compatible implementation of Java EE 5 in 2006, marking the beginning of its journey as an open-source reference implementation.
Technical Architecture and Implementation
The release represents a significant architectural evolution. GlassFish 8.0.0 is composed of many internal and external modules that needed to be synchronized and released as a final version. This modular architecture allows for more flexible development and deployment scenarios while maintaining the robustness expected from an enterprise application server.
The integration with Grizzly 5.0 for HTTP and IIOP requests demonstrates the server's commitment to modern networking capabilities. The virtual thread pool implementation shows how GlassFish is adapting to the latest Java concurrency features while maintaining backward compatibility where needed.
Production Readiness and Testing
GlassFish 8.0 brings production quality guaranteed by its comprehensive test suite and by the OmniFish team that maintains it. The team's experience with GlassFish, Jakarta EE, Java application development, and Java middleware production support ensures that the server meets enterprise requirements for stability, performance, and security.
The certification process for Jakarta EE 11, combined with the extensive testing performed by OmniFish, provides confidence that GlassFish 8.0 is ready for production deployment in enterprise environments.
Future Implications
This release positions GlassFish as a modern, forward-looking application server that embraces the latest Java features while maintaining compatibility with existing enterprise applications. The support for virtual threads, enhanced security features, and improved data access capabilities make it well-suited for modern microservices architectures and cloud-native deployments.
The collaboration between OmniFish, Eclipse JNoSQL, and other projects in the Jakarta EE ecosystem demonstrates the strength of the open-source community in driving innovation in enterprise Java. As organizations continue to modernize their Java applications, GlassFish 8.0 provides a solid foundation for building and deploying enterprise applications that leverage the latest Java and Jakarta EE features.
More details on this release may be found in the release notes.

Comments
Please log in or register to join the discussion