SlideShare uma empresa Scribd logo
1 de 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?

Mais conteúdo relacionado

Mais procurados

Improving go-git performance
Improving go-git performanceImproving go-git performance
Improving go-git performancesource{d}
 
Prometheus and Thanos
Prometheus and ThanosPrometheus and Thanos
Prometheus and ThanosCloudOps2005
 
Introducing github.com/open-cluster-management – How to deliver apps across c...
Introducing github.com/open-cluster-management – How to deliver apps across c...Introducing github.com/open-cluster-management – How to deliver apps across c...
Introducing github.com/open-cluster-management – How to deliver apps across c...Michael Elder
 
Jenkins Shared Libraries Workshop
Jenkins Shared Libraries WorkshopJenkins Shared Libraries Workshop
Jenkins Shared Libraries WorkshopJulien Pivotto
 
[NCUC 밋업] 네이버 클라우드 속 쏙쏙 들어있는 DNS레코드
[NCUC 밋업] 네이버 클라우드 속 쏙쏙 들어있는 DNS레코드[NCUC 밋업] 네이버 클라우드 속 쏙쏙 들어있는 DNS레코드
[NCUC 밋업] 네이버 클라우드 속 쏙쏙 들어있는 DNS레코드Soojin Lee
 
Build & Release Engineering
Build & Release Engineering Build & Release Engineering
Build & Release Engineering Pranesh Vittal
 
Exploring Twitter's Finagle technology stack for microservices
Exploring Twitter's Finagle technology stack for microservicesExploring Twitter's Finagle technology stack for microservices
Exploring Twitter's Finagle technology stack for microservices💡 Tomasz Kogut
 
Faster Container Image Distribution on a Variety of Tools with Lazy Pulling
Faster Container Image Distribution on a Variety of Tools with Lazy PullingFaster Container Image Distribution on a Variety of Tools with Lazy Pulling
Faster Container Image Distribution on a Variety of Tools with Lazy PullingKohei Tokunaga
 
Introduction To Containers - Builders Day Israel
Introduction To Containers - Builders Day IsraelIntroduction To Containers - Builders Day Israel
Introduction To Containers - Builders Day IsraelAmazon Web Services
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017Docker, Inc.
 
Thanos: Global, durable Prometheus monitoring
Thanos: Global, durable Prometheus monitoringThanos: Global, durable Prometheus monitoring
Thanos: Global, durable Prometheus monitoringBartłomiej Płotka
 
Introduction to Istio Service Mesh
Introduction to Istio Service MeshIntroduction to Istio Service Mesh
Introduction to Istio Service MeshGeorgios Andrianakis
 
ClickHouse new features and development roadmap, by Aleksei Milovidov
ClickHouse new features and development roadmap, by Aleksei MilovidovClickHouse new features and development roadmap, by Aleksei Milovidov
ClickHouse new features and development roadmap, by Aleksei MilovidovAltinity Ltd
 
Introduction of CCE and DevCloud
Introduction of CCE and DevCloudIntroduction of CCE and DevCloud
Introduction of CCE and DevCloudOpsta
 
Hexagonal Architecture.pdf
Hexagonal Architecture.pdfHexagonal Architecture.pdf
Hexagonal Architecture.pdfVladimirRadzivil
 
NGINX Ingress Controller for Kubernetes
NGINX Ingress Controller for KubernetesNGINX Ingress Controller for Kubernetes
NGINX Ingress Controller for KubernetesNGINX, Inc.
 
Paving the road with Jakarta EE and Apache TomEE - JCON 2021
Paving the road with Jakarta EE  and Apache TomEE - JCON 2021Paving the road with Jakarta EE  and Apache TomEE - JCON 2021
Paving the road with Jakarta EE and Apache TomEE - JCON 2021César Hernández
 
Ganglia Monitoring Tool
Ganglia Monitoring ToolGanglia Monitoring Tool
Ganglia Monitoring Toolsudhirpg
 

Mais procurados (20)

Improving go-git performance
Improving go-git performanceImproving go-git performance
Improving go-git performance
 
Prometheus and Thanos
Prometheus and ThanosPrometheus and Thanos
Prometheus and Thanos
 
Introducing github.com/open-cluster-management – How to deliver apps across c...
Introducing github.com/open-cluster-management – How to deliver apps across c...Introducing github.com/open-cluster-management – How to deliver apps across c...
Introducing github.com/open-cluster-management – How to deliver apps across c...
 
Jenkins Shared Libraries Workshop
Jenkins Shared Libraries WorkshopJenkins Shared Libraries Workshop
Jenkins Shared Libraries Workshop
 
[NCUC 밋업] 네이버 클라우드 속 쏙쏙 들어있는 DNS레코드
[NCUC 밋업] 네이버 클라우드 속 쏙쏙 들어있는 DNS레코드[NCUC 밋업] 네이버 클라우드 속 쏙쏙 들어있는 DNS레코드
[NCUC 밋업] 네이버 클라우드 속 쏙쏙 들어있는 DNS레코드
 
Build & Release Engineering
Build & Release Engineering Build & Release Engineering
Build & Release Engineering
 
Exploring Twitter's Finagle technology stack for microservices
Exploring Twitter's Finagle technology stack for microservicesExploring Twitter's Finagle technology stack for microservices
Exploring Twitter's Finagle technology stack for microservices
 
Faster Container Image Distribution on a Variety of Tools with Lazy Pulling
Faster Container Image Distribution on a Variety of Tools with Lazy PullingFaster Container Image Distribution on a Variety of Tools with Lazy Pulling
Faster Container Image Distribution on a Variety of Tools with Lazy Pulling
 
Introduction To Containers - Builders Day Israel
Introduction To Containers - Builders Day IsraelIntroduction To Containers - Builders Day Israel
Introduction To Containers - Builders Day Israel
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
 
Thanos: Global, durable Prometheus monitoring
Thanos: Global, durable Prometheus monitoringThanos: Global, durable Prometheus monitoring
Thanos: Global, durable Prometheus monitoring
 
Introduction to Istio Service Mesh
Introduction to Istio Service MeshIntroduction to Istio Service Mesh
Introduction to Istio Service Mesh
 
ClickHouse new features and development roadmap, by Aleksei Milovidov
ClickHouse new features and development roadmap, by Aleksei MilovidovClickHouse new features and development roadmap, by Aleksei Milovidov
ClickHouse new features and development roadmap, by Aleksei Milovidov
 
Introduction of CCE and DevCloud
Introduction of CCE and DevCloudIntroduction of CCE and DevCloud
Introduction of CCE and DevCloud
 
Hexagonal Architecture.pdf
Hexagonal Architecture.pdfHexagonal Architecture.pdf
Hexagonal Architecture.pdf
 
Docker in real life
Docker in real lifeDocker in real life
Docker in real life
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
NGINX Ingress Controller for Kubernetes
NGINX Ingress Controller for KubernetesNGINX Ingress Controller for Kubernetes
NGINX Ingress Controller for Kubernetes
 
Paving the road with Jakarta EE and Apache TomEE - JCON 2021
Paving the road with Jakarta EE  and Apache TomEE - JCON 2021Paving the road with Jakarta EE  and Apache TomEE - JCON 2021
Paving the road with Jakarta EE and Apache TomEE - JCON 2021
 
Ganglia Monitoring Tool
Ganglia Monitoring ToolGanglia Monitoring Tool
Ganglia Monitoring Tool
 

Semelhante a 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
 

Semelhante a 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
 

Último

How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfSrushith Repakula
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctBrainSell Technologies
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfUK Journal
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...marcuskenyatta275
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfFIDO Alliance
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsStefano
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...panagenda
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Patrick Viafore
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty SecureFemke de Vroome
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfFIDO Alliance
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024Stephen Perrenod
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfFIDO Alliance
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...FIDO Alliance
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastUXDXConf
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessUXDXConf
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Hiroshi SHIBATA
 

Último (20)

How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 

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