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

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

Introduction

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

Prototype

public void setReplicator(final FileReplicator replicator) throws FileSystemException 

Source Link

Document

Sets the file replicator to use.

Usage

From source file:com.pongasoft.kiwidoc.builder.doclet.SourceCodeParser.java

/**
 * Parses the sources using a doclet. It is ok to provide a big number of files, since it will
 * automatically be split in chunks./*from   ww  w. j a  v a  2 s  .  c om*/
 *
 * @param library the library to store the results
 * @param sources the sources
 * @return the number of processed files
 * @throws IOException if there is an issue reading the files
 */
public int parseSources(LibraryModelBuilder library, FileObject sources, String overviewFilename,
        FileObject javadoc, Collection<FileObject> dependencies) throws IOException, InternalException {
    DefaultFileSystemManager dfs = new DefaultFileSystemManager();
    dfs.addProvider("file", new DefaultLocalFileProvider());
    dfs.setReplicator(new DefaultFileReplicator(IOUtils.createTempDirectory("SourceCodeParser", "")));
    dfs.init();
    try {
        File localSources = dfs.getReplicator().replicateFile(sources, SourcesSelector.INSTANCE);

        sources = dfs.toFileObject(localSources);

        FileObject[] allSources = sources.findFiles(JavaSelector.INSTANCE);

        if (allSources == null || allSources.length == 0)
            return 0;

        List<String> sourcePath = new ArrayList<String>();

        for (FileObject sourceFile : allSources) {
            //        if(javadoc != null)
            //        {
            //          String name = sources.getName().getRelativeName(sourceFile.getName());
            //          name = name.substring(0, name.length() - JAVA_EXTENSION.length());
            //          name += HTML_EXTENSION;
            //          if(javadoc.resolveFile(name, NameScope.DESCENDENT).exists())
            //            sourcePath.add(sourceFile.getName().getPath());
            //        }
            //        else
            //        {
            //          sourcePath.add(sourceFile.getName().getPath());
            //        }
            sourcePath.add(sourceFile.getName().getPath());
        }

        List<String> deps = new ArrayList<String>();

        if (dependencies != null) {
            for (FileObject dependency : dependencies) {
                if (dependency.exists()) {
                    File localDependency = dfs.getReplicator().replicateFile(dependency,
                            DependenciesSelector.INSTANCE);
                    deps.add(localDependency.getCanonicalPath());
                }
            }
        }

        FileObject overviewFile = sources.resolveFile(overviewFilename, NameScope.CHILD);

        String overviewPath = null;
        if (overviewFile.exists())
            overviewPath = overviewFile.getName().getPath();

        parseSources(library, overviewPath, sourcePath, deps);

        return sourcePath.size();
    } finally {
        dfs.close();
    }
}

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

/**
 * Unpacks all files in an archive using Apache Commons VFS.
 * <p>/*from   www  .j a va2s . 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  ww  .  j  av a2s.  c o m*/
 * <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;
}