jsr372-experts@javaserverfaces-spec-public.java.net

[jsr372-experts] Re: remove final from methods in UIComponent to make them proxyable in CDI

From: Leonardo Uribe <leonardo.uribe_at_irian.at>
Date: Thu, 15 Dec 2016 02:14:42 -0500

Hi

I forgot to mention why this is really wanted. If UIComponents are CDI
proxyable we could make
"binding" attribute to inject a CDI UIComponent proxy and solve the problem
when
UIComponent instances are inside session scope beans once for all. That
could be a big step
forward for JSF.

regards,

Leonardo Uribe

2016-12-15 1:59 GMT-05:00 Leonardo Uribe <leonardo.uribe_at_irian.at>:

> Hi
>
> I'm exploring the posibility of make UIComponent instances CDI injectable
> for JSF 2.3, and I have found that some final methods in UIComponent
> creates a conflict:
>
> public final Map<String,Object> getPassThroughAttributes()
> public final TransientStateHelper getTransientStateHelper()
> public final void popComponentFromEL(FacesContext context)
> public final void pushComponentToEL(FacesContext context, UIComponent
> component)
>
> Can't we just remove the "final" modifier here? I know that in these cases
> it makes sense, but make UIComponent instances injectable in CDI seems to
> be a winning
> proposition to me.
>
> According to the table UIViewRoot is planned to be injectable, but I do
> not see how to do it properly without this change.
>
> WDYT?
>
> regards,
>
> Leonardo Uribe
>