Skip to content

Upgrade to Payara 7 and Java 21#12043

Open
qqmyers wants to merge 25 commits intoIQSS:developfrom
QualitativeDataRepository:IQSS/12020-Payara7_Java21_update
Open

Upgrade to Payara 7 and Java 21#12043
qqmyers wants to merge 25 commits intoIQSS:developfrom
QualitativeDataRepository:IQSS/12020-Payara7_Java21_update

Conversation

@qqmyers
Copy link
Member

@qqmyers qqmyers commented Dec 12, 2025

What this PR does / why we need it: This PR updates Dataverse to be compatible with Payara 7.2025.2 7.2026.2 and Java 21. Aside from the doc changes (payara6 -> payara7 etc.) the changes were relatively minor - a couple deprecated annotations we use (NotEmpty, NotBlank) were removed and replaced with new ones, and some of the EE related classes we mock in tests now have a few more methods that have to be overridden.

Which issue(s) this PR closes:

Special notes for your reviewer: Someone will need to check the Docker related compose files and documentation to make the relevant updates to Payara and Java. I tried to avoid updating things related to the Keycloak container since it shouldn't need to update to Java 21.

Suggestions on how to test this:

Does this PR introduce a user interface change? If mockups are available, please link/include them here: No

Is there a release notes update needed for this change?: included.

Additional documentation: A good starting point: https://dataverse-guide--12043.org.readthedocs.build/en/12043/installation/prerequisites.html#payara

@qqmyers qqmyers added the Size: 10 A percentage of a sprint. 7 hours. label Dec 12, 2025
@qqmyers qqmyers moved this to Ready for Triage in IQSS Dataverse Project Dec 12, 2025
@qqmyers qqmyers added this to the 6.10 milestone Dec 12, 2025
@coveralls
Copy link

coveralls commented Dec 12, 2025

Coverage Status

coverage: 24.336%. remained the same
when pulling df2fd0a on QualitativeDataRepository:IQSS/12020-Payara7_Java21_update
into 9a5ca93 on IQSS:develop.

@qqmyers
Copy link
Member Author

qqmyers commented Dec 15, 2025

Apparently Payara 7.x has a minor bug - any API call with a colon in it fails. payara/Payara#7777 - looks like we need to wait for 7.2025.3 or 7.2026.1 +

@scolapasta scolapasta moved this from Ready for Triage to On Hold ⌛ in IQSS Dataverse Project Dec 16, 2025
@qqmyers qqmyers moved this from On Hold ⌛ to In Progress 💻 in IQSS Dataverse Project Jan 22, 2026
@qqmyers qqmyers removed the Waiting label Jan 22, 2026
@qqmyers
Copy link
Member Author

qqmyers commented Jan 22, 2026

Apparently Payara 7.x has a minor bug - any API call with a colon in it fails. payara/Payara#7777 - looks like we need to wait for 7.2025.3 or 7.2026.1 +

There's been an unofficial report that this is fixed in 7.2026.1 - can now move forward and try that.

@qqmyers qqmyers moved this from In Progress 💻 to Ready for Review ⏩ in IQSS Dataverse Project Jan 28, 2026
@cmbz cmbz added FY26 Sprint 15 FY26 Sprint 15 (2026-01-14 - 2026-01-28) FY26 Sprint 16 FY26 Sprint 16 (2026-01-28 - 2026-02-11) labels Jan 29, 2026
@wshahn
Copy link

wshahn commented Feb 10, 2026

TASK [dataverse : copy warfile over release] ***********************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "Source /opt/dataverse/dataverse/target/dataverse-6.8.war not found"}

@qqmyers Hit this when building the warfile, could you please refresh your branch when you get a chance? Thanks!

@cmbz cmbz added the FY26 Sprint 17 FY26 Sprint 17 (2026-02-11 - 2026-02-25) label Feb 11, 2026
@wshahn
Copy link

wshahn commented Feb 13, 2026

Tests passed:
Screenshot 2026-02-13 at 4 29 31 PM

@pdurbin
Copy link
Member

pdurbin commented Feb 24, 2026

I was able to get the branch running in Docker after switching to Java 21 and building the base image myself. I made a couple commits in the docs about this:

24cad02 build the base image yourself for new Payara versions
64b6187 explain sdk use

I was able to create a dataset.


#### Update Instructions:

In addition to the standard Payara update instructions and instructions related to Java 21 (do we say more than install Java 21 following standard guidance for your OS?):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The above is just a placeholder, obviously. We should take a look at these:

Copy the following files from the distributed domain.xml version to your domain. I don't know if all of these are required but we don't edit these by default and they have changed over time.
As with the 6.9 release, at least updating the *.p12 files is important (to get new root certs).
cacerts.p12
default-web.xml
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
default-web.xml

server.policy
wss-server-config-1.0.xml
wss-server-config-2.0.xml

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For default-web.xml, copy it over but put in the changes we need.

Either update to put Payara in a /usr/local/payara7 dir or perhaps drop to just /usr/local/payara (at QDR /usr/local/payara is a symbolic link so we can change versions easily)
Any reference to payara6 has to change, e.g. if counter-processor is deployed, the paths in counter-processor-config.yaml and counter_daily.sh have to be updated.

Copy the following files from the distributed domain.xml version to your domain. I don't know if all of these are required but we don't edit these by default and they have changed over time.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note to self, we'll be copying the old domain1 directory, like we did at #11827 and https://github.com/IQSS/dataverse/releases/tag/v6.9

<jacc-provider policy-provider="org.glassfish.exousia.modules.def.DefaultPolicy" name="default" policy-configuration-factory-provider="org.glassfish.exousia.modules.def.DefaultPolicyConfigurationFactory"></jacc-provider>

2) Add the jvm option:
<jvm-options>-Djakarta.security.jacc.PolicyFactory.provider=org.glassfish.exousia.modules.def.DefaultPolicyFactory</jvm-options>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

-Djakarta.security.jacc.policy.provider=org.glassfish.exousia.modules.def.DefaultPolicy should also be added. These are both in the .

@cmbz cmbz added the FY26 Sprint 18 FY26 Sprint 18 (2026-02-25 - 2026-03-11) label Feb 26, 2026
@@ -25,7 +25,7 @@ jobs:
ref: 'refs/pull/${{ github.event.client_payload.pull_request.number }}/merge'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't have a good place to hang this comment off of so I'll just put it here. I know @qqmyers is already looking at stuff in this area.

I'm on 455759e and when I click "Assign Roles to Users/Groups", I get an error:

Image Image

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FWIW: It appears that the rules for JSF have been tightened with Payara 7. Changes are needed in the xhtml for the assign role and revoke role calls, tweaking what's processed and when the dialog is shown to avoid the validation error and to assure that the assign/revoke calls are made. Whether we have similar errors elsewhere is unknown. These pages are somewhat unique in that they have multiple different panes that trigger changes, whereas most of our code has one save button that updates everything.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I re-tested as of aae1cbd and don't see the validation error any more. Thanks, @qqmyers! We can probably resolve this comment soon but I'll leave it open for now.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm leaving this comment open to remind us that we might need to tweak xhtml pages, adding process="@this" or similar. See aae1cbd.

@github-project-automation github-project-automation bot moved this from In Review 🔎 to Ready for QA ⏩ in IQSS Dataverse Project Mar 2, 2026
Comment on lines 94 to 101
# JDK 17 builds disabled due to non-essential fails marking CI jobs as completely failed within
# Github Projects, PR lists etc. This was consensus on Slack #dv-tech. See issue #8094
# (This is a limitation of how Github is currently handling these things.)
#
#include:
# - jdk: '17'
# experimental: true
# status: "Experimental"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@poikilotherm do you think we should make any changes here?

Related (as the comment says):

@wshahn
Copy link

wshahn commented Mar 2, 2026

Passed with payara7 2026.2:
Screenshot 2026-03-02 at 4 15 35 PM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

FY26 Sprint 15 FY26 Sprint 15 (2026-01-14 - 2026-01-28) FY26 Sprint 16 FY26 Sprint 16 (2026-01-28 - 2026-02-11) FY26 Sprint 17 FY26 Sprint 17 (2026-02-11 - 2026-02-25) FY26 Sprint 18 FY26 Sprint 18 (2026-02-25 - 2026-03-11) Size: 10 A percentage of a sprint. 7 hours.

Projects

Status: Ready for QA ⏩

Development

Successfully merging this pull request may close these issues.

Payara 6 community edition has reached its End Of Life bump to OpenJDK 21

6 participants