Jakarta API Transition: What It Means for Developers
There is an ongoing shift in the Java ecosystem from JavaX to Jakarta, which is creating real headaches for developers and software vendors. At SmartClient, we’re stepping up to help our customers navigate these changes with practical tools and clear answers.
We’re excited to share that our upcoming product lineup will bridge the gap between the older JavaX APIs and the newer Jakarta APIs. In this post, we’ll break down what this means and explain how SmartClient is adapting to make Jakarta API transition easier for you.
What happened to Java?
Oracle’s loss in a lawsuit against Google prompted a reorganization of the Java APIs. The reorganization moved classes from the javax
namespace to the jakarta
namespace. While the functionality remains the same, the reorganization has resulted in incompatibilities between pre-transition (javax
) and post-transition (jakarta
) APIs.
Our developer forum has been buzzing with discussions about these challenges and their widespread impact on the community. Developers working with platforms like Wildfly and Spring Boot have shared their struggles:
- Teams upgrading to Spring Boot 3.x are hitting roadblocks due to SmartGWT’s reliance on
javax
imports. - Wildfly 27 users are stuck because it exclusively supports Jakarta APIs, leaving pre-transition applications unsupported.
Projects dependent on javax
APIs face a tough choice: rewrite their code for Jakarta or stick with the old namespace and risk falling behind. Across the globe, organizations are navigating this messy transition, guided largely by their existing dependencies and long-term strategies.
How SmartClient supports the transition from JavaX to Jakarta
Some customers have been desperately asking us for a Jakarta
(post-transition) version, and then other customers insist on sticking to the older JavaX
(pre-transition) version. We can’t satisfy both needs with a single version of our product. Every vendor all over the world has the same dilemma right now (thanks, Oracle).
To address the needs of our diverse developer community, we’re releasing three separate product versions that cater to both API structures:
- SmartClient 13.1 (JavaX APIs): Designed for developers who continue to use the
javax
namespace. This version maintains compatibility with pre-transition environments. - SmartClient 14.1 (Jakarta APIs): Fully aligned with the new
jakarta
namespace for projects adopting the updated Java APIs. - SmartClient 14.0NJ (JavaX APIs with 14.0 Features): A transitional release offering
javax
namespace compatibility alongside the feature set introduced in SmartClient 14.0. This version is available exclusively through a special support plan with Isomorphic Software.
By offering separate versions, SmartClient ensures developers have the flexibility to align with their project’s requirements while maintaining access to our latest innovations.
Hibernate and Spring Compatibility with Jakarta APIs
The transition to the Jakarta namespace has brought changes to widely-used libraries like Hibernate and Spring, which in turn have influenced SmartClient’s integration with these technologies. For Jakarta versions of SmartClient:
- Hibernate: We’re discontinuing support for “beanless mode,” a feature that has consistently been outperformed by our SQLDataSource in terms of speed, simplicity, and flexibility. We continue to recommend SQLDataSource as the best choice for SQL database connectivity. Core JPA/Hibernate features, such as handling DSRequests with AdvancedCriteria, sorting, and paging, will remain fully supported.
- Spring: Our focus is on supporting declarative calls to Spring-registered beans, which SmartClient simplifies and optimizes. Other Spring APIs, like Controllers, are being phased out because they add complexity without adding value when SmartClient’s built-in tools are used for REST and service layers.
If you rely on features that are being retired, our Feature Sponsorship program and migration support services can help you retain critical functionality or explore alternative approaches tailored to your project’s needs.
Downloads available now
- 13.1 builds are available now
- 14.1 (Jakarta) builds are available now, but are still marked as “development” builds. These builds are production ready for anyone who is not using Hibernate or JPA, and the “development” designation will be removed in the near future
- 14.0NJ (JavaX APIs) builds are available by special arrangement
SmartClient’s commitment to developers
The transition to Jakarta APIs represents a disruptive but unavoidable chapter in the evolution of Java. At SmartClient, our priority is to ensure that our customers have the tools and support they need to navigate this change successfully.
For more information about how these changes affect your SmartClient integration or to arrange a special support plan for the 14.0NJ version, don’t hesitate to contact us.