Example usage for org.apache.commons.vfs.impl DefaultFileSystemManager setCacheStrategy

List of usage examples for org.apache.commons.vfs.impl DefaultFileSystemManager setCacheStrategy

Introduction

In this page you can find the example usage for org.apache.commons.vfs.impl DefaultFileSystemManager setCacheStrategy.

Prototype

public void setCacheStrategy(final CacheStrategy fileCacheStrategy) throws FileSystemException 

Source Link

Document

Set the cache strategy to use when dealing with file object data.

Usage

From source file:com.bedatadriven.renjin.appengine.AppEngineContextFactory.java

@VisibleForTesting
static FileSystemManager createFileSystemManager(LocalFileProvider localFileProvider)
        throws FileSystemException {
    try {/*  www  .  j a  v  a  2 s  .  c  o m*/
        JarFileProvider jarFileProvider = new AppEngineJarFileProvider();

        // this provides a fake local file system rooted in the servlet context root.
        // this is necessary because on the actual appengine platform, any queries to the ancestors
        // of the servlet context (e.g. /base) will throw a security exception

        DefaultFileSystemManager dfsm = new DefaultFileSystemManager();
        dfsm.addProvider("jar", jarFileProvider);
        dfsm.addProvider("file", localFileProvider);
        dfsm.addExtensionMap("jar", "jar");
        dfsm.setDefaultProvider(new UrlFileProvider());
        dfsm.setFilesCache(new NullFilesCache());
        dfsm.setCacheStrategy(CacheStrategy.ON_RESOLVE);
        dfsm.setBaseFile(new File("/"));
        dfsm.init();

        return dfsm;
    } catch (FileSystemException e) {
        LOG.log(Level.SEVERE, "Failed to initialize file system for development server", e);
        throw new RuntimeException(e);
    }
}

From source file:egovframework.rte.fdl.filehandling.FilehandlingServiceTest.java

/**
 * ? ? , ?  ??  ?? ?// w  ww .  ja  v a  2s . c  om
 * ?  ? ? ? .
 * @throws Exception
 */
@Test
public void testCaching() throws Exception {
    String testFolder = "d:/workspace/java/e-gov/eGovFramework/RTE/DEV/trunk/Foundation/egovframework.rte.fdl.filehandling/testfolder";
    FileSystemManager manager = VFS.getManager();

    FileObject scratchFolder = manager.resolveFile(testFolder);

    // testfolder ?  ? 
    scratchFolder.delete(Selectors.EXCLUDE_SELF);

    // ? Manager ?
    DefaultFileSystemManager fs = new DefaultFileSystemManager();
    fs.setFilesCache(manager.getFilesCache());

    // zip, jar, tgz, tar, tbz2, file
    if (!fs.hasProvider("file")) {
        fs.addProvider("file", new DefaultLocalFileProvider());
    }

    fs.setCacheStrategy(CacheStrategy.ON_RESOLVE);
    fs.init();

    // ? ? ?
    FileObject foBase2 = fs.resolveFile(testFolder);
    log.debug("## scratchFolder.getName().getPath() : " + scratchFolder.getName().getPath());

    FileObject cachedFolder = foBase2.resolveFile(scratchFolder.getName().getPath());

    // ??  ?
    FileObject[] fos = cachedFolder.getChildren();
    assertFalse(contains(fos, "file1.txt"));

    // ??
    scratchFolder.resolveFile("file1.txt").createFile();

    // ? 
    // BUT cachedFolder ? ??  ?
    fos = cachedFolder.getChildren();
    assertFalse(contains(fos, "file1.txt"));

    // 
    cachedFolder.refresh();
    // ?? 
    fos = cachedFolder.getChildren();
    assertTrue(contains(fos, "file1.txt"));

}

From source file:egovframework.rte.fdl.filehandling.FilehandlingServiceTest.java

@Test
public void testCaching1() throws Exception {
    String testFolder = "d:/workspace/java/e-gov/eGovFramework/RTE/DEV/trunk/Foundation/egovframework.rte.fdl.filehandling/test";

    FileSystemManager manager = VFS.getManager();

    EgovFileUtil.writeFile(testFolder + "/file1.txt", text, "UTF-8");

    /*// w  w  w. j  a v a  2 s  .com
     * ? Manager ?
     * CacheStrategy.MANUAL      : Deal with cached data manually. Call FileObject.refresh() to refresh the object data.
     * CacheStrategy.ON_RESOLVE : Refresh the data every time you request a file from FileSystemManager.resolveFile
     * CacheStrategy.ON_CALL   : Refresh the data every time you call a method on the fileObject. You'll use this only if you really need the latest info as this setting is a major performance loss. 
     */
    DefaultFileSystemManager fs = new DefaultFileSystemManager();
    fs.setFilesCache(manager.getFilesCache());

    // zip, jar, tgz, tar, tbz2, file
    if (!fs.hasProvider("file")) {
        fs.addProvider("file", new DefaultLocalFileProvider());
    }
    //       StandardFileSystemManager fs = new StandardFileSystemManager();

    fs.setCacheStrategy(CacheStrategy.ON_RESOLVE);
    fs.init();

    // ? ? ?
    //FileObject foBase2 = fs.resolveFile(testFolder);
    log.debug("####1");
    FileObject cachedFile = fs.toFileObject(new File(testFolder + "/file1.txt"));
    log.debug("####2");

    FilesCache filesCache = fs.getFilesCache();
    log.debug("####3");
    filesCache.putFile(cachedFile);
    FileObject obj = filesCache.getFile(cachedFile.getFileSystem(), cachedFile.getName());

    //FileObject baseFile = fs.getBaseFile();
    //        log.debug("### cachedFile.getContent().getSize() is " + cachedFile.getContent().getSize());

    //        long fileSize = cachedFile.getContent().getSize();
    //        log.debug("#########size is " + fileSize);
    //FileObject cachedFile1 = cachedFile.resolveFile("file2.txt");

    //       FileObject scratchFolder = manager.resolveFile(testFolder);
    //       scratchFolder.delete(Selectors.EXCLUDE_SELF);

    EgovFileUtil.delete(new File(testFolder + "/file1.txt"));

    //       obj.createFile();

    //        log.debug("#########obj is " + obj.toString());
    //        log.debug("#########size is " + obj.getContent().getSize());
    log.debug("#########file is " + obj.exists());

    fs.close();
}