
The Payara Monthly Catch -September 2025
Welcome aboard the September issue of The Monthly Catch! With summer holidays wrapping up, the Java world is back […]
One of the most daunting tasks organizations face is keeping pace with fast evolving technological landscapes, while ensuring existing applications remain robust and functional. If you’re still running applications on Java EE 7/8, the release of Jakarta EE 10 sets the upgrade clock ticking. Of course you can keep running such applications with a Payara Enterprise 5 plan. However, if you need to upgrade to take advantage of the many new features in Jakarta EE 10, then read on!
Payara 6 CommunityandPayara 6 Enterpriseare ready for use with Jakarta EE 10.
However, in order reduce disruptions to operations, the upgrade to Jakarta EE 10 should be carried out with as little downside as possible. How do you identify what changes need to be made to your existing applications? How do you ensure that these changes won’t break existing functionality or introduce new bugs? And how can you possibly execute this transition efficiently when your development team is already stretched thin?
Your first attempt at upgrading to Jakarta EE 10 would be to
This can be very challenging, but it is the normal behaviour to follow to upgrade an older application to Jakarta 10. However, it would be a big productivity boost if you could identify upfront what possible challenges the upgrade process could present. Enter the Payara Upgrade Advisor Tool.
The Payara Upgrade Advisor Tool is a Maven Plugin utility tool that offers advice about specific changes introduced in Jakarta EE 10 that can impact Java EE 8 or Jakarta EE 9 applications. The upgrade advisor will scan your project and identify API changes in Jakarta EE 10 that can impact any part of your application.
The tool can be run directly from the command line without any extra configuration required and is freely available inMaven Central.
Run the following command on the root of your project folder:
mvn fish.payara.advisor:advisor-maven-plugin:1.0:advise
The Advisor tool will output the summary details:
[INFO] Showing Advisories
[INFO] ***************
[INFO] Line of code: 14 | Expression: public String registerConfigProvider(String s, Map map, String s1, String s2, String s3)
Source file: TestAuthConfigFactory.java
Jakarta Authentication 3.0 Issue # 87
jakarta.security.auth.message.config.AuthConfigFactory.registerConfigProvider was changed from
String registerConfigProvider(String className, Map properties, String layer, String appContext, String description)
to
String registerConfigProvider(String className, Map<String, String> properties, String layer, String appContext, String description)
This issue won't affect your application.
The recommendation is to take care of the generic version.
[INFO] Line of code: 20 | Expression: public Class[] getSupportedMessageTypes()
Source file: TestAuthModule.java
Jakarta Authentication 3.0 Issue # 87
jakarta.security.auth.message.module.ServerAuthModule.getSupportedMessageTypes was changed from
Class[] getSupportedMessageTypes()
to
Class<?>[] getSupportedMessageTypes()
This issue won't affect your application.
The recommendation is to take care of the generic version.
The following is the structure of the Advisor’s Summary:
Consider the following code:
package fish.payara.upgrade;
import jakarta.json.bind.annotation.JsonbProperty;
public class JsonBeanTest {
@JsonbProperty(nillable = true)
private String name;
}
In Jakarta EE 10 theJakarta JSON Binding 3.0 API’s @JsonbProperty annotation was modified: Its nillable attribute has been marked as deprecated.
The upgrade advisor will report it as such when analyzing this code snippet and will present advice in what to do regarding this change:
[WARNING] Line of code: 7 | Expression: @JsonbProperty(nillable = true)
Source file: JsonBeanTest.java
Jakarta JSON Binding 3.0
property nillable from the JsonbProperty annotation was deprecated.
This issue won't affect your application.
and the recommendation is to stop use of the deprecated property nillable and
start to use the JsonbNillable annotation.
From the message we can see that the advisor recommends using the new annotation JsonbNillable instead, like this:
package fish.payara.upgrade;
import jakarta.json.bind.annotation.JsonbNillable;
import jakarta.json.bind.annotation.JsonbProperty;
public class JsonBeanTest {
@JsonbProperty
@JsonbNillable
private String name;
}
Developers are encouraged to follow the recommendations given by the advisor to circumvent most of the challenges and pain points involved in the upgrade of any application to Jakarta EE 10.
The following are the advantages when using this tool:
That’s how you can use the Upgrade Advisor Tool to increase your speed and make your old Jakarta EE applications compatible with Jakarta EE 10.
Remember,Payara 6 Enterprisegives you a production optimized and commercially supported runtime for your mission-critical projects, combining our top-rated support and 10 year software lifecycle.
Share:
Welcome aboard the September issue of The Monthly Catch! With summer holidays wrapping up, the Java world is back […]
We’re excited to announce that Payara Platform Community 7 Beta application server is now fully certified as Jakarta EE 11 […]
If your Java EE 8 applications run on Red Hat JBoss Enterprise Application Platform (EAP) 7, you can’t afford […]
Is there a version of the upgrade advisor for projects built with ant rather than Maven?
By this moment we don’t have a version for ant, but probably you can try to run the mvn executable from ant, please check following link: https://stackoverflow.com/questions/7581156/how-to-call-for-a-maven-goal-within-an-ant-script