List of usage examples for org.apache.commons.vfs.impl DefaultFileSystemManager setReplicator
public void setReplicator(final FileReplicator replicator) throws FileSystemException
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; }