Since Oracle gave java ee to the eclipse foundation, they renamed java ee to jakarta ee and have a whole new package structure.
First we need to check to see which dependencies we depend use java ee, and which will support jakarta ee. If there are libraries that we depend on that don’t support jakarta ee, then we might be able to use eclipse’s transformer or openrewrite (see links below) at compile time to handle libraries that don’t support it.
If our dependencies support jakarta ee, then we’ll need to migrate our javax.* and any other java ee dependencies in our source to jakarta.* (see the java and groovy code). There are some potentially useful tools that would help in this process like:
- Use GitHub - eclipse-transformer/transformer: Eclipse Transformer provides tools and runtime components that transform Java binaries, such as individual class files and complete JARs and WARs, mapping changes to Java packages, type names, and related resource names. with the example here: Migrate from Java EE to Jakarta EE: Tips & Guide | Medium
- Migrate to Jakarta EE 10.0 | OpenRewrite Docs
- Using IntelliJ IDEA's migration tool - JetBrains Guide
Note that bitronix uses javax Code search results · GitHub. Looks like another project had the same issue: Transition from Jakarta EE 8 to Jakarta EE 9 · Issue #26041 · apache/shardingsphere · GitHub. There was a fork of bitronix that got jakarta ee working: GitHub - laingke/btm: JTA Transaction Manager. This will need to be looked at further.
If @f.karim @kieuanhvu @rahulnama @shahbaz @zhangwei can volunteer for figuring out what dependencies will / won’t support jakarta ee out of the box, that would be great!