4.0
The goal of this release is to start addressing a major concern that Faces is dragging along too much weight. This will be done by removing deprecated things. We also intend to continue modernizing by moving more things to CDI. Next to these big ticket items, we plan to add a small amount of features and refine the API.
More specifically:
Removing deprecated things
* Removing JSP support as a VDL (deprecated since 2.0) - [FACES #1546] ✅
* Removing the native managed beans (deprecated since 2.3) - [FACES #1547] ✅
* Removing references to the native EL (deprecated since 1.2) - [FACES #1548] ✅
* Default "Fakes Faces 2.2"-mode (defaulting to the current version instead) ✅
* Rename "jsf" everywhere to "faces" [FACES #1552] ✅
Continue re-basing on CDI
* CDI events
* Internal artefacts as CDI beans
* Additional artefacts injectable
Features
* Extensionless views by default [FACES #1508] ✅
* New scope ClientWindowScoped [FACES #1509] ✅
* Allow redirect via Annotation on action [FACES #1554] ✅
* New lifecycle for REST/REST-like actions [FACES #1580]
* First class support for creating views in Java [FACES #1581] ✅
Extra Features (when time allows, otherwise move to 4.1)
* Simplified API for setting FacesMessages
* Stateless views as global option
* Annotations for various things such as components (replaces/is alternative for bulky taglib registrations)
API enhancements
* StateHelper - Allow a Supplier as defaultValue
* PhaseListener - default methods
* Renderer - generic/parameterized
* Remove duplicate SessionMap annotation
* API to register custom behavior for a composite
New deprecations
* Full State Saving
The JDK version required will be aligned with Jakarta EE 10.