ViewDeclarationLanguageFactoryImpl implementation should cache physical URI for 
the current viewId on the ViewMap
-----------------------------------------------------------------------------------------------------------------

                 Key: TRINIDAD-1942
                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1942
             Project: MyFaces Trinidad
          Issue Type: Bug
          Components: Components
    Affects Versions: 2.0.0-alpha-2
            Reporter: Pavitra Subramaniam


In an included page (or fragment) if a composite component gets used, the 
CompositeComponentTagHandler retrieves the logical viewId 
(context.getViewRoot().getViewId()) first and then gets its physical URI in 
order to determine the VDL to use. This is usually not a problem in vanilla JSF 
applications or even vanilla Trinidad applications, but in frameworks (such as 
Oracle) where the viewId of an included fragment comes into play (iow, the 
fragment is in context and not the main page), the PageResolver implementation 
can no longer return the correct physical URI for the logical viewId. It merely 
returns the logical viewId.

The problem is further exasperated if the logical viewId of the page does not 
contain an extension. As there is no extension available, the VDL returned is 
the JspViewHandlingStrategy always. This is disastrous when the page is being 
rendered using FaceletsVDL. 

One way to resolve this issue is to cache the physical URI of the page on the 
ViewRoot's viewMap and return the cached value whenever the VDLFactory.getVDL() 
is called for a viewId that matches the current viewRoot's viewId. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to