Example usage for org.apache.commons.vfs FileSystemManager createFileSystem

List of usage examples for org.apache.commons.vfs FileSystemManager createFileSystem

Introduction

In this page you can find the example usage for org.apache.commons.vfs FileSystemManager createFileSystem.

Prototype

public FileObject createFileSystem(FileObject file) throws FileSystemException;

Source Link

Document

Creates a layered file system.

Usage

From source file:org.codehaus.mojo.unix.core.OperationTest.java

public void testExtractWithPattern() throws Exception {
    String archivePath = PlexusTestCase.getTestPath("src/test/resources/operation/extract.jar");

    FileSystemManager fsManager = VFS.getManager();
    FileObject archiveObject = fsManager.resolveFile(archivePath);
    assertEquals(FileType.FILE, archiveObject.getType());
    FileObject archive = fsManager.createFileSystem(archiveObject);

    FileObject fooLicense = archive.getChild("foo-license.txt");
    UnixFsObject.RegularFile fooLicenseUnixFile = fromFileObject(relativePath("licenses/foo-license.txt"),
            fooLicense, fileAttributes);

    FileObject barLicense = archive.getChild("mydir").getChild("bar-license.txt");
    UnixFsObject.RegularFile barLicenseUnixFile = fromFileObject(relativePath("licenses/bar-license.txt"),
            barLicense, fileAttributes);

    MockControl control = MockControl.createControl(FileCollector.class);
    FileCollector fileCollector = (FileCollector) control.getMock();

    control.expectAndReturn(fileCollector.addFile(barLicense, barLicenseUnixFile), fileCollector);
    control.expectAndReturn(fileCollector.addFile(fooLicense, fooLicenseUnixFile), fileCollector);
    control.replay();/*from www.  j a v  a 2  s.  co m*/

    new CopyDirectoryOperation(archive, relativePath("licenses"), asList("**/*license.txt"), null,
            some(p(".*/(.*license.*)", "$1")), fileAttributes, directoryAttributes).perform(fileCollector);

    control.verify();
}

From source file:org.codehaus.mojo.unix.maven.plugin.ExtractArtifact.java

public AssemblyOperation createOperation(FileObject basedir, FileAttributes defaultFileAttributes,
        FileAttributes defaultDirectoryAttributes)
        throws MojoFailureException, FileSystemException, UnknownArtifactException {
    File artifactFile = validateArtifact(artifact);

    FileSystemManager fsManager = VFS.getManager();
    FileObject archiveObject = fsManager.resolveFile(artifactFile.getAbsolutePath());
    FileObject archive = fsManager.createFileSystem(archiveObject);

    return createOperationInternal(archive, defaultFileAttributes, defaultDirectoryAttributes);
}

From source file:org.codehaus.mojo.unix.maven.rpm.RpmUnixPackageTest.java

public void testBasic() throws Exception {
    if (!Rpmbuild.available()) {
        return;//w w w  . j  a v  a 2s  . c  o  m
    }

    String archivePath = getTestPath("src/test/resources/operation/extract.jar");

    FileSystemManager fsManager = VFS.getManager();
    FileObject pomXml = fsManager.resolveFile(getTestPath("pom.xml"));
    FileObject archiveObject = fsManager.resolveFile(archivePath);
    FileObject archive = fsManager.createFileSystem(archiveObject);
    FileObject fooLicense = archive.getChild("foo-license.txt");
    FileObject barLicense = archive.getChild("mydir").getChild("bar-license.txt");

    RpmPackagingFormat packagingFormat = (RpmPackagingFormat) lookup(PackagingFormat.ROLE, "rpm");

    FileObject rpmTest = VFS.getManager().resolveFile(getTestPath("target/rpm-test"));
    FileObject packageRoot = rpmTest.resolveFile("root");
    File packageFile = getTestFile("target/rpm-test/file.rpm");

    PackageVersion version = packageVersion("1.0-1", "123", false, Option.<String>none());
    PackageParameters parameters = packageParameters("mygroup", "myartifact", version, "id", "default-name",
            Option.<String>none(), EMPTY, EMPTY).contact("Kurt Cobain").architecture("all").name("Yo!")
                    .license("BSD");

    UnixPackage unixPackage = RpmPackagingFormat
            .cast(packagingFormat.start().parameters(parameters).workingDirectory(packageRoot)).group("Fun");

    LocalDateTime now = new LocalDateTime();
    Option<FileAttributes> none = Option.none();

    unixPackage.addFile(pomXml, regularFile(relativePath("/pom.xml"), now, 0, none))
            .addFile(fooLicense, regularFile(relativePath("/foo-license.txt"), now, 0, none))
            .addFile(barLicense, regularFile(relativePath("/bar-license.txt"), now, 0, none));

    unixPackage.debug(true).packageToFile(packageFile, ScriptUtil.Strategy.SINGLE);

    assertTrue(packageFile.canRead());
}

From source file:org.geoserver.importer.VFSWorker.java

/**
 * // w w  w.  j  a  va2 s  . com
 * @param archiveFile
 * @param filter
 * 
 * @return
 */
public List<String> listFiles(final File archiveFile, final FilenameFilter filter) {
    FileSystemManager fsManager;
    try {
        fsManager = VFS.getManager();
        String absolutePath = resolveArchiveURI(archiveFile);
        FileObject resolvedFile = fsManager.resolveFile(absolutePath);

        FileSelector fileSelector = new FileSelector() {
            /**
             * @see org.apache.commons.vfs.FileSelector#traverseDescendents(org.apache.commons.vfs.FileSelectInfo)
             */
            public boolean traverseDescendents(FileSelectInfo folderInfo) throws Exception {
                return true;
            }

            /**
             * @see org.apache.commons.vfs.FileSelector#includeFile(org.apache.commons.vfs.FileSelectInfo)
             */
            public boolean includeFile(FileSelectInfo fileInfo) throws Exception {
                File folder = archiveFile.getParentFile();
                String name = fileInfo.getFile().getName().getFriendlyURI();
                return filter.accept(folder, name);
            }
        };

        FileObject fileSystem;
        if (fsManager.canCreateFileSystem(resolvedFile)) {
            fileSystem = fsManager.createFileSystem(resolvedFile);
        } else {
            fileSystem = resolvedFile;
        }
        LOGGER.fine("Listing spatial data files archived in " + archiveFile.getName());
        FileObject[] containedFiles = fileSystem.findFiles(fileSelector);
        List<String> names = new ArrayList<String>(containedFiles.length);
        for (FileObject fo : containedFiles) {
            // path relative to its filesystem (ie, to the archive file)
            String pathDecoded = fo.getName().getPathDecoded();
            names.add(pathDecoded);
        }
        LOGGER.fine("Found " + names.size() + " spatial data files in " + archiveFile.getName() + ": " + names);
        return names;
    } catch (FileSystemException e) {
        e.printStackTrace();
    } finally {
        // fsManager.closeFileSystem(fileSystem.getFileSystem());
    }
    return Collections.emptyList();
}

From source file:org.geoserver.importer.VFSWorker.java

/**
 * Extracts the archive file {@code archiveFile} to {@code targetFolder}; both shall previously
 * exist.//  ww w .java 2 s.c om
 */
public void extractTo(File archiveFile, File targetFolder) throws IOException {

    FileSystemManager manager = VFS.getManager();
    String sourceURI = resolveArchiveURI(archiveFile);
    // String targetURI = resolveArchiveURI(targetFolder);
    FileObject source = manager.resolveFile(sourceURI);
    if (manager.canCreateFileSystem(source)) {
        source = manager.createFileSystem(source);
    }
    FileObject target = manager.createVirtualFileSystem(manager.resolveFile(targetFolder.getAbsolutePath()));

    FileSelector selector = new AllFileSelector() {
        @Override
        public boolean includeFile(FileSelectInfo fileInfo) {
            LOGGER.fine("Uncompressing " + fileInfo.getFile().getName().getFriendlyURI());
            return true;
        }
    };
    target.copyFrom(source, selector);
}