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

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

From: Cagatay Civici <cagatay.civici_at_gmail.com>
Date: Thu, 15 Dec 2016 10:34:05 +0300

Agreed,

There are so many users who suffer from this issue for years, fixing this will be great.

Regards,

Cagatay Civici
PrimeTek


On Thursday, 15 December 2016 at 10:14, Leonardo Uribe wrote:

> 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 (mailto: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
>