Carl-Eric Menzel created WICKET-4617:
----------------------------------------

             Summary: ResourceStreamLocator vs ResourceFinder
                 Key: WICKET-4617
                 URL: https://issues.apache.org/jira/browse/WICKET-4617
             Project: Wicket
          Issue Type: Bug
    Affects Versions: 1.5.7, 6.0.0-beta2
            Reporter: Carl-Eric Menzel
            Assignee: Carl-Eric Menzel


I'm a bit confused by the responsibilities of ResourceFinder vs 
ResourceStreamLocator. Looking around in the code, I found the following:

- IResourceFinder is apparently only implemented via its extension interface 
IResourcePath. Its two implementations Path and WebApplicationPath look through 
a list of filesystem folders for files.

- ResourceStreamLocator does two things:
  - it loads resources, either via an IResourceFinder (which only finds 
filesystem resources) or via the classloader (it does this itself).
  - it uses a ResourceNameIterator to generate all possible filename variations 
based on locale and style and then tries to load one of them via the above 
mechanisms.

Is this correct?

If so, I think we have some mixed-up responsibilities here. I propose the 
following:

- add a third IResourcePath implementation (e.g. ClassloaderPath) that handles 
loading of resources in classpaths. It should be able to try multiple paths 
(e.g. "/", "META-INF/resources" etc).
- Instead of a single ResourceFinder, Application should have a list of them, 
by default containing WebApplicationPath (today's default) and the new 
ClassloaderPath.
- ResourceStreamLocator should not do any loading on its own at all and just 
use the ResourceFinders defined in this new list in Application.

This would also get rid of the hard-coded "META-INF/resources" lookup that 
currently is done in ResourceStreamLocator (I'll write a second ticket about 
that, it's causing us some problems).

I think this could still be done within 6.0. Objections?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to