Any user-defined handler class (e.g., phase listeners, system event listeners,
validators, converters) that JSF instantiates should be classified as a
component in Java EE. But, to accommodate that without tying JSF directly to the
platform (a separation JSF has always maintained), there should be a pluggable
class instance resolver. This resolver may be satisfied with a CDI
implementation, a Spring bean implementation, etc.
That way, it becomes possible to support CDI injection (or Spring injection)
into these objects. Basically, any time JSF looks up a class instance w/o the
use of the EL, it should go through this instance resolver. Really, it
complements the EL resolver, which is already a nice mechanism for hooking into
different component models.
The specification should define an SPI to support instantiation/lifecycle
management of these objects, as it would fit well with the pluggability goal
that JSF has.
Mojarra has an implementation/prototype of this SPI: