Modern and Lightweight Cloud Application Development with Jakarta EE 10

Ivar Grimstad
Ivar GrimstadJakarta EE Developer Advocate
Jakarta EE 10
Simplicity for Modern and Lightweight
Cloud Applications
# jfall.
Ivar Grimstad
Jakarta EE Developer Advocate
Eclipse Foundation
@ivar_grimstad
https://github.com/ivargrimstad
https://www.linkedin.com/in/ivargrimstad
@ivar_grimstad@mastadon.social
Modern and Lightweight Cloud Application Development with Jakarta EE 10
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Speci
fi
cation
Document
API
TCK
Final Speci
fi
cation
Compatible
Implementation(s)
Speci
fi
#JakartaEE COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) @ivar_grimstad
Jakarta EE 10 Web Pro
fi
Jakarta EE 10 Platform
Updated
Not Updated
New
Authorization 2.1
Activation 2.1
Batch 2.1
Connectors 2.1
Mail 2.1
Messaging 3.1
Enterprise Beans 4.0
RESTful Web Services 3.1
JSON Processing 2.1
JSON Binding 3.0
Annotations 2.1
CDI Lite 4.0
Interceptors 2.1
Dependency Injection 2.0
Servlet 6.0
Server Pages 3.1
Expression Language 5.0
Debugging Support 2.0
Standard Tag Libraries 3.0
Faces 4.0
WebSocket 2.1
Enterprise Beans Lite 4.0
Persistence 3.1
Transactions 2.0
Managed Beans 2.0
CDI 4.0
Authentication 3.0
Concurrency 3.0
Security 3.0
Bean Validation 3.0
#JakartaEE COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) @ivar_grimstad
Jakarta EE 10 Core Pro
fi
Jakarta EE 10 Web Pro
fi
le
Updated
Not Updated
New
RESTful Web Services 3.1
JSON Processing 2.1
JSON Binding 3.0
Annotations 2.1
CDI Lite 4.0
Interceptors 2.1
Dependency Injection 2.0
Servlet 6.0
Server Pages 3.1
Expression Language 5.0
Debugging Support 2.0
Standard Tag Libraries 3.0
Faces 4.0
WebSocket 2.1
Enterprise Beans Lite 4.0
Persistence 3.1
Transactions 2.0
Managed Beans 2.0
CDI 4.0
Authentication 3.0
Concurrency 3.0
Security 3.0
Bean Validation 3.0
#JakartaEE COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) @ivar_grimstad
Jakarta EE 10 Core Pro
fi
le
Updated
Not Updated
New
RESTful Web Services 3.1
JSON Processing 2.1
JSON Binding 3.0
Annotations 2.1
CDI Lite 4.0
Interceptors 2.1
Dependency Injection 2.0
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta EE 10
API source level: Java SE 11
API binary level: Java SE 11
TCK run with: Java SE 11+
App Developers (YOU) can use Java SE 17 features if you like!!
#JakartaEE COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) @ivar_grimstad
Authorization 2.1
Activation 2.1
Batch 2.1
Connectors 2.1
Mail 2.1
Messaging 3.1
Enterprise Beans 4.0
RESTful Web Services 3.1
JSON Processing 2.1
JSON Binding 3.0
Annotations 2.1
CDI Lite 4.0
Interceptors 2.1
Dependency Injection 2.0
Servlet 6.0
Server Pages 3.1
Expression Language 5.0
Debugging Support 2.0
Standard Tag Libraries 3.0
Faces 4.0
WebSocket 2.1
Enterprise Beans Lite 4.0
Persistence 3.1
Transactions 2.0
Managed Beans 2.0
CDI 4.0
Authentication 3.0
Concurrency 3.0
Security 3.0
Bean Validation 3.0
Jakarta EE 10 Platform
Updated
Not Updated
New
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta Security 3.0
adding features and evolving the API
https://jakarta.ee/speci
fi
cations/security/
Other Updates
• Updates to Lower Level SPIs
• Jakarta Authorization
• Jakarta Authentication
• Foundation for Future Work
New Authentication Mechanism
• OpenID Connect
OpenID Connect Authentication Mechanism
@OpenIdAuthenticationMechanismDefinition(
providerURI = "http://oidc-provider",
clientId = "client",
clientSecret = "secret",
redirectURI = "${baseURL}/Callback",
redirectToOriginalResource = true
)
Authorization 2.1
Activation 2.1
Batch 2.1
Connectors 2.1
Mail 2.1
Messaging 3.1
Enterprise Beans 4.0
RESTful Web Services 3.1
JSON Processing 2.1
JSON Binding 3.0
Annotations 2.1
CDI Lite 4.0
Interceptors 2.1
Dependency Injection 2.0
Servlet 6.0
Server Pages 3.1
Expression Language 5.0
Debugging Support 2.0
Standard Tag Libraries 3.0
Faces 4.0
WebSocket 2.1
Enterprise Beans Lite 4.0
Persistence 3.1
Transactions 2.0
Managed Beans 2.0
CDI 4.0
Authentication 3.0
Concurrency 3.0
Security 3.0
Bean Validation 3.0
Jakarta EE 10 Web Pro
fi
le
Updated
Not Updated
New
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta Persistence 3.1
adding features and evolving the API
https://jakarta.ee/speci
fi
cations/persistence/
UUID as Basic Java Type
@Entity
public class Item {
@Id
@GeneratedValue(strategy=GenerationType.UUID)
private java.util.UUID id;
private String description;
…
}
#JakartaEE COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) @ivar_grimstad
Authorization 2.1
Activation 2.1
Batch 2.1
Connectors 2.1
Mail 2.1
Messaging 3.1
Enterprise Beans 4.0
RESTful Web Services 3.1
JSON Processing 2.1
JSON Binding 3.0
Annotations 2.1
CDI Lite 4.0
Interceptors 2.1
Dependency Injection 2.0
Servlet 6.0
Server Pages 3.1
Expression Language 5.0
Debugging Support 2.0
Standard Tag Libraries 3.0
Faces 4.0
WebSocket 2.1
Enterprise Beans Lite 4.0
Persistence 3.1
Transactions 2.0
Managed Beans 2.0
CDI 4.0
Authentication 3.0
Concurrency 3.0
Security 3.0
Bean Validation 3.0
Jakarta EE 10 Platform
Updated
Not Updated
New
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta RESTful Web Services 3.1
updated API with requested features while maintaining compatibility
https://jakarta.ee/speci
fi
cations/restful-ws/
@GET
@Produces(MediaType.MULTIPART_FORM_DATA)
List<EntityPart> getFiles(…) {
List<EntityPart> parts = new ArrayList<>();
…
for(File f: dir.listFiles()) {
parts.add(EntityPart.withFileName(f.getName)
.content(new FileInputStream)
.mediaType(“application/pdf”)
.build();
}
return parts;
}
multipart/form-data Support
Java SE Bootstrap API
public static void main(String[] args) {
Application app = new MyApplication();
SeBootstrap.start(app);
}
DEMO
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta RESTful Web Services 3.1
Java SE Bootstrap API
DukesGreeting
{
email: “duke@dukes.java",
message: “Howdy Jakarta EE 9!”
}
Jakarta REST
Jakarta JSON Binding
RESTEasy 6.10
#JakartaEE COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) @ivar_grimstad
Authorization 2.1
Activation 2.1
Batch 2.1
Connectors 2.1
Mail 2.1
Messaging 3.1
Enterprise Beans 4.0
RESTful Web Services 3.1
JSON Processing 2.1
JSON Binding 3.0
Annotations 2.1
CDI Lite 4.0
Interceptors 2.1
Dependency Injection 2.0
Servlet 6.0
Server Pages 3.1
Expression Language 5.0
Debugging Support 2.0
Standard Tag Libraries 3.0
Faces 4.0
WebSocket 2.1
Enterprise Beans Lite 4.0
Persistence 3.1
Transactions 2.0
Managed Beans 2.0
CDI 4.0
Authentication 3.0
Concurrency 3.0
Security 3.0
Bean Validation 3.0
Jakarta EE 10 Platform
Updated
Not Updated
New
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta EE Core Pro
fi
le
Targeting smaller runtimes!
#JakartaEE COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) @ivar_grimstad
Jakarta EE 10 Core Pro
fi
le
Updated
Not Updated
New
RESTful Web Services 3.1
JSON Processing 2.1
JSON Binding 3.0
Annotations 2.1
CDI Lite 4.0
Interceptors 2.1
Dependency Injection 2.0
Jakarta EE 10 Core Pro
fi
le Compatible
Possible
Potentially Jakarta EE 10 Core Pro
fi
le Compatible
RESTful Web Services 3.1
JSON Processing 2.1
JSON Binding 3.0
Annotations 2.1
CDI Lite 4.0
Interceptors 2.1
Dependency Injection 2.0
CDI Lite 4.0
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
designed to work in more restricted environments
https://jakarta.ee/speci
fi
cations/cdi/
Jakarta CDI 4.0 Lite
New Extensions API
“Dynamic” at build time
Empty beans.xml “all” -> “annotated”
Removal of Deprecated API parts DEMO
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Demo
complete-duke
5.1
complete-duke
6.2
Jakarta EE 8 Jakarta EE 9.1
complete-duke
7.0
Jakarta EE 10
complete-duke
6.2
Jakarta EE 9.1
complete-duke
5.1
Jakarta EE 8
complete-duke
7.0
Jakarta EE 10
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
javax.* -> jakarta.*
javax.* -> jakarta.*
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Transformation
Eclipse Transformer Apache Tomcat Migration Tool
b.com/eclipse/transformerhttps://tomcat.apache.org/download-migration.cgi
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
IDE
Modern and Lightweight Cloud Application Development with Jakarta EE 10
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
1. Update Jakarta EE version in pom.xml
2. Fix the imports
3. XML Schema Namespaces
4. Rename properties pre
fi
xed with javax
5. Rename bootstrapping Files
6. Verify data and dynamic content
https://github.com/ivargrimstad/jakartaee-duke/
DukesDB
DukesRepository
DukesService
DukesGreeting
DukesExtension
{
email: “duke@dukes.java",
message: “Howdy Jakarta EE 10!”
}
Jakarta REST
Jakarta Enterprise Beans
Jakarta Persistence
Jakarta CDI
***********************
Duke says: Hi there!
***********************
Jakarta JSON Binding
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
1. Update Jakarta EE version in pom.xml
2. Fix the imports
3. XML Schema Namespaces
4. Rename properties pre
fi
xed with javax
5. Rename bootstrapping Files
6. Verify data and dynamic content
https://github.com/ivargrimstad/jakartaee-duke/
complete-duke
5.1
Jakarta EE 8
complete-duke
6.2
Jakarta EE 9.1
complete-duke
7.0
Jakarta EE 10
core-duke
27.0.0
Jakarta EE 10
Core Pro
fi
le
DukesDB
DukesRepository
DukesService
DukesGreeting
DukesExtension
{
email: “duke@dukes.java",
message: “Howdy Jakarta EE 10!”
}
Jakarta REST
Jakarta Enterprise Beans
Jakarta Persistence
Jakarta CDI
***********************
Duke says: Hi there!
***********************
Jakarta JSON Binding
DukesService
DukesGreeting
DukesExtension
{
email: “duke@dukes.java",
message: “Howdy Jakarta EE 10!”
}
Jakarta REST
Jakarta CDI
Jakarta CDI
***********************
Duke says: Hi there!
***********************
Jakarta JSON Binding
Build Compatible Extension
Sushi Anyone?
https://start.jakarta.ee
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Beyond 10
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta EE 11
Starting NOW!
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Release Cadence
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta EE 11
API source level: Java SE 17
API binary level: Java SE 17
TCK run with: Java SE 17+
App Developers (YOU) can use Java SE 21 features if you like!!
Speculations
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta Con
fi
g
Standarizes portable con
fi
guration from environment-aware sources
https://jakarta.ee/speci
fi
cations/con
fi
g/
@ConfigProperty
private String place;
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta MVC
Standardizes the action-based model-view-controller pattern
https://jakarta.ee/speci
fi
cations/mvc/
@Controller
@View(“hello.jsp”)
public void hello()
model.put(“Hello Duke!”);
}
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta NoSQL
Standardizes integration with NoSQL databases
https://jakarta.ee/speci
fi
cations/nosql/
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta RPC
Standardizes gRPC within Jakarta EE
https://jakarta.ee/speci
fi
cations/rpc/
NEW
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta Data
Standardizes the repository pattern for data access
https://jakarta.ee/speci
fi
cations/
NEW
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta Functions
Standardized Cloud Functions
https://jakarta.ee/speci
fi
cations/
W
hat do you THINK?
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Summary
Modern and Lightweight Cloud Application Development with Jakarta EE 10
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
javax.* -> jakarta.*
Jakarta EE 10 Platform
Updated
Not Updated
New
Authorization 2.1
Activation 2.1
Batch 2.1
Connectors 2.1
Mail 2.1
Messaging 3.1
Enterprise Beans 4.0
RESTful Web Services 3.1
JSON Processing 2.1
JSON Binding 3.0
Annotations 2.1
CDI Lite 4.0
Interceptors 2.1
Dependency Injection 2.0
Servlet 6.0
Server Pages 3.1
Expression Language 5.0
Debugging Support 2.0
Standard Tag Libraries 3.0
Faces 4.0
WebSocket 2.1
Enterprise Beans Lite 4.0
Persistence 3.1
Transactions 2.0
Managed Beans 2.0
CDI 4.0
Authentication 3.0
Concurrency 3.0
Security 3.0
Bean Validation 3.0
Jakarta EE 10 Core Pro
fi
le
Updated
Not Updated
New
RESTful Web Services 3.1
JSON Processing 2.1
JSON Binding 3.0
Annotations 2.1
CDI Lite 4.0
Interceptors 2.1
Dependency Injection 2.0
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta EE 10
API source level: Java SE 11
API binary level: Java SE 11
TCK run with: Java SE 11+
App Developers (YOU) can use Java SE 17 features if you like!!
Jakarta EE
https://jakarta.ee
Jakartablogs
https://jakartablogs.ee/
Ivar’s Hashtag Jakarta EE
https://www.agilejava.eu/category/jakarta-ee/
Demo Code
https://github.com/ivargrimstad/jakartaee-duke
Thanks for your attention
Please rate my session in the J-Fall app
# jfall.
1 of 65

Recommended

Jakarta EE 10 - Simplicity for Modern and Lighweight Cloud Applications by
Jakarta EE 10 - Simplicity for Modern and Lighweight Cloud ApplicationsJakarta EE 10 - Simplicity for Modern and Lighweight Cloud Applications
Jakarta EE 10 - Simplicity for Modern and Lighweight Cloud ApplicationsIvar Grimstad
271 views61 slides
Jakarta EE 10 - Simplicity for Modern and Lighweight Cloud Applications by
Jakarta EE 10 - Simplicity for Modern and Lighweight Cloud Applications Jakarta EE 10 - Simplicity for Modern and Lighweight Cloud Applications
Jakarta EE 10 - Simplicity for Modern and Lighweight Cloud Applications Ivar Grimstad
288 views63 slides
Jakarta EE 10: Simplicity for Modern and Lightweight Cloud Applications by
Jakarta EE 10: Simplicity for Modern and Lightweight  Cloud ApplicationsJakarta EE 10: Simplicity for Modern and Lightweight  Cloud Applications
Jakarta EE 10: Simplicity for Modern and Lightweight Cloud ApplicationsIvar Grimstad
24 views64 slides
Attention Java Developers - Everything YOU need to Know About Jakarta EE 10 by
Attention Java Developers - Everything YOU need to Know About Jakarta EE 10Attention Java Developers - Everything YOU need to Know About Jakarta EE 10
Attention Java Developers - Everything YOU need to Know About Jakarta EE 10Ivar Grimstad
359 views65 slides
Jakarta EE 10 - Feature by Feature by
Jakarta EE 10 - Feature by FeatureJakarta EE 10 - Feature by Feature
Jakarta EE 10 - Feature by FeatureIvar Grimstad
549 views60 slides
Jakarta EE 10 - Simplicity for Modern and Lighweight Cloud Applications by
Jakarta EE 10 - Simplicity for Modern and Lighweight Cloud ApplicationsJakarta EE 10 - Simplicity for Modern and Lighweight Cloud Applications
Jakarta EE 10 - Simplicity for Modern and Lighweight Cloud ApplicationsIvar Grimstad
290 views62 slides

More Related Content

Similar to Modern and Lightweight Cloud Application Development with Jakarta EE 10

Jakarta EE 10 - Simplicity for Modern and Lighweight Cloud by
Jakarta EE 10 - Simplicity for Modern and Lighweight CloudJakarta EE 10 - Simplicity for Modern and Lighweight Cloud
Jakarta EE 10 - Simplicity for Modern and Lighweight CloudIvar Grimstad
72 views62 slides
How to Be a Responsible Open Source Citizen by
How to Be a Responsible Open Source CitizenHow to Be a Responsible Open Source Citizen
How to Be a Responsible Open Source CitizenIvar Grimstad
22 views103 slides
Jakarta EE and MicroProfile Tech Talk by
Jakarta EE and MicroProfile Tech TalkJakarta EE and MicroProfile Tech Talk
Jakarta EE and MicroProfile Tech TalkJosh Juneau
48 views30 slides
Jakarta EE 11 Status Update​ by
Jakarta EE 11 Status Update​Jakarta EE 11 Status Update​
Jakarta EE 11 Status Update​Edward Burns
59 views43 slides
Cloud Native Java: Present and Future at Eclipse Foundation by
Cloud Native Java: Present and Future at Eclipse FoundationCloud Native Java: Present and Future at Eclipse Foundation
Cloud Native Java: Present and Future at Eclipse FoundationJakarta_EE
257 views47 slides

Similar to Modern and Lightweight Cloud Application Development with Jakarta EE 10(20)

Jakarta EE 10 - Simplicity for Modern and Lighweight Cloud by Ivar Grimstad
Jakarta EE 10 - Simplicity for Modern and Lighweight CloudJakarta EE 10 - Simplicity for Modern and Lighweight Cloud
Jakarta EE 10 - Simplicity for Modern and Lighweight Cloud
Ivar Grimstad72 views
How to Be a Responsible Open Source Citizen by Ivar Grimstad
How to Be a Responsible Open Source CitizenHow to Be a Responsible Open Source Citizen
How to Be a Responsible Open Source Citizen
Ivar Grimstad22 views
Jakarta EE and MicroProfile Tech Talk by Josh Juneau
Jakarta EE and MicroProfile Tech TalkJakarta EE and MicroProfile Tech Talk
Jakarta EE and MicroProfile Tech Talk
Josh Juneau48 views
Jakarta EE 11 Status Update​ by Edward Burns
Jakarta EE 11 Status Update​Jakarta EE 11 Status Update​
Jakarta EE 11 Status Update​
Edward Burns59 views
Cloud Native Java: Present and Future at Eclipse Foundation by Jakarta_EE
Cloud Native Java: Present and Future at Eclipse FoundationCloud Native Java: Present and Future at Eclipse Foundation
Cloud Native Java: Present and Future at Eclipse Foundation
Jakarta_EE257 views
Webex APIs for Administrators - CL20B - DEVNET-2610 by Cisco DevNet
Webex APIs for Administrators - CL20B - DEVNET-2610Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610
Cisco DevNet197 views
Microservices made easy JavaCro 2021 by Jamie Coleman
Microservices made easy JavaCro 2021Microservices made easy JavaCro 2021
Microservices made easy JavaCro 2021
Jamie Coleman102 views
Introduction to the Container Networking and Security by Cloud 66
Introduction to the Container Networking and SecurityIntroduction to the Container Networking and Security
Introduction to the Container Networking and Security
Cloud 66337 views
JavaEE & GlassFish UG - Digital JavaEE 7 New & Noteworthy by P.Pilgrim by Payara
JavaEE & GlassFish UG - Digital JavaEE 7 New & Noteworthy by P.PilgrimJavaEE & GlassFish UG - Digital JavaEE 7 New & Noteworthy by P.Pilgrim
JavaEE & GlassFish UG - Digital JavaEE 7 New & Noteworthy by P.Pilgrim
Payara1.3K views
Java EE & Glass Fish User Group: Digital JavaEE 7 - New and Noteworthy by Peter Pilgrim
Java EE & Glass Fish User Group: Digital JavaEE 7 - New and NoteworthyJava EE & Glass Fish User Group: Digital JavaEE 7 - New and Noteworthy
Java EE & Glass Fish User Group: Digital JavaEE 7 - New and Noteworthy
Peter Pilgrim507 views
Connect JavaEE to the cloud with JCA by Steve Millidge by Payara
Connect JavaEE to the cloud with JCA by Steve MillidgeConnect JavaEE to the cloud with JCA by Steve Millidge
Connect JavaEE to the cloud with JCA by Steve Millidge
Payara958 views
JakartaOne Livestream CN4J: Driving Jakarta EE Success by Jakarta_EE
JakartaOne Livestream CN4J: Driving Jakarta EE SuccessJakartaOne Livestream CN4J: Driving Jakarta EE Success
JakartaOne Livestream CN4J: Driving Jakarta EE Success
Jakarta_EE58 views
What's new in vs 2010 sp1 for web developers by Abhijit Jana
What's new in vs 2010 sp1 for web developersWhat's new in vs 2010 sp1 for web developers
What's new in vs 2010 sp1 for web developers
Abhijit Jana951 views
AAI-2075 Evolving an IBM WebSphere Topology to Manage a Changing Workloa by WASdev Community
AAI-2075 Evolving an IBM WebSphere Topology to Manage a Changing WorkloaAAI-2075 Evolving an IBM WebSphere Topology to Manage a Changing Workloa
AAI-2075 Evolving an IBM WebSphere Topology to Manage a Changing Workloa
WASdev Community1.9K views
Local development environment for micro services with docker by LINE Corporation
Local development environment for micro services with dockerLocal development environment for micro services with docker
Local development environment for micro services with docker
LINE Corporation2.5K views
Docker presentation by mhprogramr
Docker presentationDocker presentation
Docker presentation
mhprogramr609 views
Lixsql port enterprise integration by Sandro Pereira
Lixsql port   enterprise integrationLixsql port   enterprise integration
Lixsql port enterprise integration
Sandro Pereira4.1K views
JCON_15FactorWorkshop.pptx by Grace Jansen
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
Grace Jansen45 views

Recently uploaded

Applying Platform Engineering Thinking to Observability.pdf by
Applying Platform Engineering Thinking to Observability.pdfApplying Platform Engineering Thinking to Observability.pdf
Applying Platform Engineering Thinking to Observability.pdfNatan Yellin
12 views16 slides
Neo4j y GenAI by
Neo4j y GenAI Neo4j y GenAI
Neo4j y GenAI Neo4j
35 views41 slides
MariaDB stored procedures and why they should be improved by
MariaDB stored procedures and why they should be improvedMariaDB stored procedures and why they should be improved
MariaDB stored procedures and why they should be improvedFederico Razzoli
8 views32 slides
DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge... by
DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge...DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge...
DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge...Deltares
16 views12 slides
Neo4j : Graphes de Connaissance, IA et LLMs by
Neo4j : Graphes de Connaissance, IA et LLMsNeo4j : Graphes de Connaissance, IA et LLMs
Neo4j : Graphes de Connaissance, IA et LLMsNeo4j
46 views20 slides
Consulting for Data Monetization Maximizing the Profit Potential of Your Data... by
Consulting for Data Monetization Maximizing the Profit Potential of Your Data...Consulting for Data Monetization Maximizing the Profit Potential of Your Data...
Consulting for Data Monetization Maximizing the Profit Potential of Your Data...Flexsin
15 views10 slides

Recently uploaded(20)

Applying Platform Engineering Thinking to Observability.pdf by Natan Yellin
Applying Platform Engineering Thinking to Observability.pdfApplying Platform Engineering Thinking to Observability.pdf
Applying Platform Engineering Thinking to Observability.pdf
Natan Yellin12 views
Neo4j y GenAI by Neo4j
Neo4j y GenAI Neo4j y GenAI
Neo4j y GenAI
Neo4j35 views
MariaDB stored procedures and why they should be improved by Federico Razzoli
MariaDB stored procedures and why they should be improvedMariaDB stored procedures and why they should be improved
MariaDB stored procedures and why they should be improved
DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge... by Deltares
DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge...DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge...
DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge...
Deltares16 views
Neo4j : Graphes de Connaissance, IA et LLMs by Neo4j
Neo4j : Graphes de Connaissance, IA et LLMsNeo4j : Graphes de Connaissance, IA et LLMs
Neo4j : Graphes de Connaissance, IA et LLMs
Neo4j46 views
Consulting for Data Monetization Maximizing the Profit Potential of Your Data... by Flexsin
Consulting for Data Monetization Maximizing the Profit Potential of Your Data...Consulting for Data Monetization Maximizing the Profit Potential of Your Data...
Consulting for Data Monetization Maximizing the Profit Potential of Your Data...
Flexsin 15 views
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI... by Marc Müller
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Marc Müller31 views
DSD-INT 2023 Baseline studies for Strategic Coastal protection for Long Islan... by Deltares
DSD-INT 2023 Baseline studies for Strategic Coastal protection for Long Islan...DSD-INT 2023 Baseline studies for Strategic Coastal protection for Long Islan...
DSD-INT 2023 Baseline studies for Strategic Coastal protection for Long Islan...
Deltares10 views
Les nouveautés produit Neo4j by Neo4j
 Les nouveautés produit Neo4j Les nouveautés produit Neo4j
Les nouveautés produit Neo4j
Neo4j27 views
DSD-INT 2023 SFINCS Modelling in the U.S. Pacific Northwest - Parker by Deltares
DSD-INT 2023 SFINCS Modelling in the U.S. Pacific Northwest - ParkerDSD-INT 2023 SFINCS Modelling in the U.S. Pacific Northwest - Parker
DSD-INT 2023 SFINCS Modelling in the U.S. Pacific Northwest - Parker
Deltares8 views
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J... by Deltares
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
Deltares7 views
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM... by Deltares
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...
Deltares7 views
DSD-INT 2023 - Delft3D User Days - Welcome - Day 3 - Afternoon by Deltares
DSD-INT 2023 - Delft3D User Days - Welcome - Day 3 - AfternoonDSD-INT 2023 - Delft3D User Days - Welcome - Day 3 - Afternoon
DSD-INT 2023 - Delft3D User Days - Welcome - Day 3 - Afternoon
Deltares11 views
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -... by Deltares
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...
DSD-INT 2023 Simulating a falling apron in Delft3D 4 - Engineering Practice -...
Deltares6 views
DSD-INT 2023 HydroMT model building and river-coast coupling in Python - Bove... by Deltares
DSD-INT 2023 HydroMT model building and river-coast coupling in Python - Bove...DSD-INT 2023 HydroMT model building and river-coast coupling in Python - Bove...
DSD-INT 2023 HydroMT model building and river-coast coupling in Python - Bove...
Deltares15 views
A first look at MariaDB 11.x features and ideas on how to use them by Federico Razzoli
A first look at MariaDB 11.x features and ideas on how to use themA first look at MariaDB 11.x features and ideas on how to use them
A first look at MariaDB 11.x features and ideas on how to use them
Federico Razzoli44 views
Cycleops - Automate deployments on top of bare metal.pptx by Thanassis Parathyras
Cycleops - Automate deployments on top of bare metal.pptxCycleops - Automate deployments on top of bare metal.pptx
Cycleops - Automate deployments on top of bare metal.pptx
Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea... by Safe Software
Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...
Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...
Safe Software391 views
How to Make the Most of Regression and Unit Testing.pdf by Abhay Kumar
How to Make the Most of Regression and Unit Testing.pdfHow to Make the Most of Regression and Unit Testing.pdf
How to Make the Most of Regression and Unit Testing.pdf
Abhay Kumar10 views

Modern and Lightweight Cloud Application Development with Jakarta EE 10

  • 1. Jakarta EE 10 Simplicity for Modern and Lightweight Cloud Applications # jfall. Ivar Grimstad Jakarta EE Developer Advocate Eclipse Foundation
  • 4. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Speci fi cation Document API TCK Final Speci fi cation Compatible Implementation(s) Speci fi
  • 5. #JakartaEE COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) @ivar_grimstad Jakarta EE 10 Web Pro fi Jakarta EE 10 Platform Updated Not Updated New Authorization 2.1 Activation 2.1 Batch 2.1 Connectors 2.1 Mail 2.1 Messaging 3.1 Enterprise Beans 4.0 RESTful Web Services 3.1 JSON Processing 2.1 JSON Binding 3.0 Annotations 2.1 CDI Lite 4.0 Interceptors 2.1 Dependency Injection 2.0 Servlet 6.0 Server Pages 3.1 Expression Language 5.0 Debugging Support 2.0 Standard Tag Libraries 3.0 Faces 4.0 WebSocket 2.1 Enterprise Beans Lite 4.0 Persistence 3.1 Transactions 2.0 Managed Beans 2.0 CDI 4.0 Authentication 3.0 Concurrency 3.0 Security 3.0 Bean Validation 3.0
  • 6. #JakartaEE COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) @ivar_grimstad Jakarta EE 10 Core Pro fi Jakarta EE 10 Web Pro fi le Updated Not Updated New RESTful Web Services 3.1 JSON Processing 2.1 JSON Binding 3.0 Annotations 2.1 CDI Lite 4.0 Interceptors 2.1 Dependency Injection 2.0 Servlet 6.0 Server Pages 3.1 Expression Language 5.0 Debugging Support 2.0 Standard Tag Libraries 3.0 Faces 4.0 WebSocket 2.1 Enterprise Beans Lite 4.0 Persistence 3.1 Transactions 2.0 Managed Beans 2.0 CDI 4.0 Authentication 3.0 Concurrency 3.0 Security 3.0 Bean Validation 3.0
  • 7. #JakartaEE COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) @ivar_grimstad Jakarta EE 10 Core Pro fi le Updated Not Updated New RESTful Web Services 3.1 JSON Processing 2.1 JSON Binding 3.0 Annotations 2.1 CDI Lite 4.0 Interceptors 2.1 Dependency Injection 2.0
  • 8. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Jakarta EE 10 API source level: Java SE 11 API binary level: Java SE 11 TCK run with: Java SE 11+ App Developers (YOU) can use Java SE 17 features if you like!!
  • 9. #JakartaEE COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) @ivar_grimstad Authorization 2.1 Activation 2.1 Batch 2.1 Connectors 2.1 Mail 2.1 Messaging 3.1 Enterprise Beans 4.0 RESTful Web Services 3.1 JSON Processing 2.1 JSON Binding 3.0 Annotations 2.1 CDI Lite 4.0 Interceptors 2.1 Dependency Injection 2.0 Servlet 6.0 Server Pages 3.1 Expression Language 5.0 Debugging Support 2.0 Standard Tag Libraries 3.0 Faces 4.0 WebSocket 2.1 Enterprise Beans Lite 4.0 Persistence 3.1 Transactions 2.0 Managed Beans 2.0 CDI 4.0 Authentication 3.0 Concurrency 3.0 Security 3.0 Bean Validation 3.0 Jakarta EE 10 Platform Updated Not Updated New
  • 10. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Jakarta Security 3.0 adding features and evolving the API https://jakarta.ee/speci fi cations/security/
  • 11. Other Updates • Updates to Lower Level SPIs • Jakarta Authorization • Jakarta Authentication • Foundation for Future Work New Authentication Mechanism • OpenID Connect
  • 12. OpenID Connect Authentication Mechanism @OpenIdAuthenticationMechanismDefinition( providerURI = "http://oidc-provider", clientId = "client", clientSecret = "secret", redirectURI = "${baseURL}/Callback", redirectToOriginalResource = true )
  • 13. Authorization 2.1 Activation 2.1 Batch 2.1 Connectors 2.1 Mail 2.1 Messaging 3.1 Enterprise Beans 4.0 RESTful Web Services 3.1 JSON Processing 2.1 JSON Binding 3.0 Annotations 2.1 CDI Lite 4.0 Interceptors 2.1 Dependency Injection 2.0 Servlet 6.0 Server Pages 3.1 Expression Language 5.0 Debugging Support 2.0 Standard Tag Libraries 3.0 Faces 4.0 WebSocket 2.1 Enterprise Beans Lite 4.0 Persistence 3.1 Transactions 2.0 Managed Beans 2.0 CDI 4.0 Authentication 3.0 Concurrency 3.0 Security 3.0 Bean Validation 3.0 Jakarta EE 10 Web Pro fi le Updated Not Updated New
  • 14. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Jakarta Persistence 3.1 adding features and evolving the API https://jakarta.ee/speci fi cations/persistence/
  • 15. UUID as Basic Java Type @Entity public class Item { @Id @GeneratedValue(strategy=GenerationType.UUID) private java.util.UUID id; private String description; … }
  • 16. #JakartaEE COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) @ivar_grimstad Authorization 2.1 Activation 2.1 Batch 2.1 Connectors 2.1 Mail 2.1 Messaging 3.1 Enterprise Beans 4.0 RESTful Web Services 3.1 JSON Processing 2.1 JSON Binding 3.0 Annotations 2.1 CDI Lite 4.0 Interceptors 2.1 Dependency Injection 2.0 Servlet 6.0 Server Pages 3.1 Expression Language 5.0 Debugging Support 2.0 Standard Tag Libraries 3.0 Faces 4.0 WebSocket 2.1 Enterprise Beans Lite 4.0 Persistence 3.1 Transactions 2.0 Managed Beans 2.0 CDI 4.0 Authentication 3.0 Concurrency 3.0 Security 3.0 Bean Validation 3.0 Jakarta EE 10 Platform Updated Not Updated New
  • 17. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Jakarta RESTful Web Services 3.1 updated API with requested features while maintaining compatibility https://jakarta.ee/speci fi cations/restful-ws/
  • 18. @GET @Produces(MediaType.MULTIPART_FORM_DATA) List<EntityPart> getFiles(…) { List<EntityPart> parts = new ArrayList<>(); … for(File f: dir.listFiles()) { parts.add(EntityPart.withFileName(f.getName) .content(new FileInputStream) .mediaType(“application/pdf”) .build(); } return parts; } multipart/form-data Support
  • 19. Java SE Bootstrap API public static void main(String[] args) { Application app = new MyApplication(); SeBootstrap.start(app); } DEMO
  • 20. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Jakarta RESTful Web Services 3.1 Java SE Bootstrap API DukesGreeting { email: “duke@dukes.java", message: “Howdy Jakarta EE 9!” } Jakarta REST Jakarta JSON Binding RESTEasy 6.10
  • 21. #JakartaEE COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) @ivar_grimstad Authorization 2.1 Activation 2.1 Batch 2.1 Connectors 2.1 Mail 2.1 Messaging 3.1 Enterprise Beans 4.0 RESTful Web Services 3.1 JSON Processing 2.1 JSON Binding 3.0 Annotations 2.1 CDI Lite 4.0 Interceptors 2.1 Dependency Injection 2.0 Servlet 6.0 Server Pages 3.1 Expression Language 5.0 Debugging Support 2.0 Standard Tag Libraries 3.0 Faces 4.0 WebSocket 2.1 Enterprise Beans Lite 4.0 Persistence 3.1 Transactions 2.0 Managed Beans 2.0 CDI 4.0 Authentication 3.0 Concurrency 3.0 Security 3.0 Bean Validation 3.0 Jakarta EE 10 Platform Updated Not Updated New
  • 22. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Jakarta EE Core Pro fi le Targeting smaller runtimes!
  • 23. #JakartaEE COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) @ivar_grimstad Jakarta EE 10 Core Pro fi le Updated Not Updated New RESTful Web Services 3.1 JSON Processing 2.1 JSON Binding 3.0 Annotations 2.1 CDI Lite 4.0 Interceptors 2.1 Dependency Injection 2.0
  • 24. Jakarta EE 10 Core Pro fi le Compatible
  • 25. Possible Potentially Jakarta EE 10 Core Pro fi le Compatible
  • 26. RESTful Web Services 3.1 JSON Processing 2.1 JSON Binding 3.0 Annotations 2.1 CDI Lite 4.0 Interceptors 2.1 Dependency Injection 2.0 CDI Lite 4.0
  • 27. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) designed to work in more restricted environments https://jakarta.ee/speci fi cations/cdi/ Jakarta CDI 4.0 Lite
  • 28. New Extensions API “Dynamic” at build time Empty beans.xml “all” -> “annotated” Removal of Deprecated API parts DEMO
  • 29. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Demo
  • 30. complete-duke 5.1 complete-duke 6.2 Jakarta EE 8 Jakarta EE 9.1 complete-duke 7.0 Jakarta EE 10
  • 31. complete-duke 6.2 Jakarta EE 9.1 complete-duke 5.1 Jakarta EE 8 complete-duke 7.0 Jakarta EE 10
  • 32. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) javax.* -> jakarta.*
  • 34. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Transformation
  • 35. Eclipse Transformer Apache Tomcat Migration Tool b.com/eclipse/transformerhttps://tomcat.apache.org/download-migration.cgi
  • 36. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) IDE
  • 38. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) 1. Update Jakarta EE version in pom.xml 2. Fix the imports 3. XML Schema Namespaces 4. Rename properties pre fi xed with javax 5. Rename bootstrapping Files 6. Verify data and dynamic content https://github.com/ivargrimstad/jakartaee-duke/
  • 39. DukesDB DukesRepository DukesService DukesGreeting DukesExtension { email: “duke@dukes.java", message: “Howdy Jakarta EE 10!” } Jakarta REST Jakarta Enterprise Beans Jakarta Persistence Jakarta CDI *********************** Duke says: Hi there! *********************** Jakarta JSON Binding
  • 40. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) 1. Update Jakarta EE version in pom.xml 2. Fix the imports 3. XML Schema Namespaces 4. Rename properties pre fi xed with javax 5. Rename bootstrapping Files 6. Verify data and dynamic content https://github.com/ivargrimstad/jakartaee-duke/
  • 41. complete-duke 5.1 Jakarta EE 8 complete-duke 6.2 Jakarta EE 9.1 complete-duke 7.0 Jakarta EE 10 core-duke 27.0.0 Jakarta EE 10 Core Pro fi le
  • 42. DukesDB DukesRepository DukesService DukesGreeting DukesExtension { email: “duke@dukes.java", message: “Howdy Jakarta EE 10!” } Jakarta REST Jakarta Enterprise Beans Jakarta Persistence Jakarta CDI *********************** Duke says: Hi there! *********************** Jakarta JSON Binding
  • 43. DukesService DukesGreeting DukesExtension { email: “duke@dukes.java", message: “Howdy Jakarta EE 10!” } Jakarta REST Jakarta CDI Jakarta CDI *********************** Duke says: Hi there! *********************** Jakarta JSON Binding Build Compatible Extension
  • 46. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Beyond 10
  • 47. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Jakarta EE 11 Starting NOW!
  • 48. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Release Cadence
  • 49. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Jakarta EE 11 API source level: Java SE 17 API binary level: Java SE 17 TCK run with: Java SE 17+ App Developers (YOU) can use Java SE 21 features if you like!! Speculations
  • 50. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Jakarta Con fi g Standarizes portable con fi guration from environment-aware sources https://jakarta.ee/speci fi cations/con fi g/
  • 52. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Jakarta MVC Standardizes the action-based model-view-controller pattern https://jakarta.ee/speci fi cations/mvc/
  • 54. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Jakarta NoSQL Standardizes integration with NoSQL databases https://jakarta.ee/speci fi cations/nosql/
  • 55. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Jakarta RPC Standardizes gRPC within Jakarta EE https://jakarta.ee/speci fi cations/rpc/ NEW
  • 56. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Jakarta Data Standardizes the repository pattern for data access https://jakarta.ee/speci fi cations/ NEW
  • 57. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Jakarta Functions Standardized Cloud Functions https://jakarta.ee/speci fi cations/ W hat do you THINK?
  • 58. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Summary
  • 60. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) javax.* -> jakarta.*
  • 61. Jakarta EE 10 Platform Updated Not Updated New Authorization 2.1 Activation 2.1 Batch 2.1 Connectors 2.1 Mail 2.1 Messaging 3.1 Enterprise Beans 4.0 RESTful Web Services 3.1 JSON Processing 2.1 JSON Binding 3.0 Annotations 2.1 CDI Lite 4.0 Interceptors 2.1 Dependency Injection 2.0 Servlet 6.0 Server Pages 3.1 Expression Language 5.0 Debugging Support 2.0 Standard Tag Libraries 3.0 Faces 4.0 WebSocket 2.1 Enterprise Beans Lite 4.0 Persistence 3.1 Transactions 2.0 Managed Beans 2.0 CDI 4.0 Authentication 3.0 Concurrency 3.0 Security 3.0 Bean Validation 3.0
  • 62. Jakarta EE 10 Core Pro fi le Updated Not Updated New RESTful Web Services 3.1 JSON Processing 2.1 JSON Binding 3.0 Annotations 2.1 CDI Lite 4.0 Interceptors 2.1 Dependency Injection 2.0
  • 63. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Jakarta EE 10 API source level: Java SE 11 API binary level: Java SE 11 TCK run with: Java SE 11+ App Developers (YOU) can use Java SE 17 features if you like!!
  • 64. Jakarta EE https://jakarta.ee Jakartablogs https://jakartablogs.ee/ Ivar’s Hashtag Jakarta EE https://www.agilejava.eu/category/jakarta-ee/ Demo Code https://github.com/ivargrimstad/jakartaee-duke
  • 65. Thanks for your attention Please rate my session in the J-Fall app # jfall.