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

Get Ready for Jakarta EE 10

Get Ready for Jakarta EE 10

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

March 31, 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) Get Ready for Jakarta EE 10 Ivar Grimstad
 Jakarta EE Developer Advocate Eclipse Foundation
  2. @ivar_grimstad https://github.com/ivargrimstad https://www.linkedin.com/in/ivargrimstad

  3. 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!
  4. February 28, 2022 -> May, 2022

  5. 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
  6. 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
  7. 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*
  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 Core Pro fi le Targeting smaller runtimes!
  9. Possible Potentially Jakarta EE 10 Core Pro fi le Compatible

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

    Application app = new MyApplication(); SeBootstrap.start(app); }
  13. @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
  14. 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*
  15. 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
  16. Eclipse Parsson 
 https://projects.eclipse.org/projects/ee4j.parsson Issue Tracker 
 https://github.com/eclipse-ee4j/jsonp/projects/1

  17. 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*
  18. 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
  19. Deserialization of null -> JsonValue.NULL_VALUE @JsonbTypeDeserializer and @JsonbTypeAdapter annotations Support

    for handling polymorphic types Deprecate @JsonbProperty.nillable() Optional @JsonbCreator parameters (backward incompatible)
  20. 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*
  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. 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*
  24. 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/
  25. 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*
  26. 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
  27. New Extensions API “Dynamic” at build time Empty beans.xml “all”

    -> “annotated” Removal of Deprecated API parts
  28. 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
  29. 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/
  30. @ConfigProperty private String place;

  31. 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
  32. 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/
  33. Extended Authentication Mechanisms 
 - Authentication Mechanism per URL 


    - User Choice of Authentication Mechanism 
 - Multiple Authentication Mechanisms Additional Authentication Mechanisms 
 - Client-cert and Digest 
 - OpenID Connect 
 - Oauth2 CDI Integration 
 - @RolesAllowed alternative 
 - Interceptor Support
  34. 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
  35. 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
  36. 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!!
  37. javax.* -> jakarta.* .1 Java SE 11

  38. 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.*
  39. 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?
  40. None
  41. javax.* -> jakarta.*

  42. None
  43. javax.* -> jakarta.*

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

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

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

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

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

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

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

    LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Summary
  54. None
  55. 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.*
  56. 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
  57. 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*
  58. 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!!
  59. 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
  60. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS

    LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
  61. COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS

    LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)