[ 
https://issues.apache.org/jira/browse/TRINIDAD-1729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jeanne Waldman reopened TRINIDAD-1729:
--------------------------------------


There is a bug in this.

java.lang.ClassCastException: 
oracle.webcenter.skin.model.MDSInputStreamProvider cannot be cast to 
org.apache.myfaces.trinidad.share.io.NameResolver
        at 
org.apache.myfaces.trinidadinternal.skin.StyleSheetEntry._loadNameResolverFromServices(StyleSheetEntry.java:621)
        at 
org.apache.myfaces.trinidadinternal.skin.StyleSheetEntry._getNameResolverForStyleSheetFile(StyleSheetEntry.java:428)
        at 
org.apache.myfaces.trinidadinternal.skin.StyleSheetEntry._getNameResolver(StyleSheetEntry.java:347)
        at 
org.apache.myfaces.trinidadinternal.skin.StyleSheetEntry.createEntry(StyleSheetEntry.java:78)
        at 
org.apache.myfaces.trinidadinternal.skin.SkinImpl._createStyleSheetDocument(SkinImpl.java:563)
        at 
org.apache.myfaces.trinidadinternal.skin.SkinImpl.getStyleSheetDocument(SkinImpl.java:346)
        at 
org.apache.myfaces.trinidadinternal.skin.SkinExtension.getStyleSheetDocument(SkinExtension.java:527)
        at 
org.apache.myfaces.trinidadinternal.skin.SkinStyleProvider.createStyleSheetDocument(SkinStyleProvider.java:158)

because we are putting an InputStreamProvider in the map, but retrieving a 
NameResolver.

> provide a hook for for an external decorator of Skin InputStreamProvider
> ------------------------------------------------------------------------
>
>                 Key: TRINIDAD-1729
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1729
>             Project: MyFaces Trinidad
>          Issue Type: Improvement
>          Components: Skinning
>            Reporter: Jeanne Waldman
>            Assignee: Jeanne Waldman
>             Fix For: 1.2.14-core 
>
>         Attachments: MDSNameResolver.jar, NameResolverPatch1212.patch
>
>
> A third party (Oracle MDS) would like to use their own InputStreamProvider to 
> find skinning css files (like purple-desktop.css) in their own system. The 
> current ways to find css files do not work for them.
> 1. We first discussed decorating ExternalContext.getResource(), since in
> Trinidad we create the URL by calling FacesContext's ExternalContext's
> getResource(style-sheet-name). For an example, see
> http://insights2jsf.wordpress.com/2009/07/03/using-custom-factories-or-howto-wrap-facescontext/
> 2. This won't work for them because it returns an URL object
> 3. using ExternalContext's getResourceAsStream won't work because you can't 
> find out if the file has been modified.
> 4. What would work is if they decorate or extend the InputStreamProvider, and 
> we check this if none of the other means finds the .css file. The other means 
> are those found in SkinStyleSheetProvider.java
> 5. To allow them to plugin their InputStreamProvider we
> can do this with a service provider interface where we open up
> META-INF/services/<fully qualified classname of service> and load all of the
> services that way.

-- 
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