SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
@CesarHgt @tomitribe
César Hernández
Pavimentando el camino con Jakarta EE 9 y
Apache TomEE
@CesarHgt @tomitribe
Who am I?
César Hernández
● Senior Software Engineer at Tomitribe
● Java Champion & Oracle Groundbreaker Ambassador
● Duke’s Choice Award 2016, 2017
● Oracle Certified Professional
● +14 experience with Java Enterprise
● Apache TomEE, Eclipse Jakarta EE Committer,
contributor for Microprofile.
● Open Source advocate, teacher and public speaker
@CesarHgt @tomitribe
From J2EE to Jakarta EE
@CesarHgt @tomitribe
From Java EE to Jakarta EE
@CesarHgt @tomitribe
Some Eclipse (Java) Projects
@CesarHgt @tomitribe
Eclipse Foundation overview
https://www.eclipse.org/membership/documents/eclipse-foundation-overview.pdf
360+
Projects
275+
Members
1550+
Committers
195M+
Lines of code
15
Years
30
Members
@CesarHgt @tomitribe
What’s transferred?
@CesarHgt @tomitribe
How big is that?
• Jakarta EE
• 5,5 million lines of code
• 2,2 million lines of comments
• 61k files
• TCK (Test Suite)
• 4,6 million lines of code
• 1,1 million lines of comments
• 34k files
@CesarHgt @tomitribe
13,5 million lines of code
in 95k files.
@CesarHgt @tomitribe
Participation
• + 80 active contributors
• + 200 designated committers
• +1000 commits
• + 900 PRs
https://jakarta.ee
@CesarHgt @tomitribe
What has NOT been donated?
• Java EE Brand name
• The javax.* namespace
egrep -lRZ 'javax' . | xargs -0 -l sed -i -e 's/javax/jakarta/g'
https://simpsons.fandom.com/wiki/Benjamin_(nerd)?file=Benjamin,_Doug,_and_Gary.gif
@CesarHgt @tomitribe
The javax.* namespace
• Oracle decides to restrict javax.* namespace
• Unchanged APIs can still use javax.* namespace
• Any other changes not allowed
• Adding a value to an enum
• Overriding/adding a method signature
• Adding default methods in interfaces
• Compensating for Java language changes
@CesarHgt @tomitribe
javax.* to jakarta.* namespace
• Remember the stats slide
• How to maintain binary
compatible for existing
applications
• Community discussion lead
to a Big Band approach
https://jakarta.ee/resources/JakartaEE-Datasheet-July172020_final.pdf
@CesarHgt @tomitribe
Jakarta EE milestone release
● javax.* namespace no longer valid; need to use jakarta.*
● Implementations are available
○ API jars are available for all components
○ Initial component implementations for all APIs
○ Initial TCKs for all APIs
○ Draft Full Platform and Web Profile specifications
● Available on JDK 8; JDK 11 support planned post GA
@CesarHgt @tomitribe
Apache TomEE
@CesarHgt @tomitribe
Apache TomEE
● Apache Tomcat + Java EE = Apache TomEE
● Built from Apache components
● MicroProfile compliant
● Footprint: 30MB zip, 100~MB memory
● TomEE 9.0.0-M1 (javax -> jakarta)
@CesarHgt @tomitribe
tomee.apache.org
@CesarHgt @tomitribe
Apache TomEE
TomEE JAX-RS Microprofile
Java Server Pages
(JSP)
Java Server Faces
(JSF)
Java Transaction
API (JTA)
Bean Validation
Enterprise
JavaBeansJavaMail API
Java API for
RESTful Web
Services (JAX-RS)
Java Persistence
API (JPA)
Contexts and
Dependency
Injection (CDI)
Java Servlets
Java
Authentication and
Authorization
Service (JAAS)
Java Authorization
Contract for
Containers (JACC)
http://tomee.apache.org/comparison.html
@CesarHgt @tomitribe
TomEE 9 M1
● Bytecode level
○ Eclipse Transformer
○ TomEE Patch Plugin.
● No branches. No forks. No merge-conflict hell. Just two separate
binaries from the same source; TomEE 8x for javax users: TomEE 9x for
jakarta users.
● 90% pass rate on the Jakarta EE 9 Milestone 1 Web Profile TCK.
@CesarHgt @tomitribe
Live Java EE 8 application migration
to Jakarta EE 9
@CesarHgt @tomitribe
Jakarta EE 9 Up and Running
Get the Binary :)
1. Donwload apache-tomee-9.0.0-M1-plus.zip from
https://tomee.apache.org
2. unzip apache-tomee-9.0.0-M1-plus.zip
3. chmod +x apache-tomee-plus-9.0.0-M1/bin/catalina.sh
4. ./apache-tomee-plus-9.0.0-M1/bin/catalina.sh run
@CesarHgt @tomitribe
Build and run
1. wget https://github.com/apache/tomee/archive/tomee-project-8.0.4.zip
2. unzip tomee-project-8.0.4.zip
3. cd tomee-tomee-project-8.0.4/examples/moviefun-rest
4. idea . #Or your favorite IDE
5. mvn verify
6. Inspec moviefun-rest-jakartaee9-8.0.4.war
7. cp target/moviefun-rest-jakartaee9-8.0.4.war <TomEE9M1_HOME>/webapps
Jakarta EE 9 Up and Running
@CesarHgt @tomitribe
Jakarta EE 9 Up and Running
Test the application
curl -X POST http://localhost:8080/moviefun-rest-jakartaee9-8.0.4/rest/load
curl -s http://localhost:8080/moviefun-rest-jakartaee9-8.0.4/rest/movies/ | jq
open https://tomee.apache.org/tomee-9.0/examples/moviefun-rest.html
@CesarHgt @tomitribe
● https://www.tomitribe.com/blog/jakarta-ee-9-milestone-and-apache-t
omee-9-0-0-m1/
● https://tomee.apache.org/tomee-9.0/docs/
Resources
@CesarHgt @tomitribe
How to contribute in TomEE?
• tomee.apache.org/community
• Share your migration takeaways
• Documentation
• Website fixes
• Code tests
• Code examples
• Coverage increase for unit, integration, performance and static tests
• Workshops
@CesarHgt @tomitribe
Jakarta EE 10 and beyond
The future of cloud-native Java
@CesarHgt @tomitribe
Shifting to Cloud native applications
• Meanwhile cloud became a reality
@CesarHgt @tomitribe
Shifting to Cloud native applications
@CesarHgt @tomitribe
How to contribute in Jakarta EE?
• jakarta.ee/connect
○ Community, Working Group and Projects Mailing List
○ Slack, Newsletter, Blogs, Social Media
• Join Jakarta EE community meetings
• Join EE4J top project and Jakarta EE working group
• Spread the word by speaking at conferences or blogging
@CesarHgt @tomitribe
Thank you
César Hernández
Paving the way with Jakarta EE
and Apache TomEE

Contenu connexe

Tendances

eXo EC - Groovy Programming Language
eXo EC - Groovy Programming LanguageeXo EC - Groovy Programming Language
eXo EC - Groovy Programming Language
Hoat Le
 
Android build process (1)
Android build process (1)Android build process (1)
Android build process (1)
Shubham Goyal
 
Git For The Android Developer
Git For The Android DeveloperGit For The Android Developer
Git For The Android Developer
Effective
 

Tendances (20)

Creando microservicios con Java y Microprofile - Nicaragua JUG
Creando microservicios con Java y Microprofile - Nicaragua JUGCreando microservicios con Java y Microprofile - Nicaragua JUG
Creando microservicios con Java y Microprofile - Nicaragua JUG
 
Jumping in Jakarta Open Source Project Everything nobody tells you
Jumping in Jakarta Open Source Project  Everything nobody tells youJumping in Jakarta Open Source Project  Everything nobody tells you
Jumping in Jakarta Open Source Project Everything nobody tells you
 
Creating an api from design to security.
Creating an api from design to security.Creating an api from design to security.
Creating an api from design to security.
 
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
Do You Git Your Code? Follow Simplified Gitflow Branching Model to Improve Pr...
 
Golang start and tips
Golang start and tipsGolang start and tips
Golang start and tips
 
Golang for PHP programmers: A practical introduction
Golang for PHP programmers: A practical introductionGolang for PHP programmers: A practical introduction
Golang for PHP programmers: A practical introduction
 
HTTP / 1, HTTP / 2 and HTTP / 3: Past, present and the future of APIs
HTTP / 1, HTTP / 2 and HTTP / 3: Past, present and the future of APIsHTTP / 1, HTTP / 2 and HTTP / 3: Past, present and the future of APIs
HTTP / 1, HTTP / 2 and HTTP / 3: Past, present and the future of APIs
 
GR8Conf 2015 - Spring Boot and Groovy. What more do you need?
GR8Conf 2015 - Spring Boot and Groovy. What more do you need?GR8Conf 2015 - Spring Boot and Groovy. What more do you need?
GR8Conf 2015 - Spring Boot and Groovy. What more do you need?
 
Build Chef development box from scratch
Build Chef development box from scratchBuild Chef development box from scratch
Build Chef development box from scratch
 
How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)How to เสร็จเร็ว (Use Agile for your project with team)
How to เสร็จเร็ว (Use Agile for your project with team)
 
A painless self-hosted Git service: Gitea
A painless self-hosted Git service: GiteaA painless self-hosted Git service: Gitea
A painless self-hosted Git service: Gitea
 
Develop Android app using Golang
Develop Android app using GolangDevelop Android app using Golang
Develop Android app using Golang
 
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)
iTHome Gopher Day 2017: What can Golang do?  (Using project 52 as examples)iTHome Gopher Day 2017: What can Golang do?  (Using project 52 as examples)
iTHome Gopher Day 2017: What can Golang do? (Using project 52 as examples)
 
eXo EC - Groovy Programming Language
eXo EC - Groovy Programming LanguageeXo EC - Groovy Programming Language
eXo EC - Groovy Programming Language
 
Whats New In Groovy 1.6?
Whats New In Groovy 1.6?Whats New In Groovy 1.6?
Whats New In Groovy 1.6?
 
Introduction to Gitea with Drone
Introduction to Gitea with DroneIntroduction to Gitea with Drone
Introduction to Gitea with Drone
 
Android build process (1)
Android build process (1)Android build process (1)
Android build process (1)
 
Git For The Android Developer
Git For The Android DeveloperGit For The Android Developer
Git For The Android Developer
 
Git sourcecontrolpreso
Git sourcecontrolpresoGit sourcecontrolpreso
Git sourcecontrolpreso
 
Git for Beginners
Git for BeginnersGit for Beginners
Git for Beginners
 

Similaire à Pavimentando el camino con Jakarta EE 9 y Apache TomEE

Rapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web ArchitecturesRapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web Architectures
Keith Fitzgerald
 

Similaire à Pavimentando el camino con Jakarta EE 9 y Apache TomEE (20)

Paving the way with Jakarta EE and apache TomEE at cloudconferenceday
Paving the way with Jakarta EE and apache TomEE at cloudconferencedayPaving the way with Jakarta EE and apache TomEE at cloudconferenceday
Paving the way with Jakarta EE and apache TomEE at cloudconferenceday
 
Paving the way with Jakarta EE and Apache TomEE - JCConf
Paving the way with Jakarta EE  and Apache TomEE - JCConfPaving the way with Jakarta EE  and Apache TomEE - JCConf
Paving the way with Jakarta EE and Apache TomEE - JCConf
 
Creando microservicios con java micro profile y tomee - CUNORI 2020
Creando microservicios con java micro profile y tomee - CUNORI 2020Creando microservicios con java micro profile y tomee - CUNORI 2020
Creando microservicios con java micro profile y tomee - CUNORI 2020
 
Creando microservicios con Java MicroProfile y TomEE - OGBT
Creando microservicios con Java MicroProfile y TomEE  - OGBTCreando microservicios con Java MicroProfile y TomEE  - OGBT
Creando microservicios con Java MicroProfile y TomEE - OGBT
 
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !
 
GraalVM and MicroProfile - A Polyglot Microservices Solution
GraalVM and MicroProfile - A Polyglot Microservices SolutionGraalVM and MicroProfile - A Polyglot Microservices Solution
GraalVM and MicroProfile - A Polyglot Microservices Solution
 
2018 (codeone) Graal VM and MicroProfile a polyglot microservices solution [d...
2018 (codeone) Graal VM and MicroProfile a polyglot microservices solution [d...2018 (codeone) Graal VM and MicroProfile a polyglot microservices solution [d...
2018 (codeone) Graal VM and MicroProfile a polyglot microservices solution [d...
 
Creando microservicios con Java, Microprofile y TomEE - Baranquilla JUG
Creando microservicios con Java, Microprofile y TomEE - Baranquilla JUGCreando microservicios con Java, Microprofile y TomEE - Baranquilla JUG
Creando microservicios con Java, Microprofile y TomEE - Baranquilla JUG
 
Lightweight Enterprise Java With Microprofile
Lightweight Enterprise Java With MicroprofileLightweight Enterprise Java With Microprofile
Lightweight Enterprise Java With Microprofile
 
Stackato v4
Stackato v4Stackato v4
Stackato v4
 
Rapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web ArchitecturesRapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web Architectures
 
Gestión de infraestructura tomcat/Tom EE con tfactory
Gestión de infraestructura tomcat/Tom EE con tfactoryGestión de infraestructura tomcat/Tom EE con tfactory
Gestión de infraestructura tomcat/Tom EE con tfactory
 
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!
 
WebRTC Reborn - Full Stack
WebRTC Reborn  - Full StackWebRTC Reborn  - Full Stack
WebRTC Reborn - Full Stack
 
How to Build Single Page HTML5 Apps that Scale
How to Build Single Page HTML5 Apps that ScaleHow to Build Single Page HTML5 Apps that Scale
How to Build Single Page HTML5 Apps that Scale
 
Websocket 101 in Python
Websocket 101 in PythonWebsocket 101 in Python
Websocket 101 in Python
 
WebRTC Reborn SignalConf 2016
WebRTC Reborn SignalConf 2016WebRTC Reborn SignalConf 2016
WebRTC Reborn SignalConf 2016
 
Twilio Signal 2016 WebRTC Reborn
Twilio Signal 2016 WebRTC RebornTwilio Signal 2016 WebRTC Reborn
Twilio Signal 2016 WebRTC Reborn
 
Self-service PR-based Terraform
Self-service PR-based TerraformSelf-service PR-based Terraform
Self-service PR-based Terraform
 
Gestión de infraestructura tomcat tom ee con tfactory
Gestión de infraestructura tomcat tom ee con tfactoryGestión de infraestructura tomcat tom ee con tfactory
Gestión de infraestructura tomcat tom ee con tfactory
 

Plus de César Hernández

Plus de César Hernández (15)

7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
 
Keeping brazil's medical industry safe with Micro Profile [TDC 2021]
Keeping brazil's medical industry safe with Micro Profile [TDC 2021]Keeping brazil's medical industry safe with Micro Profile [TDC 2021]
Keeping brazil's medical industry safe with Micro Profile [TDC 2021]
 
Keeping brazil's medical industry safe with Micro Profile and JakartaEE - Jak...
Keeping brazil's medical industry safe with Micro Profile and JakartaEE - Jak...Keeping brazil's medical industry safe with Micro Profile and JakartaEE - Jak...
Keeping brazil's medical industry safe with Micro Profile and JakartaEE - Jak...
 
It is easy contributing to Open Source - ECLIPSE CON 2020
It is easy contributing to Open Source - ECLIPSE CON 2020It is easy contributing to Open Source - ECLIPSE CON 2020
It is easy contributing to Open Source - ECLIPSE CON 2020
 
Keeping brazil's medical industry safe with Micro Profile and JakartaEE - Jak...
Keeping brazil's medical industry safe with Micro Profile and JakartaEE - Jak...Keeping brazil's medical industry safe with Micro Profile and JakartaEE - Jak...
Keeping brazil's medical industry safe with Micro Profile and JakartaEE - Jak...
 
Conviértete en un contributor de open source con apache TomEE
Conviértete en un contributor de open source con apache TomEEConviértete en un contributor de open source con apache TomEE
Conviértete en un contributor de open source con apache TomEE
 
Deconstruyendo la seguridad en rest
Deconstruyendo la seguridad en restDeconstruyendo la seguridad en rest
Deconstruyendo la seguridad en rest
 
Open jalpa 2019 - CI y CD en la nube
Open jalpa 2019  - CI y CD en la nubeOpen jalpa 2019  - CI y CD en la nube
Open jalpa 2019 - CI y CD en la nube
 
Java EE ahora es Jakarta EE - Java Day Guatemala 2018
Java EE ahora es Jakarta EE - Java Day Guatemala 2018Java EE ahora es Jakarta EE - Java Day Guatemala 2018
Java EE ahora es Jakarta EE - Java Day Guatemala 2018
 
2018 (codeone) type safe approach to invoking restful services with microprof...
2018 (codeone) type safe approach to invoking restful services with microprof...2018 (codeone) type safe approach to invoking restful services with microprof...
2018 (codeone) type safe approach to invoking restful services with microprof...
 
Seguridad en microservicios via micro profile jwt
Seguridad en microservicios via micro profile jwtSeguridad en microservicios via micro profile jwt
Seguridad en microservicios via micro profile jwt
 
De Java EE a Jakarta EE - ODT Guatemala 2018
De Java EE a Jakarta EE - ODT Guatemala 2018De Java EE a Jakarta EE - ODT Guatemala 2018
De Java EE a Jakarta EE - ODT Guatemala 2018
 
2018 ecuador deconstruyendo y evolucionando la seguridad en servicios rest
2018 ecuador deconstruyendo y evolucionando la seguridad en servicios rest2018 ecuador deconstruyendo y evolucionando la seguridad en servicios rest
2018 ecuador deconstruyendo y evolucionando la seguridad en servicios rest
 
2018 colombia deconstruyendo y evolucionando la seguridad en servicios rest
2018 colombia deconstruyendo y evolucionando la seguridad en servicios rest2018 colombia deconstruyendo y evolucionando la seguridad en servicios rest
2018 colombia deconstruyendo y evolucionando la seguridad en servicios rest
 
Introducción a Java EE con Apache TomEE
Introducción a Java EE con Apache TomEEIntroducción a Java EE con Apache TomEE
Introducción a Java EE con Apache TomEE
 

Dernier

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 

Dernier (20)

FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
Buy Epson EcoTank L3210 Colour Printer Online.pdf
Buy Epson EcoTank L3210 Colour Printer Online.pdfBuy Epson EcoTank L3210 Colour Printer Online.pdf
Buy Epson EcoTank L3210 Colour Printer Online.pdf
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Agentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfAgentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdf
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
THE BEST IPTV in GERMANY for 2024: IPTVreel
THE BEST IPTV in  GERMANY for 2024: IPTVreelTHE BEST IPTV in  GERMANY for 2024: IPTVreel
THE BEST IPTV in GERMANY for 2024: IPTVreel
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Buy Epson EcoTank L3210 Colour Printer Online.pptx
Buy Epson EcoTank L3210 Colour Printer Online.pptxBuy Epson EcoTank L3210 Colour Printer Online.pptx
Buy Epson EcoTank L3210 Colour Printer Online.pptx
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering Teams
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 

Pavimentando el camino con Jakarta EE 9 y Apache TomEE

  • 1. @CesarHgt @tomitribe César Hernández Pavimentando el camino con Jakarta EE 9 y Apache TomEE
  • 2. @CesarHgt @tomitribe Who am I? César Hernández ● Senior Software Engineer at Tomitribe ● Java Champion & Oracle Groundbreaker Ambassador ● Duke’s Choice Award 2016, 2017 ● Oracle Certified Professional ● +14 experience with Java Enterprise ● Apache TomEE, Eclipse Jakarta EE Committer, contributor for Microprofile. ● Open Source advocate, teacher and public speaker
  • 6. @CesarHgt @tomitribe Eclipse Foundation overview https://www.eclipse.org/membership/documents/eclipse-foundation-overview.pdf 360+ Projects 275+ Members 1550+ Committers 195M+ Lines of code 15 Years 30 Members
  • 8. @CesarHgt @tomitribe How big is that? • Jakarta EE • 5,5 million lines of code • 2,2 million lines of comments • 61k files • TCK (Test Suite) • 4,6 million lines of code • 1,1 million lines of comments • 34k files
  • 9. @CesarHgt @tomitribe 13,5 million lines of code in 95k files.
  • 10. @CesarHgt @tomitribe Participation • + 80 active contributors • + 200 designated committers • +1000 commits • + 900 PRs https://jakarta.ee
  • 11. @CesarHgt @tomitribe What has NOT been donated? • Java EE Brand name • The javax.* namespace egrep -lRZ 'javax' . | xargs -0 -l sed -i -e 's/javax/jakarta/g' https://simpsons.fandom.com/wiki/Benjamin_(nerd)?file=Benjamin,_Doug,_and_Gary.gif
  • 12. @CesarHgt @tomitribe The javax.* namespace • Oracle decides to restrict javax.* namespace • Unchanged APIs can still use javax.* namespace • Any other changes not allowed • Adding a value to an enum • Overriding/adding a method signature • Adding default methods in interfaces • Compensating for Java language changes
  • 13. @CesarHgt @tomitribe javax.* to jakarta.* namespace • Remember the stats slide • How to maintain binary compatible for existing applications • Community discussion lead to a Big Band approach https://jakarta.ee/resources/JakartaEE-Datasheet-July172020_final.pdf
  • 14. @CesarHgt @tomitribe Jakarta EE milestone release ● javax.* namespace no longer valid; need to use jakarta.* ● Implementations are available ○ API jars are available for all components ○ Initial component implementations for all APIs ○ Initial TCKs for all APIs ○ Draft Full Platform and Web Profile specifications ● Available on JDK 8; JDK 11 support planned post GA
  • 16. @CesarHgt @tomitribe Apache TomEE ● Apache Tomcat + Java EE = Apache TomEE ● Built from Apache components ● MicroProfile compliant ● Footprint: 30MB zip, 100~MB memory ● TomEE 9.0.0-M1 (javax -> jakarta)
  • 18. @CesarHgt @tomitribe Apache TomEE TomEE JAX-RS Microprofile Java Server Pages (JSP) Java Server Faces (JSF) Java Transaction API (JTA) Bean Validation Enterprise JavaBeansJavaMail API Java API for RESTful Web Services (JAX-RS) Java Persistence API (JPA) Contexts and Dependency Injection (CDI) Java Servlets Java Authentication and Authorization Service (JAAS) Java Authorization Contract for Containers (JACC) http://tomee.apache.org/comparison.html
  • 19. @CesarHgt @tomitribe TomEE 9 M1 ● Bytecode level ○ Eclipse Transformer ○ TomEE Patch Plugin. ● No branches. No forks. No merge-conflict hell. Just two separate binaries from the same source; TomEE 8x for javax users: TomEE 9x for jakarta users. ● 90% pass rate on the Jakarta EE 9 Milestone 1 Web Profile TCK.
  • 20. @CesarHgt @tomitribe Live Java EE 8 application migration to Jakarta EE 9
  • 21. @CesarHgt @tomitribe Jakarta EE 9 Up and Running Get the Binary :) 1. Donwload apache-tomee-9.0.0-M1-plus.zip from https://tomee.apache.org 2. unzip apache-tomee-9.0.0-M1-plus.zip 3. chmod +x apache-tomee-plus-9.0.0-M1/bin/catalina.sh 4. ./apache-tomee-plus-9.0.0-M1/bin/catalina.sh run
  • 22. @CesarHgt @tomitribe Build and run 1. wget https://github.com/apache/tomee/archive/tomee-project-8.0.4.zip 2. unzip tomee-project-8.0.4.zip 3. cd tomee-tomee-project-8.0.4/examples/moviefun-rest 4. idea . #Or your favorite IDE 5. mvn verify 6. Inspec moviefun-rest-jakartaee9-8.0.4.war 7. cp target/moviefun-rest-jakartaee9-8.0.4.war <TomEE9M1_HOME>/webapps Jakarta EE 9 Up and Running
  • 23. @CesarHgt @tomitribe Jakarta EE 9 Up and Running Test the application curl -X POST http://localhost:8080/moviefun-rest-jakartaee9-8.0.4/rest/load curl -s http://localhost:8080/moviefun-rest-jakartaee9-8.0.4/rest/movies/ | jq open https://tomee.apache.org/tomee-9.0/examples/moviefun-rest.html
  • 25. @CesarHgt @tomitribe How to contribute in TomEE? • tomee.apache.org/community • Share your migration takeaways • Documentation • Website fixes • Code tests • Code examples • Coverage increase for unit, integration, performance and static tests • Workshops
  • 26. @CesarHgt @tomitribe Jakarta EE 10 and beyond The future of cloud-native Java
  • 27. @CesarHgt @tomitribe Shifting to Cloud native applications • Meanwhile cloud became a reality
  • 28. @CesarHgt @tomitribe Shifting to Cloud native applications
  • 29. @CesarHgt @tomitribe How to contribute in Jakarta EE? • jakarta.ee/connect ○ Community, Working Group and Projects Mailing List ○ Slack, Newsletter, Blogs, Social Media • Join Jakarta EE community meetings • Join EE4J top project and Jakarta EE working group • Spread the word by speaking at conferences or blogging
  • 30. @CesarHgt @tomitribe Thank you César Hernández Paving the way with Jakarta EE and Apache TomEE