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

[jsr372-experts] Re: Resolving "pending" in Mojarra source, mostly wrt contracts?

From: arjan tijms <arjan.tijms_at_gmail.com>
Date: Tue, 3 Feb 2015 11:51:01 +0100

Hi,

On Tue, Feb 3, 2015 at 10:40 AM, Frank Caputo <frank_at_frankcaputo.de> wrote:
> I think, we can resolve the PENDINGs for 2.3 (most of them should be obsolete). This was my first bigger contribution to Mojarra, so I was a little bit insecure, if this is all correct.

Great, that should help. I know your feeling. I'm currently looking
into adding the /views folder; a folder from which (top level) views
can be loaded, and I too am a bit insecure about that (even though I
effectively implemented it already in OmniFaces). With all the PENDING
comments I was even less sure of where to put what.

I'll start a separate discussion about this views folder on this list.

Kind regards,
Arjan


>
> Ciao Frank
>
>> Am 02.02.2015 um 20:17 schrieb arjan tijms <arjan.tijms_at_gmail.com>:
>>
>> Hi,
>>
>> While reading up on resource handling in the Mojarra source code, I
>> noticed there were quite a few PENDING markers there.
>>
>> E.g.
>>
>>
>> com.sun.faces.facelets.impl.DefaultFaceletFactory.needsToBeRefreshed(URL)
>>
>> // PENDING(FCAPUTO) not sure, if this is what we want.
>> for (FaceletCache<DefaultFacelet> faceletCache :
>> cachePerContract.values()) {
>>
>>
>> com.sun.faces.facelets.impl.DefaultFaceletFactory.getCache(FacesContext)
>>
>> // PENDING(FCAPUTO) we don't support
>> com.sun.faces.config.WebConfiguration.WebContextInitParameter#FaceletCache
>> for contracts
>> faceletCache = initCache(null);
>>
>>
>> com.sun.faces.facelets.impl.DefaultFaceletFactory.resolveURL(String)
>>
>> // PENDING(FCAPUTO) Deactivated caching for resource library
>> contracts. If we still want to cache it, we need a cache per contract
>> libraries list.
>> // But the ResourceHandler caches on his own (using
>> ResourceManager).
>> URL url = this.resolveURL(this.baseUrl, uri);
>>
>>
>> com.sun.faces.facelets.impl.DefaultFaceletFactory._createComponent(FacesContext,
>> String, String, Map<String, Object>)
>>
>> // PENDING(FCAPUTO) does this work for resource library contracts? I think so.
>> UIComponent result = null;
>> Application app = context.getApplication();
>>
>>
>> com.sun.faces.application.resource.ResourceHandlerImpl.libraryExists(String)
>>
>> // PENDING(fcaputo) do we need to iterate over the contracts here? I
>> don't think so.
>> LibraryInfo info = manager.findLibrary(libraryName, null,
>> null, context);
>>
>> com.sun.faces.application.resource.ResourceHelper.getInputStream(ResourceInfo,
>> FacesContext)
>>
>> // PENDING(edburns): this is a sub-optimal implementation choice
>> // done in the interest of prototyping. It's never a good idea
>> // to do a switch statement based on the type of an object.
>>
>> InputStream in = null;
>>
>>
>> com.sun.faces.application.resource.ResourceManager.findResource(String)
>>
>> // PENDING(fcaputo) do we need to handle contracts here?
>> String libraryName = null;
>> String resourceName = null;
>>
>>
>> I wonder if there should be a kind of theme in JSF 2.3 to resolve
>> those pending issues, especially where it concerns the contracts /
>> resource handling?
>>
>> Kind regards,
>> Arjan Tijms
>>
>