David Haraburda wrote:

>Sylvain Wallez wrote:
>
>  
>
>>. . .
>>Another related item : while updating the ParanoidClassloader to make it
>>really paranoid, I encountered an inconsistency in java.lang.ClassLoader
>>class : getResource() can be overriden, but getResources() is declared
>>final, meaning there is no way to change the order in which e.g.
>>indentical service definitions in META-INF/services are enumerated.
>>Although this shouldn't cause a problem with JAXP (at least the Apache
>>implementation) which uses getResource() (no enumeration), we should be
>>aware that this is a potential pitfall.
>>    
>>
>
>This isn't an inconsistency, it's intentional -- getResources() is a final method 
>that calls findResources, a protected method on the current instance of the 
>ClassLoader.  ClassLoader implementations should override findResources(). The 
>purpose of getResources() is to get a set of resources from all the
>classloaders in the classloader heirarchy.
>  
>

I don't agree with you : findResources() is the method that a given 
ClassLoader can redefine to enumerate *its own resources*. 
getResources() aggreates the enumerations of all resources found in the 
classloader hierarchy. But it does this using the "standard" order which 
is system classloader resources first and custom classloader resources 
last. So you can't change the order of the enumeration to give a higher 
priority to custom classloader resources by enumerating them first.

Sylvain

-- 
Sylvain Wallez
 Anyware Technologies                  Apache Cocoon
 http://www.anyware-tech.com           mailto:[EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to