platform icon indicating copy to clipboard operation
platform copied to clipboard

AC: Jakarta EE 10 / Servlet 6.0 compatibility

Open mshabarov opened this issue 3 years ago • 0 comments
trafficstars

Description

Make Vaadin products be compatible with Jakarta EE 10 / Servlet 6.0 specifications, where javax.* packages were renamed to jakarta.* to allow using it with modern frameworks and servlet containers based on these specifications.

See also recent Vaadin's blog post describing the motivation and context.

Jakarta EE 10 / Servlet 6 is a baseline for Vaadin 24. Servlet 5.0 / Jakarta EE 9 are an intermediate step in the Jakarta evolution, and many frameworks and app servers (Spring, Quarkus and others) jump directly to the Jakarta EE 10.

Use cases

As a developer I want to use latest versions of modern frameworks (e.g. Spring Framework / Spring Boot, Quarkus), app servers/servlet containers (e.g. Jetty, TomEE, Wildfly) So that I can use new features of these products.

Acceptance criteria

  • [ ] Vaadin is compatible Jakarta EE 10 / Servlet 6.0 and JDK 17, including:
    • [x] Flow framework
    • [x] Flow components
    • [ ] Flow add-ons/plugins:
      • [x] Content and Dependency Injection
      • [x] Multiplatform-Runtime with Vaadin 8
      • [ ] Multiplatform-Runtime with Vaadin 7
      • [x] ~OSGi~ (no Felix Jetty compatible version yet)
      • [x] Quarkus
    • [x] Flow Gradle plugin
    • [x] TestBench (UI unit testing part uses javax.servlet)
    • [x] Hilla framework
    • [x] Collaboration Kit
    • [ ] Kits (SSO, Cloud, O11y, Swing)
    • [ ] Vaadin add-ons in Vaadin Directory (most rated/used, TBD)
  • [x] Vaadin is compatible with Spring Framework 6 / Spring Boot 3
  • [ ] Vaadin is compatible with the following application servers / servlet containers:
    • [x] Jetty 11
    • [x] Apache Tomcat 10 and TomEE 9
    • [x] OpenLiberty 20
    • [x] WildFly 26
    • [ ] Payara 6
  • [x] Vaadin add-ons/integrations mentioned above pass the validation, including integration tests, and the corresponding starter projects work as expected.
  • [x] Migration guide from v23 to v24
  • [ ] Update docs to V24 specifics.
  • [x] Platform pre-release is available and includes Spring GA versions.

General criteria

  • [ ] APIs reviewed
  • [ ] Design
  • [ ] Performance
  • [ ] UX/DX tests in Alpha
  • [ ] Documentation:
  • [ ] How to test?
  • [ ] Limitations:
    • Vaadin Portlet is out of scope, because Portlet 3.0 spec is not compatible with Servlet 5.0.

mshabarov avatar Sep 30 '22 13:09 mshabarov