Jakarta Faces 4.0

4.0

Description

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.

4.0 issues completed

4.0 issues open

 

 

Conforms To UI/UX Guidelines
Not verified
This release is part of Jakarta 10