[jsr-314-open-mirror] [jsr-314-open] [2.1 Spec Review] FaceletCache issues

Andy Schwartz andy.schwartz at oracle.com
Thu Oct 21 16:26:48 EDT 2010


Some additional issues that turned up while reviewing the API doc:

1. FaceletCache and FaceletCacheFactory are missing documentation.

The original (Mojarra implementation-specific) version of this 
functionality does include documentation, but that doesn't seem to have 
carried over into the  public API.

2. The doc in FaceletCache.MemberFactory is incorrect

The class doc says: "Factory interface for creating FaceletHandler 
instances."  However, we're actually creating Facelet instances, not 
FaceletHandler instances.

3. Wider access than necessary for some methods in FaceletCache

The original (Mojarra-specific) version of this functionality exposes 
the following methods:

    public final void init(InstanceFactory<V> faceletFactory, 
InstanceFactory<V> metafaceletFactory)
    protected final InstanceFactory<V> getFaceletInstanceFactory()
    protected final InstanceFactory<V> getMetadataFaceletInstanceFactory()

The equivalent methods in the new public API are:

    public void setMemberFactories(MemberFactory<V> faceletFactory,
            MemberFactory<V> viewMetadataFaceletFactory)
    public MemberFactory<V> getMemberFactory()
    public MemberFactory<V> getMetadataMemberFactory()

The idea behind the init+getters approach was that the base FaceletCache 
class handles initialization and storage of the factories on behalf of 
subclasses.  Since these factories are only used by subclasses, the 
getters only need to be protected.  Probably safe to leave these final 
as there is no need for subclasses to provide alternate implementations 
of these methods.

#3 isn't a big deal, but would be nice to correct (particularly the 
public/protected issue).  #1 and #2 seem more important to address.

Andy



More information about the jsr-314-open-mirror mailing list