[
https://issues.apache.org/jira/browse/TRINIDAD-1914?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jeanne Waldman resolved TRINIDAD-1914.
--------------------------------------
Resolution: Fixed
Fix Version/s: 2.0.0.4-core
> provide a hook for external decorator to find trinidad-skins.xml from a
> location other than META-INF or WEB-INF.
> ------------------------------------------------------------------------------------------------------------------
>
> Key: TRINIDAD-1914
> URL: https://issues.apache.org/jira/browse/TRINIDAD-1914
> Project: MyFaces Trinidad
> Issue Type: Improvement
> Components: Skinning
> Reporter: Jeanne Waldman
> Assignee: Jeanne Waldman
> Fix For: 2.0.0.4-core
>
> Attachments: patchForSkinResourceLoader.patch
>
>
> Our design time team needs a way to have the Trinidad Skinning Framework find
> trinidad-skins.xml from a location other than META-INF or WEB-INF.
> The implementation I have in mind is similar to
> https://issues.apache.org/jira/browse/TRINIDAD-1729 provide a hook for for
> an external decorator of Skin InputStreamProvider.
> I've mocked up a solution that works for our design time team. It is outlined
> below with questions I'll ask on the dev list.
> 1. Add a public API
> public interface TrinidadSkinsURLProvider (name to be determined)
> {
> // returns an Iterator of all the URLs that have this resource
> (trinidad-skins.xml)
> // Design time team needs the ExternalContext to be able to find their
> trinidad-skins.xml files.
> // They put a parameter on the ServletContext to help them.
> public Iterator<URL> findResources(ExternalContext context);
> }
>
> 2. Usage in SkinUtils.java
> a. Call List<TrinidadSkinsURLProvider> urlProviders =
> ClassLoaderUtils.getServices(
>
> "org.apache.myfaces.trinidad.share.io.TrinidadSkinsURLProvider");
> to get the List of TrinidadSkinsURLProviders.
> b. Call findResources for each TrinidadSkinsURLProvider
> c. Call the existing trinidad-skins.xml parse code.
> Questions I plan to ask on the dev list:
> a. Is this idea acceptable?
> b. Are there existing Trinidad APIs that I'm not aware of that I could use
> instead, like an existing ResourceLoader?
> org.apache.myfaces.trinidad.resource.ResourceLoader does not have a
> findResources method of any kind.
> c. Should we have a more generic class name, like URLProvider? Or
> URLResourceProvider? If so, then we can pass in the filename to
> findResources().
> d. What package should this go in? My mockup is in
> org.apache.myfaces.trinidad.share.io.
> e. ClassLoader#getResources returns an Enumeration<URL>. Should this new API
> be Iterator<URL> or should it match ClassLoader#getResources?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.