Skip to content

Conversation

evie-lau
Copy link
Contributor

@evie-lau evie-lau commented May 23, 2025

Jakarta EE9 migration is incomplete, does not migrate JSF 2.3 to Jakarta Faces, and leaves behind a lot of javax references and packages from EE8 or prior.

Most of the migrations currently in the Faces 4 EE10 migration should actually happen during the EE9 Faces 3 migration.

What's changed?

  • javax to jakarta changes moved to new Faces 3.0 migration recipe
  • Trimmed down Faces 4.0 migration to mostly version upgrades coming from Faces 3.0
  • Update various spec versions for each EE9 (Faces 3) and EE10 (Faces 4) migration
  • Update tests to use the versions in the major Faces 3.0 upgrade

What's your motivation?

  • Jakarta EE9 migration is incomplete
  • Many of the Faces 4.0 migration during EE 10 migration should actually be happening during EE9 migration to Faces 3.0.

Anything in particular you'd like reviewers to focus on?

I've added a few TODO comments on some recipe groups that I'd like to be checked over for input.

  1. Faces Managed Beans were deprecated in 2.3, and only removed in 4.0. Should we run this recipe group in 4.0 or move it earlier to 3.0?
  2. Need some help on the Faces open source libraries - which versions to use in Faces 3.0 upgrade, and whether some should be different from Faces 4.0?

Anyone you would like to review specifically?

@melloware it seems you wrote most of the Faces migration, and I'd love to have your input on this.
@TeamModerne - please review the discussion below regarding EE9/Faces 3.0 migration

Checklist

  • I've added unit tests to cover both positive and negative cases
  • I've read and applied the recipe conventions and best practices
  • I've used the IntelliJ IDEA auto-formatter on affected files

@github-project-automation github-project-automation bot moved this to In Progress in OpenRewrite May 23, 2025
@evie-lau evie-lau self-assigned this May 27, 2025
@evie-lau evie-lau marked this pull request as ready for review May 27, 2025 18:58
@melloware
Copy link
Contributor

melloware commented May 27, 2025

@evie-lau first let me say you are correct about these SHOULD be in 3.0. However the reason I put them in 4.0 is that 3.0 was never meant to be a thing. 3.0 was where vendors were supposed to test their javax to jakarta migration.

Nobody should be running production on EE9 or faces 3.0. In fact both the mojarra and MyFaces teams have already closed their 3.0 branches and recommends anyone should be using either 2.3 or 4.0 Faces version

So to not promote 3.0 any more than it should I chose to make those conversions in Faces 4.0.

I hope that makes sense.

@evie-lau
Copy link
Contributor Author

@melloware thank you for your explanation. That makes a lot of sense now.

Is that to also say that the jakarta-ee-9 recipe shouldn't really be used?

Currently that EE9 recipe fails to migrate a few things including some javax to jakarta changes because the only existing Faces migration for 2.x to 4.0 is called from the EE10 recipe. I'm wondering if this recipe would still make sense to align some of the incremental changes made from EE8 to 9 to 10?

@melloware
Copy link
Contributor

I am almost thinking we dump the EE9 recipe as no one should really be migrating to 9. 10 is the official release

@melloware
Copy link
Contributor

@timtebeek thoughts on refactoring this to get rid of EE9 entirely?

@evie-lau
Copy link
Contributor Author

I feel like since EE9 is still a valid released spec, it should still be allowed as a migration target, and should be fixed to migrate correctly.

@melloware
Copy link
Contributor

I will leave it up to Moderne but my peace has been said that EE9 is not really a release anyone should be migrating to.

@evie-lau evie-lau added enhancement New feature or request recipe Recipe requested bug Something isn't working labels May 29, 2025
@timtebeek timtebeek moved this from In Progress to Ready to Review in OpenRewrite May 31, 2025
Copy link
Member

@timtebeek timtebeek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks both! Very helpful context to understanding the changes here, and the wider context about EE9 vs EE10. I think we're fine to keep the EE9 recipe around, even if the goal ought to be EE10. Helps keep the recipes organized, and ensures folks that already used some of the existing recipes can continue to reference those.

@timtebeek timtebeek merged commit da3bf05 into openrewrite:main May 31, 2025
2 checks passed
@github-project-automation github-project-automation bot moved this from Ready to Review to Done in OpenRewrite May 31, 2025
@evie-lau evie-lau deleted the faces branch June 2, 2025 18:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request recipe Recipe requested
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants