SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
@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
Innovation versus Standardization
@CesarHgt @tomitribe
Usual complains about standards
• Slow
• Don’t guarantee portability
• Don’t have feature X
• Don’t innovate
• It’s just a bench of vendor experts
@CesarHgt @tomitribe
@CesarHgt @tomitribe
From Java EE to Jakarta EE
@CesarHgt @tomitribe
Eclipse Foundation overview
https://www.eclipse.org/membership/documents/eclipse-foundation-overview.pdf
360+ 275+ 1550+
195M+ 15 30
@CesarHgt @tomitribe
Some Eclipse (Java) Projects
@CesarHgt @tomitribe
What makes Jakarta EE different?
@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
The jakarta.* namespace migration strategy
• Big-bang Jakarta EE 9, Jakarta EE 10 new features
• One time move from javax to jakarta namespace
• Not prolonging industry cost and pain associated with transition
• Incremental change in Jakarta EE 9 and beyond
• Evolve API sources from javax to jakarta namespace as needed basis
• Most active specifications would move immediately in Jakarta EE 9
• Every Jakarta EE release, starting from 10 may involve some javax to jakarta
namespace transition
@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
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
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
Thank you
César Hernández
Paving the way with Jakarta EE
and Apache TomEE

Weitere ähnliche Inhalte

Was ist angesagt?

Git For The Android Developer
Git For The Android DeveloperGit For The Android Developer
Git For The Android Developer
Effective
 

Was ist angesagt? (20)

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)
 
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
 
Building Web Apps in Ratpack
Building Web Apps in RatpackBuilding Web Apps in Ratpack
Building Web Apps in Ratpack
 
Ratpack Web Framework
Ratpack Web FrameworkRatpack Web Framework
Ratpack Web Framework
 
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
 
Ratpack Web Framework
Ratpack Web FrameworkRatpack Web Framework
Ratpack Web Framework
 
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
 
Intro to Ratpack (CDJDN 2015-01-22)
Intro to Ratpack (CDJDN 2015-01-22)Intro to Ratpack (CDJDN 2015-01-22)
Intro to Ratpack (CDJDN 2015-01-22)
 
Git For The Android Developer
Git For The Android DeveloperGit For The Android Developer
Git For The Android Developer
 
140 releases per month
140 releases per month140 releases per month
140 releases per month
 
Pluginize ALL the things
Pluginize ALL the thingsPluginize ALL the things
Pluginize ALL the things
 
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecerTDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
 
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...
 
Perl wants you
Perl wants youPerl wants you
Perl wants you
 
Ágiles 2016 - Using open source tools to support Continuous Delivery
Ágiles 2016 - Using open source tools to support Continuous DeliveryÁgiles 2016 - Using open source tools to support Continuous Delivery
Ágiles 2016 - Using open source tools to support Continuous Delivery
 
DevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh CityDevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh City
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
Desktop Apps with PHP and Titanium (ZendCon 2010)
Desktop Apps with PHP and Titanium (ZendCon 2010)Desktop Apps with PHP and Titanium (ZendCon 2010)
Desktop Apps with PHP and Titanium (ZendCon 2010)
 
LiveRebel + Pragmatic Continuous Delivery (Arcusys)
LiveRebel + Pragmatic Continuous Delivery (Arcusys)LiveRebel + Pragmatic Continuous Delivery (Arcusys)
LiveRebel + Pragmatic Continuous Delivery (Arcusys)
 
javerosmx-2015-marzo-groovy-java8-comparison
javerosmx-2015-marzo-groovy-java8-comparisonjaverosmx-2015-marzo-groovy-java8-comparison
javerosmx-2015-marzo-groovy-java8-comparison
 

Ähnlich wie Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020

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
 

Ähnlich wie Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020 (20)

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
 
Stackato v4
Stackato v4Stackato v4
Stackato v4
 
Self-service PR-based Terraform
Self-service PR-based TerraformSelf-service PR-based Terraform
Self-service PR-based Terraform
 
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
 
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
 
Stackato v6
Stackato v6Stackato v6
Stackato v6
 
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 !
 
Stackato v3
Stackato v3Stackato v3
Stackato v3
 
Scaling Prometheus on Kubernetes with Thanos
Scaling Prometheus on Kubernetes with ThanosScaling Prometheus on Kubernetes with Thanos
Scaling Prometheus on Kubernetes with Thanos
 
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
 
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
 
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
 
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...
 
Meteor
MeteorMeteor
Meteor
 
Meteor for IT weekend
Meteor for IT weekendMeteor for IT weekend
Meteor for IT weekend
 
Meteor
MeteorMeteor
Meteor
 
Websocket 101 in Python
Websocket 101 in PythonWebsocket 101 in Python
Websocket 101 in Python
 
TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...
TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...
TechSEO Boost 2018: Implementing Hreflang on Legacy Tech Stacks Using Service...
 
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
 

Mehr von César Hernández

Mehr von César Hernández (17)

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
 
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...
 
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
 

Kürzlich hochgeladen

AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 

Kürzlich hochgeladen (20)

AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
 
INGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignINGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by Design
 
CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdf
 
Naer Toolbar Redesign - Usability Research Synthesis
Naer Toolbar Redesign - Usability Research SynthesisNaer Toolbar Redesign - Usability Research Synthesis
Naer Toolbar Redesign - Usability Research Synthesis
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdf
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion Production
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
 
IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdf
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 
AI Hackathon.pptx
AI                        Hackathon.pptxAI                        Hackathon.pptx
AI Hackathon.pptx
 

Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020

  • 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
  • 5. @CesarHgt @tomitribe Usual complains about standards • Slow • Don’t guarantee portability • Don’t have feature X • Don’t innovate • It’s just a bench of vendor experts
  • 8. @CesarHgt @tomitribe Eclipse Foundation overview https://www.eclipse.org/membership/documents/eclipse-foundation-overview.pdf 360+ 275+ 1550+ 195M+ 15 30
  • 10. @CesarHgt @tomitribe What makes Jakarta EE different?
  • 12. @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
  • 13. @CesarHgt @tomitribe 13,5 million lines of code in 95k files.
  • 14. @CesarHgt @tomitribe Participation • + 80 active contributors • + 200 designated committers • +1000 commits • + 900 PRs https://jakarta.ee
  • 15. @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
  • 16. @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
  • 17. @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
  • 18. @CesarHgt @tomitribe The jakarta.* namespace migration strategy • Big-bang Jakarta EE 9, Jakarta EE 10 new features • One time move from javax to jakarta namespace • Not prolonging industry cost and pain associated with transition • Incremental change in Jakarta EE 9 and beyond • Evolve API sources from javax to jakarta namespace as needed basis • Most active specifications would move immediately in Jakarta EE 9 • Every Jakarta EE release, starting from 10 may involve some javax to jakarta namespace transition
  • 19. @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
  • 21. @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)
  • 23. @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
  • 24. @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.
  • 26. @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
  • 27. @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
  • 28. @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
  • 30. @CesarHgt @tomitribe Jakarta EE 10 and beyond The future of cloud-native Java
  • 31. @CesarHgt @tomitribe Shifting to Cloud native applications • Meanwhile cloud became a reality
  • 32. @CesarHgt @tomitribe Shifting to Cloud native applications
  • 33. @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
  • 34. @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
  • 35. @CesarHgt @tomitribe Thank you César Hernández Paving the way with Jakarta EE and Apache TomEE