I wrote the FileSystem service to encapsulate the service and remove some avalon specific dependency from most modules.
I think the best approach to this change would be:
1) Add the getResource method to the interface that simply return an InputStream instead of a file.
2) Create the default implementation of the avalon file system to call the getFile and simply provide the stream for that file
3) Change the FileSystem users to use getResouce instead of getFile when they don't need a File instance.
Then I would probably leave to the spring implementation the loading of resources from the classpath: in a phoenix environment IMHO it make sense to keep using the "phoenix way".
So, this is similar, but done in 2 separate steps (refactoring of the api first, new features after): what do you think?