SlideShare a Scribd company logo
1 of 44
Migrating from
Java EE to Jakarta
EE 10: Challenges
& Opportunities
HELLO!
I am Buhake Sindi
▸ Senior Full Stack Java
Engineer/Developer & Consultant
▸ Devoxx4Kids SA event organiser
▸ Jakarta EE Ambassador
3
Where to
find me!
https://linktr.ee/theEliteGentleman
buhake@gmail.com
@EliteGentleman
www.sindi.co.za
4
To migrate or
not to migrate
Are you ready to migrate your app?
1
Reason for app
migration
▸ Outdated technology (e.g., technology E.O.L.)
▸ Security Enhancements (remember Zero Day
exploit?)
▸ Cost efficiency
▸ Vendor Lock-in
▸ Integration needs
▸ Long-term sustainability
And many more.
6
Migration approach
▸ Reactively
▹ You don’t know what you don’t know until it
happens.
▸ Proactively
▹ You know of the impact that will affect your
application, so you address it before it
becomes problematic.
7
Migration strategies
(the 6 R’s)
For your organisation’s applications, some
commonly known ones:
▸ Rehost (hosting your on-premise application to
the cloud)
▸ Replatform (modernising your existing
application to newer technology
stacks/environments, without changing its
existing architecture)
8
Migration strategies
For your organisation’s applications, some
commonly known ones:
▸ Repurchasing (replacing your application with a
solution that provides the same or similar
capabilities)
▸ Refactoring/Re-architect: Re-architect and
develop the application to be optimised to run
to new environment
9
Migration Strategies
▸ Retire/Decommission: Old application are
retired, and newer versions are written to
replace the old application.
▸ Retain (do nothing and revisit later). Keeping
the application AS-IS because there is no need
for migration.
10
Enterprise Java
has come a long
way…
From J2EE to JEE to Jakarta EE
2
Jakarta EE versions
12
Platform version Released Date Specification Java SE support
Jakarta EE 10 13 September 2022 10 Java SE 17 / 11
Jakarta EE 9.1 25 May 2021 9.1 Java SE 11 / 8
Jakarta EE 9 08 December 2020 9 Java SE 8
Jakarta EE 8 10 September 2019 8 Java SE 8
Java EE 8 31 August 2017 JSR 366 Java SE 8
Java EE 7 28 May 2013 JSR 342 Java SE 7
Java EE 6 10 December 2009 JSR 316 Java SE 6
Java EE 5 11 May 2006 JSR 244 Java SE 5
J2EE 1.4 11 November 2003 JSR 151 J2SE 1.4
J2EE 1.3 24 September 2001 JSR 58 J2SE 1.3
J2EE 1.2 17 December 1997 1.2 J2SE 1.2
Jakarta EE today…
▸ Visible release cycle
▹ Since 2019 to 2022
– 3 major Jakarta
EE releases
▸ Quick adoption for
standardisation of
latest industry
technologies
▹ Cloud adoption
(Microprofile)
▹ NoSQL standards
for Java (jNoSQL)
▸ Quick adoption to latest
(active) Java version
▹ Possible adoption
of Java records
(Java 17)
▹ Adoption of virtual
threads (Java 21)
13
What about Jakarta
EE 11?
▸ Java 21 General Availability release date: 19
September 2023
▸ Jakarta EE 11 target release date: first quarter
of 2024 (allowing enough time to build and test
projects to take advantage of Java 21
capabilities).
14
Spring framework
and Jakarta EE
are friends
Spring Frameworks with
Jakarta EE
16
Release version Released Date Jakarta EE version Java SE support
6.1.x 15 November 2023 10 Java SE 17 / 11
6.0.x 16 November 2022 9 Java SE 17 - 21
5.3.x 27 October 2020 Java EE 8 Java SE 8 / 11 / 17
5.2.x 30 September 2019 Java EE 8 Java SE 8
5.1.x 20 September 2018 Java EE 7 / 8 Java SE 8
Jakarta EE
technologies in Spring
▸ Servlet API (JSR 340)
▸ WebSocket API (JSR 356)
▸ Concurrency utilities (JSR 236)
▸ JSON Binding API (JSR 367)
▸ Bean Validation (JSR 303)
▸ JPA (JSR 338)
▸ JMS (JSR 914)
▸ JTA/JCA
▸ Dependency Injection (JSR 330)
▸ Common Annotations (JSR 250)
17
But first...
18
Survey results.
Java in the enterprise today (40
respondents)
2
72.5% code & run
apps using Java 17
20
48.5% use
JavaEE/JakartaEE
21
75% use Spring
Framework
22
Tomcat server is
app server of choice
23
70% use Spring Boot
for cloud-native apps
24
“ If your apps runs on an App
server, you’re already using
Jakarta EE.
25
Let’s migrate
your apps…
From Java EE to Jakarta EE 10
2
RTFM!
▸ Jakarta EE 10 specification:
https://jakarta.ee/specifications/platform/10/jakarta-
platform-spec-10.0.html
27
Choose Jakarta EE
compatible products
▸ https://jakarta.ee/compatibility/certification/10/
28
Update your Jakarta EE
version in pom.xml
Java EE pom.xml Jakarta EE pom.xml
29
Rename javax
imports
▸ All javax.* package namespaces must be
renamed to jakarta.* namespaces in your Java
source code
▹ Java EE 10 application container is no
longer backward compatible with Java EE
applications.
30
Update XML Schema
namespaces & version
▸ Rename JCP namespace from “http://xmlns.jcp.org” to
Jakarta EE namespace “https://jakarta.ee/”
▸ Jakarta EE namespace includes XSD version numbers
▸ Common API affected:
▹ Servlet (web.xml), JPA (persistence.ml), CDI
(beans.xml), Bean validations (validations.xml), Batch
(batch.xml), Taglibs (JSTL), JSF (faces-config.xml)
31
Rename files and properties
prefixed with javax
▸ XML configuration files with property names
that have javax prefix.
▸ Bootstrapping files that have names prefixed
with javax.
▹ E.g. CDI service extension. Rename
javax.enterprise.inject.spi.Extension to
jakarta.enterprise.inject.spi.Extension
32
Rename files prefixed
with javax
33
Rename files prefixed
with javax
34
Finally, test!
▸ Test and validate that your application works on
a Java EE 10 compliant application server.
35
The Challenges…
App migration hell!
3
API and package
renaming.
▸ It’s cumbersome to rename packages manually.
A good IDE (that has Jakarta EE 10 support), like
IntelliJ, Visual Studio Code, etc., helps.
37
Dependency
management
▸ Jakarta EE APIs and platforms are upgraded to
latest versions to ensure compatibility (Jakarta
EE 10 is no exception)
▸ Third party libraries and frameworks might face
their own migration challenges in order to be
compatible with Jakarta EE 10
38
API deprecation and
Removal
▸ Certain Java EE applications can have APIs that
are removed in Jakarta EE 10
▸ Identify and replace deprecated APIs with
Jakarta EE 10 equivalent/counterparts can be
cumbersome.
39
The
Opportunities…
There’s hope in sight!
4
Enhanced
compatibility
▸ Jakarta EE 10 maintains the backward
compatibility with Java EE (outside of
namespace changes). This ensures that
existing Java EE applications can be migrated
to Jakarta EE 10 without extensive code
changes.
41
OpenRewrite
▸ Helps with source code refactoring for
framework migration.
▸ https://docs.openrewrite.org/
42
Improved performance
and efficiency
▸ By migrating to Jakarta EE 10 you can take
advantage of the improvement that is provided
by Jakarta EE 10.
43
Cloud-Native ready
▸ Jakarta EE 10 embraces the evolving landscape
of cloud-native architectures and
microservices.
▸ Your monolith application can be migrated to
be cloud-native approach and take full
advantage of cloud-native technologies and
practices.
44
45
THANKS!
Any questions?

More Related Content

What's hot (20)

React js for beginners
React js for beginnersReact js for beginners
React js for beginners
 
Http and Servlet basics
Http and Servlet basicsHttp and Servlet basics
Http and Servlet basics
 
Building Chrome Extensions For Salesforce
Building Chrome Extensions  For SalesforceBuilding Chrome Extensions  For Salesforce
Building Chrome Extensions For Salesforce
 
Sitecore Personalization on websites cached on CDN servers
Sitecore Personalization on websites cached on CDN serversSitecore Personalization on websites cached on CDN servers
Sitecore Personalization on websites cached on CDN servers
 
Getting Started with Spring for GraphQL
Getting Started with Spring for GraphQLGetting Started with Spring for GraphQL
Getting Started with Spring for GraphQL
 
React - Introdução
React - IntroduçãoReact - Introdução
React - Introdução
 
Apache ActiveMQ and Apache Camel
Apache ActiveMQ and Apache CamelApache ActiveMQ and Apache Camel
Apache ActiveMQ and Apache Camel
 
Jpa
JpaJpa
Jpa
 
Introduction to ReactJS
Introduction to ReactJSIntroduction to ReactJS
Introduction to ReactJS
 
Oracle High Availabiltity for application developers
Oracle High Availabiltity for application developersOracle High Availabiltity for application developers
Oracle High Availabiltity for application developers
 
Tech Talk on ReactJS
Tech Talk on ReactJSTech Talk on ReactJS
Tech Talk on ReactJS
 
Introduction to Magento PWA
Introduction to Magento PWAIntroduction to Magento PWA
Introduction to Magento PWA
 
REST API
REST APIREST API
REST API
 
Spring Security 5
Spring Security 5Spring Security 5
Spring Security 5
 
Workshop 21: React Router
Workshop 21: React RouterWorkshop 21: React Router
Workshop 21: React Router
 
Svelte
SvelteSvelte
Svelte
 
Web API Basics
Web API BasicsWeb API Basics
Web API Basics
 
Its time to React.js
Its time to React.jsIts time to React.js
Its time to React.js
 
Java EE vs Spring Framework
Java  EE vs Spring Framework Java  EE vs Spring Framework
Java EE vs Spring Framework
 
Writing REST APIs with OpenAPI and Swagger Ada
Writing REST APIs with OpenAPI and Swagger AdaWriting REST APIs with OpenAPI and Swagger Ada
Writing REST APIs with OpenAPI and Swagger Ada
 

Similar to Migration from Java EE to JakartaEE 10 - Challenges & Opportunities

Migrate Early, Migrate Often: JDK release cadence strategies
Migrate Early, Migrate Often: JDK release cadence strategiesMigrate Early, Migrate Often: JDK release cadence strategies
Migrate Early, Migrate Often: JDK release cadence strategiesDanHeidinga
 
WebLogic Developer Experience and Java EE 6
WebLogic Developer Experience and Java EE 6WebLogic Developer Experience and Java EE 6
WebLogic Developer Experience and Java EE 6Jeffrey West
 
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!Voxxed Athens
 
Implementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfileImplementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfileKevin Sutter
 
The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011Arun Gupta
 
Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1sandeep54552
 
DEVBCN_Jakarta EE! The future of enterprise application behind the myths. _Al...
DEVBCN_Jakarta EE! The future of enterprise application behind the myths.
_Al...DEVBCN_Jakarta EE! The future of enterprise application behind the myths.
_Al...
DEVBCN_Jakarta EE! The future of enterprise application behind the myths. _Al...Alberto Salazar
 
Adopt openjdk and how it impacts you in 2020
Adopt openjdk and how it impacts you in 2020Adopt openjdk and how it impacts you in 2020
Adopt openjdk and how it impacts you in 2020George Adams
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And BeyondVMware Tanzu
 
Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...Arshal Ameen
 
Microservices - java ee vs spring boot and spring cloud
Microservices - java ee vs spring boot and spring cloudMicroservices - java ee vs spring boot and spring cloud
Microservices - java ee vs spring boot and spring cloudBen Wilcock
 
Microsoft, java and you!
Microsoft, java and you!Microsoft, java and you!
Microsoft, java and you!George Adams
 
From Legacy to Legendary - Jakarta EE's Evolution in the Modern Era
From Legacy to Legendary - Jakarta EE's Evolution in the Modern EraFrom Legacy to Legendary - Jakarta EE's Evolution in the Modern Era
From Legacy to Legendary - Jakarta EE's Evolution in the Modern EraBuhake Sindi
 
From Legacy to Legendary - Jakarta EE's Evolution in the Modern Era
From Legacy to Legendary - Jakarta EE's Evolution in the Modern EraFrom Legacy to Legendary - Jakarta EE's Evolution in the Modern Era
From Legacy to Legendary - Jakarta EE's Evolution in the Modern EraBuhake Sindi
 
[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1Rubens Dos Santos Filho
 
MicroProfile for MicroServices
MicroProfile for MicroServicesMicroProfile for MicroServices
MicroProfile for MicroServicesMert Çalışkan
 

Similar to Migration from Java EE to JakartaEE 10 - Challenges & Opportunities (20)

Migrate Early, Migrate Often: JDK release cadence strategies
Migrate Early, Migrate Often: JDK release cadence strategiesMigrate Early, Migrate Often: JDK release cadence strategies
Migrate Early, Migrate Often: JDK release cadence strategies
 
oraclewls-jrebel
oraclewls-jrebeloraclewls-jrebel
oraclewls-jrebel
 
WebLogic Developer Experience and Java EE 6
WebLogic Developer Experience and Java EE 6WebLogic Developer Experience and Java EE 6
WebLogic Developer Experience and Java EE 6
 
Java Programming : introduction
Java Programming : introductionJava Programming : introduction
Java Programming : introduction
 
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
 
Implementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfileImplementing Microservices with Jakarta EE and MicroProfile
Implementing Microservices with Jakarta EE and MicroProfile
 
The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011
 
Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1Enterprise java unit-1_chapter-1
Enterprise java unit-1_chapter-1
 
DEVBCN_Jakarta EE! The future of enterprise application behind the myths. _Al...
DEVBCN_Jakarta EE! The future of enterprise application behind the myths.
_Al...DEVBCN_Jakarta EE! The future of enterprise application behind the myths.
_Al...
DEVBCN_Jakarta EE! The future of enterprise application behind the myths. _Al...
 
Adopt openjdk and how it impacts you in 2020
Adopt openjdk and how it impacts you in 2020Adopt openjdk and how it impacts you in 2020
Adopt openjdk and how it impacts you in 2020
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...Case Study of Financial Web System Development and Operations with Oracle Web...
Case Study of Financial Web System Development and Operations with Oracle Web...
 
Microservices - java ee vs spring boot and spring cloud
Microservices - java ee vs spring boot and spring cloudMicroservices - java ee vs spring boot and spring cloud
Microservices - java ee vs spring boot and spring cloud
 
JDK 10 Java Module System
JDK 10 Java Module SystemJDK 10 Java Module System
JDK 10 Java Module System
 
Microsoft, java and you!
Microsoft, java and you!Microsoft, java and you!
Microsoft, java and you!
 
From Legacy to Legendary - Jakarta EE's Evolution in the Modern Era
From Legacy to Legendary - Jakarta EE's Evolution in the Modern EraFrom Legacy to Legendary - Jakarta EE's Evolution in the Modern Era
From Legacy to Legendary - Jakarta EE's Evolution in the Modern Era
 
From Legacy to Legendary - Jakarta EE's Evolution in the Modern Era
From Legacy to Legendary - Jakarta EE's Evolution in the Modern EraFrom Legacy to Legendary - Jakarta EE's Evolution in the Modern Era
From Legacy to Legendary - Jakarta EE's Evolution in the Modern Era
 
[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1
 
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
 
MicroProfile for MicroServices
MicroProfile for MicroServicesMicroProfile for MicroServices
MicroProfile for MicroServices
 

Recently uploaded

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Recently uploaded (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

Migration from Java EE to JakartaEE 10 - Challenges & Opportunities

  • 1. Migrating from Java EE to Jakarta EE 10: Challenges & Opportunities
  • 2. HELLO! I am Buhake Sindi ▸ Senior Full Stack Java Engineer/Developer & Consultant ▸ Devoxx4Kids SA event organiser ▸ Jakarta EE Ambassador 3
  • 4. To migrate or not to migrate Are you ready to migrate your app? 1
  • 5. Reason for app migration ▸ Outdated technology (e.g., technology E.O.L.) ▸ Security Enhancements (remember Zero Day exploit?) ▸ Cost efficiency ▸ Vendor Lock-in ▸ Integration needs ▸ Long-term sustainability And many more. 6
  • 6. Migration approach ▸ Reactively ▹ You don’t know what you don’t know until it happens. ▸ Proactively ▹ You know of the impact that will affect your application, so you address it before it becomes problematic. 7
  • 7. Migration strategies (the 6 R’s) For your organisation’s applications, some commonly known ones: ▸ Rehost (hosting your on-premise application to the cloud) ▸ Replatform (modernising your existing application to newer technology stacks/environments, without changing its existing architecture) 8
  • 8. Migration strategies For your organisation’s applications, some commonly known ones: ▸ Repurchasing (replacing your application with a solution that provides the same or similar capabilities) ▸ Refactoring/Re-architect: Re-architect and develop the application to be optimised to run to new environment 9
  • 9. Migration Strategies ▸ Retire/Decommission: Old application are retired, and newer versions are written to replace the old application. ▸ Retain (do nothing and revisit later). Keeping the application AS-IS because there is no need for migration. 10
  • 10. Enterprise Java has come a long way… From J2EE to JEE to Jakarta EE 2
  • 11. Jakarta EE versions 12 Platform version Released Date Specification Java SE support Jakarta EE 10 13 September 2022 10 Java SE 17 / 11 Jakarta EE 9.1 25 May 2021 9.1 Java SE 11 / 8 Jakarta EE 9 08 December 2020 9 Java SE 8 Jakarta EE 8 10 September 2019 8 Java SE 8 Java EE 8 31 August 2017 JSR 366 Java SE 8 Java EE 7 28 May 2013 JSR 342 Java SE 7 Java EE 6 10 December 2009 JSR 316 Java SE 6 Java EE 5 11 May 2006 JSR 244 Java SE 5 J2EE 1.4 11 November 2003 JSR 151 J2SE 1.4 J2EE 1.3 24 September 2001 JSR 58 J2SE 1.3 J2EE 1.2 17 December 1997 1.2 J2SE 1.2
  • 12. Jakarta EE today… ▸ Visible release cycle ▹ Since 2019 to 2022 – 3 major Jakarta EE releases ▸ Quick adoption for standardisation of latest industry technologies ▹ Cloud adoption (Microprofile) ▹ NoSQL standards for Java (jNoSQL) ▸ Quick adoption to latest (active) Java version ▹ Possible adoption of Java records (Java 17) ▹ Adoption of virtual threads (Java 21) 13
  • 13. What about Jakarta EE 11? ▸ Java 21 General Availability release date: 19 September 2023 ▸ Jakarta EE 11 target release date: first quarter of 2024 (allowing enough time to build and test projects to take advantage of Java 21 capabilities). 14
  • 15. Spring Frameworks with Jakarta EE 16 Release version Released Date Jakarta EE version Java SE support 6.1.x 15 November 2023 10 Java SE 17 / 11 6.0.x 16 November 2022 9 Java SE 17 - 21 5.3.x 27 October 2020 Java EE 8 Java SE 8 / 11 / 17 5.2.x 30 September 2019 Java EE 8 Java SE 8 5.1.x 20 September 2018 Java EE 7 / 8 Java SE 8
  • 16. Jakarta EE technologies in Spring ▸ Servlet API (JSR 340) ▸ WebSocket API (JSR 356) ▸ Concurrency utilities (JSR 236) ▸ JSON Binding API (JSR 367) ▸ Bean Validation (JSR 303) ▸ JPA (JSR 338) ▸ JMS (JSR 914) ▸ JTA/JCA ▸ Dependency Injection (JSR 330) ▸ Common Annotations (JSR 250) 17
  • 18. Survey results. Java in the enterprise today (40 respondents) 2
  • 19. 72.5% code & run apps using Java 17 20
  • 22. Tomcat server is app server of choice 23
  • 23. 70% use Spring Boot for cloud-native apps 24
  • 24. “ If your apps runs on an App server, you’re already using Jakarta EE. 25
  • 25. Let’s migrate your apps… From Java EE to Jakarta EE 10 2
  • 26. RTFM! ▸ Jakarta EE 10 specification: https://jakarta.ee/specifications/platform/10/jakarta- platform-spec-10.0.html 27
  • 27. Choose Jakarta EE compatible products ▸ https://jakarta.ee/compatibility/certification/10/ 28
  • 28. Update your Jakarta EE version in pom.xml Java EE pom.xml Jakarta EE pom.xml 29
  • 29. Rename javax imports ▸ All javax.* package namespaces must be renamed to jakarta.* namespaces in your Java source code ▹ Java EE 10 application container is no longer backward compatible with Java EE applications. 30
  • 30. Update XML Schema namespaces & version ▸ Rename JCP namespace from “http://xmlns.jcp.org” to Jakarta EE namespace “https://jakarta.ee/” ▸ Jakarta EE namespace includes XSD version numbers ▸ Common API affected: ▹ Servlet (web.xml), JPA (persistence.ml), CDI (beans.xml), Bean validations (validations.xml), Batch (batch.xml), Taglibs (JSTL), JSF (faces-config.xml) 31
  • 31. Rename files and properties prefixed with javax ▸ XML configuration files with property names that have javax prefix. ▸ Bootstrapping files that have names prefixed with javax. ▹ E.g. CDI service extension. Rename javax.enterprise.inject.spi.Extension to jakarta.enterprise.inject.spi.Extension 32
  • 34. Finally, test! ▸ Test and validate that your application works on a Java EE 10 compliant application server. 35
  • 36. API and package renaming. ▸ It’s cumbersome to rename packages manually. A good IDE (that has Jakarta EE 10 support), like IntelliJ, Visual Studio Code, etc., helps. 37
  • 37. Dependency management ▸ Jakarta EE APIs and platforms are upgraded to latest versions to ensure compatibility (Jakarta EE 10 is no exception) ▸ Third party libraries and frameworks might face their own migration challenges in order to be compatible with Jakarta EE 10 38
  • 38. API deprecation and Removal ▸ Certain Java EE applications can have APIs that are removed in Jakarta EE 10 ▸ Identify and replace deprecated APIs with Jakarta EE 10 equivalent/counterparts can be cumbersome. 39
  • 40. Enhanced compatibility ▸ Jakarta EE 10 maintains the backward compatibility with Java EE (outside of namespace changes). This ensures that existing Java EE applications can be migrated to Jakarta EE 10 without extensive code changes. 41
  • 41. OpenRewrite ▸ Helps with source code refactoring for framework migration. ▸ https://docs.openrewrite.org/ 42
  • 42. Improved performance and efficiency ▸ By migrating to Jakarta EE 10 you can take advantage of the improvement that is provided by Jakarta EE 10. 43
  • 43. Cloud-Native ready ▸ Jakarta EE 10 embraces the evolving landscape of cloud-native architectures and microservices. ▸ Your monolith application can be migrated to be cloud-native approach and take full advantage of cloud-native technologies and practices. 44