In the ever-evolving world of enterprise software development, the Jakarta EE platform has undergone a remarkable transformation. Join us on a captivating journey as we trace the evolution of Jakarta EE from its legacy origins to its current legendary status in the modern era. In this talk, we will explore the pivotal moments and significant enhancements that have shaped Jakarta EE into a powerhouse for building robust and scalable enterprise applications. We will examine how Jakarta EE has adapted to meet the demands of today’s technology landscape, including the rise of cloud computing, microservices, and containerization…
2. ● Senior Full Stack Enterprise Java
Developer, Engineer and
Consultant, Sindi Technologies
(Pty) Ltd
○ 18+ years of Java development
experience.
● Jakarta EE Ambassador
● Tech speaker / Blogger
● Devoxx4Kids South Africa (Non-
Profit Organisation) founder and
event organiser
About Me
3. Where to find me?
https://linktr.ee/theEliteGentleman
buhake@gmail.com
@EliteGentleman
www.sindi.co.za
www.devoxx4kids.org.za
https://jakartaee-ambassadors.io/
6. JAKARTA EE
• Java EE that has been transitioned to Eclipse
Foundation.
• New licensing and Naming under the Eclipse Foundation
• Open governance, Community driven (under Jakarta EE
Specification Process), Vendor neutral open
collaboration.
• Fully open source: from specification, documentation to
Technology Compatibility Kit (TCK)
https://jakarta.ee
7. Same definition
“A set of specifications, extending
Java SE, with specifications for
enterprise features, such as
distributed computing and web
services.”
8. Specification-driven
• Jakarta EE is defined by specifications.
• Specifications defines APIs and their interactions.
• These APIs promotes interoperability, allowing
Jakarta EE applications to communicate with
various services and systems.
9. Members & Participants
• Key stakeholders transitioned to Jakarta EE and expanding (e.g.
Microsoft joined as Jakarta EE member in 2022).
• Individuals can also become member.
• To join: https://jakarta.ee/membership/
https://jakarta.ee/membership/members/
12. Jakarta EE Evolution
JPE
J2EE
1.2
Servlet,
JSP, EJB,
JMS
J2EE
1.3
CMP,
JCA
J2EE
1.4
JAX-WS
Java EE 5
EJB 3,
JPA, JSF,
JAXB, JAX-
WS
Java EE 7
WebSocket,
JSON,
Concurrency,
Batch, pruning
Java EE 8
HTTP/2, SSE,
Security,
pruning
Java EE 6
Profiles,
CDI, JAX-
RS, Bean
Validation
Jakarta EE
8
Open-source
governance
Jakarta EE
9.x
Namespace
transition
New features,
updates
Jakarta EE
11
JNoSQL,
Jakara Data
1.0
Jakarta EE
10
13. ● Early application servers had to be built to run on the Application server of
choice:
○ Lack of modularity. Tightly-coupled.
● Slow-release cadence
○ New versions of Java EE took years instead of months.
● Lack of interest in the development of Java EE
○ Oracle silently stopped funding and development of Java EE development since 2015
(took 4 years to release Java EE 8)
● Lack of adoption to cloud-native.
○ Thus, Spring Boot, released in April 2014, became the de-facto, popular, framework
for building Microservices.
Challenges with Java EE
15. ● Jakarta EE is the basis for the top frameworks used for building enterprise
and cloud native applications.
○ Quarkus, Helidon, Spring/SpringBoot and MicroProfile rely on Jakarta EE
specifications.
● Many enterprise Java applications are deployed on Jakarta EE Application
servers
○ Tomcat, TomEE, Jetty, Wildfly, JBoss EAP, Glassfish, Payara, Payara Micro,
Websphere, OpenLiberty, WebLogic
● Popular Java libraries depends on at least one Jakarta EE API
○ PrimeFaces, OmniFaces, Hibernate, EclipseLink, CXF, Jersey, RESTEasy, Weld,
ActiveMQ, Struts,
The importance of Jakarta EE in the Java
Ecosystem
16. Jakarta EE releases
Jakarta EE 10
Jakarta EE Core Profile, independent
individual specification development
Java SE 11 Multiple Compatible implementations
available on the release date
Jakarta EE 9 New jakarta namespace Java SE 8
Removal of deprecated specs
Jakarta EE 8
javax namespace, New process,
New licensing New logo
Java EE 8 Eclipse Foundation infrastructure
Java EE 8 Oracle infrastructure
& JCP process
Sources,
TCKs, Docs
Jakarta EE 9.1
Jakarta EE 11 Jakarta EE 11 Release Plan in works
17. Jakarta EE Platform Compatible Products
https://jakarta.ee/compatibility/
List of Compatible Products
by Releases
Jakarta EE 8
Compatible Products
Jakarta EE 9
Compatible Products
Jakarta EE 9.1
Compatible Products
Jakarta EE 10
Compatible Products
18. Authentication 3.0
Concurrency 3.0
CDI 4.0
Persistence 3.1
Faces 4.0
Security 3.0
Servlet 6.0
Standard Tag Libraries 3.0
Server Pages 3.1
WebSocket 2.1
Bean Validation 3.0
Debugging Support 2.0
Enterprise Beans Lite 4.0
Managed Beans 2.0
Transactions 2.0
Jakarta EE 10 Platform
Jakarta EE 10 Web Profile
Jakarta EE 10 Platform
Interceptors 2.1
Dependency Injection 2.0
Authorization 2.1
Activation 2.1
Batch 2.1
Connectors 2.1
Messaging 3.1
Enterprise Beans 4.0
Mail 2.1
JSON Binding 3.0
Annotations 2.1
Updated Not Updated New
Jakarta EE 10 Core Profile
Expression Language 5.0
Restful Web Services 3.1
Json Processing 2.1
Dependency Injection 2.0
CDI Lite 4
19. ● Visible release cycle
○ 3 major version release of Jakarta EE framework, from 2019 (Jakarta EE 8) to 2022 –
current (Jakarta EE 10).
● Jakarta EE 10 (current release) IS cloud-native
○ Shift from monolithic to lighter and more modular application architecture.
● Quick adaption to latest Java SE version.
○ Java record, Virtual threads
● Eclipse Microprofile is the baseline platform that optimises Jakarta EE for
microservices architecture.
○ Adopts Jakarta EE Core Profile (current version, Eclipse Microprofile 6.1).
● List of Jakarta EE compatible implementations are growing.
● List of Jakarta EE members are growing.
Jakarta EE today
20. ● Lightweight framework.
○ Documentations are updated regularly to reflect changes on the specifications
○ Applications are lightweight, with smaller JAR/WAR file on application build.
○ No dependency on external servers/resources. Just focus on code.
● Simple to run as standalone application
○ SeBootstrap (to run microservice as standalone app).
○ SeContainerInitializer (to run CDI application as standalone app).
● Simple to test
○ Testcontainers, jUnit/TestNG, Mockito, etc.
● Massive industry leading and community support.
● Jakarta EE Core Profile spawns various Microservices frameworks
○ Quarkus, Helidon, Microprofile
● Docker images exists for Jakarta EE compatible runtimes
○ Glassfish, Payara, Wildfly, OpenLiberty
25. Migrating your application to Jakarta EE
● Mavenise your Java application
● Choose your compatible Jakarta EE
compatible product
● https://jakarta.ee/compatibility/certificatio
n/10/
● Update your Jakarta EE version in
pom.xml
● Rename imports (javax.* to
jakarta.*)
● Update your project XML schema
and properties files.
● Or use tools to do all that migration
for you
● OpenRewrite, Eclipse Transformer,
various IDEs.
● Test, Test, Test!
27. ● Payara Cloud!
○ Payara’s solution to deploying your Microservice on the cloud.
○ Just upload your WAR file using your Payara Cloud Account.
● Microservices frameworks
○ Quarkus (Kubernetes-native, GraalVM and Hotspot)
○ Helidon (Cloud-native microservice architecture that runs on Java virtual threads).
○ Eclipse MicroProfile (Base framework for all microservices). To get started:
https://start.microprofile.io/
● Containerised deployments
○ Various runtimes have Docker images on Docker registry.
○ Build and deploy your application to any cloud provider: AWS, Microsoft Azure,
Google Cloud, RedHat OpenShift Cluster, etc.
On the cloud
29. • Follow Jakarta EE technologies that interest you and share opinion
• https://jakarta.ee/connect/mailing-lists/
• Advocate for a specific change or feature
• https://jakarta.ee/projects/
• Help implement a change in API, specification, TCK or implementation
• Sign Eclipse Contributor Agreement
• https://www.eclipse.org/legal/ECA.php
• Becoming a committer comes much later
• Engage an Ambassador if needed
• https://jakartaee-ambassadors.io
30. • JakartaOne Livestream recordings
• https://jakartaone.org
• Jakarta EE Community alias
• https://accounts.eclipse.org/mailing-list/jakarta.ee-
community
• Jakarta EE X (formerly Twitter) handle
• @JakartaEE
• Jakarta Tech Talks
• https://www.meetup.com/jakartatechtalks_
Resources