Walter Eaves created VFS-444:
--------------------------------

             Summary: ResourceFileProvider "res://" failed to obtain FileObject 
from resolved FileName
                 Key: VFS-444
                 URL: https://issues.apache.org/jira/browse/VFS-444
             Project: Commons VFS
          Issue Type: Bug
    Affects Versions: 2.0
         Environment: java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)
Linux x 2.6.32-5-amd64 #1 SMP Sun May 6 04:00:17 UTC 2012 x86_64 GNU/Linux
            Reporter: Walter Eaves
             Fix For: 2.0


Given

  // See if we can find it in the resources.
  String s0 = "res://config.xml";
  FileName n0 = mgr.resolveURI(s0);

  FileObject c1 = mgr.resolveFile(new File(n0.getBaseName()), n0.getPath());
      logger.info("c1: " + c1 + " : " + c1.exists());

The code seems to have worked because, I can see the logger has the right URL 
in the SoftResFilesCache

12:43:29,734 DEBUG [StandardFileSystemManager] Skipping provider 
"org.apache.commons.vfs2.provider.webdav.WebdavFileProvider" because required 
class "org.apache.jackrabbit.webdav.client.methods.DavMethod" is not available.
12:43:29,765 DEBUG [SoftRefFilesCache] putFile: 
file:///misc/build2/fpstats0/fpstats-experimental/config.xml
12:43:29,767 DEBUG [SoftRefFilesCache] putFile: file:///config.xml
12:43:29,767 INFO  [Version] c1: file:///config.xml : false

The file is there!

But I cannot get a FileObject that gives me the absolute path.

This would be useful for me. I want to be able to resolve a file out of the 
resources: jar files and classes/ directories. And keep that in reserve as I 
try and resolve the same file in -Duser.home and elsewhere.

If it worked, and I believed it, I could then use the "res://config.xml" it for 
commons-configuration.

But I can't.

I just don't understand the API - is it complete? I can resolve a URL and get a 
FileName, but it won't tell me the FileSystem(s) without that I can't resolve 
it in this SoftResFilesCache.

If it were me, I would just open the SoftResFilesCache and add a search for the 
base filename of a URL across all FileSystems.

I use a filesystems to find things. I give it a hint where I saw it last and I 
want to track if it is still there and whether it has changed.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to