Skip to content

Eclipse GlassFish 8.0 Discussion (EE 11)

Arjan Tijms edited this page Jul 14, 2023 · 4 revisions

About this page


Use this page to discuss proposals for Eclipse GlassFish 8.0 API. The primary goal of this release is to add support for Jakarta EE 11. Support for other features and changes are under discussion.

Improving and Modernizing the Codebase

  • Required support for latest JDKs, dropping obsoleted. JDK17 or 21 as the minimum for GF8, it depends also on JEE11.
  • Dropping SecurityManager support (even now it is not good).
  • Rewrite JMX support
  • Reanalyze and rewrite auditlog
  • Fix especially any discovered security issues

Java Module Support

GlassFish7 has to use several --add-opens to be able to work. If all modules would have proper module-info.java, it should not be necessary and maybe we even could remove the reflection in ClassGenerator. I am not sure, but would be the OSGi useful then?

Break out projects

Several implementations of APIs, such as Mojarra and Jersey have always been developed in standalone projects. Others, among which Authentication, Authorization and Transactions have not.

Authorization has recently been extracted from GlassFish into the Exousia project. In order to promote separation of concern, clear module boundaries, and re-use in others projects, we should do the same for Authentication and Transactions at least.

MicroProfile

There's some consensus about the need to discuss MicroProfile support, but there are discussions around the details needed. Which existing components to use? How to integrate? Etc.

Motivation

The connection between MicroProfile and Jakarta EE goes back a long time. A number of the APIs in MicroProfile has originally been proposed for Java EE 8 and were even discussed for the cloud theme of Java EE 7.

Currently many Jakarta EE servers also implement MicroProfile, specifically all the most well known and current ones do:

This leaves GlassFish (and its derivatives) as essentially the only well known and current server not to fully implement MicroProfile yet.

Current situation

GlassFish 7 currently supports (in green) several APIs of the MicroProfile platform:

mp5

All the components shown were trivial to add to GlassFish. Specifically MP Config (functions standalone) and MP JWT (builds on top of Jakarta Security) are trivial to add.

Update: REST Client added in 7.0.6

Future situation

Addition of additional components such as Tracing requires more integration, and therefor warrant more discussion. There are several questions.

Do we want to do this at all? If so, do we develop our own components within the GlassFish project, or do we package existing ones? If we package existing ones, which ones? SmallRye, Helidon, Payara or Apache? Do we create a separate distribution that excluded MicroProfile?

Docker Images

Requested multiple times, but not yet provided are standard docker images for GlassFish. There are multiple questions here, such as which OS to base on, which JDK (variant), and which features we offer beyond just having GF started and available on a port.

In progress: https://github.com/docker-library/official-images/pull/14107

New Admin Console

The current admin console is build using a Faces (JSF) VDL called JSF Template and an associated component set called WoodStock. In the early 2000s those were in use for internal applications in Sun, but haven't seen much usage if any at all outside Sun. Since the early 2000s these have not been updated, and merely dragged along from era to era. It is a technology that was already deemed to be severely outdated mid 2000s.

There is a wish to create the admin console from scratch using "normal" Faces and a modern component set such as PrimeFaces.