DEV Community

The Javax to Jakarta mess, it's even worse than I thought

Thomas Broyer on April 22, 2022

In the previous post, I described how the Javax to Jakarta migration was a mess, but doing more research on the subject I discovered that it's actu...
Collapse
 
dagnelies profile image
Arnaud Dagnelies • Edited

While I share your pain, as all other java devs do, I find one thing is missing in this article, the root cause of all this: Oracle.

Basically, Oracle dumped all the Java stuff on the Eclipse Foundation but refused that the maintainers continue to use the javax.* namespace. So basically, Oracle not just abandonned it, they even forced the maintainers to fork it under another name, causing all this mess. 🤬

Citing eclipse-foundation.blog/2019/05/03...

Unfortunately, following many months of good-faith negotiations, the Eclipse Foundation and Oracle have been unable to agree on terms of an agreement for the Eclipse Foundation community to modify the javax package namespace or to use the Java trademarks currently used in Java EE specifications. Instead, Eclipse and Oracle have agreed that the javax package namespace cannot be evolved by the Jakarta EE community. As well, Java trademarks such as the existing specification names cannot be used by Jakarta EE specifications.

It's like the OpenJDK, it's actually not very open and you need Oracle's approval to touch it. 🤬

Collapse
 
tbroyer profile image
Thomas Broyer

I addressed it in the first post, and I linked to that same blog post from the Eclipse Foundation there:

Yes, Oracle being Oracle, they transfered the technology and documentation, but not the name and trademark. Indeed, Java EE was renamed to Jakarta EE. But that's not all, they also prohibited any modification to the javax.* packages, so everything would eventually be moved new packages. The Eclipse Foundation presented it as what Eclipse and Oracle had agreed on but let's not be fooled by that PR wording: what would you expect from the company that almost ruined our whole industry with the trial against Google over Android?

Collapse
 
dagnelies profile image
Arnaud Dagnelies

Ah, indeed, sorry. I only read that second article 🙄😅

Collapse
 
jmzeph profile image
jmzeph

Thank you for your article.

I do share your pain with develop to the jakarta.* space and the current difficulties.

I'm attempting to redevelop a Java Server Faces (JSF 2.x), JPA 2, Eclipselink to Jakarta with Eclipse IDE. Eclipse doesn't support Jakarta yet. The facets are very outdated and I cannot find workarounds.

Yes, it's a mess. I've had to replace Eclipse and use Intellij IDE.

I read somewhere Oracle owns javax.* so by renaming to jakarta.* it will separate from Oracle.

Collapse
 
ondromih profile image
Ondro Mihályi

Yes, it's a pain that javax. packages in Jakarta EE were renamed to jakarta. and shame for Oracle. We at OmniFish are researching how to make the migration as smooth as possible and we started with a series of blog posts to provide guidance how to migrate with as little pain as possible: omnifish.ee/2023/05/06/how-to-upgr....

We're going to add more articles with examples and explanations. Those guides are related to GlassFish 7 but can be applied to any project that needs to migrate from javax. prefix to jakarta. And yes, a big part of the trick is using Eclipse Transformer, but we plan to explain how to use it effectively. We've already successfully migrated a few projects to Jakarta EE 10 and GlassFish 7, which faces a lot of the problems you wrote about (some dependencies have support for both javax. and jakarta., some only support javax., some have dependencies on other artifacts that depend on javax.).