DefaultFileManager uses URI.create in some places to minimize the changes
before Mustang beta 2. Ideally, this should be cleaned up.
Similarly, we need to ensure that file names are treated consitently.
For example, this combination is suspect:
new File(externalizeFileName(packageName), relativeName)
Since reltiveName is a "relative" URI it could be "resource/foo.properties"
where as externalizeFileName(packageName) could be "com\\sun\\foo\\bar".
It would probably be best to agree on an internal format similar
to the VM's view of the world where we use '/' as package/file
separator character consistently.
Enforcing this with a special type would probably be ideal.
The current situation is a mismatch of different conventions.
Use centralized explicit constructor to expose URISyntaxException. Should eventually consider something more lkek a regex solution to avoid creating URI at all.