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

[jsr372-experts] 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 01:59:16 -0500

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