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

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

Introduction

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

Prototype

public void setFilesCache(final FilesCache filesCache) throws FileSystemException 

Source Link

Document

Sets the filesCache implementation used to cache files

Usage

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

@VisibleForTesting
static FileSystemManager createFileSystemManager(LocalFileProvider localFileProvider)
        throws FileSystemException {
    try {//  ww w . ja  va 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:com.threecrickets.sincerity.util.IoUtil.java

/**
 * Copies a complete subdirectory tree using Apache Commons VFS.
 * //from  w ww. ja  v a2 s. c  om
 * @param fromDir
 *        The source directory
 * @param toDir
 *        The target directory
 * @throws IOException
 *         In case of an I/O error
 */
public static void copyRecursive(File fromDir, File toDir) throws IOException {
    DefaultFileSystemManager manager = new DefaultFileSystemManager();
    try {
        DefaultLocalFileProvider fileProvider = new DefaultLocalFileProvider();
        manager.addProvider("file", fileProvider);
        manager.setDefaultProvider(fileProvider);
        manager.setFilesCache(new DefaultFilesCache());
        manager.init();
        copyRecursive(manager, manager.resolveFile(fromDir.toURI().toString()),
                manager.resolveFile(toDir.toURI().toString()));
    } finally {
        manager.close();
    }
}

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

/**
 * ? ? , ?  ??  ?? ?/*from  w  w  w  .  j  a  v  a2  s. co  m*/
 * ?  ? ? ? .
 * @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");

    /*/*from   www .  j a  va 2 s  .  c  o m*/
     * ? 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();
}

From source file:com.threecrickets.sincerity.util.IoUtil.java

/**
 * Unpacks all files in an archive using Apache Commons VFS.
 * <p>//from  w  w w  .  j a  v  a 2  s.  co m
 * Supported formats: zip, tar.gz/tgz, tar.bz2.
 * 
 * @param archiveFile
 *        The archive file
 * @param destinationDir
 *        The destination directory
 * @param workDir
 *        The work directory
 * @throws IOException
 *         In case of an I/O error
 */
public static void unpack(File archiveFile, File destinationDir, File workDir) throws IOException {
    String scheme = null;
    String name = archiveFile.getName();
    DefaultFileSystemManager manager = new DefaultFileSystemManager();
    try {
        boolean untar = false;
        if (name.endsWith(".zip")) {
            scheme = "zip:";
            manager.addProvider("zip", new ZipFileProvider());
        } else if (name.endsWith(".tar.gz") || name.endsWith(".tgz")) {
            scheme = "gz:";
            untar = true;
            manager.addProvider("tar", new TarFileProvider());
            manager.addProvider("gz", new GzipFileProvider());
            manager.addProvider("tgz", new TgzFileProvider());
        } else if (name.endsWith(".tar.bz2")) {
            scheme = "bz2:";
            untar = true;
            manager.addProvider("tar", new TarFileProvider());
            manager.addProvider("bz2", new Bzip2FileProvider());
            manager.addProvider("tbz2", new Tbz2FileProvider());
        }

        if (scheme != null) {
            DefaultFileReplicator replicator = new DefaultFileReplicator(workDir);
            replicator.init();
            manager.setReplicator(replicator);
            manager.setTemporaryFileStore(replicator);
            DefaultLocalFileProvider fileProvider = new DefaultLocalFileProvider();
            manager.addProvider("file", fileProvider);
            manager.setDefaultProvider(fileProvider);
            manager.setFilesCache(new DefaultFilesCache());
            manager.init();

            String path = scheme + archiveFile.toURI();
            FileObject fileObject = manager.resolveFile(path);
            FileObject[] children = fileObject.getChildren();
            if (untar && children.length > 0) {
                FileObject tar = manager
                        .resolveFile(new File(workDir, children[0].getName().getBaseName()).toURI().toString());
                org.apache.commons.vfs.FileUtil.copyContent(children[0], tar);
                tar = manager.resolveFile("tar:" + tar.getName());
                children = tar.getChildren();
            }

            for (FileObject child : children)
                copyRecursive(manager, child, manager.resolveFile(destinationDir.toURI().toString()));
        }
    } finally {
        manager.close();
    }
}

From source file:org.objectweb.proactive.extensions.dataspaces.vfs.VFSFactory.java

/**
 * Creates new DefaultSystemManager instance with configured providers, replicator, temporary
 * storage - as described in class description, and <strong>DISABLED files cache</strong>
 * (NullFilesCache) ./*from  w  w w.j a  va  2 s .com*/
 * <p>
 * Returned instance is initialized and it is a caller responsibility to close it to release
 * resources.
 *
 * @param enableFilesCache
 *            when <code>true</code> DefaultFilesCache is configured for returned manager; when
 *            <code>false</code> file caching is disabled - NullFilesCache is configured
 * @return configured and initialized DefaultFileSystemManager instance
 * @throws FileSystemException
 *             when initialization or configuration process fails
 */
public static DefaultFileSystemManager createDefaultFileSystemManager(boolean enableFilesCache)
        throws FileSystemException {
    logger.debug("Creating new VFS manager");

    FileSystemOptions opts = createDefaultFileSystemOptions();
    final DefaultFileSystemManager manager = new DefaultOptionsFileSystemManager(opts);
    manager.setLogger(logger);

    final DefaultFileReplicator replicator = new DefaultFileReplicator();
    manager.setReplicator(new PrivilegedFileReplicator(replicator));
    manager.setTemporaryFileStore(replicator);
    if (!enableFilesCache) {
        // WISH: one beautiful day one may try to use FilesCache aware of AO instead of NullFilesCache
        manager.setFilesCache(new NullFilesCache());
    }

    manager.addProvider("file", new DefaultLocalFileProvider());
    manager.addProvider("http", new HttpFileProvider());
    manager.addProvider("https", new HttpsFileProvider());
    manager.addProvider("ftp", new FtpFileProvider());
    manager.addProvider("sftp", new SftpFileProvider());
    final ProActiveFileProvider proactiveProvider = new ProActiveFileProvider();
    for (final String scheme : ProActiveFileName.getAllVFSSchemes()) {
        manager.addProvider(scheme, proactiveProvider);
    }

    manager.addProvider("s3", new S3FileProvider());
    manager.addOperationProvider("s3", new AclOperationsProvider());

    manager.setDefaultProvider(new UrlFileProvider());

    manager.init();
    logger.debug("Created and initialized new VFS manager");
    return manager;
}