I'm currently working on a large enterprise Jakarta EE application that's running on Payara, and it's heavily reliant on JSF and PrimeFaces. We're looking to modernize our architecture and move towards something more cloud-native. I've been considering Quarkus, but I have some concerns about how well PrimeFaces is supported there.
Has anyone here migrated a big JSF app to Quarkus? Are there any major limitations with using PrimeFaces on Quarkus compared to a full server setup like Payara or WildFly? Or should I just stick with Payara and Jakarta EE 10 for the sake of stability? Thanks for any insights you might have!
5 Answers
The migration itself shouldn't be too tough, especially when it comes to converting PrimeFaces and JSF. The tricky parts might be handling EJBs and MDBs due to potential two-phase commit issues. Just be aware that project structure might also require adjustments based on your previous setup.
Have you looked into Quarkus Faces? It runs JSF, PrimeFaces, and OmniFaces on Quarkus. It might be a good option for you to explore before making the switch. Check it out here: https://github.com/melloware/quarkus-faces
Before you migrate, think about why you want to do it in the first place. If your main server is Payara, which is already a modern app server, is there really a need? It sounds like a pretty solid platform, and switching might not be necessary unless you're looking for something specific like serverless functionality.
I recently migrated a Jakarta EE app with a JSF front-end from WildFly to Quarkus, and overall it went well. I did some proof of concept tests first, and within a week, I had most of the application functioning. The Quarkus target made things easier with its excellent scheduler support, and it’s generally more straightforward to keep everything updated and containerized. You might face challenges with switching implementations for JSF, JPA, etc., but it’s definitely doable!
Honestly, unless you're going serverless, I’d advise you not to do it. Payara is a strong platform, and you've got a good thing going with Jakarta EE. Sometimes, it’s better to enjoy what you've got rather than take on unnecessary risks.

What did you find challenging in the process, especially moving from Eclipselink to Hibernate?