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

[jsr344-experts] Re: Re: [1149-ViewHandler] Add method getCurrentViewScope()

From: Neil Griffin <neil.griffin_at_portletfaces.org>
Date: Fri, 30 Nov 2012 10:22:41 -0500

Hi Ed,

As you know, JSF has historically exposed methods for Managed Bean Facility scopes like ExternalContext.getApplicationMap(), ExternalContext.getRequestMap(), and ExternalContext.getSessionMap(). JSF portlet bridges have always been able to decorate these methods in order to handle portlet-specific considerations. I mistakenly thought that FlowHandler.getCurrentFlowScope() was a similar type of method to the aforementioned ExternalContext methods, which is why I requested ViewHandler.getCurrentViewScope().

Our friends at JBoss have worked very hard and made good progress towards making CDI 1.1 work in portlets, but this compatibility is slated to be "optional" for implementations to support. Formal integration at the JSR level would not be defined until the Portlet 3.0 and CDI 2.0 specs are finalized. This could be a few years down the road from now.

As I study the Mojarra implementation usage of com.sun.faces.flow.FlowCDIContext and com.sun.faces.flow.ViewScopedCDIContext, I have come to the opinion that these are not decoratable by a JSF portlet bridge (when CDI is not present).

So I just want us all to be aware that the javax.faces.flow.FlowScoped and javax.faces.flow.ViewScoped annotations will only work in portlets for CDI 1.1 implementations that support the portlet compatibility feature.

Having said that, I hereby withdraw the 1149 proposal.


Neil

On Nov 29, 2012, at 10:58 PM, Edward Burns <edward.burns_at_oracle.com> wrote:

>>>>>> On Thu, 29 Nov 2012 06:29:00 -0500 (EST), Ken Finnigan <kfinniga_at_redhat.com> said:
>
> KF> Agree that this is a necessity for JSF Portlet Bridges.
>
> NG> I recently reviewed the JSF 2.2 Spec and API and have identified some
> NG> portlet compatibility concerns.
>
> NG> To this end, please review the following proposal that I just filed:
> NG> http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-1149
>
> I looked at this and have to ask, why is
> facesContext.getViewRoot().getViewMap() not sufficient?
>
> The spec for FlowHandler.getCurrentFlowScope() states it returns the
> data structure that backs the EL implicit object #{facesFlowScope}.
> This is *not* the data structure used to store the actual CDI
> @FlowScoped beans.
>
> I'll note that #{viewScoped} *does* just call through to
> facesContext.getViewRoot().getViewMap().
>
> Can I close this one?
>
> Ed
> --
> | edward.burns_at_oracle.com | office: +1 407 458 0017
> | homepage: | http://ridingthecrest.com/