[ 
https://issues.apache.org/jira/browse/ADFFACES-438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12486726
 ] 

Martin Marinschek commented on ADFFACES-438:
--------------------------------------------

Hi *,

I've looked through the test results - I'll post one of the failures (the one 
for image, e.g.) here:

original golden file:

      <img
           id="mainId"
           name="mainId"
           
src="uri-attr:encoded-resource-url:/test-context-path/bogus/image/uri"
          >
        
      </img>

outcome after my potential change:

      <img
           id="mainId"
           name="mainId"
           src="uri-attr:encoded-resource-url:resource-url:/bogus/image/uri"
          >
        
      </img>

I conclude from my previous comments that the sources of the golden files are 
bogus - resource-url needs to be called before encoded-resource-url is called, 
so the golden files sources are wrong.

two problems remain with my approach:

1) toUri is used all over now, in fact there should be a toResourceUri and a 
toActionUri cause these two might be handled differently.

2) the question is if toUri is ever called where a FacesContext is not 
available - if yes, my approach would fail.

regards,

Martin





> Trinidad components don't use ViewHandler.getResourceUrl - custom 
> ViewHandlers can fail due to this
> ---------------------------------------------------------------------------------------------------
>
>                 Key: ADFFACES-438
>                 URL: https://issues.apache.org/jira/browse/ADFFACES-438
>             Project: MyFaces ADF-Faces
>          Issue Type: Bug
>          Components: Components
>    Affects Versions: 1.0.1-incubating-core-SNAPSHOT
>            Reporter: Martin Marinschek
>         Assigned To: Martin Marinschek
>             Fix For: 1.0.1-incubating-core-SNAPSHOT
>
>
> Trinidad's components all call:
> CoreRenderer.toUri()
>  when they encode their resource-urls.
> This method does essentially the same as the JSF-Viewhandler's method 
> getResourceUrl(), so there is no reason why the core-renderer shouldn't call 
> this method. If the viewHandler's getResourceUrl() is not called, some other 
> projects fail to work together with Trinidad, an example for this is Weblets 
> by John Fallows which overwrites the ViewHandler's getResourceUrl() method.
> Changing toUri() method to:
>   static public String toUri(Object o)
>   {
>     if (o == null)
>       return null;
>     
>     String uri = o.toString();
>     // Treat two slashes as server-relative
>     if (uri.startsWith("//"))
>     {
>         uri = uri.substring(1);
>     }
>     return 
> FacesContext.getCurrentInstance().getApplication().getViewHandler().getResourceURL(
>             FacesContext.getCurrentInstance(),uri);
>   }
> should fix the issue.
> regards,
> Martin

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