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

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

From: arjan tijms <arjan.tijms_at_gmail.com>
Date: Mon, 2 Feb 2015 20:17:32 +0100

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