The subtitle on the Jakarta EE landing page, “BUILDING AN OPEN SOURCE ECOSYSTEM FOR CLOUD NATIVE ENTERPRISE JAVA” inspires me to think about Jakarta EE for modernization.
The Jakarta open ecosystem continues to deliver the value for enterprise applications once provided by Java EE. Its strong community membership shows the widespread dedication its members have to the platform. Being from the WebSphere Application Server development organization myself, I see how invested our team is in providing you the best Jakarta EE runtime in Liberty. And while cloud native implies new, “built on the cloud” applications, Jakarta EE is important for modernization scenarios as well. Moving to the latest version of enterprise Java can breathe new life into older applications and make them easier to modernize.
If you are already on Liberty, jumping to Jakarta EE is simple and allows you to be up to date with the latest technologies.
Recently, I went through the steps of modernizing DefaultApplication to use Jakarta EE. DefaultApplication is still shipped with traditional WebSphere Application Server. A couple years back @Alasdair Nottingham and I modernized DefaultApplication to run on Liberty. The next step for this application is to move to Jakarta EE. The first target is Jakarta EE 9.1. Liberty support for Jakarta EE 10 is currently in beta, so that will come next.
Moving to Jakarta EE was easy, and the step-by-step process that I used is provided in the git repository. If that version is tl;dr, here is the synopsis:
- Review your application using the binary scanner for modernization insights
- Modernize your code using information from the migration report
- Run the Eclipse Transformer to change the package names
- Update the server.xml features
- Update dependencies in the pom.xml
- Test the results using automated or manual testing
After you are complete, you can run the binary scanner again to see the Jakarta EE technologies in your application.
Check out the sample.DefaultApplication/jakarta9 in git and see how easy it is to run old applications on a new Liberty runtime!