Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
e6815c0
Removed magical OrderedSet replacements
dmatej Mar 31, 2026
c27d7e8
Added ConnectorConfigPropertySetDescriptor interface
dmatej Mar 31, 2026
345d677
Removed duplicit getMergedActivationConfigProperties
dmatej Mar 31, 2026
4042bcb
Update docs and web to clarify that Embedded GlassFish is for product…
OndroMih Apr 4, 2026
d050157
Merge pull request #25965 from dmatej/dol-ordered-set
dmatej Apr 4, 2026
b9e2987
Remove the repackaged Jackson XML Bind annotations
OndroMih Apr 4, 2026
ef298d4
Fixes PAM login module
avpinchuk Apr 6, 2026
3af7200
Fixes Reference Manual
avpinchuk Apr 6, 2026
a52944f
Add test case for basic login scenarios
avpinchuk Apr 6, 2026
997df29
Upgrade maven security plugin to 1.0.21 to support Java 26
OndroMih Apr 10, 2026
f2e14db
Merge pull request #25971 from avpinchuk/pam-realm
dmatej Apr 10, 2026
fc1e564
Few tests to cover NetUtils behavior
dmatej Apr 4, 2026
82cc13d
Fixed tests
dmatej Apr 8, 2026
1c473e4
Deleted isThisHostLocal
dmatej Apr 8, 2026
27c64dc
Refactoring around hostnames
dmatej Apr 8, 2026
9479689
Fixed JMX client hostname
dmatej Apr 8, 2026
f63f085
Improved getHostIPs, fixed tests
dmatej Apr 8, 2026
749f28a
Fixed ClusterITest - instead of port -1 now null is possible
dmatej Apr 8, 2026
b778b2c
Separated test for windows and linux specific IPv6 addresses
dmatej Apr 8, 2026
6186e2b
Deleted RemoteInstanceCommandHelper class
dmatej Apr 10, 2026
11cabd4
AdminGUI pom cleanup, target: "SSH" string
dmatej Apr 10, 2026
738cae6
Updated note about the staging profile
dmatej Apr 10, 2026
f6c6b1c
Fixed Github to GitHub
dmatej Apr 10, 2026
8cf645d
Version table formatting
dmatej Apr 10, 2026
014a14f
Updated security recommendations
dmatej Apr 10, 2026
fc805e7
Added link to Security Considerations
dmatej Apr 10, 2026
f863ff5
The list of old tests was made shorter, easier to read, removed ejb_g…
dmatej Apr 10, 2026
fd13430
Removed list of repositories from CONTRIBUTING.md which was not maint…
dmatej Apr 10, 2026
d50f83c
Added download links
dmatej Apr 10, 2026
ad76d44
Added info about contributions and sponsorship
dmatej Apr 10, 2026
ea54bc1
Merge pull request #25972 from dmatej/hostname
dmatej Apr 10, 2026
e641792
Fixed ManageCat link
dmatej Apr 10, 2026
fe2547a
ClusterITest - there are two more ports props
dmatej Apr 10, 2026
7661fd5
Update README.md
dmatej Apr 10, 2026
cafaeae
Upgrade jsftemplating to 4.2.0
OndroMih Apr 10, 2026
90090d7
Merge pull request #25977 from OndroMih/ondromih-2026-04-jsftemplatin…
dmatej Apr 11, 2026
139f181
Merge pull request #25975 from dmatej/readme
dmatej Apr 11, 2026
11c41d8
Updated docs after release of 8.0.1
dmatej Apr 11, 2026
88f7659
Merge pull request #25979 from dmatej/docs-release801
dmatej Apr 12, 2026
26ee1c1
Fix MP Config packaging in Embedded GF Web, simplify in All
OndroMih Apr 15, 2026
66b3a30
Merge pull request #25981 from OndroMih/ondromih-2026-04-fix-mp-confi…
OndroMih Apr 15, 2026
690aefc
Merge remote-tracking branch 'origin/master' into 9.0
arjantijms Apr 17, 2026
199ee37
Merge branch '9.0' of git@github.com:arjantijms/glassfish.git into 9.0
arjantijms Apr 17, 2026
554072f
glassfish9 for docker
arjantijms Apr 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 1 addition & 16 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,25 +14,10 @@ developer and production focused tools and features.

## Developer resources

Information regarding source code management, builds, coding standards, and
more.
Information regarding source code management, builds, coding standards, and more.

* https://projects.eclipse.org/projects/ee4j.glassfish/developer

The project maintains the following source code repositories

* https://github.com/eclipse-ee4j/glassfish-ha-api
* https://github.com/eclipse-ee4j/glassfish-logging-annotation-processor
* https://github.com/eclipse-ee4j/glassfish-shoal
* https://github.com/eclipse-ee4j/glassfish-cdi-porting-tck
* https://github.com/eclipse-ee4j/glassfish-jsftemplating
* https://github.com/eclipse-ee4j/glassfish-hk2-extra
* https://github.com/eclipse-ee4j/glassfish-hk2
* https://github.com/eclipse-ee4j/glassfish-fighterfish
* https://github.com/eclipse-ee4j/glassfish
* https://github.com/eclipse-ee4j/glassfish-maven-embedded-plugin
* https://github.com/eclipse-ee4j/bvtck-porting

## Eclipse Contributor Agreement

Before your contribution can be accepted by the project team contributors must
Expand Down
127 changes: 78 additions & 49 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,50 @@
# Eclipse GlassFish

[Eclipse GlassFish](https://projects.eclipse.org/projects/ee4j.glassfish) is a Jakarta EE compatible implementation sponsored by the Eclipse Foundation.
[Eclipse GlassFish](https://projects.eclipse.org/projects/ee4j.glassfish) is a Jakarta EE compatible implementation
owned by the Eclipse Foundation and developed and maintained by the community.

Information about contributions to the project and partially to the whole ecosystem can be found here:
* [GlassFish Project Web Site](https://projects.eclipse.org/projects/ee4j.glassfish/who)
* [EE4J Project Group Web Site](https://projects.eclipse.org/projects/ee4j/who)
* [GitHub Insights](https://github.com/eclipse-ee4j/glassfish/graphs/contributors)

There's much more work done on project's open source dependencies too.
Please consider [contributing](CONTRIBUTING.md) or [sponsoring](https://www.eclipse.org/sponsor) of related projects,
[contributing individuals and companies](https://docs.github.com/en/sponsors/sponsoring-open-source-contributors)
or [buying their services.](#professional-services-and-enterprise-support)

## 📋 Quick Links

- [Download Links](#download-links)
- [Release Notes](https://github.com/eclipse-ee4j/glassfish/releases)
- [Building Instructions](#building)
- [Basic Usage](#basic-usage)
- [Security Considerations](#security-considerations)
- [Professional Support](#professional-services-and-enterprise-support)

## 🔄 Version Compatibility
## 📦 Download Links

| GlassFish Version | Jakarta EE Version | Java Requirements |
|-------------------|-------------------|-------------------|
| 8.0.0 | Jakarta EE 11 | Java 21, 25 |
| 7.1.0 | Jakarta EE 10 | Java 17, 21, 25 |
| 7.0.25 | Jakarta EE 10 | Java 11, 17, 21 |
| 6.2.5 | Jakarta EE 9.1 | Java 11, 17 |
| 6.1.0 | Jakarta EE 9.1 | Java 11 |
| 6.0.0 | Jakarta EE 9 | Java 8 |
| 5.1.0 | Java EE 8 / Jakarta EE 8 | Java 8 |
* [Eclipse Downloads](https://download.eclipse.org/justj/?file=ee4j/glassfish)
* Maven Central:
* [GlassFish Server Full Profile](https://central.sonatype.com/artifact/org.glassfish.main.distributions/glassfish/versions)
* [GlassFish Server Web Profile](https://central.sonatype.com/artifact/org.glassfish.main.distributions/web/versions)
* [Embedded GlassFish All](https://central.sonatype.com/artifact/org.glassfish.main.extras/glassfish-embedded-all/versions)
* [Embedded GlassFish Web](https://central.sonatype.com/artifact/org.glassfish.main.extras/glassfish-embedded-web/versions)
* Docker Images on GitHub:
* [GlassFish Server Full Profile](https://github.com/eclipse-ee4j/glassfish.docker/pkgs/container/glassfish)
* [Embedded GlassFish All](https://github.com/eclipse-ee4j/glassfish.docker/pkgs/container/embedded-glassfish)

## 📦 Distribution
## 🔄 Version Compatibility

After building, find distributions at:
- **GlassFish Server Full Profile**: `appserver/distributions/glassfish/target/glassfish.zip`
- **GlassFish Server Web Profile**: `appserver/distributions/web/target/web.zip`
- **Embedded GlassFish All**:
`appserver/extras/embedded/all/target/glassfish-embedded-all.jar`
- **Embedded GlassFish Web**:
`appserver/extras/embedded/web/target/glassfish-embedded-web.jar`
| GlassFish Version | Jakarta EE Version | Java Requirements |
|:------------------|:-------------------|:------------------|
| 8.0.0 | 11 | 21, 25 |
| 7.1.0 | 10 | 17, 21, 25 |
| 7.0.25 | 10 | 11, 17, 21 |
| 6.2.5 | 9.1 | 11, 17 |
| 6.1.0 | 9.1 | 11 |
| 6.0.0 | 9 | 8 |
| 5.1.0 | 8 and Java EE 8 | 8 |

## Building

Expand Down Expand Up @@ -58,10 +73,19 @@ If you use Maven 3.9+, we recommend that you copy the `.mvn/maven.config.templat
If you want to see more logs you can use the `-Dtest.logLevel=FINEST` option set to an appropriate log level.
Note that this applies just for tests which are executed by Maven and which use the **GlassFish Java Util Logging Extension (GJULE)**.

### 📦 Distribution

After building, find distributions at:
- **GlassFish Server Full Profile**: `appserver/distributions/glassfish/target/glassfish.zip`
- **GlassFish Server Web Profile**: `appserver/distributions/web/target/web.zip`
- **Embedded GlassFish All**:
`appserver/extras/embedded/all/target/glassfish-embedded-all.jar`
- **Embedded GlassFish Web**:
`appserver/extras/embedded/web/target/glassfish-embedded-web.jar`

### Special Profiles

* `staging` - In some development stages it may happen that some dependencies are available just in the OSSRH staging repository.
Then you have to use this profile, which is not enabled by default.
* `staging` - This profile was used formerly to access the Staging Maven repository. At this time the repository is not available any more and the profile should not be used.
* `jacoco` - enables the [JaCoCo](https://www.eclemma.org/jacoco/) agent in tests, so you can import its output to your editor, i.e. Eclipse, and see the code coverage.
* `jacoco-merge` - merges all JaCoCo output files found in subdirectories and merges them into one. It is useful to see code which wasn't even touched by tests.

Expand Down Expand Up @@ -89,28 +113,28 @@ They are quite old and have high technical debt, but at this moment they still p

:warning: Some of the scripts do in-place filtering or generate other sources which remain and later affect subsequent executions. You have to remove those changes manually.

* `./runtests.sh batch_all` - Usual time: 1 minute
* `./runtests.sh cdi_all` - Usual time: 6 minutes
* `./runtests.sh connector_group_1` - Usual time: 16 minutes
* `./runtests.sh connector_group_2` - Usual time: 3 minutes
* `./runtests.sh connector_group_3` - Usual time: 4 minutes
* `./runtests.sh connector_group_4` - Usual time: 16 minutes
* `./runtests.sh deployment_all` - Usual time: 8 minutes
* `./runtests.sh ejb_group_1` - Usual time: 10 minutes
* `./runtests.sh ejb_group_2` - Usual time: 7 minutes
* `./runtests.sh ejb_group_3` - Usual time: 18 minutes
* `./runtests.sh ejb_group_embedded` - Usual time: 4 minutes
* `./runtests.sh ejb_group_all` - Usual time: 4 minutes
* `./runtests.sh jdbc_all` - Usual time: 20 minutes
* `./runtests.sh naming_all` - Usual time: 2 minutes
* `./runtests.sh persistence_all` - Usual time: 3 minutes
* `./runtests.sh security_all` - Usual time: 8 minutes
* `./runtests.sh web_jsp` - Usual time: 8 minutes
* `./runtests.sh webservice_all` - Usual time: 10 minutes
* `./runtests.sh ejb_web_all` - Usual time: 4 minutes
* `./runtests.sh ql_gf_web_profile_all` - Usual time: 2 minutes
* `./runtests.sh ql_gf_full_profile_all` - Usual time: 4 minutes

```
* ./runtests.sh batch_all # Usual time: 1 minute
* ./runtests.sh cdi_all # Usual time: 6 minutes
* ./runtests.sh connector_group_1 # Usual time: 16 minutes
* ./runtests.sh connector_group_2 # Usual time: 3 minutes
* ./runtests.sh connector_group_3 # Usual time: 4 minutes
* ./runtests.sh connector_group_4 # Usual time: 16 minutes
* ./runtests.sh deployment_all # Usual time: 8 minutes
* ./runtests.sh ejb_group_1 # Usual time: 10 minutes
* ./runtests.sh ejb_group_2 # Usual time: 7 minutes
* ./runtests.sh ejb_group_3 # Usual time: 18 minutes
* ./runtests.sh ejb_group_embedded # Usual time: 4 minutes
* ./runtests.sh jdbc_all # Usual time: 20 minutes
* ./runtests.sh naming_all # Usual time: 2 minutes
* ./runtests.sh persistence_all # Usual time: 3 minutes
* ./runtests.sh security_all # Usual time: 8 minutes
* ./runtests.sh web_jsp # Usual time: 8 minutes
* ./runtests.sh webservice_all # Usual time: 10 minutes
* ./runtests.sh ejb_web_all # Usual time: 4 minutes
* ./runtests.sh ql_gf_web_profile_all # Usual time: 2 minutes
* ./runtests.sh ql_gf_full_profile_all # Usual time: 4 minutes
```
* many tests under appserver/tests subdirectories; they are still waiting for someone's attention.

### Pull request workflow
Expand All @@ -127,11 +151,15 @@ Build server results of pull requests can be found at [CI Glassfish](https://ci.

## Security Considerations

For production deployments, consider the following security measures:

* **Disable the Admin Console**: The web-based Administration Console should be disabled in production environments to reduce attack surface and prevent CSRF attacks where malicious links can execute admin commands. Use `asadmin set server.admin-service.property.adminConsoleStartup=never` and restart the domain.
* **Enable Secure Admin**: Use `asadmin enable-secure-admin` to secure administrative communications.
* **Use strong passwords**: Change default passwords and use strong authentication.
> [!IMPORTANT]
> For production deployments, consider the following security measures:
> * **Don't use domain1**: The `domain1` can be used just in automated tests but never on production as it contains
private keys which are implicitly compromised. You should create a new domain for your environment.
> * **Disable the Admin Console**: The web-based Administration Console should be disabled in production environments
to reduce attack surface and prevent CSRF attacks where malicious links can execute admin commands.
Use `asadmin set server.admin-service.property.adminConsoleStartup=never` and restart the domain.
> * **Enable Secure Admin**: Use `asadmin enable-secure-admin` to secure administrative communications.
> * **Use strong passwords**: Change default passwords and use strong authentication.

For comprehensive security guidance, see the [Security Guide](docs/latest/security-guide.html).

Expand All @@ -143,4 +171,5 @@ The Eclipse GlassFish project does not endorse or recommend any of the companies

Professional Services and Enterprise support are available through following companies:
- [OmniFish](https://omnifish.ee/solutions/#support)
- [ManageCat](https://www.managecat.com/services-and-support/eclipse-glassfish-enterprise-support)
- [ManageCat](https://www.managecat.com/services-and-support)

8 changes: 4 additions & 4 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
In this example we assume 8.0.1.
If any step failed, you have to resolve the issue and start from the appropriate step again.

1. Create a release branch RELEASE_8.0.1 and push it to the Eclipse GlassFish Github repository.
1. Create a release branch RELEASE_8.0.1 and push it to the Eclipse GlassFish GitHub repository.
2. Open [glassfish-release](https://ci.eclipse.org/glassfish/view/GlassFish/job/glassfish-release)
3. Click [Build with parameters](https://ci.eclipse.org/glassfish/view/GlassFish/job/glassfish-release/build) in menu.
- `releaseVersion` = `8.0.1`
Expand All @@ -23,14 +23,14 @@ If any step failed, you have to resolve the issue and start from the appropriate
you can deploy to Maven Central Snapshots using [glassfish-deploy-snapshots](https://ci.eclipse.org/glassfish/job/glassfish-deploy-snapshot/)
and refer zip from the build or from Maven Central Snapshots (same file). As another alternative you can run the TCK on any other
infrastructure.
9. Create the release on Github: click ["Draft a new release"](https://github.com/eclipse-ee4j/glassfish/releases)
9. Create the release on GitHub: click ["Draft a new release"](https://github.com/eclipse-ee4j/glassfish/releases)
10. Create the release on Eclipse: ["Create a new release"](https://projects.eclipse.org/projects/ee4j.glassfish/create-release)
11. If it is a version with important feature changes, ask for a release review. Remember that it will take more than week.
12. Create the release on Glassfish.org. Do a PR for the **main** branch with:
- an update for the website in [`docs/website/src/main/resources`](https://github.com/eclipse-ee4j/glassfish/tree/master/docs/website/src/main/resources):
- in [`download_gf8.md`](https://github.com/eclipse-ee4j/glassfish/tree/master/docs/website/src/main/resources/download_gf7.md),
create a section for the new version at the top, based on the previous version. Update the info based on the release notes in github,
e.g. https://github.com/eclipse-ee4j/glassfish/releases/tag/8.0.1
create a section for the new version at the top, based on the previous version.
Update the info based on the release notes on [GitHub](https://github.com/eclipse-ee4j/glassfish/releases)
- in [`download.md`](https://github.com/eclipse-ee4j/glassfish/tree/master/docs/website/src/main/resources/download.md),
replace information in the "Eclipse GlassFish 8.x" section at the top with info for the new version in `download_gf8.md`
- check [`README.md`](https://github.com/eclipse-ee4j/glassfish/blob/master/docs/website/src/main/resources/README.md),
Expand Down
93 changes: 53 additions & 40 deletions appserver/admingui/common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -40,84 +40,97 @@

<dependencies>
<dependency>
<groupId>org.glassfish.main.common</groupId>
<artifactId>common-util</artifactId>
<groupId>org.glassfish.main.admingui</groupId>
<artifactId>console-plugin-service</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.authentication</groupId>
<artifactId>jakarta.authentication-api</artifactId>
<groupId>org.glassfish.main.admin</groupId>
<artifactId>rest-client</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.glassfish.main.admingui</groupId>
<artifactId>console-plugin-service</artifactId>
<groupId>org.glassfish.main.common</groupId>
<artifactId>common-util</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jsftemplating</groupId>
<artifactId>jsftemplating</artifactId>
<groupId>org.glassfish.main.cluster</groupId>
<artifactId>cluster-common</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jsftemplating</groupId>
<artifactId>jsftemplating-dt</artifactId>
<groupId>org.glassfish.main.security</groupId>
<artifactId>security</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>


<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<groupId>org.glassfish.expressly</groupId>
<artifactId>expressly</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.servlet.jsp</groupId>
<artifactId>jakarta.servlet.jsp-api</artifactId>
<groupId>org.glassfish.mojarra</groupId>
<artifactId>mojarra</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.el</groupId>
<artifactId>jakarta.el-api</artifactId>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.expressly</groupId>
<artifactId>expressly</artifactId>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.cdi</groupId>
<artifactId>jakarta.cdi-api</artifactId>
<groupId>org.glassfish.jsftemplating</groupId>
<artifactId>jsftemplating</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.cdi</groupId>
<artifactId>jakarta.cdi-el-api</artifactId>
<groupId>org.glassfish.jsftemplating</groupId>
<artifactId>jsftemplating-dt</artifactId>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.glassfish.mojarra</groupId>
<artifactId>mojarra</artifactId>
<groupId>jakarta.authentication</groupId>
<artifactId>jakarta.authentication-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<groupId>jakarta.el</groupId>
<artifactId>jakarta.el-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<groupId>jakarta.enterprise</groupId>
<artifactId>jakarta.enterprise.cdi-api</artifactId>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.glassfish.main.admin</groupId>
<artifactId>rest-client</artifactId>
<version>${project.version}</version>
<groupId>jakarta.cdi</groupId>
<artifactId>jakarta.cdi-el-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.main.security</groupId>
<artifactId>security</artifactId>
<version>${project.version}</version>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.servlet.jsp</groupId>
<artifactId>jakarta.servlet.jsp-api</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
Expand Down
Loading
Loading