Slide 1

Slide 1 text

Ondro Mihályi @OmniFishEE How to Easily Upgrade to Jakarta EE 10 Javax to Jakarta Prefix without a Hassle

Slide 2

Slide 2 text

Ondro Mihályi @OmniFishEE Who am I? Java Champion Czech JUG lead (CZJUG) Jakarta EE specifications committer Director at OmniFish

Slide 3

Slide 3 text

Ondro Mihályi @OmniFishEE What’s new in Jakarta EE 9? javax.* → jakarta.*

Slide 4

Slide 4 text

Ondro Mihályi @OmniFishEE So what? Search & Replace and we’re done...

Slide 5

Slide 5 text

Ondro Mihályi @OmniFishEE

Slide 6

Slide 6 text

Ondro Mihályi @OmniFishEE Or not?

Slide 7

Slide 7 text

Ondro Mihályi @OmniFishEE It’s not that easy some javax packages not renamed XML namespaces renamed properties renamed javax in dependencies javax transitive dependencies APIs dropped in Jakarta EE 10

Slide 8

Slide 8 text

Ondro Mihályi @OmniFishEE Impact of Jakarta EE 9 javax.* → jakarta.* ● App servers ● Tomcat, Jetty, … ● Spring 6 ● SpringBoot 3 ● Quarkus 3 ● The list goes on...

Slide 9

Slide 9 text

Ondro Mihályi @OmniFishEE A lot of mess...

Slide 10

Slide 10 text

Ondro Mihályi @OmniFishEE Is there an easier way?

Slide 11

Slide 11 text

Ondro Mihályi @OmniFishEE Automate! Eclipse Transformer OpenRewrite

Slide 12

Slide 12 text

Ondro Mihályi @OmniFishEE Eclipse Transformer

Slide 13

Slide 13 text

Ondro Mihályi @OmniFishEE OpenRewrite

Slide 14

Slide 14 text

Ondro Mihályi @OmniFishEE Transformer + OpenRewrite = Best Results

Slide 15

Slide 15 text

Ondro Mihályi @OmniFishEE 1st step: Transformer for source code

Slide 16

Slide 16 text

Ondro Mihályi @OmniFishEE 2nd step: OpenRewrite for source code

Slide 17

Slide 17 text

Ondro Mihályi @OmniFishEE What about dependencies? Newer version with jakarta.* No version with jakarta.*

Slide 18

Slide 18 text

Ondro Mihályi @OmniFishEE Upgrade dependencies ● Supports jakarta.* → upgrade version ● Provides javax.* and jakarta.* variant ● “jakarta” classifier ● different artifact name

Slide 19

Slide 19 text

Ondro Mihályi @OmniFishEE Transform dependencies ● Doesn't support jakarta.* (yet) → Transform JAR with Transformer → With all transient dependencies

Slide 20

Slide 20 text

Ondro Mihályi @OmniFishEE Finally!

Slide 21

Slide 21 text

Ondro Mihályi @OmniFishEE Questions

Slide 22

Slide 22 text

Ondro Mihályi @OmniFishEE Demo Repository with source code of demo projects: https://github.com/OmniFish-EE/Presentation- Upgrade-To-Jakarta-EE-10

Slide 23

Slide 23 text

Ondro Mihályi @OmniFishEE Resources ● Eclipse Transformer ● OpenRewrite ● Guide at the OmniFish blog ● https://omnifish.ee

Slide 24

Slide 24 text

Ondro Mihályi @OmniFishEE Thank you! Jakarta EE Consultancy (migrations, tuning) Jakarta EE Application Development GlassFish Server Support Jakarta EE Training omnifish.ee OmniFish - Jakarta EE Consulting & Support