Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jakarta / Servlet 6 Support for Extended Maintenance #12566

Open
knoobie opened this issue Dec 21, 2022 · 8 comments
Open

Jakarta / Servlet 6 Support for Extended Maintenance #12566

knoobie opened this issue Dec 21, 2022 · 8 comments

Comments

@knoobie
Copy link
Contributor

knoobie commented Dec 21, 2022

Extracted from vaadin/flow#14783

Is there a timeline for official Vaadin 8 Jakarta Support for extended Maintenance?

Looking at the comment in 8.18.0's release notes, currently it looks kinda un-official by using MPR.

This is only needed for MPR 24+, and is NOT guaranteed to work as generic Jakarta support (even though it does so at the moment) as we may add MPR specific functionality or even hard MPR dependencies in the future.

Source: https://github.com/vaadin/framework/blob/master/CHANGELOG-VAADIN8.md

@TatuLund
Copy link
Contributor

TatuLund commented Dec 21, 2022

Is there a timeline for official Vaadin 8 Jakarta Support for extended Maintenance?

There is no timeline planned at the moment, we are having reactive as per basis of business needs approach with this. Our assumption is that in typical cases Vaadin 8 is not being used in newer infrastructure. Migration has not been possible as Vaadin 23/24 requires Java 11 (or 17, Servlet 5) and hence container update and other 3rd party dependency update. But when that update becomes viable, there is potential need for MPR. That is why we implemented support for that path proactively.

Looking at the comment in 8.18.0's release notes, currently it looks kinda un-official by using MPR.

Yes. From Vaadin 8.18.0 onwards there is now Jakarta Servlet 5/6 compatible vaadin-servlet artifact variant included. The portlet part was re-arranged so that it does not interfere. We have not done anything else. This will basically allow vanilla Vaadin 8 apps, which do not depend on Push, CDI or Spring add-ons to run. This in practice scopes out most of the major real life applications, hence we do not claim official support as of now.

In case of MPR, Flow Push, CDI or Spring modules are used, hence no need to migrate them Vaadin 8 side.

@knoobie
Copy link
Contributor Author

knoobie commented Dec 21, 2022

There is no timeline planned at the moment, we are having reactive as per basis of business needs approach with this. Our assumption is that in typical cases Vaadin 8 is not being used in newer infrastructure

That assumption is correct. Except for the case where the infrastructure gets End-of-Life by itself and businesses are forced to update it and fall into the pitfall that Vaadin 8 needs to run on newer servlet containers. It's probably not something to be widespread happening in 2022 or 2023, but something to keep in mind on the long run.

Thanks for the heads up!

@rPraml
Copy link

rPraml commented Aug 2, 2023

We would also need a jakarta compatible vaadin 8 version soon (Spring supports ends october).

We did some tests with the Apache Tomcat migration tool for Jakarta EE to produce jakarta compatible artifacts and it seems to work.
Nevertheless we would prefer to use an official build instead of a bytecode patched version as we pay a lot of money for the extended support

@TatuLund
Copy link
Contributor

TatuLund commented Aug 2, 2023

We would also need a jakarta compatible vaadin 8 version soon (Spring supports ends october).

Based on this comment I would assume you would need at least Spring add-on with Jakarta name space and Spring Boot 3 support? Another question is, do you use Push?

Note, there is already vaadin-server-mpr-jakarta, since Vaadin 8.18.0, which supports jakarta.servlet, so that part is already done.

@rPraml
Copy link

rPraml commented Aug 2, 2023

We had to transform the artifacts "vaadin-server", "vaadin-spring" and "vaadin-charts" in our test, that did we ~6 months ago.
With the transformed artifacts, we could start our application with spring 3 in a tomcat 10 container.

Thanks for the info with "vaadin-server-mpr-jakarta", I'll give this a try in the next test run.

Another question is, do you use Push?

no, we do not use push

@TatuLund
Copy link
Contributor

TatuLund commented Aug 7, 2023

no, we do not use push

That will make things easier for you.

@and-k
Copy link

and-k commented Apr 11, 2024

I'm working on an older Vaadin 8 UI application currently running on Spring Boot 2. Since this application now needs to be updated to Spring Boot 3, I'm thinking if the Vaadin MPR could be a solution for this.
However, since this application uses push, I was wondering what the described issues are regarding push and MPR and whether they still exist?

@TatuLund
Copy link
Contributor

The latest status of the Servlet 6 support related to Vaadin 8 are the follows:

  • "vaadin-server-mpr-jakarta" artifact can be used also without MPR
  • Spring add-on version 4.0.0.beta1 exists, which supports Spring Boot 3.2, 4.0.0 final should be released any day now as we speak
  • There is not yet vaadin-push artifact for Servlet 6 yet, that is the missing piece for you @and-k . We are open to discuss creating one if there is commercial interest for that.

When using MPR, Push and Spring are used via Flow. If you are Extended Support customer of ours, I recommend you to contact us via Expert Chat and we can discuss the possible options better. It is hard to say is the MPR right choice for you without knowing details of your application. Setting up MPR is not always trivial and you need to refactor things a bit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants