Eclipse GlassFish 7 Release Notes

1 Eclipse GlassFish 7 Release Notes

Eclipse GlassFish provides a lightweight, modular server for the development of Jakarta EE 10 applications. It is the first Compatible Implementation for Jakarta EE. It delivers a highly productive platform for developing with the latest Jakarta EE technologies.

For any issue or information on Eclipse GlassFish, see the https://glassfish.org/.

These Release Notes provide late-breaking information about Eclipse GlassFish 7 software and documentation. These Release Notes include summaries of supported hardware, operating environments, and JDK and JDBC/RDBMS requirements. Also included are a summary of new product features in the 7 release, and descriptions and workarounds for known issues and limitations.

Refer to this document prior to installing, configuring, or using Eclipse GlassFish 7 software. Consult this document periodically to view the most up-to-date product information.

What’s New in the Eclipse GlassFish 7 Release?

Eclipse GlassFish 7 is the first Compatible Implementation of the Jakarta EE {jakartaee] Platform.

Eclipse GlassFish 7 also supports the following new features:

For a complete list of the Jakarta EE technologies included in Eclipse GlassFish 7.1.1, see Jakarta EE Standards Support.

For a complete list of the MicroProfile technologies included in Eclipse GlassFish 7.1.1, see MicroProfile Standards Support.

For more information about changes in Eclipse GlassFish 7 and all its minor and patch versions, check out the page about all the Eclipse GlassFish 7 releases.

While Eclipse GlassFish 7 milestone releases focused on providing an application server for developers to explore and begin exploiting the new and updated technologies in the Jakarta EE {jakartaee] platform, the final Eclipse GlassFish 7 version focuses on providing a stable and reliable platform for production use.

The following features of Eclipse GlassFish were improved in the 7.0.0 version or later patch releases:

  • Clusters and centralized management of instances

  • High availability features

  • Startup time and deployment time

  • Performance and memory usage

  • Security

  • Embedded GlassFish

  • Stability and automated test coverage

Hardware and Software Requirements

This section lists the requirements that must be met before installing Eclipse GlassFish Release 7 software.

The following topics are addressed here:

Required JDK Versions

Eclipse GlassFish Release 7.1 requires Java 17 minimum and runs on JDK 17 to JDK 21, experimentally on higher versions. Eclipse GlassFish Release 7.0 requires Java 11 minimum and runs on JDK 11 to JDK 21, experimentally on higher versions.

Also be sure to see Paths and Environment Settings for the JDK Software for important JDK configuration instructions.

It is recommended that any machine that is hosting a Eclipse GlassFish DAS or server instance have a minimum of 1 GB RAM.

Required Free Ports

You must have sixteen unused ports available for the ports Eclipse GlassFish uses. The installation program automatically detects ports that are in use and suggests currently unused ports for the default settings. The initial default port assignments are listed in the following table. If these default port numbers are in use, the installation program assigns a randomly selected port number from the dynamic port range. The selected port number might not be the next available port number.

Table 1-2 Default Port Assignments for Eclipse GlassFish 7

Port Number Usage

4848

Administration Console

8080

HTTP

8081

HTTPS

8686

Pure JMX clients

3700

IIOP

3820

IIOP/SSL

3920

IIOP/SSL with mutual authentication

22

SSH port

9009

Java debugger

7676

JMS provider

Auto-generated from the operating system’s dynamic port range

Message Queue TCP port

Auto-generated from the operating system’s dynamic port range

Message Queue Admin port

9090

GMS TCP start port

9200

GMS TCP end port

Auto-generated between GMS TCP start and end ports

GMS listener port

Auto generated between 2048 and 49151

GMS multicast port

In some situations, such as when multiple domains are running on a single host, port conflicts can arise in the auto-generated ports used by Message Queue and the GMS. To avoid these conflicts, you can configure the JMS host and the GMS to use specific ports.

To Configure Specific Ports for a JMS Host

When you create a JMS Host, Eclipse GlassFish automatically selects ports for the JMS provider (called the portmapper port in Message Queue terminology), the Message Queue TCP port and the Message Queue admin port.

To provide specific values for these ports, use the --mqport and --property options when creating the JMS host:

asadmin> create-jms-host --mqhost hostName --mqport portNumber \
--mquser adminUser --mqpassword adminPassword --target glassfishTarget \
--property imq\\.jms\\.tcp\\.port=tcpPort:imq\\.admin\\.tcp\\.port=adminPort \
jms-host-name
--mqport portNumber

This option specifies the JMS provider port number.

--property imq\\.jms\\.tcp\\.port=tcpPort:imq\\.admin\\.tcp\\.port=``adminPort

The imq.jms.tcp.port and imq.admin.tcp.port properties specify the TCP port and the admin port numbers. The double backslashes (\\) are used in the --properties option to escape the dots in the property names.

To Configure Specific GMS Ports for a Cluster

When you create a cluster, Eclipse GlassFish automatically selects a port for GMS multicast that does not conflict with the GMS multicast port of any other cluster in the domain. Additionally, when you start a cluster, the GMS automatically selects an available port in a specific range for its TCP listener.

If two or more domains are running on the same host, configure the clusters in the domains to ensure that no GMS port conflicts can arise among the clusters. To avoid possible port conflicts, use the --multicast and --properties options when creating the cluster:

asadmin> create-cluster --multicastport multicast-port \
--properties GMS_TCPSTARTPORT=start-port:GMS_TCPENDPORT=end-port \
cluster-name
--multicastport multicast-port

This option specifies the port number for the GMS to use for UDP multicast.

--properties GMS_TCPSTARTPORT=start-port:GMS_TCPENDPORT=``end-port

The GMS_TCPSTARTPORT and GMS_TCPENDPORT properties specify the range of port numbers the GMS is to use when selecting an available port for its TCP listener.

Though you can create a cluster, there is no support for configuration, as this has not been tested.

Message Queue Broker Requirements

Eclipse GlassFish 7 is now bundled with Message Queue (MQ) Broker 5.1.1. Refer to the Open Message Queue Release Notes for complete information about MQ Broker requirements.

Paths and Environment Settings for the JDK Software

Ensure that your JDK configuration settings on all local and remote Eclipse GlassFish hosts adhere to the guidelines listed below. Failure to adhere to these guidelines can cause various problems that may be difficult to trace.

The following topics are addressed here:

Use the JDK Binaries

The following binary files that are used with Eclipse GlassFish must come from the JDK software, not the Java Runtime Environment (JRE) software:

  • java

  • keytool

To meet this requirement, ensure that the bin directory for the JDK software precedes the bin directory for the JRE software in your path.

Set the JAVA_HOME Environment Variable

Before performing any Eclipse GlassFish installation or configuration procedures, set the JAVA_HOME environment variable on the Eclipse GlassFish host machine to point to the correct Java version. Also be sure to add the JAVA_HOME/bin directory to the PATH variable for your environment. The JAVA_HOME variable must be set on all local and remote Eclipse GlassFish hosts.

Set Other Environment Variables As Necessary

All remote asadmin subcommands require the correct version of Java to be available on the affected remote machine. For example, when creating a cluster or server instance on a remote machine, the remote machine uses its local default Java installation, not the Java installation that is on the DAS. Errors will therefore occur if the remote machine uses the wrong Java version.

Depending on the remote subcommand, the errors may not occur when the subcommand is executed, but may occur later, when interacting with a configuration or resource created or modified by the subcommand. For example, when creating a clustered server instance on a remote machine, the error may only first appear when you attempt to deploy an application on that server instance.

This issue is more likely to be encountered when Eclipse GlassFish is installed on the remote server by means of a ZIP file package as you do not have the option to specifically choose your Java version while unzipping a ZIP file.

Depending on what shell is invoked via SSH on the remote host, the JAVA_HOME and PATH environment variables may need to be explicitly set in .bashrc, .cshrc, or some other shell configuration file. This configuration file may differ from the one that is used when you log in to the machine, such as .profile.

Alternatively, you can specifically set the Java path with the AS_JAVA property in the in the as-install/config/asenv.conf file.

Known Issues in Eclipse GlassFish 7

This section describes known issues and any available workarounds for Eclipse GlassFish 7 software.

The following topics are addressed here:

JAXB and JAX-WS no longer part of Jakarta EE platform

Description

Jakarta XML Binding (previous JAXB) and Jakarta XML Web Services (previouly JAX-WS) are part of Jakarta EE platform, but as optional technologies. However, the jars are packaged in GlassFish.

These jars are present only in the Full Platform distribution of GlassFish and not part of the Web Profile distribution.

Workaround

None

Resource validation property is enabled in the JVM option for deployment

Description

A new JVM option for deployment - deployment.resource.validation is introduced in Eclipse GlassFish 7. This property is set to True by default so that each resource is validated during deployment time. This ensures that all resources are created beforehand. This property is applicable for administration server as well as instances when clusters are involved.

However, for deployment of applications containing embedded resource adapter, a connector resource is created after deployment. For the deployment of such applications to succeed, the server(s) must be started with this property set to false. For more information on JVM deployment options see Administering JVM Options.

Workaround

In case you do not want the resource validation to take place during the deployment, you can set this property value to False.

Update Tool and pkg Command no longer part of Eclipse GlassFish

Description

In previous releases, you could update your Eclipse GlassFish software using the pkg command and the Update tool. Since the recent release of Eclipse GlassFish does not require the use of these features, they have been removed from the Eclipse GlassFish installation.

Workaround

No workaround.

Java DB has been replaced by Apache Derby

Description

In the previous releases, Java DB was used as the database for Eclipse GlassFishs. With the release of Eclipse GlassFish 7, Apache Derby 10.13.1.1 has replaced Java DB as the database for Eclipse GlassFishs.

Workaround

No workaround.

Restrictions and Deprecated Functionality

This section describes restrictions and deprecated functionality in Eclipse GlassFish 7.

The following topics are addressed here:

asadmin Subcommands

In Eclipse GlassFish 7, it is recommended that utility options of the asadmin command precede the subcommand. Utility options are options that control the behavior of the asadmin utility, as distinguished from subcommand options. Use of the following options after the subcommand is deprecated.

  • --host

  • --port

  • --user

  • --passwordfile

  • --terse

  • --secure

  • --echo

  • --interactive

Deprecated, Unsupported, and Obsolete Options

Options in Table 1-3 are deprecated or no longer supported, or are obsolete and are ignored.

Table 1-3 Deprecated, Unsupported, and Obsolete Options for asadmin and Subcommands

Option Affected Subcommands

--acceptlang

Unsupported for the create-virtual-server subcommand.

--acls

Unsupported for the create-virtual-server subcommand.

--adminpassword

Unsupported for all relevant subcommands. Use --passwordfile instead.

--autoapplyenabled

Obsolete for the create-http-lb subcommand.

--autohadb

Obsolete for the create-cluster subcommand.

--autohadboverride

Obsolete for the start-cluster subcommand and the stop-cluster subcommand

--blockingenabled

Unsupported for the create-http-listener subcommand.

--configfile

Unsupported for the create-virtual-server subcommand.

--defaultobj

Unsupported for the create-virtual-server subcommand.

--defaultvs

Deprecated for the create-http-listener subcommand. Use --default-virtual-server instead.

--description

Obsolete for the restore-domain subcommand.

--devicesize

Obsolete for the create-cluster subcommand.

--haadminpassword

Obsolete for the create-cluster subcommand.

--haadminpasswordfile

Obsolete for the create-cluster subcommand.

--haagentport

Obsolete for the create-cluster subcommand.

--haproperty

Obsolete for the create-cluster subcommand.

--hosts

Obsolete for the create-cluster subcommand.

--ignoreDescriptorItem

Replaced by the all lowercase option --ignoredescriptoritem in the set-web-context-param subcommand and the set-web-env-entry subcommand.

--mime

Unsupported for the create-virtual-server subcommand.

--password

Unsupported for all remote subcommands. Use --passwordfile instead.

--path

Unsupported for the create-domain subcommand. Use --domaindir instead.

--portbase

Obsolete only for the create-cluster subcommand. This option is still valid in other subcommands such as create-domain, create-instance, and create-local-instance.

--resourcetype

Unsupported for all relevant subcommands. Use --restype instead.

--retrievefile

Obsolete for the export-http-lb-config subcommand.

--setenv

Obsolete for the start-instance subcommand.

--target

Obsolete only for the following subcommands:

  • create-connector-connection-pool

  • create-resource-adapter-config

  • delete-connector-connection-pool

  • delete-connector-security-map

  • delete-jdbc-connection-pool

  • delete-resource-ref

Replaced by an operand in the list-custom-resources subcommand and the list-jndi-entries subcommand.

Applications That Use Apache Derby

The directory location of Apache Derby in Eclipse GlassFish 7 has changed from its location in previous installations. Suppose that you have deployed applications that use Apache Derby databases in your previous server installation, and you upgrade your existing installation to Eclipse GlassFish 7. If you run the asadmin start-database command and successfully start Apache Derby, you could run into problems while trying to run applications that were deployed on your previous server installation.

To solve this problem, you can copy the databases directory from your previous installation to as-install/databases. Make sure the database is not running when you do this.

Alternatively, you can perform these steps:

  1. Use the asadmin start-database command with the --dbhome option pointing to the databases directory in the older version of Apache Derby. For example:

    asadmin start-database --dbhome c:\glassfish\databases
  2. After upgrade, start Eclipse GlassFish 7.

Metro Reliable Messaging in InOrder Delivery Mode

The Metro Reliable Messaging in InOrder Delivery mode has not been tested for high availability in Eclipse GlassFish 7. The feature may work, but it has not been formally tested and is therefore not a supported feature.

No Support for Kerberos on AIX

Eclipse GlassFish 7 does not support Kerberos on the AIX platform.

For the complete report about this issue, see Issue-16728

Features Available Only in the Full Platform

The following features of Eclipse GlassFish 7 are available only in the Full Platform:

  • EJB features that make up the full EJB 3.2 API, such as remote EJB components, message-driven beans, web service EJB endpoints, and the EJB Timer Service

    The EJB 3.2 Lite specification is supported in the Web Profile. This specification allows enterprise beans within web applications and includes support for local stateless session beans, stateful session beans, and singleton session beans.

  • Application Client Container

  • JMS resources

  • Web services

    In the Web Profile, a servlet or EJB component cannot be a web service endpoint. The sun-web.xml and sun-ejb-jar.xml elements that are related to web services are ignored.

  • Message security

  • Jakarta Mail resources

Connector modules that use only outbound communication features and work-management that does not involve inbound communication features are supported in the Web Profile. Other connector features are supported only in the Eclipse GlassFish 7 full platform.

Jakarta EE Standards Support

Table 1-4 lists the Jakarta EE standards implemented in Eclipse GlassFish 7. The table also indicates the distributions in which the implementation of a standard is available.

  • X indicates that the implementation is available in the distribution.

  • - indicates that the implementation is not available in the distribution.

Table 1-4 Jakarta EE Standards Implementations in Eclipse GlassFish 7.1.1

Jakarta EE Standard Version Eclipse GlassFish 7.1.1 Full Platform Eclipse GlassFish 7.1.1 Web Profile

Jakarta EE Specification

10

X

X

Activation

2.1

X

-

Security

3.0.0

X

X

Batch

2.1.1

X

-

Concurrency

3.0.4

X

X

JSON Processing

2.1.3

X

X

JSON Binding

3.0.1

X

X

WebSocket

2.1.1

X

X

Servlet

6.0.0

X

X

Server Pages

3.1.1

X

X

Expression Language

5.0.1

X

X

Debugging Support for Other Languages

2.0

X

X

Standard Tag Library

3.0.2

X

X

MVC

2.1.0

X

X

Java Server Faces

4.0.1

X

X

Annotations

2.1.1

X

X

Transactions

2.0.1

X

X

Persistence

3.1.0

X

X

Managed Beans

2.1

X

X

Interceptors

2.1.0

X

X

Dependency Injection

2.0.1.MR

X

X

Contexts and Dependency Injection

4.0.1

X

X

Enterprise Beans

4.0.1

X

-

RESTful Web Services

3.1.0

X

X

Bean Validation

3.0.2

X

X

Connectors

2.1.0

X

X*

XML Web Services

4.0.3

X

-

SOAP With Attachements

3.0

X

-

XML Binding

4.0.6

X

-

Enterprise Web Services

2.0

X

-

Web Services Metadata

3.0

X

-

Messaging

3.1.0

X

-

Mail

2.1.5

X

-

Authentication

3.0.0

X

X

Authorization

2.1.0

X

-

Deployment

1.7

X

-

Management

1.1

X

-

XML RPC

1.1

X

-

XML Registries

1.0

X

-

* Standalone Connector 1.7 Container only.

MicroProfile Standards Support

Table 1-5 lists the MicroProfile standards implemented in Eclipse GlassFish 7.1.1. The table also indicates the distributions in which the implementation of a standard is available.

  • X indicates that the implementation is available in the distribution.

  • - indicates that the implementation is not available in the distribution.

Table 1-5 MicroProfile Standards Implementations in Eclipse GlassFish 7.1.1

MicroProfile Standard Version Eclipse GlassFish 7.1.1 Full Platform Eclipse GlassFish 7.1.1 Web Profile

MicroProfile Config

3.1

X

-

MicroProfile JWT Authentication

2.1

X

-

MicroProfile REST Client

4.0

X*

-

MicroProfile Health

4.0.1

X**

-

* MicroProfile REST Client is supported since Eclipse GlassFish 7.0.6

** MicroProfile Health is supported since Eclipse GlassFish 7.1.0

Extensions to the Standard APIs

Building on the Jakarta EE and MicroProfile standards, Eclipse GlassFish 7.1.1 provides a number of components and extensions, including the following:

Table 1-6 Components and extensions provided by Eclipse GlassFish 7.1.1

Component Version APIs Description

Eclipse Angus

2.0.5

Jakarta Mail 2.1.5

Provides email services.

Eclipse Epicyro

3.0.0

Jakarta Authentication 3.0.0

Low-level SPI for authentication mechanisms.

Eclipse Exousia

2.1.3

Jakarta Authorization 2.1.0

Low-level SPI for authorization modules.

Eclipse Jersey

3.1.12

Jakarta RESTful Web Services 3.1.0, MicroProfile REST Client 4.0

Framework for RESTful web services and clients.

Eclipse Krazo

3.0.1

Jakarta MVC 2.1.0

MVC framework for web applications.

Eclipse Metro

4.0.6

JAXB, Jakarta XML Web Services 4.0.3

Web services stack.

Eclipse Mojarra

4.0.15

Jakarta Faces 4.0.1

Faces implementation with Mojarra extensions.

Eclipse OpenMQ

6.5.2

Jakarta Messaging 3.1.0

Highly available messaging broker.

Eclipse Parsson

1.1.7

Jakarta JSON Processing 2.1.3

JSON Processing implementation.

Eclipse Soteria

3.0.4

Jakarta Security 3.0.0

Authentication and authorization services.

Eclipse Tyrus

2.1.6

Jakarta WebSocket 2.1.1

WebSocket endpoints framework.

Eclipse Yasson

3.0.4

Jakarta JSON Binding 3.0.1

JSON Binding implementation.

Eclipse WaSP

3.2.2

Jakarta Pages 3.1.1

Pages implementation.

EclipseLink

4.0.9

Jakarta Persistence 3.1.0

Persistence implementation with extensions.

FasterXML Jackson

2.22.0

Alternative JSON processing and binding implementation.

GlassFish Concurro

3.0.2

Jakarta Concurrency 3.0.4

Concurrency utilities.

GlassFish Grizzly

4.0.2

Scalable server framework supporting HTTP, Bayeux, Servlet API, Comet.

GlassFish HK2

3.1.1

Dependency injection framework.

GlassFish Shoal

3.1.0

Clustering framework for high availability.

Helidon Config

3.2.16

MicroProfile Config 3.1

Configuration framework for applications.

Hibernate Validator

8.0.3.Final

Jakarta Validation 3.0.2

Validation implementation.

Nimbus JOSE JWT

10.5

Handling JSON Web Tokens (JWT) and JSON Object Signing and Encryption (JOSE).

OmniFaces MicroProfile JWT

2.0.3

MicroProfile JWT Authentication 2.1

JWT authentication for REST endpoints.

Weld

5.1.6.Final

Jakarta Contexts and Dependency Injection 4.0.1

CDI implementation.

How to Report Problems and Provide Feedback

If you have problems with Eclipse GlassFish 7, provide feedback through one of the following mechanisms:

If using Eclipse GlassFish in production, it’s strongly recommended contacting companies that specialize on professional support for it. These companies are listed at: