users@javaserverfaces-spec-public.java.net

[jsr344-experts mirror] [jsr344-experts] [spec-763] Injection and JSF Managed Artifacts.

From: Edward Burns <edward.burns_at_oracle.com>
Date: Mon, 11 Mar 2013 08:40:30 -0700

Hello Volunteers,

I'm back in the office today and will be working through the emails.
However, I need to bring something up that Manfred brough to my
attention.

The design intent of spec-763 was to make it so all JSF managed
artifacts are injectable using CDI and common annotations. After
initial implementation work was completed, Manfred uncovered a difficult
interaction between this feature and state saving. In short, it is not
possible without significant more engineering work to make the feature
work reliably for UIComponents and their attached objects. Some options
include:

OPTION: ROLL_BACK

Do not require that CDI and common annotations work with UIComponents
and attached objects. This means the following artifact types would be
removed from table 5-3 in section 5.4.1.

javax.faces.component.UIComponent
javax.faces.component.behavior.Behavior
javax.faces.convert.Converter
javax.faces.validator.Validator

OPTION: DOCUMENT

Rather than roll back the changes, document that injection of things
with a scope equal to or narrower than Request Scope will not work.

After discussion with Manfred, I recommend ROLL_BACK until we figure out
how to implement it correctly with respect to state saving.

ACTION: Please let me know what you think of this.

Ed