commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Walter Eaves (JIRA)" <>
Subject [jira] [Commented] (VFS-444) ResourceFileProvider "res://" failed to obtain FileObject from resolved FileName
Date Wed, 14 Nov 2012 13:06:13 GMT


Walter Eaves commented on VFS-444:

Thanks. Yes, you would hope for that, but, ISTR, that approach failed for me because resolveFile()
doesn't expect a URI.

Even when you manage to get it to resolve to a FileName, the base of the FileName object is
not part of the name, so you can't get it into a File object that works. It comes back as
file://test.txt, relative to the base, which VFS won't tell you.

But I will try what you suggested next time I have that code up. Thanks.

> ResourceFileProvider "res://" failed to obtain FileObject from resolved FileName
> --------------------------------------------------------------------------------
>                 Key: VFS-444
>                 URL:
>             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
>              Labels: common-configuration
>             Fix For: 2.0
>   Original Estimate: 168h
>  Remaining Estimate: 168h
> 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());
>"c1: " + c1 + " : " + c1.exists());
> The code seems to have worked because, I can see the logger has the right URL in the
> 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:

View raw message