Uploaded image for project: 'Commons VFS'
  1. Commons VFS
  2. VFS-444

ResourceFileProvider "res://" failed to obtain FileObject from resolved FileName

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.0
    • 2.5.0
    • 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

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              eepgwde Walter Eaves
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - 168h
                  168h
                  Remaining:
                  Remaining Estimate - 167h 40m
                  167h 40m
                  Logged:
                  Remaining Estimate - 167h 40m
                  20m