Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Jakarta EE 10 is Coming Your Way

Jakarta EE 10 is Coming Your Way

Jakarta EE 9 lowered the barriers of entry and established a foundation for future innovation paving the way for Jakarta EE 10.

With Jakarta EE 10, we introduced Jakarta EE Core Profile which targets smaller runtimes suitable for microservices. The Jakarta EE Core Profile also aims to be an even better fit for compiling to native images. But it does not stop there. Both Jakarta EE Web Profile and Jakarta EE Platform is moving forward as well with updates to almost all the individual specifications.
Join this session for the latest updates on the progress with Jakarta EE 10. I will go through what Jakarta EE 10 brings to the table, and what to expect when the specifications are moving forward. The session will also give you a clear understanding of how to migrate from previous versions of Jakarta EE and Java EE as well as show how to leverage Java SE 17 and newer features with Jakarta EE.

B489790e1a844284d7cd1fa2cd6e021f?s=128

ivargrimstad

April 05, 2022
Tweet

More Decks by ivargrimstad

Other Decks in Programming

Transcript

  1. 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 is Coming Your Way Ivar Grimstad
 Jakarta EE Developer Advocate Eclipse Foundation
  2. @ivar_grimstad https://github.com/ivargrimstad https://www.linkedin.com/in/ivargrimstad

  3. None
  4. None
  5. 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
  6. 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 Coming Q2, 2022!
  7. May 1, 2022 May 31, 2022 *

  8. Jakarta EE 10 Web Pro fi g 1.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
  9. 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 Con fi g 1.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
  10. 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 Con fi g 1.0*
  11. 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!
  12. Possible Potentially Jakarta EE 10 Core Pro fi le Compatible

  13. 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 Con fi g 1.0*
  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 RESTful Web Services 3.1 updated API with requested features while maintaining compatibility https://jakarta.ee/speci fi cations/restful-ws/
  15. Java SE Bootstrap API public static void main(String[] args) {

    Application app = new MyApplication(); SeBootstrap.start(app); }
  16. @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
  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 JSON Processing 2.1 provide new features and a standalone API JAR https://jakarta.ee/speci fi cations/jsonp
  18. Eclipse Parsson 
 https://projects.eclipse.org/projects/ee4j.parsson Issue Tracker 
 https://github.com/eclipse-ee4j/jsonp/projects/1

  19. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS

    LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Jakarta JSON Binding 3.0 provide features requested by the community https://jakarta.ee/speci fi cations/jsonb
  20. Deserialization of null -> JsonValue.NULL_VALUE @JsonbTypeDeserializer and @JsonbTypeAdapter annotations Support

    for handling polymorphic types Deprecate @JsonbProperty.nillable() Optional @JsonbCreator parameters (backward incompatible)
  21. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS

    LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Jakarta Annotations 2.1 provide features requested by the community https://jakarta.ee/speci fi cations/annotations/
  22. Allow @Priority everywhere Add @Nullable and @NotNull

  23. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS

    LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Jakarta Interceptors 2.1 pickup changes made in Annotations 2.1 https://jakarta.ee/speci fi cations/interceptors/
  24. 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 Con fi g 1.0*
  25. 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
  26. New Extensions API “Dynamic” at build time Empty beans.xml “all”

    -> “annotated” Removal of Deprecated API parts
  27. 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 Con fi g 1.0* Updated Not Updated New
  28. 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 1.0 portable con fi guration from environment-aware sources https://jakarta.ee/speci fi cations/con fi g/
  29. @ConfigProperty private String place;

  30. 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 Con fi g 1.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
  31. 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 adding features and evolving the API https://jakarta.ee/speci fi cations/security/
  32. Other Updates • Updates to Lower Level SPIs • Jakarta

    Authorization • Jakarta Authentication • Foundation for Future Work New Authentication Mechanism • OpenID Connect
  33. 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 Con fi g 1.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
  34. UUID as Basic Java Type @Entity public class Item {

    @ID @GeneratedValue(strategy=GenerationType.UUID) private java.util.UUID id; private String description; … }
  35. • Extensions to Query Language and Query API • New

    Numeric Functions • ceiling(), exp(), floor(), ln(), power(), round(), sign() • LocalDate/LocalTime • localDate(), localDateTime(), localTime() • Standard EXTRACT Function • EntityManager implements AutoClosable • …
  36. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS

    LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Other updates in Jakarta EE 10
  37. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS

    LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Java SE Versions
  38. 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!!
  39. javax.* -> jakarta.* .1 Java SE 11

  40. 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.*
  41. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS

    LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Why Should I Care?
  42. None
  43. javax.* -> jakarta.*

  44. None
  45. javax.* -> jakarta.*

  46. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS

    LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Demo
  47. complete-duke http://localhost:8082/complete-duke/hello 5.1 complete-duke http://localhost:8080/complete-duke/hello 6.2

  48. DukesDB DukesRepository DukesService DukesGreeting DukesExtension { email: “duke@dukes.java", message: “Howdy

    Jakarta EE 9!” } Jakarta REST Jakarta Enterprise Beans Jakarta Persistence Jakarta CDI *********************** Duke says: Hi there! ***********************
  49. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS

    LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Transformation
  50. Eclipse Transformer Apache Tomcat Migration Tool b.com/eclipse/transformerhttps://tomcat.apache.org/download-migration.cgi

  51. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS

    LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) IDE
  52. None
  53. 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/
  54. 17

  55. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS

    LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Summary
  56. None
  57. 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.*
  58. Authorization 3.0 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 Con fi g 1.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
  59. 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 Con fi g 1.0*
  60. 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!!
  61. 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
  62. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS

    LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.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)