SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
@CesarHgt @tomitribe
César Hernández
Paving the way with Jakarta EE
and 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+ 275+ 1550+
195M+ 15 30
@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
@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
@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

Más contenido relacionado

La actualidad más candente

Introduction to Gitlab
Introduction to GitlabIntroduction to Gitlab
Introduction to Gitlab
Julien Pivotto
 

La actualidad más candente (20)

Git best practices 2016
Git best practices 2016Git best practices 2016
Git best practices 2016
 
CPAN Workshop, Chicago 2014
CPAN Workshop, Chicago 2014CPAN Workshop, Chicago 2014
CPAN Workshop, Chicago 2014
 
Workflows using Git GitHub | Edureka
Workflows using Git GitHub | EdurekaWorkflows using Git GitHub | Edureka
Workflows using Git GitHub | Edureka
 
My Top 5 Favorite Gems
My Top 5 Favorite GemsMy Top 5 Favorite Gems
My Top 5 Favorite Gems
 
How to use any static site generator with GitLab Pages.
How to use any static site generator with GitLab Pages. How to use any static site generator with GitLab Pages.
How to use any static site generator with GitLab Pages.
 
Github
GithubGithub
Github
 
Introduction to Gitlab
Introduction to GitlabIntroduction to Gitlab
Introduction to Gitlab
 
FOSDEM 2017: GitLab CI
FOSDEM 2017:  GitLab CIFOSDEM 2017:  GitLab CI
FOSDEM 2017: GitLab CI
 
Desarrollo web backend: Spring Boot, MongoDB y Azure
Desarrollo web backend: Spring Boot, MongoDB y AzureDesarrollo web backend: Spring Boot, MongoDB y Azure
Desarrollo web backend: Spring Boot, MongoDB y Azure
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
Ratpack JVM_MX Meetup February 2016
Ratpack JVM_MX Meetup February 2016Ratpack JVM_MX Meetup February 2016
Ratpack JVM_MX Meetup February 2016
 
GitLab as an Alternative Development Platform for Github.com
GitLab as an Alternative Development Platform for Github.comGitLab as an Alternative Development Platform for Github.com
GitLab as an Alternative Development Platform for Github.com
 
Hacking Git and GitHub
Hacking Git and GitHubHacking Git and GitHub
Hacking Git and GitHub
 
Github basics
Github basicsGithub basics
Github basics
 
Deploying TYPO3 Neos websites using Surf
Deploying TYPO3 Neos websites using SurfDeploying TYPO3 Neos websites using Surf
Deploying TYPO3 Neos websites using Surf
 
Gitlab and Lingvokot
Gitlab and LingvokotGitlab and Lingvokot
Gitlab and Lingvokot
 
Introduction to Git for Artists
Introduction to Git for ArtistsIntroduction to Git for Artists
Introduction to Git for Artists
 
Intro to Git, GitHub, and Devpost
Intro to Git, GitHub, and DevpostIntro to Git, GitHub, and Devpost
Intro to Git, GitHub, and Devpost
 
git and github
git and githubgit and github
git and github
 
Go & multi platform GUI Trials and Errors
Go & multi platform GUI Trials and ErrorsGo & multi platform GUI Trials and Errors
Go & multi platform GUI Trials and Errors
 

Similar a Paving the way with Jakarta EE and apache TomEE at cloudconferenceday

Similar a Paving the way with Jakarta EE and apache TomEE at cloudconferenceday (20)

Pavimentando el camino con Jakarta EE 9 y Apache TomEE
Pavimentando el camino con Jakarta EE 9 y Apache TomEE Pavimentando el camino con Jakarta EE 9 y Apache TomEE
Pavimentando el camino con Jakarta EE 9 y Apache TomEE
 
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
 
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...
 
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
 
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
 
Stackato v4
Stackato v4Stackato v4
Stackato v4
 
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
 
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 !
 
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
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipeline
 
Lightweight Enterprise Java With Microprofile
Lightweight Enterprise Java With MicroprofileLightweight Enterprise Java With Microprofile
Lightweight Enterprise Java With Microprofile
 
Stackato v6
Stackato v6Stackato v6
Stackato v6
 
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
 
Self-service PR-based Terraform
Self-service PR-based TerraformSelf-service PR-based Terraform
Self-service PR-based Terraform
 
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...
 
APIs in production - we built it, can we fix it?
APIs in production - we built it, can we fix it?APIs in production - we built it, can we fix it?
APIs in production - we built it, can we fix it?
 
EclipseCon France 2018 report
EclipseCon France 2018 reportEclipseCon France 2018 report
EclipseCon France 2018 report
 
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
 
Containers for grownups migrating traditional &amp; existing applications[1...
Containers for grownups   migrating traditional &amp; existing applications[1...Containers for grownups   migrating traditional &amp; existing applications[1...
Containers for grownups migrating traditional &amp; existing applications[1...
 
Scaling Prometheus on Kubernetes with Thanos
Scaling Prometheus on Kubernetes with ThanosScaling Prometheus on Kubernetes with Thanos
Scaling Prometheus on Kubernetes with Thanos
 

Más de César Hernández

Más de César Hernández (20)

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]
 
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 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 - JCON 2020
It is easy contributing to open source - JCON 2020It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020
 
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
 
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
 
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
 
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...
 
Es fácil contribuir al open source - Bolivia JUG 2020
Es fácil contribuir al open source - Bolivia JUG 2020Es fácil contribuir al open source - Bolivia JUG 2020
Es fácil contribuir al open source - Bolivia JUG 2020
 
Its easy! contributing to open source - Devnexus 2020
Its easy! contributing to open source - Devnexus 2020Its easy! contributing to open source - Devnexus 2020
Its easy! contributing to open source - Devnexus 2020
 
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
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (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...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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
 

Paving the way with Jakarta EE and apache TomEE at cloudconferenceday

  • 1. @CesarHgt @tomitribe César Hernández Paving the way with Jakarta EE and 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+ 275+ 1550+ 195M+ 15 30
  • 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.
  • 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